module LinkedIn.JobsUnifiedTopCard where import Control.Alt import Prelude import Data.Either (Either(..), hush) import Data.Generic.Rep (class Generic) import Data.List.Types (NonEmptyList(..)) import Data.Maybe (Maybe(..)) import Data.Show.Generic (genericShow) import Debug (trace) import LinkedIn (DetachedNode(..)) import LinkedIn.Types (ParseError(..), Parser) import LinkedIn.Utils (detachNonEmptyTextChild, parseDetachedNode, queryAndDetachMany, queryAndDetachOne, queryManyAndParse, queryOneAndParse) data JobsUnifiedTopCardElement = JobsUnifiedTopCardElement { header :: DetachedNode, primaryDescription :: Maybe TopCardPrimaryDescription, insights :: Maybe (NonEmptyList TopCardInsight), actions :: Maybe (NonEmptyList TopCardAction) } data TopCardPrimaryDescription = TopCardPrimaryDescription { link :: DetachedNode, text :: DetachedNode, tvmText :: Maybe (NonEmptyList DetachedNode) } data TopCardInsight = TopCardInsight { icon :: DetachedNode, content :: TopCardInsightContent } data TopCardInsightContent = TopCardInsightContentSingle DetachedNode | TopCardInsightContentSecondary {primary :: DetachedNode, secondary :: NonEmptyList TopCardSecondaryInsight} | TopCardInsightContentButton DetachedNode data TopCardSecondaryInsight = TopCardSecondaryInsightNested DetachedNode | TopCardSecondaryInsightPlain DetachedNode -- External application :