From f16e104f73b06cd80e05edc9551e82f8d608d1dc Mon Sep 17 00:00:00 2001 From: zuiidea Date: Tue, 26 Dec 2017 14:14:52 +0800 Subject: [PATCH] fix all echarts example --- .eslintrc | 41 +- package.json | 2 +- .../chart/ECharts/AirportCoordComponent.js | 469 +++++++++-------- src/routes/chart/ECharts/CalendarComponent.js | 353 +++++++------ src/routes/chart/ECharts/ChartAPIComponent.js | 15 +- .../ECharts/ChartShowLoadingComponent.js | 119 ++--- .../chart/ECharts/ChartWithEventComponent.js | 75 ++- .../chart/ECharts/DynamicChartComponent.js | 4 - src/routes/chart/ECharts/EchartsComponent.js | 70 +-- .../chart/ECharts/GCalendarComponent.js | 101 ++-- src/routes/chart/ECharts/GaugeComponent.js | 76 +-- src/routes/chart/ECharts/GraphComponent.js | 39 +- .../chart/ECharts/LiquidfillComponent.js | 47 +- .../chart/ECharts/LunarCalendarComponent.js | 33 +- src/routes/chart/ECharts/MainPageComponent.js | 70 ++- src/routes/chart/ECharts/MapChartComponent.js | 185 +++---- .../chart/ECharts/ModuleLoadChartComponent.js | 76 ++- .../chart/ECharts/SimpleChartComponent.js | 144 +++-- .../chart/ECharts/ThemeChartComponent.js | 185 ++++--- src/routes/chart/ECharts/TreemapComponent.js | 493 +++++++++--------- src/routes/chart/ECharts/index.js | 5 +- .../chart/Recharts/AreaChartComponent.js | 1 - .../chart/Recharts/BarChartComponent.js | 5 +- .../chart/Recharts/LineChartComponent.js | 1 - src/routes/chart/Recharts/index.js | 5 +- src/routes/chart/highCharts/index.js | 5 +- 26 files changed, 1285 insertions(+), 1334 deletions(-) diff --git a/.eslintrc b/.eslintrc index 3e8054a..343890d 100644 --- a/.eslintrc +++ b/.eslintrc @@ -1,48 +1,49 @@ { "extends": "airbnb", "rules": { - "semi": [2, "never"], - "no-console": 0, + "arrow-body-style": [0, "never"], "comma-dangle": [2, "always-multiline"], + "global-require": 0, + "func-names": 0, + "prefer-const": 0, + "import/no-unresolved": 0, + "import/extensions": 0, "max-len": 0, - "react/jsx-first-prop-new-line": 0, - "react/jsx-filename-extension": 0, - "space-before-function-paren": [2, "always"], "no-unused-expressions": [0, { "allowShortCircuit": true, "allowTernary": true }], - "arrow-body-style": [0, "never"], - "func-names": 0, - "prefer-const": 0, + "no-console": 0, "no-extend-native": 0, "no-param-reassign": 0, "no-restricted-syntax": 0, "no-eval": 0, "no-continue": 0, - "react/jsx-no-bind": 0, + "no-mixed-operators": 0, + "no-plusplus": 0, "no-unused-vars": [2, { "ignoreRestSiblings": true }], "no-underscore-dangle": 0, - "global-require": 0, - "import/no-unresolved": 0, - "import/extensions": 0, + "space-before-function-paren": [2, "always"], + "semi": [2, "never"], + "import/no-extraneous-dependencies": 0, + "import/prefer-default-export": 0, + "jsx-a11y/no-static-element-interactions": 0, + "jsx-a11y/click-events-have-key-events": 0, "jsx-a11y/href-no-hash": 0, + "jsx-a11y/anchor-is-valid": 0, + "jsx-a11y/label-has-for": 0, "react/no-array-index-key": 0, "react/require-default-props": 0, "react/forbid-prop-types": 0, "react/no-string-refs": 0, "react/no-find-dom-node": 0, "react/prefer-stateless-function": 0, - "import/no-extraneous-dependencies": 0, - "import/prefer-default-export": 0, - "react/no-danger": 0, - "jsx-a11y/no-static-element-interactions": 0, - "jsx-a11y/click-events-have-key-events": 0, "react/jsx-closing-tag-location": 0, "react/sort-comp": 0, - "no-mixed-operators": 0, - "jsx-a11y/label-has-for": 0, - "no-plusplus": 0 + "react/jsx-no-bind": 0, + "react/no-danger": 0, + "react/jsx-first-prop-new-line": 0, + "react/jsx-filename-extension": 0 }, "parser": "babel-eslint", "parserOptions": { diff --git a/package.json b/package.json index fb1e19d..6f56ac2 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "private": true, "name": "antd-admin", - "version": "4.3.8", + "version": "4.3.9", "dependencies": { "antd": "3.0.3", "axios": "^0.17.1", diff --git a/src/routes/chart/ECharts/AirportCoordComponent.js b/src/routes/chart/ECharts/AirportCoordComponent.js index c3e8a97..5042813 100644 --- a/src/routes/chart/ECharts/AirportCoordComponent.js +++ b/src/routes/chart/ECharts/AirportCoordComponent.js @@ -3,187 +3,187 @@ import ReactEcharts from 'echarts-for-react' require('echarts/map/js/china.js') -const AirportCoordComponent = React.createClass({ - getOtion () { - let geoCoordMap = { - 上海: [121.4648, 31.2891], - 东莞: [113.8953, 22.901], - 东营: [118.7073, 37.5513], - 中山: [113.4229, 22.478], - 临汾: [111.4783, 36.1615], - 临沂: [118.3118, 35.2936], - 丹东: [124.541, 40.4242], - 丽水: [119.5642, 28.1854], - 乌鲁木齐: [87.9236, 43.5883], - 佛山: [112.8955, 23.1097], - 保定: [115.0488, 39.0948], - 兰州: [103.5901, 36.3043], - 包头: [110.3467, 41.4899], - 北京: [116.4551, 40.2539], - 北海: [109.314, 21.6211], - 南京: [118.8062, 31.9208], - 南宁: [108.479, 23.1152], - 南昌: [116.0046, 28.6633], - 南通: [121.1023, 32.1625], - 厦门: [118.1689, 24.6478], - 台州: [121.1353, 28.6688], - 合肥: [117.29, 32.0581], - 呼和浩特: [111.4124, 40.4901], - 咸阳: [108.4131, 34.8706], - 哈尔滨: [127.9688, 45.368], - 唐山: [118.4766, 39.6826], - 嘉兴: [120.9155, 30.6354], - 大同: [113.7854, 39.8035], - 大连: [122.2229, 39.4409], - 天津: [117.4219, 39.4189], - 太原: [112.3352, 37.9413], - 威海: [121.9482, 37.1393], - 宁波: [121.5967, 29.6466], - 宝鸡: [107.1826, 34.3433], - 宿迁: [118.5535, 33.7775], - 常州: [119.4543, 31.5582], - 广州: [113.5107, 23.2196], - 廊坊: [116.521, 39.0509], - 延安: [109.1052, 36.4252], - 张家口: [115.1477, 40.8527], - 徐州: [117.5208, 34.3268], - 德州: [116.6858, 37.2107], - 惠州: [114.6204, 23.1647], - 成都: [103.9526, 30.7617], - 扬州: [119.4653, 32.8162], - 承德: [117.5757, 41.4075], - 拉萨: [91.1865, 30.1465], - 无锡: [120.3442, 31.5527], - 日照: [119.2786, 35.5023], - 昆明: [102.9199, 25.4663], - 杭州: [119.5313, 29.8773], - 枣庄: [117.323, 34.8926], - 柳州: [109.3799, 24.9774], - 株洲: [113.5327, 27.0319], - 武汉: [114.3896, 30.6628], - 汕头: [117.1692, 23.3405], - 江门: [112.6318, 22.1484], - 沈阳: [123.1238, 42.1216], - 沧州: [116.8286, 38.2104], - 河源: [114.917, 23.9722], - 泉州: [118.3228, 25.1147], - 泰安: [117.0264, 36.0516], - 泰州: [120.0586, 32.5525], - 济南: [117.1582, 36.8701], - 济宁: [116.8286, 35.3375], - 海口: [110.3893, 19.8516], - 淄博: [118.0371, 36.6064], - 淮安: [118.927, 33.4039], - 深圳: [114.5435, 22.5439], - 清远: [112.9175, 24.3292], - 温州: [120.498, 27.8119], - 渭南: [109.7864, 35.0299], - 湖州: [119.8608, 30.7782], - 湘潭: [112.5439, 27.7075], - 滨州: [117.8174, 37.4963], - 潍坊: [119.0918, 36.524], - 烟台: [120.7397, 37.5128], - 玉溪: [101.9312, 23.8898], - 珠海: [113.7305, 22.1155], - 盐城: [120.2234, 33.5577], - 盘锦: [121.9482, 41.0449], - 石家庄: [114.4995, 38.1006], - 福州: [119.4543, 25.9222], - 秦皇岛: [119.2126, 40.0232], - 绍兴: [120.564, 29.7565], - 聊城: [115.9167, 36.4032], - 肇庆: [112.1265, 23.5822], - 舟山: [122.2559, 30.2234], - 苏州: [120.6519, 31.3989], - 莱芜: [117.6526, 36.2714], - 菏泽: [115.6201, 35.2057], - 营口: [122.4316, 40.4297], - 葫芦岛: [120.1575, 40.578], - 衡水: [115.8838, 37.7161], - 衢州: [118.6853, 28.8666], - 西宁: [101.4038, 36.8207], - 西安: [109.1162, 34.2004], - 贵阳: [106.6992, 26.7682], - 连云港: [119.1248, 34.552], - 邢台: [114.8071, 37.2821], - 邯郸: [114.4775, 36.535], - 郑州: [113.4668, 34.6234], - 鄂尔多斯: [108.9734, 39.2487], - 重庆: [107.7539, 30.1904], - 金华: [120.0037, 29.1028], - 铜川: [109.0393, 35.1947], - 银川: [106.3586, 38.1775], - 镇江: [119.4763, 31.9702], - 长春: [125.8154, 44.2584], - 长沙: [113.0823, 28.2568], - 长治: [112.8625, 36.4746], - 阳泉: [113.4778, 38.0951], - 青岛: [120.4651, 36.3373], - 韶关: [113.7964, 24.7028], - } +const AirportCoordComponent = () => { + let geoCoordMap = { + 上海: [121.4648, 31.2891], + 东莞: [113.8953, 22.901], + 东营: [118.7073, 37.5513], + 中山: [113.4229, 22.478], + 临汾: [111.4783, 36.1615], + 临沂: [118.3118, 35.2936], + 丹东: [124.541, 40.4242], + 丽水: [119.5642, 28.1854], + 乌鲁木齐: [87.9236, 43.5883], + 佛山: [112.8955, 23.1097], + 保定: [115.0488, 39.0948], + 兰州: [103.5901, 36.3043], + 包头: [110.3467, 41.4899], + 北京: [116.4551, 40.2539], + 北海: [109.314, 21.6211], + 南京: [118.8062, 31.9208], + 南宁: [108.479, 23.1152], + 南昌: [116.0046, 28.6633], + 南通: [121.1023, 32.1625], + 厦门: [118.1689, 24.6478], + 台州: [121.1353, 28.6688], + 合肥: [117.29, 32.0581], + 呼和浩特: [111.4124, 40.4901], + 咸阳: [108.4131, 34.8706], + 哈尔滨: [127.9688, 45.368], + 唐山: [118.4766, 39.6826], + 嘉兴: [120.9155, 30.6354], + 大同: [113.7854, 39.8035], + 大连: [122.2229, 39.4409], + 天津: [117.4219, 39.4189], + 太原: [112.3352, 37.9413], + 威海: [121.9482, 37.1393], + 宁波: [121.5967, 29.6466], + 宝鸡: [107.1826, 34.3433], + 宿迁: [118.5535, 33.7775], + 常州: [119.4543, 31.5582], + 广州: [113.5107, 23.2196], + 廊坊: [116.521, 39.0509], + 延安: [109.1052, 36.4252], + 张家口: [115.1477, 40.8527], + 徐州: [117.5208, 34.3268], + 德州: [116.6858, 37.2107], + 惠州: [114.6204, 23.1647], + 成都: [103.9526, 30.7617], + 扬州: [119.4653, 32.8162], + 承德: [117.5757, 41.4075], + 拉萨: [91.1865, 30.1465], + 无锡: [120.3442, 31.5527], + 日照: [119.2786, 35.5023], + 昆明: [102.9199, 25.4663], + 杭州: [119.5313, 29.8773], + 枣庄: [117.323, 34.8926], + 柳州: [109.3799, 24.9774], + 株洲: [113.5327, 27.0319], + 武汉: [114.3896, 30.6628], + 汕头: [117.1692, 23.3405], + 江门: [112.6318, 22.1484], + 沈阳: [123.1238, 42.1216], + 沧州: [116.8286, 38.2104], + 河源: [114.917, 23.9722], + 泉州: [118.3228, 25.1147], + 泰安: [117.0264, 36.0516], + 泰州: [120.0586, 32.5525], + 济南: [117.1582, 36.8701], + 济宁: [116.8286, 35.3375], + 海口: [110.3893, 19.8516], + 淄博: [118.0371, 36.6064], + 淮安: [118.927, 33.4039], + 深圳: [114.5435, 22.5439], + 清远: [112.9175, 24.3292], + 温州: [120.498, 27.8119], + 渭南: [109.7864, 35.0299], + 湖州: [119.8608, 30.7782], + 湘潭: [112.5439, 27.7075], + 滨州: [117.8174, 37.4963], + 潍坊: [119.0918, 36.524], + 烟台: [120.7397, 37.5128], + 玉溪: [101.9312, 23.8898], + 珠海: [113.7305, 22.1155], + 盐城: [120.2234, 33.5577], + 盘锦: [121.9482, 41.0449], + 石家庄: [114.4995, 38.1006], + 福州: [119.4543, 25.9222], + 秦皇岛: [119.2126, 40.0232], + 绍兴: [120.564, 29.7565], + 聊城: [115.9167, 36.4032], + 肇庆: [112.1265, 23.5822], + 舟山: [122.2559, 30.2234], + 苏州: [120.6519, 31.3989], + 莱芜: [117.6526, 36.2714], + 菏泽: [115.6201, 35.2057], + 营口: [122.4316, 40.4297], + 葫芦岛: [120.1575, 40.578], + 衡水: [115.8838, 37.7161], + 衢州: [118.6853, 28.8666], + 西宁: [101.4038, 36.8207], + 西安: [109.1162, 34.2004], + 贵阳: [106.6992, 26.7682], + 连云港: [119.1248, 34.552], + 邢台: [114.8071, 37.2821], + 邯郸: [114.4775, 36.535], + 郑州: [113.4668, 34.6234], + 鄂尔多斯: [108.9734, 39.2487], + 重庆: [107.7539, 30.1904], + 金华: [120.0037, 29.1028], + 铜川: [109.0393, 35.1947], + 银川: [106.3586, 38.1775], + 镇江: [119.4763, 31.9702], + 长春: [125.8154, 44.2584], + 长沙: [113.0823, 28.2568], + 长治: [112.8625, 36.4746], + 阳泉: [113.4778, 38.0951], + 青岛: [120.4651, 36.3373], + 韶关: [113.7964, 24.7028], + } - let BJData = [ - [{ name: '北京' }, { name: '上海', value: 95 }], - [{ name: '北京' }, { name: '广州', value: 90 }], - [{ name: '北京' }, { name: '大连', value: 80 }], - [{ name: '北京' }, { name: '南宁', value: 70 }], - [{ name: '北京' }, { name: '南昌', value: 60 }], - [{ name: '北京' }, { name: '拉萨', value: 50 }], - [{ name: '北京' }, { name: '长春', value: 40 }], - [{ name: '北京' }, { name: '包头', value: 30 }], - [{ name: '北京' }, { name: '重庆', value: 20 }], - [{ name: '北京' }, { name: '常州', value: 10 }], - ] + let BJData = [ + [{ name: '北京' }, { name: '上海', value: 95 }], + [{ name: '北京' }, { name: '广州', value: 90 }], + [{ name: '北京' }, { name: '大连', value: 80 }], + [{ name: '北京' }, { name: '南宁', value: 70 }], + [{ name: '北京' }, { name: '南昌', value: 60 }], + [{ name: '北京' }, { name: '拉萨', value: 50 }], + [{ name: '北京' }, { name: '长春', value: 40 }], + [{ name: '北京' }, { name: '包头', value: 30 }], + [{ name: '北京' }, { name: '重庆', value: 20 }], + [{ name: '北京' }, { name: '常州', value: 10 }], + ] - let SHData = [ - [{ name: '上海' }, { name: '包头', value: 95 }], - [{ name: '上海' }, { name: '昆明', value: 90 }], - [{ name: '上海' }, { name: '广州', value: 80 }], - [{ name: '上海' }, { name: '郑州', value: 70 }], - [{ name: '上海' }, { name: '长春', value: 60 }], - [{ name: '上海' }, { name: '重庆', value: 50 }], - [{ name: '上海' }, { name: '长沙', value: 40 }], - [{ name: '上海' }, { name: '北京', value: 30 }], - [{ name: '上海' }, { name: '丹东', value: 20 }], - [{ name: '上海' }, { name: '大连', value: 10 }], - ] + let SHData = [ + [{ name: '上海' }, { name: '包头', value: 95 }], + [{ name: '上海' }, { name: '昆明', value: 90 }], + [{ name: '上海' }, { name: '广州', value: 80 }], + [{ name: '上海' }, { name: '郑州', value: 70 }], + [{ name: '上海' }, { name: '长春', value: 60 }], + [{ name: '上海' }, { name: '重庆', value: 50 }], + [{ name: '上海' }, { name: '长沙', value: 40 }], + [{ name: '上海' }, { name: '北京', value: 30 }], + [{ name: '上海' }, { name: '丹东', value: 20 }], + [{ name: '上海' }, { name: '大连', value: 10 }], + ] - let GZData = [ - [{ name: '广州' }, { name: '福州', value: 95 }], - [{ name: '广州' }, { name: '太原', value: 90 }], - [{ name: '广州' }, { name: '长春', value: 80 }], - [{ name: '广州' }, { name: '重庆', value: 70 }], - [{ name: '广州' }, { name: '西安', value: 60 }], - [{ name: '广州' }, { name: '成都', value: 50 }], - [{ name: '广州' }, { name: '常州', value: 40 }], - [{ name: '广州' }, { name: '北京', value: 30 }], - [{ name: '广州' }, { name: '北海', value: 20 }], - [{ name: '广州' }, { name: '海口', value: 10 }], - ] + let GZData = [ + [{ name: '广州' }, { name: '福州', value: 95 }], + [{ name: '广州' }, { name: '太原', value: 90 }], + [{ name: '广州' }, { name: '长春', value: 80 }], + [{ name: '广州' }, { name: '重庆', value: 70 }], + [{ name: '广州' }, { name: '西安', value: 60 }], + [{ name: '广州' }, { name: '成都', value: 50 }], + [{ name: '广州' }, { name: '常州', value: 40 }], + [{ name: '广州' }, { name: '北京', value: 30 }], + [{ name: '广州' }, { name: '北海', value: 20 }], + [{ name: '广州' }, { name: '海口', value: 10 }], + ] - let planePath = 'path://M1705.06,1318.313v-89.254l-319.9-221.799l0.073-208.063c0.521-84.662-26.629-121.796-63.961-121.491c-37.332-0.305-64.482,36.829-63.961,121.491l0.073,208.063l-319.9,221.799v89.254l330.343-157.288l12.238,241.308l-134.449,92.931l0.531,42.034l175.125-42.917l175.125,42.917l0.531-42.034l-134.449-92.931l12.238-241.308L1705.06,1318.313z' + let planePath = 'path://M1705.06,1318.313v-89.254l-319.9-221.799l0.073-208.063c0.521-84.662-26.629-121.796-63.961-121.491c-37.332-0.305-64.482,36.829-63.961,121.491l0.073,208.063l-319.9,221.799v89.254l330.343-157.288l12.238,241.308l-134.449,92.931l0.531,42.034l175.125-42.917l175.125,42.917l0.531-42.034l-134.449-92.931l12.238-241.308L1705.06,1318.313z' - let convertData = function (data) { - let res = [] - for (let i = 0; i < data.length; i += 1) { - let dataItem = data[i] - let fromCoord = geoCoordMap[dataItem[0].name] - let toCoord = geoCoordMap[dataItem[1].name] - if (fromCoord && toCoord) { - res.push({ - fromName: dataItem[0].name, - toName: dataItem[1].name, - coords: [fromCoord, toCoord], - }) - } + let convertData = function (data) { + let res = [] + for (let i = 0; i < data.length; i += 1) { + let dataItem = data[i] + let fromCoord = geoCoordMap[dataItem[0].name] + let toCoord = geoCoordMap[dataItem[1].name] + if (fromCoord && toCoord) { + res.push({ + fromName: dataItem[0].name, + toName: dataItem[1].name, + coords: [fromCoord, toCoord], + }) } - return res } + return res + } - let color = ['#a6c84c', '#ffa022', '#46bee9'] - let series = []; - [['北京', BJData], ['上海', SHData], ['广州', GZData]].forEach((item, i) => { - series.push({ + let color = ['#a6c84c', '#ffa022', '#46bee9'] + let series = []; + [['北京', BJData], ['上海', SHData], ['广州', GZData]].forEach((item, i) => { + series.push( + { name: `${item[0]} Top10`, type: 'lines', zlevel: 1, @@ -255,68 +255,67 @@ const AirportCoordComponent = React.createClass({ value: geoCoordMap[dataItem[1].name].concat([dataItem[1].value]), } }), - }) - }) - - let option = { - backgroundColor: '#404a59', - title: { - text: '模拟迁徙', - subtext: '数据纯属虚构', - left: 'center', - textStyle: { - color: '#fff', - }, - }, - tooltip: { - trigger: 'item', - }, - legend: { - orient: 'vertical', - top: 'bottom', - left: 'right', - data: ['北京 Top10', '上海 Top10', '广州 Top10'], - textStyle: { - color: '#fff', - }, - selectedMode: 'single', - }, - geo: { - map: 'china', - label: { - emphasis: { - show: false, - }, - }, - roam: true, - itemStyle: { - normal: { - areaColor: '#323c48', - borderColor: '#404a59', - }, - emphasis: { - areaColor: '#2a333d', - }, - }, - }, - series, - } - return option - }, - render () { - return ( -
-
- - -
-
+ } ) - }, -}) + }) + + let option = { + backgroundColor: '#404a59', + title: { + text: '模拟迁徙', + subtext: '数据纯属虚构', + left: 'center', + textStyle: { + color: '#fff', + }, + }, + tooltip: { + trigger: 'item', + }, + legend: { + orient: 'vertical', + top: 'bottom', + left: 'right', + data: ['北京 Top10', '上海 Top10', '广州 Top10'], + textStyle: { + color: '#fff', + }, + selectedMode: 'single', + }, + geo: { + map: 'china', + label: { + emphasis: { + show: false, + }, + }, + roam: true, + itemStyle: { + normal: { + areaColor: '#323c48', + borderColor: '#404a59', + }, + emphasis: { + areaColor: '#2a333d', + }, + }, + }, + series, + } + + + return ( +
+
+ + +
+
+ ) +} export default AirportCoordComponent diff --git a/src/routes/chart/ECharts/CalendarComponent.js b/src/routes/chart/ECharts/CalendarComponent.js index 7cfa921..4adafb8 100644 --- a/src/routes/chart/ECharts/CalendarComponent.js +++ b/src/routes/chart/ECharts/CalendarComponent.js @@ -2,8 +2,8 @@ import React from 'react' import ReactEcharts from 'echarts-for-react' import echarts from 'echarts' -const CalendarComponent = React.createClass({ - getVirtulData (year) { +const CalendarComponent = () => { + const getVirtulData = (year) => { year = year || '2017' let date = +echarts.number.parseDate(`${year}-01-01`) let end = +echarts.number.parseDate(`${+year + 1}-01-01`) @@ -16,185 +16,182 @@ const CalendarComponent = React.createClass({ ]) } return data - }, - getOtion () { - let graphData = [[ - 1485878400000, - 260, - ], [ - 1486137600000, - 200, - ], [ - 1486569600000, - 279, - ], [ - 1486915200000, - 847, - ], [ - 1487347200000, - 241, - ], [ - 1487779200000, - 411, - ], [ - 1488124800000, - 985, - ], - ] + } - let links = graphData.map((item, idx) => { - return { - source: idx, - target: idx + 1, - } - }) - links.pop() + let graphData = [[ + 1485878400000, + 260, + ], [ + 1486137600000, + 200, + ], [ + 1486569600000, + 279, + ], [ + 1486915200000, + 847, + ], [ + 1487347200000, + 241, + ], [ + 1487779200000, + 411, + ], [ + 1488124800000, + 985, + ], + ] - const option = { - tooltip: { - position: 'top', - }, - visualMap: [{ - min: 0, - max: 1000, - calculable: true, - seriesIndex: [2, 3, 4], - orient: 'horizontal', - left: '55%', - bottom: 20, - }, { - min: 0, - max: 1000, - inRange: { - color: ['grey'], - opacity: [0, 0.3], - }, - controller: { - inRange: { - opacity: [0.3, 0.6], - }, - outOfRange: { - color: '#ccc', - }, - }, - calculable: true, - seriesIndex: [1], - orient: 'horizontal', - left: '10%', - bottom: 20, - }], - - calendar: [ - { - orient: 'vertical', - yearLabel: { - margin: 40, - }, - monthLabel: { - nameMap: 'cn', - margin: 20, - }, - dayLabel: { - firstDay: 1, - nameMap: 'cn', - }, - cellSize: 40, - range: '2017-02', - }, - { - orient: 'vertical', - yearLabel: { - margin: 40, - }, - monthLabel: { - margin: 20, - }, - cellSize: 40, - left: 460, - range: '2017-01', - }, - { - orient: 'vertical', - yearLabel: { - margin: 40, - }, - monthLabel: { - margin: 20, - }, - cellSize: 40, - top: 350, - range: '2017-03', - }, - { - orient: 'vertical', - yearLabel: { - margin: 40, - }, - dayLabel: { - firstDay: 1, - nameMap: ['周日', '周一', '周二', '周三', '周四', '周五', '周六'], - }, - monthLabel: { - nameMap: 'cn', - margin: 20, - }, - cellSize: 40, - top: 350, - left: 460, - range: '2017-04', - }], - - series: [{ - type: 'graph', - edgeSymbol: ['none', 'arrow'], - coordinateSystem: 'calendar', - links, - symbolSize: 10, - calendarIndex: 0, - data: graphData, - }, { - type: 'heatmap', - coordinateSystem: 'calendar', - data: this.getVirtulData(2017), - }, { - type: 'effectScatter', - coordinateSystem: 'calendar', - calendarIndex: 1, - symbolSize (val) { - return val[1] / 40 - }, - data: this.getVirtulData(2017), - }, { - type: 'scatter', - coordinateSystem: 'calendar', - calendarIndex: 2, - symbolSize (val) { - return val[1] / 60 - }, - data: this.getVirtulData(2017), - }, { - type: 'heatmap', - coordinateSystem: 'calendar', - calendarIndex: 3, - data: this.getVirtulData(2017), - }], + let links = graphData.map((item, idx) => { + return { + source: idx, + target: idx + 1, } - return option - }, - render () { - return ( -
-
- - -
+ }) + links.pop() + + const option = { + tooltip: { + position: 'top', + }, + visualMap: [{ + min: 0, + max: 1000, + calculable: true, + seriesIndex: [2, 3, 4], + orient: 'horizontal', + left: '55%', + bottom: 20, + }, { + min: 0, + max: 1000, + inRange: { + color: ['grey'], + opacity: [0, 0.3], + }, + controller: { + inRange: { + opacity: [0.3, 0.6], + }, + outOfRange: { + color: '#ccc', + }, + }, + calculable: true, + seriesIndex: [1], + orient: 'horizontal', + left: '10%', + bottom: 20, + }], + + calendar: [ + { + orient: 'vertical', + yearLabel: { + margin: 40, + }, + monthLabel: { + nameMap: 'cn', + margin: 20, + }, + dayLabel: { + firstDay: 1, + nameMap: 'cn', + }, + cellSize: 40, + range: '2017-02', + }, + { + orient: 'vertical', + yearLabel: { + margin: 40, + }, + monthLabel: { + margin: 20, + }, + cellSize: 40, + left: 460, + range: '2017-01', + }, + { + orient: 'vertical', + yearLabel: { + margin: 40, + }, + monthLabel: { + margin: 20, + }, + cellSize: 40, + top: 350, + range: '2017-03', + }, + { + orient: 'vertical', + yearLabel: { + margin: 40, + }, + dayLabel: { + firstDay: 1, + nameMap: ['周日', '周一', '周二', '周三', '周四', '周五', '周六'], + }, + monthLabel: { + nameMap: 'cn', + margin: 20, + }, + cellSize: 40, + top: 350, + left: 460, + range: '2017-04', + }], + + series: [{ + type: 'graph', + edgeSymbol: ['none', 'arrow'], + coordinateSystem: 'calendar', + links, + symbolSize: 10, + calendarIndex: 0, + data: graphData, + }, { + type: 'heatmap', + coordinateSystem: 'calendar', + data: getVirtulData(2017), + }, { + type: 'effectScatter', + coordinateSystem: 'calendar', + calendarIndex: 1, + symbolSize (val) { + return val[1] / 40 + }, + data: getVirtulData(2017), + }, { + type: 'scatter', + coordinateSystem: 'calendar', + calendarIndex: 2, + symbolSize (val) { + return val[1] / 60 + }, + data: getVirtulData(2017), + }, { + type: 'heatmap', + coordinateSystem: 'calendar', + calendarIndex: 3, + data: getVirtulData(2017), + }], + } + + return ( +
+
+ +
- ) - }, -}) +
+ ) +} export default CalendarComponent diff --git a/src/routes/chart/ECharts/ChartAPIComponent.js b/src/routes/chart/ECharts/ChartAPIComponent.js index 8a11f18..e34987f 100644 --- a/src/routes/chart/ECharts/ChartAPIComponent.js +++ b/src/routes/chart/ECharts/ChartAPIComponent.js @@ -1,10 +1,8 @@ import React from 'react' import ReactEcharts from 'echarts-for-react' -const ChartAPIComponent = React.createClass({ - propTypes: { - }, - getOtion () { +class ChartAPIComponent extends React.Component { + render () { const option = { title: { text: '漏斗图', @@ -94,9 +92,6 @@ const ChartAPIComponent = React.createClass({ ], } - return option - }, - render () { let code = ' { this.echarts_react = e; }} \n' + ' option={this.getOtion()} /> \n' + '\n' + @@ -107,7 +102,7 @@ const ChartAPIComponent = React.createClass({
{ this.echarts_react = e }} - option={this.getOtion()} + option={option} />
@@ -116,7 +111,7 @@ const ChartAPIComponent = React.createClass({
         
) - }, -}) + } +} export default ChartAPIComponent diff --git a/src/routes/chart/ECharts/ChartShowLoadingComponent.js b/src/routes/chart/ECharts/ChartShowLoadingComponent.js index 2398bfc..7ef0b67 100644 --- a/src/routes/chart/ECharts/ChartShowLoadingComponent.js +++ b/src/routes/chart/ECharts/ChartShowLoadingComponent.js @@ -1,67 +1,70 @@ import React from 'react' import ReactEcharts from 'echarts-for-react' -const ChartShowLoadingComponent = React.createClass({ - propTypes: { - }, +class ChartShowLoadingComponent extends React.Component { + constructor () { + super() + this._t = null + this.onChartReady = this.onChartReady.bind(this) + } componentWillUnmount () { clearTimeout(this._t) - }, + } + onChartReady (chart) { this._t = setTimeout(() => { chart.hideLoading() }, 3000) - }, - getOtion () { - const option = { - title: { - text: '基础雷达图', - }, - tooltip: {}, - legend: { - data: ['预算分配(Allocated Budget)', '实际开销(Actual Spending)'], - }, - radar: { - // shape: 'circle', - indicator: [ - { name: '销售(sales)', max: 6500 }, - { name: '管理(Administration)', max: 16000 }, - { name: '信息技术(Information Techology)', max: 30000 }, - { name: '客服(Customer Support)', max: 38000 }, - { name: '研发(Development)', max: 52000 }, - { name: '市场(Marketing)', max: 25000 }, - ], - }, - series: [{ - name: '预算 vs 开销(Budget vs spending)', - type: 'radar', - // areaStyle: {normal: {}}, - data: [ - { - value: [4300, 10000, 28000, 35000, 50000, 19000], - name: '预算分配(Allocated Budget)', - }, - { - value: [5000, 14000, 28000, 31000, 42000, 21000], - name: '实际开销(Actual Spending)', - }, - ], - }], - } - return option - }, - getLoadingOption () { - const option = { - text: '加载中...', - color: '#4413c2', - textColor: '#270240', - maskColor: 'rgba(194, 88, 86, 0.3)', - zlevel: 0, - } - return option - }, - _t: null, + } + render () { + const getOtion = () => { + const option = { + title: { + text: '基础雷达图', + }, + tooltip: {}, + legend: { + data: ['预算分配(Allocated Budget)', '实际开销(Actual Spending)'], + }, + radar: { + indicator: [ + { name: '销售(sales)', max: 6500 }, + { name: '管理(Administration)', max: 16000 }, + { name: '信息技术(Information Techology)', max: 30000 }, + { name: '客服(Customer Support)', max: 38000 }, + { name: '研发(Development)', max: 52000 }, + { name: '市场(Marketing)', max: 25000 }, + ], + }, + series: [{ + name: '预算 vs 开销(Budget vs spending)', + type: 'radar', + data: [ + { + value: [4300, 10000, 28000, 35000, 50000, 19000], + name: '预算分配(Allocated Budget)', + }, + { + value: [5000, 14000, 28000, 31000, 42000, 21000], + name: '实际开销(Actual Spending)', + }, + ], + }], + } + return option + } + const getLoadingOption = () => { + const option = { + text: '加载中...', + color: '#4413c2', + textColor: '#270240', + maskColor: 'rgba(194, 88, 86, 0.3)', + zlevel: 0, + } + return option + } + let code = 'onChartReady: function(chart) {\n' + " 'chart.hideLoading();\n" + '}\n\n' + @@ -76,9 +79,9 @@ const ChartShowLoadingComponent = React.createClass({
@@ -88,7 +91,7 @@ const ChartShowLoadingComponent = React.createClass({
) - }, -}) + } +} export default ChartShowLoadingComponent diff --git a/src/routes/chart/ECharts/ChartWithEventComponent.js b/src/routes/chart/ECharts/ChartWithEventComponent.js index bab17b3..c3f31b2 100644 --- a/src/routes/chart/ECharts/ChartWithEventComponent.js +++ b/src/routes/chart/ECharts/ChartWithEventComponent.js @@ -1,19 +1,17 @@ import React from 'react' import ReactEcharts from 'echarts-for-react' -const ChartWithEventComponent = React.createClass({ - propTypes: { - }, - onChartReady (echart) { +const ChartWithEventComponent = () => { + const onChartReady = (echart) => { console.log('echart is ready', echart) - }, - onChartLegendselectchanged (param, echart) { + } + const onChartLegendselectchanged = (param, echart) => { console.log(param, echart) - }, - onChartClick (param, echart) { + } + const onChartClick = (param, echart) => { console.log(param, echart) - }, - getOtion () { + } + const getOtion = () => { const option = { title: { text: '某站点用户访问来源', @@ -53,40 +51,39 @@ const ChartWithEventComponent = React.createClass({ ], } return option - }, - render () { - let onEvents = { - click: this.onChartClick, - legendselectchanged: this.onChartLegendselectchanged, - } - let code = 'let onEvents = {\n' + - " 'click': this.onChartClick,\n" + - " 'legendselectchanged': this.onChartLegendselectchanged\n" + + } + + let onEvents = { + click: onChartClick, + legendselectchanged: onChartLegendselectchanged, + } + let code = 'let onEvents = {\n' + + " 'click': onChartClick,\n" + + " 'legendselectchanged': onChartLegendselectchanged\n" + '}\n\n' + '' - return ( -
-
- - - -
-            {code}
-          
-
+ return ( +
+
+ + + +
+          {code}
+        
- ) - }, -}) +
+ ) +} export default ChartWithEventComponent diff --git a/src/routes/chart/ECharts/DynamicChartComponent.js b/src/routes/chart/ECharts/DynamicChartComponent.js index b6eaee0..3ab989f 100644 --- a/src/routes/chart/ECharts/DynamicChartComponent.js +++ b/src/routes/chart/ECharts/DynamicChartComponent.js @@ -192,8 +192,4 @@ class DynamicChartComponent extends React.Component { } } -// const DynamicChartComponent = React.createClass({ -// -// }) - export default DynamicChartComponent diff --git a/src/routes/chart/ECharts/EchartsComponent.js b/src/routes/chart/ECharts/EchartsComponent.js index 1abcf46..cedca62 100644 --- a/src/routes/chart/ECharts/EchartsComponent.js +++ b/src/routes/chart/ECharts/EchartsComponent.js @@ -1,46 +1,46 @@ import React from 'react' import PropTypes from 'prop-types' -// import SimpleChartComponent from './SimpleChartComponent' -// import ChartWithEventComponent from './ChartWithEventComponent' -// import ThemeChartComponent from './ThemeChartComponent' -// import ChartShowLoadingComponent from './ChartShowLoadingComponent' -// import ChartAPIComponent from './ChartAPIComponent' +import SimpleChartComponent from './SimpleChartComponent' +import ChartWithEventComponent from './ChartWithEventComponent' +import ThemeChartComponent from './ThemeChartComponent' +import ChartShowLoadingComponent from './ChartShowLoadingComponent' +import ChartAPIComponent from './ChartAPIComponent' import DynamicChartComponent from './DynamicChartComponent' -// import MapChartComponent from './MapChartComponent' +import MapChartComponent from './MapChartComponent' // v1.2.0 add 7 demo. -// import AirportCoordComponent from './AirportCoordComponent' -// import CalendarComponent from './CalendarComponent' -// import GaugeComponent from './GaugeComponent' -// import GCalendarComponent from './GCalendarComponent' -// import GraphComponent from './GraphComponent' -// import LunarCalendarComponent from './LunarCalendarComponent' -// import TreemapComponent from './TreemapComponent' -// import LiquidfillComponent from './LiquidfillComponent' -// import BubbleGradientComponent from './BubbleGradientComponent' -// import TransparentBar3DComPonent from './TransparentBar3DComPonent' -// import MoonComponent from './MoonComponent' +import AirportCoordComponent from './AirportCoordComponent' +import CalendarComponent from './CalendarComponent' +import GaugeComponent from './GaugeComponent' +import GCalendarComponent from './GCalendarComponent' +import GraphComponent from './GraphComponent' +import LunarCalendarComponent from './LunarCalendarComponent' +import TreemapComponent from './TreemapComponent' +import LiquidfillComponent from './LiquidfillComponent' +import BubbleGradientComponent from './BubbleGradientComponent' +import TransparentBar3DComPonent from './TransparentBar3DComPonent' +import MoonComponent from './MoonComponent' const EchartsComponent = ({ type }) => { - // if (type === 'simple') return () - // if (type === 'loading') return () - // if (type === 'api') return () - // if (type === 'events') return () - // if (type === 'theme') return () - // if (type === 'dynamic') return () - // if (type === 'map') return () - // if (type === 'airport') return () - // if (type === 'graph') return () - // if (type === 'calendar') return () - // if (type === 'treemap') return () - // if (type === 'gauge') return () - // if (type === 'gcalendar') return () - // if (type === 'lunar') return () - // if (type === 'liquid') return () - // if (type === 'BubbleGradientComponent') return () - // if (type === 'TransparentBar3DComPonent') return () - // if (type === 'MoonComponent') return () + if (type === 'simple') return () + if (type === 'loading') return () + if (type === 'api') return () + if (type === 'events') return () + if (type === 'theme') return () + if (type === 'dynamic') return () + if (type === 'map') return () + if (type === 'airport') return () + if (type === 'graph') return () + if (type === 'calendar') return () + if (type === 'treemap') return () + if (type === 'gauge') return () + if (type === 'gcalendar') return () + if (type === 'lunar') return () + if (type === 'liquid') return () + if (type === 'BubbleGradientComponent') return () + if (type === 'TransparentBar3DComPonent') return () + if (type === 'MoonComponent') return () return () } diff --git a/src/routes/chart/ECharts/GCalendarComponent.js b/src/routes/chart/ECharts/GCalendarComponent.js index 3192b0e..78d1503 100644 --- a/src/routes/chart/ECharts/GCalendarComponent.js +++ b/src/routes/chart/ECharts/GCalendarComponent.js @@ -2,8 +2,8 @@ import React from 'react' import ReactEcharts from 'echarts-for-react' import echarts from 'echarts' -const GCalendarComponent = React.createClass({ - getVirtulData (year) { +const GCalendarComponent = () => { + const getVirtulData = (year) => { year = year || '2017' let date = +echarts.number.parseDate(`${year}-01-01`) let end = +echarts.number.parseDate(`${+year + 1}-01-01`) @@ -16,58 +16,55 @@ const GCalendarComponent = React.createClass({ ]) } return data - }, - getOtion () { - const option = { - tooltip: { - position: 'top', - }, - visualMap: { - min: 0, - max: 1000, - calculable: true, - orient: 'horizontal', - left: 'center', - top: 'top', - }, + } - calendar: [{ - range: '2017', - cellSize: ['auto', 20], - }, { - top: 260, - range: '2016', - cellSize: ['auto', 20], - }], + const option = { + tooltip: { + position: 'top', + }, + visualMap: { + min: 0, + max: 1000, + calculable: true, + orient: 'horizontal', + left: 'center', + top: 'top', + }, - series: [{ - type: 'heatmap', - coordinateSystem: 'calendar', - calendarIndex: 0, - data: this.getVirtulData(2017), - }, { - type: 'heatmap', - coordinateSystem: 'calendar', - calendarIndex: 1, - data: this.getVirtulData(2016), - }], - } - return option - }, - render () { - return ( -
-
- - -
+ calendar: [{ + range: '2017', + cellSize: ['auto', 20], + }, { + top: 260, + range: '2016', + cellSize: ['auto', 20], + }], + + series: [{ + type: 'heatmap', + coordinateSystem: 'calendar', + calendarIndex: 0, + data: getVirtulData(2017), + }, { + type: 'heatmap', + coordinateSystem: 'calendar', + calendarIndex: 1, + data: getVirtulData(2016), + }], + } + + return ( +
+
+ +
- ) - }, -}) +
+ ) +} export default GCalendarComponent diff --git a/src/routes/chart/ECharts/GaugeComponent.js b/src/routes/chart/ECharts/GaugeComponent.js index b3f96a2..f756cf3 100644 --- a/src/routes/chart/ECharts/GaugeComponent.js +++ b/src/routes/chart/ECharts/GaugeComponent.js @@ -1,30 +1,10 @@ import React from 'react' import ReactEcharts from 'echarts-for-react' -const GaugeComponent = React.createClass({ - getInitialState () { - return { option: this.getOtion() } - }, - componentDidMount () { - if (this.timeTicket) { - clearInterval(this.timeTicket) - } - this.timeTicket = setInterval(() => { - let option = this.state.option - option.series[0].data[0].value = (Math.random() * 100).toFixed(2) - 0 - option.series[1].data[0].value = (Math.random() * 7).toFixed(2) - 0 - option.series[2].data[0].value = (Math.random() * 2).toFixed(2) - 0 - option.series[3].data[0].value = (Math.random() * 2).toFixed(2) - 0 - this.setState({ option }) - }, 1000) - }, - componentWillUnmount () { - if (this.timeTicket) { - clearInterval(this.timeTicket) - } - }, - getOtion () { - let option = { +class GaugeComponent extends React.Component { + constructor () { + super() + const option = { backgroundColor: '#1b1b1b', tooltip: { formatter: '{a}
{c} {b}', @@ -214,10 +194,10 @@ const GaugeComponent = React.createClass({ }, formatter (v) { switch (`${v}`) { - case '0' : return 'E' - case '1' : return 'Gas' - case '2' : return 'F' - default : return null + case '0': return 'E' + case '1': return 'Gas' + case '2': return 'F' + default: return null } }, }, @@ -273,10 +253,10 @@ const GaugeComponent = React.createClass({ }, formatter (v) { switch (`${v}`) { - case '0' : return 'H' - case '1' : return 'Water' - case '2' : return 'C' - default : return null + case '0': return 'H' + case '1': return 'Water' + case '2': return 'C' + default: return null } }, }, @@ -304,9 +284,31 @@ const GaugeComponent = React.createClass({ }, ], } - return option - }, - timeTicket: null, + this.state = { + option, + } + } + + componentDidMount () { + if (this.timeTicket) { + clearInterval(this.timeTicket) + } + this.timeTicket = setInterval(() => { + let { option } = this.state + option.series[0].data[0].value = (Math.random() * 100).toFixed(2) - 0 + option.series[1].data[0].value = (Math.random() * 7).toFixed(2) - 0 + option.series[2].data[0].value = (Math.random() * 2).toFixed(2) - 0 + option.series[3].data[0].value = (Math.random() * 2).toFixed(2) - 0 + this.setState({ option }) + }, 1000) + } + + componentWillUnmount () { + if (this.timeTicket) { + clearInterval(this.timeTicket) + } + } + render () { return (
@@ -320,7 +322,7 @@ const GaugeComponent = React.createClass({
) - }, -}) + } +} export default GaugeComponent diff --git a/src/routes/chart/ECharts/GraphComponent.js b/src/routes/chart/ECharts/GraphComponent.js index 64e3035..c3ab238 100644 --- a/src/routes/chart/ECharts/GraphComponent.js +++ b/src/routes/chart/ECharts/GraphComponent.js @@ -1,10 +1,12 @@ import React from 'react' import ReactEcharts from 'echarts-for-react' -const GraphComponent = React.createClass({ - getOtion () { +const GraphComponent = () => { + const getOtion = () => { const webkitDep = - { type: 'force', categories: [{ name: 'HTMLElement', keyword: {}, base: 'HTMLElement' }, { name: 'WebGL', keyword: {}, base: 'WebGLRenderingContext' }, { name: 'SVG', keyword: {}, base: 'SVGElement' }, { name: 'CSS', keyword: {}, base: 'CSSRule' }, { name: 'Other', keyword: {} }], nodes: [{ name: 'AnalyserNode', value: 1, category: 4 }, { name: 'AudioNode', value: 1, category: 4 }, { name: 'Uint8Array', value: 1, category: 4 }, { name: 'Float32Array', value: 1, category: 4 }, { name: 'ArrayBuffer', value: 1, category: 4 }, { name: 'ArrayBufferView', value: 1, category: 4 }, { name: 'Attr', value: 1, category: 4 }, { name: 'Node', value: 1, category: 4 }, { name: 'Element', value: 1, category: 4 }, { name: 'AudioBuffer', value: 1, category: 4 }, { name: 'AudioBufferCallback', value: 1, category: 4 }, { name: 'AudioBufferSourceNode', value: 1, category: 4 }, { name: 'AudioSourceNode', value: 1, category: 4 }, { name: 'AudioGain', value: 1, category: 4 }, { name: 'AudioParam', value: 1, category: 4 }, { name: 'AudioContext', value: 1, category: 4 }, { name: 'AudioDestinationNode', value: 1, category: 4 }, { name: 'AudioListener', value: 1, category: 4 }, { name: 'BiquadFilterNode', value: 1, category: 4 }, { name: 'ChannelMergerNode', value: 1, category: 4 }, { name: 'ChannelSplitterNode', value: 1, category: 4 }, { name: 'ConvolverNode', value: 1, category: 4 }, { name: 'DelayNode', value: 1, category: 4 }, { name: 'DynamicsCompressorNode', value: 1, category: 4 }, { name: 'GainNode', value: 1, category: 4 }, { name: 'MediaElementAudioSourceNode', value: 1, category: 4 }, { name: 'MediaStreamAudioDestinationNode', value: 1, category: 4 }, { name: 'MediaStreamAudioSourceNode', value: 1, category: 4 }, { name: 'OscillatorNode', value: 1, category: 4 }, { name: 'PannerNode', value: 1, category: 4 }, { name: 'ScriptProcessorNode', value: 1, category: 4 }, { name: 'WaveShaperNode', value: 1, category: 4 }, { name: 'WaveTable', value: 1, category: 4 }, { name: 'CanvasRenderingContext', value: 1, category: 4 }, { name: 'HTMLCanvasElement', value: 1, category: 0 }, { name: 'CanvasRenderingContext2D', value: 1, category: 4 }, { name: 'ImageData', value: 1, category: 4 }, { name: 'CanvasGradient', value: 1, category: 4 }, { name: 'CanvasPattern', value: 1, category: 4 }, { name: 'HTMLImageElement', value: 1, category: 0 }, { name: 'HTMLVideoElement', value: 1, category: 0 }, { name: 'TextMetrics', value: 1, category: 4 }, { name: 'CDATASection', value: 1, category: 4 }, { name: 'Text', value: 1, category: 4 }, { name: 'CharacterData', value: 1, category: 4 }, { name: 'ClientRectList', value: 1, category: 4 }, { name: 'ClientRect', value: 1, category: 4 }, { name: 'Clipboard', value: 1, category: 4 }, { name: 'FileList', value: 1, category: 4 }, { name: 'DataTransferItemList', value: 1, category: 4 }, { name: 'Comment', value: 1, category: 4 }, { name: 'Console', value: 1, category: 4 }, { name: 'MemoryInfo', value: 1, category: 4 }, { name: 'Crypto', value: 1, category: 4 }, { name: 'CSSCharsetRule', value: 1, category: 3 }, { name: 'CSSRule', value: 3, category: 3 }, { name: 'CSSFontFaceRule', value: 1, category: 3 }, { name: 'CSSStyleDeclaration', value: 1, category: 3 }, { name: 'CSSImportRule', value: 1, category: 3 }, { name: 'MediaList', value: 1, category: 4 }, { name: 'CSSStyleSheet', value: 1, category: 3 }, { name: 'CSSMediaRule', value: 1, category: 3 }, { name: 'CSSRuleList', value: 1, category: 3 }, { name: 'CSSPageRule', value: 1, category: 3 }, { name: 'CSSPrimitiveValue', value: 1, category: 3 }, { name: 'CSSValue', value: 1, category: 3 }, { name: 'Counter', value: 1, category: 4 }, { name: 'RGBColor', value: 1, category: 4 }, { name: 'Rect', value: 1, category: 4 }, { name: 'CSSStyleRule', value: 1, category: 3 }, { name: 'StyleSheet', value: 1, category: 4 }, { name: 'CSSUnknownRule', value: 1, category: 3 }, { name: 'CSSValueList', value: 1, category: 3 }, { name: 'Database', value: 1, category: 4 }, { name: 'SQLTransactionCallback', value: 1, category: 4 }, { name: 'DatabaseCallback', value: 1, category: 4 }, { name: 'DatabaseSync', value: 1, category: 4 }, { name: 'SQLTransactionSyncCallback', value: 1, category: 4 }, { name: 'DataTransferItem', value: 1, category: 4 }, { name: 'StringCallback', value: 1, category: 4 }, { name: 'Entry', value: 1, category: 4 }, { name: 'File', value: 1, category: 4 }, { name: 'DataView', value: 1, category: 4 }, { name: 'DedicatedWorkerContext', value: 1, category: 4 }, { name: 'WorkerContext', value: 1, category: 4 }, { name: 'DirectoryEntry', value: 1, category: 4 }, { name: 'DirectoryReader', value: 1, category: 4 }, { name: 'VoidCallback', value: 1, category: 4 }, { name: 'DirectoryEntrySync', value: 1, category: 4 }, { name: 'EntrySync', value: 1, category: 4 }, { name: 'DirectoryReaderSync', value: 1, category: 4 }, { name: 'FileEntrySync', value: 1, category: 4 }, { name: 'EntriesCallback', value: 1, category: 4 }, { name: 'EntryArraySync', value: 1, category: 4 }, { name: 'DocumentFragment', value: 1, category: 4 }, { name: 'NodeList', value: 1, category: 4 }, { name: 'DocumentType', value: 1, category: 4 }, { name: 'NamedNodeMap', value: 1, category: 4 }, { name: 'DOMFileSystem', value: 1, category: 4 }, { name: 'DOMFileSystemSync', value: 1, category: 4 }, { name: 'DOMImplementation', value: 1, category: 4 }, { name: 'HTMLDocument', value: 1, category: 0 }, { name: 'DOMMimeType', value: 1, category: 4 }, { name: 'DOMPlugin', value: 1, category: 4 }, { name: 'DOMMimeTypeArray', value: 1, category: 4 }, { name: 'DOMPluginArray', value: 1, category: 4 }, { name: 'DOMSelection', value: 1, category: 4 }, { name: 'Range', value: 1, category: 4 }, { name: 'DOMSettableTokenList', value: 1, category: 4 }, { name: 'DOMTokenList', value: 1, category: 4 }, { name: 'DOMStringMap', value: 1, category: 4 }, { name: 'ShadowRoot', value: 1, category: 4 }, { name: 'Entity', value: 1, category: 4 }, { name: 'EntityReference', value: 1, category: 4 }, { name: 'EntryArray', value: 1, category: 4 }, { name: 'MetadataCallback', value: 1, category: 4 }, { name: 'EntryCallback', value: 1, category: 4 }, { name: 'Metadata', value: 1, category: 4 }, { name: 'ErrorCallback', value: 1, category: 4 }, { name: 'FileError', value: 1, category: 4 }, { name: 'FileCallback', value: 1, category: 4 }, { name: 'FileEntry', value: 1, category: 4 }, { name: 'FileWriterCallback', value: 1, category: 4 }, { name: 'FileWriterSync', value: 1, category: 4 }, { name: 'FileReader', value: 1, category: 4 }, { name: 'FileReaderSync', value: 1, category: 4 }, { name: 'FileSystemCallback', value: 1, category: 4 }, { name: 'FileWriter', value: 1, category: 4 }, { name: 'Float64Array', value: 1, category: 4 }, { name: 'GamepadList', value: 1, category: 4 }, { name: 'Gamepad', value: 1, category: 4 }, { name: 'Geolocation', value: 1, category: 4 }, { name: 'PositionCallback', value: 1, category: 4 }, { name: 'Geoposition', value: 1, category: 4 }, { name: 'Coordinates', value: 1, category: 4 }, { name: 'HTMLAllCollection', value: 1, category: 0 }, { name: 'HTMLAnchorElement', value: 1, category: 0 }, { name: 'HTMLElement', value: 3, category: 0 }, { name: 'HTMLAppletElement', value: 1, category: 0 }, { name: 'HTMLAreaElement', value: 1, category: 0 }, { name: 'HTMLAudioElement', value: 1, category: 0 }, { name: 'HTMLMediaElement', value: 1, category: 0 }, { name: 'HTMLBaseElement', value: 1, category: 0 }, { name: 'HTMLBaseFontElement', value: 1, category: 0 }, { name: 'HTMLBodyElement', value: 1, category: 0 }, { name: 'HTMLBRElement', value: 1, category: 0 }, { name: 'HTMLButtonElement', value: 1, category: 0 }, { name: 'HTMLFormElement', value: 1, category: 0 }, { name: 'ValidityState', value: 1, category: 4 }, { name: 'HTMLCollection', value: 1, category: 0 }, { name: 'HTMLContentElement', value: 1, category: 0 }, { name: 'HTMLDataListElement', value: 1, category: 0 }, { name: 'HTMLDetailsElement', value: 1, category: 0 }, { name: 'HTMLDirectoryElement', value: 1, category: 0 }, { name: 'HTMLDivElement', value: 1, category: 0 }, { name: 'HTMLDListElement', value: 1, category: 0 }, { name: 'HTMLEmbedElement', value: 1, category: 0 }, { name: 'SVGDocument', value: 1, category: 2 }, { name: 'HTMLFieldSetElement', value: 1, category: 0 }, { name: 'HTMLFontElement', value: 1, category: 0 }, { name: 'HTMLFormControlsCollection', value: 1, category: 0 }, { name: 'HTMLFrameElement', value: 1, category: 0 }, { name: 'HTMLFrameSetElement', value: 1, category: 0 }, { name: 'HTMLHeadElement', value: 1, category: 0 }, { name: 'HTMLHeadingElement', value: 1, category: 0 }, { name: 'HTMLHRElement', value: 1, category: 0 }, { name: 'HTMLHtmlElement', value: 1, category: 0 }, { name: 'HTMLIFrameElement', value: 1, category: 0 }, { name: 'HTMLInputElement', value: 1, category: 0 }, { name: 'HTMLKeygenElement', value: 1, category: 0 }, { name: 'HTMLLabelElement', value: 1, category: 0 }, { name: 'HTMLLegendElement', value: 1, category: 0 }, { name: 'HTMLLIElement', value: 1, category: 0 }, { name: 'HTMLLinkElement', value: 1, category: 0 }, { name: 'HTMLMapElement', value: 1, category: 0 }, { name: 'HTMLMarqueeElement', value: 1, category: 0 }, { name: 'TimeRanges', value: 1, category: 4 }, { name: 'MediaController', value: 1, category: 4 }, { name: 'MediaError', value: 1, category: 4 }, { name: 'TextTrackList', value: 1, category: 4 }, { name: 'TextTrack', value: 1, category: 4 }, { name: 'HTMLMenuElement', value: 1, category: 0 }, { name: 'HTMLMetaElement', value: 1, category: 0 }, { name: 'HTMLMeterElement', value: 1, category: 0 }, { name: 'HTMLModElement', value: 1, category: 0 }, { name: 'HTMLObjectElement', value: 1, category: 0 }, { name: 'HTMLOListElement', value: 1, category: 0 }, { name: 'HTMLOptGroupElement', value: 1, category: 0 }, { name: 'HTMLOptionElement', value: 1, category: 0 }, { name: 'HTMLOptionsCollection', value: 1, category: 0 }, { name: 'HTMLOutputElement', value: 1, category: 0 }, { name: 'HTMLParagraphElement', value: 1, category: 0 }, { name: 'HTMLParamElement', value: 1, category: 0 }, { name: 'HTMLPreElement', value: 1, category: 0 }, { name: 'HTMLProgressElement', value: 1, category: 0 }, { name: 'HTMLQuoteElement', value: 1, category: 0 }, { name: 'HTMLScriptElement', value: 1, category: 0 }, { name: 'HTMLSelectElement', value: 1, category: 0 }, { name: 'HTMLShadowElement', value: 1, category: 0 }, { name: 'HTMLSourceElement', value: 1, category: 0 }, { name: 'HTMLSpanElement', value: 1, category: 0 }, { name: 'HTMLStyleElement', value: 1, category: 0 }, { name: 'HTMLTableCaptionElement', value: 1, category: 0 }, { name: 'HTMLTableCellElement', value: 1, category: 0 }, { name: 'HTMLTableColElement', value: 1, category: 0 }, { name: 'HTMLTableElement', value: 1, category: 0 }, { name: 'HTMLTableSectionElement', value: 1, category: 0 }, { name: 'HTMLTableRowElement', value: 1, category: 0 }, { name: 'HTMLTextAreaElement', value: 1, category: 0 }, { name: 'HTMLTitleElement', value: 1, category: 0 }, { name: 'HTMLTrackElement', value: 1, category: 0 }, { name: 'HTMLUListElement', value: 1, category: 0 }, { name: 'HTMLUnknownElement', value: 1, category: 0 }, { name: 'IDBCursor', value: 1, category: 4 }, { name: 'IDBAny', value: 1, category: 4 }, { name: 'IDBKey', value: 1, category: 4 }, { name: 'IDBRequest', value: 1, category: 4 }, { name: 'IDBCursorWithValue', value: 1, category: 4 }, { name: 'IDBDatabase', value: 1, category: 4 }, { name: 'DOMStringList', value: 1, category: 4 }, { name: 'IDBObjectStore', value: 1, category: 4 }, { name: 'IDBTransaction', value: 1, category: 4 }, { name: 'IDBFactory', value: 1, category: 4 }, { name: 'IDBVersionChangeRequest', value: 1, category: 4 }, { name: 'IDBOpenDBRequest', value: 1, category: 4 }, { name: 'IDBIndex', value: 1, category: 4 }, { name: 'IDBKeyRange', value: 1, category: 4 }, { name: 'DOMError', value: 1, category: 4 }, { name: 'Int16Array', value: 1, category: 4 }, { name: 'Int32Array', value: 1, category: 4 }, { name: 'Int8Array', value: 1, category: 4 }, { name: 'JavaScriptCallFrame', value: 1, category: 4 }, { name: 'LocalMediaStream', value: 1, category: 4 }, { name: 'MediaStream', value: 1, category: 4 }, { name: 'Location', value: 1, category: 4 }, { name: 'MediaQueryList', value: 1, category: 4 }, { name: 'MediaQueryListListener', value: 1, category: 4 }, { name: 'MediaSource', value: 1, category: 4 }, { name: 'SourceBufferList', value: 1, category: 4 }, { name: 'SourceBuffer', value: 1, category: 4 }, { name: 'MediaStreamTrackList', value: 1, category: 4 }, { name: 'MediaStreamList', value: 1, category: 4 }, { name: 'MediaStreamTrack', value: 1, category: 4 }, { name: 'MessageChannel', value: 1, category: 4 }, { name: 'MessagePort', value: 1, category: 4 }, { name: 'MutationObserver', value: 1, category: 4 }, { name: 'MutationRecord', value: 1, category: 4 }, { name: 'Navigator', value: 1, category: 4 }, { name: 'BatteryManager', value: 1, category: 4 }, { name: 'NavigatorUserMediaErrorCallback', value: 1, category: 4 }, { name: 'NavigatorUserMediaError', value: 1, category: 4 }, { name: 'NavigatorUserMediaSuccessCallback', value: 1, category: 4 }, { name: 'NodeFilter', value: 1, category: 4 }, { name: 'NodeIterator', value: 1, category: 4 }, { name: 'Notation', value: 1, category: 4 }, { name: 'Notification', value: 1, category: 4 }, { name: 'NotificationPermissionCallback', value: 1, category: 4 }, { name: 'NotificationCenter', value: 1, category: 4 }, { name: 'OESVertexArrayObject', value: 1, category: 4 }, { name: 'WebGLVertexArrayObjectOES', value: 1, category: 1 }, { name: 'Performance', value: 1, category: 4 }, { name: 'PerformanceNavigation', value: 1, category: 4 }, { name: 'PerformanceTiming', value: 1, category: 4 }, { name: 'PositionErrorCallback', value: 1, category: 4 }, { name: 'PositionError', value: 1, category: 4 }, { name: 'ProcessingInstruction', value: 1, category: 4 }, { name: 'RadioNodeList', value: 1, category: 4 }, { name: 'RTCDataChannel', value: 1, category: 4 }, { name: 'RTCPeerConnection', value: 1, category: 4 }, { name: 'RTCSessionDescription', value: 1, category: 4 }, { name: 'RTCIceCandidate', value: 1, category: 4 }, { name: 'RTCSessionDescriptionCallback', value: 1, category: 4 }, { name: 'RTCStatsCallback', value: 1, category: 4 }, { name: 'RTCStatsResponse', value: 1, category: 4 }, { name: 'RTCStatsReport', value: 1, category: 4 }, { name: 'RTCStatsElement', value: 1, category: 4 }, { name: 'ScriptProfile', value: 1, category: 4 }, { name: 'ScriptProfileNode', value: 1, category: 4 }, { name: 'SharedWorker', value: 1, category: 4 }, { name: 'AbstractWorker', value: 1, category: 4 }, { name: 'SharedWorkerContext', value: 1, category: 4 }, { name: 'SpeechGrammarList', value: 1, category: 4 }, { name: 'SpeechGrammar', value: 1, category: 4 }, { name: 'SpeechInputResultList', value: 1, category: 4 }, { name: 'SpeechInputResult', value: 1, category: 4 }, { name: 'SpeechRecognition', value: 1, category: 4 }, { name: 'SpeechRecognitionResult', value: 1, category: 4 }, { name: 'SpeechRecognitionAlternative', value: 1, category: 4 }, { name: 'SpeechRecognitionResultList', value: 1, category: 4 }, { name: 'SQLResultSet', value: 1, category: 4 }, { name: 'SQLResultSetRowList', value: 1, category: 4 }, { name: 'SQLStatementCallback', value: 1, category: 4 }, { name: 'SQLTransaction', value: 1, category: 4 }, { name: 'SQLStatementErrorCallback', value: 1, category: 4 }, { name: 'SQLTransactionErrorCallback', value: 1, category: 4 }, { name: 'SQLError', value: 1, category: 4 }, { name: 'SQLTransactionSync', value: 1, category: 4 }, { name: 'StorageInfo', value: 1, category: 4 }, { name: 'StorageInfoUsageCallback', value: 1, category: 4 }, { name: 'StorageInfoQuotaCallback', value: 1, category: 4 }, { name: 'StorageInfoErrorCallback', value: 1, category: 4 }, { name: 'DOMCoreException', value: 1, category: 4 }, { name: 'StyleSheetList', value: 1, category: 4 }, { name: 'SVGAElement', value: 1, category: 2 }, { name: 'SVGTransformable', value: 1, category: 2 }, { name: 'SVGAnimatedString', value: 1, category: 2 }, { name: 'SVGAltGlyphDefElement', value: 1, category: 2 }, { name: 'SVGElement', value: 3, category: 2 }, { name: 'SVGAltGlyphElement', value: 1, category: 2 }, { name: 'SVGURIReference', value: 1, category: 2 }, { name: 'SVGAltGlyphItemElement', value: 1, category: 2 }, { name: 'SVGAnimateColorElement', value: 1, category: 2 }, { name: 'SVGAnimationElement', value: 1, category: 2 }, { name: 'SVGAnimatedAngle', value: 1, category: 2 }, { name: 'SVGAngle', value: 1, category: 2 }, { name: 'SVGAnimatedLength', value: 1, category: 2 }, { name: 'SVGLength', value: 1, category: 2 }, { name: 'SVGAnimatedLengthList', value: 1, category: 2 }, { name: 'SVGLengthList', value: 1, category: 2 }, { name: 'SVGAnimatedNumberList', value: 1, category: 2 }, { name: 'SVGNumberList', value: 1, category: 2 }, { name: 'SVGAnimatedPreserveAspectRatio', value: 1, category: 2 }, { name: 'SVGPreserveAspectRatio', value: 1, category: 2 }, { name: 'SVGAnimatedRect', value: 1, category: 2 }, { name: 'SVGRect', value: 1, category: 2 }, { name: 'SVGAnimatedTransformList', value: 1, category: 2 }, { name: 'SVGTransformList', value: 1, category: 2 }, { name: 'SVGAnimateElement', value: 1, category: 2 }, { name: 'SVGAnimateMotionElement', value: 1, category: 2 }, { name: 'SVGAnimateTransformElement', value: 1, category: 2 }, { name: 'ElementTimeControl', value: 1, category: 4 }, { name: 'SVGCircleElement', value: 1, category: 2 }, { name: 'SVGClipPathElement', value: 1, category: 2 }, { name: 'SVGAnimatedEnumeration', value: 1, category: 2 }, { name: 'SVGColor', value: 1, category: 2 }, { name: 'SVGComponentTransferFunctionElement', value: 1, category: 2 }, { name: 'SVGAnimatedNumber', value: 1, category: 2 }, { name: 'SVGCursorElement', value: 1, category: 2 }, { name: 'SVGExternalResourcesRequired', value: 1, category: 2 }, { name: 'SVGDefsElement', value: 1, category: 2 }, { name: 'SVGDescElement', value: 1, category: 2 }, { name: 'SVGStylable', value: 1, category: 2 }, { name: 'SVGSVGElement', value: 1, category: 2 }, { name: 'SVGElementInstance', value: 1, category: 2 }, { name: 'EventTarget', value: 1, category: 4 }, { name: 'SVGElementInstanceList', value: 1, category: 2 }, { name: 'SVGUseElement', value: 1, category: 2 }, { name: 'SVGEllipseElement', value: 1, category: 2 }, { name: 'SVGAnimatedBoolean', value: 1, category: 2 }, { name: 'SVGFEBlendElement', value: 1, category: 2 }, { name: 'SVGFilterPrimitiveStandardAttributes', value: 1, category: 2 }, { name: 'SVGFEColorMatrixElement', value: 1, category: 2 }, { name: 'SVGFEComponentTransferElement', value: 1, category: 2 }, { name: 'SVGFECompositeElement', value: 1, category: 2 }, { name: 'SVGFEConvolveMatrixElement', value: 1, category: 2 }, { name: 'SVGAnimatedInteger', value: 1, category: 2 }, { name: 'SVGFEDiffuseLightingElement', value: 1, category: 2 }, { name: 'SVGFEDisplacementMapElement', value: 1, category: 2 }, { name: 'SVGFEDistantLightElement', value: 1, category: 2 }, { name: 'SVGFEDropShadowElement', value: 1, category: 2 }, { name: 'SVGFEFloodElement', value: 1, category: 2 }, { name: 'SVGFEFuncAElement', value: 1, category: 2 }, { name: 'SVGFEFuncBElement', value: 1, category: 2 }, { name: 'SVGFEFuncGElement', value: 1, category: 2 }, { name: 'SVGFEFuncRElement', value: 1, category: 2 }, { name: 'SVGFEGaussianBlurElement', value: 1, category: 2 }, { name: 'SVGFEImageElement', value: 1, category: 2 }, { name: 'SVGFEMergeElement', value: 1, category: 2 }, { name: 'SVGFEMergeNodeElement', value: 1, category: 2 }, { name: 'SVGFEMorphologyElement', value: 1, category: 2 }, { name: 'SVGFEOffsetElement', value: 1, category: 2 }, { name: 'SVGFEPointLightElement', value: 1, category: 2 }, { name: 'SVGFESpecularLightingElement', value: 1, category: 2 }, { name: 'SVGFESpotLightElement', value: 1, category: 2 }, { name: 'SVGFETileElement', value: 1, category: 2 }, { name: 'SVGFETurbulenceElement', value: 1, category: 2 }, { name: 'SVGFilterElement', value: 1, category: 2 }, { name: 'SVGFitToViewBox', value: 1, category: 2 }, { name: 'SVGFontElement', value: 1, category: 2 }, { name: 'SVGFontFaceElement', value: 1, category: 2 }, { name: 'SVGFontFaceFormatElement', value: 1, category: 2 }, { name: 'SVGFontFaceNameElement', value: 1, category: 2 }, { name: 'SVGFontFaceSrcElement', value: 1, category: 2 }, { name: 'SVGFontFaceUriElement', value: 1, category: 2 }, { name: 'SVGForeignObjectElement', value: 1, category: 2 }, { name: 'SVGGElement', value: 1, category: 2 }, { name: 'SVGGlyphElement', value: 1, category: 2 }, { name: 'SVGGlyphRefElement', value: 1, category: 2 }, { name: 'SVGGradientElement', value: 1, category: 2 }, { name: 'SVGHKernElement', value: 1, category: 2 }, { name: 'SVGImageElement', value: 1, category: 2 }, { name: 'SVGLinearGradientElement', value: 1, category: 2 }, { name: 'SVGLineElement', value: 1, category: 2 }, { name: 'SVGLocatable', value: 1, category: 2 }, { name: 'SVGMatrix', value: 1, category: 2 }, { name: 'SVGMarkerElement', value: 1, category: 2 }, { name: 'SVGMaskElement', value: 1, category: 2 }, { name: 'SVGMetadataElement', value: 1, category: 2 }, { name: 'SVGMissingGlyphElement', value: 1, category: 2 }, { name: 'SVGMPathElement', value: 1, category: 2 }, { name: 'SVGNumber', value: 1, category: 2 }, { name: 'SVGPaint', value: 1, category: 2 }, { name: 'SVGPathElement', value: 1, category: 2 }, { name: 'SVGPathSegList', value: 1, category: 2 }, { name: 'SVGPathSegArcAbs', value: 1, category: 2 }, { name: 'SVGPathSegArcRel', value: 1, category: 2 }, { name: 'SVGPathSegClosePath', value: 1, category: 2 }, { name: 'SVGPathSegCurvetoCubicAbs', value: 1, category: 2 }, { name: 'SVGPathSegCurvetoCubicRel', value: 1, category: 2 }, { name: 'SVGPathSegCurvetoCubicSmoothAbs', value: 1, category: 2 }, { name: 'SVGPathSegCurvetoCubicSmoothRel', value: 1, category: 2 }, { name: 'SVGPathSegCurvetoQuadraticAbs', value: 1, category: 2 }, { name: 'SVGPathSegCurvetoQuadraticRel', value: 1, category: 2 }, { name: 'SVGPathSegCurvetoQuadraticSmoothAbs', value: 1, category: 2 }, { name: 'SVGPathSegCurvetoQuadraticSmoothRel', value: 1, category: 2 }, { name: 'SVGPathSegLinetoAbs', value: 1, category: 2 }, { name: 'SVGPathSegLinetoHorizontalAbs', value: 1, category: 2 }, { name: 'SVGPathSegLinetoHorizontalRel', value: 1, category: 2 }, { name: 'SVGPathSegLinetoRel', value: 1, category: 2 }, { name: 'SVGPathSegLinetoVerticalAbs', value: 1, category: 2 }, { name: 'SVGPathSegLinetoVerticalRel', value: 1, category: 2 }, { name: 'SVGPathSegMovetoAbs', value: 1, category: 2 }, { name: 'SVGPathSegMovetoRel', value: 1, category: 2 }, { name: 'SVGPoint', value: 1, category: 2 }, { name: 'SVGPathSeg', value: 1, category: 2 }, { name: 'SVGPatternElement', value: 1, category: 2 }, { name: 'SVGPointList', value: 1, category: 2 }, { name: 'SVGPolygonElement', value: 1, category: 2 }, { name: 'SVGPolylineElement', value: 1, category: 2 }, { name: 'SVGRadialGradientElement', value: 1, category: 2 }, { name: 'SVGRectElement', value: 1, category: 2 }, { name: 'SVGScriptElement', value: 1, category: 2 }, { name: 'SVGSetElement', value: 1, category: 2 }, { name: 'SVGStopElement', value: 1, category: 2 }, { name: 'SVGStyleElement', value: 1, category: 2 }, { name: 'SVGLangSpace', value: 1, category: 2 }, { name: 'SVGZoomAndPan', value: 1, category: 2 }, { name: 'SVGViewSpec', value: 1, category: 2 }, { name: 'SVGTransform', value: 1, category: 2 }, { name: 'SVGSwitchElement', value: 1, category: 2 }, { name: 'SVGSymbolElement', value: 1, category: 2 }, { name: 'SVGTests', value: 1, category: 2 }, { name: 'SVGStringList', value: 1, category: 2 }, { name: 'SVGTextContentElement', value: 1, category: 2 }, { name: 'SVGTextElement', value: 1, category: 2 }, { name: 'SVGTextPathElement', value: 1, category: 2 }, { name: 'SVGTextPositioningElement', value: 1, category: 2 }, { name: 'SVGTitleElement', value: 1, category: 2 }, { name: 'SVGTRefElement', value: 1, category: 2 }, { name: 'SVGTSpanElement', value: 1, category: 2 }, { name: 'SVGViewElement', value: 1, category: 2 }, { name: 'SVGVKernElement', value: 1, category: 2 }, { name: 'TextTrackCueList', value: 1, category: 4 }, { name: 'TextTrackCue', value: 1, category: 4 }, { name: 'Touch', value: 1, category: 4 }, { name: 'TouchList', value: 1, category: 4 }, { name: 'TreeWalker', value: 1, category: 4 }, { name: 'Uint16Array', value: 1, category: 4 }, { name: 'Uint32Array', value: 1, category: 4 }, { name: 'Uint8ClampedArray', value: 1, category: 4 }, { name: 'WebGLRenderingContext', value: 3, category: 1 }, { name: 'WebGLProgram', value: 1, category: 1 }, { name: 'WebGLBuffer', value: 1, category: 1 }, { name: 'WebGLFramebuffer', value: 1, category: 1 }, { name: 'WebGLRenderbuffer', value: 1, category: 1 }, { name: 'WebGLTexture', value: 1, category: 1 }, { name: 'WebGLShader', value: 1, category: 1 }, { name: 'WebGLActiveInfo', value: 1, category: 1 }, { name: 'WebGLContextAttributes', value: 1, category: 1 }, { name: 'WebGLShaderPrecisionFormat', value: 1, category: 1 }, { name: 'WebGLUniformLocation', value: 1, category: 1 }, { name: 'WebKitAnimationList', value: 1, category: 4 }, { name: 'WebKitAnimation', value: 1, category: 4 }, { name: 'WebKitCSSFilterValue', value: 1, category: 4 }, { name: 'WebKitCSSKeyframeRule', value: 1, category: 4 }, { name: 'WebKitCSSKeyframesRule', value: 1, category: 4 }, { name: 'WebKitCSSMatrix', value: 1, category: 4 }, { name: 'WebKitCSSMixFunctionValue', value: 1, category: 4 }, { name: 'WebKitCSSTransformValue', value: 1, category: 4 }, { name: 'WebKitNamedFlow', value: 1, category: 4 }, { name: 'WebSocket', value: 1, category: 4 }, { name: 'Worker', value: 1, category: 4 }, { name: 'WorkerLocation', value: 1, category: 4 }, { name: 'WorkerNavigator', value: 1, category: 4 }, { name: 'XMLHttpRequest', value: 1, category: 4 }, { name: 'XMLHttpRequestUpload', value: 1, category: 4 }, { name: 'DOMFormData', value: 1, category: 4 }, { name: 'XPathEvaluator', value: 1, category: 4 }, { name: 'XPathExpression', value: 1, category: 4 }, { name: 'XPathNSResolver', value: 1, category: 4 }, { name: 'XPathResult', value: 1, category: 4 }, { name: 'XSLTProcessor', value: 1, category: 4 }], links: [{ source: 0, target: 1 }, { source: 0, target: 2 }, { source: 0, target: 3 }, { source: 4, target: 4 }, { source: 5, target: 4 }, { source: 6, target: 7 }, { source: 6, target: 8 }, { source: 9, target: 3 }, { source: 10, target: 9 }, { source: 11, target: 12 }, { source: 11, target: 9 }, { source: 11, target: 13 }, { source: 11, target: 14 }, { source: 15, target: 16 }, { source: 15, target: 17 }, { source: 15, target: 0 }, { source: 15, target: 18 }, { source: 15, target: 9 }, { source: 15, target: 11 }, { source: 15, target: 19 }, { source: 15, target: 20 }, { source: 15, target: 21 }, { source: 15, target: 22 }, { source: 15, target: 23 }, { source: 15, target: 24 }, { source: 15, target: 25 }, { source: 15, target: 26 }, { source: 15, target: 27 }, { source: 15, target: 28 }, { source: 15, target: 29 }, { source: 15, target: 30 }, { source: 15, target: 31 }, { source: 15, target: 32 }, { source: 15, target: 4 }, { source: 16, target: 1 }, { source: 13, target: 14 }, { source: 1, target: 15 }, { source: 1, target: 1 }, { source: 1, target: 14 }, { source: 14, target: 3 }, { source: 12, target: 1 }, { source: 18, target: 1 }, { source: 18, target: 14 }, { source: 18, target: 3 }, { source: 33, target: 34 }, { source: 35, target: 33 }, { source: 35, target: 36 }, { source: 35, target: 37 }, { source: 35, target: 38 }, { source: 35, target: 39 }, { source: 35, target: 34 }, { source: 35, target: 40 }, { source: 35, target: 41 }, { source: 42, target: 43 }, { source: 19, target: 1 }, { source: 20, target: 1 }, { source: 44, target: 7 }, { source: 45, target: 46 }, { source: 47, target: 48 }, { source: 47, target: 49 }, { source: 47, target: 39 }, { source: 50, target: 44 }, { source: 51, target: 52 }, { source: 21, target: 1 }, { source: 21, target: 9 }, { source: 53, target: 5 }, { source: 54, target: 55 }, { source: 56, target: 55 }, { source: 56, target: 57 }, { source: 58, target: 55 }, { source: 58, target: 59 }, { source: 58, target: 60 }, { source: 61, target: 55 }, { source: 61, target: 62 }, { source: 61, target: 59 }, { source: 63, target: 55 }, { source: 63, target: 57 }, { source: 64, target: 65 }, { source: 64, target: 66 }, { source: 64, target: 67 }, { source: 64, target: 68 }, { source: 55, target: 55 }, { source: 55, target: 60 }, { source: 62, target: 55 }, { source: 57, target: 55 }, { source: 57, target: 65 }, { source: 69, target: 55 }, { source: 69, target: 57 }, { source: 60, target: 70 }, { source: 60, target: 62 }, { source: 60, target: 55 }, { source: 71, target: 55 }, { source: 72, target: 65 }, { source: 73, target: 74 }, { source: 75, target: 73 }, { source: 75, target: 76 }, { source: 76, target: 77 }, { source: 78, target: 79 }, { source: 78, target: 80 }, { source: 49, target: 81 }, { source: 49, target: 78 }, { source: 82, target: 5 }, { source: 83, target: 84 }, { source: 22, target: 1 }, { source: 22, target: 14 }, { source: 85, target: 80 }, { source: 85, target: 86 }, { source: 85, target: 87 }, { source: 88, target: 89 }, { source: 88, target: 90 }, { source: 88, target: 88 }, { source: 88, target: 91 }, { source: 86, target: 92 }, { source: 90, target: 93 }, { source: 94, target: 7 }, { source: 94, target: 8 }, { source: 94, target: 95 }, { source: 96, target: 7 }, { source: 96, target: 97 }, { source: 98, target: 85 }, { source: 99, target: 88 }, { source: 100, target: 60 }, { source: 100, target: 96 }, { source: 100, target: 101 }, { source: 102, target: 103 }, { source: 104, target: 102 }, { source: 103, target: 102 }, { source: 105, target: 103 }, { source: 106, target: 7 }, { source: 106, target: 107 }, { source: 108, target: 109 }, { source: 23, target: 1 }, { source: 23, target: 14 }, { source: 8, target: 7 }, { source: 8, target: 109 }, { source: 8, target: 110 }, { source: 8, target: 8 }, { source: 8, target: 57 }, { source: 8, target: 6 }, { source: 8, target: 46 }, { source: 8, target: 45 }, { source: 8, target: 95 }, { source: 8, target: 111 }, { source: 112, target: 7 }, { source: 113, target: 7 }, { source: 92, target: 114 }, { source: 80, target: 98 }, { source: 80, target: 85 }, { source: 80, target: 115 }, { source: 80, target: 116 }, { source: 80, target: 87 }, { source: 114, target: 80 }, { source: 93, target: 89 }, { source: 116, target: 80 }, { source: 89, target: 99 }, { source: 89, target: 89 }, { source: 89, target: 117 }, { source: 89, target: 88 }, { source: 118, target: 119 }, { source: 120, target: 81 }, { source: 121, target: 80 }, { source: 121, target: 122 }, { source: 121, target: 120 }, { source: 91, target: 89 }, { source: 91, target: 123 }, { source: 91, target: 81 }, { source: 48, target: 81 }, { source: 124, target: 119 }, { source: 125, target: 4 }, { source: 126, target: 98 }, { source: 127, target: 119 }, { source: 122, target: 127 }, { source: 3, target: 5 }, { source: 3, target: 3 }, { source: 128, target: 5 }, { source: 128, target: 128 }, { source: 24, target: 1 }, { source: 24, target: 13 }, { source: 129, target: 130 }, { source: 131, target: 132 }, { source: 133, target: 134 }, { source: 135, target: 7 }, { source: 135, target: 95 }, { source: 136, target: 137 }, { source: 138, target: 137 }, { source: 139, target: 137 }, { source: 140, target: 141 }, { source: 142, target: 137 }, { source: 143, target: 137 }, { source: 144, target: 137 }, { source: 145, target: 137 }, { source: 146, target: 137 }, { source: 146, target: 147 }, { source: 146, target: 95 }, { source: 146, target: 148 }, { source: 34, target: 137 }, { source: 149, target: 7 }, { source: 150, target: 137 }, { source: 150, target: 95 }, { source: 151, target: 137 }, { source: 151, target: 149 }, { source: 152, target: 137 }, { source: 153, target: 137 }, { source: 154, target: 137 }, { source: 155, target: 137 }, { source: 101, target: 8 }, { source: 101, target: 135 }, { source: 101, target: 149 }, { source: 137, target: 8 }, { source: 137, target: 149 }, { source: 156, target: 137 }, { source: 156, target: 157 }, { source: 158, target: 137 }, { source: 158, target: 149 }, { source: 158, target: 147 }, { source: 158, target: 148 }, { source: 159, target: 137 }, { source: 160, target: 149 }, { source: 160, target: 7 }, { source: 147, target: 137 }, { source: 147, target: 149 }, { source: 161, target: 137 }, { source: 161, target: 157 }, { source: 162, target: 137 }, { source: 163, target: 137 }, { source: 164, target: 137 }, { source: 165, target: 137 }, { source: 166, target: 137 }, { source: 167, target: 137 }, { source: 167, target: 157 }, { source: 39, target: 137 }, { source: 168, target: 137 }, { source: 168, target: 48 }, { source: 168, target: 147 }, { source: 168, target: 95 }, { source: 168, target: 148 }, { source: 168, target: 114 }, { source: 169, target: 137 }, { source: 169, target: 147 }, { source: 169, target: 95 }, { source: 169, target: 148 }, { source: 170, target: 137 }, { source: 170, target: 147 }, { source: 171, target: 137 }, { source: 171, target: 147 }, { source: 172, target: 137 }, { source: 173, target: 137 }, { source: 173, target: 70 }, { source: 173, target: 108 }, { source: 174, target: 137 }, { source: 174, target: 149 }, { source: 175, target: 137 }, { source: 141, target: 137 }, { source: 141, target: 176 }, { source: 141, target: 177 }, { source: 141, target: 178 }, { source: 141, target: 179 }, { source: 141, target: 180 }, { source: 181, target: 137 }, { source: 182, target: 137 }, { source: 183, target: 137 }, { source: 183, target: 95 }, { source: 184, target: 137 }, { source: 185, target: 137 }, { source: 185, target: 147 }, { source: 185, target: 148 }, { source: 185, target: 157 }, { source: 186, target: 137 }, { source: 187, target: 137 }, { source: 188, target: 137 }, { source: 188, target: 147 }, { source: 189, target: 149 }, { source: 189, target: 188 }, { source: 189, target: 7 }, { source: 190, target: 137 }, { source: 190, target: 147 }, { source: 190, target: 108 }, { source: 190, target: 95 }, { source: 190, target: 148 }, { source: 191, target: 137 }, { source: 192, target: 137 }, { source: 193, target: 137 }, { source: 194, target: 137 }, { source: 194, target: 95 }, { source: 195, target: 137 }, { source: 196, target: 137 }, { source: 197, target: 137 }, { source: 197, target: 147 }, { source: 197, target: 95 }, { source: 197, target: 189 }, { source: 197, target: 149 }, { source: 197, target: 148 }, { source: 197, target: 7 }, { source: 198, target: 137 }, { source: 199, target: 137 }, { source: 200, target: 137 }, { source: 201, target: 137 }, { source: 201, target: 70 }, { source: 202, target: 137 }, { source: 203, target: 137 }, { source: 204, target: 137 }, { source: 205, target: 137 }, { source: 205, target: 202 }, { source: 205, target: 149 }, { source: 205, target: 206 }, { source: 207, target: 137 }, { source: 207, target: 149 }, { source: 206, target: 137 }, { source: 206, target: 149 }, { source: 208, target: 137 }, { source: 208, target: 147 }, { source: 208, target: 95 }, { source: 208, target: 148 }, { source: 209, target: 137 }, { source: 210, target: 137 }, { source: 210, target: 180 }, { source: 211, target: 137 }, { source: 212, target: 137 }, { source: 40, target: 141 }, { source: 213, target: 214 }, { source: 213, target: 215 }, { source: 213, target: 216 }, { source: 217, target: 213 }, { source: 218, target: 219 }, { source: 218, target: 214 }, { source: 218, target: 220 }, { source: 218, target: 221 }, { source: 222, target: 215 }, { source: 222, target: 223 }, { source: 222, target: 224 }, { source: 222, target: 216 }, { source: 225, target: 214 }, { source: 225, target: 220 }, { source: 225, target: 216 }, { source: 226, target: 215 }, { source: 226, target: 226 }, { source: 220, target: 219 }, { source: 220, target: 214 }, { source: 220, target: 221 }, { source: 220, target: 216 }, { source: 220, target: 225 }, { source: 224, target: 216 }, { source: 216, target: 227 }, { source: 216, target: 214 }, { source: 216, target: 221 }, { source: 221, target: 218 }, { source: 221, target: 227 }, { source: 221, target: 220 }, { source: 223, target: 216 }, { source: 228, target: 5 }, { source: 228, target: 228 }, { source: 229, target: 5 }, { source: 229, target: 229 }, { source: 230, target: 5 }, { source: 230, target: 230 }, { source: 231, target: 231 }, { source: 232, target: 233 }, { source: 234, target: 219 }, { source: 177, target: 176 }, { source: 25, target: 12 }, { source: 25, target: 141 }, { source: 235, target: 236 }, { source: 236, target: 235 }, { source: 237, target: 238 }, { source: 237, target: 239 }, { source: 233, target: 240 }, { source: 26, target: 12 }, { source: 26, target: 233 }, { source: 27, target: 12 }, { source: 27, target: 233 }, { source: 241, target: 233 }, { source: 240, target: 242 }, { source: 243, target: 244 }, { source: 115, target: 117 }, { source: 245, target: 7 }, { source: 246, target: 95 }, { source: 246, target: 7 }, { source: 97, target: 7 }, { source: 247, target: 131 }, { source: 247, target: 104 }, { source: 247, target: 105 }, { source: 247, target: 248 }, { source: 247, target: 129 }, { source: 249, target: 250 }, { source: 251, target: 232 }, { source: 7, target: 97 }, { source: 7, target: 95 }, { source: 7, target: 7 }, { source: 7, target: 8 }, { source: 252, target: 7 }, { source: 253, target: 252 }, { source: 253, target: 7 }, { source: 95, target: 7 }, { source: 254, target: 7 }, { source: 255, target: 256 }, { source: 257, target: 255 }, { source: 257, target: 87 }, { source: 258, target: 259 }, { source: 28, target: 12 }, { source: 28, target: 14 }, { source: 28, target: 32 }, { source: 29, target: 1 }, { source: 260, target: 52 }, { source: 260, target: 261 }, { source: 260, target: 262 }, { source: 132, target: 133 }, { source: 263, target: 264 }, { source: 265, target: 7 }, { source: 265, target: 70 }, { source: 266, target: 95 }, { source: 107, target: 7 }, { source: 107, target: 94 }, { source: 107, target: 107 }, { source: 107, target: 46 }, { source: 107, target: 45 }, { source: 68, target: 64 }, { source: 67, target: 64 }, { source: 267, target: 4 }, { source: 267, target: 5 }, { source: 268, target: 269 }, { source: 268, target: 241 }, { source: 268, target: 270 }, { source: 268, target: 233 }, { source: 268, target: 271 }, { source: 268, target: 267 }, { source: 268, target: 272 }, { source: 271, target: 269 }, { source: 272, target: 273 }, { source: 274, target: 275 }, { source: 30, target: 1 }, { source: 276, target: 277 }, { source: 111, target: 94 }, { source: 111, target: 8 }, { source: 111, target: 7 }, { source: 111, target: 95 }, { source: 111, target: 106 }, { source: 278, target: 279 }, { source: 278, target: 244 }, { source: 280, target: 84 }, { source: 239, target: 176 }, { source: 239, target: 2 }, { source: 238, target: 239 }, { source: 281, target: 282 }, { source: 283, target: 284 }, { source: 285, target: 281 }, { source: 286, target: 287 }, { source: 288, target: 286 }, { source: 289, target: 290 }, { source: 291, target: 292 }, { source: 293, target: 292 }, { source: 74, target: 292 }, { source: 294, target: 295 }, { source: 296, target: 289 }, { source: 77, target: 296 }, { source: 297, target: 298 }, { source: 297, target: 299 }, { source: 300, target: 301 }, { source: 70, target: 59 }, { source: 70, target: 7 }, { source: 70, target: 70 }, { source: 302, target: 70 }, { source: 303, target: 304 }, { source: 303, target: 305 }, { source: 306, target: 307 }, { source: 308, target: 309 }, { source: 310, target: 307 }, { source: 311, target: 312 }, { source: 313, target: 314 }, { source: 315, target: 316 }, { source: 317, target: 318 }, { source: 319, target: 320 }, { source: 321, target: 322 }, { source: 323, target: 324 }, { source: 325, target: 326 }, { source: 327, target: 312 }, { source: 328, target: 312 }, { source: 329, target: 312 }, { source: 312, target: 330 }, { source: 312, target: 307 }, { source: 331, target: 304 }, { source: 331, target: 315 }, { source: 332, target: 304 }, { source: 332, target: 333 }, { source: 334, target: 65 }, { source: 334, target: 67 }, { source: 335, target: 307 }, { source: 335, target: 336 }, { source: 335, target: 319 }, { source: 335, target: 333 }, { source: 337, target: 338 }, { source: 337, target: 315 }, { source: 339, target: 304 }, { source: 340, target: 341 }, { source: 157, target: 342 }, { source: 307, target: 8 }, { source: 307, target: 342 }, { source: 307, target: 307 }, { source: 343, target: 344 }, { source: 343, target: 345 }, { source: 343, target: 307 }, { source: 343, target: 346 }, { source: 343, target: 343 }, { source: 345, target: 343 }, { source: 347, target: 304 }, { source: 347, target: 315 }, { source: 338, target: 348 }, { source: 349, target: 350 }, { source: 349, target: 305 }, { source: 349, target: 333 }, { source: 351, target: 350 }, { source: 351, target: 305 }, { source: 351, target: 333 }, { source: 351, target: 319 }, { source: 352, target: 350 }, { source: 352, target: 305 }, { source: 353, target: 350 }, { source: 353, target: 305 }, { source: 353, target: 336 }, { source: 353, target: 333 }, { source: 354, target: 350 }, { source: 354, target: 336 }, { source: 354, target: 333 }, { source: 354, target: 305 }, { source: 354, target: 319 }, { source: 354, target: 355 }, { source: 354, target: 348 }, { source: 356, target: 350 }, { source: 356, target: 336 }, { source: 356, target: 305 }, { source: 357, target: 350 }, { source: 357, target: 305 }, { source: 357, target: 336 }, { source: 357, target: 333 }, { source: 358, target: 307 }, { source: 358, target: 336 }, { source: 359, target: 350 }, { source: 359, target: 336 }, { source: 359, target: 305 }, { source: 360, target: 350 }, { source: 361, target: 335 }, { source: 362, target: 335 }, { source: 363, target: 335 }, { source: 364, target: 335 }, { source: 365, target: 350 }, { source: 365, target: 305 }, { source: 365, target: 336 }, { source: 366, target: 350 }, { source: 366, target: 321 }, { source: 367, target: 350 }, { source: 368, target: 307 }, { source: 368, target: 305 }, { source: 369, target: 350 }, { source: 369, target: 305 }, { source: 369, target: 333 }, { source: 369, target: 336 }, { source: 370, target: 350 }, { source: 370, target: 336 }, { source: 370, target: 305 }, { source: 371, target: 307 }, { source: 371, target: 336 }, { source: 372, target: 350 }, { source: 372, target: 305 }, { source: 372, target: 336 }, { source: 373, target: 307 }, { source: 373, target: 336 }, { source: 374, target: 350 }, { source: 374, target: 305 }, { source: 375, target: 350 }, { source: 375, target: 336 }, { source: 375, target: 355 }, { source: 375, target: 333 }, { source: 376, target: 341 }, { source: 376, target: 355 }, { source: 376, target: 333 }, { source: 376, target: 315 }, { source: 350, target: 341 }, { source: 350, target: 315 }, { source: 350, target: 305 }, { source: 377, target: 321 }, { source: 377, target: 323 }, { source: 378, target: 307 }, { source: 379, target: 307 }, { source: 380, target: 307 }, { source: 381, target: 307 }, { source: 382, target: 307 }, { source: 383, target: 307 }, { source: 384, target: 304 }, { source: 384, target: 315 }, { source: 385, target: 304 }, { source: 386, target: 307 }, { source: 387, target: 341 }, { source: 388, target: 341 }, { source: 388, target: 325 }, { source: 388, target: 333 }, { source: 389, target: 307 }, { source: 390, target: 304 }, { source: 390, target: 315 }, { source: 390, target: 321 }, { source: 318, target: 316 }, { source: 391, target: 388 }, { source: 391, target: 315 }, { source: 392, target: 304 }, { source: 392, target: 315 }, { source: 393, target: 307 }, { source: 393, target: 324 }, { source: 393, target: 394 }, { source: 395, target: 377 }, { source: 395, target: 315 }, { source: 395, target: 333 }, { source: 395, target: 313 }, { source: 395, target: 314 }, { source: 396, target: 341 }, { source: 396, target: 315 }, { source: 396, target: 333 }, { source: 394, target: 394 }, { source: 397, target: 307 }, { source: 398, target: 307 }, { source: 399, target: 338 }, { source: 320, target: 400 }, { source: 401, target: 334 }, { source: 402, target: 304 }, { source: 402, target: 403 }, { source: 402, target: 336 }, { source: 402, target: 404 }, { source: 402, target: 405 }, { source: 402, target: 406 }, { source: 402, target: 407 }, { source: 402, target: 408 }, { source: 402, target: 409 }, { source: 402, target: 410 }, { source: 402, target: 411 }, { source: 402, target: 412 }, { source: 402, target: 413 }, { source: 402, target: 414 }, { source: 402, target: 415 }, { source: 402, target: 416 }, { source: 402, target: 417 }, { source: 402, target: 418 }, { source: 402, target: 419 }, { source: 402, target: 420 }, { source: 402, target: 421 }, { source: 402, target: 422 }, { source: 402, target: 423 }, { source: 404, target: 424 }, { source: 405, target: 424 }, { source: 406, target: 424 }, { source: 407, target: 424 }, { source: 408, target: 424 }, { source: 409, target: 424 }, { source: 410, target: 424 }, { source: 411, target: 424 }, { source: 412, target: 424 }, { source: 413, target: 424 }, { source: 414, target: 424 }, { source: 415, target: 424 }, { source: 416, target: 424 }, { source: 417, target: 424 }, { source: 418, target: 424 }, { source: 419, target: 424 }, { source: 420, target: 424 }, { source: 403, target: 424 }, { source: 421, target: 424 }, { source: 422, target: 424 }, { source: 425, target: 377 }, { source: 425, target: 315 }, { source: 425, target: 333 }, { source: 425, target: 325 }, { source: 423, target: 423 }, { source: 426, target: 423 }, { source: 427, target: 304 }, { source: 427, target: 426 }, { source: 428, target: 304 }, { source: 428, target: 426 }, { source: 429, target: 388 }, { source: 429, target: 315 }, { source: 430, target: 304 }, { source: 430, target: 315 }, { source: 431, target: 338 }, { source: 432, target: 312 }, { source: 433, target: 341 }, { source: 433, target: 336 }, { source: 341, target: 305 }, { source: 341, target: 57 }, { source: 341, target: 65 }, { source: 434, target: 435 }, { source: 342, target: 436 }, { source: 342, target: 423 }, { source: 342, target: 437 }, { source: 342, target: 315 }, { source: 342, target: 324 }, { source: 342, target: 307 }, { source: 342, target: 314 }, { source: 342, target: 316 }, { source: 342, target: 394 }, { source: 342, target: 400 }, { source: 342, target: 438 }, { source: 342, target: 8 }, { source: 342, target: 95 }, { source: 439, target: 304 }, { source: 440, target: 377 }, { source: 441, target: 442 }, { source: 443, target: 341 }, { source: 443, target: 333 }, { source: 443, target: 315 }, { source: 443, target: 423 }, { source: 443, target: 324 }, { source: 444, target: 304 }, { source: 445, target: 309 }, { source: 445, target: 333 }, { source: 445, target: 315 }, { source: 446, target: 443 }, { source: 446, target: 317 }, { source: 446, target: 319 }, { source: 447, target: 341 }, { source: 438, target: 394 }, { source: 304, target: 393 }, { source: 304, target: 325 }, { source: 326, target: 438 }, { source: 448, target: 309 }, { source: 449, target: 446 }, { source: 309, target: 305 }, { source: 346, target: 304 }, { source: 346, target: 343 }, { source: 346, target: 315 }, { source: 450, target: 436 }, { source: 450, target: 442 }, { source: 437, target: 321 }, { source: 437, target: 326 }, { source: 437, target: 323 }, { source: 437, target: 307 }, { source: 451, target: 307 }, { source: 43, target: 44 }, { source: 43, target: 43 }, { source: 180, target: 452 }, { source: 180, target: 453 }, { source: 453, target: 180 }, { source: 453, target: 94 }, { source: 452, target: 453 }, { source: 179, target: 180 }, { source: 454, target: 344 }, { source: 455, target: 454 }, { source: 456, target: 7 }, { source: 456, target: 252 }, { source: 457, target: 5 }, { source: 457, target: 457 }, { source: 458, target: 5 }, { source: 458, target: 458 }, { source: 2, target: 5 }, { source: 2, target: 2 }, { source: 459, target: 2 }, { source: 459, target: 459 }, { source: 31, target: 1 }, { source: 31, target: 3 }, { source: 460, target: 33 }, { source: 460, target: 461 }, { source: 460, target: 462 }, { source: 460, target: 463 }, { source: 460, target: 464 }, { source: 460, target: 465 }, { source: 460, target: 4 }, { source: 460, target: 5 }, { source: 460, target: 466 }, { source: 460, target: 467 }, { source: 460, target: 468 }, { source: 460, target: 469 }, { source: 460, target: 470 }, { source: 460, target: 36 }, { source: 460, target: 39 }, { source: 460, target: 34 }, { source: 460, target: 40 }, { source: 460, target: 3 }, { source: 471, target: 472 }, { source: 473, target: 72 }, { source: 474, target: 55 }, { source: 474, target: 57 }, { source: 475, target: 55 }, { source: 475, target: 62 }, { source: 475, target: 474 }, { source: 476, target: 476 }, { source: 477, target: 72 }, { source: 478, target: 72 }, { source: 479, target: 95 }, { source: 480, target: 4 }, { source: 480, target: 5 }, { source: 481, target: 279 }, { source: 84, target: 222 }, { source: 84, target: 482 }, { source: 84, target: 483 }, { source: 84, target: 84 }, { source: 84, target: 257 }, { source: 84, target: 73 }, { source: 84, target: 76 }, { source: 84, target: 126 }, { source: 84, target: 99 }, { source: 84, target: 89 }, { source: 484, target: 485 }, { source: 484, target: 4 }, { source: 484, target: 5 }, { source: 484, target: 486 }, { source: 487, target: 488 }, { source: 487, target: 489 }, { source: 487, target: 490 }, { source: 488, target: 490 }, { source: 490, target: 7 }, { source: 491, target: 7 }, { source: 491, target: 94 }] } + { + type: 'force', categories: [{ name: 'HTMLElement', keyword: {}, base: 'HTMLElement' }, { name: 'WebGL', keyword: {}, base: 'WebGLRenderingContext' }, { name: 'SVG', keyword: {}, base: 'SVGElement' }, { name: 'CSS', keyword: {}, base: 'CSSRule' }, { name: 'Other', keyword: {} }], nodes: [{ name: 'AnalyserNode', value: 1, category: 4 }, { name: 'AudioNode', value: 1, category: 4 }, { name: 'Uint8Array', value: 1, category: 4 }, { name: 'Float32Array', value: 1, category: 4 }, { name: 'ArrayBuffer', value: 1, category: 4 }, { name: 'ArrayBufferView', value: 1, category: 4 }, { name: 'Attr', value: 1, category: 4 }, { name: 'Node', value: 1, category: 4 }, { name: 'Element', value: 1, category: 4 }, { name: 'AudioBuffer', value: 1, category: 4 }, { name: 'AudioBufferCallback', value: 1, category: 4 }, { name: 'AudioBufferSourceNode', value: 1, category: 4 }, { name: 'AudioSourceNode', value: 1, category: 4 }, { name: 'AudioGain', value: 1, category: 4 }, { name: 'AudioParam', value: 1, category: 4 }, { name: 'AudioContext', value: 1, category: 4 }, { name: 'AudioDestinationNode', value: 1, category: 4 }, { name: 'AudioListener', value: 1, category: 4 }, { name: 'BiquadFilterNode', value: 1, category: 4 }, { name: 'ChannelMergerNode', value: 1, category: 4 }, { name: 'ChannelSplitterNode', value: 1, category: 4 }, { name: 'ConvolverNode', value: 1, category: 4 }, { name: 'DelayNode', value: 1, category: 4 }, { name: 'DynamicsCompressorNode', value: 1, category: 4 }, { name: 'GainNode', value: 1, category: 4 }, { name: 'MediaElementAudioSourceNode', value: 1, category: 4 }, { name: 'MediaStreamAudioDestinationNode', value: 1, category: 4 }, { name: 'MediaStreamAudioSourceNode', value: 1, category: 4 }, { name: 'OscillatorNode', value: 1, category: 4 }, { name: 'PannerNode', value: 1, category: 4 }, { name: 'ScriptProcessorNode', value: 1, category: 4 }, { name: 'WaveShaperNode', value: 1, category: 4 }, { name: 'WaveTable', value: 1, category: 4 }, { name: 'CanvasRenderingContext', value: 1, category: 4 }, { name: 'HTMLCanvasElement', value: 1, category: 0 }, { name: 'CanvasRenderingContext2D', value: 1, category: 4 }, { name: 'ImageData', value: 1, category: 4 }, { name: 'CanvasGradient', value: 1, category: 4 }, { name: 'CanvasPattern', value: 1, category: 4 }, { name: 'HTMLImageElement', value: 1, category: 0 }, { name: 'HTMLVideoElement', value: 1, category: 0 }, { name: 'TextMetrics', value: 1, category: 4 }, { name: 'CDATASection', value: 1, category: 4 }, { name: 'Text', value: 1, category: 4 }, { name: 'CharacterData', value: 1, category: 4 }, { name: 'ClientRectList', value: 1, category: 4 }, { name: 'ClientRect', value: 1, category: 4 }, { name: 'Clipboard', value: 1, category: 4 }, { name: 'FileList', value: 1, category: 4 }, { name: 'DataTransferItemList', value: 1, category: 4 }, { name: 'Comment', value: 1, category: 4 }, { name: 'Console', value: 1, category: 4 }, { name: 'MemoryInfo', value: 1, category: 4 }, { name: 'Crypto', value: 1, category: 4 }, { name: 'CSSCharsetRule', value: 1, category: 3 }, { name: 'CSSRule', value: 3, category: 3 }, { name: 'CSSFontFaceRule', value: 1, category: 3 }, { name: 'CSSStyleDeclaration', value: 1, category: 3 }, { name: 'CSSImportRule', value: 1, category: 3 }, { name: 'MediaList', value: 1, category: 4 }, { name: 'CSSStyleSheet', value: 1, category: 3 }, { name: 'CSSMediaRule', value: 1, category: 3 }, { name: 'CSSRuleList', value: 1, category: 3 }, { name: 'CSSPageRule', value: 1, category: 3 }, { name: 'CSSPrimitiveValue', value: 1, category: 3 }, { name: 'CSSValue', value: 1, category: 3 }, { name: 'Counter', value: 1, category: 4 }, { name: 'RGBColor', value: 1, category: 4 }, { name: 'Rect', value: 1, category: 4 }, { name: 'CSSStyleRule', value: 1, category: 3 }, { name: 'StyleSheet', value: 1, category: 4 }, { name: 'CSSUnknownRule', value: 1, category: 3 }, { name: 'CSSValueList', value: 1, category: 3 }, { name: 'Database', value: 1, category: 4 }, { name: 'SQLTransactionCallback', value: 1, category: 4 }, { name: 'DatabaseCallback', value: 1, category: 4 }, { name: 'DatabaseSync', value: 1, category: 4 }, { name: 'SQLTransactionSyncCallback', value: 1, category: 4 }, { name: 'DataTransferItem', value: 1, category: 4 }, { name: 'StringCallback', value: 1, category: 4 }, { name: 'Entry', value: 1, category: 4 }, { name: 'File', value: 1, category: 4 }, { name: 'DataView', value: 1, category: 4 }, { name: 'DedicatedWorkerContext', value: 1, category: 4 }, { name: 'WorkerContext', value: 1, category: 4 }, { name: 'DirectoryEntry', value: 1, category: 4 }, { name: 'DirectoryReader', value: 1, category: 4 }, { name: 'VoidCallback', value: 1, category: 4 }, { name: 'DirectoryEntrySync', value: 1, category: 4 }, { name: 'EntrySync', value: 1, category: 4 }, { name: 'DirectoryReaderSync', value: 1, category: 4 }, { name: 'FileEntrySync', value: 1, category: 4 }, { name: 'EntriesCallback', value: 1, category: 4 }, { name: 'EntryArraySync', value: 1, category: 4 }, { name: 'DocumentFragment', value: 1, category: 4 }, { name: 'NodeList', value: 1, category: 4 }, { name: 'DocumentType', value: 1, category: 4 }, { name: 'NamedNodeMap', value: 1, category: 4 }, { name: 'DOMFileSystem', value: 1, category: 4 }, { name: 'DOMFileSystemSync', value: 1, category: 4 }, { name: 'DOMImplementation', value: 1, category: 4 }, { name: 'HTMLDocument', value: 1, category: 0 }, { name: 'DOMMimeType', value: 1, category: 4 }, { name: 'DOMPlugin', value: 1, category: 4 }, { name: 'DOMMimeTypeArray', value: 1, category: 4 }, { name: 'DOMPluginArray', value: 1, category: 4 }, { name: 'DOMSelection', value: 1, category: 4 }, { name: 'Range', value: 1, category: 4 }, { name: 'DOMSettableTokenList', value: 1, category: 4 }, { name: 'DOMTokenList', value: 1, category: 4 }, { name: 'DOMStringMap', value: 1, category: 4 }, { name: 'ShadowRoot', value: 1, category: 4 }, { name: 'Entity', value: 1, category: 4 }, { name: 'EntityReference', value: 1, category: 4 }, { name: 'EntryArray', value: 1, category: 4 }, { name: 'MetadataCallback', value: 1, category: 4 }, { name: 'EntryCallback', value: 1, category: 4 }, { name: 'Metadata', value: 1, category: 4 }, { name: 'ErrorCallback', value: 1, category: 4 }, { name: 'FileError', value: 1, category: 4 }, { name: 'FileCallback', value: 1, category: 4 }, { name: 'FileEntry', value: 1, category: 4 }, { name: 'FileWriterCallback', value: 1, category: 4 }, { name: 'FileWriterSync', value: 1, category: 4 }, { name: 'FileReader', value: 1, category: 4 }, { name: 'FileReaderSync', value: 1, category: 4 }, { name: 'FileSystemCallback', value: 1, category: 4 }, { name: 'FileWriter', value: 1, category: 4 }, { name: 'Float64Array', value: 1, category: 4 }, { name: 'GamepadList', value: 1, category: 4 }, { name: 'Gamepad', value: 1, category: 4 }, { name: 'Geolocation', value: 1, category: 4 }, { name: 'PositionCallback', value: 1, category: 4 }, { name: 'Geoposition', value: 1, category: 4 }, { name: 'Coordinates', value: 1, category: 4 }, { name: 'HTMLAllCollection', value: 1, category: 0 }, { name: 'HTMLAnchorElement', value: 1, category: 0 }, { name: 'HTMLElement', value: 3, category: 0 }, { name: 'HTMLAppletElement', value: 1, category: 0 }, { name: 'HTMLAreaElement', value: 1, category: 0 }, { name: 'HTMLAudioElement', value: 1, category: 0 }, { name: 'HTMLMediaElement', value: 1, category: 0 }, { name: 'HTMLBaseElement', value: 1, category: 0 }, { name: 'HTMLBaseFontElement', value: 1, category: 0 }, { name: 'HTMLBodyElement', value: 1, category: 0 }, { name: 'HTMLBRElement', value: 1, category: 0 }, { name: 'HTMLButtonElement', value: 1, category: 0 }, { name: 'HTMLFormElement', value: 1, category: 0 }, { name: 'ValidityState', value: 1, category: 4 }, { name: 'HTMLCollection', value: 1, category: 0 }, { name: 'HTMLContentElement', value: 1, category: 0 }, { name: 'HTMLDataListElement', value: 1, category: 0 }, { name: 'HTMLDetailsElement', value: 1, category: 0 }, { name: 'HTMLDirectoryElement', value: 1, category: 0 }, { name: 'HTMLDivElement', value: 1, category: 0 }, { name: 'HTMLDListElement', value: 1, category: 0 }, { name: 'HTMLEmbedElement', value: 1, category: 0 }, { name: 'SVGDocument', value: 1, category: 2 }, { name: 'HTMLFieldSetElement', value: 1, category: 0 }, { name: 'HTMLFontElement', value: 1, category: 0 }, { name: 'HTMLFormControlsCollection', value: 1, category: 0 }, { name: 'HTMLFrameElement', value: 1, category: 0 }, { name: 'HTMLFrameSetElement', value: 1, category: 0 }, { name: 'HTMLHeadElement', value: 1, category: 0 }, { name: 'HTMLHeadingElement', value: 1, category: 0 }, { name: 'HTMLHRElement', value: 1, category: 0 }, { name: 'HTMLHtmlElement', value: 1, category: 0 }, { name: 'HTMLIFrameElement', value: 1, category: 0 }, { name: 'HTMLInputElement', value: 1, category: 0 }, { name: 'HTMLKeygenElement', value: 1, category: 0 }, { name: 'HTMLLabelElement', value: 1, category: 0 }, { name: 'HTMLLegendElement', value: 1, category: 0 }, { name: 'HTMLLIElement', value: 1, category: 0 }, { name: 'HTMLLinkElement', value: 1, category: 0 }, { name: 'HTMLMapElement', value: 1, category: 0 }, { name: 'HTMLMarqueeElement', value: 1, category: 0 }, { name: 'TimeRanges', value: 1, category: 4 }, { name: 'MediaController', value: 1, category: 4 }, { name: 'MediaError', value: 1, category: 4 }, { name: 'TextTrackList', value: 1, category: 4 }, { name: 'TextTrack', value: 1, category: 4 }, { name: 'HTMLMenuElement', value: 1, category: 0 }, { name: 'HTMLMetaElement', value: 1, category: 0 }, { name: 'HTMLMeterElement', value: 1, category: 0 }, { name: 'HTMLModElement', value: 1, category: 0 }, { name: 'HTMLObjectElement', value: 1, category: 0 }, { name: 'HTMLOListElement', value: 1, category: 0 }, { name: 'HTMLOptGroupElement', value: 1, category: 0 }, { name: 'HTMLOptionElement', value: 1, category: 0 }, { name: 'HTMLOptionsCollection', value: 1, category: 0 }, { name: 'HTMLOutputElement', value: 1, category: 0 }, { name: 'HTMLParagraphElement', value: 1, category: 0 }, { name: 'HTMLParamElement', value: 1, category: 0 }, { name: 'HTMLPreElement', value: 1, category: 0 }, { name: 'HTMLProgressElement', value: 1, category: 0 }, { name: 'HTMLQuoteElement', value: 1, category: 0 }, { name: 'HTMLScriptElement', value: 1, category: 0 }, { name: 'HTMLSelectElement', value: 1, category: 0 }, { name: 'HTMLShadowElement', value: 1, category: 0 }, { name: 'HTMLSourceElement', value: 1, category: 0 }, { name: 'HTMLSpanElement', value: 1, category: 0 }, { name: 'HTMLStyleElement', value: 1, category: 0 }, { name: 'HTMLTableCaptionElement', value: 1, category: 0 }, { name: 'HTMLTableCellElement', value: 1, category: 0 }, { name: 'HTMLTableColElement', value: 1, category: 0 }, { name: 'HTMLTableElement', value: 1, category: 0 }, { name: 'HTMLTableSectionElement', value: 1, category: 0 }, { name: 'HTMLTableRowElement', value: 1, category: 0 }, { name: 'HTMLTextAreaElement', value: 1, category: 0 }, { name: 'HTMLTitleElement', value: 1, category: 0 }, { name: 'HTMLTrackElement', value: 1, category: 0 }, { name: 'HTMLUListElement', value: 1, category: 0 }, { name: 'HTMLUnknownElement', value: 1, category: 0 }, { name: 'IDBCursor', value: 1, category: 4 }, { name: 'IDBAny', value: 1, category: 4 }, { name: 'IDBKey', value: 1, category: 4 }, { name: 'IDBRequest', value: 1, category: 4 }, { name: 'IDBCursorWithValue', value: 1, category: 4 }, { name: 'IDBDatabase', value: 1, category: 4 }, { name: 'DOMStringList', value: 1, category: 4 }, { name: 'IDBObjectStore', value: 1, category: 4 }, { name: 'IDBTransaction', value: 1, category: 4 }, { name: 'IDBFactory', value: 1, category: 4 }, { name: 'IDBVersionChangeRequest', value: 1, category: 4 }, { name: 'IDBOpenDBRequest', value: 1, category: 4 }, { name: 'IDBIndex', value: 1, category: 4 }, { name: 'IDBKeyRange', value: 1, category: 4 }, { name: 'DOMError', value: 1, category: 4 }, { name: 'Int16Array', value: 1, category: 4 }, { name: 'Int32Array', value: 1, category: 4 }, { name: 'Int8Array', value: 1, category: 4 }, { name: 'JavaScriptCallFrame', value: 1, category: 4 }, { name: 'LocalMediaStream', value: 1, category: 4 }, { name: 'MediaStream', value: 1, category: 4 }, { name: 'Location', value: 1, category: 4 }, { name: 'MediaQueryList', value: 1, category: 4 }, { name: 'MediaQueryListListener', value: 1, category: 4 }, { name: 'MediaSource', value: 1, category: 4 }, { name: 'SourceBufferList', value: 1, category: 4 }, { name: 'SourceBuffer', value: 1, category: 4 }, { name: 'MediaStreamTrackList', value: 1, category: 4 }, { name: 'MediaStreamList', value: 1, category: 4 }, { name: 'MediaStreamTrack', value: 1, category: 4 }, { name: 'MessageChannel', value: 1, category: 4 }, { name: 'MessagePort', value: 1, category: 4 }, { name: 'MutationObserver', value: 1, category: 4 }, { name: 'MutationRecord', value: 1, category: 4 }, { name: 'Navigator', value: 1, category: 4 }, { name: 'BatteryManager', value: 1, category: 4 }, { name: 'NavigatorUserMediaErrorCallback', value: 1, category: 4 }, { name: 'NavigatorUserMediaError', value: 1, category: 4 }, { name: 'NavigatorUserMediaSuccessCallback', value: 1, category: 4 }, { name: 'NodeFilter', value: 1, category: 4 }, { name: 'NodeIterator', value: 1, category: 4 }, { name: 'Notation', value: 1, category: 4 }, { name: 'Notification', value: 1, category: 4 }, { name: 'NotificationPermissionCallback', value: 1, category: 4 }, { name: 'NotificationCenter', value: 1, category: 4 }, { name: 'OESVertexArrayObject', value: 1, category: 4 }, { name: 'WebGLVertexArrayObjectOES', value: 1, category: 1 }, { name: 'Performance', value: 1, category: 4 }, { name: 'PerformanceNavigation', value: 1, category: 4 }, { name: 'PerformanceTiming', value: 1, category: 4 }, { name: 'PositionErrorCallback', value: 1, category: 4 }, { name: 'PositionError', value: 1, category: 4 }, { name: 'ProcessingInstruction', value: 1, category: 4 }, { name: 'RadioNodeList', value: 1, category: 4 }, { name: 'RTCDataChannel', value: 1, category: 4 }, { name: 'RTCPeerConnection', value: 1, category: 4 }, { name: 'RTCSessionDescription', value: 1, category: 4 }, { name: 'RTCIceCandidate', value: 1, category: 4 }, { name: 'RTCSessionDescriptionCallback', value: 1, category: 4 }, { name: 'RTCStatsCallback', value: 1, category: 4 }, { name: 'RTCStatsResponse', value: 1, category: 4 }, { name: 'RTCStatsReport', value: 1, category: 4 }, { name: 'RTCStatsElement', value: 1, category: 4 }, { name: 'ScriptProfile', value: 1, category: 4 }, { name: 'ScriptProfileNode', value: 1, category: 4 }, { name: 'SharedWorker', value: 1, category: 4 }, { name: 'AbstractWorker', value: 1, category: 4 }, { name: 'SharedWorkerContext', value: 1, category: 4 }, { name: 'SpeechGrammarList', value: 1, category: 4 }, { name: 'SpeechGrammar', value: 1, category: 4 }, { name: 'SpeechInputResultList', value: 1, category: 4 }, { name: 'SpeechInputResult', value: 1, category: 4 }, { name: 'SpeechRecognition', value: 1, category: 4 }, { name: 'SpeechRecognitionResult', value: 1, category: 4 }, { name: 'SpeechRecognitionAlternative', value: 1, category: 4 }, { name: 'SpeechRecognitionResultList', value: 1, category: 4 }, { name: 'SQLResultSet', value: 1, category: 4 }, { name: 'SQLResultSetRowList', value: 1, category: 4 }, { name: 'SQLStatementCallback', value: 1, category: 4 }, { name: 'SQLTransaction', value: 1, category: 4 }, { name: 'SQLStatementErrorCallback', value: 1, category: 4 }, { name: 'SQLTransactionErrorCallback', value: 1, category: 4 }, { name: 'SQLError', value: 1, category: 4 }, { name: 'SQLTransactionSync', value: 1, category: 4 }, { name: 'StorageInfo', value: 1, category: 4 }, { name: 'StorageInfoUsageCallback', value: 1, category: 4 }, { name: 'StorageInfoQuotaCallback', value: 1, category: 4 }, { name: 'StorageInfoErrorCallback', value: 1, category: 4 }, { name: 'DOMCoreException', value: 1, category: 4 }, { name: 'StyleSheetList', value: 1, category: 4 }, { name: 'SVGAElement', value: 1, category: 2 }, { name: 'SVGTransformable', value: 1, category: 2 }, { name: 'SVGAnimatedString', value: 1, category: 2 }, { name: 'SVGAltGlyphDefElement', value: 1, category: 2 }, { name: 'SVGElement', value: 3, category: 2 }, { name: 'SVGAltGlyphElement', value: 1, category: 2 }, { name: 'SVGURIReference', value: 1, category: 2 }, { name: 'SVGAltGlyphItemElement', value: 1, category: 2 }, { name: 'SVGAnimateColorElement', value: 1, category: 2 }, { name: 'SVGAnimationElement', value: 1, category: 2 }, { name: 'SVGAnimatedAngle', value: 1, category: 2 }, { name: 'SVGAngle', value: 1, category: 2 }, { name: 'SVGAnimatedLength', value: 1, category: 2 }, { name: 'SVGLength', value: 1, category: 2 }, { name: 'SVGAnimatedLengthList', value: 1, category: 2 }, { name: 'SVGLengthList', value: 1, category: 2 }, { name: 'SVGAnimatedNumberList', value: 1, category: 2 }, { name: 'SVGNumberList', value: 1, category: 2 }, { name: 'SVGAnimatedPreserveAspectRatio', value: 1, category: 2 }, { name: 'SVGPreserveAspectRatio', value: 1, category: 2 }, { name: 'SVGAnimatedRect', value: 1, category: 2 }, { name: 'SVGRect', value: 1, category: 2 }, { name: 'SVGAnimatedTransformList', value: 1, category: 2 }, { name: 'SVGTransformList', value: 1, category: 2 }, { name: 'SVGAnimateElement', value: 1, category: 2 }, { name: 'SVGAnimateMotionElement', value: 1, category: 2 }, { name: 'SVGAnimateTransformElement', value: 1, category: 2 }, { name: 'ElementTimeControl', value: 1, category: 4 }, { name: 'SVGCircleElement', value: 1, category: 2 }, { name: 'SVGClipPathElement', value: 1, category: 2 }, { name: 'SVGAnimatedEnumeration', value: 1, category: 2 }, { name: 'SVGColor', value: 1, category: 2 }, { name: 'SVGComponentTransferFunctionElement', value: 1, category: 2 }, { name: 'SVGAnimatedNumber', value: 1, category: 2 }, { name: 'SVGCursorElement', value: 1, category: 2 }, { name: 'SVGExternalResourcesRequired', value: 1, category: 2 }, { name: 'SVGDefsElement', value: 1, category: 2 }, { name: 'SVGDescElement', value: 1, category: 2 }, { name: 'SVGStylable', value: 1, category: 2 }, { name: 'SVGSVGElement', value: 1, category: 2 }, { name: 'SVGElementInstance', value: 1, category: 2 }, { name: 'EventTarget', value: 1, category: 4 }, { name: 'SVGElementInstanceList', value: 1, category: 2 }, { name: 'SVGUseElement', value: 1, category: 2 }, { name: 'SVGEllipseElement', value: 1, category: 2 }, { name: 'SVGAnimatedBoolean', value: 1, category: 2 }, { name: 'SVGFEBlendElement', value: 1, category: 2 }, { name: 'SVGFilterPrimitiveStandardAttributes', value: 1, category: 2 }, { name: 'SVGFEColorMatrixElement', value: 1, category: 2 }, { name: 'SVGFEComponentTransferElement', value: 1, category: 2 }, { name: 'SVGFECompositeElement', value: 1, category: 2 }, { name: 'SVGFEConvolveMatrixElement', value: 1, category: 2 }, { name: 'SVGAnimatedInteger', value: 1, category: 2 }, { name: 'SVGFEDiffuseLightingElement', value: 1, category: 2 }, { name: 'SVGFEDisplacementMapElement', value: 1, category: 2 }, { name: 'SVGFEDistantLightElement', value: 1, category: 2 }, { name: 'SVGFEDropShadowElement', value: 1, category: 2 }, { name: 'SVGFEFloodElement', value: 1, category: 2 }, { name: 'SVGFEFuncAElement', value: 1, category: 2 }, { name: 'SVGFEFuncBElement', value: 1, category: 2 }, { name: 'SVGFEFuncGElement', value: 1, category: 2 }, { name: 'SVGFEFuncRElement', value: 1, category: 2 }, { name: 'SVGFEGaussianBlurElement', value: 1, category: 2 }, { name: 'SVGFEImageElement', value: 1, category: 2 }, { name: 'SVGFEMergeElement', value: 1, category: 2 }, { name: 'SVGFEMergeNodeElement', value: 1, category: 2 }, { name: 'SVGFEMorphologyElement', value: 1, category: 2 }, { name: 'SVGFEOffsetElement', value: 1, category: 2 }, { name: 'SVGFEPointLightElement', value: 1, category: 2 }, { name: 'SVGFESpecularLightingElement', value: 1, category: 2 }, { name: 'SVGFESpotLightElement', value: 1, category: 2 }, { name: 'SVGFETileElement', value: 1, category: 2 }, { name: 'SVGFETurbulenceElement', value: 1, category: 2 }, { name: 'SVGFilterElement', value: 1, category: 2 }, { name: 'SVGFitToViewBox', value: 1, category: 2 }, { name: 'SVGFontElement', value: 1, category: 2 }, { name: 'SVGFontFaceElement', value: 1, category: 2 }, { name: 'SVGFontFaceFormatElement', value: 1, category: 2 }, { name: 'SVGFontFaceNameElement', value: 1, category: 2 }, { name: 'SVGFontFaceSrcElement', value: 1, category: 2 }, { name: 'SVGFontFaceUriElement', value: 1, category: 2 }, { name: 'SVGForeignObjectElement', value: 1, category: 2 }, { name: 'SVGGElement', value: 1, category: 2 }, { name: 'SVGGlyphElement', value: 1, category: 2 }, { name: 'SVGGlyphRefElement', value: 1, category: 2 }, { name: 'SVGGradientElement', value: 1, category: 2 }, { name: 'SVGHKernElement', value: 1, category: 2 }, { name: 'SVGImageElement', value: 1, category: 2 }, { name: 'SVGLinearGradientElement', value: 1, category: 2 }, { name: 'SVGLineElement', value: 1, category: 2 }, { name: 'SVGLocatable', value: 1, category: 2 }, { name: 'SVGMatrix', value: 1, category: 2 }, { name: 'SVGMarkerElement', value: 1, category: 2 }, { name: 'SVGMaskElement', value: 1, category: 2 }, { name: 'SVGMetadataElement', value: 1, category: 2 }, { name: 'SVGMissingGlyphElement', value: 1, category: 2 }, { name: 'SVGMPathElement', value: 1, category: 2 }, { name: 'SVGNumber', value: 1, category: 2 }, { name: 'SVGPaint', value: 1, category: 2 }, { name: 'SVGPathElement', value: 1, category: 2 }, { name: 'SVGPathSegList', value: 1, category: 2 }, { name: 'SVGPathSegArcAbs', value: 1, category: 2 }, { name: 'SVGPathSegArcRel', value: 1, category: 2 }, { name: 'SVGPathSegClosePath', value: 1, category: 2 }, { name: 'SVGPathSegCurvetoCubicAbs', value: 1, category: 2 }, { name: 'SVGPathSegCurvetoCubicRel', value: 1, category: 2 }, { name: 'SVGPathSegCurvetoCubicSmoothAbs', value: 1, category: 2 }, { name: 'SVGPathSegCurvetoCubicSmoothRel', value: 1, category: 2 }, { name: 'SVGPathSegCurvetoQuadraticAbs', value: 1, category: 2 }, { name: 'SVGPathSegCurvetoQuadraticRel', value: 1, category: 2 }, { name: 'SVGPathSegCurvetoQuadraticSmoothAbs', value: 1, category: 2 }, { name: 'SVGPathSegCurvetoQuadraticSmoothRel', value: 1, category: 2 }, { name: 'SVGPathSegLinetoAbs', value: 1, category: 2 }, { name: 'SVGPathSegLinetoHorizontalAbs', value: 1, category: 2 }, { name: 'SVGPathSegLinetoHorizontalRel', value: 1, category: 2 }, { name: 'SVGPathSegLinetoRel', value: 1, category: 2 }, { name: 'SVGPathSegLinetoVerticalAbs', value: 1, category: 2 }, { name: 'SVGPathSegLinetoVerticalRel', value: 1, category: 2 }, { name: 'SVGPathSegMovetoAbs', value: 1, category: 2 }, { name: 'SVGPathSegMovetoRel', value: 1, category: 2 }, { name: 'SVGPoint', value: 1, category: 2 }, { name: 'SVGPathSeg', value: 1, category: 2 }, { name: 'SVGPatternElement', value: 1, category: 2 }, { name: 'SVGPointList', value: 1, category: 2 }, { name: 'SVGPolygonElement', value: 1, category: 2 }, { name: 'SVGPolylineElement', value: 1, category: 2 }, { name: 'SVGRadialGradientElement', value: 1, category: 2 }, { name: 'SVGRectElement', value: 1, category: 2 }, { name: 'SVGScriptElement', value: 1, category: 2 }, { name: 'SVGSetElement', value: 1, category: 2 }, { name: 'SVGStopElement', value: 1, category: 2 }, { name: 'SVGStyleElement', value: 1, category: 2 }, { name: 'SVGLangSpace', value: 1, category: 2 }, { name: 'SVGZoomAndPan', value: 1, category: 2 }, { name: 'SVGViewSpec', value: 1, category: 2 }, { name: 'SVGTransform', value: 1, category: 2 }, { name: 'SVGSwitchElement', value: 1, category: 2 }, { name: 'SVGSymbolElement', value: 1, category: 2 }, { name: 'SVGTests', value: 1, category: 2 }, { name: 'SVGStringList', value: 1, category: 2 }, { name: 'SVGTextContentElement', value: 1, category: 2 }, { name: 'SVGTextElement', value: 1, category: 2 }, { name: 'SVGTextPathElement', value: 1, category: 2 }, { name: 'SVGTextPositioningElement', value: 1, category: 2 }, { name: 'SVGTitleElement', value: 1, category: 2 }, { name: 'SVGTRefElement', value: 1, category: 2 }, { name: 'SVGTSpanElement', value: 1, category: 2 }, { name: 'SVGViewElement', value: 1, category: 2 }, { name: 'SVGVKernElement', value: 1, category: 2 }, { name: 'TextTrackCueList', value: 1, category: 4 }, { name: 'TextTrackCue', value: 1, category: 4 }, { name: 'Touch', value: 1, category: 4 }, { name: 'TouchList', value: 1, category: 4 }, { name: 'TreeWalker', value: 1, category: 4 }, { name: 'Uint16Array', value: 1, category: 4 }, { name: 'Uint32Array', value: 1, category: 4 }, { name: 'Uint8ClampedArray', value: 1, category: 4 }, { name: 'WebGLRenderingContext', value: 3, category: 1 }, { name: 'WebGLProgram', value: 1, category: 1 }, { name: 'WebGLBuffer', value: 1, category: 1 }, { name: 'WebGLFramebuffer', value: 1, category: 1 }, { name: 'WebGLRenderbuffer', value: 1, category: 1 }, { name: 'WebGLTexture', value: 1, category: 1 }, { name: 'WebGLShader', value: 1, category: 1 }, { name: 'WebGLActiveInfo', value: 1, category: 1 }, { name: 'WebGLContextAttributes', value: 1, category: 1 }, { name: 'WebGLShaderPrecisionFormat', value: 1, category: 1 }, { name: 'WebGLUniformLocation', value: 1, category: 1 }, { name: 'WebKitAnimationList', value: 1, category: 4 }, { name: 'WebKitAnimation', value: 1, category: 4 }, { name: 'WebKitCSSFilterValue', value: 1, category: 4 }, { name: 'WebKitCSSKeyframeRule', value: 1, category: 4 }, { name: 'WebKitCSSKeyframesRule', value: 1, category: 4 }, { name: 'WebKitCSSMatrix', value: 1, category: 4 }, { name: 'WebKitCSSMixFunctionValue', value: 1, category: 4 }, { name: 'WebKitCSSTransformValue', value: 1, category: 4 }, { name: 'WebKitNamedFlow', value: 1, category: 4 }, { name: 'WebSocket', value: 1, category: 4 }, { name: 'Worker', value: 1, category: 4 }, { name: 'WorkerLocation', value: 1, category: 4 }, { name: 'WorkerNavigator', value: 1, category: 4 }, { name: 'XMLHttpRequest', value: 1, category: 4 }, { name: 'XMLHttpRequestUpload', value: 1, category: 4 }, { name: 'DOMFormData', value: 1, category: 4 }, { name: 'XPathEvaluator', value: 1, category: 4 }, { name: 'XPathExpression', value: 1, category: 4 }, { name: 'XPathNSResolver', value: 1, category: 4 }, { name: 'XPathResult', value: 1, category: 4 }, { name: 'XSLTProcessor', value: 1, category: 4 }], links: [{ source: 0, target: 1 }, { source: 0, target: 2 }, { source: 0, target: 3 }, { source: 4, target: 4 }, { source: 5, target: 4 }, { source: 6, target: 7 }, { source: 6, target: 8 }, { source: 9, target: 3 }, { source: 10, target: 9 }, { source: 11, target: 12 }, { source: 11, target: 9 }, { source: 11, target: 13 }, { source: 11, target: 14 }, { source: 15, target: 16 }, { source: 15, target: 17 }, { source: 15, target: 0 }, { source: 15, target: 18 }, { source: 15, target: 9 }, { source: 15, target: 11 }, { source: 15, target: 19 }, { source: 15, target: 20 }, { source: 15, target: 21 }, { source: 15, target: 22 }, { source: 15, target: 23 }, { source: 15, target: 24 }, { source: 15, target: 25 }, { source: 15, target: 26 }, { source: 15, target: 27 }, { source: 15, target: 28 }, { source: 15, target: 29 }, { source: 15, target: 30 }, { source: 15, target: 31 }, { source: 15, target: 32 }, { source: 15, target: 4 }, { source: 16, target: 1 }, { source: 13, target: 14 }, { source: 1, target: 15 }, { source: 1, target: 1 }, { source: 1, target: 14 }, { source: 14, target: 3 }, { source: 12, target: 1 }, { source: 18, target: 1 }, { source: 18, target: 14 }, { source: 18, target: 3 }, { source: 33, target: 34 }, { source: 35, target: 33 }, { source: 35, target: 36 }, { source: 35, target: 37 }, { source: 35, target: 38 }, { source: 35, target: 39 }, { source: 35, target: 34 }, { source: 35, target: 40 }, { source: 35, target: 41 }, { source: 42, target: 43 }, { source: 19, target: 1 }, { source: 20, target: 1 }, { source: 44, target: 7 }, { source: 45, target: 46 }, { source: 47, target: 48 }, { source: 47, target: 49 }, { source: 47, target: 39 }, { source: 50, target: 44 }, { source: 51, target: 52 }, { source: 21, target: 1 }, { source: 21, target: 9 }, { source: 53, target: 5 }, { source: 54, target: 55 }, { source: 56, target: 55 }, { source: 56, target: 57 }, { source: 58, target: 55 }, { source: 58, target: 59 }, { source: 58, target: 60 }, { source: 61, target: 55 }, { source: 61, target: 62 }, { source: 61, target: 59 }, { source: 63, target: 55 }, { source: 63, target: 57 }, { source: 64, target: 65 }, { source: 64, target: 66 }, { source: 64, target: 67 }, { source: 64, target: 68 }, { source: 55, target: 55 }, { source: 55, target: 60 }, { source: 62, target: 55 }, { source: 57, target: 55 }, { source: 57, target: 65 }, { source: 69, target: 55 }, { source: 69, target: 57 }, { source: 60, target: 70 }, { source: 60, target: 62 }, { source: 60, target: 55 }, { source: 71, target: 55 }, { source: 72, target: 65 }, { source: 73, target: 74 }, { source: 75, target: 73 }, { source: 75, target: 76 }, { source: 76, target: 77 }, { source: 78, target: 79 }, { source: 78, target: 80 }, { source: 49, target: 81 }, { source: 49, target: 78 }, { source: 82, target: 5 }, { source: 83, target: 84 }, { source: 22, target: 1 }, { source: 22, target: 14 }, { source: 85, target: 80 }, { source: 85, target: 86 }, { source: 85, target: 87 }, { source: 88, target: 89 }, { source: 88, target: 90 }, { source: 88, target: 88 }, { source: 88, target: 91 }, { source: 86, target: 92 }, { source: 90, target: 93 }, { source: 94, target: 7 }, { source: 94, target: 8 }, { source: 94, target: 95 }, { source: 96, target: 7 }, { source: 96, target: 97 }, { source: 98, target: 85 }, { source: 99, target: 88 }, { source: 100, target: 60 }, { source: 100, target: 96 }, { source: 100, target: 101 }, { source: 102, target: 103 }, { source: 104, target: 102 }, { source: 103, target: 102 }, { source: 105, target: 103 }, { source: 106, target: 7 }, { source: 106, target: 107 }, { source: 108, target: 109 }, { source: 23, target: 1 }, { source: 23, target: 14 }, { source: 8, target: 7 }, { source: 8, target: 109 }, { source: 8, target: 110 }, { source: 8, target: 8 }, { source: 8, target: 57 }, { source: 8, target: 6 }, { source: 8, target: 46 }, { source: 8, target: 45 }, { source: 8, target: 95 }, { source: 8, target: 111 }, { source: 112, target: 7 }, { source: 113, target: 7 }, { source: 92, target: 114 }, { source: 80, target: 98 }, { source: 80, target: 85 }, { source: 80, target: 115 }, { source: 80, target: 116 }, { source: 80, target: 87 }, { source: 114, target: 80 }, { source: 93, target: 89 }, { source: 116, target: 80 }, { source: 89, target: 99 }, { source: 89, target: 89 }, { source: 89, target: 117 }, { source: 89, target: 88 }, { source: 118, target: 119 }, { source: 120, target: 81 }, { source: 121, target: 80 }, { source: 121, target: 122 }, { source: 121, target: 120 }, { source: 91, target: 89 }, { source: 91, target: 123 }, { source: 91, target: 81 }, { source: 48, target: 81 }, { source: 124, target: 119 }, { source: 125, target: 4 }, { source: 126, target: 98 }, { source: 127, target: 119 }, { source: 122, target: 127 }, { source: 3, target: 5 }, { source: 3, target: 3 }, { source: 128, target: 5 }, { source: 128, target: 128 }, { source: 24, target: 1 }, { source: 24, target: 13 }, { source: 129, target: 130 }, { source: 131, target: 132 }, { source: 133, target: 134 }, { source: 135, target: 7 }, { source: 135, target: 95 }, { source: 136, target: 137 }, { source: 138, target: 137 }, { source: 139, target: 137 }, { source: 140, target: 141 }, { source: 142, target: 137 }, { source: 143, target: 137 }, { source: 144, target: 137 }, { source: 145, target: 137 }, { source: 146, target: 137 }, { source: 146, target: 147 }, { source: 146, target: 95 }, { source: 146, target: 148 }, { source: 34, target: 137 }, { source: 149, target: 7 }, { source: 150, target: 137 }, { source: 150, target: 95 }, { source: 151, target: 137 }, { source: 151, target: 149 }, { source: 152, target: 137 }, { source: 153, target: 137 }, { source: 154, target: 137 }, { source: 155, target: 137 }, { source: 101, target: 8 }, { source: 101, target: 135 }, { source: 101, target: 149 }, { source: 137, target: 8 }, { source: 137, target: 149 }, { source: 156, target: 137 }, { source: 156, target: 157 }, { source: 158, target: 137 }, { source: 158, target: 149 }, { source: 158, target: 147 }, { source: 158, target: 148 }, { source: 159, target: 137 }, { source: 160, target: 149 }, { source: 160, target: 7 }, { source: 147, target: 137 }, { source: 147, target: 149 }, { source: 161, target: 137 }, { source: 161, target: 157 }, { source: 162, target: 137 }, { source: 163, target: 137 }, { source: 164, target: 137 }, { source: 165, target: 137 }, { source: 166, target: 137 }, { source: 167, target: 137 }, { source: 167, target: 157 }, { source: 39, target: 137 }, { source: 168, target: 137 }, { source: 168, target: 48 }, { source: 168, target: 147 }, { source: 168, target: 95 }, { source: 168, target: 148 }, { source: 168, target: 114 }, { source: 169, target: 137 }, { source: 169, target: 147 }, { source: 169, target: 95 }, { source: 169, target: 148 }, { source: 170, target: 137 }, { source: 170, target: 147 }, { source: 171, target: 137 }, { source: 171, target: 147 }, { source: 172, target: 137 }, { source: 173, target: 137 }, { source: 173, target: 70 }, { source: 173, target: 108 }, { source: 174, target: 137 }, { source: 174, target: 149 }, { source: 175, target: 137 }, { source: 141, target: 137 }, { source: 141, target: 176 }, { source: 141, target: 177 }, { source: 141, target: 178 }, { source: 141, target: 179 }, { source: 141, target: 180 }, { source: 181, target: 137 }, { source: 182, target: 137 }, { source: 183, target: 137 }, { source: 183, target: 95 }, { source: 184, target: 137 }, { source: 185, target: 137 }, { source: 185, target: 147 }, { source: 185, target: 148 }, { source: 185, target: 157 }, { source: 186, target: 137 }, { source: 187, target: 137 }, { source: 188, target: 137 }, { source: 188, target: 147 }, { source: 189, target: 149 }, { source: 189, target: 188 }, { source: 189, target: 7 }, { source: 190, target: 137 }, { source: 190, target: 147 }, { source: 190, target: 108 }, { source: 190, target: 95 }, { source: 190, target: 148 }, { source: 191, target: 137 }, { source: 192, target: 137 }, { source: 193, target: 137 }, { source: 194, target: 137 }, { source: 194, target: 95 }, { source: 195, target: 137 }, { source: 196, target: 137 }, { source: 197, target: 137 }, { source: 197, target: 147 }, { source: 197, target: 95 }, { source: 197, target: 189 }, { source: 197, target: 149 }, { source: 197, target: 148 }, { source: 197, target: 7 }, { source: 198, target: 137 }, { source: 199, target: 137 }, { source: 200, target: 137 }, { source: 201, target: 137 }, { source: 201, target: 70 }, { source: 202, target: 137 }, { source: 203, target: 137 }, { source: 204, target: 137 }, { source: 205, target: 137 }, { source: 205, target: 202 }, { source: 205, target: 149 }, { source: 205, target: 206 }, { source: 207, target: 137 }, { source: 207, target: 149 }, { source: 206, target: 137 }, { source: 206, target: 149 }, { source: 208, target: 137 }, { source: 208, target: 147 }, { source: 208, target: 95 }, { source: 208, target: 148 }, { source: 209, target: 137 }, { source: 210, target: 137 }, { source: 210, target: 180 }, { source: 211, target: 137 }, { source: 212, target: 137 }, { source: 40, target: 141 }, { source: 213, target: 214 }, { source: 213, target: 215 }, { source: 213, target: 216 }, { source: 217, target: 213 }, { source: 218, target: 219 }, { source: 218, target: 214 }, { source: 218, target: 220 }, { source: 218, target: 221 }, { source: 222, target: 215 }, { source: 222, target: 223 }, { source: 222, target: 224 }, { source: 222, target: 216 }, { source: 225, target: 214 }, { source: 225, target: 220 }, { source: 225, target: 216 }, { source: 226, target: 215 }, { source: 226, target: 226 }, { source: 220, target: 219 }, { source: 220, target: 214 }, { source: 220, target: 221 }, { source: 220, target: 216 }, { source: 220, target: 225 }, { source: 224, target: 216 }, { source: 216, target: 227 }, { source: 216, target: 214 }, { source: 216, target: 221 }, { source: 221, target: 218 }, { source: 221, target: 227 }, { source: 221, target: 220 }, { source: 223, target: 216 }, { source: 228, target: 5 }, { source: 228, target: 228 }, { source: 229, target: 5 }, { source: 229, target: 229 }, { source: 230, target: 5 }, { source: 230, target: 230 }, { source: 231, target: 231 }, { source: 232, target: 233 }, { source: 234, target: 219 }, { source: 177, target: 176 }, { source: 25, target: 12 }, { source: 25, target: 141 }, { source: 235, target: 236 }, { source: 236, target: 235 }, { source: 237, target: 238 }, { source: 237, target: 239 }, { source: 233, target: 240 }, { source: 26, target: 12 }, { source: 26, target: 233 }, { source: 27, target: 12 }, { source: 27, target: 233 }, { source: 241, target: 233 }, { source: 240, target: 242 }, { source: 243, target: 244 }, { source: 115, target: 117 }, { source: 245, target: 7 }, { source: 246, target: 95 }, { source: 246, target: 7 }, { source: 97, target: 7 }, { source: 247, target: 131 }, { source: 247, target: 104 }, { source: 247, target: 105 }, { source: 247, target: 248 }, { source: 247, target: 129 }, { source: 249, target: 250 }, { source: 251, target: 232 }, { source: 7, target: 97 }, { source: 7, target: 95 }, { source: 7, target: 7 }, { source: 7, target: 8 }, { source: 252, target: 7 }, { source: 253, target: 252 }, { source: 253, target: 7 }, { source: 95, target: 7 }, { source: 254, target: 7 }, { source: 255, target: 256 }, { source: 257, target: 255 }, { source: 257, target: 87 }, { source: 258, target: 259 }, { source: 28, target: 12 }, { source: 28, target: 14 }, { source: 28, target: 32 }, { source: 29, target: 1 }, { source: 260, target: 52 }, { source: 260, target: 261 }, { source: 260, target: 262 }, { source: 132, target: 133 }, { source: 263, target: 264 }, { source: 265, target: 7 }, { source: 265, target: 70 }, { source: 266, target: 95 }, { source: 107, target: 7 }, { source: 107, target: 94 }, { source: 107, target: 107 }, { source: 107, target: 46 }, { source: 107, target: 45 }, { source: 68, target: 64 }, { source: 67, target: 64 }, { source: 267, target: 4 }, { source: 267, target: 5 }, { source: 268, target: 269 }, { source: 268, target: 241 }, { source: 268, target: 270 }, { source: 268, target: 233 }, { source: 268, target: 271 }, { source: 268, target: 267 }, { source: 268, target: 272 }, { source: 271, target: 269 }, { source: 272, target: 273 }, { source: 274, target: 275 }, { source: 30, target: 1 }, { source: 276, target: 277 }, { source: 111, target: 94 }, { source: 111, target: 8 }, { source: 111, target: 7 }, { source: 111, target: 95 }, { source: 111, target: 106 }, { source: 278, target: 279 }, { source: 278, target: 244 }, { source: 280, target: 84 }, { source: 239, target: 176 }, { source: 239, target: 2 }, { source: 238, target: 239 }, { source: 281, target: 282 }, { source: 283, target: 284 }, { source: 285, target: 281 }, { source: 286, target: 287 }, { source: 288, target: 286 }, { source: 289, target: 290 }, { source: 291, target: 292 }, { source: 293, target: 292 }, { source: 74, target: 292 }, { source: 294, target: 295 }, { source: 296, target: 289 }, { source: 77, target: 296 }, { source: 297, target: 298 }, { source: 297, target: 299 }, { source: 300, target: 301 }, { source: 70, target: 59 }, { source: 70, target: 7 }, { source: 70, target: 70 }, { source: 302, target: 70 }, { source: 303, target: 304 }, { source: 303, target: 305 }, { source: 306, target: 307 }, { source: 308, target: 309 }, { source: 310, target: 307 }, { source: 311, target: 312 }, { source: 313, target: 314 }, { source: 315, target: 316 }, { source: 317, target: 318 }, { source: 319, target: 320 }, { source: 321, target: 322 }, { source: 323, target: 324 }, { source: 325, target: 326 }, { source: 327, target: 312 }, { source: 328, target: 312 }, { source: 329, target: 312 }, { source: 312, target: 330 }, { source: 312, target: 307 }, { source: 331, target: 304 }, { source: 331, target: 315 }, { source: 332, target: 304 }, { source: 332, target: 333 }, { source: 334, target: 65 }, { source: 334, target: 67 }, { source: 335, target: 307 }, { source: 335, target: 336 }, { source: 335, target: 319 }, { source: 335, target: 333 }, { source: 337, target: 338 }, { source: 337, target: 315 }, { source: 339, target: 304 }, { source: 340, target: 341 }, { source: 157, target: 342 }, { source: 307, target: 8 }, { source: 307, target: 342 }, { source: 307, target: 307 }, { source: 343, target: 344 }, { source: 343, target: 345 }, { source: 343, target: 307 }, { source: 343, target: 346 }, { source: 343, target: 343 }, { source: 345, target: 343 }, { source: 347, target: 304 }, { source: 347, target: 315 }, { source: 338, target: 348 }, { source: 349, target: 350 }, { source: 349, target: 305 }, { source: 349, target: 333 }, { source: 351, target: 350 }, { source: 351, target: 305 }, { source: 351, target: 333 }, { source: 351, target: 319 }, { source: 352, target: 350 }, { source: 352, target: 305 }, { source: 353, target: 350 }, { source: 353, target: 305 }, { source: 353, target: 336 }, { source: 353, target: 333 }, { source: 354, target: 350 }, { source: 354, target: 336 }, { source: 354, target: 333 }, { source: 354, target: 305 }, { source: 354, target: 319 }, { source: 354, target: 355 }, { source: 354, target: 348 }, { source: 356, target: 350 }, { source: 356, target: 336 }, { source: 356, target: 305 }, { source: 357, target: 350 }, { source: 357, target: 305 }, { source: 357, target: 336 }, { source: 357, target: 333 }, { source: 358, target: 307 }, { source: 358, target: 336 }, { source: 359, target: 350 }, { source: 359, target: 336 }, { source: 359, target: 305 }, { source: 360, target: 350 }, { source: 361, target: 335 }, { source: 362, target: 335 }, { source: 363, target: 335 }, { source: 364, target: 335 }, { source: 365, target: 350 }, { source: 365, target: 305 }, { source: 365, target: 336 }, { source: 366, target: 350 }, { source: 366, target: 321 }, { source: 367, target: 350 }, { source: 368, target: 307 }, { source: 368, target: 305 }, { source: 369, target: 350 }, { source: 369, target: 305 }, { source: 369, target: 333 }, { source: 369, target: 336 }, { source: 370, target: 350 }, { source: 370, target: 336 }, { source: 370, target: 305 }, { source: 371, target: 307 }, { source: 371, target: 336 }, { source: 372, target: 350 }, { source: 372, target: 305 }, { source: 372, target: 336 }, { source: 373, target: 307 }, { source: 373, target: 336 }, { source: 374, target: 350 }, { source: 374, target: 305 }, { source: 375, target: 350 }, { source: 375, target: 336 }, { source: 375, target: 355 }, { source: 375, target: 333 }, { source: 376, target: 341 }, { source: 376, target: 355 }, { source: 376, target: 333 }, { source: 376, target: 315 }, { source: 350, target: 341 }, { source: 350, target: 315 }, { source: 350, target: 305 }, { source: 377, target: 321 }, { source: 377, target: 323 }, { source: 378, target: 307 }, { source: 379, target: 307 }, { source: 380, target: 307 }, { source: 381, target: 307 }, { source: 382, target: 307 }, { source: 383, target: 307 }, { source: 384, target: 304 }, { source: 384, target: 315 }, { source: 385, target: 304 }, { source: 386, target: 307 }, { source: 387, target: 341 }, { source: 388, target: 341 }, { source: 388, target: 325 }, { source: 388, target: 333 }, { source: 389, target: 307 }, { source: 390, target: 304 }, { source: 390, target: 315 }, { source: 390, target: 321 }, { source: 318, target: 316 }, { source: 391, target: 388 }, { source: 391, target: 315 }, { source: 392, target: 304 }, { source: 392, target: 315 }, { source: 393, target: 307 }, { source: 393, target: 324 }, { source: 393, target: 394 }, { source: 395, target: 377 }, { source: 395, target: 315 }, { source: 395, target: 333 }, { source: 395, target: 313 }, { source: 395, target: 314 }, { source: 396, target: 341 }, { source: 396, target: 315 }, { source: 396, target: 333 }, { source: 394, target: 394 }, { source: 397, target: 307 }, { source: 398, target: 307 }, { source: 399, target: 338 }, { source: 320, target: 400 }, { source: 401, target: 334 }, { source: 402, target: 304 }, { source: 402, target: 403 }, { source: 402, target: 336 }, { source: 402, target: 404 }, { source: 402, target: 405 }, { source: 402, target: 406 }, { source: 402, target: 407 }, { source: 402, target: 408 }, { source: 402, target: 409 }, { source: 402, target: 410 }, { source: 402, target: 411 }, { source: 402, target: 412 }, { source: 402, target: 413 }, { source: 402, target: 414 }, { source: 402, target: 415 }, { source: 402, target: 416 }, { source: 402, target: 417 }, { source: 402, target: 418 }, { source: 402, target: 419 }, { source: 402, target: 420 }, { source: 402, target: 421 }, { source: 402, target: 422 }, { source: 402, target: 423 }, { source: 404, target: 424 }, { source: 405, target: 424 }, { source: 406, target: 424 }, { source: 407, target: 424 }, { source: 408, target: 424 }, { source: 409, target: 424 }, { source: 410, target: 424 }, { source: 411, target: 424 }, { source: 412, target: 424 }, { source: 413, target: 424 }, { source: 414, target: 424 }, { source: 415, target: 424 }, { source: 416, target: 424 }, { source: 417, target: 424 }, { source: 418, target: 424 }, { source: 419, target: 424 }, { source: 420, target: 424 }, { source: 403, target: 424 }, { source: 421, target: 424 }, { source: 422, target: 424 }, { source: 425, target: 377 }, { source: 425, target: 315 }, { source: 425, target: 333 }, { source: 425, target: 325 }, { source: 423, target: 423 }, { source: 426, target: 423 }, { source: 427, target: 304 }, { source: 427, target: 426 }, { source: 428, target: 304 }, { source: 428, target: 426 }, { source: 429, target: 388 }, { source: 429, target: 315 }, { source: 430, target: 304 }, { source: 430, target: 315 }, { source: 431, target: 338 }, { source: 432, target: 312 }, { source: 433, target: 341 }, { source: 433, target: 336 }, { source: 341, target: 305 }, { source: 341, target: 57 }, { source: 341, target: 65 }, { source: 434, target: 435 }, { source: 342, target: 436 }, { source: 342, target: 423 }, { source: 342, target: 437 }, { source: 342, target: 315 }, { source: 342, target: 324 }, { source: 342, target: 307 }, { source: 342, target: 314 }, { source: 342, target: 316 }, { source: 342, target: 394 }, { source: 342, target: 400 }, { source: 342, target: 438 }, { source: 342, target: 8 }, { source: 342, target: 95 }, { source: 439, target: 304 }, { source: 440, target: 377 }, { source: 441, target: 442 }, { source: 443, target: 341 }, { source: 443, target: 333 }, { source: 443, target: 315 }, { source: 443, target: 423 }, { source: 443, target: 324 }, { source: 444, target: 304 }, { source: 445, target: 309 }, { source: 445, target: 333 }, { source: 445, target: 315 }, { source: 446, target: 443 }, { source: 446, target: 317 }, { source: 446, target: 319 }, { source: 447, target: 341 }, { source: 438, target: 394 }, { source: 304, target: 393 }, { source: 304, target: 325 }, { source: 326, target: 438 }, { source: 448, target: 309 }, { source: 449, target: 446 }, { source: 309, target: 305 }, { source: 346, target: 304 }, { source: 346, target: 343 }, { source: 346, target: 315 }, { source: 450, target: 436 }, { source: 450, target: 442 }, { source: 437, target: 321 }, { source: 437, target: 326 }, { source: 437, target: 323 }, { source: 437, target: 307 }, { source: 451, target: 307 }, { source: 43, target: 44 }, { source: 43, target: 43 }, { source: 180, target: 452 }, { source: 180, target: 453 }, { source: 453, target: 180 }, { source: 453, target: 94 }, { source: 452, target: 453 }, { source: 179, target: 180 }, { source: 454, target: 344 }, { source: 455, target: 454 }, { source: 456, target: 7 }, { source: 456, target: 252 }, { source: 457, target: 5 }, { source: 457, target: 457 }, { source: 458, target: 5 }, { source: 458, target: 458 }, { source: 2, target: 5 }, { source: 2, target: 2 }, { source: 459, target: 2 }, { source: 459, target: 459 }, { source: 31, target: 1 }, { source: 31, target: 3 }, { source: 460, target: 33 }, { source: 460, target: 461 }, { source: 460, target: 462 }, { source: 460, target: 463 }, { source: 460, target: 464 }, { source: 460, target: 465 }, { source: 460, target: 4 }, { source: 460, target: 5 }, { source: 460, target: 466 }, { source: 460, target: 467 }, { source: 460, target: 468 }, { source: 460, target: 469 }, { source: 460, target: 470 }, { source: 460, target: 36 }, { source: 460, target: 39 }, { source: 460, target: 34 }, { source: 460, target: 40 }, { source: 460, target: 3 }, { source: 471, target: 472 }, { source: 473, target: 72 }, { source: 474, target: 55 }, { source: 474, target: 57 }, { source: 475, target: 55 }, { source: 475, target: 62 }, { source: 475, target: 474 }, { source: 476, target: 476 }, { source: 477, target: 72 }, { source: 478, target: 72 }, { source: 479, target: 95 }, { source: 480, target: 4 }, { source: 480, target: 5 }, { source: 481, target: 279 }, { source: 84, target: 222 }, { source: 84, target: 482 }, { source: 84, target: 483 }, { source: 84, target: 84 }, { source: 84, target: 257 }, { source: 84, target: 73 }, { source: 84, target: 76 }, { source: 84, target: 126 }, { source: 84, target: 99 }, { source: 84, target: 89 }, { source: 484, target: 485 }, { source: 484, target: 4 }, { source: 484, target: 5 }, { source: 484, target: 486 }, { source: 487, target: 488 }, { source: 487, target: 489 }, { source: 487, target: 490 }, { source: 488, target: 490 }, { source: 490, target: 7 }, { source: 491, target: 7 }, { source: 491, target: 94 }], + } const option = { legend: { data: ['HTMLElement', 'WebGL', 'SVG', 'CSS', 'Other'], @@ -26,8 +28,6 @@ const GraphComponent = React.createClass({ }), categories: webkitDep.categories, force: { - // initLayout: 'circular' - // repulsion: 20, edgeLength: 5, repulsion: 20, gravity: 0.2, @@ -36,21 +36,20 @@ const GraphComponent = React.createClass({ }], } return option - }, - render () { - return ( -
-
- - -
+ } + + return ( +
+
+ +
- ) - }, -}) +
+ ) +} export default GraphComponent diff --git a/src/routes/chart/ECharts/LiquidfillComponent.js b/src/routes/chart/ECharts/LiquidfillComponent.js index 7518f99..0b17389 100644 --- a/src/routes/chart/ECharts/LiquidfillComponent.js +++ b/src/routes/chart/ECharts/LiquidfillComponent.js @@ -3,32 +3,29 @@ import ReactEcharts from 'echarts-for-react' require('echarts-liquidfill') -const LiquidfillComponent = React.createClass({ - propTypes: { - }, - getOption () { - let option = { - series: [{ +const LiquidfillComponent = () => { + const option = { + series: [ + { type: 'liquidFill', data: [0.6], - }], - } - return option - }, - render () { - return ( -
-
- - -
-
- ) - }, -}) + }, + ], + } + return (
+
+ + +
+
) +} export default LiquidfillComponent diff --git a/src/routes/chart/ECharts/LunarCalendarComponent.js b/src/routes/chart/ECharts/LunarCalendarComponent.js index 7bbe805..714e2ed 100644 --- a/src/routes/chart/ECharts/LunarCalendarComponent.js +++ b/src/routes/chart/ECharts/LunarCalendarComponent.js @@ -2,8 +2,8 @@ import React from 'react' import ReactEcharts from 'echarts-for-react' import echarts from 'echarts' -const LunarCalendarComponent = React.createClass({ - getOtion () { +const LunarCalendarComponent = () => { + const getOtion = () => { let dateList = [ ['2017-1-1', '初四'], ['2017-1-2', '初五'], @@ -473,21 +473,20 @@ const LunarCalendarComponent = React.createClass({ }], } return option - }, - render () { - return ( -
-
- - -
+ } + + return ( +
+
+ +
- ) - }, -}) +
+ ) +} export default LunarCalendarComponent diff --git a/src/routes/chart/ECharts/MainPageComponent.js b/src/routes/chart/ECharts/MainPageComponent.js index 1940feb..bfb3e9b 100644 --- a/src/routes/chart/ECharts/MainPageComponent.js +++ b/src/routes/chart/ECharts/MainPageComponent.js @@ -4,45 +4,41 @@ import { Link } from 'react-router' import DynamicChartComponent from './DynamicChartComponent.js' -const MainPageComponent = React.createClass({ - propTypes: { - }, - render () { - return ( -
-

echarts-for-react {this.props.params.type}

-

A very simple echarts(v3.0) wrapper for React. hustcc/echarts-for-react

+const MainPageComponent = () => { + return ( +
+

echarts-for-react {this.props.params.type}

+

A very simple echarts(v3.0) wrapper for React. hustcc/echarts-for-react

- + -

- Simple demo | - Echarts loading | - Echarts API | - Echarts events | - Echarts theme | - Dynamic chart | - Map chart -

-

- New:   - Airport | - Graph | - Calendar | - Treemap | - Gauge | - GCalendar | - Lunar | - Liquidfill -

- {this.props.children || } +

+ Simple demo | + Echarts loading | + Echarts API | + Echarts events | + Echarts theme | + Dynamic chart | + Map chart +

+

+ New:   + Airport | + Graph | + Calendar | + Treemap | + Gauge | + GCalendar | + Lunar | + Liquidfill +

+ {this.props.children || } -

Get it on GitHub! hustcc/echarts-for-react

-
- ) - }, -}) +

Get it on GitHub! hustcc/echarts-for-react

+
+ ) +} export default MainPageComponent diff --git a/src/routes/chart/ECharts/MapChartComponent.js b/src/routes/chart/ECharts/MapChartComponent.js index 30eee45..cee0057 100644 --- a/src/routes/chart/ECharts/MapChartComponent.js +++ b/src/routes/chart/ECharts/MapChartComponent.js @@ -3,31 +3,13 @@ import ReactEcharts from 'echarts-for-react' require('echarts/map/js/china.js') -const MapChartComponent = React.createClass({ - propTypes: { - }, - getInitialState () { - return { option: this.getOtion() } - }, - componentDidMount () { - if (this.timeTicket) { - clearInterval(this.timeTicket) +class MapChartComponent extends React.Component { + constructor () { + super() + this.timeTicket = null + const randomData = () => { + return Math.round(Math.random() * 1000) } - this.timeTicket = setInterval(() => { - const option = this.state.option - const r = new Date().getSeconds() - option.title.text = `iphone销量${r}` - option.series[0].name = `iphone销量${r}` - option.legend.data[0] = `iphone销量${r}` - this.setState({ option }) - }, 1000) - }, - componentWillUnmount () { - if (this.timeTicket) { - clearInterval(this.timeTicket) - } - }, - getOtion () { const option = { title: { text: 'iphone销量', @@ -76,40 +58,40 @@ const MapChartComponent = React.createClass({ }, }, data: [ - { name: '北京', value: this.randomData() }, - { name: '天津', value: this.randomData() }, - { name: '上海', value: this.randomData() }, - { name: '重庆', value: this.randomData() }, - { name: '河北', value: this.randomData() }, - { name: '河南', value: this.randomData() }, - { name: '云南', value: this.randomData() }, - { name: '辽宁', value: this.randomData() }, - { name: '黑龙江', value: this.randomData() }, - { name: '湖南', value: this.randomData() }, - { name: '安徽', value: this.randomData() }, - { name: '山东', value: this.randomData() }, - { name: '新疆', value: this.randomData() }, - { name: '江苏', value: this.randomData() }, - { name: '浙江', value: this.randomData() }, - { name: '江西', value: this.randomData() }, - { name: '湖北', value: this.randomData() }, - { name: '广西', value: this.randomData() }, - { name: '甘肃', value: this.randomData() }, - { name: '山西', value: this.randomData() }, - { name: '内蒙古', value: this.randomData() }, - { name: '陕西', value: this.randomData() }, - { name: '吉林', value: this.randomData() }, - { name: '福建', value: this.randomData() }, - { name: '贵州', value: this.randomData() }, - { name: '广东', value: this.randomData() }, - { name: '青海', value: this.randomData() }, - { name: '西藏', value: this.randomData() }, - { name: '四川', value: this.randomData() }, - { name: '宁夏', value: this.randomData() }, - { name: '海南', value: this.randomData() }, - { name: '台湾', value: this.randomData() }, - { name: '香港', value: this.randomData() }, - { name: '澳门', value: this.randomData() }, + { name: '北京', value: randomData() }, + { name: '天津', value: randomData() }, + { name: '上海', value: randomData() }, + { name: '重庆', value: randomData() }, + { name: '河北', value: randomData() }, + { name: '河南', value: randomData() }, + { name: '云南', value: randomData() }, + { name: '辽宁', value: randomData() }, + { name: '黑龙江', value: randomData() }, + { name: '湖南', value: randomData() }, + { name: '安徽', value: randomData() }, + { name: '山东', value: randomData() }, + { name: '新疆', value: randomData() }, + { name: '江苏', value: randomData() }, + { name: '浙江', value: randomData() }, + { name: '江西', value: randomData() }, + { name: '湖北', value: randomData() }, + { name: '广西', value: randomData() }, + { name: '甘肃', value: randomData() }, + { name: '山西', value: randomData() }, + { name: '内蒙古', value: randomData() }, + { name: '陕西', value: randomData() }, + { name: '吉林', value: randomData() }, + { name: '福建', value: randomData() }, + { name: '贵州', value: randomData() }, + { name: '广东', value: randomData() }, + { name: '青海', value: randomData() }, + { name: '西藏', value: randomData() }, + { name: '四川', value: randomData() }, + { name: '宁夏', value: randomData() }, + { name: '海南', value: randomData() }, + { name: '台湾', value: randomData() }, + { name: '香港', value: randomData() }, + { name: '澳门', value: randomData() }, ], }, { @@ -125,25 +107,25 @@ const MapChartComponent = React.createClass({ }, }, data: [ - { name: '北京', value: this.randomData() }, - { name: '天津', value: this.randomData() }, - { name: '上海', value: this.randomData() }, - { name: '重庆', value: this.randomData() }, - { name: '河北', value: this.randomData() }, - { name: '安徽', value: this.randomData() }, - { name: '新疆', value: this.randomData() }, - { name: '浙江', value: this.randomData() }, - { name: '江西', value: this.randomData() }, - { name: '山西', value: this.randomData() }, - { name: '内蒙古', value: this.randomData() }, - { name: '吉林', value: this.randomData() }, - { name: '福建', value: this.randomData() }, - { name: '广东', value: this.randomData() }, - { name: '西藏', value: this.randomData() }, - { name: '四川', value: this.randomData() }, - { name: '宁夏', value: this.randomData() }, - { name: '香港', value: this.randomData() }, - { name: '澳门', value: this.randomData() }, + { name: '北京', value: randomData() }, + { name: '天津', value: randomData() }, + { name: '上海', value: randomData() }, + { name: '重庆', value: randomData() }, + { name: '河北', value: randomData() }, + { name: '安徽', value: randomData() }, + { name: '新疆', value: randomData() }, + { name: '浙江', value: randomData() }, + { name: '江西', value: randomData() }, + { name: '山西', value: randomData() }, + { name: '内蒙古', value: randomData() }, + { name: '吉林', value: randomData() }, + { name: '福建', value: randomData() }, + { name: '广东', value: randomData() }, + { name: '西藏', value: randomData() }, + { name: '四川', value: randomData() }, + { name: '宁夏', value: randomData() }, + { name: '香港', value: randomData() }, + { name: '澳门', value: randomData() }, ], }, { @@ -159,23 +141,42 @@ const MapChartComponent = React.createClass({ }, }, data: [ - { name: '北京', value: this.randomData() }, - { name: '天津', value: this.randomData() }, - { name: '上海', value: this.randomData() }, - { name: '广东', value: this.randomData() }, - { name: '台湾', value: this.randomData() }, - { name: '香港', value: this.randomData() }, - { name: '澳门', value: this.randomData() }, + { name: '北京', value: randomData() }, + { name: '天津', value: randomData() }, + { name: '上海', value: randomData() }, + { name: '广东', value: randomData() }, + { name: '台湾', value: randomData() }, + { name: '香港', value: randomData() }, + { name: '澳门', value: randomData() }, ], }, ], } - return option - }, - randomData () { - return Math.round(Math.random() * 1000) - }, - timeTicket: null, + this.state = { + option, + } + } + + componentDidMount () { + if (this.timeTicket) { + clearInterval(this.timeTicket) + } + this.timeTicket = setInterval(() => { + const { option } = this.state + const r = new Date().getSeconds() + option.title.text = `iphone销量${r}` + option.series[0].name = `iphone销量${r}` + option.legend.data[0] = `iphone销量${r}` + this.setState({ option }) + }, 1000) + } + + componentWillUnmount () { + if (this.timeTicket) { + clearInterval(this.timeTicket) + } + } + render () { let code = "require('echarts/map/js/china.js'); \n" + '
) - }, -}) + } +} export default MapChartComponent diff --git a/src/routes/chart/ECharts/ModuleLoadChartComponent.js b/src/routes/chart/ECharts/ModuleLoadChartComponent.js index fbc0ded..1458113 100644 --- a/src/routes/chart/ECharts/ModuleLoadChartComponent.js +++ b/src/routes/chart/ECharts/ModuleLoadChartComponent.js @@ -1,55 +1,43 @@ import React from 'react' import ReactEcharts from 'echarts-for-react' -// require.config({ -// paths: { -// echarts:'../node_modules/echarts', -// } -// }); +const ModuleLoadChartComponent = () => { + const option = { + title: { text: 'ECharts 入门示例' }, + tooltip: {}, + xAxis: { + data: ['衬衫', '羊毛衫', '雪纺衫', '裤子', '高跟鞋', '袜子'], + }, + yAxis: {}, + series: [{ + name: '销量', + type: 'bar', + data: [5, 20, 36, 10, 10, 20], + }], + } -const ModuleLoadChartComponent = React.createClass({ - propTypes: { - }, - getOtion () { - const option = { - title: { text: 'ECharts 入门示例' }, - tooltip: {}, - xAxis: { - data: ['衬衫', '羊毛衫', '雪纺衫', '裤子', '高跟鞋', '袜子'], - }, - yAxis: {}, - series: [{ - name: '销量', - type: 'bar', - data: [5, 20, 36, 10, 10, 20], - }], - } - return option - }, - render () { - let code = '" - return ( -
-
- - - -
-            {code}
-          
-
+ return ( +
+
+ + + +
+          {code}
+        
- ) - }, -}) +
+ ) +} export default ModuleLoadChartComponent diff --git a/src/routes/chart/ECharts/SimpleChartComponent.js b/src/routes/chart/ECharts/SimpleChartComponent.js index 1307315..338cf89 100644 --- a/src/routes/chart/ECharts/SimpleChartComponent.js +++ b/src/routes/chart/ECharts/SimpleChartComponent.js @@ -2,91 +2,85 @@ import React from 'react' import ReactEcharts from 'echarts-for-react' import './theme/macarons.js' -class SimpleChartComponent extends React.Component { - getOtion () { - const option = { - title: { - text: '堆叠区域图', +const SimpleChartComponent = () => { + const option = { + title: { + text: '堆叠区域图', + }, + tooltip: { + trigger: 'axis', + }, + legend: { + data: ['邮件营销', '联盟广告', '视频广告'], + }, + toolbox: { + feature: { + saveAsImage: {}, }, - tooltip: { - trigger: 'axis', + }, + grid: { + left: '3%', + right: '4%', + bottom: '3%', + containLabel: true, + }, + xAxis: [ + { + type: 'category', + boundaryGap: false, + data: ['周一', '周二', '周三', '周四', '周五', '周六', '周日'], }, - legend: { - data: ['邮件营销', '联盟广告', '视频广告'], + ], + yAxis: [ + { + type: 'value', }, - toolbox: { - feature: { - saveAsImage: {}, - }, + ], + series: [ + { + name: '邮件营销', + type: 'line', + stack: '总量', + areaStyle: { normal: {} }, + data: [120, 132, 101, 134, 90, 230, 210], }, - grid: { - left: '3%', - right: '4%', - bottom: '3%', - containLabel: true, + { + name: '联盟广告', + type: 'line', + stack: '总量', + areaStyle: { normal: {} }, + data: [220, 182, 191, 234, 290, 330, 310], }, - xAxis: [ - { - type: 'category', - boundaryGap: false, - data: ['周一', '周二', '周三', '周四', '周五', '周六', '周日'], - }, - ], - yAxis: [ - { - type: 'value', - }, - ], - series: [ - { - name: '邮件营销', - type: 'line', - stack: '总量', - areaStyle: { normal: {} }, - data: [120, 132, 101, 134, 90, 230, 210], - }, - { - name: '联盟广告', - type: 'line', - stack: '总量', - areaStyle: { normal: {} }, - data: [220, 182, 191, 234, 290, 330, 310], - }, - { - name: '视频广告', - type: 'line', - stack: '总量', - areaStyle: { normal: {} }, - data: [150, 232, 201, 154, 190, 330, 410], - }, - ], - } - return option + { + name: '视频广告', + type: 'line', + stack: '总量', + areaStyle: { normal: {} }, + data: [150, 232, 201, 154, 190, 330, 410], + }, + ], } - - render () { - let code = '" - return ( -
-
- - - -
-            {code}
-          
-
+ return ( +
+
+ + + +
+          {code}
+        
- ) - } +
+ ) } diff --git a/src/routes/chart/ECharts/ThemeChartComponent.js b/src/routes/chart/ECharts/ThemeChartComponent.js index fedef32..ea8f6c2 100644 --- a/src/routes/chart/ECharts/ThemeChartComponent.js +++ b/src/routes/chart/ECharts/ThemeChartComponent.js @@ -3,113 +3,106 @@ import ReactEcharts from 'echarts-for-react' import echarts from 'echarts' -const ThemeChartComponent = React.createClass({ - propTypes: { - }, - getOtion () { - const option = { - title: { - text: '阶梯瀑布图', - subtext: 'From ExcelHome', - sublink: 'http://e.weibo.com/1341556070/Aj1J2x5a5', +const ThemeChartComponent = () => { + const option = { + title: { + text: '阶梯瀑布图', + subtext: 'From ExcelHome', + sublink: 'http://e.weibo.com/1341556070/Aj1J2x5a5', + }, + tooltip: { + trigger: 'axis', + axisPointer: { // 坐标轴指示器,坐标轴触发有效 + type: 'shadow', // 默认为直线,可选为:'line' | 'shadow' }, - tooltip: { - trigger: 'axis', - axisPointer: { // 坐标轴指示器,坐标轴触发有效 - type: 'shadow', // 默认为直线,可选为:'line' | 'shadow' - }, - }, - legend: { - data: ['支出', '收入'], - }, - grid: { - left: '3%', - right: '4%', - bottom: '3%', - containLabel: true, - }, - xAxis: { - type: 'category', - splitLine: { show: false }, - data: ['11月1日', '11月2日', '11月3日', '11月4日', '11月5日', '11月6日', '11月7日', '11月8日', '11月9日', '11月10日', '11月11日'], - }, - yAxis: { - type: 'value', - }, - series: [ - { - name: '辅助', - type: 'bar', - stack: '总量', - itemStyle: { - normal: { - barBorderColor: 'rgba(0,0,0,0)', - color: 'rgba(0,0,0,0)', - }, - emphasis: { - barBorderColor: 'rgba(0,0,0,0)', - color: 'rgba(0,0,0,0)', - }, + }, + legend: { + data: ['支出', '收入'], + }, + grid: { + left: '3%', + right: '4%', + bottom: '3%', + containLabel: true, + }, + xAxis: { + type: 'category', + splitLine: { show: false }, + data: ['11月1日', '11月2日', '11月3日', '11月4日', '11月5日', '11月6日', '11月7日', '11月8日', '11月9日', '11月10日', '11月11日'], + }, + yAxis: { + type: 'value', + }, + series: [ + { + name: '辅助', + type: 'bar', + stack: '总量', + itemStyle: { + normal: { + barBorderColor: 'rgba(0,0,0,0)', + color: 'rgba(0,0,0,0)', }, - data: [0, 900, 1245, 1530, 1376, 1376, 1511, 1689, 1856, 1495, 1292], - }, - { - name: '收入', - type: 'bar', - stack: '总量', - label: { - normal: { - show: true, - position: 'top', - }, + emphasis: { + barBorderColor: 'rgba(0,0,0,0)', + color: 'rgba(0,0,0,0)', }, - data: [900, 345, 393, '-', '-', 135, 178, 286, '-', '-', '-'], }, - { - name: '支出', - type: 'bar', - stack: '总量', - label: { - normal: { - show: true, - position: 'bottom', - }, + data: [0, 900, 1245, 1530, 1376, 1376, 1511, 1689, 1856, 1495, 1292], + }, + { + name: '收入', + type: 'bar', + stack: '总量', + label: { + normal: { + show: true, + position: 'top', }, - data: ['-', '-', '-', 108, 154, '-', '-', '-', 119, 361, 203], }, - ], - } - return option - }, - registerTheme () { - echarts.registerTheme('my_theme', { - backgroundColor: '#f4cccc', - }) - }, - render () { - this.registerTheme() - let code = "echarts.registerTheme('my_theme', {\n" + + data: [900, 345, 393, '-', '-', 135, 178, 286, '-', '-', '-'], + }, + { + name: '支出', + type: 'bar', + stack: '总量', + label: { + normal: { + show: true, + position: 'bottom', + }, + }, + data: ['-', '-', '-', 108, 154, '-', '-', '-', 119, 361, 203], + }, + ], + } + + + echarts.registerTheme('my_theme', { + backgroundColor: '#f4cccc', + }) + + let code = "echarts.registerTheme('my_theme', {\n" + " backgroundColor: '#f4cccc'\n" + '});\n\n' + '" - return ( -
-
- - - -
-            {code}
-          
-
+ return ( +
+
+ + + +
+          {code}
+        
- ) - }, -}) +
+ ) +} export default ThemeChartComponent diff --git a/src/routes/chart/ECharts/TreemapComponent.js b/src/routes/chart/ECharts/TreemapComponent.js index 6cd8270..a86c96a 100644 --- a/src/routes/chart/ECharts/TreemapComponent.js +++ b/src/routes/chart/ECharts/TreemapComponent.js @@ -2,265 +2,260 @@ import React from 'react' import ReactEcharts from 'echarts-for-react' import echarts from 'echarts' -const TreemapComponent = React.createClass({ - getOtion () { - let diskData = [ - { - value: 180, - name: 'Accounts', - path: 'Accounts', - children: [ - { - value: 76, - name: 'Access', - path: 'Accounts/Access', - children: [ - { - value: 12, - name: 'DefaultAccessPlugin.bundle', - path: 'Accounts/Access/DefaultAccessPlugin.bundle', - }, - { - value: 28, - name: 'FacebookAccessPlugin.bundle', - path: 'Accounts/Access/FacebookAccessPlugin.bundle', - }, - { - value: 20, - name: 'LinkedInAccessPlugin.bundle', - path: 'Accounts/Access/LinkedInAccessPlugin.bundle', - }, - { - value: 16, - name: 'TencentWeiboAccessPlugin.bundle', - path: 'Accounts/Access/TencentWeiboAccessPlugin.bundle', - }, - ], - }, - { - value: 92, - name: 'Authentication', - path: 'Accounts/Authentication', - children: [ - { - value: 24, - name: 'FacebookAuthenticationPlugin.bundle', - path: 'Accounts/Authentication/FacebookAuthenticationPlugin.bundle', - }, - { - value: 16, - name: 'LinkedInAuthenticationPlugin.bundle', - path: 'Accounts/Authentication/LinkedInAuthenticationPlugin.bundle', - }, - { - value: 20, - name: 'TencentWeiboAuthenticationPlugin.bundle', - path: 'Accounts/Authentication/TencentWeiboAuthenticationPlugin.bundle', - }, - { - value: 16, - name: 'TwitterAuthenticationPlugin.bundle', - path: 'Accounts/Authentication/TwitterAuthenticationPlugin.bundle', - }, - { - value: 16, - name: 'WeiboAuthenticationPlugin.bundle', - path: 'Accounts/Authentication/WeiboAuthenticationPlugin.bundle', - }, - ], - }, - { - value: 12, - name: 'Notification', - path: 'Accounts/Notification', - children: [ - { - value: 12, - name: 'SPAAccountsNotificationPlugin.bundle', - path: 'Accounts/Notification/SPAAccountsNotificationPlugin.bundle', - }, - ], - }, - ], - }, - { - value: 1904, - name: 'AddressBook Plug-Ins', - path: 'AddressBook Plug-Ins', - children: [ - { - value: 744, - name: 'CardDAVPlugin.sourcebundle', - path: 'AddressBook Plug-Ins/CardDAVPlugin.sourcebundle', - children: [ - { - value: 744, - name: 'Contents', - path: 'AddressBook Plug-Ins/CardDAVPlugin.sourcebundle/Contents', - }, - ], - }, - { - value: 28, - name: 'DirectoryServices.sourcebundle', - path: 'AddressBook Plug-Ins/DirectoryServices.sourcebundle', - children: [ - { - value: 28, - name: 'Contents', - path: 'AddressBook Plug-Ins/DirectoryServices.sourcebundle/Contents', - }, - ], - }, - { - value: 680, - name: 'Exchange.sourcebundle', - path: 'AddressBook Plug-Ins/Exchange.sourcebundle', - children: [ - { - value: 680, - name: 'Contents', - path: 'AddressBook Plug-Ins/Exchange.sourcebundle/Contents', - }, - ], - }, - { - value: 432, - name: 'LDAP.sourcebundle', - path: 'AddressBook Plug-Ins/LDAP.sourcebundle', - children: [ - { - value: 432, - name: 'Contents', - path: 'AddressBook Plug-Ins/LDAP.sourcebundle/Contents', - }, - ], - }, - { - value: 20, - name: 'LocalSource.sourcebundle', - path: 'AddressBook Plug-Ins/LocalSource.sourcebundle', - children: [ - { - value: 20, - name: 'Contents', - path: 'AddressBook Plug-Ins/LocalSource.sourcebundle/Contents', - }, - ], - }, - ], - }, - { - value: 36, - name: 'Assistant', - path: 'Assistant', - children: [ - { - value: 36, - name: 'Plugins', - path: 'Assistant/Plugins', - children: [ - { - value: 36, - name: 'AddressBook.assistantBundle', - path: 'Assistant/Plugins/AddressBook.assistantBundle', - }, - { - value: 8, - name: 'GenericAddressHandler.addresshandler', - path: 'Recents/Plugins/GenericAddressHandler.addresshandler', - }, - { - value: 12, - name: 'MapsRecents.addresshandler', - path: 'Recents/Plugins/MapsRecents.addresshandler', - }, - ], - }, - ], - }, - ] - let formatUtil = echarts.format - function getLevelOption () { - return [{ - itemStyle: { - normal: { - borderWidth: 0, - gapWidth: 5, - }, +const TreemapComponent = () => { + let diskData = [ + { + value: 180, + name: 'Accounts', + path: 'Accounts', + children: [ + { + value: 76, + name: 'Access', + path: 'Accounts/Access', + children: [ + { + value: 12, + name: 'DefaultAccessPlugin.bundle', + path: 'Accounts/Access/DefaultAccessPlugin.bundle', + }, + { + value: 28, + name: 'FacebookAccessPlugin.bundle', + path: 'Accounts/Access/FacebookAccessPlugin.bundle', + }, + { + value: 20, + name: 'LinkedInAccessPlugin.bundle', + path: 'Accounts/Access/LinkedInAccessPlugin.bundle', + }, + { + value: 16, + name: 'TencentWeiboAccessPlugin.bundle', + path: 'Accounts/Access/TencentWeiboAccessPlugin.bundle', + }, + ], }, - }, { - itemStyle: { - normal: { - gapWidth: 1, - }, + { + value: 92, + name: 'Authentication', + path: 'Accounts/Authentication', + children: [ + { + value: 24, + name: 'FacebookAuthenticationPlugin.bundle', + path: 'Accounts/Authentication/FacebookAuthenticationPlugin.bundle', + }, + { + value: 16, + name: 'LinkedInAuthenticationPlugin.bundle', + path: 'Accounts/Authentication/LinkedInAuthenticationPlugin.bundle', + }, + { + value: 20, + name: 'TencentWeiboAuthenticationPlugin.bundle', + path: 'Accounts/Authentication/TencentWeiboAuthenticationPlugin.bundle', + }, + { + value: 16, + name: 'TwitterAuthenticationPlugin.bundle', + path: 'Accounts/Authentication/TwitterAuthenticationPlugin.bundle', + }, + { + value: 16, + name: 'WeiboAuthenticationPlugin.bundle', + path: 'Accounts/Authentication/WeiboAuthenticationPlugin.bundle', + }, + ], }, - }, { - colorSaturation: [0.35, 0.5], - itemStyle: { - normal: { - gapWidth: 1, - borderColorSaturation: 0.6, - }, + { + value: 12, + name: 'Notification', + path: 'Accounts/Notification', + children: [ + { + value: 12, + name: 'SPAAccountsNotificationPlugin.bundle', + path: 'Accounts/Notification/SPAAccountsNotificationPlugin.bundle', + }, + ], + }, + ], + }, + { + value: 1904, + name: 'AddressBook Plug-Ins', + path: 'AddressBook Plug-Ins', + children: [ + { + value: 744, + name: 'CardDAVPlugin.sourcebundle', + path: 'AddressBook Plug-Ins/CardDAVPlugin.sourcebundle', + children: [ + { + value: 744, + name: 'Contents', + path: 'AddressBook Plug-Ins/CardDAVPlugin.sourcebundle/Contents', + }, + ], + }, + { + value: 28, + name: 'DirectoryServices.sourcebundle', + path: 'AddressBook Plug-Ins/DirectoryServices.sourcebundle', + children: [ + { + value: 28, + name: 'Contents', + path: 'AddressBook Plug-Ins/DirectoryServices.sourcebundle/Contents', + }, + ], + }, + { + value: 680, + name: 'Exchange.sourcebundle', + path: 'AddressBook Plug-Ins/Exchange.sourcebundle', + children: [ + { + value: 680, + name: 'Contents', + path: 'AddressBook Plug-Ins/Exchange.sourcebundle/Contents', + }, + ], + }, + { + value: 432, + name: 'LDAP.sourcebundle', + path: 'AddressBook Plug-Ins/LDAP.sourcebundle', + children: [ + { + value: 432, + name: 'Contents', + path: 'AddressBook Plug-Ins/LDAP.sourcebundle/Contents', + }, + ], + }, + { + value: 20, + name: 'LocalSource.sourcebundle', + path: 'AddressBook Plug-Ins/LocalSource.sourcebundle', + children: [ + { + value: 20, + name: 'Contents', + path: 'AddressBook Plug-Ins/LocalSource.sourcebundle/Contents', + }, + ], + }, + ], + }, + { + value: 36, + name: 'Assistant', + path: 'Assistant', + children: [ + { + value: 36, + name: 'Plugins', + path: 'Assistant/Plugins', + children: [ + { + value: 36, + name: 'AddressBook.assistantBundle', + path: 'Assistant/Plugins/AddressBook.assistantBundle', + }, + { + value: 8, + name: 'GenericAddressHandler.addresshandler', + path: 'Recents/Plugins/GenericAddressHandler.addresshandler', + }, + { + value: 12, + name: 'MapsRecents.addresshandler', + path: 'Recents/Plugins/MapsRecents.addresshandler', + }, + ], + }, + ], + }, + ] + let formatUtil = echarts.format + function getLevelOption () { + return [{ + itemStyle: { + normal: { + borderWidth: 0, + gapWidth: 5, }, - }] - } - const option = { - title: { - text: 'Disk Usage', - left: 'center', }, + }, { + itemStyle: { + normal: { + gapWidth: 1, + }, + }, + }, { + colorSaturation: [0.35, 0.5], + itemStyle: { + normal: { + gapWidth: 1, + borderColorSaturation: 0.6, + }, + }, + }] + } + const option = { + title: { + text: 'Disk Usage', + left: 'center', + }, - tooltip: { - formatter (info) { - let value = info.value - let treePathInfo = info.treePathInfo - let treePath = [] + tooltip: { + formatter (info) { + let { value, treePathInfo } = info + let treePath = [] - for (let i = 1; i < treePathInfo.length; i++) { - treePath.push(treePathInfo[i].name) - } + for (let i = 1; i < treePathInfo.length; i++) { + treePath.push(treePathInfo[i].name) + } - return [ - `
${formatUtil.encodeHTML(treePath.join('/'))}
`, - `Disk Usage: ${formatUtil.addCommas(value)} KB`, - ].join('') + return [ + `
${formatUtil.encodeHTML(treePath.join('/'))}
`, + `Disk Usage: ${formatUtil.addCommas(value)} KB`, + ].join('') + }, + }, + + series: [{ + name: 'Disk Usage', + type: 'treemap', + visibleMin: 300, + label: { + show: true, + formatter: '{b}', + }, + itemStyle: { + normal: { + borderColor: '#fff', }, }, + levels: getLevelOption(), + data: diskData, + }], + } - series: [{ - name: 'Disk Usage', - type: 'treemap', - visibleMin: 300, - label: { - show: true, - formatter: '{b}', - }, - itemStyle: { - normal: { - borderColor: '#fff', - }, - }, - levels: getLevelOption(), - data: diskData, - }], - } - return option - }, - render () { - return ( -
-
- - -
+ return ( +
+
+ +
- ) - }, -}) +
+ ) +} export default TreemapComponent diff --git a/src/routes/chart/ECharts/index.js b/src/routes/chart/ECharts/index.js index a28abc9..120260c 100644 --- a/src/routes/chart/ECharts/index.js +++ b/src/routes/chart/ECharts/index.js @@ -1,5 +1,6 @@ import React from 'react' import { Radio } from 'antd' +import { Page } from 'components' import EchartsComponent from './EchartsComponent' import styles from './index.less' @@ -94,7 +95,7 @@ class Chart extends React.Component { }) } render () { - return (
+ return (
@@ -102,7 +103,7 @@ class Chart extends React.Component { -
) +
) } } diff --git a/src/routes/chart/Recharts/AreaChartComponent.js b/src/routes/chart/Recharts/AreaChartComponent.js index 635d72e..161b7d1 100644 --- a/src/routes/chart/Recharts/AreaChartComponent.js +++ b/src/routes/chart/Recharts/AreaChartComponent.js @@ -257,7 +257,6 @@ const CardinalAreaChart = () => ( const AreaChartPage = () => (
) + ) } } diff --git a/src/routes/chart/highCharts/index.js b/src/routes/chart/highCharts/index.js index b90afaa..7941c2f 100644 --- a/src/routes/chart/highCharts/index.js +++ b/src/routes/chart/highCharts/index.js @@ -1,5 +1,6 @@ import React from 'react' import { Radio } from 'antd' +import { Page } from 'components' import HighChartsComponent from './HighChartsComponent' import styles from './index.less' @@ -34,12 +35,12 @@ class Chart extends React.Component { }) } render () { - return (
+ return (
-
) + ) } }