# WidgetMetadata Object

# Properties

Name Type Description
panels WidgetMetadataPanel[] An array of the widget's panels
ignore object An object defining which dashboard filters are ignored by the widget

# Ignored Widgets

The widget's ignore declaration states which dashboard filters should be ignored by the widget.

Add dimension IDs to the dimensions array to explicitly state which dimensions should be ignored, or set the all property to true to ignore all dashboard filters.

{
    dimensions: [ "sales.product", "sales.city" ],
    all: false
}

# Methods

# panel

Gets a widget's metadata panel by index, name or predicate

# Get panel by index

metadata.panel(index)

Arguments

Name Type Required Description
index integer Yes Index of panel to fetch

Returns

WidgetMetadataPanel

Example

widget.metadata.panel(0);

# Get panel by name

metadata.panel(name)

Arguments

Name Type Required Description
name string Yes Name of panel to fetch

Returns

WidgetMetadataPanel

Example

widget.metadata.panel('Categories');

# Get panel by predicate

metadata.panel(predicate)

Arguments

Name Type Required Description
predicate function Yes A function invoked for each panel, returning true for the desired panel to retrieve.

Returns

WidgetMetadataPanel

Example

// Get the first panel with more than 1 item
widget.metadata.panel((p) => {
    return p.items.length > 1; 
});

# items

metadata.items([predicate])

Gets all of the widget's metadata items, optionally filtered by the predicate function.

Arguments

Name Type Required Description
predicate function No A function invoked for each metadata item, returning true for the desired items to retrieve.

Returns

MetadataItem[]

Example

widget.metadata.items();

# filters

metadata.filters()

Gets an array of widget filters.

Arguments

N/A

Returns

MetadataItem[]

Example

widget.metadata.filters();

# WidgetMetadataPanel Object

# Properties

Name Type Description
items MetadataItem[] The Metadata items contained in the panel

# Methods

# item

Get a metadata item from the panel by index, GUID or predicate

# Get an item by index

panel.item(index)

Arguments

Name Type Required Description
index integer Yes Index of item to get

Returns

MetadataItem[]

Example

widget.metadata.panel(0).item(0);

# Get an item by GUID

panel.item(guid)

Arguments

Name Type Required Description
guid string Yes GUID of item to get

Returns

MetadataItem[]

Example

widget.metadata.panel(0).item('DA0A8-A06F-B07C-15E9');

# Get an item by predicate

panel.item(predicate)

Arguments

Name Type Required Description
predicate function Yes A function invoked for each item, returning true for the desired item to retrieve.

Returns

MetadataItem[]

Example

widget.metadata.panel(0).item((i) => {
    return i.jaql.dim === '[Commerce.Brand ID]';
});

# push

panel.push(items)

Add one or more metadata items to the panel

Arguments

Name Type Required Description
items MetadataItem or MetadataItem[] Yes A metadata item or an array of metadata items to add

Returns

N/A

Example

// add one item
widget.metadata.panel(0).push(item1);
// add multiple items
widget.metadata.panel(0).push([item1, item2]);

# isEmpty

panel.isEmpty()

Returns a response stating whether the panel is empty or not.

Arguments

N/A

Returns

boolean

Example

console.log(widget.metadata.panel(0).isEmpty());