Brush - Area
Brush area direction component enables brushing on shapes over an rectangular
area. the area is locked in the perpendicular docking direction, such that if
docked at the top
or bottom
, only the width of the area is allowed to change
size or be moved.
Data and scales
No data is required as input directly, instead the data is implicitly fetched from the shapes.
Layout
There are two ways to set the layout, either by referencing a target
component, in which case, the rendering area extends from the target
component
to the start of the opposite docking area. Ex. if target
is docked to the
right
, then the rendering area includes the right
area and the center
area. The other option, which is default, is if no target
component is
configured, then the center
area is used.
A target
is configured in the target
property:
settings: {
target: {
components: ['my-target-component'];
}
}
The bubble labels are derived from the brush data
property. If omitted the
self
data value is used.
settings: {
brush: [
{
key: 'brush-this-component',
data: ['some data property on brush-this-component'],
},
];
}
Events
There are four different types of listeners available.
areaStart
: initialize the brushareaMove
: change the size of the area or move the current active areaareaEnd
: end the current active areaareaClear
: cancel the active area
The events are triggered from the component instance and expect an event object as parameter with the following properties:
const param = {
center: {
x: 1,
y: 2,
},
deltaX: 0,
deltaY: 0,
};
compInstance.emit('rangeStart', param);
Usage
Set up the required interaction events.
interactions: [
{
type: 'hammer',
gestures: [{
type: 'Pan',
options: {
direction: Hammer.DIRECTION_VERTICAL
},
events: {
panstart: function(e) {
this.chart.component('my-brush-area-component').emit('areaStart', e);
},
panmove: function(e) {
this.chart.component('my-brush-area-component').emit('areaMove', e);
},
panend: function(e) {
this.chart.component('my-brush-area-component').emit('areaEnd', e);
}
}
}
}
],
and configure the component.
components: [
{
type: 'brush-area-dir',
key: 'my-brush-area-component',
settings: {
brush: {
components: [{
key: 'target-this-component',
contexts: ['some-context']
}]
},
},
target: {
components: ['target-this-component']
}
},
...
]
API Reference
For more details, see the API.