Class MenuItem

Hierarchy

Constructors

Properties

#m_timers: Map<string, Function>
m_action: Action
m_isOpen: boolean
m_menu: Menu
m_props: MenuItemProps

Accessors

  • get dom(): HTMLElement
  • return the DOM associated with the Component (if any)

    Returns HTMLElement

Methods

  • Parameters

    • ev: MouseEvent

    Returns void

  • Parameters

    • ev: MouseEvent

    Returns void

  • a some classnames to the component classes can be separated by a space

    Example

    addClass( 'my class name @flex' );
    

    Parameters

    • name: string

    Returns void

  • emit an event you can stop propagation of event or prevent default

    Type Parameters

    • K extends keyof MenuItemEventMap

    Parameters

    • type: K
    • Optional event: MenuItemEventMap[K]

      event data

    Returns void

  • enum all children recursively

    Parameters

    • cb: ((child) => boolean | void)

      callback return true to stop enumeration

    • recursive: boolean = false

      if true do a full sub-child search

    Returns boolean

  • get an attribute value

    Example

    let chk = el.getAttribute( 'checked' );
    @review double cache

    Parameters

    • name: string

      attribute name

    Returns string

    attribute value

  • Example

    let rc = el.getBoundingRect( );
    console.log( rc.left, rc.top, rc.right, rc.bottom );

    Parameters

    • withMargins: boolean = false

    Returns Rect

    the bounding rectangle

  • check if the element has an attribute

    Example

    if( el.hasAttribute('checked') ) {
    }

    Parameters

    • name: string

      attribute name

    Returns boolean

    true is attribute is present

  • stop listening to an event

    Type Parameters

    • K extends keyof MenuItemEventMap

    Parameters

    • type: K
    • callback: ((ev) => any)

      callback to remove (must be the same as in on )

        • (ev): any
        • Parameters

          • ev: MenuItemEventMap[K]

          Returns any

    Returns void

  • listen for an event

    Type Parameters

    • K extends keyof MenuItemEventMap

    Parameters

    • type: K
    • callback: ((ev) => any)

      callback to call

        • (ev): any
        • Parameters

          • ev: MenuItemEventMap[K]

          Returns any

    Returns EventDisposer

  • handle an event one time

    Type Parameters

    • K extends keyof MenuItemEventMap

    Parameters

    • type: K
    • callback: ((ev) => any)

      callback to call when event is signaled

        • (ev): any
        • Parameters

          • ev: MenuItemEventMap[K]

          Returns any

    Returns void

    Promise if callback is null

    take care with that because if the event is never fired and you await it, the system may overflow

  • Remove a class from the element

    Example

    el.removeClass( 'myclass' );
    el.removeClass( 'myclass1 myclass2' );

    Parameters

    • name: string

      classes in string form can be space separated

    Returns void

  • ensure the component is visible @param: alignToTop

    Parameters

    • Optional arg: boolean | ScrollIntoViewOptions

    Returns void

  • set the Component data value

    Parameters

    • name: string | Symbol

      name to get

    • value: any

    Returns void

  • append a new dom event handler

    Example

    this.setDomEvent( 'drag drop', this._handleDrag, this );
    this.setDomEvent( 'dblclick', this._handleDblClick, this );

    Type Parameters

    Parameters

    • type: K
    • listener: ((this, ev) => void)
        • (this, ev): void
        • Parameters

          Returns void

    • Optional passive: boolean

    Returns void

  • change the object style

    Example

    el.setStyle( {left:100} );
    

    Parameters

    • style: object

      style to add

    Returns void

  • change a style value

    Parameters

    • name: string

      string style nale

    • value: any

      any style value or null to remove style

    Returns void

  • signal en event signaled event are notification : no way to prevent default not stop propagation

    Type Parameters

    • K extends keyof MenuItemEventMap

    Parameters

    • type: K
    • event: MenuItemEventMap[K]

      event data

    • delay: number = -1

    Returns void

  • start a new timer

    Parameters

    • name: string

      timer name

    • timeout: number

      time out in ms

    • repeat: boolean = true

      if true this is an auto repeat timer

    • callback: TimerCallback = null

      if !null, the callback to call else a EvTimer is fired

    Returns void

  • Toggle a class from the element (if present remove, if absent add)

    Example

    el.toggleClass( 'myclass' );
    el.toggleClass( 'myclass1 myclass2');
    el.toggleClass( ['myclass1','myclass2']);

    Parameters

    • name: string

      classes in string form can be space separated

    Returns void

  • get a component from a DOM element move up to the hierarchy to find the request class type.

    Example

    with a DOM like that:
    Button
    Label
    Icon <- the DOM you have (dom-icon)

    let btn = Component.getElement( dom-icon, Button );

    Type Parameters

    Parameters

    • dom: Element | HTMLElement
    • Optional classname: string | Constructor<T>

    Returns T

  • capture mouse events

    Example

    Component.setCapture( this, ( ev: MouseEvent, initiator: Component ) => {
    if( ev.type=='mousemove' ) {
    this.setStyle( {
    left: ev.clientX,
    top: ev.clientY
    } );
    }
    else if( ev.type=='mouseup' ) {
    Component.releaseCapture( );
    }
    } );

    Parameters

    Returns void

Generated using TypeDoc