Class Object<Events>

*Example of an options definition with the most common attributes:

this.prototype.options = {
'chartType': {
type: 'number',
[name: 'Name'],
[_set: function],
[value: 'line'], // options without value get forwarded to the _get callback
[_get: function], // either _get or value must be specified
[flags: BG.charts.Object.EOptionFlags.EXPOSED] // various flags; e.g. exposed => hint for ui; this option can be shown
},
};

Type Parameters

  • Events extends Record<string, (...args: any) => void> = Record<string, (...args: any) => void>

Hierarchy (View Summary)

Constructors

  • The base object providing functionality for configuration option handling. All common objects in the BG.charts package extend this class to provide a uniform way of handling configuration option. This allows for enumeration, validation and easy serialization and deserialization of options.

    Configuration Options

    All properties must at least specify type and flags. An optional descriptive name can be provided - e.g. if the option should be shown in a UI. Finally, either 'value' or '_get' must be provided; see description further down.

    The following types are available:

    • 'integer': a plain integer value
    • 'float': a floating point value. On assignment, values are evaluated based on the current locale; e.g. in a german environment '5.752,24' would equal '5,752.24' in an english environment.
    • 'string': a string value
    • 'text': read only string value
    • 'color': a CSS color value. Can be specified as #RGB,#RRGGBB,rgb(r,g,b) or rgba(r,g,b,a)
    • 'number': a numeric value, basically equal to the javascript type
    • 'boolean': boolean value
    • 'span': a number, an array with 2 numeric values, or an object of type BG.charts.ETSDataSourceRange
    • 'button': used for displaying a button in the user interface
    • 'date': a date in the format YYYY-mm-dd
    • 'datetime': a timestamp in the iso8601 format
    • object or array: an enumeration. objects are treated as {"value": "display name"}

    The following optional attributes can be provided by an option:

    • 'name': a descriptive name for the option that can be shown in a UI
    • '_set': a function that is automatically called when option is changed
    • '_get': a function that is called to retrieve the value. if not specified, 'value' is required
    • 'value': holds the value of the option. if not specified, '_get' is required

    Readonly options are possible by providing only '_get' (omitting both 'value' and '_set')

    NOTE: when you are using _get and _set, the value of an option might change without .set being called on the object. in these cases, it is your responsibility to call both willUpdateOptions and didUpdateOptions manually, so that the correct events can be triggered for the respective options.

    Every property can have several flags set via the flags attribute. ChartBreaker already provides a number of common flags for various purposes; these can be accessed via the BG.charts.Object.EOptionFlags enumeration. For example properties should only be shown in the user interface if they have the BG.charts.Object.EOptionFlags.EXPOSED flag set. Additionally there are flags that tell the user interface about what type of color a property provides (for filling, stroking or borders) or wether a property is a common enumeration such as line width, and line style.

    Working with objects

    Reading or modifying configuration options is straight forward. To retrieve all options of an object, just call

           object.get();
    

    which will return an object of the following form

           {
    'height': {
    'type': 'integer',
    'value': 400
    },
    'mode': {
    'flags': BG.charts.Object.EOptionFlags.EXPOSED,
    'type': {'mode1':'First mode','mode2':'Second mode'},
    'value': 'mode1'
    }
    }

    To get or set one of these options, just use object.set or object.get like this:

           object.set('height',400);
    object.get('height'); // returns 400

    Type Parameters

    • Events extends Record<string, (...args: any) => void> = Record<string, (...args: any) => void>

    Returns BG.charts.Object<Events>

Properties

optionGroups: OptionGroup[]
options: { [key: string]: any }

Methods

  • Type Parameters

    • Type extends string | number | symbol
    • Callback extends (...args: any) => void

    Parameters

    Returns this

    adds a listener to the end of the listeners array for the specified event.

  • returns or sets the attribute of an option this function should be used with care - modifications of internal properties might break stuff!

    Parameters

    • this: BG.charts.Object<Record<string, (...args: any) => void>>
    • s: string
    • a: string
    • Optionalv: any

    Returns any

  • must be called after willUpdateOptions once all actions that might potentially changed values of any options are done

    IMPORTANT: methods must be called in balance; e.g. for each call to willUpdateOptions, you must call didUpdateOptions exactly once.

    Parameters

    Returns void

  • Type Parameters

    • Type extends string | number | symbol
    • Callback extends (...args: any) => void

    Parameters

    Returns boolean

    execute each of the listeners in order with the supplied parameters.

  • returns a flat representation of all available config options in the form of a key-value-object optionally only values that are not read-only can be returned

    IMPORTANT: this method will always convert I18NStrings to strings, so for displaying strings in a UI use individual calls to BG.charts.Object:get instead

    Parameters

    • OptionalreadWriteOnly: boolean

      default: true

    • OptionalmodifiedOnly: boolean

      default: true

    • OptionalnonEphemeralOnly: boolean

      default: true

    Returns { [key: string]: any }

  • returns the value of the requested option, or a list of all available config options if no parameter is specified.

    Parameters

    • Optionals: string
    • Optionalflags: number

    Returns any

  • returns the categorization of the objects options can be used for displaying a more structured user interface

    Returns OptionGroup[]

  • Type Parameters

    • Type extends string | number | symbol
    • Callback extends (...args: any) => void

    Parameters

    Returns Callback[]

    returns an array of listeners for the specified event.

  • Type Parameters

    • Type extends string | number | symbol
    • Callback extends (...args: any) => void

    Parameters

    Returns this

    alias for addListener

  • Type Parameters

    • Type extends string | number | symbol
    • Callback extends (...args: any) => void

    Parameters

    Returns this

    adds a one time listener for the event. This listener is invoked only the next time the event is fired, after which it is removed.

  • called when an object will be permanently discarded no other methods will be called on it ever again after this point

    IMPORTANT: this method should ONLY be called directly on the Controller all other objects will be destroyed automatically by the implementation

    Returns void

  • life cycle method; called when the object should recover from an error and resume normal operation

    this will only be called if the object encountered a RecoverableError, and is always triggered by a manual user interaction

    always called between start and stop

    Returns void

  • life cycle method; called when the object should start normal operation at this point is is already completely initialized

    Parameters

    Returns void

  • life cycle method; called when the object should stop normal operation if objects have any pending subscriptions/requests, they should all be stopped here

    the object is also responsible for clearing the loading flag from it's state if it is currently active failing to do so will trigger a fatal error

    object might be started again afterwards (start) or destroyed (destroy) this is not known yet at this point

    called after start or restart

    Returns void

  • can be called to tell the object that it should recover from an error and resume will have no effect if no retryable error is currently associated with the object

    Returns boolean

  • Type Parameters

    • Type extends string | number | symbol

    Parameters

    Returns this

    removes all listeners, or those of the specified event.

  • Type Parameters

    • Type extends string | number | symbol
    • Callback extends (...args: any) => void

    Parameters

    Returns this

    remove a listener from the listener array for the specified event.

  • will set validate and then set the specified option(s) to the provided value(s) after validation

    NOTE: if multiple options are used, will return false if at least one value is not valid values are applied individually however, so one option might be set even if the value for another is invalid

    Parameters

    Returns boolean

  • Parameters

    • maxListeners: number

    Returns this

    by default EventEmitters will print a warning if more than 10 listeners are added for a particular event. This is a useful default which helps finding memory leaks. Obviously not all Emitters should be limited to 10. This function allows that limit to be increased. Set to zero for unlimited.

  • Sets the objName and objType of the Object reverts to the default ones if no arguments are given

    Parameters

    • OptionalobjType: string
    • OptionalobjName: string

    Returns void

  • Returns a string representation of an object.

    Returns string

  • will set validate value(s) for the specified option(s)

    NOTE: if multiple options are used, will return false if at least one value is not valid

    Parameters

    Returns boolean

  • when using custom getters/setters (via _get/_set) in options, the values of options can change without .set being called - or there might not even be a setter for readonly options; for example, if the getter simply returns the value of a member variable this variable could be modified directly. In this case, events such as optionChanged would not be fired, and listeners would not be informed about the change.

    To account for such cases, the methods willUpdateOptions and didUpdateOptions should be called directly BEFORE and AFTER actions that might potentially change values of options. the correct events will then automatically be triggered when calling didUpdateOptions.

    if the options that could change are known, they can be supplied via the optional parameter. This provides a small performance gain in most situations.

    IMPORTANT: methods must be called in balance; e.g. for each call to willUpdateOptions, you must call didUpdateOptions exactly once.

    Parameters

    • Optionaloptions: string | string[]

    Returns void

  • Parameters

    • cb: Function

    Returns void

    set custom error handler for event listeners

  • Parameters

    • maxListeners: number

    Returns void

    set default amount for limit warning