| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- module LinkedIn.ArtDecoCard where
- import Prelude
- import Data.Foldable (class Foldable, foldMap, foldlDefault, foldrDefault)
- import Data.Generic.Rep (class Generic)
- import Data.List (List)
- import Data.List.Types (NonEmptyList)
- import Data.Maybe (Maybe)
- import Data.Show.Generic (genericShow)
- import Data.Traversable (class Traversable, sequence, traverseDefault)
- import LinkedIn.ArtDeco (ArtDecoPvsEntity, queryArtDecoPvsEntity)
- import LinkedIn.ArtDeco as AD
- import LinkedIn.QueryRunner (QueryRunner)
- import Web.DOM (Node)
- data ArtDecoCardElement a = ArtDecoCardElement {
- pvs_entity :: ArtDecoPvsEntity a
- }
- derive instance Generic (ArtDecoCardElement a) _
- derive instance Eq a => Eq (ArtDecoCardElement a)
- instance Show a => Show (ArtDecoCardElement a) where
- show = genericShow
- derive instance Functor ArtDecoCardElement
- instance Foldable ArtDecoCardElement where
- foldMap f (ArtDecoCardElement {pvs_entity}) = foldMap f pvs_entity
- foldl = \x -> foldlDefault x
- foldr = \x -> foldrDefault x
- instance Traversable ArtDecoCardElement where
- sequence (ArtDecoCardElement {pvs_entity}) = ado
- p <- sequence pvs_entity
- in ArtDecoCardElement {pvs_entity: p}
- traverse = \x -> traverseDefault x
- queryArtDecoCard :: QueryRunner (ArtDecoCardElement Node)
- queryArtDecoCard n = do
- pvs <- queryArtDecoPvsEntity ":scope div.pvs-entity--padded" n
- pure $ ArtDecoCardElement {pvs_entity: pvs}
- toCenterContent ∷ forall a. ArtDecoCardElement a → List a
- toCenterContent = toPvsEntity >>> AD.toCenterContent
- toHeaderBold ∷ forall a. ArtDecoCardElement a → a
- toHeaderBold = toPvsEntity >>> AD.toHeaderBold
- toHeaderLight ∷ forall a. ArtDecoCardElement a → Maybe (NonEmptyList a)
- toHeaderLight = toPvsEntity >>> AD.toHeaderLight
- toHeaderNormal ∷ forall a. ArtDecoCardElement a → Maybe a
- toHeaderNormal = toPvsEntity >>> AD.toHeaderNormal
- toPvsEntity ∷ forall a. ArtDecoCardElement a → ArtDecoPvsEntity a
- toPvsEntity (ArtDecoCardElement { pvs_entity }) = pvs_entity
|