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
142
Issues
142
List
Board
Labels
Milestones
Merge Requests
4
Merge Requests
4
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
gargantext
purescript-gargantext
Commits
635169f6
Commit
635169f6
authored
Jun 14, 2019
by
James Laver
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
G.U.Range - more functions for closed ranges
parent
10dace7c
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
27 additions
and
6 deletions
+27
-6
Config.purs
src/Gargantext/Config.purs
+1
-1
Range.purs
src/Gargantext/Utils/Range.purs
+26
-5
No files found.
src/Gargantext/Config.purs
View file @
635169f6
...
@@ -31,7 +31,7 @@ endConfig = endConfig' V10
...
@@ -31,7 +31,7 @@ endConfig = endConfig' V10
endConfig' :: ApiVersion -> EndConfig
endConfig' :: ApiVersion -> EndConfig
endConfig' v = { front : frontRelative
endConfig' v = { front : frontRelative
, back : back
Local
v }
, back : back
Dev
v }
-- , back : backDemo v }
-- , back : backDemo v }
------------------------------------------------------------------------
------------------------------------------------------------------------
...
...
src/Gargantext/Utils/Range.purs
View file @
635169f6
module Gargantext.Utils.Range
module Gargantext.Utils.Range where
( class Range, clamp, within
, Closed(..), closedProbability
) where
import Prelude ((<<<), (&&), (<=), (>=), min, max)
import Prelude
import Data.Newtype (class Newtype)
import Data.Ord (class Ord)
import Data.Ord (class Ord)
class Range r v where
class Range r v where
...
@@ -13,11 +11,34 @@ class Range r v where
...
@@ -13,11 +11,34 @@ class Range r v where
-- | A Closed Interval, in math speak
-- | A Closed Interval, in math speak
newtype Closed t = Closed { min :: t, max :: t }
newtype Closed t = Closed { min :: t, max :: t }
derive instance newtypeClosed :: Newtype (Closed t) _
instance closedRange :: Ord t => Range (Closed t) t where
instance closedRange :: Ord t => Range (Closed t) t where
clamp (Closed r) = max r.min <<< min r.max
clamp (Closed r) = max r.min <<< min r.max
within (Closed r) v = (v <= r.max) && (v >= r.min)
within (Closed r) v = (v <= r.max) && (v >= r.min)
range :: Closed Number -> Number
range (Closed r) = r.max - r.min
-- | Clamps the value to within the range and returns a normalised
-- | (0-1) float indication progress along the range
normalise :: Closed Number -> Number -> Number
normalise r v = clamp r v / range r
-- | Given a normal (0-1) float representing progress along a range,
-- | project it onto the range
projectNormal :: Closed Number -> Number -> Number
projectNormal r v = clamp closedProbability v * range r
-- | A closed range between 0 and 1
-- | A closed range between 0 and 1
closedProbability :: Closed Number
closedProbability :: Closed Number
closedProbability = Closed { min: 0.0, max: 1.0 }
closedProbability = Closed { min: 0.0, max: 1.0 }
-- | Updates the minimum value in a closed range
withMin :: forall t. Closed t -> t -> Closed t
withMin (Closed {max}) min = Closed { min, max }
-- | Updates the maximum value in a closed range
withMax :: forall t. Closed t -> t -> Closed t
withMax (Closed {min}) max = Closed { min, max }
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