// // Dependencies // -------------------------------------------------- @import "global.less"; @import "icon.less"; @import "loader.less"; @import "form.variables.less"; @import "../vendor/select2/css/select2.less"; // // Select // -------------------------------------------------- @import "select.mixins.less"; @import "select.variables.less"; .select2-container { .loading-indicator { background: transparent; > span { background-image: url('@{loader-image-path}/loader-transparent.svg'); left: auto; right: 10px; top: 19px; background-size: 17px 17px; } } &.in-progress { .select2-selection .select2-selection__arrow b { display: none !important; } } } .select2-container--default { display: block; .select2-selection { .select-input-defaults(); outline: 0; } .select2-search--dropdown { position: relative; &:after { position: absolute; .icon(@search); right: 13px; top: 9px; color: #95a5a6; } .select2-search__field { .select-input-defaults(); } } .select2-search__field { outline: 0; &::-webkit-input-placeholder { color: @input-color-placeholder; } &:-moz-placeholder { color: @input-color-placeholder; } &::-moz-placeholder { color: @input-color-placeholder; opacity: 1; } &:-ms-input-placeholder { color: @input-color-placeholder; } } .select2-results__option { &[role=group] { padding: 0; } &[aria-disabled=true] { color: @color-select-link-disabled; cursor: @select-cursor-disabled; } &[aria-selected=true] { background-color: @color-select-hover-bg; color: @color-select-hover; } &--highlighted[aria-selected] { background-color: @color-select-active-bg; color: @color-select-active; } .select2-results__option { padding: @padding-base-vertical @padding-base-horizontal; .select2-results__group { padding-left: 0; } .select2-results__option { margin-left: -@padding-base-horizontal; padding-left: @padding-base-horizontal*2; .select2-results__option { margin-left: -@padding-base-horizontal*2; padding-left: @padding-base-horizontal*3; .select2-results__option { margin-left: -@padding-base-horizontal*3; padding-left: @padding-base-horizontal*4; .select2-results__option { margin-left: -@padding-base-horizontal*4; padding-left: @padding-base-horizontal*5; .select2-results__option { margin-left: -@padding-base-horizontal*5; padding-left: @padding-base-horizontal*6; } } } } } } } .select2-results__group { color: @color-select-header; display: block; padding: @padding-base-vertical @padding-base-horizontal; font-size: @font-size-small; line-height: @line-height-base; white-space: nowrap; } &.select2-container--focus, &.select2-container--open { .select2-selection { .transition(@input-transition); border-color: @input-border-focus; } } &.select2-container--open { // // Make the dropdown arrow point up while the dropdown is visible. // .select2-selection .select2-selection__arrow b { &:before { .icon(@angle-up); } } // // Handle border radii of the container when the dropdown is showing. // &.select2-container--below { .select2-selection:not(.select-no-dropdown) { .border-bottom-radius(0); border-bottom-color: transparent; } } &.select2-container--above { .select2-selection:not(.select-no-dropdown) { .border-top-radius(0); border-top-color: transparent; } } } .select2-selection__clear { color: @color-select-icon; cursor: pointer; float: right; font-weight: bold; margin-right: 10px; &:hover { color: #333; } } &.select2-container--disabled { .select2-selection { border-color: @input-border; .box-shadow(none); } .select2-selection, .select2-search__field { cursor: @select-cursor-disabled; } .select2-selection, .select2-selection--multiple .select2-selection__choice { background-color: @input-bg-disabled; } .select2-selection__clear, .select2-selection--multiple .select2-selection__choice__remove { display: none; } } // Dropdown //------------------------------------ .select2-dropdown { .box-shadow(@select-box-shadow); border-color: @input-border-focus; overflow-x: hidden; margin-top: -1px; &--above { margin-top: 1px; .box-shadow(@select-box-shadow-above); } } .select2-results > .select2-results__options { font-size: @input-font-size; max-height: 200px; overflow-y: auto; } // No Dropdown //------------------------------------ .select2-dropdown.select-no-dropdown { display: none !important; } .select2-dropdown.select-hide-selected { li[aria-selected=true] { display: none !important; } } // Single select //------------------------------------ .select2-selection--single { height: @input-height-base; line-height: @line-height-base; padding: @padding-base-vertical @padding-base-horizontal + @caret-width-base*3 @padding-base-vertical @padding-base-horizontal; // // Adjust the single Select2's dropdown arrow button appearance. // .select2-selection__arrow { position: absolute; bottom: 0; right: @padding-base-horizontal; top: 0; width: @caret-width-base; b { position: absolute; top: 50%; height: 9px; width: 8px; right: 3px; margin-top: -5px; line-height: 9px; &:before { .icon(@angle-down); display: inline-block; } } } .select2-selection__rendered { color: @input-color; padding: 0; } .select2-selection__placeholder { color: @input-color-placeholder; } } // Multiple select //------------------------------------ .select2-selection--multiple { min-height: @input-height-base; .select2-selection__rendered { box-sizing: border-box; display: block; line-height: @line-height-base; list-style: none; margin: 0; overflow: hidden; padding: 0; width: 100%; text-overflow: ellipsis; white-space: nowrap; } .select2-selection__placeholder { color: @input-color-placeholder; float: left; margin-top: 5px; } // // Make Multi Select2's choices match default button styles. // .select2-selection__choice { color: @input-color; background: @color-select-choice-bg; border: 1px solid @color-select-choice-border; border-radius: 4px; cursor: default; float: left; margin: (@padding-base-vertical - 1) 0 0 @padding-base-horizontal/2; padding: 0 @padding-base-vertical; } // // Minus 2px borders. // .select2-search--inline { .select2-search__field { background: transparent; padding: 0 @padding-base-horizontal; height: @input-height-base - 2; line-height: @line-height-base; margin-top: 0; min-width: 5em; } } .select2-selection__choice__remove { color: #999; cursor: pointer; display: inline-block; font-weight: bold; margin-right: @padding-base-vertical / 2; &:hover { color: #333; } } .select2-selection__clear { margin-top: @padding-base-vertical; } } // Control sizing //------------------------------------ /* 1 */ &.input-sm, &.input-lg { border-radius: 0; font-size: 12px; height: auto; line-height: 1; padding: 0; } &.input-sm, .input-group-sm &, .form-group-sm & { .select2-selection--single { border-radius: @border-radius-small; font-size: @font-size-small; height: @input-height-small; line-height: @line-height-small; padding: @padding-small-vertical @padding-small-horizontal + @caret-width-base*3 @padding-small-vertical @padding-small-horizontal; /* 2 */ .select2-selection__arrow b { margin-left: -@padding-small-vertical; } } .select2-selection--multiple { min-height: @input-height-small; .select2-selection__choice { font-size: @font-size-small; line-height: @line-height-small; margin: (@padding-small-vertical - 1) 0 0 @padding-small-horizontal/2; padding: 0 @padding-small-vertical; } .select2-search--inline .select2-search__field { padding: 0 @padding-small-horizontal; font-size: @font-size-small; height: @input-height-small - 2; line-height: @line-height-small; } .select2-selection__clear { margin-top: @padding-small-vertical; } } } &.input-lg, .input-group-lg &, .form-group-lg & { .select2-selection--single { border-radius: @border-radius-large; font-size: @font-size-large; height: @input-height-large; line-height: @line-height-large; padding: @padding-large-vertical @padding-large-horizontal + @caret-width-large*3 @padding-large-vertical @padding-large-horizontal; /* 1 */ .select2-selection__arrow { width: @caret-width-large; b { border-width: @caret-width-large @caret-width-large 0 @caret-width-large; margin-left: -@caret-width-large; margin-left: -@padding-large-vertical; margin-top: -@caret-width-large/2; } } } .select2-selection--multiple { min-height: @input-height-large; .select2-selection__choice { font-size: @font-size-large; line-height: @line-height-large; border-radius: 4px; margin: (@padding-large-vertical - 1) 0 0 @padding-large-horizontal/2; padding: 0 @padding-large-vertical; } .select2-search--inline .select2-search__field { padding: 0 @padding-large-horizontal; font-size: @font-size-large; height: @input-height-large - 2; line-height: @line-height-large; } .select2-selection__clear { margin-top: @padding-large-vertical; } } } &.input-lg.select2-container--open { .dropdown-arrow; } .input-group-lg & { &.select2-container--open { .dropdown-arrow; } } // RTL Support //------------------------------------ &[dir="rtl"] { .select2-selection--single { padding-left: @padding-base-horizontal + @caret-width-base*3; padding-right: @padding-base-horizontal; .select2-selection__rendered { padding-right: 0; padding-left: 0; text-align: right; /* 1 */ } .select2-selection__clear { float: left; } .select2-selection__arrow { left: @padding-base-horizontal; right: auto; b { margin-left: 0; } } } .select2-selection--multiple { .select2-selection__choice, .select2-selection__placeholder { float: right; } .select2-selection__choice { margin-left: 0; margin-right: @padding-base-horizontal/2; } .select2-selection__choice__remove { margin-left: 2px; margin-right: auto; } } } } // Validation //------------------------------------ .has-warning { .validation-state-focus(@state-warning-text); } .has-error { .validation-state-focus(@state-danger-text); } .has-success { .validation-state-focus(@state-success-text); } // Input groups //------------------------------------ .input-group .select2-container--default { display: table; table-layout: fixed; position: relative; z-index: @zindex-form; float: left; width: 100%; margin-bottom: 0; } .input-group.select2-default-prepend .select2-container--default { .select2-selection { .border-left-radius(0); } } .input-group.select2-default-append .select2-container--default { .select2-selection { .border-right-radius(0); } } .select2-default-append, .select2-default-prepend { .select2-container--default, .input-group-btn, .input-group-btn .btn { vertical-align: top; } } /** * Temporary fix for https://github.com/select2/select2-default-theme/issues/9 * * Provides `!important` for certain properties of the class applied to the * original `