Published
Edited
Jan 8, 2021
Importers
5 stars
Insert cell
Insert cell
Insert cell
Insert cell
layerStack = new LayerStack()
Insert cell
Insert cell
{
const stringsLayerStack = new LayerStack({
validate: el => el instanceof HTMLImageElement
});
try {
// We try to insert a string: it fails
stringsLayerStack.insertAboveAll('a string');
} catch (e) {
return e.message;
}
}
Insert cell
Insert cell
layerStack.length
Insert cell
Insert cell
[...layerStack]
Insert cell
Insert cell
colorsStack = LayerStack.from([
'blue',
'green',
'red',
'green',
'green',
'brown'
])
Insert cell
Insert cell
colorsStackClone = LayerStack.from(colorsStack)
Insert cell
Insert cell
[...colorsStack]
Insert cell
Insert cell
Insert cell
{
const clone = LayerStack.from(colorsStack);
clone.insertAboveAll('gray');
return [...clone];
}
Insert cell
Insert cell
{
const clone = LayerStack.from(colorsStack);
clone.insertBelowAll('lightgray');
return [...clone];
}
Insert cell
Insert cell
{
const clone = LayerStack.from(colorsStack);
clone.insertAbove('darkred', 'red');
clone.insertBelow('lightred', 'red');
return [...clone];
}
Insert cell
Insert cell
{
const clone = LayerStack.from(colorsStack);
clone.remove('green');
return [...clone];
}
Insert cell
Insert cell
{
const clone = LayerStack.from(colorsStack);
clone.replace('green', 'darkgreen');
return [...clone];
}
Insert cell
Insert cell
{
const clone = LayerStack.from(colorsStack);
clone.raiseOne('blue');
clone.raiseOne('blue');
clone.lowerOne('red');
return [...clone];
}
Insert cell
Insert cell
{
const events = [];
const clone = LayerStack.from(colorsStack);
const appendEvent = e => events.push(e.type);
clone.addEventListener('insert', appendEvent);
clone.addEventListener('remove', appendEvent);
clone.addEventListener('replace', appendEvent);
clone.addEventListener('reorder', appendEvent);
invalidation.then(() => {
clone.removeEventListener('insert', appendEvent);
clone.removeEventListener('remove', appendEvent);
clone.removeEventListener('replace', appendEvent);
clone.removeEventListener('reorder', appendEvent);
});

clone.remove('blue');
clone.insertBelowAll('pink');
clone.raiseOne('pink');
clone.replace('green', 'darkgreen');
clone.lowerOne('pink');
return events;
}
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more