Class: LayoutRegistry

LayoutRegistry()

Helper for working with predefined layouts

This is part of the public interface with LocusZoom and a major way that users interact to configure plots.

Each layout object that is added or retrieved here is a deep copy and totally independent from any other object

Constructor

new LayoutRegistry()

Source:

Extends

  • module:registry/base:RegistryBase

Methods

add(type, name, item, override) → {*}

Add a type of layout to the registry

Parameters:
Name Type Default Description
type String

The type of layout to add (plot, panel, data_layer, toolbar, toolbar_widgets, or tooltip)

name String

The name of the layout object to add

item Object

The layout object describing parameters

override boolean false

Whether to replace an existing item by that name

Source:
Returns:
Type
*

list(typeopt) → {Array.<String>|Object}

List all available types of layout (eg toolbar, panel, etc). If a specific type name is provided, list the layouts for that type of element ("just predefined panels").

Parameters:
Name Type Attributes Description
type String <optional>

The type of layout (eg toolbar, panel, etc)

Source:
Returns:
Type
Array.<String> | Object

(static) merge(custom_layout, default_layout) → {object}

A helper method used for merging two objects. If a key is present in both, takes the value from the first object. Values from default_layout will be cleanly copied over, ensuring no references or shared state.

Frequently used for preparing custom layouts. Both objects should be JSON-serializable.

Parameters:
Name Type Description
custom_layout object

An object containing configuration parameters that override or add to defaults

default_layout object

An object containing default settings.

Source:
Returns:

The custom layout is modified in place and also returned from this method.

Type
object

(static) mutate_attrs(layout, selector, value_or_callable) → {Array}

Modify any and all attributes at the specified path in the object

Parameters:
Name Type Description
layout object

The layout object to be mutated

selector string

The JSONPath-compliant selector string specifying which field(s) to change. The callback will be applied to ALL matching selectors (see Interactivity guide for syntax and limitations)

value_or_callable * | function

The new value, or a function that receives the old value and returns a new one

Source:
Returns:
Type
Array

(static) query_attrs(layout, selector) → {Array}

Query any and all attributes at the specified path in the object. This is mostly only useful for debugging, to verify that a particular selector matches the intended field.

Parameters:
Name Type Description
layout object

The layout object to be mutated

selector string

The JSONPath-compliant selector string specifying which values to return. (see Interactivity guide for limits)

Source:
Returns:
Type
Array

(static) renameField(layout, old_name, new_name, warn_transformsopt) → {object}

A utility helper for customizing one part of a pre-made layout. Whenever a primitive value is found (eg string), replaces exact match. The layout object is mutated in place.

This method works by comparing whether strings are a match. As a result, the "old" and "new" names must match whatever namespacing is used in the input layout. Note: this utility can replace values with filters, but will not do so by default.

Parameters:
Name Type Attributes Default Description
layout object

The layout object to be transformed.

old_name string

The old field name that will be replaced

new_name string

The new field name that will be substituted in

warn_transforms boolean <optional>
true

Sometimes, a field name is used with transforms appended, eg label|htmlescape. In some cases a rename could change the meaning of the field, and by default this method will print a warning to the console, encouraging the developer to check the relevant usages. In production, you might not want to clutter the console with warnings that you verified are safe to ignore, so this can be silenced via an optional function argument.

Source:
Returns:

The original layout object, which will be mutated in-place with the new field names

Type
object