Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Kacprzak, Izabella
DRP-InAGlobe-Platform
Commits
233c9649
Commit
233c9649
authored
Jun 16, 2021
by
ras19
Browse files
Changed models to be of desired form. Changed blueprints for consistency [RS, IK, EW, BG]
parent
2c00acda
Pipeline
#203497
failed with stage
in 1 minute and 41 seconds
Changes
13
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
backend/blueprints/assigned_task.py
View file @
233c9649
...
@@ -2,22 +2,35 @@ from operator import truediv
...
@@ -2,22 +2,35 @@ from operator import truediv
from
re
import
T
from
re
import
T
from
flask
import
Blueprint
,
request
,
jsonify
from
flask
import
Blueprint
,
request
,
jsonify
from
backend.database_config.database
import
DB
from
backend.database_config.database
import
DB
from
backend.models.task_model
import
AssignedTasks
from
backend.models.task_model
import
AssignedTask
from
backend.models.task_model
import
Task
import
json
assigned_task
=
Blueprint
(
'assigned_task'
,
__name__
)
assigned_task
=
Blueprint
(
'assigned_task'
,
__name__
)
@
assigned_task
.
route
(
'/assigned_task'
,
methods
=
[
'GET'
])
@
assigned_task
.
route
(
'/assigned_task'
,
methods
=
[
'GET'
])
def
get_all_assignments
():
def
get_all_assignments
():
assignments
=
AssignedTasks
.
query
.
all
()
assignments
=
AssignedTask
.
query
.
all
()
assignments_list
=
[{
"username"
:
x
.
username
,
"task_id"
:
x
.
task_id
,
"id"
:
x
.
id
}
for
x
in
assignments
]
return
jsonify
(
assignments_list
)
@
assigned_task
.
route
(
'/assigned_task/username/<username>'
,
methods
=
[
'GET'
])
def
get_tasks_for_user
(
username
):
entries
=
AssignedTask
.
query
.
filter_by
(
username
=
username
)
task_list
=
[{
"description"
:
task
.
description
,
"priority"
:
task
.
priority
,
"due_date"
:
task
.
due_date
}
for
task
in
(
Task
.
query
.
get
(
x
.
task_id
)
for
x
in
entries
)]
return
jsonify
(
task_list
)
assignments_list
=
[{
"username"
:
x
.
username
,
"task_id"
:
x
.
task_id
,
"id"
:
x
.
id
}
for
x
in
assignments
]
return
jsonify
(
assignments_list
)
@
assigned_task
.
route
(
'/assigned_task'
,
methods
=
[
'POST'
])
@
assigned_task
.
route
(
'/assigned_task'
,
methods
=
[
'POST'
])
def
assign_task_to_user
():
def
assign_task_to_user
():
username
,
task_id
=
(
request
.
json
[
'username'
],
request
.
json
[
'task_id'
])
username
,
task_id
=
(
request
.
json
[
'username'
],
request
.
json
[
'task_id'
])
entry
=
AssignedTasks
(
username
=
username
,
task_id
=
task_id
)
entry
=
AssignedTask
(
username
=
username
,
task_id
=
task_id
)
DB
.
add
(
entry
)
DB
.
add
(
entry
)
return
''
return
''
\ No newline at end of file
backend/blueprints/project_to_user.py
View file @
233c9649
from
re
import
T
from
re
import
T
from
flask
import
Blueprint
,
request
,
jsonify
from
flask
import
Blueprint
,
request
,
jsonify
from
backend.database_config.database
import
DB
from
backend.database_config.database
import
DB
from
backend.models.user_model
import
User_project
from
backend.models.user_model
import
User_project
,
User
from
backend.models.project_model
import
Project
from
backend.models.project_model
import
Project
from
backend.models.user_model
import
User
user_project
=
Blueprint
(
'user_project'
,
__name__
)
user_project
=
Blueprint
(
'user_project'
,
__name__
)
...
...
backend/blueprints/task.py
View file @
233c9649
...
@@ -2,7 +2,7 @@ from operator import truediv
...
@@ -2,7 +2,7 @@ from operator import truediv
from
re
import
T
from
re
import
T
from
flask
import
Blueprint
,
request
,
jsonify
from
flask
import
Blueprint
,
request
,
jsonify
from
backend.database_config.database
import
DB
from
backend.database_config.database
import
DB
from
backend.models.task_model
import
Task
from
backend.models.task_model
import
AssignedTask
,
Task
task
=
Blueprint
(
'task'
,
__name__
)
task
=
Blueprint
(
'task'
,
__name__
)
...
@@ -18,8 +18,6 @@ def get_project_tasks(project_id):
...
@@ -18,8 +18,6 @@ def get_project_tasks(project_id):
"id"
:
x
.
id
}
for
x
in
entries
]
"id"
:
x
.
id
}
for
x
in
entries
]
return
jsonify
(
project_tasks
)
return
jsonify
(
project_tasks
)
@
task
.
route
(
'/projects/<project_id>/tasks'
,
methods
=
[
'POST'
])
@
task
.
route
(
'/projects/<project_id>/tasks'
,
methods
=
[
'POST'
])
def
add_project_task
(
project_id
):
def
add_project_task
(
project_id
):
description
,
due_date
,
completed
,
priority
=
(
request
.
json
[
'description'
],
description
,
due_date
,
completed
,
priority
=
(
request
.
json
[
'description'
],
...
@@ -50,6 +48,10 @@ def update_task(project_id, task_id):
...
@@ -50,6 +48,10 @@ def update_task(project_id, task_id):
@
task
.
route
(
'/projects/<project_id>/tasks/<task_id>'
,
methods
=
[
'DELETE'
])
@
task
.
route
(
'/projects/<project_id>/tasks/<task_id>'
,
methods
=
[
'DELETE'
])
def
delete_task
(
project_id
,
task_id
):
def
delete_task
(
project_id
,
task_id
):
entries
=
AssignedTask
.
query
.
filter_by
(
task_id
=
task_id
)
for
e
in
entries
:
DB
.
delete
(
e
)
entry
=
Task
.
query
.
get
(
task_id
)
entry
=
Task
.
query
.
get
(
task_id
)
DB
.
delete
(
entry
)
DB
.
delete
(
entry
)
return
''
return
''
\ No newline at end of file
backend/models/project_model.py
View file @
233c9649
...
@@ -12,7 +12,6 @@ class Project(db.Model):
...
@@ -12,7 +12,6 @@ class Project(db.Model):
tag
=
db
.
Column
(
db
.
String
)
tag
=
db
.
Column
(
db
.
String
)
location
=
db
.
Column
(
db
.
String
)
location
=
db
.
Column
(
db
.
String
)
files
=
db
.
Column
(
db
.
String
)
files
=
db
.
Column
(
db
.
String
)
# list of ngos and academics and users need to be separate tables
id
=
db
.
Column
(
db
.
Integer
,
primary_key
=
True
,
autoincrement
=
True
)
id
=
db
.
Column
(
db
.
Integer
,
primary_key
=
True
,
autoincrement
=
True
)
def
save
(
self
):
def
save
(
self
):
...
...
backend/models/task_model.py
View file @
233c9649
...
@@ -7,7 +7,7 @@ db = DB.the_database
...
@@ -7,7 +7,7 @@ db = DB.the_database
class
Task
(
db
.
Model
):
class
Task
(
db
.
Model
):
description
=
db
.
Column
(
db
.
String
)
description
=
db
.
Column
(
db
.
String
)
priority
=
db
.
Column
(
db
.
String
)
priority
=
db
.
Column
(
db
.
Integer
)
completed
=
db
.
Column
(
db
.
Boolean
)
completed
=
db
.
Column
(
db
.
Boolean
)
due_date
=
db
.
Column
(
db
.
Date
)
due_date
=
db
.
Column
(
db
.
Date
)
project_id
=
db
.
Column
(
db
.
Integer
,
ForeignKey
(
'project.id'
))
project_id
=
db
.
Column
(
db
.
Integer
,
ForeignKey
(
'project.id'
))
...
@@ -34,7 +34,7 @@ class Task(db.Model):
...
@@ -34,7 +34,7 @@ class Task(db.Model):
id
=
self
.
id
id
=
self
.
id
)
)
class
AssignedTask
s
(
db
.
Model
):
class
AssignedTask
(
db
.
Model
):
task_id
=
db
.
Column
(
db
.
Integer
,
ForeignKey
(
'task.id'
),
nullable
=
False
)
task_id
=
db
.
Column
(
db
.
Integer
,
ForeignKey
(
'task.id'
),
nullable
=
False
)
username
=
db
.
Column
(
db
.
String
,
ForeignKey
(
'user.username'
),
nullable
=
False
)
username
=
db
.
Column
(
db
.
String
,
ForeignKey
(
'user.username'
),
nullable
=
False
)
id
=
db
.
Column
(
db
.
Integer
,
primary_key
=
True
,
autoincrement
=
True
)
id
=
db
.
Column
(
db
.
Integer
,
primary_key
=
True
,
autoincrement
=
True
)
...
...
backend/models/todo_model.py
View file @
233c9649
...
@@ -6,7 +6,7 @@ from flask import jsonify
...
@@ -6,7 +6,7 @@ from flask import jsonify
db
=
DB
.
the_database
db
=
DB
.
the_database
class
Todo
(
db
.
Model
):
class
Todo
(
db
.
Model
):
priority
=
db
.
Column
(
db
.
String
)
priority
=
db
.
Column
(
db
.
Integer
)
todo_desc
=
db
.
Column
(
db
.
String
)
todo_desc
=
db
.
Column
(
db
.
String
)
due_date
=
db
.
Column
(
db
.
Date
)
due_date
=
db
.
Column
(
db
.
Date
)
username
=
db
.
Column
(
db
.
String
,
ForeignKey
(
'user.username'
))
username
=
db
.
Column
(
db
.
String
,
ForeignKey
(
'user.username'
))
...
...
backend/models/user_model.py
View file @
233c9649
...
@@ -11,6 +11,7 @@ class User(db.Model):
...
@@ -11,6 +11,7 @@ class User(db.Model):
password
=
db
.
Column
(
db
.
String
)
password
=
db
.
Column
(
db
.
String
)
title
=
db
.
Column
(
db
.
String
)
title
=
db
.
Column
(
db
.
String
)
email
=
db
.
Column
(
db
.
String
)
email
=
db
.
Column
(
db
.
String
)
phone_no
=
db
.
Column
(
db
.
String
)
bio
=
db
.
Column
(
db
.
String
)
bio
=
db
.
Column
(
db
.
String
)
joined
=
db
.
Column
(
db
.
Date
)
joined
=
db
.
Column
(
db
.
Date
)
location
=
db
.
Column
(
db
.
String
)
location
=
db
.
Column
(
db
.
String
)
...
...
frontend/src/AddProjectTask.js
View file @
233c9649
...
@@ -46,7 +46,7 @@ const AddProjectTask = () => {
...
@@ -46,7 +46,7 @@ const AddProjectTask = () => {
});
});
});
});
history
.
push
(
"
/
"
);
history
.
push
(
"
/
projects/
"
+
id
);
}
}
return
(
return
(
...
...
frontend/src/App.js
View file @
233c9649
...
@@ -24,9 +24,9 @@ function App() {
...
@@ -24,9 +24,9 @@ function App() {
const
{
token
,
setToken
}
=
useToken
();
const
{
token
,
setToken
}
=
useToken
();
if
(
!
token
)
{
//
if(!token) {
return
<
Login
setToken
=
{
setToken
}
/
>
//
return <Login setToken={setToken} />
}
//
}
return
(
return
(
<
Router
>
<
Router
>
...
...
frontend/src/Home.js
View file @
233c9649
...
@@ -11,34 +11,34 @@ const Home = () => {
...
@@ -11,34 +11,34 @@ const Home = () => {
const
{
setToken
,
token
}
=
useToken
();
const
{
setToken
,
token
}
=
useToken
();
const
{
data
:
projects
,
errorRProjects
,
isPendingRProjects
}
=
useFetch
(
"
/user_project/username/
"
+
token
);
const
{
data
:
projects
,
errorRProjects
,
isPendingRProjects
}
=
useFetch
(
"
/user_project/username/
"
+
token
);
const
project_tasks
=
[
//
const project_tasks = [
{
//
{
"
description
"
:
"
This is example 1
"
,
//
"description": "This is example 1",
"
due_date
"
:
"
17/06/2021
"
,
//
"due_date": "17/06/2021",
"
priority
"
:
1
,
//
"priority": 1,
"
completed
"
:
"
Completed
"
,
//
"completed": "Completed",
"
project_id
"
:
2
,
//
"project_id": 2,
"
id
"
:
1
//
"id": 1
},
//
},
{
//
{
"
description
"
:
"
This is example 2
"
,
//
"description": "This is example 2",
"
due_date
"
:
"
18/06/2021
"
,
//
"due_date": "18/06/2021",
"
priority
"
:
1
,
//
"priority": 1,
"
completed
"
:
"
Available
"
,
//
"completed": "Available",
"
project_id
"
:
3
,
//
"project_id": 3,
"
id
"
:
2
//
"id": 2
},
//
},
{
//
{
"
description
"
:
"
This is example 3
"
,
//
"description": "This is example 3",
"
due_date
"
:
"
21/06/2021
"
,
//
"due_date": "21/06/2021",
"
priority
"
:
2
,
//
"priority": 2,
"
completed
"
:
"
Available
"
,
//
"completed": "Available",
"
project_id
"
:
4
,
//
"project_id": 4,
"
id
"
:
3
//
"id": 3
}
//
}
]
//
]
//
const {data: project_tasks, errorProjectTasks, isPendingProjectTasks} = useFetch("/assigned_task/username/" + token)
const
{
data
:
project_tasks
,
errorProjectTasks
,
isPendingProjectTasks
}
=
useFetch
(
"
/assigned_task/username/
"
+
token
)
return
(
return
(
<
div
className
=
"
home
"
>
<
div
className
=
"
home
"
>
...
...
frontend/src/Users.js
View file @
233c9649
...
@@ -11,7 +11,7 @@ const Users = () => {
...
@@ -11,7 +11,7 @@ const Users = () => {
return
(
return
(
<
div
className
=
"
users
"
>
<
div
className
=
"
users
"
>
<
h1
>
Users
<
/h1
>
<
h1
>
Users
<
/h1
>
{
token
==
"
jaimeaguilera
"
&&
<
Link
to
=
{
`/add-user`
}
className
=
"
add-user-button
"
>
Add
User
<
/Link>
}
{
<
Link
to
=
{
`/add-user`
}
className
=
"
add-user-button
"
>
Add
User
<
/Link>
}
<
br
/>
<
br
/>
<
br
/>
<
br
/>
{
isPending
&&
<
h2
>
Loading
...
<
/h2>
}
{
isPending
&&
<
h2
>
Loading
...
<
/h2>
}
...
...
package-lock.json
0 → 100644
View file @
233c9649
{
"name"
:
"drp-inaglobe-platform"
,
"lockfileVersion"
:
2
,
"requires"
:
true
,
"packages"
:
{
""
:
{
"dependencies"
:
{
"react-select"
:
"^4.3.1"
}
},
"node_modules/@babel/runtime"
:
{
"version"
:
"7.14.6"
,
"resolved"
:
"https://registry.npmjs.org/@babel/runtime/-/runtime-7.14.6.tgz"
,
"integrity"
:
"sha512-/PCB2uJ7oM44tz8YhC4Z/6PeOKXp4K588f+5M3clr1M4zbqztlo0XEfJ2LEzj/FgwfgGcIdl8n7YYjTCI0BYwg=="
,
"dependencies"
:
{
"regenerator-runtime"
:
"^0.13.4"
},
"engines"
:
{
"node"
:
">=6.9.0"
}
},
"node_modules/@emotion/cache"
:
{
"version"
:
"11.4.0"
,
"resolved"
:
"https://registry.npmjs.org/@emotion/cache/-/cache-11.4.0.tgz"
,
"integrity"
:
"sha512-Zx70bjE7LErRO9OaZrhf22Qye1y4F7iDl+ITjet0J+i+B88PrAOBkKvaAWhxsZf72tDLajwCgfCjJ2dvH77C3g=="
,
"dependencies"
:
{
"@emotion/memoize"
:
"^0.7.4"
,
"@emotion/sheet"
:
"^1.0.0"
,
"@emotion/utils"
:
"^1.0.0"
,
"@emotion/weak-memoize"
:
"^0.2.5"
,
"stylis"
:
"^4.0.3"
}
},
"node_modules/@emotion/hash"
:
{
"version"
:
"0.8.0"
,
"resolved"
:
"https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz"
,
"integrity"
:
"sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow=="
},
"node_modules/@emotion/memoize"
:
{
"version"
:
"0.7.5"
,
"resolved"
:
"https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.5.tgz"
,
"integrity"
:
"sha512-igX9a37DR2ZPGYtV6suZ6whr8pTFtyHL3K/oLUotxpSVO2ASaprmAe2Dkq7tBo7CRY7MMDrAa9nuQP9/YG8FxQ=="
},
"node_modules/@emotion/react"
:
{
"version"
:
"11.4.0"
,
"resolved"
:
"https://registry.npmjs.org/@emotion/react/-/react-11.4.0.tgz"
,
"integrity"
:
"sha512-4XklWsl9BdtatLoJpSjusXhpKv9YVteYKh9hPKP1Sxl+mswEFoUe0WtmtWjxEjkA51DQ2QRMCNOvKcSlCQ7ivg=="
,
"dependencies"
:
{
"@babel/runtime"
:
"^7.13.10"
,
"@emotion/cache"
:
"^11.4.0"
,
"@emotion/serialize"
:
"^1.0.2"
,
"@emotion/sheet"
:
"^1.0.1"
,
"@emotion/utils"
:
"^1.0.0"
,
"@emotion/weak-memoize"
:
"^0.2.5"
,
"hoist-non-react-statics"
:
"^3.3.1"
},
"peerDependencies"
:
{
"@babel/core"
:
"^7.0.0"
,
"react"
:
">=16.8.0"
},
"peerDependenciesMeta"
:
{
"@babel/core"
:
{
"optional"
:
true
},
"@types/react"
:
{
"optional"
:
true
}
}
},
"node_modules/@emotion/serialize"
:
{
"version"
:
"1.0.2"
,
"resolved"
:
"https://registry.npmjs.org/@emotion/serialize/-/serialize-1.0.2.tgz"
,
"integrity"
:
"sha512-95MgNJ9+/ajxU7QIAruiOAdYNjxZX7G2mhgrtDWswA21VviYIRP1R5QilZ/bDY42xiKsaktP4egJb3QdYQZi1A=="
,
"dependencies"
:
{
"@emotion/hash"
:
"^0.8.0"
,
"@emotion/memoize"
:
"^0.7.4"
,
"@emotion/unitless"
:
"^0.7.5"
,
"@emotion/utils"
:
"^1.0.0"
,
"csstype"
:
"^3.0.2"
}
},
"node_modules/@emotion/sheet"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/@emotion/sheet/-/sheet-1.0.1.tgz"
,
"integrity"
:
"sha512-GbIvVMe4U+Zc+929N1V7nW6YYJtidj31lidSmdYcWozwoBIObXBnaJkKNDjZrLm9Nc0BR+ZyHNaRZxqNZbof5g=="
},
"node_modules/@emotion/unitless"
:
{
"version"
:
"0.7.5"
,
"resolved"
:
"https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz"
,
"integrity"
:
"sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg=="
},
"node_modules/@emotion/utils"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/@emotion/utils/-/utils-1.0.0.tgz"
,
"integrity"
:
"sha512-mQC2b3XLDs6QCW+pDQDiyO/EdGZYOygE8s5N5rrzjSI4M3IejPE/JPndCBwRT9z982aqQNi6beWs1UeayrQxxA=="
},
"node_modules/@emotion/weak-memoize"
:
{
"version"
:
"0.2.5"
,
"resolved"
:
"https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz"
,
"integrity"
:
"sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA=="
},
"node_modules/csstype"
:
{
"version"
:
"3.0.8"
,
"resolved"
:
"https://registry.npmjs.org/csstype/-/csstype-3.0.8.tgz"
,
"integrity"
:
"sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw=="
},
"node_modules/dom-helpers"
:
{
"version"
:
"5.2.1"
,
"resolved"
:
"https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz"
,
"integrity"
:
"sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA=="
,
"dependencies"
:
{
"@babel/runtime"
:
"^7.8.7"
,
"csstype"
:
"^3.0.2"
}
},
"node_modules/hoist-non-react-statics"
:
{
"version"
:
"3.3.2"
,
"resolved"
:
"https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz"
,
"integrity"
:
"sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw=="
,
"dependencies"
:
{
"react-is"
:
"^16.7.0"
}
},
"node_modules/js-tokens"
:
{
"version"
:
"4.0.0"
,
"resolved"
:
"https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz"
,
"integrity"
:
"sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
},
"node_modules/loose-envify"
:
{
"version"
:
"1.4.0"
,
"resolved"
:
"https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz"
,
"integrity"
:
"sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q=="
,
"dependencies"
:
{
"js-tokens"
:
"^3.0.0 || ^4.0.0"
},
"bin"
:
{
"loose-envify"
:
"cli.js"
}
},
"node_modules/memoize-one"
:
{
"version"
:
"5.2.1"
,
"resolved"
:
"https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz"
,
"integrity"
:
"sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q=="
},
"node_modules/object-assign"
:
{
"version"
:
"4.1.1"
,
"resolved"
:
"https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz"
,
"integrity"
:
"sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
,
"engines"
:
{
"node"
:
">=0.10.0"
}
},
"node_modules/prop-types"
:
{
"version"
:
"15.7.2"
,
"resolved"
:
"https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz"
,
"integrity"
:
"sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ=="
,
"dependencies"
:
{
"loose-envify"
:
"^1.4.0"
,
"object-assign"
:
"^4.1.1"
,
"react-is"
:
"^16.8.1"
}
},
"node_modules/react"
:
{
"version"
:
"17.0.2"
,
"resolved"
:
"https://registry.npmjs.org/react/-/react-17.0.2.tgz"
,
"integrity"
:
"sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA=="
,
"peer"
:
true
,
"dependencies"
:
{
"loose-envify"
:
"^1.1.0"
,
"object-assign"
:
"^4.1.1"
},
"engines"
:
{
"node"
:
">=0.10.0"
}
},
"node_modules/react-dom"
:
{
"version"
:
"17.0.2"
,
"resolved"
:
"https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz"
,
"integrity"
:
"sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA=="
,
"peer"
:
true
,
"dependencies"
:
{
"loose-envify"
:
"^1.1.0"
,
"object-assign"
:
"^4.1.1"
,
"scheduler"
:
"^0.20.2"
},
"peerDependencies"
:
{
"react"
:
"17.0.2"
}
},
"node_modules/react-input-autosize"
:
{
"version"
:
"3.0.0"
,
"resolved"
:
"https://registry.npmjs.org/react-input-autosize/-/react-input-autosize-3.0.0.tgz"
,
"integrity"
:
"sha512-nL9uS7jEs/zu8sqwFE5MAPx6pPkNAriACQ2rGLlqmKr2sPGtN7TXTyDdQt4lbNXVx7Uzadb40x8qotIuru6Rhg=="
,
"dependencies"
:
{
"prop-types"
:
"^15.5.8"
},
"peerDependencies"
:
{
"react"
:
"^16.3.0 || ^17.0.0"
}
},
"node_modules/react-is"
:
{
"version"
:
"16.13.1"
,
"resolved"
:
"https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz"
,
"integrity"
:
"sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
},
"node_modules/react-select"
:
{
"version"
:
"4.3.1"
,
"resolved"
:
"https://registry.npmjs.org/react-select/-/react-select-4.3.1.tgz"
,
"integrity"
:
"sha512-HBBd0dYwkF5aZk1zP81Wx5UsLIIT2lSvAY2JiJo199LjoLHoivjn9//KsmvQMEFGNhe58xyuOITjfxKCcGc62Q=="
,
"dependencies"
:
{
"@babel/runtime"
:
"^7.12.0"
,
"@emotion/cache"
:
"^11.4.0"
,
"@emotion/react"
:
"^11.1.1"
,
"memoize-one"
:
"^5.0.0"
,
"prop-types"
:
"^15.6.0"
,
"react-input-autosize"
:
"^3.0.0"
,
"react-transition-group"
:
"^4.3.0"
},
"peerDependencies"
:
{
"react"
:
"^16.8.0 || ^17.0.0"
,
"react-dom"
:
"^16.8.0 || ^17.0.0"
}
},
"node_modules/react-transition-group"
:
{
"version"
:
"4.4.2"
,
"resolved"
:
"https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.2.tgz"
,
"integrity"
:
"sha512-/RNYfRAMlZwDSr6z4zNKV6xu53/e2BuaBbGhbyYIXTrmgu/bGHzmqOs7mJSJBHy9Ud+ApHx3QjrkKSp1pxvlFg=="
,
"dependencies"
:
{
"@babel/runtime"
:
"^7.5.5"
,
"dom-helpers"
:
"^5.0.1"
,
"loose-envify"
:
"^1.4.0"
,
"prop-types"
:
"^15.6.2"
},
"peerDependencies"
:
{
"react"
:
">=16.6.0"
,
"react-dom"
:
">=16.6.0"
}
},
"node_modules/regenerator-runtime"
:
{
"version"
:
"0.13.7"
,
"resolved"
:
"https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz"
,
"integrity"
:
"sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew=="
},
"node_modules/scheduler"
:
{
"version"
:
"0.20.2"
,
"resolved"
:
"https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz"
,
"integrity"
:
"sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ=="
,
"peer"
:
true
,
"dependencies"
:
{
"loose-envify"
:
"^1.1.0"
,
"object-assign"
:
"^4.1.1"
}
},
"node_modules/stylis"
:
{
"version"
:
"4.0.10"
,
"resolved"
:
"https://registry.npmjs.org/stylis/-/stylis-4.0.10.tgz"
,
"integrity"
:
"sha512-m3k+dk7QeJw660eIKRRn3xPF6uuvHs/FFzjX3HQ5ove0qYsiygoAhwn5a3IYKaZPo5LrYD0rfVmtv1gNY1uYwg=="
}
},
"dependencies"
:
{
"@babel/runtime"
:
{
"version"
:
"7.14.6"
,
"resolved"
:
"https://registry.npmjs.org/@babel/runtime/-/runtime-7.14.6.tgz"
,
"integrity"
:
"sha512-/PCB2uJ7oM44tz8YhC4Z/6PeOKXp4K588f+5M3clr1M4zbqztlo0XEfJ2LEzj/FgwfgGcIdl8n7YYjTCI0BYwg=="
,
"requires"
:
{
"regenerator-runtime"
:
"^0.13.4"
}
},
"@emotion/cache"
:
{
"version"
:
"11.4.0"
,
"resolved"
:
"https://registry.npmjs.org/@emotion/cache/-/cache-11.4.0.tgz"
,
"integrity"
:
"sha512-Zx70bjE7LErRO9OaZrhf22Qye1y4F7iDl+ITjet0J+i+B88PrAOBkKvaAWhxsZf72tDLajwCgfCjJ2dvH77C3g=="
,
"requires"
:
{
"@emotion/memoize"
:
"^0.7.4"
,
"@emotion/sheet"
:
"^1.0.0"
,
"@emotion/utils"
:
"^1.0.0"
,
"@emotion/weak-memoize"
:
"^0.2.5"
,
"stylis"
:
"^4.0.3"
}
},
"@emotion/hash"
:
{
"version"
:
"0.8.0"
,
"resolved"
:
"https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz"
,
"integrity"
:
"sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow=="
},
"@emotion/memoize"
:
{
"version"
:
"0.7.5"
,
"resolved"
:
"https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.5.tgz"
,
"integrity"
:
"sha512-igX9a37DR2ZPGYtV6suZ6whr8pTFtyHL3K/oLUotxpSVO2ASaprmAe2Dkq7tBo7CRY7MMDrAa9nuQP9/YG8FxQ=="
},
"@emotion/react"
:
{
"version"
:
"11.4.0"
,
"resolved"
:
"https://registry.npmjs.org/@emotion/react/-/react-11.4.0.tgz"
,
"integrity"
:
"sha512-4XklWsl9BdtatLoJpSjusXhpKv9YVteYKh9hPKP1Sxl+mswEFoUe0WtmtWjxEjkA51DQ2QRMCNOvKcSlCQ7ivg=="
,
"requires"
:
{
"@babel/runtime"
:
"^7.13.10"
,
"@emotion/cache"
:
"^11.4.0"
,
"@emotion/serialize"
:
"^1.0.2"
,
"@emotion/sheet"
:
"^1.0.1"
,
"@emotion/utils"
:
"^1.0.0"
,
"@emotion/weak-memoize"
:
"^0.2.5"
,
"hoist-non-react-statics"
:
"^3.3.1"
}
},
"@emotion/serialize"
:
{
"version"
:
"1.0.2"
,