Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
purescript-gargantext
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Grégoire Locqueville
purescript-gargantext
Commits
60b44ab5
Commit
60b44ab5
authored
Feb 04, 2021
by
Przemyslaw Kaminski
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev' into dev-prettyNodeType-form
parents
4cd62806
20bdba69
Changes
26
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
26 changed files
with
20307 additions
and
130 deletions
+20307
-130
favicon.ico
dist/favicon.ico
+0
-0
bootstrap-dark.css
dist/styles/bootstrap-dark.css
+176
-0
bootstrap-darkster.css
dist/styles/bootstrap-darkster.css
+9950
-0
bootstrap-herbie.css
dist/styles/bootstrap-herbie.css
+9884
-0
sass.css
dist/styles/sass.css
+0
-12
sass.css.map
dist/styles/sass.css.map
+1
-1
package.json
package.json
+1
-1
Add.purs
src/Gargantext/Components/Forest/Tree/Node/Action/Add.purs
+3
-1
SearchField.purs
...omponents/Forest/Tree/Node/Action/Search/SearchField.purs
+5
-1
Tools.purs
src/Gargantext/Components/Forest/Tree/Node/Tools.purs
+2
-1
Button.purs
src/Gargantext/Components/GraphExplorer/Button.purs
+1
-1
Utils.purs
src/Gargantext/Components/GraphExplorer/Utils.purs
+30
-2
InputWithEnter.purs
src/Gargantext/Components/InputWithEnter.purs
+6
-3
NgramsTable.purs
src/Gargantext/Components/NgramsTable.purs
+1
-1
User.purs
src/Gargantext/Components/Nodes/Annuaire/User.purs
+1
-0
Contact.purs
src/Gargantext/Components/Nodes/Annuaire/User/Contact.purs
+1
-0
Corpus.purs
src/Gargantext/Components/Nodes/Corpus.purs
+8
-75
Lists.purs
src/Gargantext/Components/Nodes/Lists.purs
+11
-9
Texts.purs
src/Gargantext/Components/Nodes/Texts.purs
+9
-8
Renameable.purs
src/Gargantext/Components/Renameable.purs
+91
-0
Table.purs
src/Gargantext/Components/Table.purs
+2
-2
Themes.purs
src/Gargantext/Components/Themes.purs
+9
-1
Array.purs
src/Gargantext/Utils/Array.purs
+20
-2
_code_editor.sass
src/sass/_code_editor.sass
+0
-9
darkster.scss
src/sass/bootstrap/darkster.scss
+77
-0
herbie.scss
src/sass/bootstrap/herbie.scss
+18
-0
No files found.
dist/favicon.ico
0 → 100644
View file @
60b44ab5
2.19 KB
dist/styles/bootstrap-dark.css
0 → 100644
View file @
60b44ab5
body
{
background-color
:
#303030
;
color
:
#fff
;
}
a
{
color
:
#007bff
;
}
.bg-dark
{
background-color
:
#212121
!important
;
}
.text-dark
{
color
:
#fff
!important
;
}
.text-muted
{
color
:
#9e9e9e
!important
;
}
.dropdown-menu
{
background-color
:
#343a40
;
color
:
#fff
;
}
.dropdown-item
{
color
:
inherit
;
}
.dropdown-item
:hover
,
.dropdown-item.active
{
color
:
inherit
;
background-color
:
#4b545c
;
}
.breadcrumb
{
background-color
:
#343a40
;
}
.breadcrumb-item.active
{
color
:
#fff
;
}
.nav-tabs
{
border-bottom-color
:
#454d55
;
}
.nav-tabs
.nav-link
{
color
:
#fff
;
background-color
:
#343a40
;
}
.nav-tabs
.nav-link
:hover
,
.nav-tabs
.nav-link.active
{
color
:
inherit
;
background-color
:
#43494E
;
border-color
:
#454d55
;
}
.card
{
background-color
:
#424242
;
}
.card.bg-light
{
color
:
#383d41
;
}
.modal-content
{
background-color
:
#424242
;
}
.close
{
color
:
#fff
;
}
.close
:hover
{
color
:
#fff
;
}
.jumbotron
{
background-color
:
#212121
;
}
.form-control
,
.form-control
:active
,
.form-control
:focus
{
border-color
:
#454d55
;
background-color
:
#343a40
;
color
:
#fff
;
/*Change text in autofill textbox */
}
.form-control
:-webkit-autofill
,
.form-control
:active:-webkit-autofill
,
.form-control
:focus:-webkit-autofill
{
-webkit-box-shadow
:
0
0
0
50px
#343a40
inset
;
/* Change the color to your own background color */
-webkit-text-fill-color
:
#fff
;
}
.form-control
::-webkit-input-placeholder
,
.form-control
:active::-webkit-input-placeholder
,
.form-control
:focus::-webkit-input-placeholder
{
color
:
#888
;
}
.form-control
:-ms-input-placeholder
,
.form-control
:active:-ms-input-placeholder
,
.form-control
:focus:-ms-input-placeholder
{
color
:
#888
;
}
.form-control
::-ms-input-placeholder
,
.form-control
:active::-ms-input-placeholder
,
.form-control
:focus::-ms-input-placeholder
{
color
:
#888
;
}
.form-control
::placeholder
,
.form-control
:active::placeholder
,
.form-control
:focus::placeholder
{
color
:
#888
;
}
.custom-select
{
border-color
:
#454d55
;
background
:
url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23fff' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e")
no-repeat
right
0.75rem
center
/
8px
10px
;
background-color
:
#343a40
;
color
:
#fff
;
}
.custom-control-label
::before
{
background-color
:
#343a40
;
}
.input-group-text
{
border-color
:
#454d55
;
background-color
:
#4b545c
;
color
:
#fff
;
}
.list-group-item
{
background-color
:
#343a40
;
}
.list-group-item-action
{
color
:
inherit
;
}
.list-group-item-action
:not
(
.active
)
:hover
{
color
:
inherit
;
background-color
:
#43494E
;
}
.list-group-item-action.disabled
{
background-color
:
#343a40
;
}
.page-link
{
background-color
:
#343a40
;
border-color
:
#454d55
;
}
.page-link
:hover
{
border-color
:
#454d55
;
background-color
:
#43494E
;
}
.page-item.disabled
.page-link
{
background-color
:
#343a40
;
border-color
:
#454d55
;
}
.progress
{
background-color
:
#343a40
;
}
/*# sourceMappingURL=bootstrap-dark.css.map */
\ No newline at end of file
dist/styles/bootstrap-darkster.css
0 → 100644
View file @
60b44ab5
This diff is collapsed.
Click to expand it.
dist/styles/bootstrap-herbie.css
0 → 100644
View file @
60b44ab5
This diff is collapsed.
Click to expand it.
dist/styles/sass.css
View file @
60b44ab5
...
...
@@ -532,18 +532,6 @@ li .leaf:hover a.settings {
color
:
black
;
}
.code-editor-heading
{
/* .buttons-right */
/* display: flex */
/* justify-content: flex-end */
}
.code-editor-heading
.renameable
{
flex-grow
:
2
;
}
.code-editor-heading
.renameable
.text
{
padding-right
:
10px
;
}
.code-editor
.editor
.code-area
{
flex-grow
:
1
;
max-height
:
200px
;
...
...
dist/styles/sass.css.map
View file @
60b44ab5
{"version":3,"sourceRoot":"","sources":["../../src/sass/_menu.sass","../../src/sass/_context_menu.sass","../../src/sass/_graph.sass","../../src/sass/_login.sass","../../src/sass/_tree.sass","../../src/sass/_code_editor.sass","../../src/sass/_styles.sass","../../src/sass/_range_slider.sass","../../src/sass/_annotation.sass"],"names":[],"mappings":"AAAA;AAEA;AACA;AACA;AACA;AACA;AAEA;EACI;EACA;;;AAEJ;EACI;EACA;EACA;EACA;;;AAEJ;EACE;;;AAEF;AACI;EACA;;;AAEJ;AACI;EACA;;;AAGJ;AACA;EACI;;;AAEJ;EACI;EACA;EACA;EACA;;;AAEJ;EACE;EACA;;;AAEF;EACE;;;AC7CF;EACE;EACA;EACA;EACA;EACA;;;AAEF;EACE;;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;;;AAEF;EACE;;;AClBF;EACE;EACA;EACA;;;AAEF;AAkCE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAxCA;EAZA;EACA;EAEA;EAWE;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAEF;EACE;EACA;;AAGA;EACE;EACA;;AACN;EACE;;AACF;EACE;;AAEF;EApCA;EACA;EAEA;EAmCE;EACA;;AACF;EACE;;AACF;EACE;;AAWF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAEJ;EACE;;AAEA;EACE;;AAEJ;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;ACpFJ;EACE;;;AAOF;EACE;;AACA;EACE;EACA;;;AAEJ;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;;AAEE;EACE;EACA;;AACA;EACE;;;AAIJ;EACE;EACA;EACA;EACA;;;AAKJ;EACE;EACA;EACA;;;AAGJ;EACE;EACA;EACA;EACA;EACA;;AACA;EACE;EACA;;AACF;EACE;EACA;;AACA;EACE;EACA;EACA;EACA;;AACA;EACE;;AACF;EACE;EACA;EACA;EACA;;AACA;EACE;;AACN;EACE;EACA;EACA;EACA;;;AAGN;EACE;EACA;EACA;EACA;EACA;;AAGE;EACE;;;AAEN;EACE;EACA;EACA;EACA;EACA;;AAGE;EACE;;;AAEN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;;AAEJ;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;;AACA;EACE;EACA;;;AAGF;EACE;;;AAEJ;EACI;EACA;;;AAGF;EACE;;;AAEJ;EACE;;;AAEF;EACE;EACA;;;AAEF;EACE;EACA;EACA;;;AAEF;EACE;EACA;;;AAEF;EACE;;;ACvKF;EACE;;;AAGA;EACE;EACA;EACA;;AAEA;EACE;EACA;;AAEF;EACE;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;;AAER;EACE;;AAEE;EACE;;AACA;EACE;EACA;EACA;EACA;;AACF;EACE;EACA;EACA;EACA;EACA;;AACF;EACE;;AACF;EACE;EACA;EACA;EAEA;EACA;EACA;;AAEA;EACE;;AACF;EACE;;AAGN;EACE;;AACF;EACE;;AACA;EACE;EACA;;AAEE;EACE;EACA;;AACF;EACE;EACA;;AAIR;EACE;;AACF;EACE;;AACA;EACE;EACA;;AAEE;EACE;EACA;;AACF;EACE;EACA;;AACF;EACE;EACA;;AAEV;EACE;;AACF;EACE;;AAEE;EACE;;AACF;EACE;;AACN;EACE;;AAEE;EACE;;;AAGR;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EAEE;EACA;EACA;EACA;EACA;;AAEF;EACE;EACA;EACA;;AAEF;EACE;;;AAIF;EACE;;AAEA;EACE;;;AAGN;EACE;;AACF;EACE;;AACF;EACE;;;AC7IJ;AAKE;AACA;AACA;;AANA;EACE;;AACA;EACE;;;AAOF;EACE;EACA;EACA;EACA;;AACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EA7CR;EACA;EACA;EACA;EACA;EACA;EACA;EAlBA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAmDM;EACE;EACA;EACA;EACA;EACA;EArDR;EACA;EACA;EACA;EACA;EACA;EACA;EAlBA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AA2DE;EACE;EACA;EACA;EACA;EACA;EACA;;AACF;EACE;EACA;EACA;;AACA;EACE;EACA;;AACF;EACE;EACA;;AACF;EACE;EACA;;AAGE;EACE;;AAEF;EACE;;;AC9FV;EACE;;AACF;EACE;EACA;EACA;EACA;EACA;EACA;;AACA;EACE;;AAGE;EACE;EACA;;AAEF;EACE;EACA;;;AAEV;EACE;;AACA;EACE;;AACF;EACE;EACA;EACA;;;AAIA;EACE;;AACA;EACE;EACA;;AACF;EACE;;AACA;EACE;;AACJ;EACE;;;AAER;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;AAGI;EACE;;AACF;EACE;;;AAEN;EACE;EACA;EACA;;;AAIA;EACE;;AACF;EACE;;;ACxEJ;EACE;AACA;EACA;;AAEA;EACE;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;;AAEF;EACE;EACA;EACA;EACA;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EAEA;EAEA;;AAEA;EACE;EAEA;EACA;EACA;;;AAGN;EACE;;;ACzBJ;EACE;;AAEA;EANE;EACA;;AAQF;EAbE;EACA;;AAeF;EAhBE;EACA;;AAkBF;EAnBE;EACA;;AAqBF;EA1BE;EACA,kBALyB;;AAiC3B;EA7BE;EACA,kBANqB;;AAqCvB;EAhCE;EACA,kBAJoB;;;AAuCtB;EApCE;EACA,kBALyB;;AA2C3B;EAvCE;EACA,kBANqB;;AA+CvB;EA1CE;EACA,kBAJoB","file":"sass.css"}
\ No newline at end of file
{"version":3,"sourceRoot":"","sources":["../../src/sass/_menu.sass","../../src/sass/_context_menu.sass","../../src/sass/_graph.sass","../../src/sass/_login.sass","../../src/sass/_tree.sass","../../src/sass/_code_editor.sass","../../src/sass/_styles.sass","../../src/sass/_range_slider.sass","../../src/sass/_annotation.sass"],"names":[],"mappings":"AAAA;AAEA;AACA;AACA;AACA;AACA;AAEA;EACI;EACA;;;AAEJ;EACI;EACA;EACA;EACA;;;AAEJ;EACE;;;AAEF;AACI;EACA;;;AAEJ;AACI;EACA;;;AAGJ;AACA;EACI;;;AAEJ;EACI;EACA;EACA;EACA;;;AAEJ;EACE;EACA;;;AAEF;EACE;;;AC7CF;EACE;EACA;EACA;EACA;EACA;;;AAEF;EACE;;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;;;AAEF;EACE;;;AClBF;EACE;EACA;EACA;;;AAEF;AAkCE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAxCA;EAZA;EACA;EAEA;EAWE;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAEF;EACE;EACA;;AAGA;EACE;EACA;;AACN;EACE;;AACF;EACE;;AAEF;EApCA;EACA;EAEA;EAmCE;EACA;;AACF;EACE;;AACF;EACE;;AAWF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAEJ;EACE;;AAEA;EACE;;AAEJ;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;ACpFJ;EACE;;;AAOF;EACE;;AACA;EACE;EACA;;;AAEJ;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;;AAEE;EACE;EACA;;AACA;EACE;;;AAIJ;EACE;EACA;EACA;EACA;;;AAKJ;EACE;EACA;EACA;;;AAGJ;EACE;EACA;EACA;EACA;EACA;;AACA;EACE;EACA;;AACF;EACE;EACA;;AACA;EACE;EACA;EACA;EACA;;AACA;EACE;;AACF;EACE;EACA;EACA;EACA;;AACA;EACE;;AACN;EACE;EACA;EACA;EACA;;;AAGN;EACE;EACA;EACA;EACA;EACA;;AAGE;EACE;;;AAEN;EACE;EACA;EACA;EACA;EACA;;AAGE;EACE;;;AAEN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;;AAEJ;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;;AACA;EACE;EACA;;;AAGF;EACE;;;AAEJ;EACI;EACA;;;AAGF;EACE;;;AAEJ;EACE;;;AAEF;EACE;EACA;;;AAEF;EACE;EACA;EACA;;;AAEF;EACE;EACA;;;AAEF;EACE;;;ACvKF;EACE;;;AAGA;EACE;EACA;EACA;;AAEA;EACE;EACA;;AAEF;EACE;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;;AAER;EACE;;AAEE;EACE;;AACA;EACE;EACA;EACA;EACA;;AACF;EACE;EACA;EACA;EACA;EACA;;AACF;EACE;;AACF;EACE;EACA;EACA;EAEA;EACA;EACA;;AAEA;EACE;;AACF;EACE;;AAGN;EACE;;AACF;EACE;;AACA;EACE;EACA;;AAEE;EACE;EACA;;AACF;EACE;EACA;;AAIR;EACE;;AACF;EACE;;AACA;EACE;EACA;;AAEE;EACE;EACA;;AACF;EACE;EACA;;AACF;EACE;EACA;;AAEV;EACE;;AACF;EACE;;AAEE;EACE;;AACF;EACE;;AACN;EACE;;AAEE;EACE;;;AAGR;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EAEE;EACA;EACA;EACA;EACA;;AAEF;EACE;EACA;EACA;;AAEF;EACE;;;AAIF;EACE;;AAEA;EACE;;;AAGN;EACE;;AACF;EACE;;AACF;EACE;;;AC3IA;EACE;EACA;EACA;EACA;;AACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EApCR;EACA;EACA;EACA;EACA;EACA;EACA;EAlBA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AA0CM;EACE;EACA;EACA;EACA;EACA;EA5CR;EACA;EACA;EACA;EACA;EACA;EACA;EAlBA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAkDE;EACE;EACA;EACA;EACA;EACA;EACA;;AACF;EACE;EACA;EACA;;AACA;EACE;EACA;;AACF;EACE;EACA;;AACF;EACE;EACA;;AAGE;EACE;;AAEF;EACE;;;ACrFV;EACE;;AACF;EACE;EACA;EACA;EACA;EACA;EACA;;AACA;EACE;;AAGE;EACE;EACA;;AAEF;EACE;EACA;;;AAEV;EACE;;AACA;EACE;;AACF;EACE;EACA;EACA;;;AAIA;EACE;;AACA;EACE;EACA;;AACF;EACE;;AACA;EACE;;AACJ;EACE;;;AAER;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;AAGI;EACE;;AACF;EACE;;;AAEN;EACE;EACA;EACA;;;AAIA;EACE;;AACF;EACE;;;ACxEJ;EACE;AACA;EACA;;AAEA;EACE;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;;AAEF;EACE;EACA;EACA;EACA;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EAEA;EAEA;;AAEA;EACE;EAEA;EACA;EACA;;;AAGN;EACE;;;ACzBJ;EACE;;AAEA;EANE;EACA;;AAQF;EAbE;EACA;;AAeF;EAhBE;EACA;;AAkBF;EAnBE;EACA;;AAqBF;EA1BE;EACA,kBALyB;;AAiC3B;EA7BE;EACA,kBANqB;;AAqCvB;EAhCE;EACA,kBAJoB;;;AAuCtB;EApCE;EACA,kBALyB;;AA2C3B;EAvCE;EACA,kBANqB;;AA+CvB;EA1CE;EACA,kBAJoB","file":"sass.css"}
\ No newline at end of file
package.json
View file @
60b44ab5
...
...
@@ -7,7 +7,7 @@
"install-ps"
:
"psc-package install"
,
"compile"
:
"pulp build"
,
"build"
:
"pulp browserify -t dist/bundle.js"
,
"css"
:
"sass src/sass/sass.sass:dist/styles/sass.css && sass src/sass/bootstrap/default.sass:dist/styles/bootstrap-default.css && cp node_modules/bootstrap-dark/src/bootstrap-dark.css dist/styles/bootstrap-dark.css && sass src/sass/bootstrap/greyson.scss:dist/styles/bootstrap-greyson.css && sass src/sass/bootstrap/monotony.scss:dist/styles/bootstrap-monotony.css"
,
"css"
:
"sass src/sass/sass.sass:dist/styles/sass.css && sass src/sass/bootstrap/default.sass:dist/styles/bootstrap-default.css && cp node_modules/bootstrap-dark/src/bootstrap-dark.css dist/styles/bootstrap-dark.css && sass src/sass/bootstrap/greyson.scss:dist/styles/bootstrap-greyson.css && sass src/sass/bootstrap/monotony.scss:dist/styles/bootstrap-monotony.css
&& sass src/sass/bootstrap/darkster.scss:dist/styles/bootstrap-darkster.css && sass src/sass/bootstrap/herbie.scss:dist/styles/bootstrap-herbie.css
"
,
"docs"
:
"pulp docs -- --format html"
,
"repl"
:
"pulp repl"
,
"clean"
:
"rm -Rf output node_modules"
,
...
...
src/Gargantext/Components/Forest/Tree/Node/Action/Add.purs
View file @
60b44ab5
...
...
@@ -20,6 +20,7 @@ import Gargantext.Types as GT
import Gargantext.Types (NodeType(..))
import Gargantext.Utils.Reactix as R2
thisModule :: String
thisModule = "Gargantext.Components.Forest.Tree.Node.Action.Add"
----------------------------------------------------------------------
...
...
@@ -83,7 +84,8 @@ addNodeView p@{ dispatch, nodeType, nodeTypes } = R.createElement el p []
defaultNt = (fromMaybe Error $ head nodeTypes)
maybeEdit = [ if edit
then inputWithEnter {
onEnter: \_ -> launchAff_ $ dispatch (AddNode name' nt')
onBlur: \val -> setNodeName $ const val
, onEnter: \_ -> launchAff_ $ dispatch (AddNode name' nt')
, onValueChanged: \val -> setNodeName $ const val
, autoFocus: true
, className: "form-control"
...
...
src/Gargantext/Components/Forest/Tree/Node/Action/Search/SearchField.purs
View file @
60b44ab5
...
...
@@ -346,7 +346,8 @@ searchInputCpt = R.hooksComponentWithModule thisModule "searchInput" cpt
valueRef <- R.useRef term
pure $ H.div { className: "" } [
inputWithEnter { onEnter: onEnter valueRef setSearch
inputWithEnter { onBlur: onBlur valueRef setSearch
, onEnter: onEnter valueRef setSearch
, onValueChanged: onValueChanged valueRef
, autoFocus: false
, className: "form-control"
...
...
@@ -364,6 +365,9 @@ searchInputCpt = R.hooksComponentWithModule thisModule "searchInput" cpt
-- , type: "text"
-- }
-- ]
onBlur valueRef setSearch value = do
R.setRef valueRef value
setSearch $ _ { term = value }
onEnter valueRef setSearch _ = do
setSearch $ _ { term = R.readRef valueRef }
...
...
src/Gargantext/Components/Forest/Tree/Node/Tools.purs
View file @
60b44ab5
...
...
@@ -82,7 +82,8 @@ textInputBoxCpt = R.hooksComponentWithModule thisModule "textInputBox" cpt
textInput renameNodeNameRef =
H.div { className: "col-8" }
[ inputWithEnter {
onEnter: submit renameNodeNameRef
onBlur: R.setRef renameNodeNameRef
, onEnter: submit renameNodeNameRef
, onValueChanged: R.setRef renameNodeNameRef
, autoFocus: true
, className: "form-control"
...
...
src/Gargantext/Components/GraphExplorer/Button.purs
View file @
60b44ab5
...
...
@@ -89,7 +89,7 @@ cameraButton { id
edges <- Sigmax.getEdges s
nodes <- Sigmax.getNodes s
let graphData = GET.GraphData $ hyperdataGraph { edges = map GEU.stEdgeToGET edges
, nodes = map GEU.stNodeToGET nodes }
, nodes =
GEU.normalizeNodes $
map GEU.stNodeToGET nodes }
let cameras = map Sigma.toCamera $ Sigma.cameras s
let camera = case cameras of
[c] -> GET.Camera { ratio: c.ratio
...
...
src/Gargantext/Components/GraphExplorer/Utils.purs
View file @
60b44ab5
module Gargantext.Components.GraphExplorer.Utils
where
module Gargantext.Components.GraphExplorer.Utils where
import Data.Maybe (Maybe(..))
import Gargantext.Prelude
import Gargantext.Components.GraphExplorer.Types as GET
import Gargantext.Hooks.Sigmax.Types as ST
import Gargantext.Utils.Array as GUA
stEdgeToGET :: Record ST.Edge -> GET.Edge
...
...
@@ -20,3 +22,29 @@ stNodeToGET { id, label, x, y, _original: GET.Node { attributes, size, type_ } }
, x
, y
}
normalizeNodes :: Array GET.Node -> Array GET.Node
normalizeNodes ns = map normalizeNode ns
where
xs = map (\(GET.Node { x }) -> x) ns
ys = map (\(GET.Node { y }) -> y) ns
mMinx = GUA.min xs
mMaxx = GUA.max xs
mMiny = GUA.min ys
mMaxy = GUA.max ys
mXrange = do
minx <- mMinx
maxx <- mMaxx
pure $ maxx - minx
mYrange = do
miny <- mMiny
maxy <- mMaxy
pure $ maxy - miny
xdivisor = case mXrange of
Nothing -> 1.0
Just xdiv -> 1.0 / xdiv
ydivisor = case mYrange of
Nothing -> 1.0
Just ydiv -> 1.0 / ydiv
normalizeNode (GET.Node n@{ x, y }) = GET.Node $ n { x = x * xdivisor
, y = y * ydivisor }
src/Gargantext/Components/InputWithEnter.purs
View file @
60b44ab5
...
...
@@ -11,7 +11,8 @@ thisModule :: String
thisModule = "Gargantext.Components.InputWithEnter"
type Props a = (
onEnter :: Unit -> Effect Unit
onBlur :: String -> Effect Unit
, onEnter :: Unit -> Effect Unit
, onValueChanged :: String -> Effect Unit
, autoFocus :: Boolean
...
...
@@ -27,9 +28,10 @@ inputWithEnter props = R.createElement inputWithEnterCpt props []
inputWithEnterCpt :: forall a. R.Component (Props a)
inputWithEnterCpt = R.hooksComponentWithModule thisModule "inputWithEnter" cpt
where
cpt props@{ onEnter, onValueChanged
cpt props@{ on
Blur, on
Enter, onValueChanged
, autoFocus, className, defaultValue, placeholder } _ = do
pure $ H.input { on: { input: onInput
pure $ H.input { on: { blur: onBlur'
, input: onInput
, keyPress: onKeyPress }
, autoFocus
, className
...
...
@@ -38,6 +40,7 @@ inputWithEnterCpt = R.hooksComponentWithModule thisModule "inputWithEnter" cpt
, type: props.type }
where
onBlur' e = onBlur $ R.unsafeEventValue e
onInput e = onValueChanged $ R.unsafeEventValue e
onKeyPress e = do
...
...
src/Gargantext/Components/NgramsTable.purs
View file @
60b44ab5
...
...
@@ -138,7 +138,7 @@ tableContainerCpt { dispatch
$ CoreAction
$ addNewNgramA
(normNgram tabNgramType searchQuery)
Candidate
Term
Map
Term
}
}
[ H.text ("Add " <> searchQuery) ]
...
...
src/Gargantext/Components/Nodes/Annuaire/User.purs
View file @
60b44ab5
...
...
@@ -130,6 +130,7 @@ contactInfoItemCpt = R.hooksComponentWithModule thisModule "contactInfoItem" cpt
autoFocus: true
, className: "form-control"
, defaultValue: R.readRef valueRef
, onBlur: R.setRef valueRef
, onEnter: onClick
, onValueChanged: R.setRef valueRef
, placeholder
...
...
src/Gargantext/Components/Nodes/Annuaire/User/Contact.purs
View file @
60b44ab5
...
...
@@ -130,6 +130,7 @@ contactInfoItemCpt = R.hooksComponentWithModule thisModule "contactInfoItem" cpt
autoFocus: true
, className: "form-control"
, defaultValue: R.readRef valueRef
, onBlur: R.setRef valueRef
, onEnter: onClick
, onValueChanged: R.setRef valueRef
, placeholder
...
...
src/Gargantext/Components/Nodes/Corpus.purs
View file @
60b44ab5
...
...
@@ -218,7 +218,14 @@ fieldCodeEditorWrapperCpt = R.hooksComponentWithModule thisModule "fieldCodeEdit
H.div { className: "card-header" } [
H.div { className: "code-editor-heading row" } [
H.div { className: "col-4" } [
renameable {onRename, text: name}
inputWithEnter { onBlur: onRename
, onEnter: \_ -> pure unit
, onValueChanged: onRename
, autoFocus: false
, className: "form-control"
, defaultValue: name
, placeholder: "Enter file name"
, type: "text" }
]
, H.div { className: "col-7" } []
, H.div { className: "buttons-right col-1" } ([
...
...
@@ -250,80 +257,6 @@ fieldCodeEditorWrapperCpt = R.hooksComponentWithModule thisModule "fieldCodeEdit
H.span { className: "fa fa-arrow-up" } [ ]
]
type RenameableProps =
(
onRename :: String -> Effect Unit
, text :: String
)
renameable :: Record RenameableProps -> R.Element
renameable props = R.createElement renameableCpt props []
renameableCpt :: R.Component RenameableProps
renameableCpt = R.hooksComponentWithModule thisModule "renameableCpt" cpt
where
cpt {onRename, text} _ = do
isEditing <- R.useState' false
state <- R.useState' text
textRef <- R.useRef text
-- handle props change of text
R.useEffect1' text $ do
if R.readRef textRef == text then
pure unit
else do
R.setRef textRef text
snd state $ const text
pure $ H.div { className: "renameable" } [
renameableText { isEditing, onRename, state }
]
type RenameableTextProps =
(
isEditing :: R.State Boolean
, onRename :: String -> Effect Unit
, state :: R.State String
)
renameableText :: Record RenameableTextProps -> R.Element
renameableText props = R.createElement renameableTextCpt props []
renameableTextCpt :: R.Component RenameableTextProps
renameableTextCpt = R.hooksComponentWithModule thisModule "renameableTextCpt" cpt
where
cpt {isEditing: (false /\ setIsEditing), state: (text /\ _)} _ = do
pure $ H.div { className: "input-group" }
[ H.input { className: "form-control"
, defaultValue: text
, disabled: 1
, type: "text" }
, H.div { className: "btn input-group-append"
, on: { click: \_ -> setIsEditing $ const true } }
[ H.span { className: "fa fa-pencil" } []
]
]
cpt {isEditing: (true /\ setIsEditing), onRename, state: (text /\ setText)} _ = do
pure $ H.div { className: "input-group" }
[ inputWithEnter {
autoFocus: false
, className: "form-control text"
, defaultValue: text
, onEnter: submit
, onValueChanged: setText <<< const
, placeholder: ""
, type: "text"
}
, H.div { className: "btn input-group-append"
, on: { click: submit } }
[ H.span { className: "fa fa-floppy-o" } []
]
]
where
submit _ = do
setIsEditing $ const false
onRename text
fieldCodeEditor :: Record FieldCodeEditorProps -> R.Element
fieldCodeEditor props = R.createElement fieldCodeEditorCpt props []
...
...
src/Gargantext/Components/Nodes/Lists.purs
View file @
60b44ab5
...
...
@@ -43,13 +43,15 @@ listsWithForestCpt = R.hooksComponentWithModule thisModule "listsWithForest" cpt
, listsProps: listsProps@{ session } } _ = do
controls <- initialControls
pure $ Forest.forestLayoutWithTopBar forestProps [
topBar { controls } []
, listsLayout (Record.merge listsProps { controls }) []
, H.div { className: "side-panel" } [
sidePanel { controls, session } []
]
]
pure $ Forest.forestLayoutWithTopBar forestProps
[ topBar { controls } []
, listsLayout (Record.merge listsProps { controls }) []
-- TODO remove className "side-panel" is preview is not triggered
-- , H.div { className: "" }
, H.div { className: "side-panel" }
[ sidePanel { controls, session } []]
]
--------------------------------------------------------
type TopBarProps = (
...
...
@@ -182,8 +184,8 @@ sidePanelCpt = R.hooksComponentWithModule thisModule "sidePanel" cpt
R2.setTrigger triggerSidePanel triggerSidePanel'
(mCorpusId /\ setMCorpusId) <- R.useState' Nothing
(mListId
/\ setMListId
) <- R.useState' Nothing
(mNodeId
/\ setMNodeId
) <- R.useState' Nothing
(mListId
/\ setMListId
) <- R.useState' Nothing
(mNodeId
/\ setMNodeId
) <- R.useState' Nothing
let mainStyle = case fst showSidePanel of
Opened -> { display: "block" }
...
...
src/Gargantext/Components/Nodes/Texts.purs
View file @
60b44ab5
...
...
@@ -52,13 +52,15 @@ textsWithForestCpt = R.hooksComponentWithModule thisModule "textsWithForest" cpt
, textsProps: textProps@{ session } } _ = do
controls <- initialControls
pure $ Forest.forestLayoutWithTopBar forestProps [
topBar { controls } []
, textsLayout (Record.merge textProps { controls }) []
, H.div { className: "side-panel" } [
sidePanel { controls, session } []
]
]
pure $ Forest.forestLayoutWithTopBar forestProps
[ topBar { controls } []
, textsLayout (Record.merge textProps { controls }) []
-- TODO remove className "side-panel" is preview is not triggered
-- , H.div { className: "" }
, H.div { className: "side-panel" }
[ sidePanel { controls, session } []
]
]
--------------------------------------------------------
...
...
@@ -338,7 +340,6 @@ docViewLayoutRec { cacheState
--------------------------------------------------------
type SidePanelProps = (
controls :: Record TextsLayoutControls
, session :: Session
...
...
src/Gargantext/Components/Renameable.purs
0 → 100644
View file @
60b44ab5
module Gargantext.Components.Renameable where
import Data.Tuple (Tuple(..), fst, snd)
import Data.Tuple.Nested ((/\))
import Effect (Effect)
import Reactix as R
import Reactix.DOM.HTML as H
import Gargantext.Prelude
import Gargantext.Components.InputWithEnter (inputWithEnter)
import Gargantext.Utils.Reactix as R2
thisModule :: String
thisModule = "Gargantext.Components.Renameable"
type RenameableProps =
(
onRename :: String -> Effect Unit
, text :: String
)
renameable :: Record RenameableProps -> R.Element
renameable props = R.createElement renameableCpt props []
renameableCpt :: R.Component RenameableProps
renameableCpt = R.hooksComponentWithModule thisModule "renameableCpt" cpt
where
cpt {onRename, text} _ = do
isEditing <- R.useState' false
state <- R.useState' text
textRef <- R.useRef text
-- handle props change of text
R.useEffect1' text $ do
if R.readRef textRef == text then
pure unit
else do
R.setRef textRef text
snd state $ const text
pure $ H.div { className: "renameable" } [
renameableText { isEditing, onRename, state }
]
type RenameableTextProps =
(
isEditing :: R.State Boolean
, onRename :: String -> Effect Unit
, state :: R.State String
)
renameableText :: Record RenameableTextProps -> R.Element
renameableText props = R.createElement renameableTextCpt props []
renameableTextCpt :: R.Component RenameableTextProps
renameableTextCpt = R.hooksComponentWithModule thisModule "renameableTextCpt" cpt
where
cpt {isEditing: (false /\ setIsEditing), state: (text /\ _)} _ = do
pure $ H.div { className: "input-group" }
[ H.input { className: "form-control"
, defaultValue: text
, disabled: 1
, type: "text" }
, H.div { className: "btn input-group-append"
, on: { click: \_ -> setIsEditing $ const true } }
[ H.span { className: "fa fa-pencil" } []
]
]
cpt {isEditing: (true /\ setIsEditing), onRename, state: (text /\ setText)} _ = do
pure $ H.div { className: "input-group" }
[ inputWithEnter {
autoFocus: false
, className: "form-control text"
, defaultValue: text
, onBlur: setText <<< const
, onEnter: submit
, onValueChanged: setText <<< const
, placeholder: ""
, type: "text"
}
, H.div { className: "btn input-group-append"
, on: { click: submit } }
[ H.span { className: "fa fa-floppy-o" } []
]
]
where
submit _ = do
setIsEditing $ const false
onRename text
src/Gargantext/Components/Table.purs
View file @
60b44ab5
...
...
@@ -100,8 +100,8 @@ tableHeaderLayoutCpt = R.hooksComponentWithModule thisModule "tableHeaderLayout"
cacheToggle (NT.CacheOn /\ _) = "fa-toggle-on"
cacheToggle (NT.CacheOff /\ _) = "fa-toggle-off"
cacheText (NT.CacheOn /\ _) = "
Cache On
"
cacheText (NT.CacheOff /\ _) = "
Cache Off
"
cacheText (NT.CacheOn /\ _) = "
Off-line
"
cacheText (NT.CacheOff /\ _) = "
On-line
"
cacheClick (cacheState /\ setCacheState) after _ = do
setCacheState $ const newCacheState
...
...
src/Gargantext/Components/Themes.purs
View file @
60b44ab5
...
...
@@ -36,8 +36,16 @@ monotonyTheme :: Theme
monotonyTheme = Theme { name: "monotony"
, location: "styles/bootstrap-monotony.css" }
herbieTheme :: Theme
herbieTheme = Theme { name: "herbie"
, location: "styles/bootstrap-herbie.css" }
darksterTheme :: Theme
darksterTheme = Theme { name: "darkster (bêta)"
, location: "styles/bootstrap-darkster.css" }
allThemes :: Array Theme
allThemes = [ defaultTheme, greysonTheme, monotonyTheme
]
allThemes = [ defaultTheme, greysonTheme, monotonyTheme
, herbieTheme, darksterTheme
]
switchTheme :: Theme -> Effect Unit
switchTheme (Theme { location }) = do
...
...
src/Gargantext/Utils/Array.purs
View file @
60b44ab5
module Gargantext.Utils.Array (push) where
module Gargantext.Utils.Array (
max, min,
push) where
import Data.Array as A
import Data.Foldable (foldr)
import Data.Maybe (Maybe(..))
import Data.Ord as Ord
import Effect (Effect)
import Data.Unit (Unit)
import Effect.Uncurried (EffectFn2, runEffectFn2)
import Gargantext.Prelude
foreign import _push :: forall a. EffectFn2 (Array a) a Unit
push :: forall a. Array a -> a -> Effect Unit
push = runEffectFn2 _push
max :: forall a. Ord a => Array a -> Maybe a
max xs = foldr reducer (A.head xs) xs
where
reducer _ Nothing = Nothing
reducer v (Just acc) = Just $ Ord.max acc v
min :: forall a. Ord a => Array a -> Maybe a
min xs = foldr reducer (A.head xs) xs
where
reducer _ Nothing = Nothing
reducer v (Just acc) = Just $ Ord.min acc v
src/sass/_code_editor.sass
View file @
60b44ab5
...
...
@@ -19,15 +19,6 @@
white-space
:
pre-wrap
word-break
:
keep-all
.code-editor-heading
.renameable
flex-grow
:
2
.text
padding-right
:
10px
/* .buttons-right
/* display: flex
/* justify-content: flex-end
.code-editor
.editor
.code-area
...
...
src/sass/bootstrap/darkster.scss
0 → 100644
View file @
60b44ab5
/*! Themestr.app `Darkster` Bootstrap 4.3.1 theme */
@import
url(https://fonts.googleapis.com/css?family=Comfortaa:200,300,400,700)
;
$headings-font-family
:
Comfortaa
;
/*$enable-grid-classes:false;*/
$primary
:
#FF550B
;
$secondary
:
#303030
;
$success
:
#015668
;
$danger
:
#FF304F
;
$info
:
#0F81C7
;
$warning
:
#0DE2EA
;
$light
:
#e8e8e8
;
$dark
:
#000000
;
/*! Import Bootstrap 4 variables */
@import
"../../../node_modules/bootstrap/scss/functions"
;
@import
"../../../node_modules/bootstrap/scss/variables"
;
$enable-shadows
:
true
;
$gray-300
:
#000000
;
$gray-800
:
#555555
;
$body-bg
:
$black
;
$body-color
:
#cccccc
;
$link-color
:
#f0f0f0
;
$link-hover-color
:
darken
(
$link-color
,
20%
);
$font-size-base
:
1
.1rem
;
$table-accent-bg
:
rgba
(
$white
,.
05
);
$table-hover-bg
:
rgba
(
$white
,.
075
);
$table-border-color
:
rgba
(
$white
,
0
.3
);
$table-dark-border-color
:
$table-border-color
;
$table-dark-color
:
$white
;
$input-bg
:
$gray-300
;
$input-disabled-bg
:
#ccc
;
$dropdown-bg
:
$gray-800
;
$dropdown-divider-bg
:
rgba
(
$black
,.
15
);
$dropdown-link-color
:
$body-color
;
$dropdown-link-hover-color
:
$white
;
$dropdown-link-hover-bg
:
$body-bg
;
$nav-tabs-border-color
:
rgba
(
$white
,
0
.3
);
$nav-tabs-link-hover-border-color
:
$nav-tabs-border-color
;
$nav-tabs-link-active-bg
:
transparent
;
$nav-tabs-link-active-border-color
:
$nav-tabs-border-color
;
$navbar-dark-hover-color
:
$white
;
$navbar-light-hover-color
:
$gray-800
;
$navbar-light-active-color
:
$gray-800
;
$pagination-color
:
$white
;
$pagination-bg
:
transparent
;
$pagination-border-color
:
rgba
(
$black
,
0
.6
);
$pagination-hover-color
:
$white
;
$pagination-hover-bg
:
transparent
;
$pagination-hover-border-color
:
rgba
(
$black
,
0
.6
);
$pagination-active-bg
:
transparent
;
$pagination-active-border-color
:
rgba
(
$black
,
0
.6
);
$pagination-disabled-bg
:
transparent
;
$pagination-disabled-border-color
:
rgba
(
$black
,
0
.6
);
$jumbotron-bg
:
darken
(
$gray-900
,
5%
);
$card-border-color
:
rgba
(
$black
,
0
.6
);
$card-cap-bg
:
lighten
(
$gray-800
,
10%
);
$card-bg
:
lighten
(
$body-bg
,
5%
);
$modal-content-bg
:
lighten
(
$body-bg
,
5%
);
$modal-header-border-color
:
rgba
(
0
,
0
,
0
,.
2
);
$progress-bg
:
darken
(
$gray-900
,
5%
);
$progress-bar-color
:
$gray-600
;
$list-group-bg
:
lighten
(
$body-bg
,
5%
);
$list-group-border-color
:
rgba
(
$black
,
0
.6
);
$list-group-hover-bg
:
lighten
(
$body-bg
,
10%
);
$list-group-active-color
:
$white
;
$list-group-active-bg
:
$list-group-hover-bg
;
$list-group-active-border-color
:
$list-group-border-color
;
$list-group-disabled-color
:
$gray-800
;
$list-group-disabled-bg
:
$black
;
$list-group-action-color
:
$white
;
$breadcrumb-active-color
:
$gray-500
;
@import
"../../../node_modules/bootstrap/scss/bootstrap"
;
// Add SASS theme customizations here..
.navbar-dark.bg-primary
{
background-color
:
#111111
!
important
;}
src/sass/bootstrap/herbie.scss
0 → 100644
View file @
60b44ab5
/*! Themestr.app `Herbie` Bootstrap 4.3.1 theme */
@import
url(https://fonts.googleapis.com/css?family=Nunito:200,300,400,700)
;
$font-family-base
:
Nunito
;
@import
url(https://fonts.googleapis.com/css?family=Crete+Round:200,300,400,700)
;
$headings-font-family
:
Crete
Round
;
/*$enable-grid-classes:false;*/
$primary
:
#083358
;
$secondary
:
#F67280
;
$success
:
#0074E4
;
$danger
:
#FF4057
;
$info
:
#74DBEF
;
$warning
:
#FC3C3C
;
$light
:
#F2F2F0
;
$dark
:
#072247
;
@import
"../../../node_modules/bootstrap/scss/bootstrap"
;
// Add SASS theme customizations here..
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment