module Debate.Helpers exposing (..) import Config.Colour as T exposing (..) import Config.Format as O exposing (..) import Debate.Types exposing (..) import Effect exposing (Effect) import Element exposing (..) import Element.Border as D exposing (..) import Element.Events as V exposing (..) import Element.Font as F import Html import Html.Attributes as H exposing (style, title, wrap) import Layouts import Page exposing (Page) import Route exposing (Route) import Shared import View exposing (View) argumentMaker : Argument -> Element msg argumentMaker argument = let argRows : List (Element msg) argRows = let argumentFormatting = [ centerX, F.center, spacing 3 ] in List.indexedMap (\index argumentEntry -> column (paragraphFormat ++ [ spacing 3, paddingEach { top = 30, right = 0, bottom = 0, left = 0 } ]) (List.indexedMap (\premiseIndex premiseWithNotation -> column argumentFormatting [ paragraph paragraphHightlightedBoldText [ text ("P" ++ String.fromInt (premiseIndex + 1) ++ ") ") , text premiseWithNotation.premise |> el [ F.color colourTheme.nonHighlightedText, F.regular ] ] , paragraph argumentFormatting [ text premiseWithNotation.notation |> el [ F.color colourTheme.highlightText, F.bold ] ] ] ) argumentEntry.premises ++ [ column argumentFormatting [ paragraph paragraphHightlightedBoldText [ text ("C" ++ String.fromInt (index + 1) ++ ") ") , text argumentEntry.conclusion |> el [ F.color colourTheme.nonHighlightedText, F.regular ] ] , paragraph argumentFormatting [ text argumentEntry.conclusionNotation |> el [ F.color colourTheme.highlightText, F.bold ] ] ] ] ) ) argument.argumentFormalization maybeReductioField = case argument.propositionReductio of "" -> none reductio -> paragraph (paragraphBoldFormat ++ [ F.size 18 ]) [ text "Reductio: " |> el [ F.color colourTheme.highlightText ] , text reductio |> el [ F.color colourTheme.nonHighlightedText, F.regular, F.size 16 ], text " Ⓘ" -- create a tooltip for this in the future ] in column [ paragraphWidth, alignLeft, spacing 8, paddingEach { top = 0, right = 0, bottom = 60, left = 0 } ] [ paragraph (paragraphBoldFormat ++ [ F.size 20 ]) [ newTabLink [] { url = argument.proofLink , label = transitionNonHighlightedLinkHover <| text argument.argumentTitle } --create expandable text for this in the future ] , paragraph (paragraphBoldFormat ++ [ F.size 18 ]) [ text "Proposition: " |> el [ F.color colourTheme.highlightText ] , text argument.propositionTitle |> el [ F.color colourTheme.nonHighlightedText, F.regular, F.size 16 ] ] , maybeReductioField , paragraph (paragraphBoldFormat ++ [ F.size 18 ]) [ text "Summary: " |> el [ F.color colourTheme.highlightText ] , text argument.propositionSummary |> el [ F.color colourTheme.nonHighlightedText, F.regular, F.size 16 ] ] , wrappedRow (paragraphBoldFormat ++ [ alignLeft ]) [ Element.table [ spacing 0 , D.rounded 10 , D.width 1 , D.color colourTheme.nonHighlightedDarkText , clip ] { data = argument.definitionTable , columns = [ { header = el [ F.bold , D.widthEach { bottom = 1, top = 1, left = 1, right = 1 } , D.color colourTheme.nonHighlightedDarkText , padding 8 ] (text "Definiendum" |> el [ F.color colourTheme.highlightText ]) , width = fill |> maximum 50 , view = \definition -> row [ F.color colourTheme.highlightText , F.bold , D.widthEach { bottom = 1, top = 0, left = 1, right = 1 } , D.color colourTheme.nonHighlightedDarkText , padding 8 , Element.height fill ] [ row [ centerX ] [ paragraph [] [ text definition.definiendum ] ] ] } , { header = el [ F.bold , D.widthEach { bottom = 1, top = 1, left = 0, right = 1 } , D.color colourTheme.nonHighlightedDarkText , padding 8 ] (text "Definiens" |> el [ F.color colourTheme.highlightText ]) , width = fill , view = \definition -> paragraph [ F.color colourTheme.nonHighlightedText , F.regular , D.widthEach { bottom = 1, top = 0, left = 0, right = 1 } , D.color colourTheme.nonHighlightedDarkText , padding 8 , Element.height fill ] [ row [] [ paragraph [] [ text definition.definiens ] ] ] } ] } ] , column [ centerX ] argRows ]