maidr 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.Rbuildignore +1 -0
- package/.eslintignore +3 -0
- package/.eslintrc.json +6 -0
- package/.github/workflows/build.yml +20 -0
- package/.prettierignore +3 -0
- package/.prettierrc.json +7 -0
- package/.vscode/extensions.json +25 -0
- package/.vscode/settings.json +30 -0
- package/.vscode/tasks.json +57 -0
- package/CHANGELOG.md +7 -0
- package/CITATION.cff +21 -0
- package/CONTRIBUTING.md +87 -0
- package/LICENSE.md +595 -0
- package/README.md +341 -0
- package/dist/maidr.js +8851 -0
- package/dist/maidr.min.js +1 -0
- package/dist/styles.css +244 -0
- package/dist/styles.min.css +1 -0
- package/docs/Audio.html +1398 -0
- package/docs/Constants.html +256 -0
- package/docs/Description.html +582 -0
- package/docs/Helper.html +364 -0
- package/docs/LogError.html +905 -0
- package/docs/Menu.html +665 -0
- package/docs/Position.html +174 -0
- package/docs/Resources.html +338 -0
- package/docs/Review.html +333 -0
- package/docs/Tracker.html +965 -0
- package/docs/audio.js.html +635 -0
- package/docs/constants.js.html +1242 -0
- package/docs/display.js.html +1184 -0
- package/docs/fonts/OpenSans-Bold-webfont.eot +0 -0
- package/docs/fonts/OpenSans-Bold-webfont.svg +1830 -0
- package/docs/fonts/OpenSans-Bold-webfont.woff +0 -0
- package/docs/fonts/OpenSans-BoldItalic-webfont.eot +0 -0
- package/docs/fonts/OpenSans-BoldItalic-webfont.svg +1830 -0
- package/docs/fonts/OpenSans-BoldItalic-webfont.woff +0 -0
- package/docs/fonts/OpenSans-Italic-webfont.eot +0 -0
- package/docs/fonts/OpenSans-Italic-webfont.svg +1830 -0
- package/docs/fonts/OpenSans-Italic-webfont.woff +0 -0
- package/docs/fonts/OpenSans-Light-webfont.eot +0 -0
- package/docs/fonts/OpenSans-Light-webfont.svg +1831 -0
- package/docs/fonts/OpenSans-Light-webfont.woff +0 -0
- package/docs/fonts/OpenSans-LightItalic-webfont.eot +0 -0
- package/docs/fonts/OpenSans-LightItalic-webfont.svg +1835 -0
- package/docs/fonts/OpenSans-LightItalic-webfont.woff +0 -0
- package/docs/fonts/OpenSans-Regular-webfont.eot +0 -0
- package/docs/fonts/OpenSans-Regular-webfont.svg +1831 -0
- package/docs/fonts/OpenSans-Regular-webfont.woff +0 -0
- package/docs/fonts/OpenSans-Semibold-webfont.eot +0 -0
- package/docs/fonts/OpenSans-Semibold-webfont.svg +1830 -0
- package/docs/fonts/OpenSans-Semibold-webfont.ttf +0 -0
- package/docs/fonts/OpenSans-Semibold-webfont.woff +0 -0
- package/docs/fonts/OpenSans-SemiboldItalic-webfont.eot +0 -0
- package/docs/fonts/OpenSans-SemiboldItalic-webfont.svg +1830 -0
- package/docs/fonts/OpenSans-SemiboldItalic-webfont.ttf +0 -0
- package/docs/fonts/OpenSans-SemiboldItalic-webfont.woff +0 -0
- package/docs/index.html +66 -0
- package/docs/scripts/linenumber.js +25 -0
- package/docs/scripts/prettify/Apache-License-2.0.txt +202 -0
- package/docs/scripts/prettify/lang-css.js +2 -0
- package/docs/scripts/prettify/prettify.js +28 -0
- package/docs/styles/jsdoc-default.css +692 -0
- package/docs/styles/prettify-jsdoc.css +111 -0
- package/docs/styles/prettify-tomorrow.css +132 -0
- package/examples/dev_charts/barplot.html +1056 -0
- package/examples/dev_charts/boxplot.html +1856 -0
- package/examples/dev_charts/boxplot_flipped.svg +727 -0
- package/examples/dev_charts/heatmap.html +1217 -0
- package/examples/dev_charts/scatterplot/displ.js +18 -0
- package/examples/dev_charts/scatterplot/histogram_for_residual.svg +595 -0
- package/examples/dev_charts/scatterplot/hwy.js +15 -0
- package/examples/dev_charts/scatterplot/layers/point_layer.json +938 -0
- package/examples/dev_charts/scatterplot/layers/smooth_layer.json +322 -0
- package/examples/dev_charts/scatterplot/point_layer.js +938 -0
- package/examples/dev_charts/scatterplot/prediction_array.js +31 -0
- package/examples/dev_charts/scatterplot/prediction_array.json +31 -0
- package/examples/dev_charts/scatterplot/residual_array.js +29 -0
- package/examples/dev_charts/scatterplot/residual_array.json +29 -0
- package/examples/dev_charts/scatterplot/scatterplot.svg +1428 -0
- package/examples/dev_charts/scatterplot/scatterplot_data.html +2838 -0
- package/examples/dev_charts/scatterplot/scatterplot_no_jitter_point_only.svg +1393 -0
- package/examples/dev_charts/scatterplot/scatterplot_no_jitter_with_bestfit.svg +1424 -0
- package/examples/dev_charts/scatterplot/scatterplot_no_jitter_with_loess_curve.svg +1402 -0
- package/examples/dev_charts/scatterplot/smooth_layer.js +322 -0
- package/examples/dev_charts/scatterplot.html +4560 -0
- package/examples/dodged_bar/dodged_bar.png +0 -0
- package/examples/dodged_bar/dodged_bar.svg +198 -0
- package/examples/dodged_bar/schema.json +41 -0
- package/examples/histogram/histogram_tutorial.svg +482 -0
- package/examples/histogram/histogram_tutorial_raw_data.json +362 -0
- package/examples/histogram/histogram_user_study.svg +578 -0
- package/examples/histogram/histogram_user_study_raw_data.json +362 -0
- package/examples/lineplot/lineplot_sample.svg +126 -0
- package/examples/lineplot/lineplot_sample_raw_data.json +1 -0
- package/examples/lineplot/point+lineplot_sample.svg +700 -0
- package/examples/other/audio_oscillator_boxplot.js +95 -0
- package/examples/other/barplot_labels.svg +314 -0
- package/examples/other/barplot_user_study.svg +313 -0
- package/examples/other/boxplot.html +927 -0
- package/examples/other/boxplot_data_frame.html +568 -0
- package/examples/other/boxplot_label.svg +751 -0
- package/examples/other/braille-display_boxplot.js +79 -0
- package/examples/other/control_boxplot.js +55 -0
- package/examples/other/draft.js +56 -0
- package/examples/other/getData.html +400 -0
- package/examples/other/getData.js +41 -0
- package/examples/other/ggplot_to_svg.R +371 -0
- package/examples/other/heatmap.svg +582 -0
- package/examples/other/heatmap_label.svg +608 -0
- package/examples/other/multiple_barplot.html +2250 -0
- package/examples/other/new_scatterplot_user_study_point_layer.json +122 -0
- package/examples/other/py_binder_output.html +1167 -0
- package/examples/other/scatterplot_label.svg +1429 -0
- package/examples/other/seaborn_plot.py +9 -0
- package/examples/other/svglite_bar.svg +136 -0
- package/examples/other/tutorial_boxplot.svg +727 -0
- package/examples/other/tutorial_boxplot_data.json +72 -0
- package/examples/other/user_study_boxplot.svg +676 -0
- package/examples/stacked_bar/schema.json +41 -0
- package/examples/stacked_bar/stack_bar.png +0 -0
- package/examples/stacked_bar/stacked_bar.svg +180 -0
- package/examples/stacked_normalized_bar/stacked_normalized_bar.png +0 -0
- package/examples/stacked_normalized_bar/stacked_normalized_bar.svg +189 -0
- package/examples/static/barplot.svg +263 -0
- package/examples/static/barplot_diamonds_gridSVG.svg +254 -0
- package/examples/static/boxplot.svg +424 -0
- package/examples/static/heatmap.svg +373 -0
- package/examples/static/heatmap_penguins_table.html +486 -0
- package/examples/static/scatterplot.svg +530 -0
- package/examples/svglite/task_heatmap.html +802 -0
- package/examples/svglite/task_heatmap.svg +111 -0
- package/examples/svglite/tutorial_bar.svg +136 -0
- package/examples/svglite/tutorial_bar_plot.html +504 -0
- package/examples/svglite/tutorial_boxplot.html +1850 -0
- package/examples/svglite/tutorial_boxplot.svg +727 -0
- package/examples/svglite/tutorial_scatterplot.html +3135 -0
- package/examples/svglite/tutorial_scatterplot.svg +311 -0
- package/gulpfile.js +49 -0
- package/index.html +40 -0
- package/jsconfig.json +10 -0
- package/jsdoc.json +19 -0
- package/package.json +47 -0
- package/src/css/styles.css +241 -0
- package/src/js/__tests__/audio.test.js +49 -0
- package/src/js/__tests__/constants.test.js +622 -0
- package/src/js/audio.js +575 -0
- package/src/js/barplot.js +254 -0
- package/src/js/boxplot.js +682 -0
- package/src/js/constants.js +1182 -0
- package/src/js/controls.js +3182 -0
- package/src/js/display.js +1124 -0
- package/src/js/heatmap.js +411 -0
- package/src/js/histogram.js +134 -0
- package/src/js/init.js +427 -0
- package/src/js/lineplot.js +219 -0
- package/src/js/scatterplot.js +619 -0
- package/src/js/segmented.js +268 -0
- package/user_study_pilot/binder_test.html +526 -0
- package/user_study_pilot/data/barplot_user_study.svg +492 -0
- package/user_study_pilot/data/barplot_user_study_raw_data.json +22 -0
- package/user_study_pilot/data/boxplot_tutorial.json +72 -0
- package/user_study_pilot/data/boxplot_tutorial_horizontal.svg +727 -0
- package/user_study_pilot/data/boxplot_user_study.json +52 -0
- package/user_study_pilot/data/boxplot_user_study_vertical.svg +675 -0
- package/user_study_pilot/data/boxplot_user_study_vertical_horizontal.svg +676 -0
- package/user_study_pilot/data/heatmap_user_study.svg +719 -0
- package/user_study_pilot/data/heatmap_user_study_raw_data.json +127 -0
- package/user_study_pilot/data/new_barplot_user_study.svg +269 -0
- package/user_study_pilot/data/new_heatmap_user_study.svg +367 -0
- package/user_study_pilot/data/new_scatterplot_user_study.svg +603 -0
- package/user_study_pilot/data/new_scatterplot_user_study_point_layer.json +122 -0
- package/user_study_pilot/data/scatterplot_user_study (1).svg +321 -0
- package/user_study_pilot/data/scatterplot_user_study.svg +603 -0
- package/user_study_pilot/data/scatterplot_user_study_point_layer.json +122 -0
- package/user_study_pilot/data/scatterplot_user_study_smooth_layer.json +322 -0
- package/user_study_pilot/intro.html +215 -0
- package/user_study_pilot/jaws_settings/Chrome.JDF +10 -0
- package/user_study_pilot/jaws_settings/Firefox.JDF +10 -0
- package/user_study_pilot/jaws_settings/backup_utf8/Chrome.JDF +10 -0
- package/user_study_pilot/jaws_settings/backup_utf8/Firefox.JDF +10 -0
- package/user_study_pilot/jaws_settings/backup_utf8/msedge.JDF +10 -0
- package/user_study_pilot/jaws_settings/msedge.JDF +10 -0
- package/user_study_pilot/nvda_settings/chrome.dic +10 -0
- package/user_study_pilot/nvda_settings/default.dic +10 -0
- package/user_study_pilot/nvda_settings/firefox.dic +10 -0
- package/user_study_pilot/nvda_settings/msedge.dic +10 -0
- package/user_study_pilot/scatterplot.html +4560 -0
- package/user_study_pilot/seaborn_test.html +1059 -0
- package/user_study_pilot/svglite_test.html +534 -0
- package/user_study_pilot/task1_bar_plot.html +1111 -0
- package/user_study_pilot/task2_heatmap.html +1661 -0
- package/user_study_pilot/task3_boxplot_horizontal.html +1690 -0
- package/user_study_pilot/task3_boxplot_vertical.html +1689 -0
- package/user_study_pilot/task4_scatterplot.html +2091 -0
- package/user_study_pilot/tutorial1_bar_plot.html +1159 -0
- package/user_study_pilot/tutorial2_heatmap.html +1276 -0
- package/user_study_pilot/tutorial3_boxplot_horizontal.html +1861 -0
- package/user_study_pilot/tutorial3_boxplot_vertical.html +1807 -0
- package/user_study_pilot/tutorial4_scatterplot.html +5893 -0
- package/user_study_pilot/tutorial5_histogram.html +1553 -0
- package/user_study_pilot/tutorial6_lineplot.html +1011 -0
- package/user_study_pilot/tutorial7_stacked.html +763 -0
- package/user_study_pilot/tutorial8_stacked_normalized.html +796 -0
- package/user_study_pilot/tutorial9_dodged_bar.html +831 -0
- package/user_study_pilot/voiceover_settings/user_study_VoiceOver Archive.voprefs +573 -0
|
@@ -0,0 +1,311 @@
|
|
|
1
|
+
<?xml version='1.0' encoding='UTF-8' ?>
|
|
2
|
+
<svg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' class='svglite' width='720.00pt' height='576.00pt' viewBox='0 0 720.00 576.00'>
|
|
3
|
+
<defs>
|
|
4
|
+
<style type='text/css'><![CDATA[
|
|
5
|
+
.svglite line, .svglite polyline, .svglite polygon, .svglite path, .svglite rect, .svglite circle {
|
|
6
|
+
fill: none;
|
|
7
|
+
stroke: #000000;
|
|
8
|
+
stroke-linecap: round;
|
|
9
|
+
stroke-linejoin: round;
|
|
10
|
+
stroke-miterlimit: 10.00;
|
|
11
|
+
}
|
|
12
|
+
.svglite text {
|
|
13
|
+
white-space: pre;
|
|
14
|
+
}
|
|
15
|
+
]]></style>
|
|
16
|
+
</defs>
|
|
17
|
+
<rect width='100%' height='100%' style='stroke: none; fill: #FFFFFF;'/>
|
|
18
|
+
<defs>
|
|
19
|
+
<clipPath id='cpMC4wMHw3MjAuMDB8MC4wMHw1NzYuMDA='>
|
|
20
|
+
<rect x='0.00' y='0.00' width='720.00' height='576.00' />
|
|
21
|
+
</clipPath>
|
|
22
|
+
</defs>
|
|
23
|
+
<g clip-path='url(#cpMC4wMHw3MjAuMDB8MC4wMHw1NzYuMDA=)'>
|
|
24
|
+
<rect x='0.00' y='0.00' width='720.00' height='576.00' style='stroke-width: 1.07; stroke: #FFFFFF; fill: #FFFFFF;' />
|
|
25
|
+
</g>
|
|
26
|
+
<defs>
|
|
27
|
+
<clipPath id='cpMzMuMTR8NzE0LjUyfDIzLjE4fDU0NC41MA=='>
|
|
28
|
+
<rect x='33.14' y='23.18' width='681.38' height='521.33' />
|
|
29
|
+
</clipPath>
|
|
30
|
+
</defs>
|
|
31
|
+
<g clip-path='url(#cpMzMuMTR8NzE0LjUyfDIzLjE4fDU0NC41MA==)'>
|
|
32
|
+
<rect x='33.14' y='23.18' width='681.38' height='521.33' style='stroke-width: 1.07; stroke: none; fill: #EBEBEB;' />
|
|
33
|
+
<polyline points='33.14,476.38 714.52,476.38 ' style='stroke-width: 0.53; stroke: #FFFFFF; stroke-linecap: butt;' />
|
|
34
|
+
<polyline points='33.14,328.27 714.52,328.27 ' style='stroke-width: 0.53; stroke: #FFFFFF; stroke-linecap: butt;' />
|
|
35
|
+
<polyline points='33.14,180.17 714.52,180.17 ' style='stroke-width: 0.53; stroke: #FFFFFF; stroke-linecap: butt;' />
|
|
36
|
+
<polyline points='33.14,32.06 714.52,32.06 ' style='stroke-width: 0.53; stroke: #FFFFFF; stroke-linecap: butt;' />
|
|
37
|
+
<polyline points='52.64,544.50 52.64,23.18 ' style='stroke-width: 0.53; stroke: #FFFFFF; stroke-linecap: butt;' />
|
|
38
|
+
<polyline points='167.35,544.50 167.35,23.18 ' style='stroke-width: 0.53; stroke: #FFFFFF; stroke-linecap: butt;' />
|
|
39
|
+
<polyline points='282.06,544.50 282.06,23.18 ' style='stroke-width: 0.53; stroke: #FFFFFF; stroke-linecap: butt;' />
|
|
40
|
+
<polyline points='396.77,544.50 396.77,23.18 ' style='stroke-width: 0.53; stroke: #FFFFFF; stroke-linecap: butt;' />
|
|
41
|
+
<polyline points='511.48,544.50 511.48,23.18 ' style='stroke-width: 0.53; stroke: #FFFFFF; stroke-linecap: butt;' />
|
|
42
|
+
<polyline points='626.19,544.50 626.19,23.18 ' style='stroke-width: 0.53; stroke: #FFFFFF; stroke-linecap: butt;' />
|
|
43
|
+
<polyline points='33.14,402.32 714.52,402.32 ' style='stroke-width: 1.07; stroke: #FFFFFF; stroke-linecap: butt;' />
|
|
44
|
+
<polyline points='33.14,254.22 714.52,254.22 ' style='stroke-width: 1.07; stroke: #FFFFFF; stroke-linecap: butt;' />
|
|
45
|
+
<polyline points='33.14,106.12 714.52,106.12 ' style='stroke-width: 1.07; stroke: #FFFFFF; stroke-linecap: butt;' />
|
|
46
|
+
<polyline points='109.99,544.50 109.99,23.18 ' style='stroke-width: 1.07; stroke: #FFFFFF; stroke-linecap: butt;' />
|
|
47
|
+
<polyline points='224.71,544.50 224.71,23.18 ' style='stroke-width: 1.07; stroke: #FFFFFF; stroke-linecap: butt;' />
|
|
48
|
+
<polyline points='339.42,544.50 339.42,23.18 ' style='stroke-width: 1.07; stroke: #FFFFFF; stroke-linecap: butt;' />
|
|
49
|
+
<polyline points='454.13,544.50 454.13,23.18 ' style='stroke-width: 1.07; stroke: #FFFFFF; stroke-linecap: butt;' />
|
|
50
|
+
<polyline points='568.84,544.50 568.84,23.18 ' style='stroke-width: 1.07; stroke: #FFFFFF; stroke-linecap: butt;' />
|
|
51
|
+
<polyline points='683.55,544.50 683.55,23.18 ' style='stroke-width: 1.07; stroke: #FFFFFF; stroke-linecap: butt;' />
|
|
52
|
+
<circle cx='87.05' cy='269.03' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
53
|
+
<circle cx='87.05' cy='269.03' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
54
|
+
<circle cx='109.99' cy='239.41' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
55
|
+
<circle cx='109.99' cy='254.22' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
56
|
+
<circle cx='201.76' cy='313.46' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
57
|
+
<circle cx='201.76' cy='313.46' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
58
|
+
<circle cx='236.18' cy='298.65' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
59
|
+
<circle cx='87.05' cy='313.46' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
60
|
+
<circle cx='87.05' cy='328.27' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
61
|
+
<circle cx='109.99' cy='283.84' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
62
|
+
<circle cx='109.99' cy='298.65' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
63
|
+
<circle cx='201.76' cy='328.27' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
64
|
+
<circle cx='201.76' cy='328.27' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
65
|
+
<circle cx='236.18' cy='328.27' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
66
|
+
<circle cx='236.18' cy='328.27' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
67
|
+
<circle cx='201.76' cy='343.08' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
68
|
+
<circle cx='236.18' cy='328.27' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
69
|
+
<circle cx='362.36' cy='357.89' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
70
|
+
<circle cx='488.54' cy='402.32' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
71
|
+
<circle cx='488.54' cy='476.38' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
72
|
+
<circle cx='488.54' cy='402.32' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
73
|
+
<circle cx='534.42' cy='446.76' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
74
|
+
<circle cx='568.84' cy='446.76' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
75
|
+
<circle cx='534.42' cy='313.46' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
76
|
+
<circle cx='534.42' cy='357.89' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
77
|
+
<circle cx='591.78' cy='313.46' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
78
|
+
<circle cx='591.78' cy='328.27' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
79
|
+
<circle cx='683.55' cy='343.08' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
80
|
+
<circle cx='488.54' cy='417.13' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
81
|
+
<circle cx='488.54' cy='491.19' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
82
|
+
<circle cx='534.42' cy='476.38' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
83
|
+
<circle cx='626.19' cy='446.76' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
84
|
+
<circle cx='155.88' cy='298.65' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
85
|
+
<circle cx='155.88' cy='254.22' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
86
|
+
<circle cx='236.18' cy='313.46' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
87
|
+
<circle cx='282.06' cy='269.03' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
88
|
+
<circle cx='293.53' cy='313.46' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
89
|
+
<circle cx='155.88' cy='343.08' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
90
|
+
<circle cx='224.71' cy='343.08' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
91
|
+
<circle cx='259.12' cy='372.70' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
92
|
+
<circle cx='259.12' cy='372.70' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
93
|
+
<circle cx='259.12' cy='343.08' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
94
|
+
<circle cx='259.12' cy='343.08' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
95
|
+
<circle cx='259.12' cy='446.76' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
96
|
+
<circle cx='316.47' cy='372.70' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
97
|
+
<circle cx='316.47' cy='387.51' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
98
|
+
<circle cx='316.47' cy='357.89' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
99
|
+
<circle cx='339.42' cy='357.89' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
100
|
+
<circle cx='305.00' cy='417.13' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
101
|
+
<circle cx='305.00' cy='431.94' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
102
|
+
<circle cx='327.94' cy='446.76' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
103
|
+
<circle cx='327.94' cy='446.76' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
104
|
+
<circle cx='419.71' cy='417.13' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
105
|
+
<circle cx='419.71' cy='417.13' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
106
|
+
<circle cx='419.71' cy='520.81' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
107
|
+
<circle cx='477.07' cy='446.76' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
108
|
+
<circle cx='477.07' cy='476.38' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
109
|
+
<circle cx='327.94' cy='446.76' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
110
|
+
<circle cx='419.71' cy='446.76' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
111
|
+
<circle cx='419.71' cy='520.81' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
112
|
+
<circle cx='419.71' cy='446.76' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
113
|
+
<circle cx='477.07' cy='461.57' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
114
|
+
<circle cx='534.42' cy='431.94' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
115
|
+
<circle cx='557.37' cy='476.38' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
116
|
+
<circle cx='419.71' cy='461.57' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
117
|
+
<circle cx='419.71' cy='520.81' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
118
|
+
<circle cx='419.71' cy='446.76' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
119
|
+
<circle cx='419.71' cy='446.76' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
120
|
+
<circle cx='419.71' cy='461.57' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
121
|
+
<circle cx='419.71' cy='520.81' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
122
|
+
<circle cx='477.07' cy='476.38' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
123
|
+
<circle cx='477.07' cy='461.57' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
124
|
+
<circle cx='534.42' cy='446.76' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
125
|
+
<circle cx='557.37' cy='476.38' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
126
|
+
<circle cx='408.24' cy='446.76' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
127
|
+
<circle cx='500.01' cy='446.76' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
128
|
+
<circle cx='500.01' cy='431.94' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
129
|
+
<circle cx='339.42' cy='446.76' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
130
|
+
<circle cx='339.42' cy='417.13' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
131
|
+
<circle cx='339.42' cy='446.76' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
132
|
+
<circle cx='339.42' cy='417.13' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
133
|
+
<circle cx='408.24' cy='417.13' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
134
|
+
<circle cx='454.13' cy='446.76' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
135
|
+
<circle cx='362.36' cy='446.76' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
136
|
+
<circle cx='362.36' cy='446.76' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
137
|
+
<circle cx='408.24' cy='461.57' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
138
|
+
<circle cx='408.24' cy='461.57' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
139
|
+
<circle cx='408.24' cy='446.76' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
140
|
+
<circle cx='500.01' cy='476.38' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
141
|
+
<circle cx='500.01' cy='446.76' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
142
|
+
<circle cx='316.47' cy='313.46' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
143
|
+
<circle cx='316.47' cy='328.27' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
144
|
+
<circle cx='339.42' cy='313.46' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
145
|
+
<circle cx='339.42' cy='343.08' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
146
|
+
<circle cx='408.24' cy='387.51' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
147
|
+
<circle cx='408.24' cy='372.70' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
148
|
+
<circle cx='408.24' cy='357.89' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
149
|
+
<circle cx='408.24' cy='372.70' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
150
|
+
<circle cx='500.01' cy='402.32' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
151
|
+
<circle cx='64.11' cy='209.79' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
152
|
+
<circle cx='64.11' cy='224.60' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
153
|
+
<circle cx='64.11' cy='224.60' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
154
|
+
<circle cx='64.11' cy='269.03' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
155
|
+
<circle cx='64.11' cy='224.60' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
156
|
+
<circle cx='87.05' cy='194.98' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
157
|
+
<circle cx='87.05' cy='165.36' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
158
|
+
<circle cx='87.05' cy='165.36' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
159
|
+
<circle cx='109.99' cy='269.03' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
160
|
+
<circle cx='155.88' cy='313.46' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
161
|
+
<circle cx='155.88' cy='298.65' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
162
|
+
<circle cx='155.88' cy='254.22' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
163
|
+
<circle cx='155.88' cy='239.41' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
164
|
+
<circle cx='167.35' cy='313.46' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
165
|
+
<circle cx='167.35' cy='313.46' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
166
|
+
<circle cx='259.12' cy='283.84' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
167
|
+
<circle cx='109.99' cy='313.46' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
168
|
+
<circle cx='109.99' cy='269.03' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
169
|
+
<circle cx='109.99' cy='283.84' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
170
|
+
<circle cx='109.99' cy='298.65' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
171
|
+
<circle cx='190.29' cy='343.08' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
172
|
+
<circle cx='190.29' cy='343.08' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
173
|
+
<circle cx='190.29' cy='343.08' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
174
|
+
<circle cx='224.71' cy='372.70' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
175
|
+
<circle cx='305.00' cy='417.13' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
176
|
+
<circle cx='339.42' cy='402.32' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
177
|
+
<circle cx='419.71' cy='446.76' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
178
|
+
<circle cx='419.71' cy='520.81' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
179
|
+
<circle cx='419.71' cy='417.13' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
180
|
+
<circle cx='534.42' cy='431.94' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
181
|
+
<circle cx='580.31' cy='491.19' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
182
|
+
<circle cx='339.42' cy='476.38' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
183
|
+
<circle cx='362.36' cy='431.94' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
184
|
+
<circle cx='385.30' cy='431.94' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
185
|
+
<circle cx='408.24' cy='476.38' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
186
|
+
<circle cx='500.01' cy='446.76' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
187
|
+
<circle cx='500.01' cy='461.57' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
188
|
+
<circle cx='500.01' cy='431.94' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
189
|
+
<circle cx='339.42' cy='446.76' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
190
|
+
<circle cx='339.42' cy='417.13' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
191
|
+
<circle cx='408.24' cy='417.13' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
192
|
+
<circle cx='454.13' cy='446.76' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
193
|
+
<circle cx='155.88' cy='269.03' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
194
|
+
<circle cx='155.88' cy='298.65' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
195
|
+
<circle cx='167.35' cy='239.41' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
196
|
+
<circle cx='167.35' cy='224.60' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
197
|
+
<circle cx='282.06' cy='298.65' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
198
|
+
<circle cx='282.06' cy='313.46' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
199
|
+
<circle cx='224.71' cy='313.46' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
200
|
+
<circle cx='224.71' cy='328.27' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
201
|
+
<circle cx='282.06' cy='328.27' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
202
|
+
<circle cx='259.12' cy='446.76' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
203
|
+
<circle cx='259.12' cy='446.76' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
204
|
+
<circle cx='339.42' cy='402.32' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
205
|
+
<circle cx='522.95' cy='431.94' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
206
|
+
<circle cx='236.18' cy='313.46' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
207
|
+
<circle cx='316.47' cy='313.46' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
208
|
+
<circle cx='316.47' cy='298.65' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
209
|
+
<circle cx='316.47' cy='283.84' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
210
|
+
<circle cx='488.54' cy='328.27' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
211
|
+
<circle cx='167.35' cy='328.27' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
212
|
+
<circle cx='167.35' cy='343.08' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
213
|
+
<circle cx='167.35' cy='298.65' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
214
|
+
<circle cx='167.35' cy='328.27' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
215
|
+
<circle cx='167.35' cy='313.46' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
216
|
+
<circle cx='167.35' cy='357.89' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
217
|
+
<circle cx='132.94' cy='313.46' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
218
|
+
<circle cx='132.94' cy='313.46' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
219
|
+
<circle cx='167.35' cy='313.46' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
220
|
+
<circle cx='167.35' cy='313.46' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
221
|
+
<circle cx='167.35' cy='328.27' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
222
|
+
<circle cx='167.35' cy='298.65' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
223
|
+
<circle cx='167.35' cy='328.27' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
224
|
+
<circle cx='167.35' cy='298.65' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
225
|
+
<circle cx='190.29' cy='402.32' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
226
|
+
<circle cx='190.29' cy='402.32' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
227
|
+
<circle cx='270.59' cy='417.13' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
228
|
+
<circle cx='270.59' cy='446.76' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
229
|
+
<circle cx='339.42' cy='402.32' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
230
|
+
<circle cx='419.71' cy='446.76' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
231
|
+
<circle cx='132.94' cy='269.03' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
232
|
+
<circle cx='132.94' cy='298.65' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
233
|
+
<circle cx='155.88' cy='239.41' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
234
|
+
<circle cx='155.88' cy='239.41' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
235
|
+
<circle cx='224.71' cy='313.46' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
236
|
+
<circle cx='224.71' cy='313.46' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
237
|
+
<circle cx='282.06' cy='283.84' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
238
|
+
<circle cx='132.94' cy='298.65' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
239
|
+
<circle cx='132.94' cy='269.03' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
240
|
+
<circle cx='155.88' cy='239.41' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
241
|
+
<circle cx='155.88' cy='239.41' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
242
|
+
<circle cx='224.71' cy='313.46' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
243
|
+
<circle cx='224.71' cy='313.46' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
244
|
+
<circle cx='259.12' cy='298.65' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
245
|
+
<circle cx='87.05' cy='254.22' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
246
|
+
<circle cx='87.05' cy='209.79' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
247
|
+
<circle cx='87.05' cy='180.17' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
248
|
+
<circle cx='87.05' cy='150.55' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
249
|
+
<circle cx='87.05' cy='180.17' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
250
|
+
<circle cx='419.71' cy='476.38' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
251
|
+
<circle cx='534.42' cy='431.94' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
252
|
+
<circle cx='190.29' cy='402.32' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
253
|
+
<circle cx='190.29' cy='402.32' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
254
|
+
<circle cx='190.29' cy='372.70' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
255
|
+
<circle cx='270.59' cy='446.76' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
256
|
+
<circle cx='270.59' cy='417.13' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
257
|
+
<circle cx='339.42' cy='431.94' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
258
|
+
<circle cx='339.42' cy='402.32' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
259
|
+
<circle cx='109.99' cy='269.03' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
260
|
+
<circle cx='109.99' cy='313.46' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
261
|
+
<circle cx='109.99' cy='269.03' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
262
|
+
<circle cx='109.99' cy='269.03' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
263
|
+
<circle cx='201.76' cy='343.08' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
264
|
+
<circle cx='98.52' cy='46.87' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
265
|
+
<circle cx='109.99' cy='269.03' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
266
|
+
<circle cx='109.99' cy='313.46' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
267
|
+
<circle cx='109.99' cy='269.03' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
268
|
+
<circle cx='109.99' cy='269.03' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
269
|
+
<circle cx='167.35' cy='269.03' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
270
|
+
<circle cx='167.35' cy='269.03' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
271
|
+
<circle cx='201.76' cy='357.89' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
272
|
+
<circle cx='201.76' cy='343.08' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
273
|
+
<circle cx='98.52' cy='46.87' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
274
|
+
<circle cx='98.52' cy='91.31' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
275
|
+
<circle cx='109.99' cy='269.03' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
276
|
+
<circle cx='109.99' cy='313.46' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
277
|
+
<circle cx='167.35' cy='283.84' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
278
|
+
<circle cx='167.35' cy='269.03' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
279
|
+
<circle cx='87.05' cy='269.03' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
280
|
+
<circle cx='87.05' cy='269.03' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
281
|
+
<circle cx='109.99' cy='283.84' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
282
|
+
<circle cx='109.99' cy='269.03' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
283
|
+
<circle cx='201.76' cy='313.46' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
284
|
+
<circle cx='201.76' cy='313.46' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
285
|
+
<circle cx='293.53' cy='313.46' r='1.95' style='stroke-width: 0.71; fill: #000000;' />
|
|
286
|
+
<polyline points='64.11,208.41 71.95,217.03 79.79,225.45 87.63,233.66 95.47,241.62 103.31,249.33 111.16,256.83 119.00,264.09 126.84,271.13 134.68,277.94 142.52,284.55 150.36,290.97 158.20,297.19 166.04,303.16 173.88,308.88 181.72,314.42 189.57,319.80 197.41,324.88 205.25,329.48 213.09,333.75 220.93,337.83 228.77,341.85 236.61,345.96 244.45,350.05 252.29,353.97 260.13,357.77 267.98,361.48 275.82,365.15 283.66,368.79 291.50,372.47 299.34,376.20 307.18,380.03 315.02,384.00 322.86,388.13 330.70,392.49 338.54,397.19 346.39,402.15 354.23,407.25 362.07,412.35 369.91,417.32 377.75,422.04 385.59,426.38 393.43,430.21 401.27,433.40 409.11,435.83 416.95,437.81 424.80,439.58 432.64,441.12 440.48,442.42 448.32,443.46 456.16,444.21 464.00,444.68 471.84,444.82 479.68,444.64 487.52,444.11 495.36,443.25 503.21,442.10 511.05,440.66 518.89,438.93 526.73,436.91 534.57,434.60 542.41,432.01 550.25,429.12 558.09,425.95 565.93,422.49 573.77,418.74 581.62,414.71 589.46,410.39 597.30,405.78 605.14,400.88 612.98,395.70 620.82,390.22 628.66,384.47 636.50,378.42 644.34,372.09 652.18,365.48 660.03,358.58 667.87,351.39 675.71,343.91 683.55,336.16 ' style='stroke-width: 2.13; stroke: #3366FF; stroke-linecap: butt;' />
|
|
287
|
+
</g>
|
|
288
|
+
<g clip-path='url(#cpMC4wMHw3MjAuMDB8MC4wMHw1NzYuMDA=)'>
|
|
289
|
+
<text x='28.21' y='405.47' text-anchor='end' style='font-size: 8.80px;fill: #4D4D4D; font-family: "Arial";' textLength='9.79px' lengthAdjust='spacingAndGlyphs'>20</text>
|
|
290
|
+
<text x='28.21' y='257.37' text-anchor='end' style='font-size: 8.80px;fill: #4D4D4D; font-family: "Arial";' textLength='9.79px' lengthAdjust='spacingAndGlyphs'>30</text>
|
|
291
|
+
<text x='28.21' y='109.27' text-anchor='end' style='font-size: 8.80px;fill: #4D4D4D; font-family: "Arial";' textLength='9.79px' lengthAdjust='spacingAndGlyphs'>40</text>
|
|
292
|
+
<polyline points='30.40,402.32 33.14,402.32 ' style='stroke-width: 1.07; stroke: #333333; stroke-linecap: butt;' />
|
|
293
|
+
<polyline points='30.40,254.22 33.14,254.22 ' style='stroke-width: 1.07; stroke: #333333; stroke-linecap: butt;' />
|
|
294
|
+
<polyline points='30.40,106.12 33.14,106.12 ' style='stroke-width: 1.07; stroke: #333333; stroke-linecap: butt;' />
|
|
295
|
+
<polyline points='109.99,547.24 109.99,544.50 ' style='stroke-width: 1.07; stroke: #333333; stroke-linecap: butt;' />
|
|
296
|
+
<polyline points='224.71,547.24 224.71,544.50 ' style='stroke-width: 1.07; stroke: #333333; stroke-linecap: butt;' />
|
|
297
|
+
<polyline points='339.42,547.24 339.42,544.50 ' style='stroke-width: 1.07; stroke: #333333; stroke-linecap: butt;' />
|
|
298
|
+
<polyline points='454.13,547.24 454.13,544.50 ' style='stroke-width: 1.07; stroke: #333333; stroke-linecap: butt;' />
|
|
299
|
+
<polyline points='568.84,547.24 568.84,544.50 ' style='stroke-width: 1.07; stroke: #333333; stroke-linecap: butt;' />
|
|
300
|
+
<polyline points='683.55,547.24 683.55,544.50 ' style='stroke-width: 1.07; stroke: #333333; stroke-linecap: butt;' />
|
|
301
|
+
<text x='109.99' y='555.74' text-anchor='middle' style='font-size: 8.80px;fill: #4D4D4D; font-family: "Arial";' textLength='4.90px' lengthAdjust='spacingAndGlyphs'>2</text>
|
|
302
|
+
<text x='224.71' y='555.74' text-anchor='middle' style='font-size: 8.80px;fill: #4D4D4D; font-family: "Arial";' textLength='4.90px' lengthAdjust='spacingAndGlyphs'>3</text>
|
|
303
|
+
<text x='339.42' y='555.74' text-anchor='middle' style='font-size: 8.80px;fill: #4D4D4D; font-family: "Arial";' textLength='4.90px' lengthAdjust='spacingAndGlyphs'>4</text>
|
|
304
|
+
<text x='454.13' y='555.74' text-anchor='middle' style='font-size: 8.80px;fill: #4D4D4D; font-family: "Arial";' textLength='4.90px' lengthAdjust='spacingAndGlyphs'>5</text>
|
|
305
|
+
<text x='568.84' y='555.74' text-anchor='middle' style='font-size: 8.80px;fill: #4D4D4D; font-family: "Arial";' textLength='4.90px' lengthAdjust='spacingAndGlyphs'>6</text>
|
|
306
|
+
<text x='683.55' y='555.74' text-anchor='middle' style='font-size: 8.80px;fill: #4D4D4D; font-family: "Arial";' textLength='4.90px' lengthAdjust='spacingAndGlyphs'>7</text>
|
|
307
|
+
<text x='373.83' y='568.20' text-anchor='middle' style='font-size: 11.00px; font-family: "Arial";' textLength='103.97px' lengthAdjust='spacingAndGlyphs'>Engine Displacement</text>
|
|
308
|
+
<text transform='translate(13.36,283.84) rotate(-90)' text-anchor='middle' style='font-size: 11.00px; font-family: "Arial";' textLength='83.77px' lengthAdjust='spacingAndGlyphs'>Highway Mileage</text>
|
|
309
|
+
<text x='33.14' y='14.93' style='font-size: 13.20px; font-family: "Arial";' textLength='250.03px' lengthAdjust='spacingAndGlyphs'>Highway Mileage by Engine Displacement.</text>
|
|
310
|
+
</g>
|
|
311
|
+
</svg>
|
package/gulpfile.js
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
// gulpfile.js
|
|
2
|
+
// This is the config for gulp, which is a task runner.
|
|
3
|
+
// It takes all the JS and CSS files and bundles them into one JS file and one CSS file.
|
|
4
|
+
// To run: navigate to the root directory of this project and run "gulp"
|
|
5
|
+
|
|
6
|
+
var gulp = require('gulp');
|
|
7
|
+
var concat = require('gulp-concat');
|
|
8
|
+
var terser = require('gulp-terser');
|
|
9
|
+
var rename = require('gulp-rename');
|
|
10
|
+
var concatCss = require('gulp-concat-css');
|
|
11
|
+
var cleanCss = require('gulp-clean-css');
|
|
12
|
+
|
|
13
|
+
// js
|
|
14
|
+
gulp.task('scripts', function () {
|
|
15
|
+
return gulp
|
|
16
|
+
.src([
|
|
17
|
+
'./src/js/constants.js',
|
|
18
|
+
'./src/js/audio.js',
|
|
19
|
+
'./src/js/display.js',
|
|
20
|
+
'./src/js/barplot.js',
|
|
21
|
+
'./src/js/boxplot.js',
|
|
22
|
+
'./src/js/heatmap.js',
|
|
23
|
+
'./src/js/scatterplot.js',
|
|
24
|
+
'./src/js/histogram.js',
|
|
25
|
+
'./src/js/lineplot.js',
|
|
26
|
+
'./src/js/segmented.js',
|
|
27
|
+
'./src/js/controls.js',
|
|
28
|
+
'./src/js/init.js',
|
|
29
|
+
]) // order matters here
|
|
30
|
+
.pipe(concat('maidr.js'))
|
|
31
|
+
.pipe(gulp.dest('dist'))
|
|
32
|
+
.pipe(terser())
|
|
33
|
+
.pipe(rename({ extname: '.min.js' }))
|
|
34
|
+
.pipe(gulp.dest('dist'));
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
// css
|
|
38
|
+
gulp.task('styles', function () {
|
|
39
|
+
return gulp
|
|
40
|
+
.src('src/css/*.css')
|
|
41
|
+
.pipe(concatCss('styles.css'))
|
|
42
|
+
.pipe(gulp.dest('dist')) // destination folder for unminified version
|
|
43
|
+
.pipe(cleanCss())
|
|
44
|
+
.pipe(rename({ extname: '.min.css' }))
|
|
45
|
+
.pipe(gulp.dest('dist')); // destination folder for minified version
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
// default task now runs both scripts and styles tasks
|
|
49
|
+
gulp.task('default', gulp.series('scripts', 'styles'));
|
package/index.html
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8" />
|
|
5
|
+
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
7
|
+
<title>User Test Site for Accessible Visualization</title>
|
|
8
|
+
</head>
|
|
9
|
+
|
|
10
|
+
<body>
|
|
11
|
+
<h1>Sample Accessible Visualization</h1>
|
|
12
|
+
|
|
13
|
+
<p>
|
|
14
|
+
The following graphs demonstrate multimodal access and interactive data
|
|
15
|
+
representation for some widely used visualizations.
|
|
16
|
+
</p>
|
|
17
|
+
<p>
|
|
18
|
+
This work has been developed by the Accessible Computing Lab directed by
|
|
19
|
+
<a href="https://ischool.illinois.edu/people/jooyoung-seo" target="_blank"
|
|
20
|
+
>Dr. JooYoung Seo</a
|
|
21
|
+
>
|
|
22
|
+
in the School of Information Sciences at the University of Illinois at
|
|
23
|
+
Urbana-Champaign.
|
|
24
|
+
</p>
|
|
25
|
+
|
|
26
|
+
<ul>
|
|
27
|
+
<li><a href="dev_charts/barplot.html" target="_blank">Bar plot.</a></li>
|
|
28
|
+
<li><a href="dev_charts/heatmap.html" target="_blank">Heat map.</a></li>
|
|
29
|
+
<li><a href="dev_charts/boxplot.html" target="_blank">Box plot.</a></li>
|
|
30
|
+
<li>
|
|
31
|
+
<a href="dev_charts/scatterplot.html" target="_blank">Scatter plot.</a>
|
|
32
|
+
</li>
|
|
33
|
+
</ul>
|
|
34
|
+
|
|
35
|
+
<footer>
|
|
36
|
+
© 2023 Accessible Computing Lab at the University of Illinois at
|
|
37
|
+
Urbana-Champaign All Rights Reserved
|
|
38
|
+
</footer>
|
|
39
|
+
</body>
|
|
40
|
+
</html>
|
package/jsconfig.json
ADDED
package/jsdoc.json
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"source": {
|
|
3
|
+
"include": ["./src/js"],
|
|
4
|
+
"includePattern": ".+\\.js(doc|x)?$",
|
|
5
|
+
"excludePattern": "(^|\\/|\\\\)_"
|
|
6
|
+
},
|
|
7
|
+
"plugins": [],
|
|
8
|
+
"templates": {
|
|
9
|
+
"cleverLinks": false,
|
|
10
|
+
"monospaceLinks": false
|
|
11
|
+
},
|
|
12
|
+
"opts": {
|
|
13
|
+
"destination": "./docs/",
|
|
14
|
+
"encoding": "utf8",
|
|
15
|
+
"private": true,
|
|
16
|
+
"recurse": true,
|
|
17
|
+
"template": "node_modules/minami"
|
|
18
|
+
}
|
|
19
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "maidr",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "maidr: Multimodal Access and Interactive Data Representation. maidr is a system for non-visual access and control of statistical charts. It aims to provide an inclusive experience for users with visual impairments by offering multiple modes of interaction: braille, text, and sonification. This comprehensive approach enhances the accessibility of data visualization and encourages a multi-model exploration on visualization. Check out the current build: [MAIDR Demo](https://uiuc-ischool-accessible-computing-lab.github.io/maidr/user_study_pilot/intro.html).",
|
|
5
|
+
"main": "webpack.config.js",
|
|
6
|
+
"scripts": {
|
|
7
|
+
"build": "gulp",
|
|
8
|
+
"test": "jest",
|
|
9
|
+
"lint": "eslint .",
|
|
10
|
+
"format": "prettier --write .",
|
|
11
|
+
"docs": "jsdoc -c jsdoc.json"
|
|
12
|
+
},
|
|
13
|
+
"repository": {
|
|
14
|
+
"type": "git",
|
|
15
|
+
"url": "git+https://github.com/uiuc-ischool-accessible-computing-lab/maidr.git"
|
|
16
|
+
},
|
|
17
|
+
"keywords": [],
|
|
18
|
+
"author": "JooYoung Seo",
|
|
19
|
+
"license": "GPL-3.0",
|
|
20
|
+
"bugs": {
|
|
21
|
+
"url": "https://github.com/uiuc-ischool-accessible-computing-lab/maidr/issues"
|
|
22
|
+
},
|
|
23
|
+
"homepage": "https://github.com/uiuc-ischool-accessible-computing-lab/maidr#readme",
|
|
24
|
+
"devDependencies": {
|
|
25
|
+
"eslint": "^8.43.0",
|
|
26
|
+
"eslint-config-prettier": "^8.8.0",
|
|
27
|
+
"eslint-plugin-prettier": "^4.2.1",
|
|
28
|
+
"gulp": "^4.0.2",
|
|
29
|
+
"gulp-clean-css": "^4.3.0",
|
|
30
|
+
"gulp-concat": "^2.6.1",
|
|
31
|
+
"gulp-concat-css": "^3.1.0",
|
|
32
|
+
"gulp-rename": "^2.0.0",
|
|
33
|
+
"gulp-terser": "^2.1.0",
|
|
34
|
+
"jest": "^29.7.0",
|
|
35
|
+
"jest-environment-jsdom": "^29.7.0",
|
|
36
|
+
"jsdoc": "^4.0.2",
|
|
37
|
+
"prettier": "^2.8.8"
|
|
38
|
+
},
|
|
39
|
+
"dependencies": {
|
|
40
|
+
"mi": "^1.0.0",
|
|
41
|
+
"minami": "^1.2.3",
|
|
42
|
+
"taffydb": "^2.7.3"
|
|
43
|
+
},
|
|
44
|
+
"jest": {
|
|
45
|
+
"testEnvironment": "jsdom"
|
|
46
|
+
}
|
|
47
|
+
}
|