Options
All
  • Public
  • Public/Protected
  • All
Menu

Module stream$

Index

Classes

Type aliases

Functions

Type aliases

AttributeType

AttributeType: number | string | boolean | {}

Type alias for attributes in VirtualDOM

Functions

Let attr$

  • attr$<TDomain, TDom>(stream$: Observable<TDomain>, vDomMap: (TDomain: any, ...args: any[]) => TDom, __namedParameters?: { sideEffects?: (TDomain: any, HTMLElement: any) => void; untilFirst?: TDom; wrapper?: (TDom: any) => TDom }): Stream$<TDomain, TDom>
  • Type specialization of stream$ for TDom = AttributeType

    let domain$ : Observable<{name:string}>
    
    let vDOM = {
         tag: 'div', 
         innerText: attr$( 
             domain$,
             ({name}) => name,
             {   wrapper: (name) => 'Hello '+ name,
                 sideEffects: (vDom, htmlElem) => console.log(vDom, htmlElem),
                 untilFirst: 'No name available yet'
             }
         )
    }
    

    Type parameters

    Parameters

    • stream$: Observable<TDomain>
    • vDomMap: (TDomain: any, ...args: any[]) => TDom
        • (TDomain: any, ...args: any[]): TDom
        • Parameters

          • TDomain: any
          • Rest ...args: any[]

          Returns TDom

    • __namedParameters: { sideEffects?: (TDomain: any, HTMLElement: any) => void; untilFirst?: TDom; wrapper?: (TDom: any) => TDom } = ...
      • Optional sideEffects?: (TDomain: any, HTMLElement: any) => void
          • (TDomain: any, HTMLElement: any): void
          • Parameters

            • TDomain: any
            • HTMLElement: any

            Returns void

      • Optional untilFirst?: TDom
      • Optional wrapper?: (TDom: any) => TDom
          • (TDom: any): TDom
          • Parameters

            • TDom: any

            Returns TDom

    Returns Stream$<TDomain, TDom>

Let child$

  • child$<TDomain, TDom>(stream$: Observable<TDomain>, vDomMap: (TDomain: any, ...args: any[]) => TDom, __namedParameters?: { sideEffects?: (TDomain: any, HTMLElement: any) => void; untilFirst?: TDom; wrapper?: (TDom: any) => TDom }): Stream$<TDomain, TDom>
  • Type specialization of stream$ for TDom = VirtualDOM

    let domain$ : Observable<{name:string}>
    
    let vDOM = {
         tag: 'div', 
         children:[ 
             child$( 
                 domain$,
                 ({name}) => ({innerText: 'Hello '+ name}),
                 {   sideEffects: (vDom, htmlElem) => console.log(vDom, htmlElem),
                     untilFirst: ({innerText: 'No name available yet'})
                 }
             )
        )
    }
    

    Type parameters

    Parameters

    • stream$: Observable<TDomain>
    • vDomMap: (TDomain: any, ...args: any[]) => TDom
        • (TDomain: any, ...args: any[]): TDom
        • Parameters

          • TDomain: any
          • Rest ...args: any[]

          Returns TDom

    • __namedParameters: { sideEffects?: (TDomain: any, HTMLElement: any) => void; untilFirst?: TDom; wrapper?: (TDom: any) => TDom } = ...
      • Optional sideEffects?: (TDomain: any, HTMLElement: any) => void
          • (TDomain: any, HTMLElement: any): void
          • Parameters

            • TDomain: any
            • HTMLElement: any

            Returns void

      • Optional untilFirst?: TDom
      • Optional wrapper?: (TDom: any) => TDom
          • (TDom: any): TDom
          • Parameters

            • TDom: any

            Returns TDom

    Returns Stream$<TDomain, TDom>

Let children$

  • children$<TDomain, TDom>(stream$: Observable<TDomain>, vDomMap: (TDomain: any, ...args: any[]) => TDom, __namedParameters?: { sideEffects?: (TDomain: any, HTMLElement: any) => void; untilFirst?: TDom; wrapper?: (TDom: any) => TDom }): Stream$<TDomain, TDom>
  • Type specialization of stream$ for TDom = Array<VirtualDOM>

    let domain$ : Observable<{name:string}>
    
    let vDOM = {
         tag: 'div', 
         children: children(
             domains$,
             ({name}) => [{innerText: 'Hello'}, {innerText: name}),
              {   sideEffects: (vDom, htmlElem) => console.log(vDom, htmlElem),
                  untilFirst: []
              }
         )
    }
    

    Type parameters

    Parameters

    • stream$: Observable<TDomain>
    • vDomMap: (TDomain: any, ...args: any[]) => TDom
        • (TDomain: any, ...args: any[]): TDom
        • Parameters

          • TDomain: any
          • Rest ...args: any[]

          Returns TDom

    • __namedParameters: { sideEffects?: (TDomain: any, HTMLElement: any) => void; untilFirst?: TDom; wrapper?: (TDom: any) => TDom } = ...
      • Optional sideEffects?: (TDomain: any, HTMLElement: any) => void
          • (TDomain: any, HTMLElement: any): void
          • Parameters

            • TDomain: any
            • HTMLElement: any

            Returns void

      • Optional untilFirst?: TDom
      • Optional wrapper?: (TDom: any) => TDom
          • (TDom: any): TDom
          • Parameters

            • TDom: any

            Returns TDom

    Returns Stream$<TDomain, TDom>

stream$

  • stream$<TDomain, TDom>(stream$: Observable<TDomain>, vDomMap: (TDomain: any, ...args: any[]) => TDom, __namedParameters?: { sideEffects?: (TDomain: any, HTMLElement: any) => void; untilFirst?: TDom; wrapper?: (TDom: any) => TDom }): Stream$<TDomain, TDom>
  • Create a stream of DOM understable element (attribute, child or children) from a RxJS observable. It is most of the times called indirectly using attr$, child$ or children$.

    Type parameters

    Parameters

    • stream$: Observable<TDomain>

      domain's data stream defined as a RxJS observable

    • vDomMap: (TDomain: any, ...args: any[]) => TDom

      function that convert the domain's data to a vDOM attribute:

        • (TDomain: any, ...args: any[]): TDom
        • Parameters

          • TDomain: any
          • Rest ...args: any[]

          Returns TDom

    • __namedParameters: { sideEffects?: (TDomain: any, HTMLElement: any) => void; untilFirst?: TDom; wrapper?: (TDom: any) => TDom } = ...
      • Optional sideEffects?: (TDomain: any, HTMLElement: any) => void

        is a function that provides a handle to execute side effects once the attribute/child as been set/added; both the domain's data and the rendered HTMLElement are provided to this function. For instance, a use case would be to focus an input after being dynamically added to the DOM.

          • (TDomain: any, HTMLElement: any): void
          • Parameters

            • TDomain: any
            • HTMLElement: any

            Returns void

      • Optional untilFirst?: TDom

        is the data that will be used until the first emitted element in stream$ is obtained. If not provided, the attribute/child does not exist until first emission. In such case, using a BehaviorSubject of RxJS (observable that directly emit a predifined value) is an alternative that can also be used.

      • Optional wrapper?: (TDom: any) => TDom

        is a function that is used to alter the data returned by vDomMap. It is often used to factorize part of the viewMap function that are 'constant' with respect to the data in $stream$*

          • (TDom: any): TDom
          • Parameters

            • TDom: any

            Returns TDom

    Returns Stream$<TDomain, TDom>

    a stream usable in VirtualDOM

Generated using TypeDoc