From bbe3d3c68a5ef6ff1e8c39449ff7896508b2fe4d Mon Sep 17 00:00:00 2001 From: Youngduk Park <0duck@kakao.com> Date: Thu, 8 Dec 2022 17:37:31 +0900 Subject: [PATCH 01/23] =?UTF-8?q?=EC=82=B0=EC=A0=90=EB=8F=84=20=ED=96=89?= =?UTF-8?q?=EB=A0=AC=20=EC=B0=A8=ED=8A=B8=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jsconfig.json | 6 +- src/assets/entry/scss/common/_tooltip.scss | 5 +- .../entry/scss/components/_TableChart.scss | 12 + src/components/ai_layout/TableChart.jsx | 7618 ++++++++++++++++- src/components/editor/dataAnalytics/Tab.jsx | 1 + .../dataAnalytics/chart/ChartLayout.jsx | 48 +- .../editor/dataAnalytics/chart/Legend.jsx | 84 +- .../editor/dataAnalytics/chart/Navigation.jsx | 2 + .../dataAnalytics/chart/ScatterGrid.jsx | 94 + src/components/widget/Chart.jsx | 22 +- src/constants/dataAnalytics.js | 26 +- src/constants/sample.js | 15 +- src/stories/index.js | 3333 +++++++- src/utils/dataAnalytics.js | 113 +- 14 files changed, 11280 insertions(+), 99 deletions(-) create mode 100644 src/components/editor/dataAnalytics/chart/ScatterGrid.jsx diff --git a/jsconfig.json b/jsconfig.json index 028c1ab6..c514315f 100644 --- a/jsconfig.json +++ b/jsconfig.json @@ -1,6 +1,6 @@ { "compilerOptions": { - "target": "ES6", + "target": "ES2022", "baseUrl": "./", "paths": { "@hoc/*": ["src/hoc/*"], @@ -10,7 +10,9 @@ "@components/*": ["src/components/*"], "@utils/*": ["src/utils/*"], "@reducers/*": ["src/reducers/*"], - "@contexts/*": ["src/contexts/*"] + "@contexts/*": ["src/contexts/*"], + "@selectors/*": ["src/selectors/*"], + "@constants/*": ["src/constants/*"] } }, "exclude": ["node_modules", "**/node_modules/*", "dist", "component"] diff --git a/src/assets/entry/scss/common/_tooltip.scss b/src/assets/entry/scss/common/_tooltip.scss index eb6ea88a..c743b657 100644 --- a/src/assets/entry/scss/common/_tooltip.scss +++ b/src/assets/entry/scss/common/_tooltip.scss @@ -797,7 +797,7 @@ position: absolute; left: 46px; top: 0; - width: 340px; + width: 393px; padding: 16px 0 14px 4px; box-sizing: border-box; background-color: #fff; @@ -847,6 +847,9 @@ &.scatter a:before { background-image: url('#{$imageDir}/icon_chart_sel04_on.svg'); } + &.scatterGrid a:before { + background-image: url('#{$imageDir}/icon_chart_sel04_on.svg'); + } &.histogram a:before { background-image: url('#{$imageDir}/icon_chart_sel05_on.svg'); } diff --git a/src/assets/entry/scss/components/_TableChart.scss b/src/assets/entry/scss/components/_TableChart.scss index 9f6ddd8a..522096c2 100644 --- a/src/assets/entry/scss/components/_TableChart.scss +++ b/src/assets/entry/scss/components/_TableChart.scss @@ -154,6 +154,9 @@ .chart_link.scatter { background-image: url('#{$imageDir}/icon_chart_sel04_on.svg'); } + .chart_link.scatterGrid { + background-image: url('#{$imageDir}/icon_chart_sel04_on.svg'); + } .chart_link.histogram { background-image: url('#{$imageDir}/icon_chart_sel05_on.svg'); } @@ -169,6 +172,9 @@ .chart_link.scatter.disabled { background-image: url('#{$imageDir}/icon_chart_sel04_off.svg'); } + .chart_link.scatterGrid.disabled { + background-image: url('#{$imageDir}/icon_chart_sel04_off.svg'); + } .chart_link.histogram.disabled { background-image: url('#{$imageDir}/icon_chart_sel05_off.svg'); } @@ -708,6 +714,9 @@ .chart_link.scatter { background-image: url('#{$imageDir}/icon_chart_sel04_on.svg'); } + .chart_link.scatterGrid { + background-image: url('#{$imageDir}/icon_chart_sel04_on.svg'); + } .chart_link.histogram { background-image: url('#{$imageDir}/icon_chart_sel05_on.svg'); } @@ -723,6 +732,9 @@ .chart_link.scatter.disabled { background-image: url('#{$imageDir}/icon_chart_sel04_off.svg'); } + .chart_link.scatterGrid.disabled { + background-image: url('#{$imageDir}/icon_chart_sel04_off.svg'); + } .chart_link.histogram.disabled { background-image: url('#{$imageDir}/icon_chart_sel05_off.svg'); } diff --git a/src/components/ai_layout/TableChart.jsx b/src/components/ai_layout/TableChart.jsx index 81099dbb..b60d0242 100644 --- a/src/components/ai_layout/TableChart.jsx +++ b/src/components/ai_layout/TableChart.jsx @@ -2274,4 +2274,7620 @@ class TableChart extends Component { } } } -export default TableChart; \ No newline at end of file +export default TableChart; + +export const data = [ + { + "id": "4sbt", + "name": "보스턴 주택 가격 데이터", + "summary": "특정 시기 미국 보스턴 교외 지역의 주택 가격에 영향을 주었던 여러 지표와 당시 주택의 중간 가격(중앙값)을 정리한 예시 데이터입니다.", + "chart": [], + "table": [ + [ + "범죄율", + "대형 주택 지역 비율", + "산업 지역 비율", + "강 인접 여부", + "일산화질소 농도", + "평균 방 개수", + "오래된 주택 비율", + "고용 센터 접근성", + "고속도로 접근성", + "재산세율", + "학생-교사 비율", + "저소득 계층 비율", + "주택 중간 가격" + ], + [ + 0.00632, + 18, + 2.31, + 0, + 0.538, + 6.575, + 65.2, + 4.09, + 1, + 296, + 15.3, + 4.98, + 24 + ], + [ + 0.02731, + 0, + 7.07, + 0, + 0.469, + 6.421, + 78.9, + 4.9671, + 2, + 242, + 17.8, + 9.14, + 21.6 + ], + [ + 0.02729, + 0, + 7.07, + 0, + 0.469, + 7.185, + 61.1, + 4.9671, + 2, + 242, + 17.8, + 4.03, + 34.7 + ], + [ + 0.03237, + 0, + 2.18, + 0, + 0.458, + 6.998, + 45.8, + 6.0622, + 3, + 222, + 18.7, + 2.94, + 33.4 + ], + [ + 0.06905, + 0, + 2.18, + 0, + 0.458, + 7.147, + 54.2, + 6.0622, + 3, + 222, + 18.7, + 5.33, + 36.2 + ], + [ + 0.02985, + 0, + 2.18, + 0, + 0.458, + 6.43, + 58.7, + 6.0622, + 3, + 222, + 18.7, + 5.21, + 28.7 + ], + [ + 0.08829, + 12.5, + 7.87, + 0, + 0.524, + 6.012, + 66.6, + 5.5605, + 5, + 311, + 15.2, + 12.43, + 22.9 + ], + [ + 0.14455, + 12.5, + 7.87, + 0, + 0.524, + 6.172, + 96.1, + 5.9505, + 5, + 311, + 15.2, + 19.15, + 27.1 + ], + [ + 0.21124, + 12.5, + 7.87, + 0, + 0.524, + 5.631, + 100, + 6.0821, + 5, + 311, + 15.2, + 29.93, + 16.5 + ], + [ + 0.17004, + 12.5, + 7.87, + 0, + 0.524, + 6.004, + 85.9, + 6.5921, + 5, + 311, + 15.2, + 17.1, + 18.9 + ], + [ + 0.22489, + 12.5, + 7.87, + 0, + 0.524, + 6.377, + 94.3, + 6.3467, + 5, + 311, + 15.2, + 20.45, + 15 + ], + [ + 0.11747, + 12.5, + 7.87, + 0, + 0.524, + 6.009, + 82.9, + 6.2267, + 5, + 311, + 15.2, + 13.27, + 18.9 + ], + [ + 0.09378, + 12.5, + 7.87, + 0, + 0.524, + 5.889, + 39, + 5.4509, + 5, + 311, + 15.2, + 15.71, + 21.7 + ], + [ + 0.62976, + 0, + 8.14, + 0, + 0.538, + 5.949, + 61.8, + 4.7075, + 4, + 307, + 21, + 8.26, + 20.4 + ], + [ + 0.63796, + 0, + 8.14, + 0, + 0.538, + 6.096, + 84.5, + 4.4619, + 4, + 307, + 21, + 10.26, + 18.2 + ], + [ + 0.62739, + 0, + 8.14, + 0, + 0.538, + 5.834, + 56.5, + 4.4986, + 4, + 307, + 21, + 8.47, + 19.9 + ], + [ + 1.05393, + 0, + 8.14, + 0, + 0.538, + 5.935, + 29.3, + 4.4986, + 4, + 307, + 21, + 6.58, + 23.1 + ], + [ + 0.7842, + 0, + 8.14, + 0, + 0.538, + 5.99, + 81.7, + 4.2579, + 4, + 307, + 21, + 14.67, + 17.5 + ], + [ + 0.80271, + 0, + 8.14, + 0, + 0.538, + 5.456, + 36.6, + 3.7965, + 4, + 307, + 21, + 11.69, + 20.2 + ], + [ + 0.7258, + 0, + 8.14, + 0, + 0.538, + 5.727, + 69.5, + 3.7965, + 4, + 307, + 21, + 11.28, + 18.2 + ], + [ + 1.25179, + 0, + 8.14, + 0, + 0.538, + 5.57, + 98.1, + 3.7979, + 4, + 307, + 21, + 21.02, + 13.6 + ], + [ + 0.85204, + 0, + 8.14, + 0, + 0.538, + 5.965, + 89.2, + 4.0123, + 4, + 307, + 21, + 13.83, + 19.6 + ], + [ + 1.23247, + 0, + 8.14, + 0, + 0.538, + 6.142, + 91.7, + 3.9769, + 4, + 307, + 21, + 18.72, + 15.2 + ], + [ + 0.98843, + 0, + 8.14, + 0, + 0.538, + 5.813, + 100, + 4.0952, + 4, + 307, + 21, + 19.88, + 14.5 + ], + [ + 0.75026, + 0, + 8.14, + 0, + 0.538, + 5.924, + 94.1, + 4.3996, + 4, + 307, + 21, + 16.3, + 15.6 + ], + [ + 0.84054, + 0, + 8.14, + 0, + 0.538, + 5.599, + 85.7, + 4.4546, + 4, + 307, + 21, + 16.51, + 13.9 + ], + [ + 0.67191, + 0, + 8.14, + 0, + 0.538, + 5.813, + 90.3, + 4.682, + 4, + 307, + 21, + 14.81, + 16.6 + ], + [ + 0.95577, + 0, + 8.14, + 0, + 0.538, + 6.047, + 88.8, + 4.4534, + 4, + 307, + 21, + 17.28, + 14.8 + ], + [ + 0.77299, + 0, + 8.14, + 0, + 0.538, + 6.495, + 94.4, + 4.4547, + 4, + 307, + 21, + 12.8, + 18.4 + ], + [ + 1.00245, + 0, + 8.14, + 0, + 0.538, + 6.674, + 87.3, + 4.239, + 4, + 307, + 21, + 11.98, + 21 + ], + [ + 1.13081, + 0, + 8.14, + 0, + 0.538, + 5.713, + 94.1, + 4.233, + 4, + 307, + 21, + 22.6, + 12.7 + ], + [ + 1.35472, + 0, + 8.14, + 0, + 0.538, + 6.072, + 100, + 4.175, + 4, + 307, + 21, + 13.04, + 14.5 + ], + [ + 1.38799, + 0, + 8.14, + 0, + 0.538, + 5.95, + 82, + 3.99, + 4, + 307, + 21, + 27.71, + 13.2 + ], + [ + 1.15172, + 0, + 8.14, + 0, + 0.538, + 5.701, + 95, + 3.7872, + 4, + 307, + 21, + 18.35, + 13.1 + ], + [ + 1.61282, + 0, + 8.14, + 0, + 0.538, + 6.096, + 96.9, + 3.7598, + 4, + 307, + 21, + 20.34, + 13.5 + ], + [ + 0.06417, + 0, + 5.96, + 0, + 0.499, + 5.933, + 68.2, + 3.3603, + 5, + 279, + 19.2, + 9.68, + 18.9 + ], + [ + 0.09744, + 0, + 5.96, + 0, + 0.499, + 5.841, + 61.4, + 3.3779, + 5, + 279, + 19.2, + 11.41, + 20 + ], + [ + 0.08014, + 0, + 5.96, + 0, + 0.499, + 5.85, + 41.5, + 3.9342, + 5, + 279, + 19.2, + 8.77, + 21 + ], + [ + 0.17505, + 0, + 5.96, + 0, + 0.499, + 5.966, + 30.2, + 3.8473, + 5, + 279, + 19.2, + 10.13, + 24.7 + ], + [ + 0.02763, + 75, + 2.95, + 0, + 0.428, + 6.595, + 21.8, + 5.4011, + 3, + 252, + 18.3, + 4.32, + 30.8 + ], + [ + 0.03359, + 75, + 2.95, + 0, + 0.428, + 7.024, + 15.8, + 5.4011, + 3, + 252, + 18.3, + 1.98, + 34.9 + ], + [ + 0.12744, + 0, + 6.91, + 0, + 0.448, + 6.77, + 2.9, + 5.7209, + 3, + 233, + 17.9, + 4.84, + 26.6 + ], + [ + 0.1415, + 0, + 6.91, + 0, + 0.448, + 6.169, + 6.6, + 5.7209, + 3, + 233, + 17.9, + 5.81, + 25.3 + ], + [ + 0.15936, + 0, + 6.91, + 0, + 0.448, + 6.211, + 6.5, + 5.7209, + 3, + 233, + 17.9, + 7.44, + 24.7 + ], + [ + 0.12269, + 0, + 6.91, + 0, + 0.448, + 6.069, + 40, + 5.7209, + 3, + 233, + 17.9, + 9.55, + 21.2 + ], + [ + 0.17142, + 0, + 6.91, + 0, + 0.448, + 5.682, + 33.8, + 5.1004, + 3, + 233, + 17.9, + 10.21, + 19.3 + ], + [ + 0.18836, + 0, + 6.91, + 0, + 0.448, + 5.786, + 33.3, + 5.1004, + 3, + 233, + 17.9, + 14.15, + 20 + ], + [ + 0.22927, + 0, + 6.91, + 0, + 0.448, + 6.03, + 85.5, + 5.6894, + 3, + 233, + 17.9, + 18.8, + 16.6 + ], + [ + 0.25387, + 0, + 6.91, + 0, + 0.448, + 5.399, + 95.3, + 5.87, + 3, + 233, + 17.9, + 30.81, + 14.4 + ], + [ + 0.21977, + 0, + 6.91, + 0, + 0.448, + 5.602, + 62, + 6.0877, + 3, + 233, + 17.9, + 16.2, + 19.4 + ], + [ + 0.08873, + 21, + 5.64, + 0, + 0.439, + 5.963, + 45.7, + 6.8147, + 4, + 243, + 16.8, + 13.45, + 19.7 + ], + [ + 0.04337, + 21, + 5.64, + 0, + 0.439, + 6.115, + 63, + 6.8147, + 4, + 243, + 16.8, + 9.43, + 20.5 + ], + [ + 0.0536, + 21, + 5.64, + 0, + 0.439, + 6.511, + 21.1, + 6.8147, + 4, + 243, + 16.8, + 5.28, + 25 + ], + [ + 0.04981, + 21, + 5.64, + 0, + 0.439, + 5.998, + 21.4, + 6.8147, + 4, + 243, + 16.8, + 8.43, + 23.4 + ], + [ + 0.0136, + 75, + 4, + 0, + 0.41, + 5.888, + 47.6, + 7.3197, + 3, + 469, + 21.1, + 14.8, + 18.9 + ], + [ + 0.01311, + 90, + 1.22, + 0, + 0.403, + 7.249, + 21.9, + 8.6966, + 5, + 226, + 17.9, + 4.81, + 35.4 + ], + [ + 0.02055, + 85, + 0.74, + 0, + 0.41, + 6.383, + 35.7, + 9.1876, + 2, + 313, + 17.3, + 5.77, + 24.7 + ], + [ + 0.01432, + 100, + 1.32, + 0, + 0.411, + 6.816, + 40.5, + 8.3248, + 5, + 256, + 15.1, + 3.95, + 31.6 + ], + [ + 0.15445, + 25, + 5.13, + 0, + 0.453, + 6.145, + 29.2, + 7.8148, + 8, + 284, + 19.7, + 6.86, + 23.3 + ], + [ + 0.10328, + 25, + 5.13, + 0, + 0.453, + 5.927, + 47.2, + 6.932, + 8, + 284, + 19.7, + 9.22, + 19.6 + ], + [ + 0.14932, + 25, + 5.13, + 0, + 0.453, + 5.741, + 66.2, + 7.2254, + 8, + 284, + 19.7, + 13.15, + 18.7 + ], + [ + 0.17171, + 25, + 5.13, + 0, + 0.453, + 5.966, + 93.4, + 6.8185, + 8, + 284, + 19.7, + 14.44, + 16 + ], + [ + 0.11027, + 25, + 5.13, + 0, + 0.453, + 6.456, + 67.8, + 7.2255, + 8, + 284, + 19.7, + 6.73, + 22.2 + ], + [ + 0.1265, + 25, + 5.13, + 0, + 0.453, + 6.762, + 43.4, + 7.9809, + 8, + 284, + 19.7, + 9.5, + 25 + ], + [ + 0.01951, + 17.5, + 1.38, + 0, + 0.4161, + 7.104, + 59.5, + 9.2229, + 3, + 216, + 18.6, + 8.05, + 33 + ], + [ + 0.03584, + 80, + 3.37, + 0, + 0.398, + 6.29, + 17.8, + 6.6115, + 4, + 337, + 16.1, + 4.67, + 23.5 + ], + [ + 0.04379, + 80, + 3.37, + 0, + 0.398, + 5.787, + 31.1, + 6.6115, + 4, + 337, + 16.1, + 10.24, + 19.4 + ], + [ + 0.05789, + 12.5, + 6.07, + 0, + 0.409, + 5.878, + 21.4, + 6.498, + 4, + 345, + 18.9, + 8.1, + 22 + ], + [ + 0.13554, + 12.5, + 6.07, + 0, + 0.409, + 5.594, + 36.8, + 6.498, + 4, + 345, + 18.9, + 13.09, + 17.4 + ], + [ + 0.12816, + 12.5, + 6.07, + 0, + 0.409, + 5.885, + 33, + 6.498, + 4, + 345, + 18.9, + 8.79, + 20.9 + ], + [ + 0.08826, + 0, + 10.81, + 0, + 0.413, + 6.417, + 6.6, + 5.2873, + 4, + 305, + 19.2, + 6.72, + 24.2 + ], + [ + 0.15876, + 0, + 10.81, + 0, + 0.413, + 5.961, + 17.5, + 5.2873, + 4, + 305, + 19.2, + 9.88, + 21.7 + ], + [ + 0.09164, + 0, + 10.81, + 0, + 0.413, + 6.065, + 7.8, + 5.2873, + 4, + 305, + 19.2, + 5.52, + 22.8 + ], + [ + 0.19539, + 0, + 10.81, + 0, + 0.413, + 6.245, + 6.2, + 5.2873, + 4, + 305, + 19.2, + 7.54, + 23.4 + ], + [ + 0.07896, + 0, + 12.83, + 0, + 0.437, + 6.273, + 6, + 4.2515, + 5, + 398, + 18.7, + 6.78, + 24.1 + ], + [ + 0.09512, + 0, + 12.83, + 0, + 0.437, + 6.286, + 45, + 4.5026, + 5, + 398, + 18.7, + 8.94, + 21.4 + ], + [ + 0.10153, + 0, + 12.83, + 0, + 0.437, + 6.279, + 74.5, + 4.0522, + 5, + 398, + 18.7, + 11.97, + 20 + ], + [ + 0.08707, + 0, + 12.83, + 0, + 0.437, + 6.14, + 45.8, + 4.0905, + 5, + 398, + 18.7, + 10.27, + 20.8 + ], + [ + 0.05646, + 0, + 12.83, + 0, + 0.437, + 6.232, + 53.7, + 5.0141, + 5, + 398, + 18.7, + 12.34, + 21.2 + ], + [ + 0.08387, + 0, + 12.83, + 0, + 0.437, + 5.874, + 36.6, + 4.5026, + 5, + 398, + 18.7, + 9.1, + 20.3 + ], + [ + 0.04113, + 25, + 4.86, + 0, + 0.426, + 6.727, + 33.5, + 5.4007, + 4, + 281, + 19, + 5.29, + 28 + ], + [ + 0.04462, + 25, + 4.86, + 0, + 0.426, + 6.619, + 70.4, + 5.4007, + 4, + 281, + 19, + 7.22, + 23.9 + ], + [ + 0.03659, + 25, + 4.86, + 0, + 0.426, + 6.302, + 32.2, + 5.4007, + 4, + 281, + 19, + 6.72, + 24.8 + ], + [ + 0.03551, + 25, + 4.86, + 0, + 0.426, + 6.167, + 46.7, + 5.4007, + 4, + 281, + 19, + 7.51, + 22.9 + ], + [ + 0.05059, + 0, + 4.49, + 0, + 0.449, + 6.389, + 48, + 4.7794, + 3, + 247, + 18.5, + 9.62, + 23.9 + ], + [ + 0.05735, + 0, + 4.49, + 0, + 0.449, + 6.63, + 56.1, + 4.4377, + 3, + 247, + 18.5, + 6.53, + 26.6 + ], + [ + 0.05188, + 0, + 4.49, + 0, + 0.449, + 6.015, + 45.1, + 4.4272, + 3, + 247, + 18.5, + 12.86, + 22.5 + ], + [ + 0.07151, + 0, + 4.49, + 0, + 0.449, + 6.121, + 56.8, + 3.7476, + 3, + 247, + 18.5, + 8.44, + 22.2 + ], + [ + 0.0566, + 0, + 3.41, + 0, + 0.489, + 7.007, + 86.3, + 3.4217, + 2, + 270, + 17.8, + 5.5, + 23.6 + ], + [ + 0.05302, + 0, + 3.41, + 0, + 0.489, + 7.079, + 63.1, + 3.4145, + 2, + 270, + 17.8, + 5.7, + 28.7 + ], + [ + 0.04684, + 0, + 3.41, + 0, + 0.489, + 6.417, + 66.1, + 3.0923, + 2, + 270, + 17.8, + 8.81, + 22.6 + ], + [ + 0.03932, + 0, + 3.41, + 0, + 0.489, + 6.405, + 73.9, + 3.0921, + 2, + 270, + 17.8, + 8.2, + 22 + ], + [ + 0.04203, + 28, + 15.04, + 0, + 0.464, + 6.442, + 53.6, + 3.6659, + 4, + 270, + 18.2, + 8.16, + 22.9 + ], + [ + 0.02875, + 28, + 15.04, + 0, + 0.464, + 6.211, + 28.9, + 3.6659, + 4, + 270, + 18.2, + 6.21, + 25 + ], + [ + 0.04294, + 28, + 15.04, + 0, + 0.464, + 6.249, + 77.3, + 3.615, + 4, + 270, + 18.2, + 10.59, + 20.6 + ], + [ + 0.12204, + 0, + 2.89, + 0, + 0.445, + 6.625, + 57.8, + 3.4952, + 2, + 276, + 18, + 6.65, + 28.4 + ], + [ + 0.11504, + 0, + 2.89, + 0, + 0.445, + 6.163, + 69.6, + 3.4952, + 2, + 276, + 18, + 11.34, + 21.4 + ], + [ + 0.12083, + 0, + 2.89, + 0, + 0.445, + 8.069, + 76, + 3.4952, + 2, + 276, + 18, + 4.21, + 38.7 + ], + [ + 0.08187, + 0, + 2.89, + 0, + 0.445, + 7.82, + 36.9, + 3.4952, + 2, + 276, + 18, + 3.57, + 43.8 + ], + [ + 0.0686, + 0, + 2.89, + 0, + 0.445, + 7.416, + 62.5, + 3.4952, + 2, + 276, + 18, + 6.19, + 33.2 + ], + [ + 0.14866, + 0, + 8.56, + 0, + 0.52, + 6.727, + 79.9, + 2.7778, + 5, + 384, + 20.9, + 9.42, + 27.5 + ], + [ + 0.11432, + 0, + 8.56, + 0, + 0.52, + 6.781, + 71.3, + 2.8561, + 5, + 384, + 20.9, + 7.67, + 26.5 + ], + [ + 0.22876, + 0, + 8.56, + 0, + 0.52, + 6.405, + 85.4, + 2.7147, + 5, + 384, + 20.9, + 10.63, + 18.6 + ], + [ + 0.21161, + 0, + 8.56, + 0, + 0.52, + 6.137, + 87.4, + 2.7147, + 5, + 384, + 20.9, + 13.44, + 19.3 + ], + [ + 0.1396, + 0, + 8.56, + 0, + 0.52, + 6.167, + 90, + 2.421, + 5, + 384, + 20.9, + 12.33, + 20.1 + ], + [ + 0.13262, + 0, + 8.56, + 0, + 0.52, + 5.851, + 96.7, + 2.1069, + 5, + 384, + 20.9, + 16.47, + 19.5 + ], + [ + 0.1712, + 0, + 8.56, + 0, + 0.52, + 5.836, + 91.9, + 2.211, + 5, + 384, + 20.9, + 18.66, + 19.5 + ], + [ + 0.13117, + 0, + 8.56, + 0, + 0.52, + 6.127, + 85.2, + 2.1224, + 5, + 384, + 20.9, + 14.09, + 20.4 + ], + [ + 0.12802, + 0, + 8.56, + 0, + 0.52, + 6.474, + 97.1, + 2.4329, + 5, + 384, + 20.9, + 12.27, + 19.8 + ], + [ + 0.26363, + 0, + 8.56, + 0, + 0.52, + 6.229, + 91.2, + 2.5451, + 5, + 384, + 20.9, + 15.55, + 19.4 + ], + [ + 0.10793, + 0, + 8.56, + 0, + 0.52, + 6.195, + 54.4, + 2.7778, + 5, + 384, + 20.9, + 13, + 21.7 + ], + [ + 0.10084, + 0, + 10.01, + 0, + 0.547, + 6.715, + 81.6, + 2.6775, + 6, + 432, + 17.8, + 10.16, + 22.8 + ], + [ + 0.12329, + 0, + 10.01, + 0, + 0.547, + 5.913, + 92.9, + 2.3534, + 6, + 432, + 17.8, + 16.21, + 18.8 + ], + [ + 0.22212, + 0, + 10.01, + 0, + 0.547, + 6.092, + 95.4, + 2.548, + 6, + 432, + 17.8, + 17.09, + 18.7 + ], + [ + 0.14231, + 0, + 10.01, + 0, + 0.547, + 6.254, + 84.2, + 2.2565, + 6, + 432, + 17.8, + 10.45, + 18.5 + ], + [ + 0.17134, + 0, + 10.01, + 0, + 0.547, + 5.928, + 88.2, + 2.4631, + 6, + 432, + 17.8, + 15.76, + 18.3 + ], + [ + 0.13158, + 0, + 10.01, + 0, + 0.547, + 6.176, + 72.5, + 2.7301, + 6, + 432, + 17.8, + 12.04, + 21.2 + ], + [ + 0.15098, + 0, + 10.01, + 0, + 0.547, + 6.021, + 82.6, + 2.7474, + 6, + 432, + 17.8, + 10.3, + 19.2 + ], + [ + 0.13058, + 0, + 10.01, + 0, + 0.547, + 5.872, + 73.1, + 2.4775, + 6, + 432, + 17.8, + 15.37, + 20.4 + ], + [ + 0.14476, + 0, + 10.01, + 0, + 0.547, + 5.731, + 65.2, + 2.7592, + 6, + 432, + 17.8, + 13.61, + 19.3 + ], + [ + 0.06899, + 0, + 25.65, + 0, + 0.581, + 5.87, + 69.7, + 2.2577, + 2, + 188, + 19.1, + 14.37, + 22 + ], + [ + 0.07165, + 0, + 25.65, + 0, + 0.581, + 6.004, + 84.1, + 2.1974, + 2, + 188, + 19.1, + 14.27, + 20.3 + ], + [ + 0.09299, + 0, + 25.65, + 0, + 0.581, + 5.961, + 92.9, + 2.0869, + 2, + 188, + 19.1, + 17.93, + 20.5 + ], + [ + 0.15038, + 0, + 25.65, + 0, + 0.581, + 5.856, + 97, + 1.9444, + 2, + 188, + 19.1, + 25.41, + 17.3 + ], + [ + 0.09849, + 0, + 25.65, + 0, + 0.581, + 5.879, + 95.8, + 2.0063, + 2, + 188, + 19.1, + 17.58, + 18.8 + ], + [ + 0.16902, + 0, + 25.65, + 0, + 0.581, + 5.986, + 88.4, + 1.9929, + 2, + 188, + 19.1, + 14.81, + 21.4 + ], + [ + 0.38735, + 0, + 25.65, + 0, + 0.581, + 5.613, + 95.6, + 1.7572, + 2, + 188, + 19.1, + 27.26, + 15.7 + ], + [ + 0.25915, + 0, + 21.89, + 0, + 0.624, + 5.693, + 96, + 1.7883, + 4, + 437, + 21.2, + 17.19, + 16.2 + ], + [ + 0.32543, + 0, + 21.89, + 0, + 0.624, + 6.431, + 98.8, + 1.8125, + 4, + 437, + 21.2, + 15.39, + 18 + ], + [ + 0.88125, + 0, + 21.89, + 0, + 0.624, + 5.637, + 94.7, + 1.9799, + 4, + 437, + 21.2, + 18.34, + 14.3 + ], + [ + 0.34006, + 0, + 21.89, + 0, + 0.624, + 6.458, + 98.9, + 2.1185, + 4, + 437, + 21.2, + 12.6, + 19.2 + ], + [ + 1.19294, + 0, + 21.89, + 0, + 0.624, + 6.326, + 97.7, + 2.271, + 4, + 437, + 21.2, + 12.26, + 19.6 + ], + [ + 0.59005, + 0, + 21.89, + 0, + 0.624, + 6.372, + 97.9, + 2.3274, + 4, + 437, + 21.2, + 11.12, + 23 + ], + [ + 0.32982, + 0, + 21.89, + 0, + 0.624, + 5.822, + 95.4, + 2.4699, + 4, + 437, + 21.2, + 15.03, + 18.4 + ], + [ + 0.97617, + 0, + 21.89, + 0, + 0.624, + 5.757, + 98.4, + 2.346, + 4, + 437, + 21.2, + 17.31, + 15.6 + ], + [ + 0.55778, + 0, + 21.89, + 0, + 0.624, + 6.335, + 98.2, + 2.1107, + 4, + 437, + 21.2, + 16.96, + 18.1 + ], + [ + 0.32264, + 0, + 21.89, + 0, + 0.624, + 5.942, + 93.5, + 1.9669, + 4, + 437, + 21.2, + 16.9, + 17.4 + ], + [ + 0.35233, + 0, + 21.89, + 0, + 0.624, + 6.454, + 98.4, + 1.8498, + 4, + 437, + 21.2, + 14.59, + 17.1 + ], + [ + 0.2498, + 0, + 21.89, + 0, + 0.624, + 5.857, + 98.2, + 1.6686, + 4, + 437, + 21.2, + 21.32, + 13.3 + ], + [ + 0.54452, + 0, + 21.89, + 0, + 0.624, + 6.151, + 97.9, + 1.6687, + 4, + 437, + 21.2, + 18.46, + 17.8 + ], + [ + 0.2909, + 0, + 21.89, + 0, + 0.624, + 6.174, + 93.6, + 1.6119, + 4, + 437, + 21.2, + 24.16, + 14 + ], + [ + 1.62864, + 0, + 21.89, + 0, + 0.624, + 5.019, + 100, + 1.4394, + 4, + 437, + 21.2, + 34.41, + 14.4 + ], + [ + 3.32105, + 0, + 19.58, + 1, + 0.871, + 5.403, + 100, + 1.3216, + 5, + 403, + 14.7, + 26.82, + 13.4 + ], + [ + 4.0974, + 0, + 19.58, + 0, + 0.871, + 5.468, + 100, + 1.4118, + 5, + 403, + 14.7, + 26.42, + 15.6 + ], + [ + 2.77974, + 0, + 19.58, + 0, + 0.871, + 4.903, + 97.8, + 1.3459, + 5, + 403, + 14.7, + 29.29, + 11.8 + ], + [ + 2.37934, + 0, + 19.58, + 0, + 0.871, + 6.13, + 100, + 1.4191, + 5, + 403, + 14.7, + 27.8, + 13.8 + ], + [ + 2.15505, + 0, + 19.58, + 0, + 0.871, + 5.628, + 100, + 1.5166, + 5, + 403, + 14.7, + 16.65, + 15.6 + ], + [ + 2.36862, + 0, + 19.58, + 0, + 0.871, + 4.926, + 95.7, + 1.4608, + 5, + 403, + 14.7, + 29.53, + 14.6 + ], + [ + 2.33099, + 0, + 19.58, + 0, + 0.871, + 5.186, + 93.8, + 1.5296, + 5, + 403, + 14.7, + 28.32, + 17.8 + ], + [ + 2.73397, + 0, + 19.58, + 0, + 0.871, + 5.597, + 94.9, + 1.5257, + 5, + 403, + 14.7, + 21.45, + 15.4 + ], + [ + 1.6566, + 0, + 19.58, + 0, + 0.871, + 6.122, + 97.3, + 1.618, + 5, + 403, + 14.7, + 14.1, + 21.5 + ], + [ + 1.49632, + 0, + 19.58, + 0, + 0.871, + 5.404, + 100, + 1.5916, + 5, + 403, + 14.7, + 13.28, + 19.6 + ], + [ + 1.12658, + 0, + 19.58, + 1, + 0.871, + 5.012, + 88, + 1.6102, + 5, + 403, + 14.7, + 12.12, + 15.3 + ], + [ + 2.14918, + 0, + 19.58, + 0, + 0.871, + 5.709, + 98.5, + 1.6232, + 5, + 403, + 14.7, + 15.79, + 19.4 + ], + [ + 1.41385, + 0, + 19.58, + 1, + 0.871, + 6.129, + 96, + 1.7494, + 5, + 403, + 14.7, + 15.12, + 17 + ], + [ + 3.53501, + 0, + 19.58, + 1, + 0.871, + 6.152, + 82.6, + 1.7455, + 5, + 403, + 14.7, + 15.02, + 15.6 + ], + [ + 2.44668, + 0, + 19.58, + 0, + 0.871, + 5.272, + 94, + 1.7364, + 5, + 403, + 14.7, + 16.14, + 13.1 + ], + [ + 1.22358, + 0, + 19.58, + 0, + 0.605, + 6.943, + 97.4, + 1.8773, + 5, + 403, + 14.7, + 4.59, + 41.3 + ], + [ + 1.34284, + 0, + 19.58, + 0, + 0.605, + 6.066, + 100, + 1.7573, + 5, + 403, + 14.7, + 6.43, + 24.3 + ], + [ + 1.42502, + 0, + 19.58, + 0, + 0.871, + 6.51, + 100, + 1.7659, + 5, + 403, + 14.7, + 7.39, + 23.3 + ], + [ + 1.27346, + 0, + 19.58, + 1, + 0.605, + 6.25, + 92.6, + 1.7984, + 5, + 403, + 14.7, + 5.5, + 27 + ], + [ + 1.46336, + 0, + 19.58, + 0, + 0.605, + 7.489, + 90.8, + 1.9709, + 5, + 403, + 14.7, + 1.73, + 50 + ], + [ + 1.83377, + 0, + 19.58, + 1, + 0.605, + 7.802, + 98.2, + 2.0407, + 5, + 403, + 14.7, + 1.92, + 50 + ], + [ + 1.51902, + 0, + 19.58, + 1, + 0.605, + 8.375, + 93.9, + 2.162, + 5, + 403, + 14.7, + 3.32, + 50 + ], + [ + 2.24236, + 0, + 19.58, + 0, + 0.605, + 5.854, + 91.8, + 2.422, + 5, + 403, + 14.7, + 11.64, + 22.7 + ], + [ + 2.924, + 0, + 19.58, + 0, + 0.605, + 6.101, + 93, + 2.2834, + 5, + 403, + 14.7, + 9.81, + 25 + ], + [ + 2.01019, + 0, + 19.58, + 0, + 0.605, + 7.929, + 96.2, + 2.0459, + 5, + 403, + 14.7, + 3.7, + 50 + ], + [ + 1.80028, + 0, + 19.58, + 0, + 0.605, + 5.877, + 79.2, + 2.4259, + 5, + 403, + 14.7, + 12.14, + 23.8 + ], + [ + 2.3004, + 0, + 19.58, + 0, + 0.605, + 6.319, + 96.1, + 2.1, + 5, + 403, + 14.7, + 11.1, + 23.8 + ], + [ + 2.44953, + 0, + 19.58, + 0, + 0.605, + 6.402, + 95.2, + 2.2625, + 5, + 403, + 14.7, + 11.32, + 22.3 + ], + [ + 1.20742, + 0, + 19.58, + 0, + 0.605, + 5.875, + 94.6, + 2.4259, + 5, + 403, + 14.7, + 14.43, + 17.4 + ], + [ + 2.3139, + 0, + 19.58, + 0, + 0.605, + 5.88, + 97.3, + 2.3887, + 5, + 403, + 14.7, + 12.03, + 19.1 + ], + [ + 0.13914, + 0, + 4.05, + 0, + 0.51, + 5.572, + 88.5, + 2.5961, + 5, + 296, + 16.6, + 14.69, + 23.1 + ], + [ + 0.09178, + 0, + 4.05, + 0, + 0.51, + 6.416, + 84.1, + 2.6463, + 5, + 296, + 16.6, + 9.04, + 23.6 + ], + [ + 0.08447, + 0, + 4.05, + 0, + 0.51, + 5.859, + 68.7, + 2.7019, + 5, + 296, + 16.6, + 9.64, + 22.6 + ], + [ + 0.06664, + 0, + 4.05, + 0, + 0.51, + 6.546, + 33.1, + 3.1323, + 5, + 296, + 16.6, + 5.33, + 29.4 + ], + [ + 0.07022, + 0, + 4.05, + 0, + 0.51, + 6.02, + 47.2, + 3.5549, + 5, + 296, + 16.6, + 10.11, + 23.2 + ], + [ + 0.05425, + 0, + 4.05, + 0, + 0.51, + 6.315, + 73.4, + 3.3175, + 5, + 296, + 16.6, + 6.29, + 24.6 + ], + [ + 0.06642, + 0, + 4.05, + 0, + 0.51, + 6.86, + 74.4, + 2.9153, + 5, + 296, + 16.6, + 6.92, + 29.9 + ], + [ + 0.0578, + 0, + 2.46, + 0, + 0.488, + 6.98, + 58.4, + 2.829, + 3, + 193, + 17.8, + 5.04, + 37.2 + ], + [ + 0.06588, + 0, + 2.46, + 0, + 0.488, + 7.765, + 83.3, + 2.741, + 3, + 193, + 17.8, + 7.56, + 39.8 + ], + [ + 0.06888, + 0, + 2.46, + 0, + 0.488, + 6.144, + 62.2, + 2.5979, + 3, + 193, + 17.8, + 9.45, + 36.2 + ], + [ + 0.09103, + 0, + 2.46, + 0, + 0.488, + 7.155, + 92.2, + 2.7006, + 3, + 193, + 17.8, + 4.82, + 37.9 + ], + [ + 0.10008, + 0, + 2.46, + 0, + 0.488, + 6.563, + 95.6, + 2.847, + 3, + 193, + 17.8, + 5.68, + 32.5 + ], + [ + 0.08308, + 0, + 2.46, + 0, + 0.488, + 5.604, + 89.8, + 2.9879, + 3, + 193, + 17.8, + 13.98, + 26.4 + ], + [ + 0.06047, + 0, + 2.46, + 0, + 0.488, + 6.153, + 68.8, + 3.2797, + 3, + 193, + 17.8, + 13.15, + 29.6 + ], + [ + 0.05602, + 0, + 2.46, + 0, + 0.488, + 7.831, + 53.6, + 3.1992, + 3, + 193, + 17.8, + 4.45, + 50 + ], + [ + 0.07875, + 45, + 3.44, + 0, + 0.437, + 6.782, + 41.1, + 3.7886, + 5, + 398, + 15.2, + 6.68, + 32 + ], + [ + 0.12579, + 45, + 3.44, + 0, + 0.437, + 6.556, + 29.1, + 4.5667, + 5, + 398, + 15.2, + 4.56, + 29.8 + ], + [ + 0.0837, + 45, + 3.44, + 0, + 0.437, + 7.185, + 38.9, + 4.5667, + 5, + 398, + 15.2, + 5.39, + 34.9 + ], + [ + 0.09068, + 45, + 3.44, + 0, + 0.437, + 6.951, + 21.5, + 6.4798, + 5, + 398, + 15.2, + 5.1, + 37 + ], + [ + 0.06911, + 45, + 3.44, + 0, + 0.437, + 6.739, + 30.8, + 6.4798, + 5, + 398, + 15.2, + 4.69, + 30.5 + ], + [ + 0.08664, + 45, + 3.44, + 0, + 0.437, + 7.178, + 26.3, + 6.4798, + 5, + 398, + 15.2, + 2.87, + 36.4 + ], + [ + 0.02187, + 60, + 2.93, + 0, + 0.401, + 6.8, + 9.9, + 6.2196, + 1, + 265, + 15.6, + 5.03, + 31.1 + ], + [ + 0.01439, + 60, + 2.93, + 0, + 0.401, + 6.604, + 18.8, + 6.2196, + 1, + 265, + 15.6, + 4.38, + 29.1 + ], + [ + 0.01381, + 80, + 0.46, + 0, + 0.422, + 7.875, + 32, + 5.6484, + 4, + 255, + 14.4, + 2.97, + 50 + ], + [ + 0.04011, + 80, + 1.52, + 0, + 0.404, + 7.287, + 34.1, + 7.309, + 2, + 329, + 12.6, + 4.08, + 33.3 + ], + [ + 0.04666, + 80, + 1.52, + 0, + 0.404, + 7.107, + 36.6, + 7.309, + 2, + 329, + 12.6, + 8.61, + 30.3 + ], + [ + 0.03768, + 80, + 1.52, + 0, + 0.404, + 7.274, + 38.3, + 7.309, + 2, + 329, + 12.6, + 6.62, + 34.6 + ], + [ + 0.0315, + 95, + 1.47, + 0, + 0.403, + 6.975, + 15.3, + 7.6534, + 3, + 402, + 17, + 4.56, + 34.9 + ], + [ + 0.01778, + 95, + 1.47, + 0, + 0.403, + 7.135, + 13.9, + 7.6534, + 3, + 402, + 17, + 4.45, + 32.9 + ], + [ + 0.03445, + 82.5, + 2.03, + 0, + 0.415, + 6.162, + 38.4, + 6.27, + 2, + 348, + 14.7, + 7.43, + 24.1 + ], + [ + 0.02177, + 82.5, + 2.03, + 0, + 0.415, + 7.61, + 15.7, + 6.27, + 2, + 348, + 14.7, + 3.11, + 42.3 + ], + [ + 0.0351, + 95, + 2.68, + 0, + 0.4161, + 7.853, + 33.2, + 5.118, + 4, + 224, + 14.7, + 3.81, + 48.5 + ], + [ + 0.02009, + 95, + 2.68, + 0, + 0.4161, + 8.034, + 31.9, + 5.118, + 4, + 224, + 14.7, + 2.88, + 50 + ], + [ + 0.13642, + 0, + 10.59, + 0, + 0.489, + 5.891, + 22.3, + 3.9454, + 4, + 277, + 18.6, + 10.87, + 22.6 + ], + [ + 0.22969, + 0, + 10.59, + 0, + 0.489, + 6.326, + 52.5, + 4.3549, + 4, + 277, + 18.6, + 10.97, + 24.4 + ], + [ + 0.25199, + 0, + 10.59, + 0, + 0.489, + 5.783, + 72.7, + 4.3549, + 4, + 277, + 18.6, + 18.06, + 22.5 + ], + [ + 0.13587, + 0, + 10.59, + 1, + 0.489, + 6.064, + 59.1, + 4.2392, + 4, + 277, + 18.6, + 14.66, + 24.4 + ], + [ + 0.43571, + 0, + 10.59, + 1, + 0.489, + 5.344, + 100, + 3.875, + 4, + 277, + 18.6, + 23.09, + 20 + ], + [ + 0.17446, + 0, + 10.59, + 1, + 0.489, + 5.96, + 92.1, + 3.8771, + 4, + 277, + 18.6, + 17.27, + 21.7 + ], + [ + 0.37578, + 0, + 10.59, + 1, + 0.489, + 5.404, + 88.6, + 3.665, + 4, + 277, + 18.6, + 23.98, + 19.3 + ], + [ + 0.21719, + 0, + 10.59, + 1, + 0.489, + 5.807, + 53.8, + 3.6526, + 4, + 277, + 18.6, + 16.03, + 22.4 + ], + [ + 0.14052, + 0, + 10.59, + 0, + 0.489, + 6.375, + 32.3, + 3.9454, + 4, + 277, + 18.6, + 9.38, + 28.1 + ], + [ + 0.28955, + 0, + 10.59, + 0, + 0.489, + 5.412, + 9.8, + 3.5875, + 4, + 277, + 18.6, + 29.55, + 23.7 + ], + [ + 0.19802, + 0, + 10.59, + 0, + 0.489, + 6.182, + 42.4, + 3.9454, + 4, + 277, + 18.6, + 9.47, + 25 + ], + [ + 0.0456, + 0, + 13.89, + 1, + 0.55, + 5.888, + 56, + 3.1121, + 5, + 276, + 16.4, + 13.51, + 23.3 + ], + [ + 0.07013, + 0, + 13.89, + 0, + 0.55, + 6.642, + 85.1, + 3.4211, + 5, + 276, + 16.4, + 9.69, + 28.7 + ], + [ + 0.11069, + 0, + 13.89, + 1, + 0.55, + 5.951, + 93.8, + 2.8893, + 5, + 276, + 16.4, + 17.92, + 21.5 + ], + [ + 0.11425, + 0, + 13.89, + 1, + 0.55, + 6.373, + 92.4, + 3.3633, + 5, + 276, + 16.4, + 10.5, + 23 + ], + [ + 0.35809, + 0, + 6.2, + 1, + 0.507, + 6.951, + 88.5, + 2.8617, + 8, + 307, + 17.4, + 9.71, + 26.7 + ], + [ + 0.40771, + 0, + 6.2, + 1, + 0.507, + 6.164, + 91.3, + 3.048, + 8, + 307, + 17.4, + 21.46, + 21.7 + ], + [ + 0.62356, + 0, + 6.2, + 1, + 0.507, + 6.879, + 77.7, + 3.2721, + 8, + 307, + 17.4, + 9.93, + 27.5 + ], + [ + 0.6147, + 0, + 6.2, + 0, + 0.507, + 6.618, + 80.8, + 3.2721, + 8, + 307, + 17.4, + 7.6, + 30.1 + ], + [ + 0.31533, + 0, + 6.2, + 0, + 0.504, + 8.266, + 78.3, + 2.8944, + 8, + 307, + 17.4, + 4.14, + 44.8 + ], + [ + 0.52693, + 0, + 6.2, + 0, + 0.504, + 8.725, + 83, + 2.8944, + 8, + 307, + 17.4, + 4.63, + 50 + ], + [ + 0.38214, + 0, + 6.2, + 0, + 0.504, + 8.04, + 86.5, + 3.2157, + 8, + 307, + 17.4, + 3.13, + 37.6 + ], + [ + 0.41238, + 0, + 6.2, + 0, + 0.504, + 7.163, + 79.9, + 3.2157, + 8, + 307, + 17.4, + 6.36, + 31.6 + ], + [ + 0.29819, + 0, + 6.2, + 0, + 0.504, + 7.686, + 17, + 3.3751, + 8, + 307, + 17.4, + 3.92, + 46.7 + ], + [ + 0.44178, + 0, + 6.2, + 0, + 0.504, + 6.552, + 21.4, + 3.3751, + 8, + 307, + 17.4, + 3.76, + 31.5 + ], + [ + 0.537, + 0, + 6.2, + 0, + 0.504, + 5.981, + 68.1, + 3.6715, + 8, + 307, + 17.4, + 11.65, + 24.3 + ], + [ + 0.46296, + 0, + 6.2, + 0, + 0.504, + 7.412, + 76.9, + 3.6715, + 8, + 307, + 17.4, + 5.25, + 31.7 + ], + [ + 0.57529, + 0, + 6.2, + 0, + 0.507, + 8.337, + 73.3, + 3.8384, + 8, + 307, + 17.4, + 2.47, + 41.7 + ], + [ + 0.33147, + 0, + 6.2, + 0, + 0.507, + 8.247, + 70.4, + 3.6519, + 8, + 307, + 17.4, + 3.95, + 48.3 + ], + [ + 0.44791, + 0, + 6.2, + 1, + 0.507, + 6.726, + 66.5, + 3.6519, + 8, + 307, + 17.4, + 8.05, + 29 + ], + [ + 0.33045, + 0, + 6.2, + 0, + 0.507, + 6.086, + 61.5, + 3.6519, + 8, + 307, + 17.4, + 10.88, + 24 + ], + [ + 0.52058, + 0, + 6.2, + 1, + 0.507, + 6.631, + 76.5, + 4.148, + 8, + 307, + 17.4, + 9.54, + 25.1 + ], + [ + 0.51183, + 0, + 6.2, + 0, + 0.507, + 7.358, + 71.6, + 4.148, + 8, + 307, + 17.4, + 4.73, + 31.5 + ], + [ + 0.08244, + 30, + 4.93, + 0, + 0.428, + 6.481, + 18.5, + 6.1899, + 6, + 300, + 16.6, + 6.36, + 23.7 + ], + [ + 0.09252, + 30, + 4.93, + 0, + 0.428, + 6.606, + 42.2, + 6.1899, + 6, + 300, + 16.6, + 7.37, + 23.3 + ], + [ + 0.11329, + 30, + 4.93, + 0, + 0.428, + 6.897, + 54.3, + 6.3361, + 6, + 300, + 16.6, + 11.38, + 22 + ], + [ + 0.10612, + 30, + 4.93, + 0, + 0.428, + 6.095, + 65.1, + 6.3361, + 6, + 300, + 16.6, + 12.4, + 20.1 + ], + [ + 0.1029, + 30, + 4.93, + 0, + 0.428, + 6.358, + 52.9, + 7.0355, + 6, + 300, + 16.6, + 11.22, + 22.2 + ], + [ + 0.12757, + 30, + 4.93, + 0, + 0.428, + 6.393, + 7.8, + 7.0355, + 6, + 300, + 16.6, + 5.19, + 23.7 + ], + [ + 0.20608, + 22, + 5.86, + 0, + 0.431, + 5.593, + 76.5, + 7.9549, + 7, + 330, + 19.1, + 12.5, + 17.6 + ], + [ + 0.19133, + 22, + 5.86, + 0, + 0.431, + 5.605, + 70.2, + 7.9549, + 7, + 330, + 19.1, + 18.46, + 18.5 + ], + [ + 0.33983, + 22, + 5.86, + 0, + 0.431, + 6.108, + 34.9, + 8.0555, + 7, + 330, + 19.1, + 9.16, + 24.3 + ], + [ + 0.19657, + 22, + 5.86, + 0, + 0.431, + 6.226, + 79.2, + 8.0555, + 7, + 330, + 19.1, + 10.15, + 20.5 + ], + [ + 0.16439, + 22, + 5.86, + 0, + 0.431, + 6.433, + 49.1, + 7.8265, + 7, + 330, + 19.1, + 9.52, + 24.5 + ], + [ + 0.19073, + 22, + 5.86, + 0, + 0.431, + 6.718, + 17.5, + 7.8265, + 7, + 330, + 19.1, + 6.56, + 26.2 + ], + [ + 0.1403, + 22, + 5.86, + 0, + 0.431, + 6.487, + 13, + 7.3967, + 7, + 330, + 19.1, + 5.9, + 24.4 + ], + [ + 0.21409, + 22, + 5.86, + 0, + 0.431, + 6.438, + 8.9, + 7.3967, + 7, + 330, + 19.1, + 3.59, + 24.8 + ], + [ + 0.08221, + 22, + 5.86, + 0, + 0.431, + 6.957, + 6.8, + 8.9067, + 7, + 330, + 19.1, + 3.53, + 29.6 + ], + [ + 0.36894, + 22, + 5.86, + 0, + 0.431, + 8.259, + 8.4, + 8.9067, + 7, + 330, + 19.1, + 3.54, + 42.8 + ], + [ + 0.04819, + 80, + 3.64, + 0, + 0.392, + 6.108, + 32, + 9.2203, + 1, + 315, + 16.4, + 6.57, + 21.9 + ], + [ + 0.03548, + 80, + 3.64, + 0, + 0.392, + 5.876, + 19.1, + 9.2203, + 1, + 315, + 16.4, + 9.25, + 20.9 + ], + [ + 0.01538, + 90, + 3.75, + 0, + 0.394, + 7.454, + 34.2, + 6.3361, + 3, + 244, + 15.9, + 3.11, + 44 + ], + [ + 0.61154, + 20, + 3.97, + 0, + 0.647, + 8.704, + 86.9, + 1.801, + 5, + 264, + 13, + 5.12, + 50 + ], + [ + 0.66351, + 20, + 3.97, + 0, + 0.647, + 7.333, + 100, + 1.8946, + 5, + 264, + 13, + 7.79, + 36 + ], + [ + 0.65665, + 20, + 3.97, + 0, + 0.647, + 6.842, + 100, + 2.0107, + 5, + 264, + 13, + 6.9, + 30.1 + ], + [ + 0.54011, + 20, + 3.97, + 0, + 0.647, + 7.203, + 81.8, + 2.1121, + 5, + 264, + 13, + 9.59, + 33.8 + ], + [ + 0.53412, + 20, + 3.97, + 0, + 0.647, + 7.52, + 89.4, + 2.1398, + 5, + 264, + 13, + 7.26, + 43.1 + ], + [ + 0.52014, + 20, + 3.97, + 0, + 0.647, + 8.398, + 91.5, + 2.2885, + 5, + 264, + 13, + 5.91, + 48.8 + ], + [ + 0.82526, + 20, + 3.97, + 0, + 0.647, + 7.327, + 94.5, + 2.0788, + 5, + 264, + 13, + 11.25, + 31 + ], + [ + 0.55007, + 20, + 3.97, + 0, + 0.647, + 7.206, + 91.6, + 1.9301, + 5, + 264, + 13, + 8.1, + 36.5 + ], + [ + 0.76162, + 20, + 3.97, + 0, + 0.647, + 5.56, + 62.8, + 1.9865, + 5, + 264, + 13, + 10.45, + 22.8 + ], + [ + 0.7857, + 20, + 3.97, + 0, + 0.647, + 7.014, + 84.6, + 2.1329, + 5, + 264, + 13, + 14.79, + 30.7 + ], + [ + 0.57834, + 20, + 3.97, + 0, + 0.575, + 8.297, + 67, + 2.4216, + 5, + 264, + 13, + 7.44, + 50 + ], + [ + 0.5405, + 20, + 3.97, + 0, + 0.575, + 7.47, + 52.6, + 2.872, + 5, + 264, + 13, + 3.16, + 43.5 + ], + [ + 0.09065, + 20, + 6.96, + 1, + 0.464, + 5.92, + 61.5, + 3.9175, + 3, + 223, + 18.6, + 13.65, + 20.7 + ], + [ + 0.29916, + 20, + 6.96, + 0, + 0.464, + 5.856, + 42.1, + 4.429, + 3, + 223, + 18.6, + 13, + 21.1 + ], + [ + 0.16211, + 20, + 6.96, + 0, + 0.464, + 6.24, + 16.3, + 4.429, + 3, + 223, + 18.6, + 6.59, + 25.2 + ], + [ + 0.1146, + 20, + 6.96, + 0, + 0.464, + 6.538, + 58.7, + 3.9175, + 3, + 223, + 18.6, + 7.73, + 24.4 + ], + [ + 0.22188, + 20, + 6.96, + 1, + 0.464, + 7.691, + 51.8, + 4.3665, + 3, + 223, + 18.6, + 6.58, + 35.2 + ], + [ + 0.05644, + 40, + 6.41, + 1, + 0.447, + 6.758, + 32.9, + 4.0776, + 4, + 254, + 17.6, + 3.53, + 32.4 + ], + [ + 0.09604, + 40, + 6.41, + 0, + 0.447, + 6.854, + 42.8, + 4.2673, + 4, + 254, + 17.6, + 2.98, + 32 + ], + [ + 0.10469, + 40, + 6.41, + 1, + 0.447, + 7.267, + 49, + 4.7872, + 4, + 254, + 17.6, + 6.05, + 33.2 + ], + [ + 0.06127, + 40, + 6.41, + 1, + 0.447, + 6.826, + 27.6, + 4.8628, + 4, + 254, + 17.6, + 4.16, + 33.1 + ], + [ + 0.07978, + 40, + 6.41, + 0, + 0.447, + 6.482, + 32.1, + 4.1403, + 4, + 254, + 17.6, + 7.19, + 29.1 + ], + [ + 0.21038, + 20, + 3.33, + 0, + 0.4429, + 6.812, + 32.2, + 4.1007, + 5, + 216, + 14.9, + 4.85, + 35.1 + ], + [ + 0.03578, + 20, + 3.33, + 0, + 0.4429, + 7.82, + 64.5, + 4.6947, + 5, + 216, + 14.9, + 3.76, + 45.4 + ], + [ + 0.03705, + 20, + 3.33, + 0, + 0.4429, + 6.968, + 37.2, + 5.2447, + 5, + 216, + 14.9, + 4.59, + 35.4 + ], + [ + 0.06129, + 20, + 3.33, + 1, + 0.4429, + 7.645, + 49.7, + 5.2119, + 5, + 216, + 14.9, + 3.01, + 46 + ], + [ + 0.01501, + 90, + 1.21, + 1, + 0.401, + 7.923, + 24.8, + 5.885, + 1, + 198, + 13.6, + 3.16, + 50 + ], + [ + 0.00906, + 90, + 2.97, + 0, + 0.4, + 7.088, + 20.8, + 7.3073, + 1, + 285, + 15.3, + 7.85, + 32.2 + ], + [ + 0.01096, + 55, + 2.25, + 0, + 0.389, + 6.453, + 31.9, + 7.3073, + 1, + 300, + 15.3, + 8.23, + 22 + ], + [ + 0.01965, + 80, + 1.76, + 0, + 0.385, + 6.23, + 31.5, + 9.0892, + 1, + 241, + 18.2, + 12.93, + 20.1 + ], + [ + 0.03871, + 52.5, + 5.32, + 0, + 0.405, + 6.209, + 31.3, + 7.3172, + 6, + 293, + 16.6, + 7.14, + 23.2 + ], + [ + 0.0459, + 52.5, + 5.32, + 0, + 0.405, + 6.315, + 45.6, + 7.3172, + 6, + 293, + 16.6, + 7.6, + 22.3 + ], + [ + 0.04297, + 52.5, + 5.32, + 0, + 0.405, + 6.565, + 22.9, + 7.3172, + 6, + 293, + 16.6, + 9.51, + 24.8 + ], + [ + 0.03502, + 80, + 4.95, + 0, + 0.411, + 6.861, + 27.9, + 5.1167, + 4, + 245, + 19.2, + 3.33, + 28.5 + ], + [ + 0.07886, + 80, + 4.95, + 0, + 0.411, + 7.148, + 27.7, + 5.1167, + 4, + 245, + 19.2, + 3.56, + 37.3 + ], + [ + 0.03615, + 80, + 4.95, + 0, + 0.411, + 6.63, + 23.4, + 5.1167, + 4, + 245, + 19.2, + 4.7, + 27.9 + ], + [ + 0.08265, + 0, + 13.92, + 0, + 0.437, + 6.127, + 18.4, + 5.5027, + 4, + 289, + 16, + 8.58, + 23.9 + ], + [ + 0.08199, + 0, + 13.92, + 0, + 0.437, + 6.009, + 42.3, + 5.5027, + 4, + 289, + 16, + 10.4, + 21.7 + ], + [ + 0.12932, + 0, + 13.92, + 0, + 0.437, + 6.678, + 31.1, + 5.9604, + 4, + 289, + 16, + 6.27, + 28.6 + ], + [ + 0.05372, + 0, + 13.92, + 0, + 0.437, + 6.549, + 51, + 5.9604, + 4, + 289, + 16, + 7.39, + 27.1 + ], + [ + 0.14103, + 0, + 13.92, + 0, + 0.437, + 5.79, + 58, + 6.32, + 4, + 289, + 16, + 15.84, + 20.3 + ], + [ + 0.06466, + 70, + 2.24, + 0, + 0.4, + 6.345, + 20.1, + 7.8278, + 5, + 358, + 14.8, + 4.97, + 22.5 + ], + [ + 0.05561, + 70, + 2.24, + 0, + 0.4, + 7.041, + 10, + 7.8278, + 5, + 358, + 14.8, + 4.74, + 29 + ], + [ + 0.04417, + 70, + 2.24, + 0, + 0.4, + 6.871, + 47.4, + 7.8278, + 5, + 358, + 14.8, + 6.07, + 24.8 + ], + [ + 0.03537, + 34, + 6.09, + 0, + 0.433, + 6.59, + 40.4, + 5.4917, + 7, + 329, + 16.1, + 9.5, + 22 + ], + [ + 0.09266, + 34, + 6.09, + 0, + 0.433, + 6.495, + 18.4, + 5.4917, + 7, + 329, + 16.1, + 8.67, + 26.4 + ], + [ + 0.1, + 34, + 6.09, + 0, + 0.433, + 6.982, + 17.7, + 5.4917, + 7, + 329, + 16.1, + 4.86, + 33.1 + ], + [ + 0.05515, + 33, + 2.18, + 0, + 0.472, + 7.236, + 41.1, + 4.022, + 7, + 222, + 18.4, + 6.93, + 36.1 + ], + [ + 0.05479, + 33, + 2.18, + 0, + 0.472, + 6.616, + 58.1, + 3.37, + 7, + 222, + 18.4, + 8.93, + 28.4 + ], + [ + 0.07503, + 33, + 2.18, + 0, + 0.472, + 7.42, + 71.9, + 3.0992, + 7, + 222, + 18.4, + 6.47, + 33.4 + ], + [ + 0.04932, + 33, + 2.18, + 0, + 0.472, + 6.849, + 70.3, + 3.1827, + 7, + 222, + 18.4, + 7.53, + 28.2 + ], + [ + 0.49298, + 0, + 9.9, + 0, + 0.544, + 6.635, + 82.5, + 3.3175, + 4, + 304, + 18.4, + 4.54, + 22.8 + ], + [ + 0.3494, + 0, + 9.9, + 0, + 0.544, + 5.972, + 76.7, + 3.1025, + 4, + 304, + 18.4, + 9.97, + 20.3 + ], + [ + 2.63548, + 0, + 9.9, + 0, + 0.544, + 4.973, + 37.8, + 2.5194, + 4, + 304, + 18.4, + 12.64, + 16.1 + ], + [ + 0.79041, + 0, + 9.9, + 0, + 0.544, + 6.122, + 52.8, + 2.6403, + 4, + 304, + 18.4, + 5.98, + 22.1 + ], + [ + 0.26169, + 0, + 9.9, + 0, + 0.544, + 6.023, + 90.4, + 2.834, + 4, + 304, + 18.4, + 11.72, + 19.4 + ], + [ + 0.26938, + 0, + 9.9, + 0, + 0.544, + 6.266, + 82.8, + 3.2628, + 4, + 304, + 18.4, + 7.9, + 21.6 + ], + [ + 0.3692, + 0, + 9.9, + 0, + 0.544, + 6.567, + 87.3, + 3.6023, + 4, + 304, + 18.4, + 9.28, + 23.8 + ], + [ + 0.25356, + 0, + 9.9, + 0, + 0.544, + 5.705, + 77.7, + 3.945, + 4, + 304, + 18.4, + 11.5, + 16.2 + ], + [ + 0.31827, + 0, + 9.9, + 0, + 0.544, + 5.914, + 83.2, + 3.9986, + 4, + 304, + 18.4, + 18.33, + 17.8 + ], + [ + 0.24522, + 0, + 9.9, + 0, + 0.544, + 5.782, + 71.7, + 4.0317, + 4, + 304, + 18.4, + 15.94, + 19.8 + ], + [ + 0.40202, + 0, + 9.9, + 0, + 0.544, + 6.382, + 67.2, + 3.5325, + 4, + 304, + 18.4, + 10.36, + 23.1 + ], + [ + 0.47547, + 0, + 9.9, + 0, + 0.544, + 6.113, + 58.8, + 4.0019, + 4, + 304, + 18.4, + 12.73, + 21 + ], + [ + 0.1676, + 0, + 7.38, + 0, + 0.493, + 6.426, + 52.3, + 4.5404, + 5, + 287, + 19.6, + 7.2, + 23.8 + ], + [ + 0.18159, + 0, + 7.38, + 0, + 0.493, + 6.376, + 54.3, + 4.5404, + 5, + 287, + 19.6, + 6.87, + 23.1 + ], + [ + 0.35114, + 0, + 7.38, + 0, + 0.493, + 6.041, + 49.9, + 4.7211, + 5, + 287, + 19.6, + 7.7, + 20.4 + ], + [ + 0.28392, + 0, + 7.38, + 0, + 0.493, + 5.708, + 74.3, + 4.7211, + 5, + 287, + 19.6, + 11.74, + 18.5 + ], + [ + 0.34109, + 0, + 7.38, + 0, + 0.493, + 6.415, + 40.1, + 4.7211, + 5, + 287, + 19.6, + 6.12, + 25 + ], + [ + 0.19186, + 0, + 7.38, + 0, + 0.493, + 6.431, + 14.7, + 5.4159, + 5, + 287, + 19.6, + 5.08, + 24.6 + ], + [ + 0.30347, + 0, + 7.38, + 0, + 0.493, + 6.312, + 28.9, + 5.4159, + 5, + 287, + 19.6, + 6.15, + 23 + ], + [ + 0.24103, + 0, + 7.38, + 0, + 0.493, + 6.083, + 43.7, + 5.4159, + 5, + 287, + 19.6, + 12.79, + 22.2 + ], + [ + 0.06617, + 0, + 3.24, + 0, + 0.46, + 5.868, + 25.8, + 5.2146, + 4, + 430, + 16.9, + 9.97, + 19.3 + ], + [ + 0.06724, + 0, + 3.24, + 0, + 0.46, + 6.333, + 17.2, + 5.2146, + 4, + 430, + 16.9, + 7.34, + 22.6 + ], + [ + 0.04544, + 0, + 3.24, + 0, + 0.46, + 6.144, + 32.2, + 5.8736, + 4, + 430, + 16.9, + 9.09, + 19.8 + ], + [ + 0.05023, + 35, + 6.06, + 0, + 0.4379, + 5.706, + 28.4, + 6.6407, + 1, + 304, + 16.9, + 12.43, + 17.1 + ], + [ + 0.03466, + 35, + 6.06, + 0, + 0.4379, + 6.031, + 23.3, + 6.6407, + 1, + 304, + 16.9, + 7.83, + 19.4 + ], + [ + 0.05083, + 0, + 5.19, + 0, + 0.515, + 6.316, + 38.1, + 6.4584, + 5, + 224, + 20.2, + 5.68, + 22.2 + ], + [ + 0.03738, + 0, + 5.19, + 0, + 0.515, + 6.31, + 38.5, + 6.4584, + 5, + 224, + 20.2, + 6.75, + 20.7 + ], + [ + 0.03961, + 0, + 5.19, + 0, + 0.515, + 6.037, + 34.5, + 5.9853, + 5, + 224, + 20.2, + 8.01, + 21.1 + ], + [ + 0.03427, + 0, + 5.19, + 0, + 0.515, + 5.869, + 46.3, + 5.2311, + 5, + 224, + 20.2, + 9.8, + 19.5 + ], + [ + 0.03041, + 0, + 5.19, + 0, + 0.515, + 5.895, + 59.6, + 5.615, + 5, + 224, + 20.2, + 10.56, + 18.5 + ], + [ + 0.03306, + 0, + 5.19, + 0, + 0.515, + 6.059, + 37.3, + 4.8122, + 5, + 224, + 20.2, + 8.51, + 20.6 + ], + [ + 0.05497, + 0, + 5.19, + 0, + 0.515, + 5.985, + 45.4, + 4.8122, + 5, + 224, + 20.2, + 9.74, + 19 + ], + [ + 0.06151, + 0, + 5.19, + 0, + 0.515, + 5.968, + 58.5, + 4.8122, + 5, + 224, + 20.2, + 9.29, + 18.7 + ], + [ + 0.01301, + 35, + 1.52, + 0, + 0.442, + 7.241, + 49.3, + 7.0379, + 1, + 284, + 15.5, + 5.49, + 32.7 + ], + [ + 0.02498, + 0, + 1.89, + 0, + 0.518, + 6.54, + 59.7, + 6.2669, + 1, + 422, + 15.9, + 8.65, + 16.5 + ], + [ + 0.02543, + 55, + 3.78, + 0, + 0.484, + 6.696, + 56.4, + 5.7321, + 5, + 370, + 17.6, + 7.18, + 23.9 + ], + [ + 0.03049, + 55, + 3.78, + 0, + 0.484, + 6.874, + 28.1, + 6.4654, + 5, + 370, + 17.6, + 4.61, + 31.2 + ], + [ + 0.03113, + 0, + 4.39, + 0, + 0.442, + 6.014, + 48.5, + 8.0136, + 3, + 352, + 18.8, + 10.53, + 17.5 + ], + [ + 0.06162, + 0, + 4.39, + 0, + 0.442, + 5.898, + 52.3, + 8.0136, + 3, + 352, + 18.8, + 12.67, + 17.2 + ], + [ + 0.0187, + 85, + 4.15, + 0, + 0.429, + 6.516, + 27.7, + 8.5353, + 4, + 351, + 17.9, + 6.36, + 23.1 + ], + [ + 0.01501, + 80, + 2.01, + 0, + 0.435, + 6.635, + 29.7, + 8.344, + 4, + 280, + 17, + 5.99, + 24.5 + ], + [ + 0.02899, + 40, + 1.25, + 0, + 0.429, + 6.939, + 34.5, + 8.7921, + 1, + 335, + 19.7, + 5.89, + 26.6 + ], + [ + 0.06211, + 40, + 1.25, + 0, + 0.429, + 6.49, + 44.4, + 8.7921, + 1, + 335, + 19.7, + 5.98, + 22.9 + ], + [ + 0.0795, + 60, + 1.69, + 0, + 0.411, + 6.579, + 35.9, + 10.7103, + 4, + 411, + 18.3, + 5.49, + 24.1 + ], + [ + 0.07244, + 60, + 1.69, + 0, + 0.411, + 5.884, + 18.5, + 10.7103, + 4, + 411, + 18.3, + 7.79, + 18.6 + ], + [ + 0.01709, + 90, + 2.02, + 0, + 0.41, + 6.728, + 36.1, + 12.1265, + 5, + 187, + 17, + 4.5, + 30.1 + ], + [ + 0.04301, + 80, + 1.91, + 0, + 0.413, + 5.663, + 21.9, + 10.5857, + 4, + 334, + 22, + 8.05, + 18.2 + ], + [ + 0.10659, + 80, + 1.91, + 0, + 0.413, + 5.936, + 19.5, + 10.5857, + 4, + 334, + 22, + 5.57, + 20.6 + ], + [ + 8.98296, + 0, + 18.1, + 1, + 0.77, + 6.212, + 97.4, + 2.1222, + 24, + 666, + 20.2, + 17.6, + 17.8 + ], + [ + 3.8497, + 0, + 18.1, + 1, + 0.77, + 6.395, + 91, + 2.5052, + 24, + 666, + 20.2, + 13.27, + 21.7 + ], + [ + 5.20177, + 0, + 18.1, + 1, + 0.77, + 6.127, + 83.4, + 2.7227, + 24, + 666, + 20.2, + 11.48, + 22.7 + ], + [ + 4.26131, + 0, + 18.1, + 0, + 0.77, + 6.112, + 81.3, + 2.5091, + 24, + 666, + 20.2, + 12.67, + 22.6 + ], + [ + 4.54192, + 0, + 18.1, + 0, + 0.77, + 6.398, + 88, + 2.5182, + 24, + 666, + 20.2, + 7.79, + 25 + ], + [ + 3.83684, + 0, + 18.1, + 0, + 0.77, + 6.251, + 91.1, + 2.2955, + 24, + 666, + 20.2, + 14.19, + 19.9 + ], + [ + 3.67822, + 0, + 18.1, + 0, + 0.77, + 5.362, + 96.2, + 2.1036, + 24, + 666, + 20.2, + 10.19, + 20.8 + ], + [ + 4.22239, + 0, + 18.1, + 1, + 0.77, + 5.803, + 89, + 1.9047, + 24, + 666, + 20.2, + 14.64, + 16.8 + ], + [ + 3.47428, + 0, + 18.1, + 1, + 0.718, + 8.78, + 82.9, + 1.9047, + 24, + 666, + 20.2, + 5.29, + 21.9 + ], + [ + 4.55587, + 0, + 18.1, + 0, + 0.718, + 3.561, + 87.9, + 1.6132, + 24, + 666, + 20.2, + 7.12, + 27.5 + ], + [ + 3.69695, + 0, + 18.1, + 0, + 0.718, + 4.963, + 91.4, + 1.7523, + 24, + 666, + 20.2, + 14, + 21.9 + ], + [ + 13.5222, + 0, + 18.1, + 0, + 0.631, + 3.863, + 100, + 1.5106, + 24, + 666, + 20.2, + 13.33, + 23.1 + ], + [ + 4.89822, + 0, + 18.1, + 0, + 0.631, + 4.97, + 100, + 1.3325, + 24, + 666, + 20.2, + 3.26, + 50 + ], + [ + 5.66998, + 0, + 18.1, + 1, + 0.631, + 6.683, + 96.8, + 1.3567, + 24, + 666, + 20.2, + 3.73, + 50 + ], + [ + 6.53876, + 0, + 18.1, + 1, + 0.631, + 7.016, + 97.5, + 1.2024, + 24, + 666, + 20.2, + 2.96, + 50 + ], + [ + 9.2323, + 0, + 18.1, + 0, + 0.631, + 6.216, + 100, + 1.1691, + 24, + 666, + 20.2, + 9.53, + 50 + ], + [ + 8.26725, + 0, + 18.1, + 1, + 0.668, + 5.875, + 89.6, + 1.1296, + 24, + 666, + 20.2, + 8.88, + 50 + ], + [ + 11.1081, + 0, + 18.1, + 0, + 0.668, + 4.906, + 100, + 1.1742, + 24, + 666, + 20.2, + 34.77, + 13.8 + ], + [ + 18.4982, + 0, + 18.1, + 0, + 0.668, + 4.138, + 100, + 1.137, + 24, + 666, + 20.2, + 37.97, + 13.8 + ], + [ + 19.6091, + 0, + 18.1, + 0, + 0.671, + 7.313, + 97.9, + 1.3163, + 24, + 666, + 20.2, + 13.44, + 15 + ], + [ + 15.288, + 0, + 18.1, + 0, + 0.671, + 6.649, + 93.3, + 1.3449, + 24, + 666, + 20.2, + 23.24, + 13.9 + ], + [ + 9.82349, + 0, + 18.1, + 0, + 0.671, + 6.794, + 98.8, + 1.358, + 24, + 666, + 20.2, + 21.24, + 13.3 + ], + [ + 23.6482, + 0, + 18.1, + 0, + 0.671, + 6.38, + 96.2, + 1.3861, + 24, + 666, + 20.2, + 23.69, + 13.1 + ], + [ + 17.8667, + 0, + 18.1, + 0, + 0.671, + 6.223, + 100, + 1.3861, + 24, + 666, + 20.2, + 21.78, + 10.2 + ], + [ + 88.9762, + 0, + 18.1, + 0, + 0.671, + 6.968, + 91.9, + 1.4165, + 24, + 666, + 20.2, + 17.21, + 10.4 + ], + [ + 15.8744, + 0, + 18.1, + 0, + 0.671, + 6.545, + 99.1, + 1.5192, + 24, + 666, + 20.2, + 21.08, + 10.9 + ], + [ + 9.18702, + 0, + 18.1, + 0, + 0.7, + 5.536, + 100, + 1.5804, + 24, + 666, + 20.2, + 23.6, + 11.3 + ], + [ + 7.99248, + 0, + 18.1, + 0, + 0.7, + 5.52, + 100, + 1.5331, + 24, + 666, + 20.2, + 24.56, + 12.3 + ], + [ + 20.0849, + 0, + 18.1, + 0, + 0.7, + 4.368, + 91.2, + 1.4395, + 24, + 666, + 20.2, + 30.63, + 8.8 + ], + [ + 16.8118, + 0, + 18.1, + 0, + 0.7, + 5.277, + 98.1, + 1.4261, + 24, + 666, + 20.2, + 30.81, + 7.2 + ], + [ + 24.3938, + 0, + 18.1, + 0, + 0.7, + 4.652, + 100, + 1.4672, + 24, + 666, + 20.2, + 28.28, + 10.5 + ], + [ + 22.5971, + 0, + 18.1, + 0, + 0.7, + 5, + 89.5, + 1.5184, + 24, + 666, + 20.2, + 31.99, + 7.4 + ], + [ + 14.3337, + 0, + 18.1, + 0, + 0.7, + 4.88, + 100, + 1.5895, + 24, + 666, + 20.2, + 30.62, + 10.2 + ], + [ + 8.15174, + 0, + 18.1, + 0, + 0.7, + 5.39, + 98.9, + 1.7281, + 24, + 666, + 20.2, + 20.85, + 11.5 + ], + [ + 6.96215, + 0, + 18.1, + 0, + 0.7, + 5.713, + 97, + 1.9265, + 24, + 666, + 20.2, + 17.11, + 15.1 + ], + [ + 5.29305, + 0, + 18.1, + 0, + 0.7, + 6.051, + 82.5, + 2.1678, + 24, + 666, + 20.2, + 18.76, + 23.2 + ], + [ + 11.5779, + 0, + 18.1, + 0, + 0.7, + 5.036, + 97, + 1.77, + 24, + 666, + 20.2, + 25.68, + 9.7 + ], + [ + 8.64476, + 0, + 18.1, + 0, + 0.693, + 6.193, + 92.6, + 1.7912, + 24, + 666, + 20.2, + 15.17, + 13.8 + ], + [ + 13.3598, + 0, + 18.1, + 0, + 0.693, + 5.887, + 94.7, + 1.7821, + 24, + 666, + 20.2, + 16.35, + 12.7 + ], + [ + 8.71675, + 0, + 18.1, + 0, + 0.693, + 6.471, + 98.8, + 1.7257, + 24, + 666, + 20.2, + 17.12, + 13.1 + ], + [ + 5.87205, + 0, + 18.1, + 0, + 0.693, + 6.405, + 96, + 1.6768, + 24, + 666, + 20.2, + 19.37, + 12.5 + ], + [ + 7.67202, + 0, + 18.1, + 0, + 0.693, + 5.747, + 98.9, + 1.6334, + 24, + 666, + 20.2, + 19.92, + 8.5 + ], + [ + 38.3518, + 0, + 18.1, + 0, + 0.693, + 5.453, + 100, + 1.4896, + 24, + 666, + 20.2, + 30.59, + 5 + ], + [ + 9.91655, + 0, + 18.1, + 0, + 0.693, + 5.852, + 77.8, + 1.5004, + 24, + 666, + 20.2, + 29.97, + 6.3 + ], + [ + 25.0461, + 0, + 18.1, + 0, + 0.693, + 5.987, + 100, + 1.5888, + 24, + 666, + 20.2, + 26.77, + 5.6 + ], + [ + 14.2362, + 0, + 18.1, + 0, + 0.693, + 6.343, + 100, + 1.5741, + 24, + 666, + 20.2, + 20.32, + 7.2 + ], + [ + 9.59571, + 0, + 18.1, + 0, + 0.693, + 6.404, + 100, + 1.639, + 24, + 666, + 20.2, + 20.31, + 12.1 + ], + [ + 24.8017, + 0, + 18.1, + 0, + 0.693, + 5.349, + 96, + 1.7028, + 24, + 666, + 20.2, + 19.77, + 8.3 + ], + [ + 41.5292, + 0, + 18.1, + 0, + 0.693, + 5.531, + 85.4, + 1.6074, + 24, + 666, + 20.2, + 27.38, + 8.5 + ], + [ + 67.9208, + 0, + 18.1, + 0, + 0.693, + 5.683, + 100, + 1.4254, + 24, + 666, + 20.2, + 22.98, + 5 + ], + [ + 20.7162, + 0, + 18.1, + 0, + 0.659, + 4.138, + 100, + 1.1781, + 24, + 666, + 20.2, + 23.34, + 11.9 + ], + [ + 11.9511, + 0, + 18.1, + 0, + 0.659, + 5.608, + 100, + 1.2852, + 24, + 666, + 20.2, + 12.13, + 27.9 + ], + [ + 7.40389, + 0, + 18.1, + 0, + 0.597, + 5.617, + 97.9, + 1.4547, + 24, + 666, + 20.2, + 26.4, + 17.2 + ], + [ + 14.4383, + 0, + 18.1, + 0, + 0.597, + 6.852, + 100, + 1.4655, + 24, + 666, + 20.2, + 19.78, + 27.5 + ], + [ + 51.1358, + 0, + 18.1, + 0, + 0.597, + 5.757, + 100, + 1.413, + 24, + 666, + 20.2, + 10.11, + 15 + ], + [ + 14.0507, + 0, + 18.1, + 0, + 0.597, + 6.657, + 100, + 1.5275, + 24, + 666, + 20.2, + 21.22, + 17.2 + ], + [ + 18.811, + 0, + 18.1, + 0, + 0.597, + 4.628, + 100, + 1.5539, + 24, + 666, + 20.2, + 34.37, + 17.9 + ], + [ + 28.6558, + 0, + 18.1, + 0, + 0.597, + 5.155, + 100, + 1.5894, + 24, + 666, + 20.2, + 20.08, + 16.3 + ], + [ + 45.7461, + 0, + 18.1, + 0, + 0.693, + 4.519, + 100, + 1.6582, + 24, + 666, + 20.2, + 36.98, + 7 + ], + [ + 18.0846, + 0, + 18.1, + 0, + 0.679, + 6.434, + 100, + 1.8347, + 24, + 666, + 20.2, + 29.05, + 7.2 + ], + [ + 10.8342, + 0, + 18.1, + 0, + 0.679, + 6.782, + 90.8, + 1.8195, + 24, + 666, + 20.2, + 25.79, + 7.5 + ], + [ + 25.9406, + 0, + 18.1, + 0, + 0.679, + 5.304, + 89.1, + 1.6475, + 24, + 666, + 20.2, + 26.64, + 10.4 + ], + [ + 73.5341, + 0, + 18.1, + 0, + 0.679, + 5.957, + 100, + 1.8026, + 24, + 666, + 20.2, + 20.62, + 8.8 + ], + [ + 11.8123, + 0, + 18.1, + 0, + 0.718, + 6.824, + 76.5, + 1.794, + 24, + 666, + 20.2, + 22.74, + 8.4 + ], + [ + 11.0874, + 0, + 18.1, + 0, + 0.718, + 6.411, + 100, + 1.8589, + 24, + 666, + 20.2, + 15.02, + 16.7 + ], + [ + 7.02259, + 0, + 18.1, + 0, + 0.718, + 6.006, + 95.3, + 1.8746, + 24, + 666, + 20.2, + 15.7, + 14.2 + ], + [ + 12.0482, + 0, + 18.1, + 0, + 0.614, + 5.648, + 87.6, + 1.9512, + 24, + 666, + 20.2, + 14.1, + 20.8 + ], + [ + 7.05042, + 0, + 18.1, + 0, + 0.614, + 6.103, + 85.1, + 2.0218, + 24, + 666, + 20.2, + 23.29, + 13.4 + ], + [ + 8.79212, + 0, + 18.1, + 0, + 0.584, + 5.565, + 70.6, + 2.0635, + 24, + 666, + 20.2, + 17.16, + 11.7 + ], + [ + 15.8603, + 0, + 18.1, + 0, + 0.679, + 5.896, + 95.4, + 1.9096, + 24, + 666, + 20.2, + 24.39, + 8.3 + ], + [ + 12.2472, + 0, + 18.1, + 0, + 0.584, + 5.837, + 59.7, + 1.9976, + 24, + 666, + 20.2, + 15.69, + 10.2 + ], + [ + 37.6619, + 0, + 18.1, + 0, + 0.679, + 6.202, + 78.7, + 1.8629, + 24, + 666, + 20.2, + 14.52, + 10.9 + ], + [ + 7.36711, + 0, + 18.1, + 0, + 0.679, + 6.193, + 78.1, + 1.9356, + 24, + 666, + 20.2, + 21.52, + 11 + ], + [ + 9.33889, + 0, + 18.1, + 0, + 0.679, + 6.38, + 95.6, + 1.9682, + 24, + 666, + 20.2, + 24.08, + 9.5 + ], + [ + 8.49213, + 0, + 18.1, + 0, + 0.584, + 6.348, + 86.1, + 2.0527, + 24, + 666, + 20.2, + 17.64, + 14.5 + ], + [ + 10.0623, + 0, + 18.1, + 0, + 0.584, + 6.833, + 94.3, + 2.0882, + 24, + 666, + 20.2, + 19.69, + 14.1 + ], + [ + 6.44405, + 0, + 18.1, + 0, + 0.584, + 6.425, + 74.8, + 2.2004, + 24, + 666, + 20.2, + 12.03, + 16.1 + ], + [ + 5.58107, + 0, + 18.1, + 0, + 0.713, + 6.436, + 87.9, + 2.3158, + 24, + 666, + 20.2, + 16.22, + 14.3 + ], + [ + 13.9134, + 0, + 18.1, + 0, + 0.713, + 6.208, + 95, + 2.2222, + 24, + 666, + 20.2, + 15.17, + 11.7 + ], + [ + 11.1604, + 0, + 18.1, + 0, + 0.74, + 6.629, + 94.6, + 2.1247, + 24, + 666, + 20.2, + 23.27, + 13.4 + ], + [ + 14.4208, + 0, + 18.1, + 0, + 0.74, + 6.461, + 93.3, + 2.0026, + 24, + 666, + 20.2, + 18.05, + 9.6 + ], + [ + 15.1772, + 0, + 18.1, + 0, + 0.74, + 6.152, + 100, + 1.9142, + 24, + 666, + 20.2, + 26.45, + 8.7 + ], + [ + 13.6781, + 0, + 18.1, + 0, + 0.74, + 5.935, + 87.9, + 1.8206, + 24, + 666, + 20.2, + 34.02, + 8.4 + ], + [ + 9.39063, + 0, + 18.1, + 0, + 0.74, + 5.627, + 93.9, + 1.8172, + 24, + 666, + 20.2, + 22.88, + 12.8 + ], + [ + 22.0511, + 0, + 18.1, + 0, + 0.74, + 5.818, + 92.4, + 1.8662, + 24, + 666, + 20.2, + 22.11, + 10.5 + ], + [ + 9.72418, + 0, + 18.1, + 0, + 0.74, + 6.406, + 97.2, + 2.0651, + 24, + 666, + 20.2, + 19.52, + 17.1 + ], + [ + 5.66637, + 0, + 18.1, + 0, + 0.74, + 6.219, + 100, + 2.0048, + 24, + 666, + 20.2, + 16.59, + 18.4 + ], + [ + 9.96654, + 0, + 18.1, + 0, + 0.74, + 6.485, + 100, + 1.9784, + 24, + 666, + 20.2, + 18.85, + 15.4 + ], + [ + 12.8023, + 0, + 18.1, + 0, + 0.74, + 5.854, + 96.6, + 1.8956, + 24, + 666, + 20.2, + 23.79, + 10.8 + ], + [ + 10.6718, + 0, + 18.1, + 0, + 0.74, + 6.459, + 94.8, + 1.9879, + 24, + 666, + 20.2, + 23.98, + 11.8 + ], + [ + 6.28807, + 0, + 18.1, + 0, + 0.74, + 6.341, + 96.4, + 2.072, + 24, + 666, + 20.2, + 17.79, + 14.9 + ], + [ + 9.92485, + 0, + 18.1, + 0, + 0.74, + 6.251, + 96.6, + 2.198, + 24, + 666, + 20.2, + 16.44, + 12.6 + ], + [ + 9.32909, + 0, + 18.1, + 0, + 0.713, + 6.185, + 98.7, + 2.2616, + 24, + 666, + 20.2, + 18.13, + 14.1 + ], + [ + 7.52601, + 0, + 18.1, + 0, + 0.713, + 6.417, + 98.3, + 2.185, + 24, + 666, + 20.2, + 19.31, + 13 + ], + [ + 6.71772, + 0, + 18.1, + 0, + 0.713, + 6.749, + 92.6, + 2.3236, + 24, + 666, + 20.2, + 17.44, + 13.4 + ], + [ + 5.44114, + 0, + 18.1, + 0, + 0.713, + 6.655, + 98.2, + 2.3552, + 24, + 666, + 20.2, + 17.73, + 15.2 + ], + [ + 5.09017, + 0, + 18.1, + 0, + 0.713, + 6.297, + 91.8, + 2.3682, + 24, + 666, + 20.2, + 17.27, + 16.1 + ], + [ + 8.24809, + 0, + 18.1, + 0, + 0.713, + 7.393, + 99.3, + 2.4527, + 24, + 666, + 20.2, + 16.74, + 17.8 + ], + [ + 9.51363, + 0, + 18.1, + 0, + 0.713, + 6.728, + 94.1, + 2.4961, + 24, + 666, + 20.2, + 18.71, + 14.9 + ], + [ + 4.75237, + 0, + 18.1, + 0, + 0.713, + 6.525, + 86.5, + 2.4358, + 24, + 666, + 20.2, + 18.13, + 14.1 + ], + [ + 4.66883, + 0, + 18.1, + 0, + 0.713, + 5.976, + 87.9, + 2.5806, + 24, + 666, + 20.2, + 19.01, + 12.7 + ], + [ + 8.20058, + 0, + 18.1, + 0, + 0.713, + 5.936, + 80.3, + 2.7792, + 24, + 666, + 20.2, + 16.94, + 13.5 + ], + [ + 7.75223, + 0, + 18.1, + 0, + 0.713, + 6.301, + 83.7, + 2.7831, + 24, + 666, + 20.2, + 16.23, + 14.9 + ], + [ + 6.80117, + 0, + 18.1, + 0, + 0.713, + 6.081, + 84.4, + 2.7175, + 24, + 666, + 20.2, + 14.7, + 20 + ], + [ + 4.81213, + 0, + 18.1, + 0, + 0.713, + 6.701, + 90, + 2.5975, + 24, + 666, + 20.2, + 16.42, + 16.4 + ], + [ + 3.69311, + 0, + 18.1, + 0, + 0.713, + 6.376, + 88.4, + 2.5671, + 24, + 666, + 20.2, + 14.65, + 17.7 + ], + [ + 6.65492, + 0, + 18.1, + 0, + 0.713, + 6.317, + 83, + 2.7344, + 24, + 666, + 20.2, + 13.99, + 19.5 + ], + [ + 5.82115, + 0, + 18.1, + 0, + 0.713, + 6.513, + 89.9, + 2.8016, + 24, + 666, + 20.2, + 10.29, + 20.2 + ], + [ + 7.83932, + 0, + 18.1, + 0, + 0.655, + 6.209, + 65.4, + 2.9634, + 24, + 666, + 20.2, + 13.22, + 21.4 + ], + [ + 3.1636, + 0, + 18.1, + 0, + 0.655, + 5.759, + 48.2, + 3.0665, + 24, + 666, + 20.2, + 14.13, + 19.9 + ], + [ + 3.77498, + 0, + 18.1, + 0, + 0.655, + 5.952, + 84.7, + 2.8715, + 24, + 666, + 20.2, + 17.15, + 19 + ], + [ + 4.42228, + 0, + 18.1, + 0, + 0.584, + 6.003, + 94.5, + 2.5403, + 24, + 666, + 20.2, + 21.32, + 19.1 + ], + [ + 15.5757, + 0, + 18.1, + 0, + 0.58, + 5.926, + 71, + 2.9084, + 24, + 666, + 20.2, + 18.13, + 19.1 + ], + [ + 13.0751, + 0, + 18.1, + 0, + 0.58, + 5.713, + 56.7, + 2.8237, + 24, + 666, + 20.2, + 14.76, + 20.1 + ], + [ + 4.34879, + 0, + 18.1, + 0, + 0.58, + 6.167, + 84, + 3.0334, + 24, + 666, + 20.2, + 16.29, + 19.9 + ], + [ + 4.03841, + 0, + 18.1, + 0, + 0.532, + 6.229, + 90.7, + 3.0993, + 24, + 666, + 20.2, + 12.87, + 19.6 + ], + [ + 3.56868, + 0, + 18.1, + 0, + 0.58, + 6.437, + 75, + 2.8965, + 24, + 666, + 20.2, + 14.36, + 23.2 + ], + [ + 4.64689, + 0, + 18.1, + 0, + 0.614, + 6.98, + 67.6, + 2.5329, + 24, + 666, + 20.2, + 11.66, + 29.8 + ], + [ + 8.05579, + 0, + 18.1, + 0, + 0.584, + 5.427, + 95.4, + 2.4298, + 24, + 666, + 20.2, + 18.14, + 13.8 + ], + [ + 6.39312, + 0, + 18.1, + 0, + 0.584, + 6.162, + 97.4, + 2.206, + 24, + 666, + 20.2, + 24.1, + 13.3 + ], + [ + 4.87141, + 0, + 18.1, + 0, + 0.614, + 6.484, + 93.6, + 2.3053, + 24, + 666, + 20.2, + 18.68, + 16.7 + ], + [ + 15.0234, + 0, + 18.1, + 0, + 0.614, + 5.304, + 97.3, + 2.1007, + 24, + 666, + 20.2, + 24.91, + 12 + ], + [ + 10.233, + 0, + 18.1, + 0, + 0.614, + 6.185, + 96.7, + 2.1705, + 24, + 666, + 20.2, + 18.03, + 14.6 + ], + [ + 14.3337, + 0, + 18.1, + 0, + 0.614, + 6.229, + 88, + 1.9512, + 24, + 666, + 20.2, + 13.11, + 21.4 + ], + [ + 5.82401, + 0, + 18.1, + 0, + 0.532, + 6.242, + 64.7, + 3.4242, + 24, + 666, + 20.2, + 10.74, + 23 + ], + [ + 5.70818, + 0, + 18.1, + 0, + 0.532, + 6.75, + 74.9, + 3.3317, + 24, + 666, + 20.2, + 7.74, + 23.7 + ], + [ + 5.73116, + 0, + 18.1, + 0, + 0.532, + 7.061, + 77, + 3.4106, + 24, + 666, + 20.2, + 7.01, + 25 + ], + [ + 2.81838, + 0, + 18.1, + 0, + 0.532, + 5.762, + 40.3, + 4.0983, + 24, + 666, + 20.2, + 10.42, + 21.8 + ], + [ + 2.37857, + 0, + 18.1, + 0, + 0.583, + 5.871, + 41.9, + 3.724, + 24, + 666, + 20.2, + 13.34, + 20.6 + ], + [ + 3.67367, + 0, + 18.1, + 0, + 0.583, + 6.312, + 51.9, + 3.9917, + 24, + 666, + 20.2, + 10.58, + 21.2 + ], + [ + 5.69175, + 0, + 18.1, + 0, + 0.583, + 6.114, + 79.8, + 3.5459, + 24, + 666, + 20.2, + 14.98, + 19.1 + ], + [ + 4.83567, + 0, + 18.1, + 0, + 0.583, + 5.905, + 53.2, + 3.1523, + 24, + 666, + 20.2, + 11.45, + 20.6 + ], + [ + 0.15086, + 0, + 27.74, + 0, + 0.609, + 5.454, + 92.7, + 1.8209, + 4, + 711, + 20.1, + 18.06, + 15.2 + ], + [ + 0.18337, + 0, + 27.74, + 0, + 0.609, + 5.414, + 98.3, + 1.7554, + 4, + 711, + 20.1, + 23.97, + 7 + ], + [ + 0.20746, + 0, + 27.74, + 0, + 0.609, + 5.093, + 98, + 1.8226, + 4, + 711, + 20.1, + 29.68, + 8.1 + ], + [ + 0.10574, + 0, + 27.74, + 0, + 0.609, + 5.983, + 98.8, + 1.8681, + 4, + 711, + 20.1, + 18.07, + 13.6 + ], + [ + 0.11132, + 0, + 27.74, + 0, + 0.609, + 5.983, + 83.5, + 2.1099, + 4, + 711, + 20.1, + 13.35, + 20.1 + ], + [ + 0.17331, + 0, + 9.69, + 0, + 0.585, + 5.707, + 54, + 2.3817, + 6, + 391, + 19.2, + 12.01, + 21.8 + ], + [ + 0.27957, + 0, + 9.69, + 0, + 0.585, + 5.926, + 42.6, + 2.3817, + 6, + 391, + 19.2, + 13.59, + 24.5 + ], + [ + 0.17899, + 0, + 9.69, + 0, + 0.585, + 5.67, + 28.8, + 2.7986, + 6, + 391, + 19.2, + 17.6, + 23.1 + ], + [ + 0.2896, + 0, + 9.69, + 0, + 0.585, + 5.39, + 72.9, + 2.7986, + 6, + 391, + 19.2, + 21.14, + 19.7 + ], + [ + 0.26838, + 0, + 9.69, + 0, + 0.585, + 5.794, + 70.6, + 2.8927, + 6, + 391, + 19.2, + 14.1, + 18.3 + ], + [ + 0.23912, + 0, + 9.69, + 0, + 0.585, + 6.019, + 65.3, + 2.4091, + 6, + 391, + 19.2, + 12.92, + 21.2 + ], + [ + 0.17783, + 0, + 9.69, + 0, + 0.585, + 5.569, + 73.5, + 2.3999, + 6, + 391, + 19.2, + 15.1, + 17.5 + ], + [ + 0.22438, + 0, + 9.69, + 0, + 0.585, + 6.027, + 79.7, + 2.4982, + 6, + 391, + 19.2, + 14.33, + 16.8 + ], + [ + 0.06263, + 0, + 11.93, + 0, + 0.573, + 6.593, + 69.1, + 2.4786, + 1, + 273, + 21, + 9.67, + 22.4 + ], + [ + 0.04527, + 0, + 11.93, + 0, + 0.573, + 6.12, + 76.7, + 2.2875, + 1, + 273, + 21, + 9.08, + 20.6 + ], + [ + 0.06076, + 0, + 11.93, + 0, + 0.573, + 6.976, + 91, + 2.1675, + 1, + 273, + 21, + 5.64, + 23.9 + ], + [ + 0.10959, + 0, + 11.93, + 0, + 0.573, + 6.794, + 89.3, + 2.3889, + 1, + 273, + 21, + 6.48, + 22 + ], + [ + 0.04741, + 0, + 11.93, + 0, + 0.573, + 6.03, + 80.8, + 2.505, + 1, + 273, + 21, + 7.88, + 11.9 + ] + ] + } +] \ No newline at end of file diff --git a/src/components/editor/dataAnalytics/Tab.jsx b/src/components/editor/dataAnalytics/Tab.jsx index 9bfea301..ab6c4583 100644 --- a/src/components/editor/dataAnalytics/Tab.jsx +++ b/src/components/editor/dataAnalytics/Tab.jsx @@ -39,6 +39,7 @@ const Tab = () => { return (
+
{TAB_ITEMS.map(({ value, name }) => ( { - let content; - if (xIndex === -1) { - content = CommonUtils.getLang('DataAnalytics.select_x_axis'); - } else if (yIndex === -1 && type === SCATTER) { - content = CommonUtils.getLang('DataAnalytics.select_y_axis'); - } else if (!categoryIndexes.length) { - content = CommonUtils.getLang('DataAnalytics.select_legend'); - } - return content; -}; - const ChartLayout = () => { const theme = Theme.getStyle('popup'); const { dataAnalytics, dispatch } = useContext(DataAnalyticsContext); @@ -39,13 +34,24 @@ const ChartLayout = () => { const key = `chart_${id}_${chartIndex}_${xIndex}_${yIndex}` + `_${categoryIndexes.toString()}_${sort}_${bin}_${boundary}`; - const { xAxis, yAxis, category, degree, order } = LEGEND_OPTIONS[type]; + const { + xAxis, + yAxis, + order, + degree, + category, + checkBox, + showSelectAll, + maximumSelectionLength, + } = LEGEND_OPTIONS[type]; const handleRemoveClick = useCallback((event) => { event.preventDefault(); dispatch({ type: 'REMOVE_CHART' }); }, []); + console.log({ id: isDrawable(selectedChart), selectedChart }); + return ( <>
@@ -63,7 +69,16 @@ const ChartLayout = () => {
{xAxis ? : ''} {yAxis ? : ''} - {category ? : ''} + {category ? ( + + ) : ( + '' + )} {degree ? : ''} {order ? : ''}
@@ -81,6 +96,7 @@ const ChartLayout = () => { {categoryIndexes.length && isHorizontalLegend && type !== SCATTER && + type !== SCATTERGRID && categoryIndexes[0] !== table[0].length ? ( ) : null} diff --git a/src/components/editor/dataAnalytics/chart/Legend.jsx b/src/components/editor/dataAnalytics/chart/Legend.jsx index e7bda863..06e36040 100644 --- a/src/components/editor/dataAnalytics/chart/Legend.jsx +++ b/src/components/editor/dataAnalytics/chart/Legend.jsx @@ -4,21 +4,20 @@ import _reduce from 'lodash/reduce'; import _findIndex from 'lodash/findIndex'; import Dropdown from '@components/widget/dropdown'; import { CommonUtils } from '@utils/Common'; -import { PIE, BAR, LINE, SCATTER, HISTOGRAM } from '@constants/dataAnalytics'; +import { PIE, SCATTER, HISTOGRAM, SCATTERGRID } from '@constants/dataAnalytics'; import { DataAnalyticsContext } from '@contexts/dataAnalytics'; import { getNumberColumnIndexesBySelectedColumns, getTrimedTable } from '@utils/dataAnalytics'; import Theme from '@utils/Theme'; -const Legend = () => { +const Legend = ({ maximumSelectionLength, showSelectAll, checkBox }) => { + const axisRef = useRef(); const theme = Theme.getStyle('popup'); - const { dataAnalytics, dispatch } = useContext(DataAnalyticsContext); const [showDropdown, setShowDropdown] = useState(false); - const axisRef = useRef(); + const { dataAnalytics, dispatch } = useContext(DataAnalyticsContext); const { selected = {} } = dataAnalytics; const { table: selectedTable, chart, chartIndex = 0 } = selected; - const { yIndex = 0, xIndex, categoryIndexes: selectedLegend, type } = chart[chartIndex]; + const { yIndex = 0, xIndex, categoryIndexes: selectedLegend = [], type } = chart[chartIndex]; const table = getTrimedTable(selectedTable); - const checkBox = type === BAR || type === LINE || type === HISTOGRAM; const fields = [...table[0]]; const dropdownItems = _reduce( fields, @@ -31,14 +30,20 @@ const Legend = () => { : getNumberColumnIndexesBySelectedColumns(table, dropdownItems) ).map((index) => [fields[index], index]); const disabled = - (xIndex === -1 || (type === SCATTER && yIndex === -1) || (type !== PIE && !items.length)) && - (type !== HISTOGRAM || !items.length); - const titleLabel = - type === PIE - ? CommonUtils.getLang('DataAnalytics.value') - : CommonUtils.getLang('DataAnalytics.legend'); + !((type === HISTOGRAM || type === SCATTERGRID || type === PIE) && items.length) && + (xIndex === -1 || (type === SCATTER && yIndex === -1)); + const checkedIndex = checkBox + ? selectedLegend.map((index) => + _findIndex( + getNumberColumnIndexesBySelectedColumns(table, dropdownItems), + (categoryIndex) => categoryIndex === index + ) + ) + : ''; + let titleLabel = CommonUtils.getLang('DataAnalytics.legend'); if (type === PIE) { + titleLabel = CommonUtils.getLang('DataAnalytics.value'); items.push([CommonUtils.getLang('DataAnalytics.quantity'), fields.length]); fields.push(CommonUtils.getLang('DataAnalytics.quantity')); } @@ -47,20 +52,12 @@ const Legend = () => { fields.push(CommonUtils.getLang('DataAnalytics.not_distinguished')); } - const getTitle = () => { - if (checkBox) { - if (!selectedLegend.length) { - return titleLabel; - } - if (selectedLegend.length === 1) { - return fields[selectedLegend[0]]; - } - return `${fields[selectedLegend[0]]} 외 ${selectedLegend.length - 1}건`; - } - return !fields[selectedLegend[0]] ? titleLabel : fields[selectedLegend[0]]; - }; + const getTitle = () => + checkBox && selectedLegend.length > 1 + ? `${fields[selectedLegend[0]]} 외 ${selectedLegend.length - 1}건` + : fields[selectedLegend[0]] || titleLabel; - const handleSelectDropDown = (value) => { + const handleSelectDropdown = (value) => { setShowDropdown(false); dispatch({ type: 'SELECT_LEGEND_AXIS', @@ -68,16 +65,14 @@ const Legend = () => { }); }; - const handleOutsideClick = () => { + const handleOutsideClick = (checkItems) => { setShowDropdown(false); - }; - - const handleCheckOutsideClick = (checkItems) => { - setShowDropdown(false); - dispatch({ - type: 'SELECT_LEGEND_AXIS', - indexes: checkItems.items.map((item) => item[1]), - }); + if (checkBox) { + dispatch({ + type: 'SELECT_LEGEND_AXIS', + indexes: checkItems.items.map((item) => item[1]), + }); + } }; const handleClick = (event) => { @@ -110,22 +105,13 @@ const Legend = () => { {showDropdown && ( - _findIndex( - getNumberColumnIndexesBySelectedColumns(table, dropdownItems), - (categoryIndex) => categoryIndex === index - ) - ) - : '' - } - multiple={checkBox && type !== HISTOGRAM} - showSelectAll={checkBox && type !== HISTOGRAM} - maximumSelectionLength={checkBox && type === HISTOGRAM ? 3 : ''} + multiple={showSelectAll} + showSelectAll={showSelectAll} + maximumSelectionLength={maximumSelectionLength} + checkedIndex={checkedIndex} /> )}
diff --git a/src/components/editor/dataAnalytics/chart/Navigation.jsx b/src/components/editor/dataAnalytics/chart/Navigation.jsx index 2a5d529a..bf415e6d 100644 --- a/src/components/editor/dataAnalytics/chart/Navigation.jsx +++ b/src/components/editor/dataAnalytics/chart/Navigation.jsx @@ -22,6 +22,8 @@ const Navigation = () => { return CommonUtils.getLang('DataAnalytics.pie'); case 'scatter': return CommonUtils.getLang('DataAnalytics.scatter'); + case 'scatterGrid': + return CommonUtils.getLang('DataAnalytics.scatterGrid'); case 'plus': return CommonUtils.getLang('DataAnalytics.plus'); default: diff --git a/src/components/editor/dataAnalytics/chart/ScatterGrid.jsx b/src/components/editor/dataAnalytics/chart/ScatterGrid.jsx new file mode 100644 index 00000000..fc694569 --- /dev/null +++ b/src/components/editor/dataAnalytics/chart/ScatterGrid.jsx @@ -0,0 +1,94 @@ +import React, { useRef, useEffect, useState } from 'react'; +import { SCATTERGRID } from '@constants/dataAnalytics'; +import { corr, pcorr, pearsonCorrelation } from '@utils/dataAnalytics'; +import bb from 'billboard.js'; +import '@assets/entry/scss/widget/insight.css'; + +const ALL = 'all'; +const COEFFICIENT = 'coefficient'; + +const getColumns = (table, indexes) => indexes.map((index) => table.map((field) => field[index])); + +const BillboardChart = ({ columns, type, xs, id = 'scatterGrid' }) => { + const chartRef = useRef(null); + useEffect(() => { + bb.generate({ data: { columns, type, xs }, bindto: chartRef.current }); + }, []); + return
; +}; + +const Chart = ({ table, categoryIndexes, mode }) => { + const [x, y] = categoryIndexes; + + const columns = getColumns(table, categoryIndexes); + columns[1][0] += 'x'; + if (mode !== ALL) { + if (x === y) { + return columns[0][0]; + } else if (x > y) { + console.log( + corr(columns[0].slice(1), columns[1].slice(1)), + pearsonCorrelation([columns[0].slice(1), columns[1].slice(1)]) + ); + return pcorr(columns[0].slice(1), columns[1].slice(1)); + } + } + console.log({ columns, type: 'scatter', categoryIndexes }); + return ( + + ); +}; + +const ScatterGrid = ({ table, chart }) => { + const [mode, setMode] = useState(ALL); + const { type, categoryIndexes } = chart; + // const mode = ALL; + const handleClick = () => { + setMode((m) => (m === 'all' ? COEFFICIENT : ALL)); + }; + if (type !== SCATTERGRID) { + return null; + } + return ( +
+ + + {categoryIndexes.map((x) => ( + + {categoryIndexes.map((y) => ( + + ))} + + ))} +
+ +
+
+ ); +}; + +export default ScatterGrid; diff --git a/src/components/widget/Chart.jsx b/src/components/widget/Chart.jsx index 804d33eb..ac6f5243 100644 --- a/src/components/widget/Chart.jsx +++ b/src/components/widget/Chart.jsx @@ -20,8 +20,14 @@ import { getBinWidth, isDrawable, getPieChart, + getNoResultText, } from '@utils/dataAnalytics'; -import { GRAPH_COLOR, HISTOGRAM, SCATTER_POINT_PATTERN } from '@constants/dataAnalytics'; +import { + GRAPH_COLOR, + HISTOGRAM, + SCATTERGRID, + SCATTER_POINT_PATTERN, +} from '@constants/dataAnalytics'; const { generateHash } = CommonUtils; const scatterChart = (table, xIndex, yIndex, categoryIndex) => @@ -379,7 +385,7 @@ const generateOption = (option) => { size, point, legend, - bindto: bindto, + bindto, color: { pattern: GRAPH_COLOR[type], }, @@ -418,7 +424,7 @@ const Chart = (props) => { } = chart; const id = `c${generateHash()}`; - let content = ''; + const content = getNoResultText(chart); if (!isDrawable({ type, xIndex, yIndex, categoryIndexes })) { return shortForm ? ( @@ -463,18 +469,10 @@ const Chart = (props) => { } }, []); - if (type !== HISTOGRAM && xIndex === -1) { - content = CommonUtils.getLang('DataAnalytics.select_x_axis'); - } else if (yIndex === -1 && type === 'scatter') { - content = CommonUtils.getLang('DataAnalytics.select_y_axis'); - } else if (!categoryIndexes.length) { - content = CommonUtils.getLang('DataAnalytics.select_legend'); - } - if (!content) { return (
-
+
); } diff --git a/src/constants/dataAnalytics.js b/src/constants/dataAnalytics.js index 0f952537..33452b19 100644 --- a/src/constants/dataAnalytics.js +++ b/src/constants/dataAnalytics.js @@ -5,9 +5,10 @@ export const BAR = 'bar'; export const LINE = 'line'; export const PIE = 'pie'; export const SCATTER = 'scatter'; +export const SCATTERGRID = 'scatterGrid'; export const HISTOGRAM = 'histogram'; export const NONE = 'none'; -export const CHART_CATEGORY = [BAR, LINE, PIE, SCATTER, HISTOGRAM]; +export const CHART_CATEGORY = [BAR, LINE, PIE, SCATTER, SCATTERGRID, HISTOGRAM]; export const TAB_NAME = { TABLE, CHART, @@ -21,38 +22,37 @@ export const TAB_ITEMS = [ export const LEGEND_OPTIONS = { [BAR]: { xAxis: true, - yAxis: false, category: true, - degree: false, order: true, + showSelectAll: true, + checkBox: true, }, [LINE]: { xAxis: true, - yAxis: false, category: true, - degree: false, order: true, + showSelectAll: true, + checkBox: true, }, [PIE]: { xAxis: true, - yAxis: false, category: true, - degree: false, - order: false, }, [SCATTER]: { xAxis: true, yAxis: true, category: true, - degree: false, - order: false, + }, + [SCATTERGRID]: { + category: true, + maximumSelectionLength: 6, + checkBox: true, }, [HISTOGRAM]: { - xAxis: false, - yAxis: false, category: true, degree: true, - order: false, + maximumSelectionLength: 3, + checkBox: true, }, }; diff --git a/src/constants/sample.js b/src/constants/sample.js index e9b03da8..dbc26aef 100644 --- a/src/constants/sample.js +++ b/src/constants/sample.js @@ -1578,7 +1578,20 @@ export const TABLE_INFO_SAMPLE = [ modifyDate: '2019-12-27', name: '한국 요리', url: '', - fields: ['요리명', '재료', '조리법','요리명', '재료', '조리법','요리명', '재료', '조리법','요리명', '재료', '조리법'], + fields: [ + '요리명', + '재료', + '조리법', + '요리명', + '재료', + '조리법', + '요리명', + '재료', + '조리법', + '요리명', + '재료', + '조리법', + ], provider: '한국 국제 교류재단 문화예술사업부', summary: '800여 가지의 한식을 재료별(곡물, 콩, 채소, 고기 등), 조리법별(밥, 국, 찌개, 구이 등)로 분류한 데이터입니다.800여 가지의 한식을 재료별(곡물, 콩, 채소, 고기 등), 조리법별(밥, 국, 찌개, 구이 등)로 분류한 데이터입니다.800여 가지의 한식을 재료별(곡물, 콩, 채소, 고기 등), 조리법별(밥, 국, 찌개, 구이 등)로 분류한 데이터입니다.', diff --git a/src/stories/index.js b/src/stories/index.js index 90587f0f..ebf89fe2 100644 --- a/src/stories/index.js +++ b/src/stories/index.js @@ -43,6 +43,7 @@ import DataAnalytics from '../components/editor/dataAnalytics/DataAnalytics'; import TableChart from '../components/ai_layout/TableChart'; import TableSummary from '../components/ai_layout/TableSummary'; import Theme from '@utils/Theme'; +import ScatterGrid from '@components/editor/dataAnalytics/chart/ScatterGrid'; const store = configureStore(); httpService.setupInterceptors('http://localhost:4000'); @@ -498,6 +499,15 @@ storiesOf('AiLayout', module) }} /> )) + .add('산점도행렬', () => ( + + )) .add('tree', () => ( ( )) - .add('DataAnalytics', () => ); + .add('DataAnalytics', () => ( + + )); diff --git a/src/utils/dataAnalytics.js b/src/utils/dataAnalytics.js index d56da6e3..35ed81b4 100644 --- a/src/utils/dataAnalytics.js +++ b/src/utils/dataAnalytics.js @@ -22,7 +22,7 @@ import map from 'lodash/fp/map'; import unzip from 'lodash/fp/unzip'; import { CommonUtils } from '@utils/Common'; -import { NONE, SCATTER, HISTOGRAM } from '@constants/dataAnalytics'; +import { NONE, SCATTER, HISTOGRAM, SCATTERGRID } from '@constants/dataAnalytics'; export const isString = (str) => isNaN(str); export const someString = (array) => _some(array, isString); @@ -236,6 +236,113 @@ export const getPieChart = (table, xIndex, categoryIndex) => { export const isDrawable = ({ type = NONE, xIndex, yIndex, categoryIndexes } = {}) => type !== NONE && - ((type !== HISTOGRAM && xIndex !== -1) || (type === HISTOGRAM && categoryIndexes.length)) && + (!(type === HISTOGRAM || xIndex === -1) || + ((type === HISTOGRAM || type === SCATTERGRID) && categoryIndexes.length)) && categoryIndexes.length && - (type !== SCATTER || yIndex !== -1); + !(type === SCATTER && yIndex === -1); + +export const getNoResultText = ({ type = NONE, xIndex, yIndex, categoryIndexes = [] } = {}) => { + let content; + if (type !== HISTOGRAM && type !== SCATTERGRID && xIndex === -1) { + content = CommonUtils.getLang('DataAnalytics.select_x_axis'); + } else if (yIndex === -1 && type === SCATTER) { + content = CommonUtils.getLang('DataAnalytics.select_y_axis'); + } else if (!categoryIndexes.length) { + content = CommonUtils.getLang('DataAnalytics.select_legend'); + } + return content; +}; + +export const pcorr = (x, y) => { + let sumX = 0; + let sumY = 0; + let sumXY = 0; + let sumX2 = 0; + let sumY2 = 0; + const minLength = Math.min(x.length, y.length); + const reduce = (xi, idx) => { + const yi = y[idx]; + sumX += xi; + sumY += yi; + sumXY += xi * yi; + sumX2 += xi * xi; + sumY2 += yi * yi; + }; + x.forEach(reduce); + return ( + (minLength * sumXY - sumX * sumY) / + Math.sqrt((minLength * sumX2 - sumX * sumX) * (minLength * sumY2 - sumY * sumY)) + ); +}; + +export const pearsonCorrelation = (prefs, p1 = 0, p2 = 1) => { + const si = []; + + for (const key in prefs[p1]) { + if (prefs[p2][key]) { + si.push(key); + } + } + + const n = si.length; + + if (n == 0) { + return 0; + } + + let sum1 = 0; + for (let i = 0; i < si.length; i++) { + sum1 += prefs[p1][si[i]]; + } + + let sum2 = 0; + for (let i = 0; i < si.length; i++) { + sum2 += prefs[p2][si[i]]; + } + + let sum1Sq = 0; + for (let i = 0; i < si.length; i++) { + sum1Sq += Math.pow(prefs[p1][si[i]], 2); + } + + let sum2Sq = 0; + for (let i = 0; i < si.length; i++) { + sum2Sq += Math.pow(prefs[p2][si[i]], 2); + } + + let pSum = 0; + for (let i = 0; i < si.length; i++) { + pSum += prefs[p1][si[i]] * prefs[p2][si[i]]; + } + + const num = pSum - (sum1 * sum2) / n; + const den = Math.sqrt((sum1Sq - Math.pow(sum1, 2) / n) * (sum2Sq - Math.pow(sum2, 2) / n)); + + if (den == 0) { + return 0; + } + + return num / den; +}; +/** + * calculates pearson correlation + * @param {number[]} d1 + * @param {number[]} d2 + */ +export function corr(d1, d2) { + const { min, pow, sqrt } = Math; + const add = (a, b) => a + b; + const n = min(d1.length, d2.length); + if (n === 0) { + return 0; + } + [d1, d2] = [d1.slice(0, n), d2.slice(0, n)]; + const [sum1, sum2] = [d1, d2].map((l) => l.reduce(add)); + const [pow1, pow2] = [d1, d2].map((l) => l.reduce((a, b) => a + pow(b, 2), 0)); + const mulSum = d1.map((n, i) => n * d2[i]).reduce(add); + const dense = sqrt((pow1 - pow(sum1, 2) / n) * (pow2 - pow(sum2, 2) / n)); + if (dense === 0) { + return 0; + } + return (mulSum - (sum1 * sum2) / n) / dense; +} From 73b7a2eefcc823c86f2fd7869e3ac33cbb21fef6 Mon Sep 17 00:00:00 2001 From: Youngduk Park <0duck@kakao.com> Date: Fri, 9 Dec 2022 13:33:18 +0900 Subject: [PATCH 02/23] =?UTF-8?q?=EC=83=81=EA=B4=80=EA=B3=84=EC=88=98?= =?UTF-8?q?=EC=8B=9D=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/utils/dataAnalytics.js | 75 +------------------------------------- 1 file changed, 2 insertions(+), 73 deletions(-) diff --git a/src/utils/dataAnalytics.js b/src/utils/dataAnalytics.js index 35ed81b4..894f2792 100644 --- a/src/utils/dataAnalytics.js +++ b/src/utils/dataAnalytics.js @@ -252,78 +252,6 @@ export const getNoResultText = ({ type = NONE, xIndex, yIndex, categoryIndexes = } return content; }; - -export const pcorr = (x, y) => { - let sumX = 0; - let sumY = 0; - let sumXY = 0; - let sumX2 = 0; - let sumY2 = 0; - const minLength = Math.min(x.length, y.length); - const reduce = (xi, idx) => { - const yi = y[idx]; - sumX += xi; - sumY += yi; - sumXY += xi * yi; - sumX2 += xi * xi; - sumY2 += yi * yi; - }; - x.forEach(reduce); - return ( - (minLength * sumXY - sumX * sumY) / - Math.sqrt((minLength * sumX2 - sumX * sumX) * (minLength * sumY2 - sumY * sumY)) - ); -}; - -export const pearsonCorrelation = (prefs, p1 = 0, p2 = 1) => { - const si = []; - - for (const key in prefs[p1]) { - if (prefs[p2][key]) { - si.push(key); - } - } - - const n = si.length; - - if (n == 0) { - return 0; - } - - let sum1 = 0; - for (let i = 0; i < si.length; i++) { - sum1 += prefs[p1][si[i]]; - } - - let sum2 = 0; - for (let i = 0; i < si.length; i++) { - sum2 += prefs[p2][si[i]]; - } - - let sum1Sq = 0; - for (let i = 0; i < si.length; i++) { - sum1Sq += Math.pow(prefs[p1][si[i]], 2); - } - - let sum2Sq = 0; - for (let i = 0; i < si.length; i++) { - sum2Sq += Math.pow(prefs[p2][si[i]], 2); - } - - let pSum = 0; - for (let i = 0; i < si.length; i++) { - pSum += prefs[p1][si[i]] * prefs[p2][si[i]]; - } - - const num = pSum - (sum1 * sum2) / n; - const den = Math.sqrt((sum1Sq - Math.pow(sum1, 2) / n) * (sum2Sq - Math.pow(sum2, 2) / n)); - - if (den == 0) { - return 0; - } - - return num / den; -}; /** * calculates pearson correlation * @param {number[]} d1 @@ -331,7 +259,7 @@ export const pearsonCorrelation = (prefs, p1 = 0, p2 = 1) => { */ export function corr(d1, d2) { const { min, pow, sqrt } = Math; - const add = (a, b) => a + b; + const add = (a, b) => Number(a) + Number(b); const n = min(d1.length, d2.length); if (n === 0) { return 0; @@ -344,5 +272,6 @@ export function corr(d1, d2) { if (dense === 0) { return 0; } + console.log({ mulSum, sum1, sum2, n, dense }); return (mulSum - (sum1 * sum2) / n) / dense; } From 4610241b48fd567c8674602cb6f4844b5218d1c1 Mon Sep 17 00:00:00 2001 From: Youngduk Park <0duck@kakao.com> Date: Fri, 9 Dec 2022 13:33:41 +0900 Subject: [PATCH 03/23] =?UTF-8?q?billboardjs=20=EB=B2=84=EC=A0=84=20?= =?UTF-8?q?=EC=97=85=EB=8D=B0=EC=9D=B4=ED=8A=B8,=20=EA=B7=B8=EB=9E=98?= =?UTF-8?q?=ED=94=84=20=EB=AA=A8=EC=96=91=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 2 +- .../dataAnalytics/chart/ScatterGrid.jsx | 52 +++- yarn.lock | 281 +++++++++--------- 3 files changed, 178 insertions(+), 157 deletions(-) diff --git a/package.json b/package.json index 489670ad..50443da0 100644 --- a/package.json +++ b/package.json @@ -120,7 +120,7 @@ "@entrylabs/postcss-url": "^8.0.1", "@toast-ui/react-grid": "^4.10.1", "axios": "^0.18.0", - "billboard.js": "^1.11.1", + "billboard.js": "^3.6.3", "chroma-js": "^1.4.0", "classnames": "^2.2.6", "clipboard": "^2.0.11", diff --git a/src/components/editor/dataAnalytics/chart/ScatterGrid.jsx b/src/components/editor/dataAnalytics/chart/ScatterGrid.jsx index fc694569..b42312a5 100644 --- a/src/components/editor/dataAnalytics/chart/ScatterGrid.jsx +++ b/src/components/editor/dataAnalytics/chart/ScatterGrid.jsx @@ -1,6 +1,6 @@ import React, { useRef, useEffect, useState } from 'react'; import { SCATTERGRID } from '@constants/dataAnalytics'; -import { corr, pcorr, pearsonCorrelation } from '@utils/dataAnalytics'; +import { corr } from '@utils/dataAnalytics'; import bb from 'billboard.js'; import '@assets/entry/scss/widget/insight.css'; @@ -9,37 +9,51 @@ const COEFFICIENT = 'coefficient'; const getColumns = (table, indexes) => indexes.map((index) => table.map((field) => field[index])); -const BillboardChart = ({ columns, type, xs, id = 'scatterGrid' }) => { +const BillboardChart = ({ columns, type, xs, id = 'scatterGrid', xLabel, yLabel }) => { const chartRef = useRef(null); useEffect(() => { - bb.generate({ data: { columns, type, xs }, bindto: chartRef.current }); + bb.generate({ + data: { columns, type, xs }, + bindto: chartRef.current, + point: { opacity: 1 }, + axis: { + x: { + label: xLabel, + }, + y: { + label: yLabel, + }, + }, + tooltip: { show: false }, + legend: { show: false }, + }); }, []); return
; }; -const Chart = ({ table, categoryIndexes, mode }) => { +const Chart = ({ table, categoryIndexes, mode, xAxis, yAxis }) => { const [x, y] = categoryIndexes; - const columns = getColumns(table, categoryIndexes); - columns[1][0] += 'x'; - if (mode !== ALL) { + const xLabel = xAxis ? columns[1][0] : ''; + const yLabel = yAxis ? columns[0][0] : ''; + if (mode === COEFFICIENT) { if (x === y) { return columns[0][0]; } else if (x > y) { - console.log( - corr(columns[0].slice(1), columns[1].slice(1)), - pearsonCorrelation([columns[0].slice(1), columns[1].slice(1)]) - ); - return pcorr(columns[0].slice(1), columns[1].slice(1)); + return corr(columns[0].slice(1), columns[1].slice(1)); } } - console.log({ columns, type: 'scatter', categoryIndexes }); + if (x == y) { + columns[1][0] += 'x'; + } return ( ); }; @@ -65,7 +79,7 @@ const ScatterGrid = ({ table, chart }) => { borderCollapse: 'collapse', }} > - {categoryIndexes.map((x) => ( + {categoryIndexes.map((x, xIndex) => (
{ borderCollapse: 'collapse', }} > - {categoryIndexes.map((y) => ( + {categoryIndexes.map((y, yIndex) => ( ))} diff --git a/yarn.lock b/yarn.lock index 309e4991..f118743b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4450,24 +4450,23 @@ big.js@^5.2.2: resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== -billboard.js@^1.11.1: - version "1.12.11" - resolved "https://registry.yarnpkg.com/billboard.js/-/billboard.js-1.12.11.tgz#dbc72af3dbc3fcff938f7e9a538d864b493f9543" - integrity sha512-DzT1/mogtDiSm+mXERfuLjrAjDQHKAnYK2jRYBo4zKh9Da9NTrjnrYNzbmsASqA+dXSZ7y01LfhYPx67RCYp+w== - dependencies: - d3-axis "^1.0.12" - d3-brush "^1.1.5" - d3-color "^1.4.0" - d3-drag "^1.2.5" - d3-dsv "^1.2.0" - d3-ease "^1.0.6" - d3-interpolate "^1.4.0" - d3-scale "^2.2.2" - d3-selection "^1.4.1" - d3-shape "^1.3.7" - d3-time-format "^2.2.3" - d3-transition "^1.3.2" - d3-zoom "^1.8.3" +billboard.js@^3.6.3: + version "3.6.3" + resolved "https://registry.yarnpkg.com/billboard.js/-/billboard.js-3.6.3.tgz#e20da91565468444429160cbc1f86efdaa3b38b9" + integrity sha512-8QXQ5RCKGqRshGtAFGPEsSTTznJ4N6pXscAiusyYIIjl5FqfdS1Q3t49MICQTYaKRTbnyJan8qqb27uiU36x4A== + dependencies: + d3-axis "^3.0.0" + d3-brush "^3.0.0" + d3-drag "^3.0.0" + d3-dsv "^3.0.1" + d3-ease "^3.0.1" + d3-interpolate "^3.0.1" + d3-scale "^4.0.2" + d3-selection "^3.0.0" + d3-shape "^3.1.0" + d3-time-format "^4.1.0" + d3-transition "^3.0.1" + d3-zoom "^3.0.0" binary-extensions@^1.0.0: version "1.13.1" @@ -5393,16 +5392,21 @@ comma-separated-tokens@^1.0.0: resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz#632b80b6117867a158f1080ad498b2fbe7e3f5ea" integrity sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw== -commander@2, commander@^2.15.0, commander@^2.19.0, commander@^2.20.0: - version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - commander@2.17.x, commander@~2.17.1: version "2.17.1" resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf" integrity sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg== +commander@7, commander@^7.0.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" + integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== + +commander@^2.15.0, commander@^2.19.0, commander@^2.20.0: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + commander@^4.0.1: version "4.1.1" resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" @@ -5413,11 +5417,6 @@ commander@^6.2.1: resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== -commander@^7.0.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" - integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== - commander@~2.13.0: version "2.13.0" resolved "https://registry.yarnpkg.com/commander/-/commander-2.13.0.tgz#6964bca67685df7c1f1430c584f07d7597885b9c" @@ -5968,144 +5967,141 @@ cyclist@^1.0.1: resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= -d3-array@^1.2.0: - version "1.2.4" - resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-1.2.4.tgz#635ce4d5eea759f6f605863dbcfc30edc737f71f" - integrity sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw== +"d3-array@2 - 3", "d3-array@2.10.0 - 3": + version "3.2.1" + resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-3.2.1.tgz#39331ea706f5709417d31bbb6ec152e0328b39b3" + integrity sha512-gUY/qeHq/yNqqoCKNq4vtpFLdoCdvyNpWoC/KNjhGbhDuQpAM9sIQQKkXSNpXa9h5KySs/gzm7R88WkUutgwWQ== + dependencies: + internmap "1 - 2" -d3-axis@^1.0.12: - version "1.0.12" - resolved "https://registry.yarnpkg.com/d3-axis/-/d3-axis-1.0.12.tgz#cdf20ba210cfbb43795af33756886fb3638daac9" - integrity sha512-ejINPfPSNdGFKEOAtnBtdkpr24c4d4jsei6Lg98mxf424ivoDP2956/5HDpIAtmHo85lqT4pruy+zEgvRUBqaQ== +d3-axis@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-axis/-/d3-axis-3.0.0.tgz#c42a4a13e8131d637b745fc2973824cfeaf93322" + integrity sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw== -d3-brush@^1.1.5: - version "1.1.6" - resolved "https://registry.yarnpkg.com/d3-brush/-/d3-brush-1.1.6.tgz#b0a22c7372cabec128bdddf9bddc058592f89e9b" - integrity sha512-7RW+w7HfMCPyZLifTz/UnJmI5kdkXtpCbombUSs8xniAyo0vIbrDzDwUJB6eJOgl9u5DQOt2TQlYumxzD1SvYA== +d3-brush@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-brush/-/d3-brush-3.0.0.tgz#6f767c4ed8dcb79de7ede3e1c0f89e63ef64d31c" + integrity sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ== dependencies: - d3-dispatch "1" - d3-drag "1" - d3-interpolate "1" - d3-selection "1" - d3-transition "1" - -d3-collection@1: - version "1.0.7" - resolved "https://registry.yarnpkg.com/d3-collection/-/d3-collection-1.0.7.tgz#349bd2aa9977db071091c13144d5e4f16b5b310e" - integrity sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A== + d3-dispatch "1 - 3" + d3-drag "2 - 3" + d3-interpolate "1 - 3" + d3-selection "3" + d3-transition "3" -d3-color@1, d3-color@^1.4.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-1.4.1.tgz#c52002bf8846ada4424d55d97982fef26eb3bc8a" - integrity sha512-p2sTHSLCJI2QKunbGb7ocOh7DgTAn8IrLx21QRc/BSnodXM4sv6aLQlnfpvehFMLZEfBc6g9pH9SWQccFYfJ9Q== +"d3-color@1 - 3": + version "3.1.0" + resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-3.1.0.tgz#395b2833dfac71507f12ac2f7af23bf819de24e2" + integrity sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA== -d3-dispatch@1: - version "1.0.6" - resolved "https://registry.yarnpkg.com/d3-dispatch/-/d3-dispatch-1.0.6.tgz#00d37bcee4dd8cd97729dd893a0ac29caaba5d58" - integrity sha512-fVjoElzjhCEy+Hbn8KygnmMS7Or0a9sI2UzGwoB7cCtvI1XpVN9GpoYlnb3xt2YV66oXYb1fLJ8GMvP4hdU1RA== +"d3-dispatch@1 - 3": + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-dispatch/-/d3-dispatch-3.0.1.tgz#5fc75284e9c2375c36c839411a0cf550cbfc4d5e" + integrity sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg== -d3-drag@1, d3-drag@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/d3-drag/-/d3-drag-1.2.5.tgz#2537f451acd39d31406677b7dc77c82f7d988f70" - integrity sha512-rD1ohlkKQwMZYkQlYVCrSFxsWPzI97+W+PaEIBNTMxRuxz9RF0Hi5nJWHGVJ3Om9d2fRTe1yOBINJyy/ahV95w== +"d3-drag@2 - 3", d3-drag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-drag/-/d3-drag-3.0.0.tgz#994aae9cd23c719f53b5e10e3a0a6108c69607ba" + integrity sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg== dependencies: - d3-dispatch "1" - d3-selection "1" + d3-dispatch "1 - 3" + d3-selection "3" -d3-dsv@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/d3-dsv/-/d3-dsv-1.2.0.tgz#9d5f75c3a5f8abd611f74d3f5847b0d4338b885c" - integrity sha512-9yVlqvZcSOMhCYzniHE7EVUws7Fa1zgw+/EAV2BxJoG3ME19V6BQFBwI855XQDsxyOuG7NibqRMTtiF/Qup46g== +d3-dsv@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-dsv/-/d3-dsv-3.0.1.tgz#c63af978f4d6a0d084a52a673922be2160789b73" + integrity sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q== dependencies: - commander "2" - iconv-lite "0.4" + commander "7" + iconv-lite "0.6" rw "1" -d3-ease@1, d3-ease@^1.0.6: - version "1.0.7" - resolved "https://registry.yarnpkg.com/d3-ease/-/d3-ease-1.0.7.tgz#9a834890ef8b8ae8c558b2fe55bd57f5993b85e2" - integrity sha512-lx14ZPYkhNx0s/2HX5sLFUI3mbasHjSSpwO/KaaNACweVwxUruKyWVcb293wMv1RqTPZyZ8kSZ2NogUZNcLOFQ== +"d3-ease@1 - 3", d3-ease@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-ease/-/d3-ease-3.0.1.tgz#9658ac38a2140d59d346160f1f6c30fda0bd12f4" + integrity sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w== -d3-format@1: - version "1.4.5" - resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-1.4.5.tgz#374f2ba1320e3717eb74a9356c67daee17a7edb4" - integrity sha512-J0piedu6Z8iB6TbIGfZgDzfXxUFN3qQRMofy2oPdXzQibYGqPB/9iMcxr/TGalU+2RsyDO+U4f33id8tbnSRMQ== +"d3-format@1 - 3": + version "3.1.0" + resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-3.1.0.tgz#9260e23a28ea5cb109e93b21a06e24e2ebd55641" + integrity sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA== -d3-interpolate@1, d3-interpolate@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-1.4.0.tgz#526e79e2d80daa383f9e0c1c1c7dcc0f0583e987" - integrity sha512-V9znK0zc3jOPV4VD2zZn0sDhZU3WAE2bmlxdIwwQPPzPjvyLkd8B3JUVdS1IDUFDkWZ72c9qnv1GK2ZagTZ8EA== +"d3-interpolate@1 - 3", "d3-interpolate@1.2.0 - 3", d3-interpolate@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-3.0.1.tgz#3c47aa5b32c5b3dfb56ef3fd4342078a632b400d" + integrity sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g== dependencies: - d3-color "1" + d3-color "1 - 3" -d3-path@1: - version "1.0.9" - resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-1.0.9.tgz#48c050bb1fe8c262493a8caf5524e3e9591701cf" - integrity sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg== +"d3-path@1 - 3": + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-3.0.1.tgz#f09dec0aaffd770b7995f1a399152bf93052321e" + integrity sha512-gq6gZom9AFZby0YLduxT1qmrp4xpBA1YZr19OI717WIdKE2OM5ETq5qrHLb301IgxhLwcuxvGZVLeeWc/k1I6w== -d3-scale@^2.2.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/d3-scale/-/d3-scale-2.2.2.tgz#4e880e0b2745acaaddd3ede26a9e908a9e17b81f" - integrity sha512-LbeEvGgIb8UMcAa0EATLNX0lelKWGYDQiPdHj+gLblGVhGLyNbaCn3EvrJf0A3Y/uOOU5aD6MTh5ZFCdEwGiCw== +d3-scale@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/d3-scale/-/d3-scale-4.0.2.tgz#82b38e8e8ff7080764f8dcec77bd4be393689396" + integrity sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ== dependencies: - d3-array "^1.2.0" - d3-collection "1" - d3-format "1" - d3-interpolate "1" - d3-time "1" - d3-time-format "2" + d3-array "2.10.0 - 3" + d3-format "1 - 3" + d3-interpolate "1.2.0 - 3" + d3-time "2.1.1 - 3" + d3-time-format "2 - 4" -d3-selection@1, d3-selection@^1.1.0, d3-selection@^1.4.1: - version "1.4.2" - resolved "https://registry.yarnpkg.com/d3-selection/-/d3-selection-1.4.2.tgz#dcaa49522c0dbf32d6c1858afc26b6094555bc5c" - integrity sha512-SJ0BqYihzOjDnnlfyeHT0e30k0K1+5sR3d5fNueCNeuhZTnGw4M4o8mqJchSwgKMXCNFo+e2VTChiSJ0vYtXkg== +"d3-selection@2 - 3", d3-selection@3, d3-selection@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-selection/-/d3-selection-3.0.0.tgz#c25338207efa72cc5b9bd1458a1a41901f1e1b31" + integrity sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ== -d3-shape@^1.3.7: - version "1.3.7" - resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-1.3.7.tgz#df63801be07bc986bc54f63789b4fe502992b5d7" - integrity sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw== +d3-shape@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-3.1.0.tgz#c8a495652d83ea6f524e482fca57aa3f8bc32556" + integrity sha512-tGDh1Muf8kWjEDT/LswZJ8WF85yDZLvVJpYU9Nq+8+yW1Z5enxrmXOhTArlkaElU+CTn0OTVNli+/i+HP45QEQ== dependencies: - d3-path "1" + d3-path "1 - 3" -d3-time-format@2, d3-time-format@^2.2.3: - version "2.3.0" - resolved "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-2.3.0.tgz#107bdc028667788a8924ba040faf1fbccd5a7850" - integrity sha512-guv6b2H37s2Uq/GefleCDtbe0XZAuy7Wa49VGkPVPMfLL9qObgBST3lEHJBMUp8S7NdLQAGIvr2KXk8Hc98iKQ== +"d3-time-format@2 - 4", d3-time-format@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-4.1.0.tgz#7ab5257a5041d11ecb4fe70a5c7d16a195bb408a" + integrity sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg== dependencies: - d3-time "1" + d3-time "1 - 3" -d3-time@1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-1.1.0.tgz#b1e19d307dae9c900b7e5b25ffc5dcc249a8a0f1" - integrity sha512-Xh0isrZ5rPYYdqhAVk8VLnMEidhz5aP7htAADH6MfzgmmicPkTo8LhkLxci61/lCB7n7UmE3bN0leRt+qvkLxA== +"d3-time@1 - 3", "d3-time@2.1.1 - 3": + version "3.1.0" + resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-3.1.0.tgz#9310db56e992e3c0175e1ef385e545e48a9bb5c7" + integrity sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q== + dependencies: + d3-array "2 - 3" -d3-timer@1: - version "1.0.10" - resolved "https://registry.yarnpkg.com/d3-timer/-/d3-timer-1.0.10.tgz#dfe76b8a91748831b13b6d9c793ffbd508dd9de5" - integrity sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw== +"d3-timer@1 - 3": + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-timer/-/d3-timer-3.0.1.tgz#6284d2a2708285b1abb7e201eda4380af35e63b0" + integrity sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA== -d3-transition@1, d3-transition@^1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/d3-transition/-/d3-transition-1.3.2.tgz#a98ef2151be8d8600543434c1ca80140ae23b398" - integrity sha512-sc0gRU4PFqZ47lPVHloMn9tlPcv8jxgOQg+0zjhfZXMQuvppjG6YuwdMBE0TuqCZjeJkLecku/l9R0JPcRhaDA== +"d3-transition@2 - 3", d3-transition@3, d3-transition@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-transition/-/d3-transition-3.0.1.tgz#6869fdde1448868077fdd5989200cb61b2a1645f" + integrity sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w== dependencies: - d3-color "1" - d3-dispatch "1" - d3-ease "1" - d3-interpolate "1" - d3-selection "^1.1.0" - d3-timer "1" + d3-color "1 - 3" + d3-dispatch "1 - 3" + d3-ease "1 - 3" + d3-interpolate "1 - 3" + d3-timer "1 - 3" -d3-zoom@^1.8.3: - version "1.8.3" - resolved "https://registry.yarnpkg.com/d3-zoom/-/d3-zoom-1.8.3.tgz#b6a3dbe738c7763121cd05b8a7795ffe17f4fc0a" - integrity sha512-VoLXTK4wvy1a0JpH2Il+F2CiOhVu7VRXWF5M/LroMIh3/zBAC3WAt7QoIvPibOavVo20hN6/37vwAsdBejLyKQ== +d3-zoom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-zoom/-/d3-zoom-3.0.0.tgz#d13f4165c73217ffeaa54295cd6969b3e7aee8f3" + integrity sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw== dependencies: - d3-dispatch "1" - d3-drag "1" - d3-interpolate "1" - d3-selection "1" - d3-transition "1" + d3-dispatch "1 - 3" + d3-drag "2 - 3" + d3-interpolate "1 - 3" + d3-selection "2 - 3" + d3-transition "2 - 3" d@1, d@^1.0.1: version "1.0.1" @@ -8801,14 +8797,14 @@ hyphenate-style-name@^1.0.1, hyphenate-style-name@^1.0.2: resolved "https://registry.yarnpkg.com/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz#691879af8e220aea5750e8827db4ef62a54e361d" integrity sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ== -iconv-lite@0.4, iconv-lite@0.4.24, iconv-lite@^0.4.17: +iconv-lite@0.4.24, iconv-lite@^0.4.17: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== dependencies: safer-buffer ">= 2.1.2 < 3" -iconv-lite@^0.6.2: +iconv-lite@0.6, iconv-lite@^0.6.2: version "0.6.3" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== @@ -9036,6 +9032,11 @@ internal-slot@^1.0.3: has "^1.0.3" side-channel "^1.0.4" +"internmap@1 - 2": + version "2.0.3" + resolved "https://registry.yarnpkg.com/internmap/-/internmap-2.0.3.tgz#6685f23755e43c524e251d29cbc97248e3061009" + integrity sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg== + interpret@^1.0.0: version "1.4.0" resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" From c708f5b2503216ca25b86401ed39f8909f9e7fae Mon Sep 17 00:00:00 2001 From: "joohee.moon" Date: Wed, 14 Dec 2022 18:04:46 +0900 Subject: [PATCH 04/23] =?UTF-8?q?[#5209]=20[WS]=20=EB=8D=B0=EC=9D=B4?= =?UTF-8?q?=ED=84=B0=20=EB=B6=84=EC=84=9D=EC=97=90=20=EC=83=88=EB=A1=9C?= =?UTF-8?q?=EC=9A=B4=20=EA=B8=B0=EB=8A=A5(=EC=82=B0=EC=A0=90=EB=8F=84=20?= =?UTF-8?q?=ED=96=89=EB=A0=AC,=20=EC=B0=A8=ED=8A=B8=20=ED=81=AC=EA=B2=8C?= =?UTF-8?q?=20=EB=B3=B4=EA=B8=B0=20=EB=93=B1)=EC=9D=84=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80=20-=20=EB=A7=88=ED=81=AC=EC=97=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entry/images/IconArrowRightChartList.svg | 1 + src/assets/entry/images/IconButtonZoomIn.svg | 1 + src/assets/entry/images/IconButtonZoomOut.svg | 1 + src/assets/entry/images/ImgTableNoResult.svg | 1 + .../entry/images/icon_chart_list_sel01.svg | 1 + .../entry/images/icon_chart_list_sel02.svg | 1 + .../entry/images/icon_chart_list_sel03.svg | 1 + .../entry/images/icon_chart_list_sel04.svg | 1 + .../entry/images/icon_chart_list_sel05.svg | 1 + .../entry/images/icon_chart_list_sel06.svg | 1 + .../entry/images/icon_chart_sel06_off.svg | 1 + .../entry/images/icon_chart_sel06_on.svg | 1 + .../entry/images/icon_chart_sel07_off.svg | 1 + ...hart_sel05.svg => icon_chart_sel07_on.svg} | 0 src/assets/entry/scss/common/_tooltip.scss | 50 +- .../entry/scss/components/_TableChart.scss | 732 ++--- .../entry/scss/components/_TableSummary.scss | 587 ++-- src/components/ai_layout/TableChart.jsx | 2598 ++++++++++++----- src/components/ai_layout/TableSummary.jsx | 1077 ++++--- .../chart/SelectChartDropdown.jsx | 2 +- src/stories/index.js | 10 +- 21 files changed, 2903 insertions(+), 2166 deletions(-) create mode 100644 src/assets/entry/images/IconArrowRightChartList.svg create mode 100644 src/assets/entry/images/IconButtonZoomIn.svg create mode 100644 src/assets/entry/images/IconButtonZoomOut.svg create mode 100644 src/assets/entry/images/ImgTableNoResult.svg create mode 100644 src/assets/entry/images/icon_chart_list_sel01.svg create mode 100644 src/assets/entry/images/icon_chart_list_sel02.svg create mode 100644 src/assets/entry/images/icon_chart_list_sel03.svg create mode 100644 src/assets/entry/images/icon_chart_list_sel04.svg create mode 100644 src/assets/entry/images/icon_chart_list_sel05.svg create mode 100644 src/assets/entry/images/icon_chart_list_sel06.svg create mode 100644 src/assets/entry/images/icon_chart_sel06_off.svg create mode 100644 src/assets/entry/images/icon_chart_sel06_on.svg create mode 100644 src/assets/entry/images/icon_chart_sel07_off.svg rename src/assets/entry/images/{icon_chart_sel05.svg => icon_chart_sel07_on.svg} (100%) diff --git a/src/assets/entry/images/IconArrowRightChartList.svg b/src/assets/entry/images/IconArrowRightChartList.svg new file mode 100644 index 00000000..a197ccb4 --- /dev/null +++ b/src/assets/entry/images/IconArrowRightChartList.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/entry/images/IconButtonZoomIn.svg b/src/assets/entry/images/IconButtonZoomIn.svg new file mode 100644 index 00000000..400f2267 --- /dev/null +++ b/src/assets/entry/images/IconButtonZoomIn.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/entry/images/IconButtonZoomOut.svg b/src/assets/entry/images/IconButtonZoomOut.svg new file mode 100644 index 00000000..790f093a --- /dev/null +++ b/src/assets/entry/images/IconButtonZoomOut.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/entry/images/ImgTableNoResult.svg b/src/assets/entry/images/ImgTableNoResult.svg new file mode 100644 index 00000000..dada57e2 --- /dev/null +++ b/src/assets/entry/images/ImgTableNoResult.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/entry/images/icon_chart_list_sel01.svg b/src/assets/entry/images/icon_chart_list_sel01.svg new file mode 100644 index 00000000..251e49f6 --- /dev/null +++ b/src/assets/entry/images/icon_chart_list_sel01.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/entry/images/icon_chart_list_sel02.svg b/src/assets/entry/images/icon_chart_list_sel02.svg new file mode 100644 index 00000000..d8e172a4 --- /dev/null +++ b/src/assets/entry/images/icon_chart_list_sel02.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/entry/images/icon_chart_list_sel03.svg b/src/assets/entry/images/icon_chart_list_sel03.svg new file mode 100644 index 00000000..f27fc90d --- /dev/null +++ b/src/assets/entry/images/icon_chart_list_sel03.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/entry/images/icon_chart_list_sel04.svg b/src/assets/entry/images/icon_chart_list_sel04.svg new file mode 100644 index 00000000..d26847eb --- /dev/null +++ b/src/assets/entry/images/icon_chart_list_sel04.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/entry/images/icon_chart_list_sel05.svg b/src/assets/entry/images/icon_chart_list_sel05.svg new file mode 100644 index 00000000..c796695a --- /dev/null +++ b/src/assets/entry/images/icon_chart_list_sel05.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/entry/images/icon_chart_list_sel06.svg b/src/assets/entry/images/icon_chart_list_sel06.svg new file mode 100644 index 00000000..243dcbcf --- /dev/null +++ b/src/assets/entry/images/icon_chart_list_sel06.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/entry/images/icon_chart_sel06_off.svg b/src/assets/entry/images/icon_chart_sel06_off.svg new file mode 100644 index 00000000..e85d7ef7 --- /dev/null +++ b/src/assets/entry/images/icon_chart_sel06_off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/entry/images/icon_chart_sel06_on.svg b/src/assets/entry/images/icon_chart_sel06_on.svg new file mode 100644 index 00000000..3a3a266c --- /dev/null +++ b/src/assets/entry/images/icon_chart_sel06_on.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/entry/images/icon_chart_sel07_off.svg b/src/assets/entry/images/icon_chart_sel07_off.svg new file mode 100644 index 00000000..bc68daaf --- /dev/null +++ b/src/assets/entry/images/icon_chart_sel07_off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/entry/images/icon_chart_sel05.svg b/src/assets/entry/images/icon_chart_sel07_on.svg similarity index 100% rename from src/assets/entry/images/icon_chart_sel05.svg rename to src/assets/entry/images/icon_chart_sel07_on.svg diff --git a/src/assets/entry/scss/common/_tooltip.scss b/src/assets/entry/scss/common/_tooltip.scss index c743b657..2aef8a28 100644 --- a/src/assets/entry/scss/common/_tooltip.scss +++ b/src/assets/entry/scss/common/_tooltip.scss @@ -791,22 +791,20 @@ content: ''; } } -// 가로형 툴팁 박스 -.vertical_tooltip { - position: absolute; - left: 46px; - top: 0; +// 그래프 +.tooltip_graph_box { + @include PositionLT(absolute, 0, 54px); width: 393px; padding: 16px 0 14px 4px; box-sizing: border-box; background-color: #fff; + border-radius: 6px; border: 1px solid #e2e2e2; box-shadow: 0 1px 6px 0 rgba(124, 124, 124, 0.06); font-size: 14px; color: #2c313d; line-height: 15px; - border-radius: 6px; .graph_list { overflow: hidden; } @@ -816,13 +814,18 @@ margin-left: 0; a { display: block; - font-size: 14px; + font-size: 12px; font-weight: 600; color: #2c313d; letter-spacing: -0.5px; text-align: center; white-space: nowrap; line-height: 15px; + span { + display: block; + font-size: 10px; + color: #555; + } } a:before { display: block; @@ -853,25 +856,26 @@ &.histogram a:before { background-image: url('#{$imageDir}/icon_chart_sel05_on.svg'); } + &.scatter_matrix a:before { + background-image: url('#{$imageDir}/icon_chart_sel06_on.svg'); + } } .arr { - position: absolute; - top: 4px; - right: 100%; + @include PositionLB(absolute, 12px, 100%); overflow: hidden; - width: 20px; - height: 30px; - i { - position: absolute; - left: 6px; - top: 0; - width: 14px; - height: 14px; - background-color: #fff; - border: 1px solid #e2e2e2; - box-shadow: 0 1px 6px 0 rgba(124, 124, 124, 0.06); - transform: translate(50%, 50%) rotate(45deg); - } + width: 16px; + height: 14px; + } + .arr i { + position: absolute; + left: 50%; + top: 0; + width: 14px; + height: 14px; + background-color: #fff; + border: 1px solid #e2e2e2; + box-shadow: 0 1px 6px 0 rgba(124, 124, 124, 0.06); + transform: translate(-50%, 50%) rotate(45deg); } } diff --git a/src/assets/entry/scss/components/_TableChart.scss b/src/assets/entry/scss/components/_TableChart.scss index 522096c2..7d15b922 100644 --- a/src/assets/entry/scss/components/_TableChart.scss +++ b/src/assets/entry/scss/components/_TableChart.scss @@ -1,4 +1,39 @@ @charset "UTF-8"; + +$axis-size: 20px; + +.section_container { + &.zoom_in { + .aside, + .sheet_form_box .input { + display: none; + } + } + .sheet_form_box { + .btn_zoom_in { + display: inline-block; + width: 32px; + height: 32px; + margin: 1px 9px 0 0; + background: url('#{$imageDir}/IconButtonZoomIn.svg') no-repeat; + background-size: 32px auto; + vertical-align: top; + cursor: pointer; + &.active { + background-image: url('#{$imageDir}/IconButtonZoomOut.svg'); + } + } + } + .chart_wrap { + display: flex; + flex-direction: column; + -webkit-box-direction: normal; + -webkit-box-orient: vertical; + flex: 1 1 auto; + -ms-flex: 1 1 auto; + overflow: auto; + } +} .section_container.chart_container { flex-direction: row; .container_inner { @@ -99,9 +134,6 @@ .inner { display: -webkit-box; display: flex; - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - flex-direction: column; -webkit-box-flex: 1; flex: 1; position: relative; @@ -111,37 +143,38 @@ background-color: #f9f9f9; } .chart_navi { + flex: 0 0 auto; position: relative; - padding: 12px 16px; - border-bottom: 1px solid #e2e2e2; z-index: 10; + width: 64px; + padding: 10px 0; + border-right: 1px solid #e2e2e2; + background-color: #f9f9f9; } .add_link_box { - display: inline-block; + display: block; position: relative; width: 40px; height: 40px; - vertical-align: top; + margin: 12px auto 0; } .add_link_box .add_link { display: block; height: 40px; - background-image: url('#{$imageDir}/icon_chart_sel05.svg'); - vertical-align: top; + background-image: url('#{$imageDir}/icon_chart_sel07_on.svg'); cursor: pointer; } + .add_link_box .add_link.disabled { + background-image: url('#{$imageDir}/icon_chart_sel07_off.svg'); + } .chart_link { - display: inline-block; + display: block; width: 40px; height: 40px; - margin-left: 10px; + margin: 6px auto; background-size: 40px auto; - vertical-align: top; cursor: pointer; } - .chart_link:first-child { - margin-left: 0; - } .chart_link.bar { background-image: url('#{$imageDir}/icon_chart_sel01_on.svg'); } @@ -160,6 +193,9 @@ .chart_link.histogram { background-image: url('#{$imageDir}/icon_chart_sel05_on.svg'); } + .chart_link.scatter_matrix { + background-image: url('#{$imageDir}/icon_chart_sel06_on.svg'); + } .chart_link.bar.disabled { background-image: url('#{$imageDir}/icon_chart_sel01_off.svg'); } @@ -178,8 +214,8 @@ .chart_link.histogram.disabled { background-image: url('#{$imageDir}/icon_chart_sel05_off.svg'); } - .chart_link ~ .add_link_box { - margin-left: 12px; + .chart_link.scatter_matrix.disabled { + background-image: url('#{$imageDir}/icon_chart_sel06_off.svg'); } .chart_no_result { position: relative; @@ -201,10 +237,12 @@ .graph_box { position: relative; -webkit-box-flex: 1; - flex: 1 1; + flex: 1 1 auto; overflow: auto; + min-height: 370px; + padding: 30px; background-color: #fff; - padding-top: 30px; + box-sizing: border-box; .chart_area { svg { margin: auto; @@ -215,6 +253,103 @@ padding-top: 30px; padding-right: 230px; } + .graph_box.scatter_matrix { + padding-bottom: 30px + $axis-size; + padding-left: 30px + $axis-size; + .graph { + float: left; + position: relative; + } + &:after { + display: block; + clear: both; + content: ''; + } + .graph_title { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + } + .graph_title, + .axis_x, + .axis_y { + color: #555; + letter-spacing: -0.5px; + } + .axis_x, + .axis_y { + position: absolute; + overflow: hidden; + height: 20px; + font-size: 12px; + white-space: nowrap; + text-overflow: ellipsis; + } + .axis_x { + bottom: -($axis-size + 10px); + left: 50%; + max-width: 100%; + transform: translateX(-50%); + } + .axis_y { + display: block; + bottom: 0; + left: -($axis-size + 10px); + max-width: 30%; + transform-origin: 0 0; + transform: rotate(-90deg); + } + &.type_2 { + .graph { + width: 50%; + height: 50%; + } + .graph_title { + font-size: 18px; + } + .axis_x, + .axis_y { + font-size: 12px; + } + } + &.type_3 { + .graph { + width: 33.3333%; + height: 33.3333%; + } + .graph_title { + font-size: 18px; + } + } + &.type_4 { + .graph { + width: 25%; + height: 25%; + } + .graph_title { + font-size: 16px; + } + } + &.type_5 { + .graph { + width: 20%; + height: 20%; + } + .graph_title { + font-size: 14px; + } + } + &.type_6 { + .graph { + width: 16.6666%; + height: 16.6666%; + } + .graph_title { + font-size: 12px; + } + } + } } .form_box { padding: 18px 16px; @@ -527,8 +662,10 @@ flex: 1; position: relative; overflow: hidden; - background-color: #fff; border-radius: 0 0 6px 0; + &:not(.table_no_result_content) { + background-color: #fff; + } .caution_dsc { position: absolute; left: 50%; @@ -541,541 +678,50 @@ line-height: 18px; } } -} - - - - - - - - -// 데이터 차트. -.popup_wrap .pop_content.chart_content { - .section_cont { - background-color: #fff; - padding: 0 27px 27px; - } - .content { - display: -webkit-box; - display: flex; - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - flex-direction: column; - -webkit-box-flex: 1; - flex: 1; - position: relative; - overflow: hidden; - background-color: #fff; - border-radius: 0 0 6px 0; - .caution_dsc { + .table_no_result_content { + .inner { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); - font-size: 16px; - font-weight: 600; - color: $DefaultBlue; - text-align: center; - line-height: 18px; + min-width: 523px; + font-family: NanumGothicOTF; } - } - .sheet_form_box { - padding: 18px 0; - .input { - box-sizing: border-box; - width: 100%; - height: 40px; - padding: 0 16px; - border: 1px solid #e2e2e2; - border-radius: 4px; - outline: 0; - font-size: 14px; + .dsc_title { + font-size: 18px; font-weight: 600; - color: #2c313d; - letter-spacing: -0.33px; - } - .btn_box { - position: relative; - overflow: hidden; - margin-top: 12px; + color: #4f80ff; + text-align: center; + letter-spacing: -0.42px; + &:before { + display: inline-block; + width: 57px; + height: 50px; + margin-right: 9px; + background-image: url('#{$imageDir}/ImgTableNoResult.svg'); + background-size: 57px auto; + vertical-align: middle; + content: ''; + } } - .tab { - display: inline-block; - overflow: hidden; - box-sizing: border-box; - border: 1px solid #4f80ff; - border-radius: 4px; - vertical-align: top; - & > a { - float: left; - overflow: hidden; - width: 70px; - height: 32px; - border-left: 1px solid #4f80ff; + .dsc_list { + padding: 27px 24px 22px; + border-radius: 6px; + border: 1px solid #d6e9f4; + background-color: #fff; + color: #555; + dt { + margin-bottom: 14px; font-size: 14px; font-weight: 600; - color: #4f80ff; - text-align: center; - line-height: 32px; - cursor: pointer; - } - & > a:first-of-type { - border-left: 0; + letter-spacing: -0.32px; } - .active { - color: #fff; - background-color: #4f80ff; + dd { + font-size: 12px; + line-height: 20px; + letter-spacing: -0.28px; } } - .btn_save { - position: absolute; - overflow: hidden; - box-sizing: border-box; - top: 0; - right: 0; - height: 34px; - padding: 0 18px; - border: 1px solid #e2e2e2; - border-radius: 4px; - font-size: 14px; - font-weight: 600; - color: #555; - text-align: center; - line-height: 34px; - cursor: pointer; - } - } - .chart_box { - display: -webkit-box; - display: flex; - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - flex-direction: column; - -webkit-box-flex: 1; - flex: 1; - position: relative; - overflow: hidden; - .inner { - display: -webkit-box; - display: flex; - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - flex-direction: column; - -webkit-box-flex: 1; - flex: 1; - position: relative; - overflow: hidden; - border: 1px solid #e2e2e2; - border-radius: 4px; - background-color: #f9f9f9; - } - .chart_navi { - position: relative; - padding: 12px 16px; - border-bottom: 1px solid #e2e2e2; - z-index: 10; - } - .add_link_box { - display: inline-block; - position: relative; - width: 40px; - height: 40px; - vertical-align: top; - } - .add_link_box .add_link { - display: block; - height: 40px; - background-image: url('#{$imageDir}/icon_chart_sel05.svg'); - vertical-align: top; - cursor: pointer; - } - .chart_link { - display: inline-block; - width: 40px; - height: 40px; - margin-left: 10px; - background-size: 40px auto; - vertical-align: top; - cursor: pointer; - } - .chart_link:first-child { - margin-left: 0; - } - .chart_link.bar { - background-image: url('#{$imageDir}/icon_chart_sel01_on.svg'); - } - .chart_link.line { - background-image: url('#{$imageDir}/icon_chart_sel02_on.svg'); - } - .chart_link.pie { - background-image: url('#{$imageDir}/icon_chart_sel03_on.svg'); - } - .chart_link.scatter { - background-image: url('#{$imageDir}/icon_chart_sel04_on.svg'); - } - .chart_link.scatterGrid { - background-image: url('#{$imageDir}/icon_chart_sel04_on.svg'); - } - .chart_link.histogram { - background-image: url('#{$imageDir}/icon_chart_sel05_on.svg'); - } - .chart_link.bar.disabled { - background-image: url('#{$imageDir}/icon_chart_sel01_off.svg'); - } - .chart_link.line.disabled { - background-image: url('#{$imageDir}/icon_chart_sel02_off.svg'); - } - .chart_link.pie.disabled { - background-image: url('#{$imageDir}/icon_chart_sel03_off.svg'); - } - .chart_link.scatter.disabled { - background-image: url('#{$imageDir}/icon_chart_sel04_off.svg'); - } - .chart_link.scatterGrid.disabled { - background-image: url('#{$imageDir}/icon_chart_sel04_off.svg'); - } - .chart_link.histogram.disabled { - background-image: url('#{$imageDir}/icon_chart_sel05_off.svg'); - } - .chart_link ~ .add_link_box { - margin-left: 12px; - } - .chart_no_result { - position: relative; - -webkit-box-flex: 1; - flex: 1 1; - overflow: auto; - .dsc { - position: absolute; - left: 50%; - top: 50%; - font-size: 16px; - font-weight: 600; - color: #4f80ff; - text-align: center; - transform: translate(-50%, -50%); - line-height: 18px; - } - } - .graph_box { - position: relative; - -webkit-box-flex: 1; - flex: 1 1; - overflow: auto; - background-color: #fff; - padding-top: 30px; - .chart_area { - svg { - margin: auto; - } - } - } - .graph_box.pie { - padding-top: 30px; - padding-right: 230px; - } - } - .form_box { - padding: 18px 16px; - border-bottom: 1px solid #e2e2e2; - .input_inner { - position: relative; - } - .input_inner:after { - display: block; - clear: both; - content: ''; - } - .input_inner .tit_label { - float: left; - width: 70px; - font-size: 14px; - font-weight: 600; - color: #2c313d; - letter-spacing: -0.33px; - vertical-align: top; - line-height: 40px; - } - .input_box { - overflow: hidden; - padding-right: 110px; - } - .input_inner input[type='text'] { - box-sizing: border-box; - width: 100%; - height: 40px; - padding: 0 14px; - border: 1px solid #e2e2e2; - border-radius: 4px; - background-color: #fff; - font-size: 14px; - font-weight: 600; - color: #2c313d; - letter-spacing: -0.33px; - } - .input_inner .del_btn { - position: absolute; - right: 0; - top: 0; - box-sizing: border-box; - width: 94px; - height: 40px; - border: 1px solid #e2e2e2; - border-radius: 4px; - background-color: #fff; - font-size: 14px; - font-weight: 600; - color: #555; - letter-spacing: -0.33px; - text-align: center; - line-height: 40px; - cursor: pointer; - } - .input_inner .sort_box { - position: absolute; - right: 0; - top: 4px; - cursor: pointer; - } - .input_inner .sort_box a { - display: inline-block; - position: relative; - box-sizing: border-box; - width: 94px; - height: 32px; - border: 1px solid #e2e2e2; - border-radius: 4px 0 0 4px; - background-color: #fff; - font-size: 14px; - font-weight: 600; - color: #728896; - text-align: center; - letter-spacing: -0.33px; - line-height: 32px; - vertical-align: top; - } - .input_inner .sort_box a.active { - border-color: #4f80ff; - color: #4f80ff; - z-index: 10; - } - .input_inner .sort_box a + a { - border-radius: 0 4px 4px 0; - margin-left: -1px; - } - .input_inner + .input_inner { - margin-top: 12px; - } - .select_group { - float: left; - margin-left: 22px; - } - .select_group:first-of-type { - margin-left: 0; - } - .select_group:first-of-type .tit_label { - width: 70px; - } - .select_group:first-of-type .pop_selectbox { - margin-left: 0; - } - .select_group .tit_label { - width: auto; - } - .select_group .pop_selectbox { - display: inline-block; - vertical-align: top; - margin-left: 12px; - } - .select_group .pop_selectbox .select_link { - width: auto; - font-size: 14px; - } - .select_group .pop_selectbox .tooltip_box { - top: 57px; - width: auto; - } - .select_group .pop_selectbox .tooltip_inner { - height: 248px; - overflow-y: auto; - } - .select_group .check_inner { - position: relative; - display: block; - overflow: hidden; - padding: 16px 0 14px; - font-size: 14px; - font-weight: 600; - color: #2c313d; - line-height: 16px; - } - .select_group .check_inner .text { - padding-left: 8px; - } - .select_group .check_inner > span { - display: inline-block; - width: 16px; - height: 16px; - background-image: url('#{$imageDir}/ico_unchecked.svg'); - background-size: 16px auto; - vertical-align: top; - } - .select_group .check_inner input[type='checkbox']:checked + span { - background-image: url('#{$imageDir}/ico_checked.svg'); - } - .select_group .cnt_box { - display: inline-block; - position: relative; - overflow: hidden; - width: 106px; - height: 32px; - padding: 0 30px; - margin: 4px 0 0 12px; - border: 1px solid #e2e2e2; - border-radius: 4px; - background-color: #fff; - vertical-align: top; - } - .select_group .cnt_box .btn { - position: absolute; - left: 0; - top: 0; - width: 30px; - height: 30px; - border-right: 1px solid #e2e2e2; - background-color: #f2f2f2; - } - .select_group .cnt_box .btn:before { - position: absolute; - left: 0; - right: 0; - top: 0; - bottom: 0; - background-image: url('#{$imageDir}/IconButtonMinus.svg'); - background-size: 11px auto; - background-repeat: no-repeat; - background-position: 50% 50%; - content: ''; - } - .select_group .cnt_box .btn ~ .btn { - left: auto; - right: 0; - border: 0; - border-left: 1px solid #e2e2e2; - } - .select_group .cnt_box .btn ~ .btn:before { - background-image: url('#{$imageDir}/IconButtonPlus.svg'); - background-size: 10px auto; - } - .select_group .cnt_box .input { - display: block; - height: 30px; - padding: 0; - border: 0; - font-size: 14px; - font-weight: 600; - color: #2c313d; - text-align: center; - letter-spacing: -0.33px; - } - .select_group .cnt_width { - display: inline-block; - position: relative; - overflow: hidden; - width: 70px; - height: 32px; - margin: 4px 0 0 12px; - border: 1px solid #e2e2e2; - border-radius: 4px; - background-color: #fff; - vertical-align: top; - .input { - display: block; - height: 30px; - padding: 0; - border: 0; - font-size: 14px; - font-weight: 600; - color: #2c313d; - text-align: center; - letter-spacing: -0.33; - } - &.disabled { - background-color: #f9f9f9; - .input, - .input:read-only { - color: #cbcbcb; - background-color: #f9f9f9; - } - } - } - .select_group .cnt_sort { - display: inline-block; - cursor: pointer; - } - .select_group .cnt_width { - display: inline-block; - position: relative; - overflow: hidden; - width: 70px; - height: 32px; - margin: 4px 0 0 12px; - border: 1px solid #e2e2e2; - border-radius: 4px; - background-color: #fff; - vertical-align: top; - .input { - display: block; - height: 30px; - padding: 0; - border: 0; - font-size: 14px; - font-weight: 600; - color: #2c313d; - text-align: center; - letter-spacing: -0.33; - } - &.disabled { - background-color: #f9f9f9; - .input, - .input:read-only { - color: #cbcbcb; - background-color: #f9f9f9; - } - } - } - .select_group .cnt_sort { - display: inline-block; - margin: 4px 0 0 12px; - vertical-align: top; - } - .select_group .cnt_sort a { - display: inline-block; - position: relative; - box-sizing: border-box; - width: 112px; - height: 32px; - border: 1px solid #e2e2e2; - border-radius: 4px 0 0 4px; - background-color: #fff; - font-size: 14px; - font-weight: 600; - color: #728896; - text-align: center; - letter-spacing: -0.33px; - line-height: 32px; - vertical-align: top; - } - .select_group .cnt_sort a.active { - border-color: #4f80ff; - color: #4f80ff; - z-index: 10; - } - .select_group .cnt_sort a + a { - border-radius: 0 4px 4px 0; - margin-left: -1px; - } } } diff --git a/src/assets/entry/scss/components/_TableSummary.scss b/src/assets/entry/scss/components/_TableSummary.scss index d4f99318..d9a73b49 100644 --- a/src/assets/entry/scss/components/_TableSummary.scss +++ b/src/assets/entry/scss/components/_TableSummary.scss @@ -86,6 +86,10 @@ cursor: pointer; } } + .chart_wrap { + overflow: auto; + padding: 0 18px 24px; + } .chart_box { display: -webkit-box; display: flex; @@ -97,17 +101,147 @@ position: relative; overflow: hidden; .inner { - position: relative; + display: -webkit-box; + display: flex; -webkit-box-flex: 1; flex: 1 1; - overflow: auto; + overflow: hidden; + position: relative; border: 1px solid #e2e2e2; - padding: 0 18px 24px; border-radius: 4px; background-color: #f9f9f9; + & > .chart_navi { + flex: 0 0 auto; + position: relative; + z-index: 10; + width: 64px; + padding: 10px 0; + border-right: 1px solid #e2e2e2; + background-color: #f9f9f9; + .add_link_box { + display: block; + position: relative; + width: 40px; + height: 40px; + margin: 12px auto 0; + } + .add_link_box .add_link { + display: block; + height: 40px; + background-image: url('#{$imageDir}/icon_chart_sel07_on.svg'); + cursor: pointer; + } + .add_link_box .add_link.disabled { + background-image: url('#{$imageDir}/icon_chart_sel07_off.svg'); + } + .chart_link { + display: block; + width: 40px; + height: 40px; + margin: 6px auto; + background-size: 40px auto; + cursor: pointer; + } + .chart_link.bar { + background-image: url('#{$imageDir}/icon_chart_sel01_on.svg'); + } + .chart_link.line { + background-image: url('#{$imageDir}/icon_chart_sel02_on.svg'); + } + .chart_link.pie { + background-image: url('#{$imageDir}/icon_chart_sel03_on.svg'); + } + .chart_link.scatter { + background-image: url('#{$imageDir}/icon_chart_sel04_on.svg'); + } + .chart_link.scatterGrid { + background-image: url('#{$imageDir}/icon_chart_sel04_on.svg'); + } + .chart_link.histogram { + background-image: url('#{$imageDir}/icon_chart_sel05_on.svg'); + } + .chart_link.scatter_matrix { + background-image: url('#{$imageDir}/icon_chart_sel06_on.svg'); + } + .chart_link.bar.disabled { + background-image: url('#{$imageDir}/icon_chart_sel01_off.svg'); + } + .chart_link.line.disabled { + background-image: url('#{$imageDir}/icon_chart_sel02_off.svg'); + } + .chart_link.pie.disabled { + background-image: url('#{$imageDir}/icon_chart_sel03_off.svg'); + } + .chart_link.scatter.disabled { + background-image: url('#{$imageDir}/icon_chart_sel04_off.svg'); + } + .chart_link.scatterGrid.disabled { + background-image: url('#{$imageDir}/icon_chart_sel04_off.svg'); + } + .chart_link.histogram.disabled { + background-image: url('#{$imageDir}/icon_chart_sel05_off.svg'); + } + .chart_link.scatter_matrix.disabled { + background-image: url('#{$imageDir}/icon_chart_sel06_off.svg'); + } + } } .category_box { margin-top: 24px; + .chart_link { + display: block; + height: 36px; + padding: 0 12px; + line-height: 36px; + .title { + margin: 0 14px 0 6px; + font-family: NanumGothicOTF; + font-size: 12px; + color: #555550; + letter-spacing: -0.53px; + } + &:before, + &:after { + display: inline-block; + vertical-align: middle; + content: ''; + } + &:before { + height: 16px; + background-size: auto 16px; + background-repeat: no-repeat; + } + &:after { + width: 4px; + height: 7px; + background: url('#{$imageDir}/IconArrowRightChartList.svg') no-repeat; + background-size: 4px auto; + } + &.bar:before { + width: 22px; + background-image: url('#{$imageDir}/icon_chart_list_sel01.svg'); + } + &.line:before { + width: 20px; + background-image: url('#{$imageDir}/icon_chart_list_sel02.svg'); + } + &.pie:before { + width: 20px; + background-image: url('#{$imageDir}/icon_chart_list_sel03.svg'); + } + &.scatter:before { + width: 16px; + background-image: url('#{$imageDir}/icon_chart_list_sel04.svg'); + } + &.histogram:before { + width: 20px; + background-image: url('#{$imageDir}/icon_chart_list_sel05.svg'); + } + &.scatter_matrix:before { + width: 20px; + background-image: url('#{$imageDir}/icon_chart_list_sel06.svg'); + } + } } .category_box + .category_box { margin-top: 24px; @@ -115,392 +249,52 @@ border-top: 1px solid #e2e2e2; } .table_sjt { - display: inline-block; - position: relative; - vertical-align: top; - } - .table_sjt > strong { - font-size: 16px; - font-weight: 600; - color: #2c313d; - letter-spacing: -0.57px; - line-height: 16px; - } - .table_sjt .q_box { - display: inline-block; - position: relative; - margin-top: 1px; - vertical-align: top; - } - .table_sjt .ico_q { - display: block; - width: 16px; - height: 16px; - margin-left: 8px; - background: url('#{$imageDir}/ico_layer_q.svg') no-repeat; - vertical-align: top; - } - .table_sjt .title_dsc { - display: inline-block; - padding-left: 16px; - font-size: 14px; - color: #2c313d; - letter-spacing: -0.5px; - line-height: 20px; - } - .table_sjt .tooltip_box { - width: 464px; - left: -41px; - top: 28px; - z-index: 10; - } - .table_sjt .tooltip_box .arr i { - background-color: #f5fbff; - } - .table_sjt .tooltip_box .tooltip_inner { - padding: 17px 12px 0; - background-color: #f5fbff; - border-radius: 6px; - } - .table_sjt .tooltip_box .sjt { display: block; - font-size: 14px; - font-weight: 600; - line-height: 20px; - } - .table_sjt .tooltip_box .tooltip_list { - overflow: hidden; - margin-top: 8px; - li { - overflow: hidden; - padding: 10px 0; - border-top: 1px solid #d6e9f4; - font-size: 14px; - letter-spacing: 0; - line-height: 20px; - } - li:first-child { - border-top: 0; - } - .tit { - float: left; - margin-right: 10px; - font-weight: 600; - } - .dsc { - white-space: pre; - overflow: hidden; - } - } - .table_info { - overflow: hidden; - margin-top: 20px; - } - .table_info li { - float: left; position: relative; - padding: 0 9px 0 8px; - font-size: 12px; - color: #2c313d; - line-height: 14px; - } - .table_info li:after { - position: absolute; - left: 0; - top: 1px; - width: 1px; - height: 10px; - background-color: #979797; - content: ''; - } - .table_info li:first-of-type { - padding-left: 0; - } - .table_info li:first-of-type:after { - display: none; - } - .table_box { - margin-top: 20px; - overflow-y: auto; - border: 1px solid #cbcbcb; - border-width: 1px 0; - max-height: 221px; - } - .table { - width: 100%; - table-layout: fixed; - border-collapse: collapse; - font-size: 14px; - font-weight: 600; - letter-spacing: -0.5px; line-height: 20px; - } - .table thead th { - border-bottom: 1px solid #cbcbcb; - } - .table thead th, - .table tbody th { - font-weight: 600; - height: 36px; - background-color: #f4f4f4; - } - .table tbody th { - border-top: 1px solid #e2e2e2; - } - .table tbody td { - height: 36px; - border-top: 1px solid #f4f4f4; - background-color: #fff; - font-weight: 600; - text-align: center; - } - .table .thead_tit { - position: relative; - height: 36px; - line-height: 36px; - } - .table .thead_tit:before { - position: absolute; - left: 0; - top: 50%; - width: 1px; - height: 20px; - background-color: #cbcbcb; - transform: translateY(-50%); - content: ''; - } - .table thead th:first-of-type .thead_tit:before, - .table tbody th .thead_tit:before { - display: none; - } - .table tbody th .thead_tit:before { - display: none; - } - .table tbody tr:first-of-type th, - .table tbody tr:first-of-type td { - border-top: 0; - } - .chart_list { - margin: -12px 0 0 -12px; - } - .chart_list:after { - display: block; - clear: both; - content: ''; - } - .chart_list li { - float: left; - position: relative; - width: 217px; - height: 128px; - margin: 12px 0 0 12px; - border-radius: 6px; - background-color: #fff; - background-size: cover; - background-repeat: no-repeat; - cursor: pointer; - } - .chart_list li:before { - position: absolute; - left: 0; - right: 0; - top: 0; - bottom: 0; - border-radius: 6px; - border: 1px solid #e2e2e2; - content: ''; - } - .chart_list li:hover:before, - .chart_list li.active:before { - border: 2px solid #4f80ff; - } - .chart_list li img { - vertical-align: top; - } - .chart_list li.bar .chart_area, - .chart_list li.line .chart_area, - .chart_list li.histogram .chart_area, - .chart_list li.scatter .chart_area { - padding-top: 9px; - } - .chart_list li.pie .chart_area { - padding-left: 15px; - } - .chart_list .data_add_box { - height: 106px; - padding-top: 12px; - border: 0; - text-align: center; - p { - padding-top: 6px; - line-height: 88px; - } - } - } -} - - - -// 데이터 요약. -.popup_wrap .pop_content.summary_content { - .section_cont { - background-color: #fff; - padding: 0 27px 27px; - } - .content { - display: -webkit-box; - display: flex; - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - flex-direction: column; - -webkit-box-flex: 1; - flex: 1; - position: relative; - overflow: hidden; - background-color: #fff; - border-radius: 0 0 6px 0; - .caution_dsc { - position: absolute; - left: 50%; - top: 50%; - transform: translate(-50%, -50%); - font-size: 16px; - font-weight: 600; - color: $DefaultBlue; - text-align: center; - line-height: 18px; - } - } - .sheet_form_box { - padding: 18px 0; - .input { - box-sizing: border-box; - width: 100%; - height: 40px; - padding: 0 16px; - border: 1px solid #e2e2e2; - border-radius: 4px; - outline: 0; - font-size: 14px; - font-weight: 600; - color: #2c313d; - letter-spacing: -0.33px; - } - .btn_box { - position: relative; - overflow: hidden; - margin-top: 12px; - } - .tab { - display: inline-block; - overflow: hidden; - border: 1px solid #4f80ff; - border-radius: 4px; - vertical-align: top; - & > a { - float: left; - overflow: hidden; - width: 70px; - height: 32px; - border-left: 1px solid #4f80ff; - font-size: 14px; - font-weight: 600; - color: #4f80ff; - text-align: center; - line-height: 32px; - cursor: pointer; + & + .table_sjt { + margin-top: 18px; } - & > a:first-of-type { - border-left: 0; + &:after { + display: block; + clear: both; + content: ''; } - .active { - color: #fff; - background-color: #4f80ff; - } - } - .btn_save { - position: absolute; - overflow: hidden; - box-sizing: border-box; - top: 0; - right: 0; - height: 34px; - padding: 0 18px; - border: 1px solid #e2e2e2; - border-radius: 4px; - font-size: 14px; - font-weight: 600; - color: #555; - text-align: center; - line-height: 34px; - cursor: pointer; - } - } - .chart_box { - display: -webkit-box; - display: flex; - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - flex-direction: column; - -webkit-box-flex: 1; - flex: 1; - position: relative; - overflow: hidden; - .inner { - position: relative; - -webkit-box-flex: 1; - flex: 1 1; - overflow: auto; - border: 1px solid #e2e2e2; - padding: 0 18px 24px; - border-radius: 4px; - background-color: #f9f9f9; - } - .category_box { - margin-top: 24px; - } - .category_box + .category_box { - margin-top: 24px; - padding-top: 24px; - border-top: 1px solid #e2e2e2; - } - .table_sjt { - display: inline-block; - position: relative; - vertical-align: top; } .table_sjt > strong { + float: left; font-size: 16px; font-weight: 600; color: #2c313d; letter-spacing: -0.57px; - line-height: 16px; + &:nth-last-child(2) { + min-width: 70px; + } } .table_sjt .q_box { - display: inline-block; + float: left; position: relative; - margin-top: 1px; - vertical-align: top; + margin: 1px 10px 0 0; } .table_sjt .ico_q { display: block; width: 16px; height: 16px; - margin-left: 8px; + margin-left: 4px; background: url('#{$imageDir}/ico_layer_q.svg') no-repeat; - vertical-align: top; + } + .table_sjt .title_dsc, + .table_sjt .dsc_list { + overflow: hidden; + letter-spacing: -0.5px; } .table_sjt .title_dsc { - display: inline-block; - padding-left: 16px; - font-size: 14px; + font-size: 16px; color: #2c313d; - letter-spacing: -0.5px; - line-height: 20px; } .table_sjt .tooltip_box { width: 464px; - left: -41px; + left: -45px; top: 28px; z-index: 10; } @@ -542,6 +336,16 @@ overflow: hidden; } } + .table_sjt .dsc_list li { + font-size: 14px; + color: #555; + line-height: 22px; + &:before { + display: inline-block; + vertical-align: middle; + content: '•'; + } + } .table_info { overflow: hidden; margin-top: 20px; @@ -560,7 +364,7 @@ top: 1px; width: 1px; height: 10px; - background-color: #979797; + background-color: #e2e2e2; content: ''; } .table_info li:first-of-type { @@ -575,6 +379,9 @@ border: 1px solid #cbcbcb; border-width: 1px 0; max-height: 221px; + & + .table_sjt { + margin-top: 24px; + } } .table { width: 100%; @@ -631,7 +438,7 @@ border-top: 0; } .chart_list { - margin: -12px 0 0 -12px; + margin-left: -8px } .chart_list:after { display: block; @@ -641,49 +448,19 @@ .chart_list li { float: left; position: relative; - width: 217px; - height: 128px; - margin: 12px 0 0 12px; + margin: 8px 0 0 8px; border-radius: 6px; background-color: #fff; - background-size: cover; - background-repeat: no-repeat; cursor: pointer; - } - .chart_list li:before { - position: absolute; - left: 0; - right: 0; - top: 0; - bottom: 0; - border-radius: 6px; - border: 1px solid #e2e2e2; - content: ''; - } - .chart_list li:hover:before, - .chart_list li.active:before { - border: 2px solid #4f80ff; - } - .chart_list li img { - vertical-align: top; - } - .chart_list li.bar .chart_area, - .chart_list li.line .chart_area, - .chart_list li.histogram .chart_area, - .chart_list li.scatter .chart_area { - padding-top: 9px; - } - .chart_list li.pie .chart_area { - padding-left: 15px; - } - .chart_list .data_add_box { - height: 106px; - padding-top: 12px; - border: 0; - text-align: center; - p { - padding-top: 6px; - line-height: 88px; + &:before { + position: absolute; + left: 0; + right: 0; + top: 0; + bottom: 0; + border-radius: 6px; + border: 1px solid #e2e2e2; + content: ''; } } } diff --git a/src/components/ai_layout/TableChart.jsx b/src/components/ai_layout/TableChart.jsx index b60d0242..916b752f 100644 --- a/src/components/ai_layout/TableChart.jsx +++ b/src/components/ai_layout/TableChart.jsx @@ -1,11 +1,13 @@ import React, { Component, Fragment } from 'react'; +import classnames from 'classnames'; import { connect } from 'react-redux'; import { visibleAction } from '../../actions/index'; import Styles from '../../assets/entry/scss/popup.scss'; class TableChart extends Component { render () { - const { ChartState, NoResultText } = this.props; + // [D] ScatterMatrixGraphType : 마크업 확인용 + const { ChartState, NoResultText, ScatterMatrixGraphType2, ScatterMatrixGraphType3, ScatterMatrixGraphType4, ScatterMatrixGraphType5, ScatterMatrixGraphType6 } = this.props; if (ChartState == 'Default') { return ( @@ -108,6 +110,14 @@ class TableChart extends Component {
+ {/* [D] 크게 보기 btn_zoom_in 클릭하면 + - active 클래스 추가 + - blind 텍스트 '작게 보기' 로 변경 + - section_container 에 zoom_in 클래스 추가 + */} + + 크게 보기 +
테이블 차트 @@ -136,28 +146,46 @@ class TableChart extends Component { 히스토그램 + + 산점도 행렬 +
추가하기 {/* 추가하기 링크가 클릭되면 display: block 처리 해주세요 */} -
+ @@ -191,7 +219,8 @@ class TableChart extends Component { 적용하기 -
+ {/* [D] 크게 보기 버튼을 누르면 zoom_in 클래스 추가 */} +
{/* [D] 메뉴 카테고리 선택에 따라 텍스트 변경 */} {/* 창 조절하기 버튼을 누르면 fold 클래스 추가 */}
@@ -279,6 +308,14 @@ class TableChart extends Component {
+ {/* [D] 크게 보기 btn_zoom_in 클릭하면 + - active 클래스 추가 + - blind 텍스트 '작게 보기' 로 변경 + - section_container 에 zoom_in 클래스 추가 + */} + + 작게 보기 +
테이블 차트 @@ -307,173 +344,193 @@ class TableChart extends Component { 히스토그램 + + 산점도 행렬 +
추가하기 {/* 추가하기 링크가 클릭되면 display: block 처리 해주세요 */} -
-
-
- -
- +
+
+
+ +
+ +
+ 차트 삭제
- 차트 삭제 -
-
-
- -
- {/* [D] on 클래스가 들어오면 imico_pop_select_arr_up 으로 바꿔주세요 */} -
선택
- {/* 공통 툴팁의 화살표 기본 위치는 가운데 입니다. */} -
-
-
    -
  • - -
  • -
  • - -
  • -
  • - -
  • -
  • - -
  • -
  • - -
  • -
  • - -
  • -
+
+
+ +
+ {/* [D] on 클래스가 들어오면 imico_pop_select_arr_up 으로 바꿔주세요 */} +
선택
+ {/* 공통 툴팁의 화살표 기본 위치는 가운데 입니다. */} +
+
+
    +
  • + +
  • +
  • + +
  • +
  • + +
  • +
  • + +
  • +
  • + +
  • +
  • + +
  • +
+
+ + +
- - -
-
-
- -
- {/* [D] on 클래스가 들어오면 imico_pop_select_arr_up 으로 바꿔주세요 */} -
선택
- {/* 공통 툴팁의 화살표 기본 위치는 가운데 입니다. */} -
-
-
    -
  • - -
  • -
  • - -
  • -
  • - -
  • -
  • - -
  • -
  • - -
  • -
  • - -
  • -
+
+ +
+ {/* [D] on 클래스가 들어오면 imico_pop_select_arr_up 으로 바꿔주세요 */} +
선택
+ {/* 공통 툴팁의 화살표 기본 위치는 가운데 입니다. */} +
+
+
    +
  • + +
  • +
  • + +
  • +
  • + +
  • +
  • + +
  • +
  • + +
  • +
  • + +
  • +
+
+ + +
- - -
-
-
- {/* 클릭이 되면 active 클래스 추가 */} - 오름차순 - 내림차순 +
+ {/* 클릭이 되면 active 클래스 추가 */} + 오름차순 + 내림차순 +
-
- {/* 테이블 차트 입력폼 */} -
+ {/* 테이블 차트 입력폼 */} +

{NoResultText}

+
@@ -584,6 +641,14 @@ class TableChart extends Component {
+ {/* [D] 크게 보기 btn_zoom_in 클릭하면 + - active 클래스 추가 + - blind 텍스트 '작게 보기' 로 변경 + - section_container 에 zoom_in 클래스 추가 + */} + + 크게 보기 +
테이블 차트 @@ -612,165 +677,185 @@ class TableChart extends Component { 히스토그램 + + 산점도 행렬 +
추가하기 {/* 추가하기 링크가 클릭되면 display: block 처리 해주세요 */} -
-
-
- -
- +
+
+
+ +
+ +
+ 차트 삭제
- 차트 삭제 -
-
-
- -
- {/* [D] on 클래스가 들어오면 imico_pop_select_arr_up 으로 바꿔주세요 */} -
선택
- {/* 공통 툴팁의 화살표 기본 위치는 가운데 입니다. */} -
-
-
    -
  • - -
  • -
  • - -
  • -
  • - -
  • -
  • - -
  • -
  • - -
  • -
  • - -
  • -
+
+
+ +
+ {/* [D] on 클래스가 들어오면 imico_pop_select_arr_up 으로 바꿔주세요 */} +
선택
+ {/* 공통 툴팁의 화살표 기본 위치는 가운데 입니다. */} +
+
+
    +
  • + +
  • +
  • + +
  • +
  • + +
  • +
  • + +
  • +
  • + +
  • +
  • + +
  • +
+
+ + +
- - -
-
-
- -
- {/* [D] on 클래스가 들어오면 imico_pop_select_arr_up 으로 바꿔주세요 */} -
선택
- {/* 공통 툴팁의 화살표 기본 위치는 가운데 입니다. */} -
-
-
    -
  • - -
  • -
  • - -
  • -
  • - -
  • -
  • - -
  • -
  • - -
  • -
  • - -
  • -
+
+ +
+ {/* [D] on 클래스가 들어오면 imico_pop_select_arr_up 으로 바꿔주세요 */} +
선택
+ {/* 공통 툴팁의 화살표 기본 위치는 가운데 입니다. */} +
+
+
    +
  • + +
  • +
  • + +
  • +
  • + +
  • +
  • + +
  • +
  • + +
  • +
  • + +
  • +
+
+ + +
- - -
-
-
-
- 여기에 그래프를 넣어주세요 +
+
+ 여기에 그래프를 넣어주세요 +
@@ -883,6 +968,14 @@ class TableChart extends Component {
+ {/* [D] 크게 보기 btn_zoom_in 클릭하면 + - active 클래스 추가 + - blind 텍스트 '작게 보기' 로 변경 + - section_container 에 zoom_in 클래스 추가 + */} + + 크게 보기 +
테이블 차트 @@ -911,48 +1004,126 @@ class TableChart extends Component { 히스토그램 + + 산점도 행렬 +
추가하기 {/* 추가하기 링크가 클릭되면 display: block 처리 해주세요 */} -
-
-
- -
- +
+
+
+ +
+ +
+ 차트 삭제
- 차트 삭제 -
-
-
- -
- {/* [D] on 클래스가 들어오면 imico_pop_select_arr_up 으로 바꿔주세요 */} -
선택
- {/* 공통 툴팁의 화살표 기본 위치는 가운데 입니다. */} +
+
+ +
+ {/* [D] on 클래스가 들어오면 imico_pop_select_arr_up 으로 바꿔주세요 */} +
선택
+ {/* 공통 툴팁의 화살표 기본 위치는 가운데 입니다. */} +
+
+
    +
  • + +
  • +
  • + +
  • +
  • + +
  • +
  • + +
  • +
  • + +
  • +
  • + +
  • +
+
+ + + +
+
+
+
+ +
+ {/* [D] on 클래스가 들어오면 imico_pop_select_arr_up 으로 바꿔주세요 */} +
선택
+ {/* 공통 툴팁의 화살표 기본 위치는 가운데 입니다. */}
    @@ -1006,132 +1177,74 @@ class TableChart extends Component {
-
- -
- {/* [D] on 클래스가 들어오면 imico_pop_select_arr_up 으로 바꿔주세요 */} -
선택
- {/* 공통 툴팁의 화살표 기본 위치는 가운데 입니다. */} -
-
-
    -
  • - -
  • -
  • - -
  • -
  • - -
  • -
  • - -
  • -
  • - -
  • -
  • - -
  • -
-
- - - -
-
-
-
- -
- {/* [D] on 클래스가 들어오면 imico_pop_select_arr_up 으로 바꿔주세요 */} -
선택
- {/* 공통 툴팁의 화살표 기본 위치는 가운데 입니다. */} -
-
-
    -
  • - -
  • -
  • - -
  • -
  • - -
  • -
  • - -
  • -
  • - -
  • -
  • - -
  • -
+
+ +
+ {/* [D] on 클래스가 들어오면 imico_pop_select_arr_up 으로 바꿔주세요 */} +
선택
+ {/* 공통 툴팁의 화살표 기본 위치는 가운데 입니다. */} +
+
+
    +
  • + +
  • +
  • + +
  • +
  • + +
  • +
  • + +
  • +
  • + +
  • +
  • + +
  • +
+
+ + +
- - -
-
- {/* 테이블 차트 입력폼 */} -
+ {/* 테이블 차트 입력폼 */} +

{NoResultText}

+
@@ -1242,6 +1355,14 @@ class TableChart extends Component {
+ {/* [D] 크게 보기 btn_zoom_in 클릭하면 + - active 클래스 추가 + - blind 텍스트 '작게 보기' 로 변경 + - section_container 에 zoom_in 클래스 추가 + */} + + 크게 보기 +
테이블 차트 @@ -1270,48 +1391,126 @@ class TableChart extends Component { 히스토그램 + + 산점도 행렬 +
추가하기 {/* 추가하기 링크가 클릭되면 display: block 처리 해주세요 */} -
-
-
- -
- +
+
+
+ +
+ +
+ 차트 삭제
- 차트 삭제 -
-
-
- -
- {/* [D] on 클래스가 들어오면 imico_pop_select_arr_up 으로 바꿔주세요 */} -
선택
- {/* 공통 툴팁의 화살표 기본 위치는 가운데 입니다. */} +
+
+ +
+ {/* [D] on 클래스가 들어오면 imico_pop_select_arr_up 으로 바꿔주세요 */} +
선택
+ {/* 공통 툴팁의 화살표 기본 위치는 가운데 입니다. */} +
+
+
    +
  • + +
  • +
  • + +
  • +
  • + +
  • +
  • + +
  • +
  • + +
  • +
  • + +
  • +
+
+ + + +
+
+
+
+ +
+ {/* [D] on 클래스가 들어오면 imico_pop_select_arr_up 으로 바꿔주세요 */} +
선택
+ {/* 공통 툴팁의 화살표 기본 위치는 가운데 입니다. */}
    @@ -1365,131 +1564,73 @@ class TableChart extends Component {
-
- -
- {/* [D] on 클래스가 들어오면 imico_pop_select_arr_up 으로 바꿔주세요 */} -
선택
- {/* 공통 툴팁의 화살표 기본 위치는 가운데 입니다. */} -
-
-
    -
  • - -
  • -
  • - -
  • -
  • - -
  • -
  • - -
  • -
  • - -
  • -
  • - -
  • -
+
+ +
+ {/* [D] on 클래스가 들어오면 imico_pop_select_arr_up 으로 바꿔주세요 */} +
선택
+ {/* 공통 툴팁의 화살표 기본 위치는 가운데 입니다. */} +
+
+
    +
  • + +
  • +
  • + +
  • +
  • + +
  • +
  • + +
  • +
  • + +
  • +
  • + +
  • +
+
+ + +
- - - -
-
-
-
- -
- {/* [D] on 클래스가 들어오면 imico_pop_select_arr_up 으로 바꿔주세요 */} -
선택
- {/* 공통 툴팁의 화살표 기본 위치는 가운데 입니다. */} -
-
-
    -
  • - -
  • -
  • - -
  • -
  • - -
  • -
  • - -
  • -
  • - -
  • -
  • - -
  • -
-
- - -
-
-
+
여기에 그래프를 넣어주세요
+
@@ -1600,6 +1741,14 @@ class TableChart extends Component {
+ {/* [D] 크게 보기 btn_zoom_in 클릭하면 + - active 클래스 추가 + - blind 텍스트 '작게 보기' 로 변경 + - section_container 에 zoom_in 클래스 추가 + */} + + 크게 보기 +
테이블 차트 @@ -1628,136 +1777,156 @@ class TableChart extends Component { 히스토그램 + + 산점도 행렬 +
추가하기 {/* 추가하기 링크가 클릭되면 display: block 처리 해주세요 */} -
-
-
- -
- +
+
+
+ +
+ +
+ 차트 삭제
- 차트 삭제 -
-
-
- -
- {/* [D] on 클래스가 들어오면 imico_pop_select_arr_up 으로 바꿔주세요 */} -
선택
- {/* 공통 툴팁의 화살표 기본 위치는 가운데 입니다. */} -
-
-
    -
  • - -
  • -
  • - -
  • -
  • - -
  • -
  • - -
  • -
  • - -
  • -
  • - -
  • -
+
+
+ +
+ {/* [D] on 클래스가 들어오면 imico_pop_select_arr_up 으로 바꿔주세요 */} +
선택
+ {/* 공통 툴팁의 화살표 기본 위치는 가운데 입니다. */} +
+
+
    +
  • + +
  • +
  • + +
  • +
  • + +
  • +
  • + +
  • +
  • + +
  • +
  • + +
  • +
+
+ + +
- - -
-
-
- - -
- - {/* 계급 폭이 비활성일 때 disabled 클래스 추가 */} -
- {/* 위 disabled 클래스가 추가되면 input 요소에 readOnly 추가 */} - +
+ + {/* 계급 폭이 비활성일 때 disabled 클래스 추가 */} +
+ {/* 위 disabled 클래스가 추가되면 input 요소에 readOnly 추가 */} + +
-
-
- - {/* 계급 폭이 비활성일 때 disabled 클래스 추가 */} -
- 왼쪽 닫힘 - 오른쪽 닫힘 +
+ + {/* 계급 폭이 비활성일 때 disabled 클래스 추가 */} +
-
- {/* 테이블 차트 입력폼 */} -
-

- {NoResultText} -

+ {/* 테이블 차트 입력폼 */} +
+

+ {NoResultText} +

+
@@ -1869,6 +2038,14 @@ class TableChart extends Component {
+ {/* [D] 크게 보기 btn_zoom_in 클릭하면 + - active 클래스 추가 + - blind 텍스트 '작게 보기' 로 변경 + - section_container 에 zoom_in 클래스 추가 + */} + + 크게 보기 +
테이블 차트 @@ -1897,12 +2074,15 @@ class TableChart extends Component { 히스토그램 + + 산점도 행렬 +
추가하기 {/* 추가하기 링크가 클릭되면 display: block 처리 해주세요 */} -
+
-
-
- -
- -
- 차트 삭제 -
-
-
- -
- {/* [D] on 클래스가 들어오면 imico_pop_select_arr_up 으로 바꿔주세요 */} -
선택
- {/* 공통 툴팁의 화살표 기본 위치는 가운데 입니다. */} -
-
-
    -
  • - -
  • -
  • - -
  • -
  • - -
  • -
  • - -
  • -
  • - -
  • -
  • - -
  • -
-
- - - -
+
+
+
+ +
+
+ 차트 삭제
-
- - -
-
- - {/* 계급 폭이 비활성일 때 disabled 클래스 추가 */} -
- {/* 위 disabled 클래스가 추가되면 input 요소에 readOnly 추가 */} - +
+
+ +
+ {/* [D] on 클래스가 들어오면 imico_pop_select_arr_up 으로 바꿔주세요 */} +
선택
+ {/* 공통 툴팁의 화살표 기본 위치는 가운데 입니다. */} +
+
+
    +
  • + +
  • +
  • + +
  • +
  • + +
  • +
  • + +
  • +
  • + +
  • +
  • + +
  • +
+
+ + + +
+
-
-
- - {/* 계급 폭이 비활성일 때 disabled 클래스 추가 */} -
- 왼쪽 닫힘 - 오른쪽 닫힘 +
+ + +
+
+ + {/* 계급 폭이 비활성일 때 disabled 클래스 추가 */} +
+ {/* 위 disabled 클래스가 추가되면 input 요소에 readOnly 추가 */} + +
+
+
+ + {/* 계급 폭이 비활성일 때 disabled 클래스 추가 */} +
-
-
+
{/* 범례 위치는 left / top 값 혹은 transform: translate 값으로 조정 해주세요. */}
    @@ -2053,6 +2237,917 @@ class TableChart extends Component { 여기에 그래프를 넣어주세요
+
+
+
+
+
+
+
+ + ) + } else if (ChartState == 'ScatterMatrixGraph') { + return ( + +
+
+

테이블 불러오기

+ + 적용하기 +
+
+ {/* [D] 메뉴 카테고리 선택에 따라 텍스트 변경 */} + {/* 창 조절하기 버튼을 누르면 fold 클래스 추가 */} +
+

테이블 추가하기

+ + + + 창 조절하기 + +
+
+
+
+ +
+ {/* [D] 크게 보기 btn_zoom_in 클릭하면 + - active 클래스 추가 + - blind 텍스트 '작게 보기' 로 변경 + - section_container 에 zoom_in 클래스 추가 + */} + + 크게 보기 + + + 저장하기 +
+
+
+

차트

+
+ {/* 테이블 선택 */} + +
+
+
+ +
+ +
+ 차트 삭제 +
+
+
+ +
+ {/* [D] on 클래스가 들어오면 imico_pop_select_arr_up 으로 바꿔주세요 */} +
선택
+ {/* 공통 툴팁의 화살표 기본 위치는 가운데 입니다. */} +
+
+
    +
  • + +
  • +
  • + +
  • +
  • + +
  • +
  • + +
  • +
  • + +
  • +
  • + +
  • +
+
+ + + +
+
+
+
+ +
+ {/* [D] on 클래스가 들어오면 imico_pop_select_arr_up 으로 바꿔주세요 */} +
선택
+ {/* 공통 툴팁의 화살표 기본 위치는 가운데 입니다. */} +
+
+
    +
  • + +
  • +
  • + +
  • +
  • + +
  • +
  • + +
  • +
  • + +
  • +
  • + +
  • +
+
+ + + +
+
+
+
+ +
+ {/* [D] on 클래스가 들어오면 imico_pop_select_arr_up 으로 바꿔주세요 */} +
선택
+ {/* 공통 툴팁의 화살표 기본 위치는 가운데 입니다. */} +
+
+
    +
  • + +
  • +
  • + +
  • +
  • + +
  • +
  • + +
  • +
  • + +
  • +
  • + +
  • +
+
+ + + +
+
+
+
+
+ {/* [D] 산점도 행렬 그래프 클래스 + - 2x2 : type_2 + - 3x3 : type_3 + - 4x4 : type_4 + - 5x5 : type_5 + - 6x6 : type_6 + */} +
+ {ScatterMatrixGraphType2 && + <> +
+ 여기에 그래프를 넣어주세요 + 부리 길이 + 일이삼사오육칠팔구십일이삼사오육칠팔구십일이삼사오육칠팔구십일이삼사오육칠팔구십일이삼사오육칠팔구십 +
+
+ 여기에 그래프를 넣어주세요 + -0.23 +
+
+ 여기에 그래프를 넣어주세요 + 부리 길이 + 일이삼사오육칠팔구십일이삼사오육칠팔구십일이삼사오육칠팔구십일이삼사오육칠팔구십일이삼사오육칠팔구십 + y축 레이블 +
+
+ 여기에 그래프를 넣어주세요 + 부리 깊이 + x축 레이블 +
+ + } + {ScatterMatrixGraphType3 && + <> +
+ 여기에 그래프를 넣어주세요 + 부리 길이 + 일이삼사오육칠팔구십일이삼사오육칠팔구십일이삼사오육칠팔구십일이삼사오육칠팔구십일이삼사오육칠팔구십 +
+
+ 여기에 그래프를 넣어주세요 + -0.23 +
+
+ 여기에 그래프를 넣어주세요 + 부리 길이 +
+
+ 여기에 그래프를 넣어주세요 + 부리 깊이 + 일이삼사오육칠팔구십일이삼사오육칠팔구십일이삼사오육칠팔구십일이삼사오육칠팔구십일이삼사오육칠팔구십 +
+
+ 여기에 그래프를 넣어주세요 + 부리 길이 +
+
+ 여기에 그래프를 넣어주세요 + 부리 깊이 +
+
+ 여기에 그래프를 넣어주세요 + 부리 깊이 + 일이삼사오육칠팔구십일이삼사오육칠팔구십일이삼사오육칠팔구십일이삼사오육칠팔구십일이삼사오육칠팔구십 + 일이삼사오육칠팔구십일이삼사오육칠팔구십일이삼사오육칠팔구십일이삼사오육칠팔구십일이삼사오육칠팔구십 +
+
+ 여기에 그래프를 넣어주세요 + 부리 길이 + 부리 길이 +
+
+ 여기에 그래프를 넣어주세요 + -0.23 + 부리 깊이 +
+ + } + {ScatterMatrixGraphType4 && + <> +
+ 여기에 그래프를 넣어주세요 + 부리 길이 + 일이삼사오육칠팔구십일이삼사오육칠팔구십일이삼사오육칠팔구십일이삼사오육칠팔구십일이삼사오육칠팔구십 +
+
+ 여기에 그래프를 넣어주세요 + -0.23 +
+
+ 여기에 그래프를 넣어주세요 + 부리 길이 +
+
+ 여기에 그래프를 넣어주세요 + 부리 깊이 +
+
+ 여기에 그래프를 넣어주세요 + 부리 길이 + 부리 길이 +
+
+ 여기에 그래프를 넣어주세요 + 부리 깊이 +
+
+ 여기에 그래프를 넣어주세요 + 부리 깊이 +
+
+ 여기에 그래프를 넣어주세요 + 부리 길이 +
+
+ 여기에 그래프를 넣어주세요 + -0.23 + 부리 길이 +
+
+ 여기에 그래프를 넣어주세요 + 부리 길이 +
+
+ 여기에 그래프를 넣어주세요 + 부리 깊이 +
+
+ 여기에 그래프를 넣어주세요 + 부리 길이 +
+
+ 여기에 그래프를 넣어주세요 + 부리 깊이 + 일이삼사오육칠팔구십일이삼사오육칠팔구십일이삼사오육칠팔구십일이삼사오육칠팔구십일이삼사오육칠팔구십 + 부리 길이 +
+
+ 여기에 그래프를 넣어주세요 + 부리 깊이 + 부리 길이 +
+
+ 여기에 그래프를 넣어주세요 + 부리 길이 + 부리 길이 +
+
+ 여기에 그래프를 넣어주세요 + -0.23 + 부리 길이 +
+ + } + {ScatterMatrixGraphType5 && + <> +
+ 여기에 그래프를 넣어주세요 + 부리 길이 + 일이삼사오육칠팔구십일이삼사오육칠팔구십일이삼사오육칠팔구십일이삼사오육칠팔구십일이삼사오육칠팔구십 +
+
+ 여기에 그래프를 넣어주세요 + -0.23 +
+
+ 여기에 그래프를 넣어주세요 + 부리 길이 +
+
+ 여기에 그래프를 넣어주세요 + 부리 깊이 +
+
+ 여기에 그래프를 넣어주세요 + 부리 길이 +
+
+ 여기에 그래프를 넣어주세요 + 부리 깊이 + 부리 길이 +
+
+ 여기에 그래프를 넣어주세요 + 부리 깊이 +
+
+ 여기에 그래프를 넣어주세요 + 부리 길이 +
+
+ 여기에 그래프를 넣어주세요 + -0.23 +
+
+ 여기에 그래프를 넣어주세요 + 부리 길이 +
+
+ 여기에 그래프를 넣어주세요 + 부리 깊이 + 부리 길이 +
+
+ 여기에 그래프를 넣어주세요 + 부리 길이 +
+
+ 여기에 그래프를 넣어주세요 + 부리 깊이 +
+
+ 여기에 그래프를 넣어주세요 + 부리 깊이 +
+
+ 여기에 그래프를 넣어주세요 + 부리 길이 +
+
+ 여기에 그래프를 넣어주세요 + -0.23 + 부리 길이 +
+
+ 여기에 그래프를 넣어주세요 + 부리 길이 +
+
+ 여기에 그래프를 넣어주세요 + 부리 깊이 +
+
+ 여기에 그래프를 넣어주세요 + 부리 길이 +
+
+ 여기에 그래프를 넣어주세요 + 부리 깊이 +
+
+ 여기에 그래프를 넣어주세요 + 부리 깊이 + 일이삼사오육칠팔구십일이삼사오육칠팔구십일이삼사오육칠팔구십일이삼사오육칠팔구십일이삼사오육칠팔구십 + 부리 길이 +
+
+ 여기에 그래프를 넣어주세요 + 부리 길이 + 부리 길이 +
+
+ 여기에 그래프를 넣어주세요 + -0.23 + 부리 길이 +
+
+ 여기에 그래프를 넣어주세요 + 부리 길이 + 부리 길이 +
+
+ 여기에 그래프를 넣어주세요 + 부리 깊이 + 부리 길이 +
+ + } + {ScatterMatrixGraphType6 && + <> +
+ 여기에 그래프를 넣어주세요 + 부리 길이 + 일이삼사오육칠팔구십일이삼사오육칠팔구십일이삼사오육칠팔구십일이삼사오육칠팔구십일이삼사오육칠팔구십 +
+
+ 여기에 그래프를 넣어주세요 + -0.23 +
+
+ 여기에 그래프를 넣어주세요 + 부리 길이 +
+
+ 여기에 그래프를 넣어주세요 + 부리 깊이 +
+
+ 여기에 그래프를 넣어주세요 + 부리 길이 +
+
+ 여기에 그래프를 넣어주세요 + 부리 깊이 +
+
+ 여기에 그래프를 넣어주세요 + 부리 깊이 + 부리 길이 +
+
+ 여기에 그래프를 넣어주세요 + 부리 길이 +
+
+ 여기에 그래프를 넣어주세요 + -0.23 +
+
+ 여기에 그래프를 넣어주세요 + 부리 길이 +
+
+ 여기에 그래프를 넣어주세요 + 부리 깊이 +
+
+ 여기에 그래프를 넣어주세요 + 부리 길이 +
+
+ 여기에 그래프를 넣어주세요 + 부리 깊이 + 부리 길이 +
+
+ 여기에 그래프를 넣어주세요 + 부리 깊이 +
+
+ 여기에 그래프를 넣어주세요 + 부리 길이 +
+
+ 여기에 그래프를 넣어주세요 + -0.23 +
+
+ 여기에 그래프를 넣어주세요 + 부리 길이 +
+
+ 여기에 그래프를 넣어주세요 + 부리 깊이 +
+
+ 여기에 그래프를 넣어주세요 + 부리 길이 + 부리 길이 +
+
+ 여기에 그래프를 넣어주세요 + 부리 깊이 +
+
+ 여기에 그래프를 넣어주세요 + 부리 깊이 +
+
+ 여기에 그래프를 넣어주세요 + 부리 길이 +
+
+ 여기에 그래프를 넣어주세요 + -0.23 +
+
+ 여기에 그래프를 넣어주세요 + 부리 길이 +
+
+ 여기에 그래프를 넣어주세요 + 부리 깊이 + 부리 길이 +
+
+ 여기에 그래프를 넣어주세요 + 부리 길이 +
+
+ 여기에 그래프를 넣어주세요 + 부리 깊이 +
+
+ 여기에 그래프를 넣어주세요 + 부리 깊이 +
+
+ 여기에 그래프를 넣어주세요 + 부리 길이 +
+
+ 여기에 그래프를 넣어주세요 + -0.23 +
+
+ 여기에 그래프를 넣어주세요 + 부리 길이 + 일이삼사오육칠팔구십일이삼사오육칠팔구십일이삼사오육칠팔구십일이삼사오육칠팔구십일이삼사오육칠팔구십 + 부리 길이 +
+
+ 여기에 그래프를 넣어주세요 + 부리 깊이 + 부리 깊이 +
+
+ 여기에 그래프를 넣어주세요 + 부리 길이 + 부리 깊이 +
+
+ 여기에 그래프를 넣어주세요 + 부리 깊이 + 부리 깊이 +
+
+ 여기에 그래프를 넣어주세요 + 부리 깊이 + 부리 깊이 +
+
+ 여기에 그래프를 넣어주세요 + 부리 길이 + 부리 깊이 +
+ + } +
+
@@ -2090,10 +3185,19 @@ class TableChart extends Component {
-
-

- 먼저 테이블을 추가해 주세요 -

+ {/* [D] 테이블 불러오기 > 테이블 없을 때 : table_no_result_content 클래스 추가 */} +
+
+

+ [테이블 추가하기]를 눌러 테이블을 추가해 주세요. +

+
+
테이블을 추가하는 방법
+
1. 테이블 추가하기의 '테이블 선택' 탭에서 엔트리가 제공하는 기본 테이블을 선택해 추가합니다.
+
2. 테이블 추가하기의 '파일 올리기' 탭에서 CSV, XLS(X) 파일을 직접 업로드해 추가합니다.
+
3. 테이블 추가하기의 '새로 만들기' 탭에서 빈 테이블을 추가하고 데이터를 직접 입력합니다.
+
+
@@ -2202,6 +3306,14 @@ class TableChart extends Component {
+ {/* [D] 크게 보기 btn_zoom_in 클릭하면 + - active 클래스 추가 + - blind 텍스트 '작게 보기' 로 변경 + - section_container 에 zoom_in 클래스 추가 + */} + + 크게 보기 +
테이블 차트 @@ -2230,12 +3342,15 @@ class TableChart extends Component { 히스토그램 + + 산점도 행렬 +
추가하기 {/* 추가하기 링크가 클릭되면 display: block 처리 해주세요 */} -
+
diff --git a/src/components/ai_layout/TableSummary.jsx b/src/components/ai_layout/TableSummary.jsx index cee04b70..9c66b3bd 100644 --- a/src/components/ai_layout/TableSummary.jsx +++ b/src/components/ai_layout/TableSummary.jsx @@ -5,7 +5,9 @@ import Styles from '../../assets/entry/scss/popup.scss'; class TableSummary extends Component { render () { - const { SummaryState } = this.props; + // [D] ZoonIn : 마크업 확인용 / 스펙에 맞게 변경해주세요 + const { SummaryState, ZoonIn } = this.props; + if (SummaryState == 'Total') { return ( @@ -20,7 +22,8 @@ class TableSummary extends Component { 적용하기 -
+ {/* [D] 크게 보기 버튼을 누르면 zoom_in 클래스 추가 */} +
{/* [D] 메뉴 카테고리 선택에 따라 텍스트 변경 */} {/* 창 조절하기 버튼을 누르면 fold 클래스 추가 */}
@@ -108,6 +111,14 @@ class TableSummary extends Component {
+ {/* [D] 크게 보기 btn_zoom_in 클릭하면 + - active 클래스 추가 + - blind 텍스트 '작게 보기' 로 변경 + - section_container 에 zoom_in 클래스 추가 + */} + + {ZoonIn ? '작게 보기' : '크게 보기'} +
테이블 차트 @@ -117,310 +128,400 @@ class TableSummary extends Component {
-

정보

-
-
-
- 요약 -

우리나라의 연평균 기온과 계절별 평균 기온입니다.

-
-
-
-
- 테이블 -
- - 도움말 +

정보

+
+
+ + 막대형 + + + 꺽은선형 + + + 원형 + + + 방사형 + + + 히스토그램 + + + 산점도 행렬 + +
+ + 추가하기 - {/* 도움말을 클릭하면 display: block 처리 해주세요 */} -
-
- - 숫자가 아닌 값이 포함된 속성은 개수만 확인할 수 - 있습니다. - -
    -
  • - 평균 -

    - 해당 속성의 모든 값을 더한 후 속성의 - 개수 만큼 나눈 값 -

    -
  • -
  • - 표준 편차 -

    - 데이터가평균을 중심으로 얼마나 - 퍼져있는지 알려주는 값. -
    - 0에 가까울 수록 값들이 평균 근처에 - 집중되어 있다는 것을 의미 -

    -
  • -
  • - - 최댓값/최솟값 - -

    - 해당 속성의 가장 큰 값과 가장 작은 값 -

    -
  • -
  • - - 하위 25, 50, 75% - -

    - 해당 속성의 최솟값을 0%, 최댓값을 -
    - 100%라고 치환했을 때 각 크기에 해당하는 - 값 -

    -
  • -
  • - 중간값 -

    - 해당 속성의 모든 값을 크기순으로 - 배열했을 때
    - 전체의 중앙에 위치하는 값 -

    -
  • -
-
- - - + {/* 추가하기 링크가 클릭되면 display: block 처리 해주세요 */} +
-

새로운 테이블에서 열을 기준으로 한 기초 통계량입니다.

-
    -
  • - 행 99개 -
  • -
  • - 열 99개 -
  • -
  • - 칸 99개 -
  • -
-
- {/* 셀의 갯수가 많을 경우 table의 총 너비를 계산해주세요. */} -
{ borderCollapse: 'collapse', }} > - +
- - - {/* 셀의 갯수만큼 col의 갯수를 늘려주세요. */} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-   -
-
-
- 평균 -
-
-
- 표준편차 -
-
-
- 최대값 -
-
-
- 중간값 -
-
-
- 최솟값 -
-
-
- 학교이름 -
-
- 11873 - - - - - - - - - - - - -
-
- 학교급 -
-
- 11873 - - - - - - - - - - - - -
-
- 지역 -
-
- 11873 - - - - - - - - - - - - -
-
- 위도 -
-
- 11873 - - - - - - - - - - - - -
-
- 경도 -
-
- 11873 - - - - - - - - - - - - -
-
- 기타 +
+
+
+ 요약 +

우리나라의 연평균 기온과 계절별 평균 기온입니다.

+
+
+ 제공처 +

Palmer Station Antarctica LTER

+
+
+ 상세 +

남극의 파머 기지(Palmer Station) 근처에서 먹이를 찾는 333마리의 성체 펭귄에 대해 품종, 서식지, 부리 길이, 부리 깊이, 날개 길이, 몸무게, 성별을 정리한 데이터셋입니다. 이 데이터셋은 붓꽃 데이터의 대안으로 사용 됩니다.

+
+
+
+
+ 통계량 +
+ + 도움말 + + {/* 도움말을 클릭하면 display: block 처리 해주세요 */} +
+
+ + 숫자가 아닌 값이 포함된 속성은 개수만 확인할 수 + 있습니다. + +
    +
  • + 평균 +

    + 해당 속성의 모든 값을 더한 후 속성의 + 개수 만큼 나눈 값 +

    +
  • +
  • + 표준 편차 +

    + 데이터가평균을 중심으로 얼마나 + 퍼져있는지 알려주는 값. +
    + 0에 가까울 수록 값들이 평균 근처에 + 집중되어 있다는 것을 의미 +

    +
  • +
  • + + 최댓값/최솟값 + +

    + 해당 속성의 가장 큰 값과 가장 작은 값 +

    +
  • +
  • + + 하위 25, 50, 75% + +

    + 해당 속성의 최솟값을 0%, 최댓값을 +
    + 100%라고 치환했을 때 각 크기에 해당하는 + 값 +

    +
  • +
  • + 중간값 +

    + 해당 속성의 모든 값을 크기순으로 + 배열했을 때
    + 전체의 중앙에 위치하는 값 +

    +
  • +
-
- 11873 - - - - - - - - - - - - -
+ + + +
+
+

새로운 테이블에서 열을 기준으로 한 기초 통계량입니다.

+
+
    +
  • + 행 1,000개 +
  • +
  • + 열 3,000개 +
  • +
  • + 셀 100,000개 +
  • +
+
+ {/* 셀의 갯수가 많을 경우 table의 총 너비를 계산해주세요. */} + + + + {/* 셀의 갯수만큼 col의 갯수를 늘려주세요. */} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+   +
+
+
+ 평균 +
+
+
+ 표준편차 +
+
+
+ 최대값 +
+
+
+ 중간값 +
+
+
+ 최솟값 +
+
+
+ 학교이름 +
+
+ 11873 + + - + + - + + - + + - +
+
+ 학교급 +
+
+ 11873 + + - + + - + + - + + - +
+
+ 지역 +
+
+ 11873 + + - + + - + + - + + - +
+
+ 위도 +
+
+ 11873 + + - + + - + + - + + - +
+
+ 경도 +
+
+ 11873 + + - + + - + + - + + - +
+
+ 기타 +
+
+ 11873 + + - + + - + + - + + - +
+
+
+ 속성 정보 +
    +
  • 품종: 관측된 펭귄의 종류로 아델리(Adelie) 펭귄, 턱끈(Chinstrap) 펭귄, 젠투(Gentoo) 펭귄의 3종류입니다.
  • +
  • 부리 깊이: 위 부리의 위쪽 표면부터 아래 부리의 아래쪽 표면까지의 길이를 말합니다. (mm)
  • +
  • 몸무게: 펭귄의 몸무게(body mass)입니다. (g)
  • +
+
+
+
+
+ 차트 +
+ +
- -
-
    - {/* 그래프의 이미지는 background-image로 넣어주세요. */} -
  • -   -
  • -
  • -   -
  • -
  • -   -
  • -
  • -   -
  • -
  • -   -
  • -
  • -   -
  • -
  • -   -
  • -
- @@ -441,6 +542,7 @@ class TableSummary extends Component { 적용하기 + {/* [D] 크게 보기 버튼을 누르면 zoom_in 클래스 추가 */}
{/* [D] 메뉴 카테고리 선택에 따라 텍스트 변경 */} {/* 창 조절하기 버튼을 누르면 fold 클래스 추가 */} @@ -529,6 +631,14 @@ class TableSummary extends Component {
+ {/* [D] 크게 보기 btn_zoom_in 클릭하면 + - active 클래스 추가 + - blind 텍스트 '작게 보기' 로 변경 + - section_container 에 zoom_in 클래스 추가 + */} + + 크게 보기 +
테이블 차트 @@ -540,170 +650,233 @@ class TableSummary extends Component {

정보

-
-
- 테이블 -
- - 도움말 - - {/* 도움말을 클릭하면 display: block 처리 해주세요 */} -
-
- - 숫자가 아닌 값이 포함된 속성은 개수만 확인할 수 - 있습니다. - -
    -
  • - 평균 -

    - 해당 속성의 모든 값을 더한 후 속성의 - 개수 만큼 나눈 값 -

    -
  • -
  • - 표준 편차 -

    - 데이터가평균을 중심으로 얼마나 - 퍼져있는지 알려주는 값. -
    - 0에 가까울 수록 값들이 평균 근처에 - 집중되어 있다는 것을 의미 -

    -
  • -
  • - - 최댓값/최솟값 - -

    - 해당 속성의 가장 큰 값과 가장 작은 값 -

    -
  • -
  • - - 하위 25, 50, 75% - -

    - 해당 속성의 최솟값을 0%, 최댓값을 -
    - 100%라고 치환했을 때 각 크기에 해당하는 - 값 -

    -
  • -
  • - 중간값 -

    - 해당 속성의 모든 값을 크기순으로 - 배열했을 때
    - 전체의 중앙에 위치하는 값 -

    -
  • -
-
- + + 막대형 + + + 꺽은선형 + + + 원형 + + + 방사형 + + + 히스토그램 + + + 산점도 행렬 + +
+ + 추가하기 + + {/* 추가하기 링크가 클릭되면 display: block 처리 해주세요 */} + +
+
+
+
+
+ 통계량 +
+ + 도움말 + + {/* 도움말을 클릭하면 display: block 처리 해주세요 */} +
- - +
+ + 숫자가 아닌 값이 포함된 속성은 개수만 확인할 수 + 있습니다. + +
    +
  • + 평균 +

    + 해당 속성의 모든 값을 더한 후 속성의 + 개수 만큼 나눈 값 +

    +
  • +
  • + 표준 편차 +

    + 데이터가평균을 중심으로 얼마나 + 퍼져있는지 알려주는 값. +
    + 0에 가까울 수록 값들이 평균 근처에 + 집중되어 있다는 것을 의미 +

    +
  • +
  • + + 최댓값/최솟값 + +

    + 해당 속성의 가장 큰 값과 가장 작은 값 +

    +
  • +
  • + + 하위 25, 50, 75% + +

    + 해당 속성의 최솟값을 0%, 최댓값을 +
    + 100%라고 치환했을 때 각 크기에 해당하는 + 값 +

    +
  • +
  • + 중간값 +

    + 해당 속성의 모든 값을 크기순으로 + 배열했을 때
    + 전체의 중앙에 위치하는 값 +

    +
  • +
+
+ + + +
+

새로운 테이블에서 열을 기준으로 한 기초 통계량입니다.

-

새로운 테이블에서 열을 기준으로 한 기초 통계량입니다.

-
-
    -
  • - 행 0개 -
  • -
  • - 열 0개 -
  • -
  • - 칸 0개 -
  • -
-
- {/* 셀의 갯수가 많을 경우 table의 총 너비를 계산해주세요. */} - - - - {/* 셀의 갯수만큼 col의 갯수를 늘려주세요. */} - - - - - - - - - - - - - - - - - - - + + + + + +
-
-   -
-
-
- 평균 -
-
-
- 표준편차 -
-
-
- 최대값 -
-
-
- 중간값 -
-
-
- 최솟값 -
-
-
+
    +
  • + 행 0개 +
  • +
  • + 열 0개 +
  • +
  • + 셀 0개 +
  • +
+
+ {/* 셀의 갯수가 많을 경우 table의 총 너비를 계산해주세요. */} + + + + {/* 셀의 갯수만큼 col의 갯수를 늘려주세요. */} + + + + + + + + + + + + + + + + + + + + - - - - - - -
+
+   +
+
+
+ 평균 +
+
+
+ 표준편차 +
+
+
+ 최대값 +
+
+
+ 중간값 +
+
+
+ 최솟값 +
+
+
+ - +
+
- - - - - - - - - - - - - - - - - - -
+ +
+ - + + - + + - + + - +
+
-
-
+
차트

추가한 차트가 없습니다.

+
diff --git a/src/components/editor/dataAnalytics/chart/SelectChartDropdown.jsx b/src/components/editor/dataAnalytics/chart/SelectChartDropdown.jsx index cf271b98..b52cf2fe 100644 --- a/src/components/editor/dataAnalytics/chart/SelectChartDropdown.jsx +++ b/src/components/editor/dataAnalytics/chart/SelectChartDropdown.jsx @@ -12,7 +12,7 @@ const SelectChartDropdown = (props) => { }; return ( -
+