bootstrap-multiselect
Version:
JQuery multiselect plugin based on Twitter Bootstrap.
175 lines (152 loc) • 5.02 kB
text/less
/**
* Bootstrap Multiselect (http://davidstutz.de/bootstrap-multiselect/)
*
* Apache License, Version 2.0:
* Copyright (c) 2012 - 2021 David Stutz
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a
* copy of the License at http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
*
* BSD 3-Clause License:
* Copyright (c) 2012 - 2021 David Stutz
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of David Stutz nor the names of its contributors may be
* used to endorse or promote products derived from this software without
* specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
span.multiselect-native-select{
position:relative
}
span.multiselect-native-select select{
border :0 ;
clip: rect(0 0 0 0) ;
height: 1px ;
margin: -1px -1px -1px -3px ;
overflow: hidden ;
padding: 0 ;
position: absolute ;
width: 1px ;
left: 50%;
top: 30px;
}
.multiselect.dropdown-toggle:after {
display: none;
}
.multiselect {
overflow: hidden;
text-overflow: ellipsis;
}
.multiselect-container {
position: absolute;
list-style-type: none;
margin: 0;
padding: 0;
.multiselect-reset {
.input-group {
width: 93%;
}
}
.multiselect-filter {
> .fa-search {
z-index: 1;
padding-left: 0.75rem;
}
> input.multiselect-search {
border: none;
border-bottom: 1px solid lightgrey;
padding-left: 2rem;
margin-left: -1.625rem;
border-bottom-right-radius: 0;
border-bottom-left-radius: 0;
&:focus {
border-bottom-right-radius: 0.25rem;
border-bottom-left-radius: 0.25rem;;
}
}
> .multiselect-moz-clear-filter {
margin-left: -1.5rem;
display: none;
}
}
.multiselect-option.multiselect-group-option-indented {
padding-left: 1.75rem;
}
.multiselect-option, .multiselect-group, .multiselect-all {
padding: 0.25rem 0.25rem 0.25rem 0.75rem;
&.dropdown-item,
&.dropdown-toggle {
cursor: pointer;
}
.form-check-label {
cursor: pointer;
}
}
.multiselect-option, .multiselect-group, .multiselect-all {
&.active:not(.multiselect-active-item-fallback), &:not(.multiselect-active-item-fallback):active {
background-color: lightgrey;
color: black;
}
.form-check {
padding: 0 5px 0 20px;
}
&:focus {
outline: none;
}
}
}
.form-inline .multiselect-container {
span.form-check {
padding: 3px 20px 3px 40px;
}
}
.input-group {
&.input-group-sm > .multiselect-native-select .multiselect {
padding: .25rem .5rem;
font-size: .875rem;
line-height: 1.5;
padding-right: 1.75rem;
height: calc(1.5em + .5rem + 2px);
}
> .multiselect-native-select {
flex: 1 1 auto;
width: 1%;
> div.btn-group {
width: 100%;
}
&:not(:first-child) .multiselect {
border-top-left-radius: 0;
border-bottom-left-radius: 0;
}
&:not(:last-child) .multiselect {
border-top-right-radius: 0;
border-bottom-right-radius: 0;
}
}
}