Common Plugin Options

Each plugin can have any number of options (please see specific plugins for details), but these are shared between some:

id

A unique string identifying the plugin. By default, the plugin’s name is used, so usually it does not need to be configured manually. Use this if you need to add multiple plugins of the same type.

target

Can be a string CSS selector, a DOM element, or a Plugin class. Consider the following example, where DragDrop plugin will be rendered into a body element:

const SmeUploader = require('@sme-uploader/core');
const DragDrop = require('@sme-uploader/drag-drop');
const uploader = new SmeUploader();
uploader.use(DragDrop, { target: 'body' });
// or: uploader.use(DragDrop, { target: document.body })

While in this one, we are using the @sme-uploader/dashboard plugin, which can act as a host target for other plugins:

const SmeUploader = require('@sme-uploader/core');
const Dashboard = require('@sme-uploader/dashboard');
const GoogleDrive = require('@sme-uploader/google-drive');
const uploader = new SmeUploader();
uploader.use(Dashboard, {
  trigger: '#uploaderModalOpener'
});
uploader.use(GoogleDrive, {target: Dashboard});

In the example above, the Dashboard gets rendered into an element with ID uploader, while GoogleDrive is rendered into the Dashboard itself.

locale: {}

Same as with SME Uploader.Core’s setting above, this allows you to override plugin’s locale string, so that instead of Select files in English, your users will see Выберите файлы in Russian. Example:

.use(FileInput, {
  target: 'body',
  locale: {
    strings: { selectToUpload: 'Выберите файл для загрузки' }
  }
});

See plugin documentation pages for other plugin-specific options.

Methods

setOptions(opts)

You can change options for a plugin on the fly, like this:

// First get the plugin by its `id`,
// then change, for example, `width` on the fly
uploader.getPlugin('Dashboard').setOptions({
  width: 300
});

⚠️ This should work for most options, except for limit and some others related to an upload. This is because some objects/instances are created immediately upon initialization, and not updated later.

Provider Plugins

See the Provider Plugins documentation page for information on provider plugins.