# AssetManager

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:open - Asset Manager opened.
  • asset:close - Asset Manager closed.
  • asset:add - Asset added. The Asset is passed as an argument to the callback.
  • asset:remove - Asset removed. The Asset is passed as an argument to the callback.
  • asset:update - Asset updated. The updated Asset and the object containing changes are passed as arguments to the callback.
  • asset:upload:start - Before the upload is started.
  • asset:upload:end - After the upload is ended.
  • asset:upload:error - On any error in upload, passes the error as an argument.
  • asset:upload:response - On upload response, passes the result as an argument.
  • 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.
  • asset:custom - Event for handling custom Asset Manager UI.

# Methods

# open

Open the asset manager.

# Parameters

# Examples

 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


# 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

# Examples

// As strings
assetManager.add(['http://img.jpg', './path/to/img.png']);

// Using objects you can indicate the type and other meta informations
 // 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

# 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

# Examples

const removed = assetManager.remove('http://img.jpg');
// or by passing the Asset
const asset = assetManager.get('http://img.jpg');

Returns Asset Removed asset

# store

Store assets data to the selected storage

# Parameters

# Examples

var assets = assetManager.store();

Returns Object (opens new window) Data to store

# load

Load data from the passed object. The fetched data will be added to the collection.

# Parameters

# Examples

var assets = assetManager.load({
	assets: [...]

Returns Object (opens new window) Loaded assets

# getContainer

Return the Asset Manager Container

Returns HTMLElement (opens new window)

# render

Render assets

# Parameters

# Examples

// Render all assets

// Render some of the assets
const assets = assetManager.getAll();
 asset => asset.get('category') == 'cats'

Returns HTMLElement (opens new window)