Skip to content
Snippets Groups Projects
Commit eec07668 authored by Henrik Brun Fevang's avatar Henrik Brun Fevang
Browse files

Added language and fixed datepicker bug.

parent a7dbd34b
Branches
No related tags found
No related merge requests found
......@@ -3,14 +3,17 @@ import {Redirect, Route, Switch} from 'react-router';
import LandingPage from "./pages/landingPage/landingPage";
import OverviewPage from "./pages/overviewPage/Overview";
import { GlobalCommitContext } from './context/commitPageContext';
import { useState } from 'react';
import IssuePage from './pages/issuePage';
import { CommitPage } from './pages/commitGraphPage/CommitPage';
import { IssueGraphPage } from './pages/issueGraphPage/issueGraphPage';
import CommitPageWrapper from "./pages/commitListPage/commitPageWrapper"
import './i18n';
import { useState } from 'react';
function App() {
const [testContext, setTestContext] = useState<string>('Admin');
const [language, setLanguage] = useState("no");
return (
<div className="App">
<Switch>
......@@ -36,7 +39,7 @@ function App() {
<CommitPageWrapper/>
</Route>
<Route exact path={"/commitgraph"}>
<GlobalCommitContext.Provider value = {{testContext, setTestContext}}>
<GlobalCommitContext.Provider value={{language: language, setLanguage: setLanguage}}>
<CommitPage />
</GlobalCommitContext.Provider>
</Route>
......
......@@ -19,10 +19,16 @@
justify-content: space-evenly;
}
// .datePickerContainer {
// display: flex;
// flex-direction: column;
// justify-content: space-evenly;
// height: 30%;
// width: 50%;
// }
.datePickerContainer {
display: flex;
flex-direction: row;
justify-content: space-evenly;
height: 30%;
width: 70%;
}
@media screen and (max-width: 500px) {
.datePickerContainer {
flex-direction: column;
}
}
......@@ -8,6 +8,7 @@ import { ICommitsPerDay } from "../../../utils/victory/types";
import { Commit, Issue } from '../../../utils/queryType';
import { TextField } from "@mui/material";
import { DatePicker } from "@mui/lab";
import { useTranslation } from 'react-i18next';
interface IBarChartProps {
......@@ -22,6 +23,7 @@ export const BarChart = (props: IBarChartProps) => {
const [currentData, setCurrentData] = useState<ICommitsPerDay[]>();
const [dateIntervalStart, setStartDate] = useState<Date>(new Date("2021-09-26"));
const [dateIntervalEnd, setEndDate] = useState<Date>(new Date("2021-10-03"));
const { t } = useTranslation();
useEffect(() => {
let commitsPerDay = getEntriesPerDayBarChartData(dateIntervalStart, dateIntervalEnd);
......@@ -30,11 +32,12 @@ export const BarChart = (props: IBarChartProps) => {
return (
<div className={styles.container}>
<h2>{props.title}</h2>
<h2>{t(props.title)}</h2>
<LocalizationProvider dateAdapter={AdapterDateFns}>
<div className={styles.datePickerContainer}>
<div>
<DatePicker
label="Start date"
label={t("Start date")}
value={dateIntervalStart}
onChange={(newValue) => {
setStartDate(newValue ?? new Date("2021-09-26"));
......@@ -44,7 +47,7 @@ export const BarChart = (props: IBarChartProps) => {
</div>
<div>
<DatePicker
label="End date"
label={t("End date")}
value={dateIntervalEnd}
onChange={(newValue) => {
setEndDate(newValue ?? new Date());
......@@ -52,6 +55,7 @@ export const BarChart = (props: IBarChartProps) => {
renderInput={(params) => <TextField {...params} />}
/>
</div>
</div>
</LocalizationProvider>
<div className={styles.wrapper}>
<VictoryChart
......
......@@ -3,7 +3,7 @@
display: flex;
flex-direction: column;
align-items: center;
width: 70%;
width: 60%;
}
@media only screen and (max-width: 500px){
......
......@@ -4,6 +4,7 @@ import { Commit, Issue } from '../../../utils/queryType';
import { useVictory } from '../../../utils/victory/useVictory';
import styles from './pieChart.module.scss';
import Switch from "react-switch";
import { useTranslation } from 'react-i18next';
interface IPieChartProps {
data: Commit[] | Issue[],
......@@ -16,6 +17,7 @@ export const PieChart = (props: IPieChartProps) => {
const [selectedAnimals, setSelectedAnimals] = useState(
getAnonAnimals().map(animal => { return {animal: animal, selected: true}}))
const [currentData, setCurrentData] = useState(getEntriesPerMemberPieChartData(selectedAnimals));
const { t } = useTranslation();
const changeSelectedAnimals = (animalToChange: string) => {
setSelectedAnimals(prevState =>
......@@ -31,7 +33,7 @@ export const PieChart = (props: IPieChartProps) => {
let checkboxes = getAnonAnimals().map(animal => {
return (
<div className={styles.checkboxContainer} key={animal}>
<label>{animal}</label>
<label>{t(animal)}</label>
<Switch
onColor="#fae7c2"
checked={selectedAnimals.find(sa => sa.animal === animal)?.selected ?? false}
......@@ -49,7 +51,7 @@ export const PieChart = (props: IPieChartProps) => {
return (
<div className={styles.pieChartContainer}>
<h2>{props.title}</h2>
<h2>{t(props.title)}</h2>
<div className={styles.inputContainer}>
{animalCheckboxes()}
</div>
......
import { createContext, useContext } from "react"
import { createContext, Dispatch, SetStateAction, useContext } from "react"
import '../i18n';
export type GlobalGraphCommit = {
testContext: string
setTestContext:(c: string) => void
language: string,
setLanguage: Dispatch<SetStateAction<string>>,
}
export const GlobalCommitContext = createContext<GlobalGraphCommit>({
testContext: 'Hello World',
setTestContext: () => {},
})
language: "no",
setLanguage: () => {},
});
export const useCommitContext = () => useContext(GlobalCommitContext)
import { createContext, useContext } from "react"
export type GlobalGraphIssue = {
testContext: string
setTestContext:(c: string) => void
}
export const GlobalIssueContext = createContext<GlobalGraphIssue>({
testContext: 'Hello World',
setTestContext: () => {},
})
export const useIssueContext = () => useContext(GlobalIssueContext)
\ No newline at end of file
// Source: https://react.i18next.com/guides/quick-start
import i18n from "i18next";
import { initReactI18next } from "react-i18next";
// the translations
// (tip move them in a JSON file and import them,
// or even better, manage them separated from your code: https://react.i18next.com/guides/multiple-translation-files)
const resources = {
en: {
translation: {
"Charts for issues": "Charts for issues",
"Charts for commits": "Charts for commits",
"Start date": "Start date",
"End date": "End date",
"Commits per day": "Commits per day",
"Commits per member": "Commits per member",
"Issues authored per member": "Issues authored by each member",
"Tiger": "Tiger",
"Lion": "Lion",
"Giraffe": "Giraffe",
"Rhino": "Rhino",
}
},
no: {
translation: {
"Charts for issues": "Diagrammer for issues",
"Charts for commits": "Diagrammer for commits",
"Start date": "Startdato",
"End date": "Sluttdato",
"Commits per day": "Commits per dag",
"Commits per member": "Commits per medlem",
"Issues authored per member": "Issues laget av hvert medlem",
"Tiger": "Tiger",
"Lion": "Løve",
"Giraffe": "Sjiraff",
"Rhino": "Nesehorn",
}
}
};
i18n
.use(initReactI18next) // passes i18n down to react-i18next
.init({
resources,
lng: "en", // language to use, more information here: https://www.i18next.com/overview/configuration-options#languages-namespaces-resources
// you can use the i18n.changeLanguage function to change the language manually: https://www.i18next.com/overview/api#changelanguage
// if you're using a language detector, do not define the lng option
interpolation: {
escapeValue: false // react already safes from xss
}
});
export default i18n;
\ No newline at end of file
body {
margin: 0;
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',
font-family: "Roboto", BlinkMacSystemFont, 'Segoe UI', 'Oxygen',
'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',
sans-serif;
-webkit-font-smoothing: antialiased;
......
......@@ -8,3 +8,21 @@
width: 80%;
margin-left: 10%;
}
.header {
display: flex;
justify-content: center;
align-items: center;
width: 100%;
}
.button {
background: #F5CA7B;
border-radius: 5px;
border: none;
width: 3.5rem;
height: 3.5rem;
font-size: 2rem;
position: relative;
left: 20%;
}
......@@ -6,9 +6,19 @@ import styles from './CommitPage.module.scss';
import { queryTypes, Commit } from '../../utils/queryType'
import "react-loader-spinner/dist/loader/css/react-spinner-loader.css";
import Loader from "react-loader-spinner";
import { useCommitContext } from '../../context/commitPageContext';
import { useEffect } from 'react';
import { useTranslation } from 'react-i18next';
export const CommitPage = () => {
const commitData = useGitlabApi(queryTypes.AllCommits);
const commitData = useGitlabApi(queryTypes.AllCommitsWithoutPagination);
const { t, i18n } = useTranslation();
const context = useCommitContext();
useEffect(() => {
i18n.changeLanguage(context.language)
}, [context.language])
if (commitData.isLoading) {
return (
......@@ -24,7 +34,14 @@ export const CommitPage = () => {
return (
<div className={styles.pageContainer}>
<h1>Charts for issues</h1>
<div className={styles.header}>
<h1>{t("Charts for issues")}</h1>
<button
className={styles.button}
onClick={() => context.setLanguage(context.language === "no" ? "en" : "no")}>
{context.language}
</button>
</div>
<BarChart data={commitData.data as Commit[]} title="Commits per day"/>
<PieChart data={commitData.data as Commit[]} title={"Commits per member"}/>
</div>
......
......@@ -6,7 +6,7 @@ export enum queryTypes {
Languages = "languages",
Access="access_requests",
AllIssuesWithoutPagination = "issues/?scope=all",
AllCommitsWithoutPagination = "commits/?scope=all",
AllCommitsWithoutPagination = "repository/commits/?per_page=1000",
}
export type User = {
......
......@@ -62,16 +62,21 @@ export const useVictory = (initData: Commit[] | Issue[]) => {
return { anonData, animals };
}
function getEntriesPerDayBarChartData(startDate: Date, endDate: Date) : ICommitsPerDay[]{
function getEntriesPerDayBarChartData(startDateInput: Date, endDateInput: Date) : ICommitsPerDay[]{
let commitsPerDayData = []
let anon = anonymizeData(initData);
startDate = startDate ?? new Date();
endDate = endDate ?? new Date();
let startDate = new Date(startDateInput);
let endDate = new Date(endDateInput);
for (let day = startDate; day <= endDate; day.setDate(day.getDate() + 1)) {
let amount: number = anon.anonData.filter(entry => entry.date.getDate() === day.getDate()).length;
commitsPerDayData.push({ date: `${day.getDate()}.${day.getMonth()}`, amount: amount});
anon.anonData.forEach(entry => {
console.log(entry)
})
let amount: number = anon.anonData.filter(entry =>
entry.date.getMonth() === day.getMonth() && entry.date.getDate() === day.getDate()
).length;
commitsPerDayData.push({ date: `${day.getDate()}.${day.getMonth() + 1}`, amount: amount});
}
return commitsPerDayData;
};
......
......@@ -1967,6 +1967,221 @@
dependencies:
"@babel/types" "^7.3.0"
"@types/canvasjs@^1.9.7":
version "1.9.7"
resolved "https://registry.yarnpkg.com/@types/canvasjs/-/canvasjs-1.9.7.tgz#bbb3042cea23c577a4d5f72e97f00619ac5b7d22"
integrity sha512-/CfA3VtyTYVXDHvMy8F5hsvRUTiBX7TGe+nAHNONoJlNHbqakeIzxxt1MSNH619s8Oiu4CcFBMmJVg50El/0lw==
"@types/d3-array@*":
version "3.0.1"
resolved "https://registry.yarnpkg.com/@types/d3-array/-/d3-array-3.0.1.tgz#0ff28ee7052a2e504cb951d17df7437c33d442d6"
integrity sha512-D/G7oG0czeszALrkdUiV68CDiHDxXf+M2mLVqAyKktGd12VKQQljj1sHJGBKjcK4jRH1biBd6ZPQPHpJ0mNa0w==
"@types/d3-axis@*":
version "3.0.1"
resolved "https://registry.yarnpkg.com/@types/d3-axis/-/d3-axis-3.0.1.tgz#6afc20744fa5cc0cbc3e2bd367b140a79ed3e7a8"
integrity sha512-zji/iIbdd49g9WN0aIsGcwcTBUkgLsCSwB+uH+LPVDAiKWENMtI3cJEWt+7/YYwelMoZmbBfzA3qCdrZ2XFNnw==
dependencies:
"@types/d3-selection" "*"
"@types/d3-brush@*":
version "3.0.1"
resolved "https://registry.yarnpkg.com/@types/d3-brush/-/d3-brush-3.0.1.tgz#ae5f17ce391935ca88b29000e60ee20452c6357c"
integrity sha512-B532DozsiTuQMHu2YChdZU0qsFJSio3Q6jmBYGYNp3gMDzBmuFFgPt9qKA4VYuLZMp4qc6eX7IUFUEsvHiXZAw==
dependencies:
"@types/d3-selection" "*"
"@types/d3-chord@*":
version "3.0.1"
resolved "https://registry.yarnpkg.com/@types/d3-chord/-/d3-chord-3.0.1.tgz#54c8856c19c8e4ab36a53f73ba737de4768ad248"
integrity sha512-eQfcxIHrg7V++W8Qxn6QkqBNBokyhdWSAS73AbkbMzvLQmVVBviknoz2SRS/ZJdIOmhcmmdCRE/NFOm28Z1AMw==
"@types/d3-color@*":
version "3.0.2"
resolved "https://registry.yarnpkg.com/@types/d3-color/-/d3-color-3.0.2.tgz#53f2d6325f66ee79afd707c05ac849e8ae0edbb0"
integrity sha512-WVx6zBiz4sWlboCy7TCgjeyHpNjMsoF36yaagny1uXfbadc9f+5BeBf7U+lRmQqY3EHbGQpP8UdW8AC+cywSwQ==
"@types/d3-contour@*":
version "3.0.1"
resolved "https://registry.yarnpkg.com/@types/d3-contour/-/d3-contour-3.0.1.tgz#9ff4e2fd2a3910de9c5097270a7da8a6ef240017"
integrity sha512-C3zfBrhHZvrpAAK3YXqLWVAGo87A4SvJ83Q/zVJ8rFWJdKejUnDYaWZPkA8K84kb2vDA/g90LTQAz7etXcgoQQ==
dependencies:
"@types/d3-array" "*"
"@types/geojson" "*"
"@types/d3-delaunay@*":
version "6.0.0"
resolved "https://registry.yarnpkg.com/@types/d3-delaunay/-/d3-delaunay-6.0.0.tgz#c09953ac7e5460997f693d2d7bf3522e0d4a88e6"
integrity sha512-iGm7ZaGLq11RK3e69VeMM6Oqj2SjKUB9Qhcyd1zIcqn2uE8w9GFB445yCY46NOQO3ByaNyktX1DK+Etz7ZaX+w==
"@types/d3-dispatch@*":
version "3.0.1"
resolved "https://registry.yarnpkg.com/@types/d3-dispatch/-/d3-dispatch-3.0.1.tgz#a1b18ae5fa055a6734cb3bd3cbc6260ef19676e3"
integrity sha512-NhxMn3bAkqhjoxabVJWKryhnZXXYYVQxaBnbANu0O94+O/nX9qSjrA1P1jbAQJxJf+VC72TxDX/YJcKue5bRqw==
"@types/d3-drag@*":
version "3.0.1"
resolved "https://registry.yarnpkg.com/@types/d3-drag/-/d3-drag-3.0.1.tgz#fb1e3d5cceeee4d913caa59dedf55c94cb66e80f"
integrity sha512-o1Va7bLwwk6h03+nSM8dpaGEYnoIG19P0lKqlic8Un36ymh9NSkNFX1yiXMKNMx8rJ0Kfnn2eovuFaL6Jvj0zA==
dependencies:
"@types/d3-selection" "*"
"@types/d3-dsv@*":
version "3.0.0"
resolved "https://registry.yarnpkg.com/@types/d3-dsv/-/d3-dsv-3.0.0.tgz#f3c61fb117bd493ec0e814856feb804a14cfc311"
integrity sha512-o0/7RlMl9p5n6FQDptuJVMxDf/7EDEv2SYEO/CwdG2tr1hTfUVi0Iavkk2ax+VpaQ/1jVhpnj5rq1nj8vwhn2A==
"@types/d3-ease@*":
version "3.0.0"
resolved "https://registry.yarnpkg.com/@types/d3-ease/-/d3-ease-3.0.0.tgz#c29926f8b596f9dadaeca062a32a45365681eae0"
integrity sha512-aMo4eaAOijJjA6uU+GIeW018dvy9+oH5Y2VPPzjjfxevvGQ/oRDs+tfYC9b50Q4BygRR8yE2QCLsrT0WtAVseA==
"@types/d3-fetch@*":
version "3.0.1"
resolved "https://registry.yarnpkg.com/@types/d3-fetch/-/d3-fetch-3.0.1.tgz#f9fa88b81aa2eea5814f11aec82ecfddbd0b8fe0"
integrity sha512-toZJNOwrOIqz7Oh6Q7l2zkaNfXkfR7mFSJvGvlD/Ciq/+SQ39d5gynHJZ/0fjt83ec3WL7+u3ssqIijQtBISsw==
dependencies:
"@types/d3-dsv" "*"
"@types/d3-force@*":
version "3.0.3"
resolved "https://registry.yarnpkg.com/@types/d3-force/-/d3-force-3.0.3.tgz#76cb20d04ae798afede1ea6e41750763ff5a9c82"
integrity sha512-z8GteGVfkWJMKsx6hwC3SiTSLspL98VNpmvLpEFJQpZPq6xpA1I8HNBDNSpukfK0Vb0l64zGFhzunLgEAcBWSA==
"@types/d3-format@*":
version "3.0.1"
resolved "https://registry.yarnpkg.com/@types/d3-format/-/d3-format-3.0.1.tgz#194f1317a499edd7e58766f96735bdc0216bb89d"
integrity sha512-5KY70ifCCzorkLuIkDe0Z9YTf9RR2CjBX1iaJG+rgM/cPP+sO+q9YdQ9WdhQcgPj1EQiJ2/0+yUkkziTG6Lubg==
"@types/d3-geo@*":
version "3.0.2"
resolved "https://registry.yarnpkg.com/@types/d3-geo/-/d3-geo-3.0.2.tgz#e7ec5f484c159b2c404c42d260e6d99d99f45d9a"
integrity sha512-DbqK7MLYA8LpyHQfv6Klz0426bQEf7bRTvhMy44sNGVyZoWn//B0c+Qbeg8Osi2Obdc9BLLXYAKpyWege2/7LQ==
dependencies:
"@types/geojson" "*"
"@types/d3-hierarchy@*":
version "3.0.2"
resolved "https://registry.yarnpkg.com/@types/d3-hierarchy/-/d3-hierarchy-3.0.2.tgz#ca63f2f4da15b8f129c5b7dffd71d904cba6aca2"
integrity sha512-+krnrWOZ+aQB6v+E+jEkmkAx9HvsNAD+1LCD0vlBY3t+HwjKnsBFbpVLx6WWzDzCIuiTWdAxXMEnGnVXpB09qQ==
"@types/d3-interpolate@*":
version "3.0.1"
resolved "https://registry.yarnpkg.com/@types/d3-interpolate/-/d3-interpolate-3.0.1.tgz#e7d17fa4a5830ad56fe22ce3b4fac8541a9572dc"
integrity sha512-jx5leotSeac3jr0RePOH1KdR9rISG91QIE4Q2PYTu4OymLTZfA3SrnURSLzKH48HmXVUru50b8nje4E79oQSQw==
dependencies:
"@types/d3-color" "*"
"@types/d3-path@*":
version "3.0.0"
resolved "https://registry.yarnpkg.com/@types/d3-path/-/d3-path-3.0.0.tgz#939e3a784ae4f80b1fde8098b91af1776ff1312b"
integrity sha512-0g/A+mZXgFkQxN3HniRDbXMN79K3CdTpLsevj+PXiTcb2hVyvkZUBg37StmgCQkaD84cUJ4uaDAWq7UJOQy2Tg==
"@types/d3-polygon@*":
version "3.0.0"
resolved "https://registry.yarnpkg.com/@types/d3-polygon/-/d3-polygon-3.0.0.tgz#5200a3fa793d7736fa104285fa19b0dbc2424b93"
integrity sha512-D49z4DyzTKXM0sGKVqiTDTYr+DHg/uxsiWDAkNrwXYuiZVd9o9wXZIo+YsHkifOiyBkmSWlEngHCQme54/hnHw==
"@types/d3-quadtree@*":
version "3.0.2"
resolved "https://registry.yarnpkg.com/@types/d3-quadtree/-/d3-quadtree-3.0.2.tgz#433112a178eb7df123aab2ce11c67f51cafe8ff5"
integrity sha512-QNcK8Jguvc8lU+4OfeNx+qnVy7c0VrDJ+CCVFS9srBo2GL9Y18CnIxBdTF3v38flrGy5s1YggcoAiu6s4fLQIw==
"@types/d3-random@*":
version "3.0.1"
resolved "https://registry.yarnpkg.com/@types/d3-random/-/d3-random-3.0.1.tgz#5c8d42b36cd4c80b92e5626a252f994ca6bfc953"
integrity sha512-IIE6YTekGczpLYo/HehAy3JGF1ty7+usI97LqraNa8IiDur+L44d0VOjAvFQWJVdZOJHukUJw+ZdZBlgeUsHOQ==
"@types/d3-scale-chromatic@*":
version "3.0.0"
resolved "https://registry.yarnpkg.com/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.0.0.tgz#103124777e8cdec85b20b51fd3397c682ee1e954"
integrity sha512-dsoJGEIShosKVRBZB0Vo3C8nqSDqVGujJU6tPznsBJxNJNwMF8utmS83nvCBKQYPpjCzaaHcrf66iTRpZosLPw==
"@types/d3-scale@*":
version "4.0.1"
resolved "https://registry.yarnpkg.com/@types/d3-scale/-/d3-scale-4.0.1.tgz#fbe8238e2eff27af577d2b7d0b933ae50a546970"
integrity sha512-GDuXcRcR6mKcpUVMhPNttpOzHi2dP6YcDqLZYSZHgwTZ+sfCa8e9q0VEBwZomblAPNMYpVqxojnSyIEb4s/Pwg==
dependencies:
"@types/d3-time" "*"
"@types/d3-selection@*":
version "3.0.1"
resolved "https://registry.yarnpkg.com/@types/d3-selection/-/d3-selection-3.0.1.tgz#e57b01ab69b18b380f68db97b76ceefe62f17191"
integrity sha512-aJ1d1SCUtERHH65bB8NNoLpUOI3z8kVcfg2BGm4rMMUwuZF4x6qnIEKjT60Vt0o7gP/a/xkRVs4D9CpDifbyRA==
"@types/d3-shape@*":
version "3.0.2"
resolved "https://registry.yarnpkg.com/@types/d3-shape/-/d3-shape-3.0.2.tgz#4b1ca4ddaac294e76b712429726d40365cd1e8ca"
integrity sha512-5+ButCmIfNX8id5seZ7jKj3igdcxx+S9IDBiT35fQGTLZUfkFgTv+oBH34xgeoWDKpWcMITSzBILWQtBoN5Piw==
dependencies:
"@types/d3-path" "*"
"@types/d3-time-format@*":
version "4.0.0"
resolved "https://registry.yarnpkg.com/@types/d3-time-format/-/d3-time-format-4.0.0.tgz#ee7b6e798f8deb2d9640675f8811d0253aaa1946"
integrity sha512-yjfBUe6DJBsDin2BMIulhSHmr5qNR5Pxs17+oW4DoVPyVIXZ+m6bs7j1UVKP08Emv6jRmYrYqxYzO63mQxy1rw==
"@types/d3-time@*":
version "3.0.0"
resolved "https://registry.yarnpkg.com/@types/d3-time/-/d3-time-3.0.0.tgz#e1ac0f3e9e195135361fa1a1d62f795d87e6e819"
integrity sha512-sZLCdHvBUcNby1cB6Fd3ZBrABbjz3v1Vm90nysCQ6Vt7vd6e/h9Lt7SiJUoEX0l4Dzc7P5llKyhqSi1ycSf1Hg==
"@types/d3-timer@*":
version "3.0.0"
resolved "https://registry.yarnpkg.com/@types/d3-timer/-/d3-timer-3.0.0.tgz#e2505f1c21ec08bda8915238e397fb71d2fc54ce"
integrity sha512-HNB/9GHqu7Fo8AQiugyJbv6ZxYz58wef0esl4Mv828w1ZKpAshw/uFWVDUcIB9KKFeFKoxS3cHY07FFgtTRZ1g==
"@types/d3-transition@*":
version "3.0.1"
resolved "https://registry.yarnpkg.com/@types/d3-transition/-/d3-transition-3.0.1.tgz#c9a96125567173d6163a6985b874f79154f4cc3d"
integrity sha512-Sv4qEI9uq3bnZwlOANvYK853zvpdKEm1yz9rcc8ZTsxvRklcs9Fx4YFuGA3gXoQN/c/1T6QkVNjhaRO/cWj94g==
dependencies:
"@types/d3-selection" "*"
"@types/d3-zoom@*":
version "3.0.1"
resolved "https://registry.yarnpkg.com/@types/d3-zoom/-/d3-zoom-3.0.1.tgz#4bfc7e29625c4f79df38e2c36de52ec3e9faf826"
integrity sha512-7s5L9TjfqIYQmQQEUcpMAcBOahem7TRoSO/+Gkz02GbMVuULiZzjF2BOdw291dbO2aNon4m2OdFsRGaCq2caLQ==
dependencies:
"@types/d3-interpolate" "*"
"@types/d3-selection" "*"
"@types/d3@^7.0.0":
version "7.0.0"
resolved "https://registry.yarnpkg.com/@types/d3/-/d3-7.0.0.tgz#d102ec6ea5741e51a1ff7b8228850db0665ccd27"
integrity sha512-7rMMuS5unvbvFCJXAkQXIxWTo2OUlmVXN5q7sfQFesuVICY55PSP6hhbUhWjTTNpfTTB3iLALsIYDFe7KUNABw==
dependencies:
"@types/d3-array" "*"
"@types/d3-axis" "*"
"@types/d3-brush" "*"
"@types/d3-chord" "*"
"@types/d3-color" "*"
"@types/d3-contour" "*"
"@types/d3-delaunay" "*"
"@types/d3-dispatch" "*"
"@types/d3-drag" "*"
"@types/d3-dsv" "*"
"@types/d3-ease" "*"
"@types/d3-fetch" "*"
"@types/d3-force" "*"
"@types/d3-format" "*"
"@types/d3-geo" "*"
"@types/d3-hierarchy" "*"
"@types/d3-interpolate" "*"
"@types/d3-path" "*"
"@types/d3-polygon" "*"
"@types/d3-quadtree" "*"
"@types/d3-random" "*"
"@types/d3-scale" "*"
"@types/d3-scale-chromatic" "*"
"@types/d3-selection" "*"
"@types/d3-shape" "*"
"@types/d3-time" "*"
"@types/d3-time-format" "*"
"@types/d3-timer" "*"
"@types/d3-transition" "*"
"@types/d3-zoom" "*"
"@types/eslint@^7.2.6":
version "7.2.6"
resolved "https://registry.npmjs.org/@types/eslint/-/eslint-7.2.6.tgz"
......@@ -1985,6 +2200,11 @@
resolved "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz"
integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==
"@types/geojson@*":
version "7946.0.8"
resolved "https://registry.yarnpkg.com/@types/geojson/-/geojson-7946.0.8.tgz#30744afdb385e2945e22f3b033f897f76b1f12ca"
integrity sha512-1rkryxURpr6aWP7R786/UQOkJ3PcpQiWkAXBmdWc7ryFWqN6a4xfK7BtjXvFBKO9LjQ+MWQSWxYeZX1OApnArA==
"@types/glob@^7.1.1":
version "7.1.3"
resolved "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz"
......@@ -2194,6 +2414,13 @@
dependencies:
source-map "^0.6.1"
"@types/victory@^33.1.5":
version "33.1.5"
resolved "https://registry.yarnpkg.com/@types/victory/-/victory-33.1.5.tgz#de1ee8ddc685582b9e394baff03606f87d627d4b"
integrity sha512-Lpi1kAlZ4+gY7oH3tRcmJs4YhTIJTTJxkQkyYTK7CtTHl+S6Xf7E7e207eq6D/Dn9UQAB7PCrNrzTGtO5+9GGQ==
dependencies:
"@types/react" "*"
"@types/webpack-sources@*":
version "2.1.0"
resolved "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-2.1.0.tgz"
......@@ -3467,6 +3694,16 @@ caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001109, can
resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001191.tgz"
integrity sha512-xJJqzyd+7GCJXkcoBiQ1GuxEiOBCLQ0aVW9HMekifZsAVGdj5eJ4mFB9fEhSHipq9IOk/QXFJUiIr9lZT+EsGw==
canvasjs-react-charts@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/canvasjs-react-charts/-/canvasjs-react-charts-1.0.5.tgz#bdcc06f7bd50a24f69cca9615dafabc0a2a7b063"
integrity sha512-8P3KnAvCqftmqf4O/xG6PlIDcTr0IvzuE4l6ACXIOROKtFmnmUu/xPEeq+0vI9Xvh7zXjzZvRqw0p1uxXr034g==
canvasjs@^1.8.3:
version "1.8.3"
resolved "https://registry.yarnpkg.com/canvasjs/-/canvasjs-1.8.3.tgz#181a526bbce09c1909431d9471f808494fe970cf"
integrity sha512-60eUT0VjqRgYqdIQcOkXg0Zptfbl4HefA/O51YEf1m/P0uXvE3icI/1KPrXpY9aVxn8gG/BB8DzVoTGCcyBnYg==
capture-exit@^2.0.0:
version "2.0.0"
resolved "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz"
......@@ -3756,6 +3993,11 @@ combined-stream@^1.0.6, combined-stream@~1.0.6:
dependencies:
delayed-stream "~1.0.0"
commander@7:
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.20.0:
version "2.20.3"
resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz"
......@@ -6228,6 +6470,13 @@ iconv-lite@0.4.24:
dependencies:
safer-buffer ">= 2.1.2 < 3"
iconv-lite@0.6:
version "0.6.3"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501"
integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==
dependencies:
safer-buffer ">= 2.1.2 < 3.0.0"
icss-utils@^4.0.0, icss-utils@^4.1.1:
version "4.1.1"
resolved "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz"
......@@ -6378,6 +6627,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==
ip-regex@^2.1.0:
version "2.1.0"
resolved "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz"
......@@ -10351,6 +10605,11 @@ ripemd160@^2.0.0, ripemd160@^2.0.1:
hash-base "^3.0.0"
inherits "^2.0.1"
robust-predicates@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/robust-predicates/-/robust-predicates-3.0.1.tgz#ecde075044f7f30118682bd9fb3f123109577f9a"
integrity sha512-ndEIpszUHiG4HtDsQLeIuMvRsDnn8c8rYStabochtUeCvfuvNptb5TUbVD68LRAILPX7p9nqQGh4xJgn3EHS/g==
rollup-plugin-babel@^4.3.3:
version "4.4.0"
resolved "https://registry.npmjs.org/rollup-plugin-babel/-/rollup-plugin-babel-4.4.0.tgz"
......@@ -10405,6 +10664,11 @@ run-queue@^1.0.0, run-queue@^1.0.3:
dependencies:
aproba "^1.1.1"
rw@1:
version "1.3.3"
resolved "https://registry.yarnpkg.com/rw/-/rw-1.3.3.tgz#3f862dfa91ab766b14885ef4d01124bfda074fb4"
integrity sha1-P4Yt+pGrdmsUiF700BEkv9oHT7Q=
safe-buffer@5.1.2, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
version "5.1.2"
resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz"
......@@ -10422,7 +10686,7 @@ safe-regex@^1.1.0:
dependencies:
ret "~0.1.10"
"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0:
"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0:
version "2.1.2"
resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz"
integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment