Example #1
0
export default function intent(domSource: DOMSource): Stream<ZapSpeed> {
  return xs.merge(
    domSource.select('.slowSpeedButton').events('click').mapTo('slow' as ZapSpeed),
    domSource.select('.normalSpeedButton').events('click').mapTo('normal' as ZapSpeed),
    domSource.select('.fastSpeedButton').events('click').mapTo('fast' as ZapSpeed),
  );
}
Example #2
0
export default function TeamIntent(DOM : DOMSource) : Stream<Reducer> {
  const teamMemberClick$ = DOM.select('.team-member').events('click')
  const teamMemberBioAnimationEnd$ = DOM.select('.team-member > p').events('animationend')

  const startTeamMemberBioAnimation$ = teamMemberClick$.map(ev => buildStartTeamMemberBioAnimationReducer(ev))
  const finishTeamMemberBioAnimation$ = teamMemberBioAnimationEnd$.map(ev => buildFinishTeamMemberBioAnimationReducer(ev))

  return xs.merge<Reducer>(
    startTeamMemberBioAnimation$,
    finishTeamMemberBioAnimation$
  )
}
Example #3
0
export function routes(DOM: DOMSource): Stream<string> {
    return DOM.select('[data-navigate]').events('click').map(e => {
        const he = e.target as HTMLElement
        const route = he.dataset.navigate as string
        return `/${route}`
    })
}
Example #4
0
export function speech(DOM: DOMSource): Stream<string> {
    return DOM.select('[data-speech]').events('click').map(e => {
        const he = e.target as HTMLElement
        const value = he.dataset.speech as string
        const text = he.textContent ? he.textContent : ''
        const speech = value === '<text>' ? text : value
        return speech
    })
}
Example #5
0
export default function EventIntent(DOM : DOMSource) : Stream<Reducer> {
  const eventDescriptionClick$ = DOM.select('.event-description').events('click')
  const eventDescriptionAnimationEnd$ = DOM.select('.event-description > p').events('animationend')

  const startEventDescriptionAnimation$ = eventDescriptionClick$.map(ev => buildStartEventDescriptionAnimationReducer(ev))
  const finishEventDescriptionAnimation$ = eventDescriptionAnimationEnd$.map(ev => buildFinishEventDescriptionAnimationReducer(ev))

  const speakerClick$ = DOM.select('.speaker').events('click')
  const speakerBioAnimationEnd$ = DOM.select('.speaker > p').events('animationend')

  const startSpeakerBioAnimation$ = speakerClick$.map(ev => buildStartSpeakerBioAnimationReducer(ev))
  const finishSpeakerBioAnimation$ = speakerBioAnimationEnd$.map(ev => buildFinishSpeakerBioAnimationReducer(ev))

  return xs.merge<Reducer>(
    startEventDescriptionAnimation$,
    finishEventDescriptionAnimation$,
    startSpeakerBioAnimation$,
    finishSpeakerBioAnimation$
  )
}
Example #6
0
export function logout(DOM: DOMSource): Stream<Logout> {
    return DOM.select('[data-action="logout"]')
        .events('click')
        .mapTo({ action: 'logout' } as Logout)
}