ComponentFactory

Api-class icon class

A helper class implementing the UI component (view) factory.

It allows functions producing specific UI components to be registered under their unique names in the factory. A registered component can be then instantiated by providing its name. Note that the names are case insensitive.

// The editor provides localization tools for the factory.
const factory = new ComponentFactory( editor );

factory.add( 'foo', locale => new FooView( locale ) );
factory.add( 'bar', locale => new BarView( locale ) );

// An instance of FooView.
const fooInstance = factory.create( 'foo' );

// Names are case insensitive so this is also allowed:
const barInstance = factory.create( 'Bar' );
Copy code

The editor locale is passed to the factory function when create is called.

Properties

Methods

  • Chevron-right icon

    constructor( editor )

    Creates an instance of the factory.

    Parameters

    editor : Editor

    The editor instance.

  • Chevron-right icon

    add( name, callback ) → void

    Registers a component factory function that will be used by the create method and called with the editor locale as an argument, allowing localization of the view.

    Parameters

    name : string

    The name of the component.

    callback : ( locale: Locale ) => View

    The callback that returns the component.

    Returns

    void
  • Chevron-right icon

    create( name ) → View

    Creates an instance of a component registered in the factory under a specific name.

    When called, the editor locale is passed to the previously added factory function, allowing localization of the view.

    Parameters

    name : string

    The name of the component.

    Returns

    View

    The instantiated component view.

  • Chevron-right icon

    has( name ) → boolean

    Checks if a component of a given name is registered in the factory.

    Parameters

    name : string

    The name of the component.

    Returns

    boolean
  • Chevron-right icon

    names() → IterableIterator<string>

    Returns an iterator of registered component names. Names are returned in lower case.

    Returns

    IterableIterator<string>