From 6c95bc435328eea1b54a51eb65147528f42fc019 Mon Sep 17 00:00:00 2001 From: Tykayn Date: Thu, 9 Feb 2023 23:29:37 +0100 Subject: [PATCH] add graphs --- Makefile | 10 +- ...shot 2023-02-09 at 23-26-06 Screenshot.png | Bin 0 -> 92060 bytes donut/data.csv | 2 +- donut/graphs.mjs | 212 ++++++----- donut/index.html | 30 +- donut/style.css | 45 ++- emploi-du-temps/output.org | 123 ------ graphs/data.csv | 4 + graphs/graphs.mjs | 105 +++++ graphs/index.html | 16 + graphs/style.css | 3 + package.json | 1 + yarn.lock | 358 +++++++++++++++++- 13 files changed, 667 insertions(+), 242 deletions(-) create mode 100644 donut/Screenshot 2023-02-09 at 23-26-06 Screenshot.png diff --git a/Makefile b/Makefile index 6c488b3..6198969 100644 --- a/Makefile +++ b/Makefile @@ -9,9 +9,9 @@ copyTasksJson : echo "update du fichier tasks.json dans le dossier de sources depuis Nextcloud" cp ~/Nextcloud/textes/orgmode/tasks.json sources/ npm start; -render : - serve output - firefox http://localhost:3000/output_all_tasks_report +render: + serve output; + firefox http://localhost:3000/output_all_tasks_report; folders: - rm -rf emploi-du-temps/folders_build/* - node emploi-du-temps/folder_from_tasks.mjs \ No newline at end of file + rm -rf emploi-du-temps/folders_build/*; + node emploi-du-temps/folder_from_tasks.mjs; \ No newline at end of file diff --git a/donut/Screenshot 2023-02-09 at 23-26-06 Screenshot.png b/donut/Screenshot 2023-02-09 at 23-26-06 Screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..b7611e18edeaf1c70957bdeaeb815516c836a7eb GIT binary patch literal 92060 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�)uN0(RL6u8=v^=t^*cNBSEE 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 z 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�msD*%6UV{M8m49jE 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 P!5>9AHQ9nYCjS2iK`>RR literal 0 HcmV?d00001 diff --git a/donut/data.csv b/donut/data.csv index b68def2..2979541 100644 --- a/donut/data.csv +++ b/donut/data.csv @@ -1,4 +1,4 @@ -letter,cout +label,valeur 12,50 15,55 30,85 \ No newline at end of file diff --git a/donut/graphs.mjs b/donut/graphs.mjs index 683df05..8d5363e 100644 --- a/donut/graphs.mjs +++ b/donut/graphs.mjs @@ -1,105 +1,127 @@ -//propriétés visuelles du graphique -var margin = { - top: 20, - right: 20, - bottom: 30, - left: 60 -}; +const data = [ + { + id: '0.0', + parent: '', + name: 'toutes' + }, + { + id: 'future', + parent: '0.0', + name: 'prévues', + value: 357 + }, -var width = 600 - margin.left - margin.right; -var height = 300 - margin.top - margin.bottom; + { + id: 'past', + parent: '0.0', + name: 'finies', + value: 1148 + }, + { + id: '1.3', + parent: 'future', + name: 'NEXT', + value: 12 + }, + { + id: '1.1', + parent: 'future', + name: 'SOMEDAY', + value: 313 + }, + { + id: '1.2', + parent: 'past', + name: 'DONE', + value: 1110 + }, + { + id: '1.4', + parent: 'past', + name: 'CANCELLED', + value: 12 + }, + { + id: '1.5', + parent: 'future', + name: 'WAITING', + value: 0 + }, + { + id: '1.6', + parent: 'future', + name: 'TODO', + value: 44 + } +]; -//la portée de l'axe des X -var x = d3.scale.ordinal() - .rangeRoundBands([0, width], .1, 1); -var xAxis = d3.svg.axis() - .scale(x) - .orient("bottom"); +Highcharts.chart('container', { -//la portée de l'axe des X -var y = d3.scale.linear() - .range([height, 0]); + chart: { + height: '100%' + }, -var currencyFormat = d3.format("$"); -var yAxis = d3.svg.axis() - .scale(y) - .orient("left") - .tickFormat(currencyFormat); + // Let the center circle be transparent + colors: ['transparent'].concat(Highcharts.getOptions().colors), -//création de l'élément SVG du document -var svg = d3 - .select("body") - .append("svg") - .attr("width", width + margin.left + margin.right) - .attr("height", height + margin.top + margin.bottom) - .append("g") - .attr("transform", "translate(" + margin.left + "," + margin.top + ")"); + title: { + text: 'Tâches par état en 2023' + }, -d3.csv("data.csv", function (error, data) { - //calcul du domaine de l'axe X - x.domain(data.map(function (d) { - return d.letter; - })); + subtitle: { + text: 'Source cipherbliss.com' + }, - //calcul du domaine de l'axe Y - y.domain([0, d3.max(data, function (d) { - return d.cout; - })]); + series: [{ + type: 'sunburst', + data: data, + name: 'Root', + allowDrillToNode: true, + cursor: 'pointer', + dataLabels: { + format: '{point.name}', + filter: { + property: 'innerArcLength', + operator: '>', + value: 16 + }, + rotationMode: 'circular' + }, + levels: [{ + level: 1, + levelIsConstant: false, + dataLabels: { + filter: { + property: 'outerArcLength', + operator: '>', + value: 64 + } + } + }, + { + level: 2, + colorByPoint: true + }, + { + level: 3, + colorVariation: { + key: 'brightness', + to: -0.5 + } + }, { + level: 4, + colorVariation: { + key: 'brightness', + to: 0.5 + } + } + ] - //mise en place des barres pour chacune des lettres - var bar = svg.selectAll("g") - .data(data) - .enter() - .append("g") - .attr("class", "bob"); + }], - bar.append("rect") - .attr("class", "bar") - .attr("fill", function (d) { - return d.couleur; - }) - //positonnement sur l'axe des X de la barre - .attr("x", function (d) { - return x(d.letter) - 50; - }) - //positonnement sur l'axe des Y de la barre - .attr("y", function (d) { - return y(d.cout); - }) - //largeur de la barre - .attr("width", x.rangeBand() + 10) - //hauteur de la barre - .attr("height", function (d) { - return height - y(d.cout); - }); - - bar.append("text") - .attr("class", "bar-color") - .attr("x", function (d) { return x(d.letter) - 17 }) - .attr("y", function (d) { - return y(d.cout) - 10; - }) - .attr("dy", ".35em") - .attr("fill", "black") - .text(function (d) { return currencyFormat(d.cout); }); - - //positionnement de l'axe des X - svg.append("g") - .attr("class", "x axis") - .attr("transform", "translate(-50," + height + ")") - .call(xAxis); - - //positionnement de l'axe des Y - svg.append("g") - .attr("class", "y axis") - .call(yAxis) - - //Ajout du petit texte "fréquence" - .append("text") - .attr("transform", "rotate(-90)") - .attr("y", 6) - .attr("dy", ".71em") - .style("text-anchor", "end") - .text("Coûts"); -}); \ No newline at end of file + tooltip: { + headerFormat: '', + pointFormat: 'The population of {point.name} is {point.value}' + } +}); diff --git a/donut/index.html b/donut/index.html index 5613cab..118813e 100644 --- a/donut/index.html +++ b/donut/index.html @@ -1,16 +1,18 @@ - - - + + + + + + - - - +
+
+

+ Sunburst charts are used to visualize hierarchical data in a + circular shape. The inner elements are parent nodes, with + child nodes distributed on the outer rings. Click on a parent + node to drill down and inspect the tree in more detail. +

+
- - -

- Rapport de tâches -

-
- - + \ No newline at end of file diff --git a/donut/style.css b/donut/style.css index c88d1d3..1cb19e3 100644 --- a/donut/style.css +++ b/donut/style.css @@ -1,3 +1,42 @@ -.bob{ - fill: cadetblue; -} \ No newline at end of file +.highcharts-figure, +.highcharts-data-table table { + min-width: 320px; + max-width: 800px; + margin: 1em auto; +} + +.highcharts-data-table table { + font-family: Verdana, sans-serif; + border-collapse: collapse; + border: 1px solid #ebebeb; + margin: 10px auto; + text-align: center; + width: 100%; + max-width: 500px; +} + +.highcharts-data-table caption { + padding: 1em 0; + font-size: 1.2em; + color: #555; +} + +.highcharts-data-table th { + font-weight: 600; + padding: 0.5em; +} + +.highcharts-data-table td, +.highcharts-data-table th, +.highcharts-data-table caption { + padding: 0.5em; +} + +.highcharts-data-table thead tr, +.highcharts-data-table tr:nth-child(even) { + background: #f8f8f8; +} + +.highcharts-data-table tr:hover { + background: #f1f7ff; +} diff --git a/emploi-du-temps/output.org b/emploi-du-temps/output.org index bc029a6..e69de29 100644 --- a/emploi-du-temps/output.org +++ b/emploi-du-temps/output.org @@ -1,123 +0,0 @@ -* Emploi du temps pour deux semaines sans inclure les weekend - -projets 8 -aires de responsabilité 12 -ressources actuelles 9 - -* lundi -** 9 h revue journalière -** 9h h appels tel -** areas : 0 : 10h achats -** areas : 1 : 11h administratif -** projects : 12h emploi du temps -** projects : 13h rangement -** projects : 14h migration Rise -** ressources : 15h social sorting -** 16h h temps libre - -* mardi -** 9 h revue journalière -** 9h h appels tel -** areas : 2 : 10h apprendre emacs -** areas : 3 : 11h associations -** projects : 12h dev -** projects : 13h calendar maker -** projects : 14h noeud garage -** ressources : 15h PIM -** 16h h temps libre - -* mercredi -** 9 h revue journalière -** 9h h appels tel -** areas : 4 : 10h boulot -** areas : 5 : 11h communication et écriture -** projects : 12h report orgmode -** projects : 13h partage ftp -# --- retour de projets --- -** projects : 14h emploi du temps -** ressources : 15h lecture -** 16h h temps libre - -* jeudi -** 9 h revue journalière -** 9h h appels tel -** areas : 6 : 10h corvées -** areas : 7 : 11h habitudes -** projects : 12h rangement -** projects : 13h migration Rise -** projects : 14h dev -** ressources : 15h architecture -** 16h h temps libre - -* vendredi -** 9 h revue journalière -** 9h h appels tel -** areas : 8 : 10h santé -** areas : 9 : 11h social -** projects : 12h calendar maker -** projects : 13h noeud garage -** projects : 14h report orgmode -** ressources : 15h climat -** 16h h temps libre -projets 8 -aires de responsabilité 12 -ressources actuelles 9 - -* lundi -** 9 h revue journalière -** 9h h appels tel -** areas : 10 : 10h travaux bricolage -** areas : 11 : 11h vacances -# --- retour de areas --- -** projects : 12h partage ftp -# --- retour de projets --- -** projects : 13h emploi du temps -** projects : 14h rangement -** ressources : 15h nucléaire -** 16h h temps libre - -* mardi -** 9 h revue journalière -** 9h h appels tel -** areas : 0 : 10h achats -** areas : 1 : 11h administratif -** projects : 12h migration Rise -** projects : 13h dev -** projects : 14h calendar maker -** ressources : 15h dessins -** 16h h temps libre - -* mercredi -** 9 h revue journalière -** 9h h appels tel -** areas : 2 : 10h apprendre emacs -** areas : 3 : 11h associations -** projects : 12h noeud garage -** projects : 13h report orgmode -** projects : 14h partage ftp -# --- retour de projets --- -** ressources : 15h partage de documents -** 16h h temps libre - -* jeudi -** 9 h revue journalière -** 9h h appels tel -** areas : 4 : 10h boulot -** areas : 5 : 11h communication et écriture -** projects : 12h emploi du temps -** projects : 13h rangement -** projects : 14h migration Rise -** ressources : 15h recherche et éducation -# --- retour de ressources --- -** 16h h temps libre - -* vendredi -** 9 h revue journalière -** 9h h appels tel -** areas : 6 : 10h corvées -** areas : 7 : 11h habitudes -** projects : 12h dev -** projects : 13h calendar maker -** projects : 14h noeud garage -** ressources : 15h social sorting -** 16h h temps libre diff --git a/graphs/data.csv b/graphs/data.csv index e69de29..b68def2 100644 --- a/graphs/data.csv +++ b/graphs/data.csv @@ -0,0 +1,4 @@ +letter,cout +12,50 +15,55 +30,85 \ No newline at end of file diff --git a/graphs/graphs.mjs b/graphs/graphs.mjs index e69de29..683df05 100644 --- a/graphs/graphs.mjs +++ b/graphs/graphs.mjs @@ -0,0 +1,105 @@ +//propriétés visuelles du graphique +var margin = { + top: 20, + right: 20, + bottom: 30, + left: 60 +}; + +var width = 600 - margin.left - margin.right; +var height = 300 - margin.top - margin.bottom; + +//la portée de l'axe des X +var x = d3.scale.ordinal() + .rangeRoundBands([0, width], .1, 1); + +var xAxis = d3.svg.axis() + .scale(x) + .orient("bottom"); + +//la portée de l'axe des X +var y = d3.scale.linear() + .range([height, 0]); + +var currencyFormat = d3.format("$"); +var yAxis = d3.svg.axis() + .scale(y) + .orient("left") + .tickFormat(currencyFormat); + +//création de l'élément SVG du document +var svg = d3 + .select("body") + .append("svg") + .attr("width", width + margin.left + margin.right) + .attr("height", height + margin.top + margin.bottom) + .append("g") + .attr("transform", "translate(" + margin.left + "," + margin.top + ")"); + +d3.csv("data.csv", function (error, data) { + //calcul du domaine de l'axe X + x.domain(data.map(function (d) { + return d.letter; + })); + + //calcul du domaine de l'axe Y + y.domain([0, d3.max(data, function (d) { + return d.cout; + })]); + + //mise en place des barres pour chacune des lettres + var bar = svg.selectAll("g") + .data(data) + .enter() + .append("g") + .attr("class", "bob"); + + bar.append("rect") + .attr("class", "bar") + .attr("fill", function (d) { + return d.couleur; + }) + //positonnement sur l'axe des X de la barre + .attr("x", function (d) { + return x(d.letter) - 50; + }) + //positonnement sur l'axe des Y de la barre + .attr("y", function (d) { + return y(d.cout); + }) + //largeur de la barre + .attr("width", x.rangeBand() + 10) + //hauteur de la barre + .attr("height", function (d) { + return height - y(d.cout); + }); + + bar.append("text") + .attr("class", "bar-color") + .attr("x", function (d) { return x(d.letter) - 17 }) + .attr("y", function (d) { + return y(d.cout) - 10; + }) + .attr("dy", ".35em") + .attr("fill", "black") + .text(function (d) { return currencyFormat(d.cout); }); + + //positionnement de l'axe des X + svg.append("g") + .attr("class", "x axis") + .attr("transform", "translate(-50," + height + ")") + .call(xAxis); + + //positionnement de l'axe des Y + svg.append("g") + .attr("class", "y axis") + .call(yAxis) + + //Ajout du petit texte "fréquence" + .append("text") + .attr("transform", "rotate(-90)") + .attr("y", 6) + .attr("dy", ".71em") + .style("text-anchor", "end") + .text("Coûts"); +}); \ No newline at end of file diff --git a/graphs/index.html b/graphs/index.html index e69de29..5613cab 100644 --- a/graphs/index.html +++ b/graphs/index.html @@ -0,0 +1,16 @@ + + + + + + + + + + +

+ Rapport de tâches +

+
+ + diff --git a/graphs/style.css b/graphs/style.css index e69de29..c88d1d3 100644 --- a/graphs/style.css +++ b/graphs/style.css @@ -0,0 +1,3 @@ +.bob{ + fill: cadetblue; +} \ No newline at end of file diff --git a/package.json b/package.json index 21d7334..cce5337 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,6 @@ { "dependencies": { + "d3": "^7.8.2", "node-fs": "^0.1.7", "nodemon": "^2.0.19" }, diff --git a/yarn.lock b/yarn.lock index 6952473..58fb375 100644 --- a/yarn.lock +++ b/yarn.lock @@ -220,6 +220,13 @@ __metadata: languageName: node linkType: hard +"commander@npm:7": + version: 7.2.0 + resolution: "commander@npm:7.2.0" + checksum: 53501cbeee61d5157546c0bef0fedb6cdfc763a882136284bed9a07225f09a14b82d2a84e7637edfd1a679fb35ed9502fd58ef1d091e6287f60d790147f68ddc + languageName: node + linkType: hard + "concat-map@npm:0.0.1": version: 0.0.1 resolution: "concat-map@npm:0.0.1" @@ -234,6 +241,324 @@ __metadata: languageName: node linkType: hard +"d3-array@npm:2 - 3, d3-array@npm:2.10.0 - 3, d3-array@npm:2.5.0 - 3, d3-array@npm:3, d3-array@npm:^3.2.0": + version: 3.2.2 + resolution: "d3-array@npm:3.2.2" + dependencies: + internmap: 1 - 2 + checksum: 98af3db792685ceca5d9c3721efba0c567520da5532b2c7a590fd83627a598ea225d11c2cecbad404dc154120feb5ea6df0ded38f82ddf342c714cfd0c6143d1 + languageName: node + linkType: hard + +"d3-axis@npm:3": + version: 3.0.0 + resolution: "d3-axis@npm:3.0.0" + checksum: 227ddaa6d4bad083539c1ec245e2228b4620cca941997a8a650cb0af239375dc20271993127eedac66f0543f331027aca09385e1e16eed023f93eac937cddf0b + languageName: node + linkType: hard + +"d3-brush@npm:3": + version: 3.0.0 + resolution: "d3-brush@npm:3.0.0" + dependencies: + d3-dispatch: 1 - 3 + d3-drag: 2 - 3 + d3-interpolate: 1 - 3 + d3-selection: 3 + d3-transition: 3 + checksum: 1d042167769a02ac76271c71e90376d7184206e489552b7022a8ec2860209fe269db55e0a3430f3dcbe13b6fec2ff65b1adeaccba3218991b38e022390df72e3 + languageName: node + linkType: hard + +"d3-chord@npm:3": + version: 3.0.1 + resolution: "d3-chord@npm:3.0.1" + dependencies: + d3-path: 1 - 3 + checksum: ddf35d41675e0f8738600a8a2f05bf0858def413438c12cba357c5802ecc1014c80a658acbbee63cbad2a8c747912efb2358455d93e59906fe37469f1dc6b78b + languageName: node + linkType: hard + +"d3-color@npm:1 - 3, d3-color@npm:3": + version: 3.1.0 + resolution: "d3-color@npm:3.1.0" + checksum: 4931fbfda5d7c4b5cfa283a13c91a954f86e3b69d75ce588d06cde6c3628cebfc3af2069ccf225e982e8987c612aa7948b3932163ce15eb3c11cd7c003f3ee3b + languageName: node + linkType: hard + +"d3-contour@npm:4": + version: 4.0.2 + resolution: "d3-contour@npm:4.0.2" + dependencies: + d3-array: ^3.2.0 + checksum: 56aa082c1acf62a45b61c8d29fdd307041785aa17d9a07de7d1d848633769887a33fb6823888afa383f31c460d0f21d24756593e84e334ddb92d774214d32f1b + languageName: node + linkType: hard + +"d3-delaunay@npm:6": + version: 6.0.2 + resolution: "d3-delaunay@npm:6.0.2" + dependencies: + delaunator: 5 + checksum: 80b18686dd7a5919a570000061f1515d106b7c7e3cba9da55706c312fc8f6de58a72674f2ea4eadc6694611f2df59f82c8b9d304845dd8b7903ee1f303aa5865 + languageName: node + linkType: hard + +"d3-dispatch@npm:1 - 3, d3-dispatch@npm:3": + version: 3.0.1 + resolution: "d3-dispatch@npm:3.0.1" + checksum: fdfd4a230f46463e28e5b22a45dd76d03be9345b605e1b5dc7d18bd7ebf504e6c00ae123fd6d03e23d9e2711e01f0e14ea89cd0632545b9f0c00b924ba4be223 + languageName: node + linkType: hard + +"d3-drag@npm:2 - 3, d3-drag@npm:3": + version: 3.0.0 + resolution: "d3-drag@npm:3.0.0" + dependencies: + d3-dispatch: 1 - 3 + d3-selection: 3 + checksum: d297231e60ecd633b0d076a63b4052b436ddeb48b5a3a11ff68c7e41a6774565473a6b064c5e9256e88eca6439a917ab9cea76032c52d944ddbf4fd289e31111 + languageName: node + linkType: hard + +"d3-dsv@npm:1 - 3, d3-dsv@npm:3": + version: 3.0.1 + resolution: "d3-dsv@npm:3.0.1" + dependencies: + commander: 7 + iconv-lite: 0.6 + rw: 1 + bin: + csv2json: bin/dsv2json.js + csv2tsv: bin/dsv2dsv.js + dsv2dsv: bin/dsv2dsv.js + dsv2json: bin/dsv2json.js + json2csv: bin/json2dsv.js + json2dsv: bin/json2dsv.js + json2tsv: bin/json2dsv.js + tsv2csv: bin/dsv2dsv.js + tsv2json: bin/dsv2json.js + checksum: 5fc0723647269d5dccd181d74f2265920ab368a2868b0b4f55ffa2fecdfb7814390ea28622cd61ee5d9594ab262879509059544e9f815c54fe76fbfb4ffa4c8a + languageName: node + linkType: hard + +"d3-ease@npm:1 - 3, d3-ease@npm:3": + version: 3.0.1 + resolution: "d3-ease@npm:3.0.1" + checksum: 06e2ee5326d1e3545eab4e2c0f84046a123dcd3b612e68858219aa034da1160333d9ce3da20a1d3486d98cb5c2a06f7d233eee1bc19ce42d1533458bd85dedcd + languageName: node + linkType: hard + +"d3-fetch@npm:3": + version: 3.0.1 + resolution: "d3-fetch@npm:3.0.1" + dependencies: + d3-dsv: 1 - 3 + checksum: 382dcea06549ef82c8d0b719e5dc1d96286352579e3b51b20f71437f5800323315b09cf7dcfd4e1f60a41e1204deb01758470cea257d2285a7abd9dcec806984 + languageName: node + linkType: hard + +"d3-force@npm:3": + version: 3.0.0 + resolution: "d3-force@npm:3.0.0" + dependencies: + d3-dispatch: 1 - 3 + d3-quadtree: 1 - 3 + d3-timer: 1 - 3 + checksum: 6c7e96438cab62fa32aeadb0ade3297b62b51f81b1b38b0a60a5ec9fd627d74090c1189654d92df2250775f31b06812342f089f1d5947de9960a635ee3581def + languageName: node + linkType: hard + +"d3-format@npm:1 - 3, d3-format@npm:3": + version: 3.1.0 + resolution: "d3-format@npm:3.1.0" + checksum: f345ec3b8ad3cab19bff5dead395bd9f5590628eb97a389b1dd89f0b204c7c4fc1d9520f13231c2c7cf14b7c9a8cf10f8ef15bde2befbab41454a569bd706ca2 + languageName: node + linkType: hard + +"d3-geo@npm:3": + version: 3.1.0 + resolution: "d3-geo@npm:3.1.0" + dependencies: + d3-array: 2.5.0 - 3 + checksum: adf82b0c105c0c5951ae0a833d4dfc479a563791ad7938579fa14e1cffd623b469d8aa7a37dc413a327fb6ac56880f3da3f6c43d4abe3c923972dd98f34f37d1 + languageName: node + linkType: hard + +"d3-hierarchy@npm:3": + version: 3.1.2 + resolution: "d3-hierarchy@npm:3.1.2" + checksum: 0fd946a8c5fd4686d43d3e11bbfc2037a145fda29d2261ccd0e36f70b66af6d7638e2c0c7112124d63fc3d3127197a00a6aecf676bd5bd392a94d7235a214263 + languageName: node + linkType: hard + +"d3-interpolate@npm:1 - 3, d3-interpolate@npm:1.2.0 - 3, d3-interpolate@npm:3": + version: 3.0.1 + resolution: "d3-interpolate@npm:3.0.1" + dependencies: + d3-color: 1 - 3 + checksum: a42ba314e295e95e5365eff0f604834e67e4a3b3c7102458781c477bd67e9b24b6bb9d8e41ff5521050a3f2c7c0c4bbbb6e187fd586daa3980943095b267e78b + languageName: node + linkType: hard + +"d3-path@npm:1 - 3, d3-path@npm:3, d3-path@npm:^3.1.0": + version: 3.1.0 + resolution: "d3-path@npm:3.1.0" + checksum: 2306f1bd9191e1eac895ec13e3064f732a85f243d6e627d242a313f9777756838a2215ea11562f0c7630c7c3b16a19ec1fe0948b1c82f3317fac55882f6ee5d8 + languageName: node + linkType: hard + +"d3-polygon@npm:3": + version: 3.0.1 + resolution: "d3-polygon@npm:3.0.1" + checksum: 0b85c532517895544683849768a2c377cee3801ef8ccf3fa9693c8871dd21a0c1a2a0fc75ff54192f0ba2c562b0da2bc27f5bf959dfafc7fa23573b574865d2c + languageName: node + linkType: hard + +"d3-quadtree@npm:1 - 3, d3-quadtree@npm:3": + version: 3.0.1 + resolution: "d3-quadtree@npm:3.0.1" + checksum: 5469d462763811475f34a7294d984f3eb100515b0585ca5b249656f6b1a6e99b20056a2d2e463cc9944b888896d2b1d07859c50f9c0cf23438df9cd2e3146066 + languageName: node + linkType: hard + +"d3-random@npm:3": + version: 3.0.1 + resolution: "d3-random@npm:3.0.1" + checksum: a70ad8d1cabe399ebeb2e482703121ac8946a3b336830b518da6848b9fdd48a111990fc041dc716f16885a72176ffa2898f2a250ca3d363ecdba5ef92b18e131 + languageName: node + linkType: hard + +"d3-scale-chromatic@npm:3": + version: 3.0.0 + resolution: "d3-scale-chromatic@npm:3.0.0" + dependencies: + d3-color: 1 - 3 + d3-interpolate: 1 - 3 + checksum: a8ce4cb0267a17b28ebbb929f5e3071d985908a9c13b6fcaa2a198e1e018f275804d691c5794b970df0049725b7944f32297b31603d235af6414004f0c7f82c0 + languageName: node + linkType: hard + +"d3-scale@npm:4": + version: 4.0.2 + resolution: "d3-scale@npm:4.0.2" + dependencies: + 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 + checksum: a9c770d283162c3bd11477c3d9d485d07f8db2071665f1a4ad23eec3e515e2cefbd369059ec677c9ac849877d1a765494e90e92051d4f21111aa56791c98729e + languageName: node + linkType: hard + +"d3-selection@npm:2 - 3, d3-selection@npm:3": + version: 3.0.0 + resolution: "d3-selection@npm:3.0.0" + checksum: f4e60e133309115b99f5b36a79ae0a19d71ee6e2d5e3c7216ef3e75ebd2cb1e778c2ed2fa4c01bef35e0dcbd96c5428f5bd6ca2184fe2957ed582fde6841cbc5 + languageName: node + linkType: hard + +"d3-shape@npm:3": + version: 3.2.0 + resolution: "d3-shape@npm:3.2.0" + dependencies: + d3-path: ^3.1.0 + checksum: de2af5fc9a93036a7b68581ca0bfc4aca2d5a328aa7ba7064c11aedd44d24f310c20c40157cb654359d4c15c3ef369f95ee53d71221017276e34172c7b719cfa + languageName: node + linkType: hard + +"d3-time-format@npm:2 - 4, d3-time-format@npm:4": + version: 4.1.0 + resolution: "d3-time-format@npm:4.1.0" + dependencies: + d3-time: 1 - 3 + checksum: 7342bce28355378152bbd4db4e275405439cabba082d9cd01946d40581140481c8328456d91740b0fe513c51ec4a467f4471ffa390c7e0e30ea30e9ec98fcdf4 + languageName: node + linkType: hard + +"d3-time@npm:1 - 3, d3-time@npm:2.1.1 - 3, d3-time@npm:3": + version: 3.1.0 + resolution: "d3-time@npm:3.1.0" + dependencies: + d3-array: 2 - 3 + checksum: 613b435352a78d9f31b7f68540788186d8c331b63feca60ad21c88e9db1989fe888f97f242322ebd6365e45ec3fb206a4324cd4ca0dfffa1d9b5feb856ba00a7 + languageName: node + linkType: hard + +"d3-timer@npm:1 - 3, d3-timer@npm:3": + version: 3.0.1 + resolution: "d3-timer@npm:3.0.1" + checksum: 1cfddf86d7bca22f73f2c427f52dfa35c49f50d64e187eb788dcad6e927625c636aa18ae4edd44d084eb9d1f81d8ca4ec305dae7f733c15846a824575b789d73 + languageName: node + linkType: hard + +"d3-transition@npm:2 - 3, d3-transition@npm:3": + version: 3.0.1 + resolution: "d3-transition@npm:3.0.1" + dependencies: + d3-color: 1 - 3 + d3-dispatch: 1 - 3 + d3-ease: 1 - 3 + d3-interpolate: 1 - 3 + d3-timer: 1 - 3 + peerDependencies: + d3-selection: 2 - 3 + checksum: cb1e6e018c3abf0502fe9ff7b631ad058efb197b5e14b973a410d3935aead6e3c07c67d726cfab258e4936ef2667c2c3d1cd2037feb0765f0b4e1d3b8788c0ea + languageName: node + linkType: hard + +"d3-zoom@npm:3": + version: 3.0.0 + resolution: "d3-zoom@npm:3.0.0" + dependencies: + d3-dispatch: 1 - 3 + d3-drag: 2 - 3 + d3-interpolate: 1 - 3 + d3-selection: 2 - 3 + d3-transition: 2 - 3 + checksum: 8056e3527281cfd1ccbcbc458408f86973b0583e9dac00e51204026d1d36803ca437f970b5736f02fafed9f2b78f145f72a5dbc66397e02d4d95d4c594b8ff54 + languageName: node + linkType: hard + +"d3@npm:^7.8.2": + version: 7.8.2 + resolution: "d3@npm:7.8.2" + dependencies: + d3-array: 3 + d3-axis: 3 + d3-brush: 3 + d3-chord: 3 + d3-color: 3 + d3-contour: 4 + d3-delaunay: 6 + d3-dispatch: 3 + d3-drag: 3 + d3-dsv: 3 + d3-ease: 3 + d3-fetch: 3 + d3-force: 3 + d3-format: 3 + d3-geo: 3 + d3-hierarchy: 3 + d3-interpolate: 3 + d3-path: 3 + d3-polygon: 3 + d3-quadtree: 3 + d3-random: 3 + d3-scale: 4 + d3-scale-chromatic: 3 + d3-selection: 3 + d3-shape: 3 + d3-time: 3 + d3-time-format: 4 + d3-timer: 3 + d3-transition: 3 + d3-zoom: 3 + checksum: e7bf5918f2a97d0c0cc489d64348b323446aa824c32b65f0888846c26f80ed05dbee18a4b7c9a487b3e60d9d404e4672d169573fe63439e3e53abd5812bcd766 + languageName: node + linkType: hard + "debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.3.3": version: 4.3.4 resolution: "debug@npm:4.3.4" @@ -255,6 +580,15 @@ __metadata: languageName: node linkType: hard +"delaunator@npm:5": + version: 5.0.0 + resolution: "delaunator@npm:5.0.0" + dependencies: + robust-predicates: ^3.0.0 + checksum: d6764188442b7f7c6bcacebd96edc00e35f542a96f1af3ef600e586bfb9849a3682c489c0ab423440c90bc4c7cac77f28761babff76fa29e193e1cf50a95b860 + languageName: node + linkType: hard + "delegates@npm:^1.0.0": version: 1.0.0 resolution: "delegates@npm:1.0.0" @@ -453,7 +787,7 @@ __metadata: languageName: node linkType: hard -"iconv-lite@npm:^0.6.2": +"iconv-lite@npm:0.6, iconv-lite@npm:^0.6.2": version: 0.6.3 resolution: "iconv-lite@npm:0.6.3" dependencies: @@ -507,6 +841,13 @@ __metadata: languageName: node linkType: hard +"internmap@npm:1 - 2": + version: 2.0.3 + resolution: "internmap@npm:2.0.3" + checksum: 7ca41ec6aba8f0072fc32fa8a023450a9f44503e2d8e403583c55714b25efd6390c38a87161ec456bf42d7bc83aab62eb28f5aef34876b1ac4e60693d5e1d241 + languageName: node + linkType: hard + "ip@npm:^2.0.0": version: 2.0.0 resolution: "ip@npm:2.0.0" @@ -915,15 +1256,30 @@ __metadata: languageName: node linkType: hard +"robust-predicates@npm:^3.0.0": + version: 3.0.1 + resolution: "robust-predicates@npm:3.0.1" + checksum: 45e9de2df4380da84a2a561d4fd54ea92194e878b93ed19d5e4bc90f4e834a13755e846c8516bab8360190309696f0564a0150386c52ef01f70f2b388449dac5 + languageName: node + linkType: hard + "root-workspace-0b6124@workspace:.": version: 0.0.0-use.local resolution: "root-workspace-0b6124@workspace:." dependencies: + d3: ^7.8.2 node-fs: ^0.1.7 nodemon: ^2.0.19 languageName: unknown linkType: soft +"rw@npm:1": + version: 1.3.3 + resolution: "rw@npm:1.3.3" + checksum: c20d82421f5a71c86a13f76121b751553a99cd4a70ea27db86f9b23f33db941f3f06019c30f60d50c356d0bd674c8e74764ac146ea55e217c091bde6fba82aa3 + languageName: node + linkType: hard + "safe-buffer@npm:~5.2.0": version: 5.2.1 resolution: "safe-buffer@npm:5.2.1"