# Assets
You can customize the initial state of the module from the editor initialization, by passing the following Configuration Object (opens new window)
const editor = grapesjs.init({
assetManager: {
// options
}
})
Once the editor is instantiated you can use its API. Before using these methods you should get the module from the instance
const assetManager = editor.AssetManager;
# Available Events
asset:add
New asset added to the collection. The Asset is passed as an argument to the callback.
editor.on('asset:add', (asset) => { ... });
asset:remove
Asset removed from the collection. The Asset is passed as an argument to the callback.
editor.on('asset:remove', (asset) => { ... });
asset:update
Asset updated. The Asset and the object containing changes are passed as arguments to the callback.
editor.on('asset:update', (asset, updatedProps) => { ... });
asset:open
Asset Manager opened.
editor.on('asset:open', () => { ... });
asset:close
Asset Manager closed.
editor.on('asset:close', () => { ... });
asset:upload:start
Asset upload start.
editor.on('asset:upload:start', () => { ... });
asset:upload:end
Asset upload end.
editor.on('asset:upload:end', (result) => { ... });
asset:upload:error
Asset upload error.
editor.on('asset:upload:error', (error) => { ... });
asset:upload:response
Asset upload response.
editor.on('asset:upload:response', (res) => { ... });
asset:custom
Event to use in case of custom Asset Manager UI (opens new window).
editor.on('asset:custom', ({ container, assets, ... }) => { ... });
asset
Catch-all event for all the events mentioned above. An object containing all the available data about the triggered event is passed as an argument to the callback.
editor.on('asset', ({ event, model, ... }) => { ... });
# Methods
# open
Open the asset manager.
# Parameters
options
Object (opens new window)? Options for the asset manager. (optional, default{}
)options.types
Array (opens new window)<String (opens new window)> Types of assets to show. (optional, default['image']
)options.select
Function (opens new window)? Type of operation to perform on asset selection. If not specified, nothing will happen.
# Examples
assetManager.open({
select(asset, complete) {
const selected = editor.getSelected();
if (selected && selected.is('image')) {
selected.addAttributes({ src: asset.getSrc() });
// The default AssetManager UI will trigger `select(asset, false)` on asset click
// and `select(asset, true)` on double-click
complete && assetManager.close();
}
}
});
// with your custom types (you should have assets with those types declared)
assetManager.open({ types: ['doc'], ... });
# close
Close the asset manager.
# Examples
assetManager.close();
# isOpen
Checks if the asset manager is open
# Examples
assetManager.isOpen(); // true | false
Returns Boolean (opens new window)
# add
Add new asset/s to the collection. URLs are supposed to be unique
# Parameters
asset
(String (opens new window) | Object (opens new window) | Array (opens new window)<String (opens new window)> | Array (opens new window)<Object (opens new window)>) URL strings or an objects representing the resource.opts
Object (opens new window)? Options (optional, default{}
)
# Examples
// As strings
assetManager.add('http://img.jpg');
assetManager.add(['http://img.jpg', './path/to/img.png']);
// Using objects you can indicate the type and other meta informations
assetManager.add({
// type: 'image', // image is default
src: 'http://img.jpg',
height: 300,
width: 200,
});
assetManager.add([{ src: 'img2.jpg' }, { src: 'img2.png' }]);
Returns Asset
# get
Return asset by URL
# Parameters
src
String (opens new window) URL of the asset
# Examples
const asset = assetManager.get('http://img.jpg');
Returns (Asset | null)
# getAll
Return the global collection, containing all the assets
Returns Collection<Asset>
# getAllVisible
Return the visible collection, which contains assets actually rendered
Returns Collection<Asset>
# remove
Remove asset
# Parameters
asset
(String (opens new window) | Asset) Asset or asset URLopts
RemoveOptions?
# Examples
const removed = assetManager.remove('http://img.jpg');
// or by passing the Asset
const asset = assetManager.get('http://img.jpg');
assetManager.remove(asset);
Returns Asset Removed asset
# getContainer
Return the Asset Manager Container
Returns HTMLElement (opens new window)