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
Christian Merten
purescript-gargantext
Commits
f7a0318e
Commit
f7a0318e
authored
Jun 25, 2024
by
Alexandre Delanoë
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev' into testing
parents
90b4eda6
e60713e8
Changes
17
Hide whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
242 additions
and
61 deletions
+242
-61
bootstrap-darkster.css
dist/styles/bootstrap-darkster.css
+13
-0
bootstrap-default.css
dist/styles/bootstrap-default.css
+13
-0
bootstrap-greyson.css
dist/styles/bootstrap-greyson.css
+13
-0
bootstrap-herbie.css
dist/styles/bootstrap-herbie.css
+13
-0
bootstrap-monotony.css
dist/styles/bootstrap-monotony.css
+13
-0
package.json
package.json
+1
-1
server
server
+2
-0
Node.purs
src/Gargantext/Components/Forest/Tree/Node.purs
+20
-12
Download.purs
...rgantext/Components/Forest/Tree/Node/Action/Download.purs
+10
-11
Upload.purs
...Gargantext/Components/Forest/Tree/Node/Action/Upload.purs
+14
-14
Types.purs
...text/Components/Forest/Tree/Node/Action/Upload/Types.purs
+3
-3
Settings.purs
src/Gargantext/Components/Forest/Tree/Node/Settings.purs
+0
-1
ListSelection.purs
src/Gargantext/Components/ListSelection.purs
+1
-1
DetailsTab.purs
...rgantext/Components/PhyloExplorer/Sidebar/DetailsTab.purs
+105
-14
Types.purs
src/Gargantext/Components/PhyloExplorer/Types.purs
+1
-1
EtherCalc.purs
src/Gargantext/Utils/EtherCalc.purs
+3
-3
_phylo.scss
src/sass/_legacy/_phylo.scss
+17
-0
No files found.
dist/styles/bootstrap-darkster.css
View file @
f7a0318e
...
...
@@ -11998,6 +11998,19 @@ select.form-control {
.phylo-details-tab__counter__value
{
font-weight
:
bold
;
}
.phylo-details-tab__params
{
margin
:
16px
20px
;
}
.phylo-details-tab__params__item
{
margin-left
:
16px
;
list-style
:
initial
;
}
.phylo-details-tab__params__label
{
font-weight
:
bold
;
}
.phylo-details-tab__params__value
{
margin-left
:
16px
;
}
.phylo-details-tab__delimiter
{
margin
:
16px
20px
;
}
...
...
dist/styles/bootstrap-default.css
View file @
f7a0318e
...
...
@@ -11802,6 +11802,19 @@ select.form-control {
.phylo-details-tab__counter__value
{
font-weight
:
bold
;
}
.phylo-details-tab__params
{
margin
:
16px
20px
;
}
.phylo-details-tab__params__item
{
margin-left
:
16px
;
list-style
:
initial
;
}
.phylo-details-tab__params__label
{
font-weight
:
bold
;
}
.phylo-details-tab__params__value
{
margin-left
:
16px
;
}
.phylo-details-tab__delimiter
{
margin
:
16px
20px
;
}
...
...
dist/styles/bootstrap-greyson.css
View file @
f7a0318e
...
...
@@ -11652,6 +11652,19 @@ select.form-control {
.phylo-details-tab__counter__value
{
font-weight
:
bold
;
}
.phylo-details-tab__params
{
margin
:
16px
20px
;
}
.phylo-details-tab__params__item
{
margin-left
:
16px
;
list-style
:
initial
;
}
.phylo-details-tab__params__label
{
font-weight
:
bold
;
}
.phylo-details-tab__params__value
{
margin-left
:
16px
;
}
.phylo-details-tab__delimiter
{
margin
:
16px
20px
;
}
...
...
dist/styles/bootstrap-herbie.css
View file @
f7a0318e
...
...
@@ -11873,6 +11873,19 @@ select.form-control {
.phylo-details-tab__counter__value
{
font-weight
:
bold
;
}
.phylo-details-tab__params
{
margin
:
16px
20px
;
}
.phylo-details-tab__params__item
{
margin-left
:
16px
;
list-style
:
initial
;
}
.phylo-details-tab__params__label
{
font-weight
:
bold
;
}
.phylo-details-tab__params__value
{
margin-left
:
16px
;
}
.phylo-details-tab__delimiter
{
margin
:
16px
20px
;
}
...
...
dist/styles/bootstrap-monotony.css
View file @
f7a0318e
...
...
@@ -11946,6 +11946,19 @@ select.form-control {
.phylo-details-tab__counter__value
{
font-weight
:
bold
;
}
.phylo-details-tab__params
{
margin
:
16px
20px
;
}
.phylo-details-tab__params__item
{
margin-left
:
16px
;
list-style
:
initial
;
}
.phylo-details-tab__params__label
{
font-weight
:
bold
;
}
.phylo-details-tab__params__value
{
margin-left
:
16px
;
}
.phylo-details-tab__delimiter
{
margin
:
16px
20px
;
}
...
...
package.json
View file @
f7a0318e
{
"name"
:
"Gargantext"
,
"version"
:
"0.0.7.1.
5.3
"
,
"version"
:
"0.0.7.1.
6.5
"
,
"scripts"
:
{
"build"
:
"spago build"
,
"bundle"
:
"spago bundle --module Main --outfile dist/bundle.js"
,
...
...
server
0 → 100755
View file @
f7a0318e
cd dist/ && python3 -mhttp.server
src/Gargantext/Components/Forest/Tree/Node.purs
View file @
f7a0318e
...
...
@@ -151,7 +151,7 @@ nodeSpanCpt = here.component "nodeSpan" cpt
liftEffect $ do
T.write_ (Just
$ DroppedFile { blob: (UploadFileBlob blob)
, fileType: Just
C
SV
, fileType: Just
T
SV
, lang : EN
}) droppedFile
...
...
@@ -214,6 +214,22 @@ nodeSpanCpt = here.component "nodeSpan" cpt
host <- R2.getPortalHost
-- Tooltip
let hasTooltip = nodeType == GT.NodeUser
tooltipEl = if hasTooltip then
nodeTooltip
{ id
, nodeType
, name
}
[
case mVersion of
Nothing -> mempty
Just v -> versionComparator v
]
else
H.div {} []
-- Render
pure $
...
...
@@ -235,17 +251,9 @@ nodeSpanCpt = here.component "nodeSpan" cpt
-- // Abstract informations //
-- nodeTooltip
-- { id
-- , nodeType
-- , name
-- }
-- [
-- case mVersion of
-- Nothing -> mempty
-- Just v -> versionComparator v
-- ]
-- ,
tooltipEl
,
R.createPortal
[
fileTypeView
...
...
src/Gargantext/Components/Forest/Tree/Node/Action/Download.purs
View file @
f7a0318e
...
...
@@ -63,22 +63,22 @@ actionDownloadGraphCpt = here.component "actionDownloadGraph" cpt where
where
href = url session $ Routes.NodeAPI GT.Graph (Just id) "gexf"
data NodeListDownloadFormat = NL_
C
SV | NL_JSON | NL_JSON_ZIP
data NodeListDownloadFormat = NL_
T
SV | NL_JSON | NL_JSON_ZIP
derive instance Eq NodeListDownloadFormat
derive instance Generic NodeListDownloadFormat _
instance Show NodeListDownloadFormat
where
show NL_
CSV = "C
SV"
show NL_
TSV = "T
SV"
show NL_JSON = "JSON"
show NL_JSON_ZIP = "JSON (zipped)"
urlNodeListDownloadFormat :: NodeListDownloadFormat -> String
urlNodeListDownloadFormat NL_
CSV = "c
sv"
urlNodeListDownloadFormat NL_
TSV = "t
sv"
urlNodeListDownloadFormat NL_JSON = "json"
urlNodeListDownloadFormat NL_JSON_ZIP = "json.zip"
readNodeListDownloadFormat :: String -> NodeListDownloadFormat
readNodeListDownloadFormat "
CSV" = NL_C
SV
readNodeListDownloadFormat "
TSV" = NL_T
SV
readNodeListDownloadFormat "JSON" = NL_JSON
readNodeListDownloadFormat "JSON (zipped)" = NL_JSON_ZIP
readNodeListDownloadFormat _ = NL_JSON
...
...
@@ -98,8 +98,7 @@ actionDownloadNodeListCpt = here.component "actionDownloadNodeList" cpt where
[ R2.select { className: "form-control"
, defaultValue: show downloadFormat'
, on: { change: onChange downloadFormat } }
[ opt NL_CSV
, opt NL_JSON
[ opt NL_JSON
, opt NL_JSON_ZIP ]
, H.div {} [ H.text $ info downloadFormat' ]
]
...
...
@@ -111,21 +110,21 @@ actionDownloadNodeListCpt = here.component "actionDownloadNodeList" cpt where
info :: NodeListDownloadFormat -> String
info t = "Info about the Documents as " <> show t <> " format"
data NodeTextsDownloadFormat = NT_
C
SV | NT_JSON | NT_JSON_ZIP
data NodeTextsDownloadFormat = NT_
T
SV | NT_JSON | NT_JSON_ZIP
derive instance Eq NodeTextsDownloadFormat
derive instance Generic NodeTextsDownloadFormat _
instance Show NodeTextsDownloadFormat where
show NT_
CSV = "C
SV"
show NT_
TSV = "T
SV"
show NT_JSON = "JSON"
show NT_JSON_ZIP = "JSON (zipped)"
urlNodeTextsDownloadFormat :: NodeTextsDownloadFormat -> String
urlNodeTextsDownloadFormat NT_
CSV = "c
sv"
urlNodeTextsDownloadFormat NT_
TSV = "t
sv"
urlNodeTextsDownloadFormat NT_JSON = "json"
urlNodeTextsDownloadFormat NT_JSON_ZIP = "json.zip"
readNodeTextsDownloadFormat :: String -> NodeTextsDownloadFormat
readNodeTextsDownloadFormat "
CSV" = NT_C
SV
readNodeTextsDownloadFormat "
TSV" = NT_T
SV
readNodeTextsDownloadFormat "JSON" = NT_JSON
readNodeTextsDownloadFormat "JSON (zippped)" = NT_JSON_ZIP
readNodeTextsDownloadFormat _ = NT_JSON_ZIP
...
...
@@ -144,7 +143,7 @@ actionDownloadNodeTextsCpt = here.component "actionDownloadNodeTexts" cpt where
[ R2.select { className: "form-control"
, defaultValue: show downloadFormat'
, on: { change: onChange downloadFormat } }
[ opt NT_
C
SV
[ opt NT_
T
SV
, opt NT_JSON
, opt NT_JSON_ZIP ]
, H.div {} [ H.text $ info downloadFormat' ]
...
...
src/Gargantext/Components/Forest/Tree/Node/Action/Upload.purs
View file @
f7a0318e
...
...
@@ -126,7 +126,7 @@ uploadFileViewWithLangsCpt = here.component "uploadFileViewWithLangs" cpt
cpt { dispatch, langs, nodeType, session } _ = do
-- mFile :: R.State (Maybe UploadFile) <- R.useState' Nothing
mFile <- T.useBox (Nothing :: Maybe UploadFile)
fileType <- T.useBox
C
SV
fileType <- T.useBox
T
SV
fileFormat <- T.useBox Plain
lang <- T.useBox EN
selection <- T.useBox ListSelection.MyListsFirst
...
...
@@ -149,14 +149,14 @@ uploadFileViewWithLangsCpt = here.component "uploadFileViewWithLangs" cpt
]
, R2.row
[ H.div {className:"col-6 flex-space-around"}
[ Tools.formChoiceSafe { items: [
C
SV
,
C
SV_HAL
[ Tools.formChoiceSafe { items: [
T
SV
,
T
SV_HAL
, Istex
, WOS
, JSON
-- , Iramuteq
]
, default:
C
SV
, default:
T
SV
, callback: setFileType'
, print: show } []
, Tools.formChoiceSafe { items: [ Plain
...
...
@@ -288,7 +288,7 @@ uploadButtonCpt = here.component "uploadButton" cpt
dispatch $ UploadFile nodeType fileType' fileFormat' lang' (Just name) contents selection'
liftEffect $ do
T.write_ Nothing mFile
T.write_
C
SV fileType
T.write_
T
SV fileType
T.write_ Plain fileFormat
T.write_ EN lang
T.write_ false onPendingBox
...
...
@@ -303,7 +303,7 @@ uploadListViewCpt = here.component "uploadListView" cpt where
mFile
<- T.useBox (Nothing :: Maybe UploadFile)
fileType
<- T.useBox
C
SV
<- T.useBox
T
SV
fileFormat /\ fileFormatBox
<- R2.useBox' Plain
lang /\ langBox
...
...
@@ -356,14 +356,14 @@ uploadListViewCpt = here.component "uploadListView" cpt where
[
B.formSelect
{ callback: \_ -> pure unit
, value: show
C
SV
, value: show
T
SV
, status: Disabled
, className: "col-5"
}
[
H.option
{ value: show
C
SV }
[ H.text $ show
C
SV ]
{ value: show
T
SV }
[ H.text $ show
T
SV ]
]
,
B.formSelect'
...
...
@@ -502,7 +502,7 @@ fileTypeViewCpt = here.component "fileTypeView" cpt
[ R2.select {className: "col-md-12 form-control"
, on: {change: onChange}
}
(map renderOption [
CSV, C
SV_HAL, WOS, Iramuteq])
(map renderOption [
TSV, T
SV_HAL, WOS, Iramuteq])
]
where
onChange e l =
...
...
@@ -582,7 +582,7 @@ uploadFile { contents, fileFormat, lang, fileType, id, nodeType, mName, selectio
, Tuple "_wjf_filetype" (Just $ show fileType)
, Tuple "_wjf_name" mName
]
c
svBodyParams = [ Tuple "_wtf_data" (Just contents)
t
svBodyParams = [ Tuple "_wtf_data" (Just contents)
, Tuple "_wtf_filetype" (Just $ show fileType)
, Tuple "_wtf_fileformat" (Just $ show fileFormat)
, Tuple "_wf_lang" (Just $ show lang)
...
...
@@ -595,7 +595,7 @@ uploadFile { contents, fileFormat, lang, fileType, id, nodeType, mName, selectio
Annuaire -> GT.UploadFile /\ (GR.NodeAPI nodeType (Just id) "annuaire") /\ bodyParams
NodeList -> case fileType of
JSON -> GT.ListUpload /\ (GR.NodeAPI nodeType (Just id) $ GT.asyncTaskTypePath GT.ListUpload) /\ jsonBodyParams
CSV -> GT.ListCSVUpload /\ (GR.NodeAPI NodeList (Just id) $ GT.asyncTaskTypePath GT.ListCSVUpload) /\ c
svBodyParams
TSV -> GT.ListCSVUpload /\ (GR.NodeAPI NodeList (Just id) $ GT.asyncTaskTypePath GT.ListCSVUpload) /\ t
svBodyParams
_ -> GT.UploadFile /\ (GR.NodeAPI nodeType (Just id) "") /\ bodyParams
_ -> GT.UploadFile /\ (GR.NodeAPI nodeType (Just id) "") /\ bodyParams
...
...
@@ -649,7 +649,7 @@ uploadTermListViewCpt = here.component "uploadTermListView" cpt
let uploadTypeHtml = R2.select { className: "form-control"
, defaultValue: show defaultUploadType
, on: { change: onUploadTypeChange uploadType } } (opt <$> [
C
SV, JSON ])
, on: { change: onUploadTypeChange uploadType } } (opt <$> [
T
SV, JSON ])
let footer = H.div {} [ uploadTermButton { dispatch
, mFile
...
...
@@ -753,7 +753,7 @@ uploadFrameCalcViewWithLangsCpt = here.component "uploadFrameCalcViewWithLangs"
H.div
{ className: "col-12 flex-space-around" }
[ H.h4 {}
[ H.text "This will upload current calc as Corpus
C
SV" ]
[ H.text "This will upload current calc as Corpus
T
SV" ]
]
,
-- Lang
...
...
src/Gargantext/Components/Forest/Tree/Node/Action/Upload/Types.purs
View file @
f7a0318e
...
...
@@ -13,7 +13,7 @@ import Web.File.Blob (Blob, size)
import Web.File.FileReader.Aff (readAsArrayBuffer, readAsText)
data FileType =
CSV | C
SV_HAL | Istex | WOS | PresseRIS | Arbitrary | JSON | Iramuteq
data FileType =
TSV | T
SV_HAL | Istex | WOS | PresseRIS | Arbitrary | JSON | Iramuteq
derive instance Generic FileType _
instance Eq FileType where eq = genericEq
...
...
@@ -21,8 +21,8 @@ instance Show FileType where show = genericShow
instance Read FileType where
read :: String -> Maybe FileType
read "Arbitrary" = Just Arbitrary
read "
CSV" = Just C
SV
read "
CSV_HAL" = Just C
SV_HAL
read "
TSV" = Just T
SV
read "
TSV_HAL" = Just T
SV_HAL
read "Istex" = Just Istex
read "PresseRIS" = Just PresseRIS
read "WOS" = Just WOS
...
...
src/Gargantext/Components/Forest/Tree/Node/Settings.purs
View file @
f7a0318e
...
...
@@ -156,7 +156,6 @@ settingsBoxLens Corpus =
, Calc
, NodeTexts
, NodeList
, Graph
-- , Dashboard
, Phylo
-- , NodeFrameNotebook
...
...
src/Gargantext/Components/ListSelection.purs
View file @
f7a0318e
...
...
@@ -38,7 +38,7 @@ selectionCpt = here.component "selection" cpt where
, value: selection'
, list: [ MyListsFirst
, OtherListsFirst
, SelectedLists []
--
, SelectedLists []
, NoList
]
}
...
...
src/Gargantext/Components/PhyloExplorer/Sidebar/DetailsTab.purs
View file @
f7a0318e
...
...
@@ -75,8 +75,8 @@ detailsTabCpt = here.component "" cpt where
-- Phylo params
H.ul
{ className: "phylo-details-tab__counter" }
[ details
TimeUnit c.timeUnit
, details
Params c.levelOfObservation "Level of observation"
[ details
Params c.levelOfObservation "Level of observation"
, details
TimeUnit c.timeUnit
, detailsClique c.clique
, detailsParams c.proximity "Proximity"
, detailsParams c.synchrony "Synchrony"
...
...
@@ -104,27 +104,118 @@ detailsCount value label =
detailsParams :: forall a. (Show a) => a -> String -> R.Element
detailsParams value label =
H.li {} [ H.text $ label <> ": " <> show value ]
H.li
{ className: "phylo-details-tab__params__item"}
[
H.span
{ className: "phylo-details-tab__params__label"}
[
H.text $ label <> ":"
]
,
H.span
{ className: "phylo-details-tab__params__value"}
[ H.text $ show value]
]
detailsClique :: Cluster -> R.Element
detailsClique c =
H.li {} [ H.text $ "Cluster algo: " <> parseClique c]
R.fragment [
H.li
{ className: "phylo-details-tab__params__item"}
[ H.span
{ className: "phylo-details-tab__params__label"}
[ H.text "Topic detection strategy" ]
]
,
H.ul
{ className: "phylo-details-tab__counter" }
(parseClique c)
]
where
parseClique (Fis { _fis_support, _fis_size }) = "FIS. Support: " <> show _fis_support <> ". Size: " <> show _fis_size
parseClique :: Cluster -> Array R.Element
parseClique (Fis { _fis_support, _fis_size }) =
[
detailsParams "Fis" "Algorithm"
,
detailsParams _fis_support "Support"
,
detailsParams _fis_size "Size"
]
parseClique (MaxClique { _mcl_size, _mcl_threshold, _mcl_filter}) =
"MaxClique. Size: " <> show _mcl_size <> ". Threshhold: " <> show _mcl_threshold <> ". Filter: " <> _mcl_filter
[
detailsParams "MaxClique" "Algorithm"
,
detailsParams _mcl_size "Size"
,
detailsParams _mcl_threshold "Threshold"
,
detailsParams _mcl_filter "Filter"
]
detailsTimeUnit :: TimeUnit -> R.Element
detailsTimeUnit t =
H.li {} [ H.text $ "Time unit: " <> parseTimeUnit t]
R.fragment [
H.li
{ className: "phylo-details-tab__params__item" }
[ H.span
{ className: "phylo-details-tab__params__label" }
[ H.text "Inter-temporal Matching" ]
]
,
H.ul
{ className: "phylo-details-tab__counter" }
(parseTimeUnit t)
]
where
parseTimeUnit (Epoch {_epoch_period, _epoch_step, _epoch_matchingFrame}) =
"Epoch. Period: " <> show _epoch_period <> ". Step: " <> show _epoch_step <>". Matching frame: " <> show _epoch_matchingFrame
parseTimeUnit :: TimeUnit -> Array R.Element
parseTimeUnit (Epoch {_epoch_period, _epoch_step, _epoch_matchingFrame}) =
[
detailsParams "Epoch" "Time unit"
,
detailsParams _epoch_period "Period"
,
detailsParams _epoch_step "Step"
,
detailsParams _epoch_matchingFrame "Matching frame"
]
parseTimeUnit (Year {_year_period, _year_step, _year_matchingFrame}) =
"Year. Period: " <> show _year_period <> ". Step: " <> show _year_step <>". Matching frame: " <> show _year_matchingFrame
[
detailsParams "Year" "Time unit"
,
detailsParams _year_period "Period"
,
detailsParams _year_step "Step"
,
detailsParams _year_matchingFrame "Matching frame"
]
parseTimeUnit (Month {_month_period, _month_step, _month_matchingFrame}) =
"Month. Period: " <> show _month_period <> ". Step: " <> show _month_step <>". Matching frame: " <> show _month_matchingFrame
parseTimeUnit (Week {_week_period, _week_step, _week_matchingFrame}) =
"Week. Period: " <> show _week_period <> ". Step: " <> show _week_step <>". Matching frame: " <> show _week_matchingFrame
[
detailsParams "Month" "Time unit"
,
detailsParams _month_period "Period"
,
detailsParams _month_step "Step"
,
detailsParams _month_matchingFrame "Matching frame"
]
parseTimeUnit (Week {_week_period, _week_step, _week_matchingFrame}) =
[
detailsParams "Week" "Time unit"
,
detailsParams _week_period "Period"
,
detailsParams _week_step "Step"
,
detailsParams _week_matchingFrame "Matching frame"
]
parseTimeUnit (Day {_day_period, _day_step, _day_matchingFrame}) =
"Day. Period: " <> show _day_period <> ". Step: " <> show _day_step <>". Matching frame: " <> show _day_matchingFrame
[
detailsParams "Day" "Time unit"
,
detailsParams _day_period "Period"
,
detailsParams _day_step "Step"
,
detailsParams _day_matchingFrame "Matching frame"
]
src/Gargantext/Components/PhyloExplorer/Types.purs
View file @
f7a0318e
...
...
@@ -487,7 +487,7 @@ stringedMaybeToNumber s =
-- | To ["user", "sentiment analysis"] :: Array String
stringedArrayToArray :: String -> Array String
stringedArrayToArray str =
if String.contains (String.Pattern "\
\\
"") str
if String.contains (String.Pattern "\"") str
then
str # String.length
>>> (\length -> String.splitAt (length - 1) str)
...
...
src/Gargantext/Utils/EtherCalc.purs
View file @
f7a0318e
...
...
@@ -10,10 +10,10 @@ import Gargantext.Prelude
type Base = String
type NodeId = String
download
C
SV :: Base -> NodeId -> Aff (Either Error (Response String))
download
C
SV base nodeId = do
download
T
SV :: Base -> NodeId -> Aff (Either Error (Response String))
download
T
SV base nodeId = do
let req = defaultRequest
{ url = base <> "/" <> nodeId <> ".
c
sv"
{ url = base <> "/" <> nodeId <> ".
t
sv"
, responseFormat = ResponseFormat.string
, method = Left GET }
request req
src/sass/_legacy/_phylo.scss
View file @
f7a0318e
...
...
@@ -586,6 +586,23 @@ $decreasing-color: #11638F;
}
}
&
__params
{
margin
:
$margin-y
$margin-x
;
&
__item
{
margin-left
:
space-x
(
2
);
list-style
:
initial
;
}
&
__label
{
font-weight
:
bold
;
}
&
__value
{
margin-left
:
space-x
(
2
);
}
}
&
__delimiter
{
margin
:
$margin-y
$margin-x
;
}
...
...
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