module LinkedIn.JobsUnifiedTopCard where import Prelude import Control.Monad.Error.Class (throwError) import Data.Foldable (class Foldable, foldMap, foldlDefault, foldrDefault) import Data.Generic.Rep (class Generic) import Data.Lens (Lens, Lens', Prism', lens', prism', toListOf, traversed, view) import Data.Lens.Record (prop) import Data.List.Types (NonEmptyList) import Data.Maybe (Maybe(..)) import Data.Show.Generic (genericShow) import Data.Traversable (class Traversable, sequence, traverse, traverseDefault) import Data.Tuple (Tuple(..)) import LinkedIn.QueryRunner (QueryError(..), QueryRunner, chooseOne, chooseOne3, ignoreNotFound, queryAll, queryOne, queryText) import Type.Proxy (Proxy(..)) import Web.DOM (Node) import Web.DOM.Node as N data JobsUnifiedTopCardElement a = JobsUnifiedTopCardElement { header :: a, primaryDescription :: TopCardPrimaryDescription a, insights :: Maybe (NonEmptyList (TopCardInsight a)), actions :: Maybe (NonEmptyList (TopCardAction a)) } data TopCardPrimaryDescription a = TopCardPrimaryDescription { link :: a, text :: a, tvmText :: Maybe (NonEmptyList a) } data TopCardInsight a = TopCardInsight { icon :: a, content :: TopCardInsightContent a } data TopCardInsightContent a = TopCardInsightContentSingle a | TopCardInsightContentSecondary {primary :: a, secondary :: NonEmptyList (TopCardSecondaryInsight a)} | TopCardInsightContentButton a data TopCardSecondaryInsight a = TopCardSecondaryInsightNested a | TopCardSecondaryInsightPlain a -- External application :