bulkjs

manager for multiple selection.

Usage no npm install needed!

<script type="module">
  import bulkjs from 'https://cdn.skypack.dev/bulkjs';
</script>

README

bulkjs

base for a manager for multiple selection.

Example

// the api.
var bulkAction = bulk(scope, {
    // toId maps the object from the data source,
    // to the unique id in the list.
    toId: function(x) {
        return x.uuid;
    },
    // updates will always be executed for any change,
    // except when settings the 'dataSource'.
    update: function(scope, event, eventName) {
        // get the list of selected ids.
        var selected = scope.bulkAction.list();

        // if not 'all', unmark the all checkbox.
        if (!scope.bulkAction.all()) {
            all[0].checked = '';
        } else {
            all[0].checked = 'checked';
        }

        // mark as checked if the uuid is in the selected list.
        scope.collection.map(function(o, k) {
            var checked = selected.indexOf(o.uuid) > -1;
            o.content.checked = checked ? 'checked' : '';
        });
        // display info.
        if (scope.bulkAction.all()) {
            sl.html("all");
        } else {
            if (selected.length > 0) {
                sl.html(selected.join(","));
            } else {
                sl.html("none");
            }
        }
    }
});