JSFiddle - React, Tailwind, and code Playground
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.13.1/js/bootstrap-select.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.13.1/css/bootstrap-select.min.css">
<select size="4" multiple="multiple" class="form-control selectpicker show-tick select-all" data-selected-text-format="count > 2">
<option value="[all]" class="select-all">All Items</option>
<option value="" data-divider="true"></option>
<option value="0">Members Selected</option>
<option value="1">Separated Members Selected</option>
<option value="2">Request Approval</option>
<option value="3">Approved</option>
<option value="4">Rejected</option>
</select>
JavaScript
$('.selectpicker.select-all').on('change', function () {
var selectPicker = $(this);
var selectAllOption = selectPicker.find('option.select-all');
var checkedAll = selectAllOption.prop('selected');
var optionValues = selectPicker.find('option[value!="[all]"][data-divider!="true"]');
if (checkedAll) {
// Process 'all/none' checking
var allChecked = selectAllOption.data("all") || false;
if (!allChecked) {
optionValues.prop('selected', true).parent().selectpicker('refresh');
selectAllOption.data("all", true);
}
else {
optionValues.prop('selected', false).parent().selectpicker('refresh');
selectAllOption.data("all", false);
}
selectAllOption.prop('selected', false).parent().selectpicker('refresh');
}
else {
// Clicked another item, determine if all selected
var allSelected = optionValues.filter(":selected").length == optionValues.length;
selectAllOption.data("all", allSelected);
}
}).trigger('change');