Options
All
  • Public
  • Public/Protected
  • All
Menu

Class Popup<TStyles, TOptions, TProps, TChildren>

The Popup class allows displaying modal and modeless popups. This is the base class for dialogs and message boxes. After the Popup instance is created it can be shown either as modal or modeless popup. Both types of the popup can be closed using the close() method. In order for the popup to be closed "from inside" - that is, by the component, which is used as the popup content - the popup object should be passed to this component.

The Popup class itself doesn't provide any means for the user to start moving it around; however, it allows initiating the move action using the startMove() method. Once this method is called, the Popup will start monitoring mouse (pointer) activity and move the dialog accordingly.

The content of the popup can be replaced while it is being displayed using the setContent() method.

Type parameters

  • TStyles: IPopupStyles

    Type of the style definition class used to specify CSS styles for the component. Must implement the IPopupStyles interface.

  • TOptions: IPopupOptions<TStyles>

    Type of the object used to specify options for the component. Must implement the IPopupOptions interface.

  • TProps

  • TChildren

Hierarchy

Implements

Index

Constructors

constructor

  • new Popup(content?: any, options?: TOptions): Popup
  • Popup is constructed by specifying the initial content it should display and the options

    Parameters

    • Optional content: any
    • Optional options: TOptions

    Returns Popup

Properties

Protected content

content: any

Protected defaultStyles

defaultStyles: TStyles

Protected optionalStyles

optionalStyles: TStyles

Protected options

options: TOptions

Readonly props

props: CompProps<TProps, TChildren>

Component properties passed to the constructor. This is normally used only by managed components and is usually undefined for independent coponents.

vn

Remembered virtual node object through which the component can request services. This is undefined in the component's costructor but will be defined before the call to the (optional) willMount method.

Accessors

events

  • Events that can be fired by the Popup component

    Returns MultiEventSlot<IPopupEvents>

isMounted

  • get isMounted(): boolean
  • Determines whether the component is currently mounted. If a component has asynchronous functionality (e.g. fetching data from a server), component's code may be executed after it was alrady unmounted. This property allows the component to handle this situation.

    Returns boolean

isOpen

  • get isOpen(): boolean
  • Determines whether the popup is currently open.

    Returns boolean

isVisible

  • get isVisible(): boolean
  • set isVisible(v: boolean): void
  • Gets or sets the flag determining whether the popup is currently visible or hidden.

    Returns boolean

  • Gets or sets the flag determining whether the popup is currently visible or hidden.

    Parameters

    • v: boolean

    Returns void

returnValue

  • get returnValue(): any
  • Returns the value set by the close() method. If the popup is open, the value is undefined.

    Returns any

Methods

Protected callMeAfterUpdate

  • Schedules the given function to be called after all components scheduled to be updated in the Mimbl tick have already been updated.

    Parameters

    • func: ScheduledFuncType

      Function to be called

    • Optional funcThisArg: any

      Object that will be used as "this" value when the function is called. If this parameter is undefined, the component instance will be used (which allows scheduling regular unbound components' methods). This parameter will be ignored if the the function is already bound or is an arrow function.

    Returns void

Protected callMeBeforeUpdate

  • Schedules the given function to be called before any components scheduled to be updated in the Mimbl tick are updated.

    Parameters

    • func: ScheduledFuncType

      Function to be called

    • Optional funcThisArg: any

      Object that will be used as "this" value when the function is called. If this parameter is undefined, the component instance will be used (which allows scheduling regular unbound components' methods). This parameter will be ignored if the function is already bound or is an arrow function.

    Returns void

close

  • close(returnValue?: any): void
  • Closes the popup and passes a value to be used as a return value. For the modal popups, this value will be the resolved value of the promise returned by the showModal() method. For modeless popups, this value will be available as the returnValue property.

    Parameters

    • Optional returnValue: any

    Returns void

Protected getDefaultStyles

  • getDefaultStyles(): TStyles | IStyleDefinitionClass<TStyles>
  • Returns the default style definition instance or class

    Returns TStyles | IStyleDefinitionClass<TStyles>

isModal

  • isModal(): boolean
  • Determines whether the dialog is currently open as modal.

    Returns boolean

isModeless

  • isModeless(): boolean
  • Determines whether the dialog is currently open as modeless.

    Returns boolean

moveTo

  • moveTo(newX: number, newY: number): void
  • Moves the dialog to the given coordinates. The coordinates are adjusted so that at least some part of the dialog at the top-left corner remains visible in order to the user to be able to continue moving it.

    Parameters

    • newX: number
    • newY: number

    Returns void

Protected onClose

  • onClose(retVal: any): void
  • This method is called when the popup is being closed. If derived classes override it they must call super.onClose().

    Parameters

    • retVal: any

    Returns void

Protected onOpen

  • onOpen(isModal: boolean): void
  • This method is called when the popup opens. If derived classes override it they must call super.onOpen().

    Parameters

    • isModal: boolean

    Returns void

open

  • open(): boolean
  • Displays the popup as a modeless dialog. The method will throw an exception if the popup is already open as a modal popup.

    Returns boolean

render

  • render(): any
  • The render method simply returns the current content but it can be overridden by derived classes

    Returns any

setContent

  • setContent(content: any): void
  • Replaces the current content of the popup with the given one.

    Parameters

    • content: any

    Returns void

showModal

  • showModal(): Promise<any>
  • Displays the popup as a modeless dialog and returns a promise that is resolved when the popup is closed. The resolved value of the promise is the value passed to the close() method. The method will return a rejected promise if the popup is already open.

    Returns Promise<any>

startMove

  • startMove(clientX: number, clientY: number): void
  • Starts monitoring mouse movements and moves the popup with the mouse. This method is intented to be called from a mousedown event handled either by a derived class or by the popup caller.

    Parameters

    • clientX: number
    • clientY: number

    Returns void

stopMove

  • stopMove(): void
  • Stops monitoring mouse movements. This method allows programmatically interrupt dialog moving operations.

    Returns void

Protected updateMe

  • This method is called by the component to request to be updated. If no arguments are provided, the entire component is requested to be updated. If arguments are provided, they indicate what rendering functions should be updated.

    Parameters

    • Optional func: RenderMethodType

      Optional rendering function to invoke

    • Optional funcThisArg: any

      Optional value to use as "this" when invoking the rendering function. If undefined, the component's "this" will be used.

    • Optional key: any

      Optional key which distinguishes between multiple uses of the same function. This can be either the "arg" or the "key" property originally passed to the FunProxy component.

    Returns void

willMount

  • willMount(): void
  • If derived classes override this method, they must call super.willMount()

    Returns void

willUnmount

  • willUnmount(): void
  • If derived classes override this method, they must call super.willUnmount()

    Returns void

Protected wrapCallback

  • Creates a wrapper function with the same signature as the given callback so that if the original callback throws an exception, it is processed by the Mimbl error handling mechanism so that the exception bubbles from this component up the hierarchy until a component that knows to handle errors is found.

    Use this method before passing callbacks to document and window event handlers as well as non-DOM objects that use callbacks, e.g. fetch, Promise, setTimeout, etc. For example:

        class ResizeMonitor extends mim.Component
        {
            private onWindowResize(e: Event): void {};
    
            wrapper: (e: Event): void;
    
            public startResizeMonitoring()
            {
                this.wrapper = this.wrapCallback( this.onWindowResize);
                window.addEventListener( "resize", this.wrapper);
            }
    
            public stopResizeMonitoring()
            {
                window.removeEventListener( "resize", this.wrapper);
                this.wrapper = undefined;
            }
        }

    Type parameters

    • T: Function

    Parameters

    • func: T

      Method/function to be wrapped

    • Optional funcThisArg: any

      Optional value of "this" to bind the callback to. If this parameter is undefined, the component instance will be used. This parameter will be ignored if the the function is already bound or is an arrow function.

    • Optional schedulingType: TickSchedulingType

      Type determining whether and how a Mimbl tick should be scheduled after callback invocation.

    Returns T

    Function that has the same signature as the given callback and that should be used instead of the original callback

Generated using TypeDoc