Works with any backend npm install Zero dependencies
Event System (on/off/once)

Use the on(), off(), and once() methods for programmatic event binding.

(function() {
    var logEl = document.getElementById('log');
    function log(m) { var d = document.createElement('div'); d.className='pkg-log-entry'; d.textContent=m; logEl.appendChild(d); logEl.scrollTop=logEl.scrollHeight; }

    var uploader = new MultipleUpload('#demo', {
        uploadUrl: '/api/upload',
        multiple: true
    });

    function onComplete(task) { log('taskComplete: ' + task.fileName); }
    var listening = true;
    uploader.on('taskComplete', onComplete);
    uploader.once('init', function() { log('init (once)'); });

    document.getElementById('toggle-btn').addEventListener('click', function() {
        if (listening) {
            uploader.off('taskComplete', onComplete);
            log('Listener removed');
        } else {
            uploader.on('taskComplete', onComplete);
            log('Listener added');
        }
        listening = !listening;
    });
})();