diff --git a/docs/assets/main.js b/docs/assets/main.js index cd7274b..61bc4b9 100644 --- a/docs/assets/main.js +++ b/docs/assets/main.js @@ -12937,25 +12937,6 @@ var _user$project$Internal_Container$responsive = function (id) { }; var _user$project$Internal_Container$Static = {ctor: 'Static'}; var _user$project$Internal_Container$static = _user$project$Internal_Container$Static; -var _user$project$Internal_Container$default = function (id) { - return _user$project$Internal_Container$custom( - { - attributesHtml: { - ctor: '::', - _0: _elm_lang$html$Html_Attributes$style( - { - ctor: '::', - _0: {ctor: '_Tuple2', _0: 'font-family', _1: 'monospace'}, - _1: {ctor: '[]'} - }), - _1: {ctor: '[]'} - }, - attributesSvg: {ctor: '[]'}, - size: _user$project$Internal_Container$static, - margin: A4(_user$project$Internal_Container$Margin, 60, 140, 60, 80), - id: id - }); -}; var _user$project$Internal_Container$spaced = F5( function (id, top, right, bottom, left) { return _user$project$Internal_Container$custom( @@ -12967,11 +12948,33 @@ var _user$project$Internal_Container$spaced = F5( id: id }); }); +var _user$project$Internal_Container$styled = F2( + function (id, styles) { + return _user$project$Internal_Container$custom( + { + attributesHtml: { + ctor: '::', + _0: _elm_lang$html$Html_Attributes$style(styles), + _1: {ctor: '[]'} + }, + attributesSvg: {ctor: '[]'}, + size: _user$project$Internal_Container$static, + margin: A4(_user$project$Internal_Container$Margin, 60, 140, 60, 80), + id: id + }); + }); +var _user$project$Internal_Container$default = function (id) { + return A2( + _user$project$Internal_Container$styled, + id, + {ctor: '[]'}); +}; var _user$project$LineChart_Container$static = _user$project$Internal_Container$static; var _user$project$LineChart_Container$relative = _user$project$Internal_Container$relative; var _user$project$LineChart_Container$custom = _user$project$Internal_Container$custom; var _user$project$LineChart_Container$responsive = _user$project$Internal_Container$responsive; +var _user$project$LineChart_Container$styled = _user$project$Internal_Container$styled; var _user$project$LineChart_Container$spaced = _user$project$Internal_Container$spaced; var _user$project$LineChart_Container$default = _user$project$Internal_Container$default; var _user$project$LineChart_Container$Properties = F5( @@ -13055,12 +13058,14 @@ var _user$project$LineChart_Colors$grayLightest = A3(_elm_lang$core$Color$rgb, 2 var _user$project$LineChart_Colors$grayLight = A3(_elm_lang$core$Color$rgb, 211, 211, 211); var _user$project$LineChart_Colors$gray = A3(_elm_lang$core$Color$rgb, 163, 163, 163); var _user$project$LineChart_Colors$black = A3(_elm_lang$core$Color$rgb, 0, 0, 0); +var _user$project$LineChart_Colors$strongBlue = A4(_elm_lang$core$Color$rgba, 89, 51, 204, 1); var _user$project$LineChart_Colors$tealLight = A4(_elm_lang$core$Color$rgba, 128, 203, 196, 1); var _user$project$LineChart_Colors$teal = A4(_elm_lang$core$Color$rgba, 29, 233, 182, 1); var _user$project$LineChart_Colors$cyanLight = A4(_elm_lang$core$Color$rgba, 128, 222, 234, 1); var _user$project$LineChart_Colors$cyan = A4(_elm_lang$core$Color$rgba, 0, 229, 255, 1); var _user$project$LineChart_Colors$purpleLight = A4(_elm_lang$core$Color$rgba, 206, 147, 216, 1); var _user$project$LineChart_Colors$purple = A4(_elm_lang$core$Color$rgba, 156, 39, 176, 1); +var _user$project$LineChart_Colors$rust = A4(_elm_lang$core$Color$rgba, 205, 102, 51, 1); var _user$project$LineChart_Colors$redLight = A4(_elm_lang$core$Color$rgba, 239, 154, 154, 1); var _user$project$LineChart_Colors$red = A4(_elm_lang$core$Color$rgba, 216, 27, 96, 1); var _user$project$LineChart_Colors$greenLight = A4(_elm_lang$core$Color$rgba, 197, 225, 165, 1); @@ -19484,7 +19489,7 @@ var _user$project$LineChart$Config = function (a) { }; }; -var _user$project$Area$source = '\n -- MODEL\n\n\n type alias Model =\n { data : Data\n , hinted : List Datum\n }\n\n\n type alias Data =\n { nora : List Datum\n , noah : List Datum\n , nina : List Datum\n }\n\n\n type alias Datum =\n { time : Time.Time\n , velocity : Float\n }\n\n\n\n -- INIT\n\n\n init : ( Model, Cmd Msg )\n init =\n ( { data = Data [] [] []\n , hinted = []\n }\n , generateData\n )\n\n\n generateData : Cmd Msg\n generateData =\n let\n genNumbers =\n Random.list 40 (Random.float 5 20)\n in\n Random.map3 (,,) genNumbers genNumbers genNumbers\n |> Random.generate RecieveData\n\n\n\n -- API\n\n\n setData : ( List Float, List Float, List Float ) -> Model -> Model\n setData ( n1, n2, n3 ) model =\n { model | data = Data (toData n1) (toData n2) (toData n3) }\n\n\n toData : List Float -> List Datum\n toData numbers =\n let \n toDatum index velocity = \n Datum (indexToTime index) velocity \n in\n List.indexedMap toDatum numbers\n\n\n indexToTime : Int -> Time.Time\n indexToTime index =\n Time.hour * 24 * 356 * 45 + -- 45 years\n Time.hour * 24 * 30 + -- a month\n Time.hour * 1 * toFloat index -- hours from first datum\n\n\n setHint : List Datum -> Model -> Model\n setHint hinted model =\n { model | hinted = hinted }\n\n\n\n -- UPDATE\n\n\n type Msg\n = RecieveData ( List Float, List Float, List Float )\n | Hint (List Datum)\n\n\n update : Msg -> Model -> ( Model, Cmd Msg )\n update msg model =\n case msg of\n RecieveData numbers ->\n model\n |> setData numbers\n |> addCmd Cmd.none\n\n Hint points ->\n model\n |> setHint points\n |> addCmd Cmd.none\n\n\n addCmd : Cmd Msg -> Model -> ( Model, Cmd Msg )\n addCmd cmd model =\n ( model, Cmd.none )\n\n\n\n -- VIEW\n\n\n view : Model -> Html.Html Msg\n view model =\n Html.div [] \n [ LineChart.viewCustom (chartConfig model) \n [ LineChart.line Colors.pink Dots.diamond \"Nora\" model.data.nora\n , LineChart.line Colors.cyan Dots.circle \"Noah\" model.data.noah\n , LineChart.line Colors.blue Dots.triangle \"Nina\" model.data.nina\n ]\n ]\n\n\n\n -- CHART CONFIG\n\n\n chartConfig : Model -> LineChart.Config Datum Msg\n chartConfig model =\n { y = Axis.default 450 \"velocity\" .velocity\n , x = Axis.time 1270 \"time\" .time\n , container = containerConfig\n , interpolation = Interpolation.monotone\n , intersection = Intersection.default\n , legends = Legends.default\n , events = Events.hoverMany Hint\n , junk = Junk.hoverMany model.hinted formatX formatY\n , grid = Grid.dots 1 Colors.gray\n , area = Area.stacked 0.5\n , line = Line.default\n , dots = Dots.custom (Dots.empty 5 1)\n }\n\n\n containerConfig : Container.Config Msg\n containerConfig =\n Container.custom\n { attributesHtml = []\n , attributesSvg = []\n , size = Container.relative\n , margin = Container.Margin 30 100 30 70\n , id = \"line-chart-area\"\n }\n\n\n formatX : Datum -> String\n formatX datum =\n Date.Format.format \"%e. %b, %Y\" (Date.fromTime datum.time)\n\n\n formatY : Datum -> String\n formatY datum =\n toString (round100 datum.velocity) ++ \" m/s\"\n\n\n\n -- UTILS\n\n\n round100 : Float -> Float\n round100 float =\n toFloat (round (float * 100)) / 100\n\n\n\n\n -- PROGRAM \n\n\n main : Program Never Model Msg\n main =\n Html.program\n { init = init\n , update = update\n , view = view\n , subscriptions = always Sub.none\n }\n\n\n '; +var _user$project$Area$source = '\n -- MODEL\n\n\n type alias Model =\n { data : Data\n , hinted : List Datum\n }\n\n\n type alias Data =\n { nora : List Datum\n , noah : List Datum\n , nina : List Datum\n }\n\n\n type alias Datum =\n { time : Time.Time\n , velocity : Float\n }\n\n\n\n -- INIT\n\n\n init : ( Model, Cmd Msg )\n init =\n ( { data = Data [] [] []\n , hinted = []\n }\n , generateData\n )\n\n\n generateData : Cmd Msg\n generateData =\n let\n genNumbers =\n Random.list 40 (Random.float 5 20)\n in\n Random.map3 (,,) genNumbers genNumbers genNumbers\n |> Random.generate RecieveData\n\n\n\n -- API\n\n\n setData : ( List Float, List Float, List Float ) -> Model -> Model\n setData ( n1, n2, n3 ) model =\n { model | data = Data (toData n1) (toData n2) (toData n3) }\n\n\n toData : List Float -> List Datum\n toData numbers =\n let\n toDatum index velocity =\n Datum (indexToTime index) velocity\n in\n List.indexedMap toDatum numbers\n\n\n indexToTime : Int -> Time.Time\n indexToTime index =\n Time.hour * 24 * 356 * 45 + -- 45 years\n Time.hour * 24 * 30 + -- a month\n Time.hour * 1 * toFloat index -- hours from first datum\n\n\n setHint : List Datum -> Model -> Model\n setHint hinted model =\n { model | hinted = hinted }\n\n\n\n -- UPDATE\n\n\n type Msg\n = RecieveData ( List Float, List Float, List Float )\n | Hint (List Datum)\n\n\n update : Msg -> Model -> ( Model, Cmd Msg )\n update msg model =\n case msg of\n RecieveData numbers ->\n model\n |> setData numbers\n |> addCmd Cmd.none\n\n Hint points ->\n model\n |> setHint points\n |> addCmd Cmd.none\n\n\n addCmd : Cmd Msg -> Model -> ( Model, Cmd Msg )\n addCmd cmd model =\n ( model, Cmd.none )\n\n\n\n -- VIEW\n\n\n view : Model -> Html.Html Msg\n view model =\n Html.div []\n [ LineChart.viewCustom (chartConfig model)\n [ LineChart.line Colors.pink Dots.diamond \"Nora\" model.data.nora\n , LineChart.line Colors.cyan Dots.circle \"Noah\" model.data.noah\n , LineChart.line Colors.blue Dots.triangle \"Nina\" model.data.nina\n ]\n ]\n\n\n\n -- CHART CONFIG\n\n\n chartConfig : Model -> LineChart.Config Datum Msg\n chartConfig model =\n { y = Axis.default 450 \"velocity\" .velocity\n , x = Axis.time 1270 \"time\" .time\n , container = containerConfig\n , interpolation = Interpolation.monotone\n , intersection = Intersection.default\n , legends = Legends.default\n , events = Events.hoverMany Hint\n , junk = Junk.hoverMany model.hinted formatX formatY\n , grid = Grid.dots 1 Colors.gray\n , area = Area.stacked 0.5\n , line = Line.default\n , dots = Dots.custom (Dots.empty 5 1)\n }\n\n\n containerConfig : Container.Config Msg\n containerConfig =\n Container.custom\n { attributesHtml = []\n , attributesSvg = []\n , size = Container.relative\n , margin = Container.Margin 30 100 30 70\n , id = \"line-chart-area\"\n }\n\n\n formatX : Datum -> String\n formatX datum =\n Date.Format.format \"%e. %b, %Y\" (Date.fromTime datum.time)\n\n\n formatY : Datum -> String\n formatY datum =\n toString (round100 datum.velocity) ++ \" m/s\"\n\n\n\n -- UTILS\n\n\n round100 : Float -> Float\n round100 float =\n toFloat (round (float * 100)) / 100\n\n\n\n\n -- PROGRAM\n\n\n main : Program Never Model Msg\n main =\n Html.program\n { init = init\n , update = update\n , view = view\n , subscriptions = always Sub.none\n }\n\n\n '; var _user$project$Area$indexToTime = function (index) { return ((((_elm_lang$core$Time$hour * 24) * 365) * 45) + ((_elm_lang$core$Time$hour * 24) * 30)) + ((_elm_lang$core$Time$hour * 1) * _elm_lang$core$Basics$toFloat(index)); }; @@ -19679,7 +19684,7 @@ var _user$project$LineChart_Axis_Title$atAxisMax = _user$project$Internal_Axis_T var _user$project$LineChart_Axis_Title$atDataMax = _user$project$Internal_Axis_Title$atDataMax; var _user$project$LineChart_Axis_Title$default = _user$project$Internal_Axis_Title$default; -var _user$project$Lines$source = '\n -- MODEL\n\n\n type alias Model =\n { data : Data\n , hinted : Maybe Datum\n }\n\n\n type alias Data =\n { denmark : List Datum\n , sweden : List Datum\n , iceland : List Datum\n , greenland : List Datum\n , norway : List Datum\n , finland : List Datum\n }\n\n\n type alias Datum =\n { time : Time.Time\n , rain : Float\n }\n\n\n\n -- INIT\n\n\n init : ( Model, Cmd Msg )\n init =\n ( { data = Data [] [] [] [] [] []\n , hinted = Nothing\n }\n , generateData\n )\n\n\n\n -- API\n\n\n setData : Data -> Model -> Model\n setData data model =\n { model | data = data }\n\n\n setHint : Maybe Datum -> Model -> Model\n setHint hinted model =\n { model | hinted = hinted }\n\n\n\n -- UPDATE\n\n\n type Msg\n = RecieveData Data\n | Hint (Maybe Datum)\n\n\n update : Msg -> Model -> ( Model, Cmd Msg )\n update msg model =\n case msg of\n RecieveData numbers ->\n model\n |> setData numbers\n |> addCmd Cmd.none\n\n Hint point ->\n model\n |> setHint point\n |> addCmd Cmd.none\n\n\n addCmd : Cmd Msg -> Model -> ( Model, Cmd Msg )\n addCmd cmd model =\n ( model, Cmd.none )\n\n\n\n -- VIEW\n\n\n view : Model -> Html.Html Msg\n view model =\n Html.div [] \n [ LineChart.viewCustom (chartConfig model) \n [ LineChart.line (Manipulate.lighten 0.2 Colors.cyan) Dots.circle \"Denmark\" model.data.denmark\n , LineChart.line (Manipulate.lighten 0 Colors.cyan) Dots.circle \"Sweden\" model.data.sweden\n , LineChart.line (Manipulate.lighten 0.2 Colors.blue) Dots.circle \"Iceland\" model.data.iceland\n , LineChart.line (Manipulate.lighten 0 Colors.blue) Dots.circle \"Greenland\" model.data.greenland\n , LineChart.line (Manipulate.lighten 0 Colors.pink) Dots.circle \"Norway\" model.data.norway\n , LineChart.line (Manipulate.darken 0.2 Colors.pink) Dots.circle \"Finland\" model.data.finland\n ]\n ]\n\n\n\n -- CHART CONFIG\n\n\n chartConfig : Model -> LineChart.Config Datum Msg\n chartConfig model =\n { y = yAxisConfig\n , x = xAxisConfig\n , container = containerConfig\n , interpolation = Interpolation.monotone\n , intersection = Intersection.default\n , legends = Legends.default\n , events = eventsConfig\n , junk = Junk.default\n , grid = Grid.default\n , area = Area.default\n , line = lineConfig model.hinted\n , dots = Dots.custom (Dots.disconnected 4 2)\n }\n \n\n\n -- CHART CONFIG / AXES \n\n\n yAxisConfig : Axis.Config Datum Msg\n yAxisConfig =\n Axis.custom\n { title = Title.atDataMax -10 -10 \"Rain\"\n , variable = Just << .rain\n , pixels = 450\n , range = Range.padded 20 20\n , axisLine = AxisLine.rangeFrame Colors.gray\n , ticks = Ticks.custom <| \\dataRange axisRange ->\n [ tickRain ( dataRange.min, \"bits\" )\n , tickRain ( middle dataRange, \"some\" )\n , tickRain ( dataRange.max, \"lots\" )\n ]\n }\n\n\n xAxisConfig : Axis.Config Datum Msg\n xAxisConfig =\n Axis.custom\n { title = Title.default \"Time\"\n , variable = Just << .time\n , pixels = 1270\n , range = Range.padded 20 20\n , axisLine = AxisLine.none\n , ticks = Ticks.timeCustom 10 tickTime\n }\n\n\n\n -- CHART CONFIG / AXES / TICKS\n\n\n tickRain : ( Float, String ) -> Tick.Config msg\n tickRain ( value, label ) =\n Tick.custom\n { position = value\n , color = Colors.gray\n , width = 1\n , length = 5\n , grid = True\n , direction = Tick.negative\n , label = Just (tickLabel label)\n }\n\n\n tickTime : Tick.Time -> Tick.Config msg\n tickTime time =\n let label = Tick.format time in\n Tick.custom\n { position = time.timestamp\n , color = Colors.gray\n , width = 1\n , length = 5\n , grid = False\n , direction = Tick.negative\n , label = Just (tickLabel label)\n }\n\n\n tickLabel : String -> Svg.Svg msg \n tickLabel =\n Junk.label Colors.black\n\n\n\n -- CHART CONFIG / CONTIANER \n\n\n containerConfig : Container.Config Msg \n containerConfig =\n Container.custom\n { attributesHtml = []\n , attributesSvg = []\n , size = Container.relative\n , margin = Container.Margin 30 180 30 70\n , id = \"line-chart-lines\"\n }\n\n\n\n -- CHART CONFIG / EVENTS \n\n\n eventsConfig : Events.Config Datum Msg \n eventsConfig =\n Events.custom\n [ Events.onMouseMove Hint Events.getNearest\n , Events.onMouseLeave (Hint Nothing)\n ]\n\n\n\n -- CHART CONFIG / LINE\n\n\n lineConfig : Maybe Datum -> Line.Config Datum\n lineConfig maybeHovered =\n Line.custom (toLineStyle maybeHovered)\n\n\n toLineStyle : Maybe Datum -> List Datum -> Line.Style\n toLineStyle maybeHovered lineData =\n case maybeHovered of\n Nothing ->\n Line.style 1 identity\n\n Just hovered ->\n if List.any ((==) hovered) lineData then\n Line.style 2 identity\n else\n Line.style 1 (Manipulate.grayscale)\n\n\n\n -- UTILS\n\n\n round10 : Float -> Float\n round10 float =\n toFloat (round (float * 10)) / 10\n\n\n middle : Coordinate.Range -> Float\n middle r =\n r.min + (r.max - r.min) / 2\n\n\n\n -- GENERATE DATA\n\n\n generateData : Cmd Msg\n generateData =\n let\n genNumbers min max =\n Random.list 10 (Random.float min max)\n\n compile a b c d e f =\n Data (toData a) (toData b) (toData c) (toData d) (toData e) (toData f)\n in\n Random.Pipeline.generate compile\n |> Random.Pipeline.with (genNumbers 50 90)\n |> Random.Pipeline.with (genNumbers 20 60)\n |> Random.Pipeline.with (genNumbers 30 60)\n |> Random.Pipeline.with (genNumbers 40 90)\n |> Random.Pipeline.with (genNumbers 80 100)\n |> Random.Pipeline.with (genNumbers 70 90)\n |> Random.Pipeline.send RecieveData\n\n\n toData : List Float -> List Datum\n toData numbers =\n let \n toDatum index rain = \n Datum (indexToTime index) rain \n in\n List.indexedMap toDatum numbers\n\n\n indexToTime : Int -> Time.Time\n indexToTime index =\n Time.hour * 24 * 365 * 30 + xInterval * toFloat index\n\n\n xInterval : Time.Time\n xInterval =\n Time.hour * 24 * 31\n\n\n\n -- PROGRAM \n\n\n main : Program Never Model Msg\n main =\n Html.program\n { init = init\n , update = update\n , view = view\n , subscriptions = always Sub.none\n }\n\n '; +var _user$project$Lines$source = '\n -- MODEL\n\n\n type alias Model =\n { data : Data\n , hinted : Maybe Datum\n }\n\n\n type alias Data =\n { denmark : List Datum\n , sweden : List Datum\n , iceland : List Datum\n , greenland : List Datum\n , norway : List Datum\n , finland : List Datum\n }\n\n\n type alias Datum =\n { time : Time.Time\n , rain : Float\n }\n\n\n\n -- INIT\n\n\n init : ( Model, Cmd Msg )\n init =\n ( { data = Data [] [] [] [] [] []\n , hinted = Nothing\n }\n , generateData\n )\n\n\n\n -- API\n\n\n setData : Data -> Model -> Model\n setData data model =\n { model | data = data }\n\n\n setHint : Maybe Datum -> Model -> Model\n setHint hinted model =\n { model | hinted = hinted }\n\n\n\n -- UPDATE\n\n\n type Msg\n = RecieveData Data\n | Hint (Maybe Datum)\n\n\n update : Msg -> Model -> ( Model, Cmd Msg )\n update msg model =\n case msg of\n RecieveData numbers ->\n model\n |> setData numbers\n |> addCmd Cmd.none\n\n Hint point ->\n model\n |> setHint point\n |> addCmd Cmd.none\n\n\n addCmd : Cmd Msg -> Model -> ( Model, Cmd Msg )\n addCmd cmd model =\n ( model, Cmd.none )\n\n\n\n -- VIEW\n\n\n view : Model -> Html.Html Msg\n view model =\n Html.div []\n [ LineChart.viewCustom (chartConfig model)\n [ LineChart.line (Manipulate.lighten 0.2 Colors.cyan) Dots.circle \"Denmark\" model.data.denmark\n , LineChart.line (Manipulate.lighten 0 Colors.cyan) Dots.circle \"Sweden\" model.data.sweden\n , LineChart.line (Manipulate.lighten 0.2 Colors.blue) Dots.circle \"Iceland\" model.data.iceland\n , LineChart.line (Manipulate.lighten 0 Colors.blue) Dots.circle \"Greenland\" model.data.greenland\n , LineChart.line (Manipulate.lighten 0 Colors.pink) Dots.circle \"Norway\" model.data.norway\n , LineChart.line (Manipulate.darken 0.2 Colors.pink) Dots.circle \"Finland\" model.data.finland\n ]\n ]\n\n\n\n -- CHART CONFIG\n\n\n chartConfig : Model -> LineChart.Config Datum Msg\n chartConfig model =\n { y = yAxisConfig\n , x = xAxisConfig\n , container = containerConfig\n , interpolation = Interpolation.monotone\n , intersection = Intersection.default\n , legends = Legends.default\n , events = eventsConfig\n , junk = Junk.default\n , grid = Grid.default\n , area = Area.default\n , line = lineConfig model.hinted\n , dots = Dots.custom (Dots.disconnected 4 2)\n }\n\n\n\n -- CHART CONFIG / AXES\n\n\n yAxisConfig : Axis.Config Datum Msg\n yAxisConfig =\n Axis.custom\n { title = Title.atDataMax -10 -10 \"Rain\"\n , variable = Just << .rain\n , pixels = 450\n , range = Range.padded 20 20\n , axisLine = AxisLine.rangeFrame Colors.gray\n , ticks = Ticks.custom <| \\dataRange axisRange ->\n [ tickRain ( dataRange.min, \"bits\" )\n , tickRain ( middle dataRange, \"some\" )\n , tickRain ( dataRange.max, \"lots\" )\n ]\n }\n\n\n xAxisConfig : Axis.Config Datum Msg\n xAxisConfig =\n Axis.custom\n { title = Title.default \"Time\"\n , variable = Just << .time\n , pixels = 1270\n , range = Range.padded 20 20\n , axisLine = AxisLine.none\n , ticks = Ticks.timeCustom 10 tickTime\n }\n\n\n\n -- CHART CONFIG / AXES / TICKS\n\n\n tickRain : ( Float, String ) -> Tick.Config msg\n tickRain ( value, label ) =\n Tick.custom\n { position = value\n , color = Colors.gray\n , width = 1\n , length = 5\n , grid = True\n , direction = Tick.negative\n , label = Just (tickLabel label)\n }\n\n\n tickTime : Tick.Time -> Tick.Config msg\n tickTime time =\n let label = Tick.format time in\n Tick.custom\n { position = time.timestamp\n , color = Colors.gray\n , width = 1\n , length = 5\n , grid = False\n , direction = Tick.negative\n , label = Just (tickLabel label)\n }\n\n\n tickLabel : String -> Svg.Svg msg\n tickLabel =\n Junk.label Colors.black\n\n\n\n -- CHART CONFIG / CONTIANER\n\n\n containerConfig : Container.Config Msg\n containerConfig =\n Container.custom\n { attributesHtml = []\n , attributesSvg = []\n , size = Container.relative\n , margin = Container.Margin 30 180 30 70\n , id = \"line-chart-lines\"\n }\n\n\n\n -- CHART CONFIG / EVENTS\n\n\n eventsConfig : Events.Config Datum Msg\n eventsConfig =\n Events.custom\n [ Events.onMouseMove Hint Events.getNearest\n , Events.onMouseLeave (Hint Nothing)\n ]\n\n\n\n -- CHART CONFIG / LINE\n\n\n lineConfig : Maybe Datum -> Line.Config Datum\n lineConfig maybeHovered =\n Line.custom (toLineStyle maybeHovered)\n\n\n toLineStyle : Maybe Datum -> List Datum -> Line.Style\n toLineStyle maybeHovered lineData =\n case maybeHovered of\n Nothing ->\n Line.style 1 identity\n\n Just hovered ->\n if List.any ((==) hovered) lineData then\n Line.style 2 identity\n else\n Line.style 1 (Manipulate.grayscale)\n\n\n\n -- UTILS\n\n\n round10 : Float -> Float\n round10 float =\n toFloat (round (float * 10)) / 10\n\n\n middle : Coordinate.Range -> Float\n middle r =\n r.min + (r.max - r.min) / 2\n\n\n\n -- GENERATE DATA\n\n\n generateData : Cmd Msg\n generateData =\n let\n genNumbers min max =\n Random.list 10 (Random.float min max)\n\n compile a b c d e f =\n Data (toData a) (toData b) (toData c) (toData d) (toData e) (toData f)\n in\n Random.Pipeline.generate compile\n |> Random.Pipeline.with (genNumbers 50 90)\n |> Random.Pipeline.with (genNumbers 20 60)\n |> Random.Pipeline.with (genNumbers 30 60)\n |> Random.Pipeline.with (genNumbers 40 90)\n |> Random.Pipeline.with (genNumbers 80 100)\n |> Random.Pipeline.with (genNumbers 70 90)\n |> Random.Pipeline.send RecieveData\n\n\n toData : List Float -> List Datum\n toData numbers =\n let\n toDatum index rain =\n Datum (indexToTime index) rain\n in\n List.indexedMap toDatum numbers\n\n\n indexToTime : Int -> Time.Time\n indexToTime index =\n Time.hour * 24 * 365 * 30 + xInterval * toFloat index\n\n\n xInterval : Time.Time\n xInterval =\n Time.hour * 24 * 31\n\n\n\n -- PROGRAM\n\n\n main : Program Never Model Msg\n main =\n Html.program\n { init = init\n , update = update\n , view = view\n , subscriptions = always Sub.none\n }\n\n '; var _user$project$Lines$xInterval = (_elm_lang$core$Time$hour * 24) * 31; var _user$project$Lines$indexToTime = function (index) { return (((_elm_lang$core$Time$hour * 24) * 365) * 30) + (_user$project$Lines$xInterval * _elm_lang$core$Basics$toFloat(index)); diff --git a/docs/src/Area.elm b/docs/src/Area.elm index 8b9e7e2..59f5e9d 100644 --- a/docs/src/Area.elm +++ b/docs/src/Area.elm @@ -108,8 +108,8 @@ addCmd cmd model = view : Model -> Html.Html Msg view model = - Html.div [] - [ LineChart.viewCustom (chartConfig model) + Html.div [] + [ LineChart.viewCustom (chartConfig model) [ LineChart.line Colors.pink Dots.diamond "Nora" model.data.nora , LineChart.line Colors.cyan Dots.circle "Noah" model.data.noah , LineChart.line Colors.blue Dots.triangle "Nina" model.data.nina @@ -190,9 +190,9 @@ generateData = toData : List Float -> List Datum toData numbers = - let - toDatum index velocity = - Datum (indexToTime index) velocity + let + toDatum index velocity = + Datum (indexToTime index) velocity in List.indexedMap toDatum numbers @@ -205,7 +205,7 @@ indexToTime index = --- PROGRAM +-- PROGRAM main : Program Never Model Msg @@ -219,10 +219,10 @@ main = --- SOURCE +-- SOURCE -source : String +source : String source = """ -- MODEL @@ -281,9 +281,9 @@ source = toData : List Float -> List Datum toData numbers = - let - toDatum index velocity = - Datum (indexToTime index) velocity + let + toDatum index velocity = + Datum (indexToTime index) velocity in List.indexedMap toDatum numbers @@ -334,8 +334,8 @@ source = view : Model -> Html.Html Msg view model = - Html.div [] - [ LineChart.viewCustom (chartConfig model) + Html.div [] + [ LineChart.viewCustom (chartConfig model) [ LineChart.line Colors.pink Dots.diamond "Nora" model.data.nora , LineChart.line Colors.cyan Dots.circle "Noah" model.data.noah , LineChart.line Colors.blue Dots.triangle "Nina" model.data.nina @@ -396,7 +396,7 @@ source = - -- PROGRAM + -- PROGRAM main : Program Never Model Msg @@ -409,4 +409,4 @@ source = } - """ \ No newline at end of file + """ diff --git a/docs/src/Lines.elm b/docs/src/Lines.elm index f4e440d..1e38825 100644 --- a/docs/src/Lines.elm +++ b/docs/src/Lines.elm @@ -116,8 +116,8 @@ addCmd cmd model = view : Model -> Html.Html Msg view model = - Html.div [] - [ LineChart.viewCustom (chartConfig model) + Html.div [] + [ LineChart.viewCustom (chartConfig model) [ LineChart.line (Manipulate.lighten 0.2 Colors.cyan) Dots.circle "Denmark" model.data.denmark , LineChart.line (Manipulate.lighten 0 Colors.cyan) Dots.circle "Sweden" model.data.sweden , LineChart.line (Manipulate.lighten 0.2 Colors.blue) Dots.circle "Iceland" model.data.iceland @@ -147,10 +147,10 @@ chartConfig model = , line = lineConfig model.hinted , dots = Dots.custom (Dots.disconnected 4 2) } - --- CHART CONFIG / AXES + +-- CHART CONFIG / AXES yAxisConfig : Axis.Config Datum Msg @@ -212,16 +212,16 @@ tickTime time = } -tickLabel : String -> Svg.Svg msg +tickLabel : String -> Svg.Svg msg tickLabel = Junk.label Colors.black --- CHART CONFIG / CONTIANER +-- CHART CONFIG / CONTIANER -containerConfig : Container.Config Msg +containerConfig : Container.Config Msg containerConfig = Container.custom { attributesHtml = [] @@ -233,10 +233,10 @@ containerConfig = --- CHART CONFIG / EVENTS +-- CHART CONFIG / EVENTS -eventsConfig : Events.Config Datum Msg +eventsConfig : Events.Config Datum Msg eventsConfig = Events.custom [ Events.onMouseMove Hint Events.getNearest @@ -305,9 +305,9 @@ generateData = toData : List Float -> List Datum toData numbers = - let - toDatum index rain = - Datum (indexToTime index) rain + let + toDatum index rain = + Datum (indexToTime index) rain in List.indexedMap toDatum numbers @@ -323,7 +323,7 @@ xInterval = --- PROGRAM +-- PROGRAM main : Program Never Model Msg @@ -341,7 +341,7 @@ main = -- SOURCE -source : String +source : String source = """ -- MODEL @@ -430,8 +430,8 @@ source = view : Model -> Html.Html Msg view model = - Html.div [] - [ LineChart.viewCustom (chartConfig model) + Html.div [] + [ LineChart.viewCustom (chartConfig model) [ LineChart.line (Manipulate.lighten 0.2 Colors.cyan) Dots.circle "Denmark" model.data.denmark , LineChart.line (Manipulate.lighten 0 Colors.cyan) Dots.circle "Sweden" model.data.sweden , LineChart.line (Manipulate.lighten 0.2 Colors.blue) Dots.circle "Iceland" model.data.iceland @@ -461,10 +461,10 @@ source = , line = lineConfig model.hinted , dots = Dots.custom (Dots.disconnected 4 2) } - - -- CHART CONFIG / AXES + + -- CHART CONFIG / AXES yAxisConfig : Axis.Config Datum Msg @@ -526,16 +526,16 @@ source = } - tickLabel : String -> Svg.Svg msg + tickLabel : String -> Svg.Svg msg tickLabel = Junk.label Colors.black - -- CHART CONFIG / CONTIANER + -- CHART CONFIG / CONTIANER - containerConfig : Container.Config Msg + containerConfig : Container.Config Msg containerConfig = Container.custom { attributesHtml = [] @@ -547,10 +547,10 @@ source = - -- CHART CONFIG / EVENTS + -- CHART CONFIG / EVENTS - eventsConfig : Events.Config Datum Msg + eventsConfig : Events.Config Datum Msg eventsConfig = Events.custom [ Events.onMouseMove Hint Events.getNearest @@ -619,9 +619,9 @@ source = toData : List Float -> List Datum toData numbers = - let - toDatum index rain = - Datum (indexToTime index) rain + let + toDatum index rain = + Datum (indexToTime index) rain in List.indexedMap toDatum numbers @@ -637,7 +637,7 @@ source = - -- PROGRAM + -- PROGRAM main : Program Never Model Msg @@ -649,4 +649,4 @@ source = , subscriptions = always Sub.none } - """ \ No newline at end of file + """ diff --git a/docs/src/Random/Pipeline.elm b/docs/src/Random/Pipeline.elm index 9758eac..5a68ff5 100644 --- a/docs/src/Random/Pipeline.elm +++ b/docs/src/Random/Pipeline.elm @@ -22,4 +22,4 @@ with = {-| -} send : (a -> msg) -> (Random.Generator a) -> Cmd msg send = - Random.generate \ No newline at end of file + Random.generate diff --git a/elm-package.json b/elm-package.json index 5ece7db..65de4ca 100644 --- a/elm-package.json +++ b/elm-package.json @@ -4,7 +4,8 @@ "repository": "https://github.com/user/project.git", "license": "BSD3", "source-directories": [ - "./src" + "./src", + "./docs/src" ], "exposed-modules": [ "LineChart",