module LinkedIn.UI.Components.JobsUnifiedTopCard where import Prelude import Control.Alt ((<|>)) import Control.Monad.Error.Class (throwError) import Data.Foldable (class Foldable, foldMap, foldlDefault, foldrDefault) import Data.Generic.Rep (class Generic) import Data.Lens (Lens', Prism', Traversal', lens', prism', traversed, view) import Data.Lens.Record (prop) import Data.List.Types (List, NonEmptyList) import Data.Maybe (Maybe(..)) import Data.Show.Generic (genericShow) import Data.Traversable (class Traversable, sequence, traverseDefault) import Data.Tuple (Tuple(..)) import LinkedIn.CanBeQueried (class CanBeQueried, subQueryNEL, subQueryList, subQueryOne) import LinkedIn.QueryRunner (QueryError(..), queryList, queryOne, querySelf, queryText) import LinkedIn.Queryable (class Queryable, toNode) import Type.Proxy (Proxy(..)) import Web.DOM.Node as N data JobsUnifiedTopCardElement a = JobsUnifiedTopCardElement { header :: a, primaryDescription :: TopCardPrimaryDescription a, insights :: List (TopCardInsight a), actions :: List (TopCardAction a) } data TopCardPrimaryDescription a = TopCardPrimaryDescription { link :: a, text :: a, tvmText :: List 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 :