{"action":"created","comment":{"url":"https://api.github.com/repos/slamdata/purescript-colorpicker-halogen/pulls/comments/134222602","pull_request_review_id":57480726,"id":134222602,"diff_hunk":"@@ -0,0 +1,459 @@\n+module ColorPicker.Halogen.Layout\n+  ( Layout(..)\n+  , ChildLayout(..)\n+  , PickerComponent(..)\n+\n+  , NumberComponentView\n+  , TextComponentView\n+  , DragComponentView\n+  , ActionComponentView\n+\n+  , InputTextValue\n+  , isValid\n+  , isInvalid\n+\n+  , PositionUpdate\n+  , Dynamic\n+  , PreNumConf\n+  , InputProps\n+  , Classes\n+  , ValueHistory\n+  , mapValueHistory\n+\n+  , LazyColor\n+  , RecordHSLA\n+  , RecordHSVA\n+  , RecordRGBA\n+  , mkLazyColor\n+\n+\n+  , componentHue\n+  , componentSaturationHSL\n+  , componentLightness\n+  , componentSaturationHSV\n+  , componentValue\n+  , componentRed\n+  , componentGreen\n+  , componentBlue\n+  , componentHEX\n+  , componentDragHue\n+  , componentDragSV\n+  , componentPreview\n+  , componentHistory\n+  , componentSet\n+  ) where\n+\n+import Prelude\n+\n+import CSS as CSS\n+import Color (Color)\n+import Color as Color\n+import Control.MonadZero (guard)\n+import DOM.Event.Types (FocusEvent, MouseEvent, TouchEvent)\n+import Data.Array (head, take)\n+import Data.Int (floor, toNumber)\n+import Data.Lazy (Lazy, defer, force)\n+import Data.Maybe (Maybe(..), maybe, maybe')\n+import Data.String as String\n+import Halogen as H\n+import Halogen.HTML as HH\n+import Halogen.HTML.CSS as HCSS\n+import Halogen.HTML.Events as HE\n+import Halogen.HTML.Properties as HP\n+import Math (round)\n+import NumberInput.Halogen.Component as Num\n+import NumberInput.Range (Range(..))\n+\n+data Layout = Root (Array H.ClassName) (Array ChildLayout)\n+\n+data ChildLayout\n+  = Group (Array H.ClassName) (Array ChildLayout)\n+  | Component PickerComponent\n+\n+\n+type ValueHistory a =  { old ∷ Array a, current ∷ a }\n+\n+type InputTextValue = { value ∷ String, isValid ∷ Boolean }\n+\n+type PositionUpdate = { x ∷ Number, y ∷ Number } → Dynamic Color\n+\n+type Dynamic s = LazyColor → s\n+\n+type Classes = Array H.ClassName\n+\n+type PreNumConf = { prefix ∷ String, title ∷ String, placeholder ∷ String, range ∷ Range Number }\n+\n+type LazyColor =\n+  { color ∷ Color\n+  , hsl ∷ Lazy RecordHSLA\n+  , hsv ∷ Lazy RecordHSVA\n+  , rgb ∷ Lazy RecordRGBA\n+  }\n+\n+type InputProps c =\n+  { root ∷ c\n+  , label ∷ c\n+  , elem ∷ c\n+  , elemInvalid ∷ c\n+  }\n+\n+\n+data PickerComponent\n+  = NumberComponentSpec\n+    { update ∷ Number → Dynamic (Maybe Color)\n+    , read ∷ Dynamic Number\n+    , props ∷ Num.Props Number\n+    , view ∷ NumberComponentView\n+    }\n+  | TextComponentSpec\n+    { fromString ∷ String → Maybe Color\n+    , view ∷ TextComponentView\n+    }\n+  | DragComponentSpec\n+    { update ∷ PositionUpdate\n+    , view ∷ DragComponentView\n+    }\n+  | ActionComponentSpec ActionComponentView\n+\n+type NumberComponentView =\n+  ∀ p i\n+  . { color ∷ LazyColor\n+    , input ∷ HH.HTML p i\n+    }\n+  → Array (HH.HTML p i)\n+\n+type TextComponentView =\n+  ∀ p i\n+  . { color ∷ LazyColor\n+    , value ∷ Maybe InputTextValue\n+    , onValueInput ∷ String → i\n+    , onBlur ∷ FocusEvent → i\n+    }\n+  → Array (HH.HTML p i)\n+\n+type DragComponentView =\n+  ∀ p i\n+  . { color∷ LazyColor\n+    , onMouseDown ∷ MouseEvent → i\n+    , onTouchStart ∷ TouchEvent → i\n+    }\n+  → Array (HH.HTML p i)\n+\n+type ActionComponentView =\n+  ∀ p i\n+  . { color ∷ ValueHistory LazyColor\n+    , setColor ∷ Color → i\n+    , commit ∷ i\n+    }\n+  → Array (HH.HTML p i)\n+\n+mapValueHistory ∷ ∀ a b. (a → b) → ValueHistory a → ValueHistory b\n+mapValueHistory f { current, old } = { current: f current, old: map f old }\n+\n+mkLazyColor ∷ Color → LazyColor\n+mkLazyColor color =\n+  { color\n+  , hsl: defer \\_ → Color.toHSLA color\n+  , hsv: defer \\_ → Color.toHSVA color\n+  , rgb: defer \\_ → Color.toRGBA color\n+  }\n+\n+\n+componentPreview ∷ Array H.ClassName → PickerComponent\n+componentPreview classes = ActionComponentSpec \\{ color , setColor } → pure $\n+  HH.div\n+    [ HP.classes $ classes\n+    , HP.title \"Current value\"\n+    , HCSS.style $ CSS.backgroundColor color.current.color\n+    ] []\n+\n+componentHistory ∷ Int → Array H.ClassName → PickerComponent\n+componentHistory historySize classes = ActionComponentSpec \\{ color , setColor } →\n+  take historySize color.old <#> \\c →\n+    HH.div\n+      [ HP.tabIndex 0\n+      , HP.classes $ classes\n+      , HP.title \"Old value\"\n+      , HE.onClick $ (\\_ → Just $ setColor c.color)\n+      , HCSS.style $ CSS.backgroundColor c.color\n+      ] []\n+\n+\n+componentSet ∷ Array H.ClassName → PickerComponent\n+componentSet classes = ActionComponentSpec \\{ color: {current, old}, commit } → pure $\n+  HH.button\n+    [ HP.classes classes\n+    , HE.onClick $ const $ Just commit\n+    , HP.disabled $ Just current.color == (map _.color $ head old)\n+    ]\n+    [ HH.text \"Set\" ]\n+\n+componentDragSV ∷\n+  { isLight ∷ Array H.ClassName\n+  , isDark ∷ Array H.ClassName\n+  , root ∷ Array H.ClassName\n+  , selector ∷ Array H.ClassName\n+  }\n+  → PickerComponent\n+componentDragSV classes = DragComponentSpec\n+  { update: \\{x, y} → modifyHSV _{ s = x, v = 1.0 - y}\n+  , view: \\{color: {hsv, color}, onMouseDown, onTouchStart} → pure $\n+      HH.div\n+        [ HP.classes $ classes.root <> if Color.isLight color then classes.isLight else classes.isDark\n+        , HCSS.style $ CSS.backgroundColor $ Color.hsl (force hsv).h 1.0 0.5\n+        , HE.onTouchStart $ onTouchStart >>> Just\n+        , HE.onMouseDown $ onMouseDown >>> Just\n+        ]\n+        [ HH.div\n+          [ HP.classes classes.selector\n+          , HCSS.style do\n+              CSS.left $ CSS.pct ((force hsv).s * 100.0)\n+              CSS.bottom $ CSS.pct ((force hsv).v * 100.0)\n+              CSS.backgroundColor color\n+          ]\n+          []\n+        ]\n+    }\n+\n+\n+componentDragHue ∷\n+  { root ∷ Array H.ClassName\n+  , selector ∷ Array H.ClassName\n+  }\n+  → PickerComponent\n+componentDragHue classes = DragComponentSpec\n+  { update: \\{y} → modifyHSL _{ h = (1.0 - y) * 360.0 }\n+  , view: \\{color: {hsv, color}, onMouseDown, onTouchStart} → pure $\n+      HH.div\n+        [ HP.classes classes.root\n+        , HE.onTouchStart $ onTouchStart >>> Just\n+        , HE.onMouseDown $ onMouseDown >>> Just\n+        ]\n+        [ HH.div\n+          [ HP.classes classes.selector\n+          , HCSS.style $ CSS.top $ CSS.pct ((1.0 - (force hsv).h / 360.0) * 100.0)\n+          ]\n+          []\n+        ]\n+    }\n+\n+mkNumComponent\n+  ∷ (Number → Dynamic (Maybe Color))\n+  → Dynamic Number\n+  → InputProps Classes\n+  → PreNumConf\n+  → PickerComponent\n+mkNumComponent update read classes conf = NumberComponentSpec\n+  { update\n+  , read\n+  , props:\n+    { title: conf.title\n+    , hasNumberValue: hasValRound\n+    , placeholder: conf.placeholder\n+    , range: conf.range\n+    , root: classes.elem\n+    , rootInvalid: classes.elemInvalid\n+    , rootLength: const []\n+    }\n+  , view: \\ {input} → pure $ renderInput\n+      { root: classes.root\n+      , label: classes.label\n+      , prefix: conf.prefix\n+      , child: input\n+      }\n+  }\n+\n+\n+componentHue ∷ InputProps Classes → PickerComponent\n+componentHue classes = mkNumComponent\n+  (\\n → Just <<< modifyHSL (_{h = n}))\n+  (\\({rgb, hsv, hsl}) → roundFractionalNum (force hsl).h)\n+  classes\n+  confHue\n+\n+\n+componentSaturationHSL ∷ InputProps Classes → PickerComponent\n+componentSaturationHSL classes = mkNumComponent\n+  (\\n → Just <<< modifyHSL (_{s = n / 100.0}))","path":"src/ColorPicker/Halogen/Layout.purs","position":277,"original_position":277,"commit_id":"e3f5e3efdfb0280f64c88f0dbe821fbe14139b3d","original_commit_id":"e3f5e3efdfb0280f64c88f0dbe821fbe14139b3d","user":{"login":"cryogenian","id":10245930,"avatar_url":"https://avatars3.githubusercontent.com/u/10245930?v=4","gravatar_id":"","url":"https://api.github.com/users/cryogenian","html_url":"https://github.com/cryogenian","followers_url":"https://api.github.com/users/cryogenian/followers","following_url":"https://api.github.com/users/cryogenian/following{/other_user}","gists_url":"https://api.github.com/users/cryogenian/gists{/gist_id}","starred_url":"https://api.github.com/users/cryogenian/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cryogenian/subscriptions","organizations_url":"https://api.github.com/users/cryogenian/orgs","repos_url":"https://api.github.com/users/cryogenian/repos","events_url":"https://api.github.com/users/cryogenian/events{/privacy}","received_events_url":"https://api.github.com/users/cryogenian/received_events","type":"User","site_admin":false},"body":"The same, unnecessary parens","created_at":"2017-08-21T12:44:57Z","updated_at":"2017-08-21T12:52:41Z","html_url":"https://github.com/slamdata/purescript-colorpicker-halogen/pull/1#discussion_r134222602","pull_request_url":"https://api.github.com/repos/slamdata/purescript-colorpicker-halogen/pulls/1","_links":{"self":{"href":"https://api.github.com/repos/slamdata/purescript-colorpicker-halogen/pulls/comments/134222602"},"html":{"href":"https://github.com/slamdata/purescript-colorpicker-halogen/pull/1#discussion_r134222602"},"pull_request":{"href":"https://api.github.com/repos/slamdata/purescript-colorpicker-halogen/pulls/1"}}},"pull_request":{"url":"https://api.github.com/repos/slamdata/purescript-colorpicker-halogen/pulls/1","id":131604097,"html_url":"https://github.com/slamdata/purescript-colorpicker-halogen/pull/1","diff_url":"https://github.com/slamdata/purescript-colorpicker-halogen/pull/1.diff","patch_url":"https://github.com/slamdata/purescript-colorpicker-halogen/pull/1.patch","issue_url":"https://api.github.com/repos/slamdata/purescript-colorpicker-halogen/issues/1","number":1,"state":"open","locked":false,"title":"Initial version","user":{"login":"safareli","id":1932383,"avatar_url":"https://avatars1.githubusercontent.com/u/1932383?v=4","gravatar_id":"","url":"https://api.github.com/users/safareli","html_url":"https://github.com/safareli","followers_url":"https://api.github.com/users/safareli/followers","following_url":"https://api.github.com/users/safareli/following{/other_user}","gists_url":"https://api.github.com/users/safareli/gists{/gist_id}","starred_url":"https://api.github.com/users/safareli/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/safareli/subscriptions","organizations_url":"https://api.github.com/users/safareli/orgs","repos_url":"https://api.github.com/users/safareli/repos","events_url":"https://api.github.com/users/safareli/events{/privacy}","received_events_url":"https://api.github.com/users/safareli/received_events","type":"User","site_admin":false},"body":"[Mocks](https://docs.google.com/drawings/d/1QQRO0--TQxG8md5NWLYQdD8gEn_h97Ju1n6jXBOZ5BE/edit) from https://github.com/slamdata/slamdata/issues/1481\r\n\r\nTODO \r\n- [x] add way to enter R,G,B,H,S,L, HEX values using number inputs like this \r\n- [x] show previous color","created_at":"2017-07-20T17:01:54Z","updated_at":"2017-08-21T12:52:41Z","closed_at":null,"merged_at":null,"merge_commit_sha":"239d88cc447d73bf3ae6e1c75ce8dc298a55c969","assignee":null,"assignees":[],"requested_reviewers":[{"login":"garyb","id":693642,"avatar_url":"https://avatars0.githubusercontent.com/u/693642?v=4","gravatar_id":"","url":"https://api.github.com/users/garyb","html_url":"https://github.com/garyb","followers_url":"https://api.github.com/users/garyb/followers","following_url":"https://api.github.com/users/garyb/following{/other_user}","gists_url":"https://api.github.com/users/garyb/gists{/gist_id}","starred_url":"https://api.github.com/users/garyb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/garyb/subscriptions","organizations_url":"https://api.github.com/users/garyb/orgs","repos_url":"https://api.github.com/users/garyb/repos","events_url":"https://api.github.com/users/garyb/events{/privacy}","received_events_url":"https://api.github.com/users/garyb/received_events","type":"User","site_admin":false}],"milestone":null,"commits_url":"https://api.github.com/repos/slamdata/purescript-colorpicker-halogen/pulls/1/commits","review_comments_url":"https://api.github.com/repos/slamdata/purescript-colorpicker-halogen/pulls/1/comments","review_comment_url":"https://api.github.com/repos/slamdata/purescript-colorpicker-halogen/pulls/comments{/number}","comments_url":"https://api.github.com/repos/slamdata/purescript-colorpicker-halogen/issues/1/comments","statuses_url":"https://api.github.com/repos/slamdata/purescript-colorpicker-halogen/statuses/e3f5e3efdfb0280f64c88f0dbe821fbe14139b3d","head":{"label":"safareli:init","ref":"init","sha":"e3f5e3efdfb0280f64c88f0dbe821fbe14139b3d","user":{"login":"safareli","id":1932383,"avatar_url":"https://avatars1.githubusercontent.com/u/1932383?v=4","gravatar_id":"","url":"https://api.github.com/users/safareli","html_url":"https://github.com/safareli","followers_url":"https://api.github.com/users/safareli/followers","following_url":"https://api.github.com/users/safareli/following{/other_user}","gists_url":"https://api.github.com/users/safareli/gists{/gist_id}","starred_url":"https://api.github.com/users/safareli/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/safareli/subscriptions","organizations_url":"https://api.github.com/users/safareli/orgs","repos_url":"https://api.github.com/users/safareli/repos","events_url":"https://api.github.com/users/safareli/events{/privacy}","received_events_url":"https://api.github.com/users/safareli/received_events","type":"User","site_admin":false},"repo":{"id":97706244,"name":"purescript-colorpicker-halogen","full_name":"safareli/purescript-colorpicker-halogen","owner":{"login":"safareli","id":1932383,"avatar_url":"https://avatars1.githubusercontent.com/u/1932383?v=4","gravatar_id":"","url":"https://api.github.com/users/safareli","html_url":"https://github.com/safareli","followers_url":"https://api.github.com/users/safareli/followers","following_url":"https://api.github.com/users/safareli/following{/other_user}","gists_url":"https://api.github.com/users/safareli/gists{/gist_id}","starred_url":"https://api.github.com/users/safareli/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/safareli/subscriptions","organizations_url":"https://api.github.com/users/safareli/orgs","repos_url":"https://api.github.com/users/safareli/repos","events_url":"https://api.github.com/users/safareli/events{/privacy}","received_events_url":"https://api.github.com/users/safareli/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/safareli/purescript-colorpicker-halogen","description":null,"fork":true,"url":"https://api.github.com/repos/safareli/purescript-colorpicker-halogen","forks_url":"https://api.github.com/repos/safareli/purescript-colorpicker-halogen/forks","keys_url":"https://api.github.com/repos/safareli/purescript-colorpicker-halogen/keys{/key_id}","collaborators_url":"https://api.github.com/repos/safareli/purescript-colorpicker-halogen/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/safareli/purescript-colorpicker-halogen/teams","hooks_url":"https://api.github.com/repos/safareli/purescript-colorpicker-halogen/hooks","issue_events_url":"https://api.github.com/repos/safareli/purescript-colorpicker-halogen/issues/events{/number}","events_url":"https://api.github.com/repos/safareli/purescript-colorpicker-halogen/events","assignees_url":"https://api.github.com/repos/safareli/purescript-colorpicker-halogen/assignees{/user}","branches_url":"https://api.github.com/repos/safareli/purescript-colorpicker-halogen/branches{/branch}","tags_url":"https://api.github.com/repos/safareli/purescript-colorpicker-halogen/tags","blobs_url":"https://api.github.com/repos/safareli/purescript-colorpicker-halogen/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/safareli/purescript-colorpicker-halogen/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/safareli/purescript-colorpicker-halogen/git/refs{/sha}","trees_url":"https://api.github.com/repos/safareli/purescript-colorpicker-halogen/git/trees{/sha}","statuses_url":"https://api.github.com/repos/safareli/purescript-colorpicker-halogen/statuses/{sha}","languages_url":"https://api.github.com/repos/safareli/purescript-colorpicker-halogen/languages","stargazers_url":"https://api.github.com/repos/safareli/purescript-colorpicker-halogen/stargazers","contributors_url":"https://api.github.com/repos/safareli/purescript-colorpicker-halogen/contributors","subscribers_url":"https://api.github.com/repos/safareli/purescript-colorpicker-halogen/subscribers","subscription_url":"https://api.github.com/repos/safareli/purescript-colorpicker-halogen/subscription","commits_url":"https://api.github.com/repos/safareli/purescript-colorpicker-halogen/commits{/sha}","git_commits_url":"https://api.github.com/repos/safareli/purescript-colorpicker-halogen/git/commits{/sha}","comments_url":"https://api.github.com/repos/safareli/purescript-colorpicker-halogen/comments{/number}","issue_comment_url":"https://api.github.com/repos/safareli/purescript-colorpicker-halogen/issues/comments{/number}","contents_url":"https://api.github.com/repos/safareli/purescript-colorpicker-halogen/contents/{+path}","compare_url":"https://api.github.com/repos/safareli/purescript-colorpicker-halogen/compare/{base}...{head}","merges_url":"https://api.github.com/repos/safareli/purescript-colorpicker-halogen/merges","archive_url":"https://api.github.com/repos/safareli/purescript-colorpicker-halogen/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/safareli/purescript-colorpicker-halogen/downloads","issues_url":"https://api.github.com/repos/safareli/purescript-colorpicker-halogen/issues{/number}","pulls_url":"https://api.github.com/repos/safareli/purescript-colorpicker-halogen/pulls{/number}","milestones_url":"https://api.github.com/repos/safareli/purescript-colorpicker-halogen/milestones{/number}","notifications_url":"https://api.github.com/repos/safareli/purescript-colorpicker-halogen/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/safareli/purescript-colorpicker-halogen/labels{/name}","releases_url":"https://api.github.com/repos/safareli/purescript-colorpicker-halogen/releases{/id}","deployments_url":"https://api.github.com/repos/safareli/purescript-colorpicker-halogen/deployments","created_at":"2017-07-19T10:56:48Z","updated_at":"2017-07-19T10:48:58Z","pushed_at":"2017-08-19T16:36:16Z","git_url":"git://github.com/safareli/purescript-colorpicker-halogen.git","ssh_url":"git@github.com:safareli/purescript-colorpicker-halogen.git","clone_url":"https://github.com/safareli/purescript-colorpicker-halogen.git","svn_url":"https://github.com/safareli/purescript-colorpicker-halogen","homepage":null,"size":147,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"slamdata:master","ref":"master","sha":"167651fb0a784488333e1239589ca7cfea300d81","user":{"login":"slamdata","id":5385602,"avatar_url":"https://avatars0.githubusercontent.com/u/5385602?v=4","gravatar_id":"","url":"https://api.github.com/users/slamdata","html_url":"https://github.com/slamdata","followers_url":"https://api.github.com/users/slamdata/followers","following_url":"https://api.github.com/users/slamdata/following{/other_user}","gists_url":"https://api.github.com/users/slamdata/gists{/gist_id}","starred_url":"https://api.github.com/users/slamdata/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/slamdata/subscriptions","organizations_url":"https://api.github.com/users/slamdata/orgs","repos_url":"https://api.github.com/users/slamdata/repos","events_url":"https://api.github.com/users/slamdata/events{/privacy}","received_events_url":"https://api.github.com/users/slamdata/received_events","type":"Organization","site_admin":false},"repo":{"id":97705618,"name":"purescript-colorpicker-halogen","full_name":"slamdata/purescript-colorpicker-halogen","owner":{"login":"slamdata","id":5385602,"avatar_url":"https://avatars0.githubusercontent.com/u/5385602?v=4","gravatar_id":"","url":"https://api.github.com/users/slamdata","html_url":"https://github.com/slamdata","followers_url":"https://api.github.com/users/slamdata/followers","following_url":"https://api.github.com/users/slamdata/following{/other_user}","gists_url":"https://api.github.com/users/slamdata/gists{/gist_id}","starred_url":"https://api.github.com/users/slamdata/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/slamdata/subscriptions","organizations_url":"https://api.github.com/users/slamdata/orgs","repos_url":"https://api.github.com/users/slamdata/repos","events_url":"https://api.github.com/users/slamdata/events{/privacy}","received_events_url":"https://api.github.com/users/slamdata/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/slamdata/purescript-colorpicker-halogen","description":null,"fork":false,"url":"https://api.github.com/repos/slamdata/purescript-colorpicker-halogen","forks_url":"https://api.github.com/repos/slamdata/purescript-colorpicker-halogen/forks","keys_url":"https://api.github.com/repos/slamdata/purescript-colorpicker-halogen/keys{/key_id}","collaborators_url":"https://api.github.com/repos/slamdata/purescript-colorpicker-halogen/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/slamdata/purescript-colorpicker-halogen/teams","hooks_url":"https://api.github.com/repos/slamdata/purescript-colorpicker-halogen/hooks","issue_events_url":"https://api.github.com/repos/slamdata/purescript-colorpicker-halogen/issues/events{/number}","events_url":"https://api.github.com/repos/slamdata/purescript-colorpicker-halogen/events","assignees_url":"https://api.github.com/repos/slamdata/purescript-colorpicker-halogen/assignees{/user}","branches_url":"https://api.github.com/repos/slamdata/purescript-colorpicker-halogen/branches{/branch}","tags_url":"https://api.github.com/repos/slamdata/purescript-colorpicker-halogen/tags","blobs_url":"https://api.github.com/repos/slamdata/purescript-colorpicker-halogen/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/slamdata/purescript-colorpicker-halogen/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/slamdata/purescript-colorpicker-halogen/git/refs{/sha}","trees_url":"https://api.github.com/repos/slamdata/purescript-colorpicker-halogen/git/trees{/sha}","statuses_url":"https://api.github.com/repos/slamdata/purescript-colorpicker-halogen/statuses/{sha}","languages_url":"https://api.github.com/repos/slamdata/purescript-colorpicker-halogen/languages","stargazers_url":"https://api.github.com/repos/slamdata/purescript-colorpicker-halogen/stargazers","contributors_url":"https://api.github.com/repos/slamdata/purescript-colorpicker-halogen/contributors","subscribers_url":"https://api.github.com/repos/slamdata/purescript-colorpicker-halogen/subscribers","subscription_url":"https://api.github.com/repos/slamdata/purescript-colorpicker-halogen/subscription","commits_url":"https://api.github.com/repos/slamdata/purescript-colorpicker-halogen/commits{/sha}","git_commits_url":"https://api.github.com/repos/slamdata/purescript-colorpicker-halogen/git/commits{/sha}","comments_url":"https://api.github.com/repos/slamdata/purescript-colorpicker-halogen/comments{/number}","issue_comment_url":"https://api.github.com/repos/slamdata/purescript-colorpicker-halogen/issues/comments{/number}","contents_url":"https://api.github.com/repos/slamdata/purescript-colorpicker-halogen/contents/{+path}","compare_url":"https://api.github.com/repos/slamdata/purescript-colorpicker-halogen/compare/{base}...{head}","merges_url":"https://api.github.com/repos/slamdata/purescript-colorpicker-halogen/merges","archive_url":"https://api.github.com/repos/slamdata/purescript-colorpicker-halogen/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/slamdata/purescript-colorpicker-halogen/downloads","issues_url":"https://api.github.com/repos/slamdata/purescript-colorpicker-halogen/issues{/number}","pulls_url":"https://api.github.com/repos/slamdata/purescript-colorpicker-halogen/pulls{/number}","milestones_url":"https://api.github.com/repos/slamdata/purescript-colorpicker-halogen/milestones{/number}","notifications_url":"https://api.github.com/repos/slamdata/purescript-colorpicker-halogen/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/slamdata/purescript-colorpicker-halogen/labels{/name}","releases_url":"https://api.github.com/repos/slamdata/purescript-colorpicker-halogen/releases{/id}","deployments_url":"https://api.github.com/repos/slamdata/purescript-colorpicker-halogen/deployments","created_at":"2017-07-19T10:48:41Z","updated_at":"2017-07-19T10:48:58Z","pushed_at":"2017-08-19T16:36:17Z","git_url":"git://github.com/slamdata/purescript-colorpicker-halogen.git","ssh_url":"git@github.com:slamdata/purescript-colorpicker-halogen.git","clone_url":"https://github.com/slamdata/purescript-colorpicker-halogen.git","svn_url":"https://github.com/slamdata/purescript-colorpicker-halogen","homepage":null,"size":4,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":2,"mirror_url":null,"open_issues_count":1,"forks":2,"open_issues":1,"watchers":0,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/slamdata/purescript-colorpicker-halogen/pulls/1"},"html":{"href":"https://github.com/slamdata/purescript-colorpicker-halogen/pull/1"},"issue":{"href":"https://api.github.com/repos/slamdata/purescript-colorpicker-halogen/issues/1"},"comments":{"href":"https://api.github.com/repos/slamdata/purescript-colorpicker-halogen/issues/1/comments"},"review_comments":{"href":"https://api.github.com/repos/slamdata/purescript-colorpicker-halogen/pulls/1/comments"},"review_comment":{"href":"https://api.github.com/repos/slamdata/purescript-colorpicker-halogen/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/slamdata/purescript-colorpicker-halogen/pulls/1/commits"},"statuses":{"href":"https://api.github.com/repos/slamdata/purescript-colorpicker-halogen/statuses/e3f5e3efdfb0280f64c88f0dbe821fbe14139b3d"}}}}
{"actor":{"display_login":"cryogenian"}}