1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147 |
- /**
- * Dependencies
- */
- @import "~material-colors/dist/colors.less";
- @import "~easings-css/easings.less";
- /**
- * Variables
- */
- @treeselect-font-size: 1em;
- @treeselect-font-size-sm: 12px;
- @treeselect-padding: 5px;
- @treeselect-border-radius-lg: 5px;
- @treeselect-border-radius-sm: 2px;
- @treeselect-narrow-cell-width: 20px;
- @treeselect-wide-cell-width: 100%;
- @treeselect-icon-size: 12px;
- @treeselect-transition-duration: 200ms;
- @treeselect-transition-duration-slow: 400ms;
- @treeselect-max-level: 8;
- @treeselect-control-height: 36px;
- @treeselect-control-inner-height: @treeselect-control-height - @treeselect-control-border-width * 2;
- @treeselect-control-border-width: 1px;
- @treeselect-control-border-color: #ddd;
- @treeselect-control-border-color-hover: #cfcfcf;
- @treeselect-control-border-color-active: @treeselect-control-border-color-hover;
- @treeselect-control-border-color-focus: @md-light-blue-600;
- @treeselect-control-border-radius: @treeselect-border-radius-lg;
- @treeselect-control-bg: #fff;
- @treeselect-control-box-shadow-focus: 0 0 0 3px fade(@treeselect-control-border-color-focus, 10%);
- @treeselect-control-bg-disabled: #f9f9f9;
- @treeselect-placeholder-font-color: @md-grey-400;
- @treeselect-single-value-font-color: #333;
- @treeselect-single-value-font-color-focused: @treeselect-placeholder-font-color;
- @treeselect-multi-value-margin-x: 0;
- @treeselect-multi-value-margin-y: 2px;
- @treeselect-multi-value-padding-x: @treeselect-padding;
- @treeselect-multi-value-padding-y: 0;
- @treeselect-multi-value-font-size: @treeselect-font-size-sm;
- @treeselect-multi-value-font-color: @md-light-blue-600;
- @treeselect-multi-value-item-bg: @md-blue-50;
- @treeselect-multi-value-item-bg-new: @md-green-50;
- @treeselect-multi-value-item-border-width: 1px;
- @treeselect-multi-value-item-border-color: transparent;
- @treeselect-multi-value-font-color-hover: @treeselect-multi-value-font-color;
- @treeselect-multi-value-item-bg-hover: @treeselect-multi-value-item-bg;
- @treeselect-multi-value-item-bg-new-hover: @treeselect-multi-value-item-bg-new;
- @treeselect-multi-value-font-color-disabled: @md-grey-600;
- @treeselect-multi-value-item-bg-disabled: @md-grey-100;
- @treeselect-multi-value-item-font-color-control-disabled: #555;
- @treeselect-multi-value-item-bg-control-disabled: #fff;
- @treeselect-multi-value-item-border-color-control-disabled: #e5e5e5;
- @treeselect-multi-value-remove-color: @treeselect-multi-value-font-color;
- @treeselect-multi-value-remove-color-hover: @md-red-600;
- @treeselect-multi-value-remove-size: 6px;
- @treeselect-multi-value-divider-color: #fff;
- @treeselect-limit-tip-font-color: @md-grey-400;
- @treeselect-limit-tip-font-size: @treeselect-multi-value-font-size;
- @treeselect-limit-tip-font-weight: 600;
- @treeselect-single-input-font-size: inherit;
- @treeselect-multi-input-font-size: @treeselect-multi-value-font-size;
- @treeselect-menu-bg: #fff;
- @treeselect-menu-padding-y: @treeselect-padding;
- @treeselect-menu-line-height: 180%;
- @treeselect-menu-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.06);
- @treeselect-control-menu-divider-color: #f2f2f2;
- @treeselect-arrow-size: 9px;
- @treeselect-arrow-color: #ccc;
- @treeselect-arrow-color-hover: @md-grey-700;
- @treeselect-arrow-transition-timing-function: @ease-out-expo;
- @treeselect-x-size: 8px;
- @treeselect-x-color: @treeselect-arrow-color;
- @treeselect-x-color-hover: @md-red-600;
- @treeselect-option-bg-highlight: @md-grey-100;
- @treeselect-option-selected-bg: @md-blue-50;
- @treeselect-option-selected-bg-hover: @treeselect-option-selected-bg;
- @treeselect-checkbox-size: @treeselect-icon-size;
- @treeselect-checkbox-border-radius: @treeselect-border-radius-sm;
- @treeselect-checkbox-color: @md-grey-300;
- @treeselect-checkbox-color-highlight: @md-light-blue-600;
- @treeselect-checkbox-border-color: @treeselect-checkbox-color;
- @treeselect-checkbox-bg: #fff;
- @treeselect-checkbox-border-color-hover: @treeselect-checkbox-color-highlight;
- @treeselect-checkbox-bg-hover: @treeselect-checkbox-bg;
- @treeselect-checkbox-indeterminate-border-color: @treeselect-checkbox-color-highlight;
- @treeselect-checkbox-indeterminate-bg: @treeselect-checkbox-color-highlight;
- @treeselect-checkbox-indeterminate-icon: "./assets/checkbox-indeterminate.png";
- @treeselect-checkbox-indeterminate-border-color-hover: @treeselect-checkbox-color-highlight;
- @treeselect-checkbox-indeterminate-bg-hover: @treeselect-checkbox-color-highlight;
- @treeselect-checkbox-checked-border-color: @treeselect-checkbox-color-highlight;
- @treeselect-checkbox-checked-bg: @treeselect-checkbox-color-highlight;
- @treeselect-checkbox-checked-icon: "./assets/checkbox-checked.png";
- @treeselect-checkbox-checked-border-color-hover: @treeselect-checkbox-color-highlight;
- @treeselect-checkbox-checked-bg-hover: @treeselect-checkbox-color-highlight;
- @treeselect-checkbox-disabled-border-color: @treeselect-checkbox-border-color;
- @treeselect-checkbox-disabled-bg-color: darken(@treeselect-checkbox-bg, 3%);
- @treeselect-checkbox-disabled-indeterminate-icon: "./assets/checkbox-indeterminate-disabled.png";
- @treeselect-checkbox-disabled-checked-icon: "./assets/checkbox-checked-disabled.png";
- @treeselect-option-label-color: inherit;
- @treeselect-option-label-color-disabled: rgba(0, 0, 0, 0.25);
- @treeselect-loader-color-dark: @md-light-blue-600;
- @treeselect-loader-color-light: @md-light-blue-100;
- @treeselect-loader-animation-duration: 1.6s;
- @treeselect-warning-icon-bg: @md-orange-600;
- @treeselect-error-icon-bg: @md-red-600;
- @treeselect-tip-color: @md-grey-600;
- @treeselect-tip-font-size: @treeselect-font-size-sm;
- @treeselect-retry-text-color: @md-light-blue-600;
- /**
- * Mixins
- */
- .clickable() {
- cursor: pointer;
- }
- .inputtable() {
- cursor: text;
- }
- .forbidden() {
- cursor: not-allowed;
- }
- .reset-cursor() {
- cursor: default;
- }
- .rounded() {
- border-radius: 50%;
- }
- .border-radius-top(@size) {
- border-top-left-radius: @size;
- border-top-right-radius: @size;
- }
- .border-radius-bottom(@size) {
- border-bottom-left-radius: @size;
- border-bottom-right-radius: @size;
- }
- .text-truncate() {
- overflow: hidden;
- text-overflow: ellipsis;
- white-space: nowrap;
- }
- .horizontal-padding(@value) {
- padding-left: @value;
- padding-right: @value;
- }
- .vertical-padding(@value) {
- padding-top: @value;
- padding-bottom: @value;
- }
- .icon() {
- display: block;
- margin: auto;
- }
- .row() {
- .horizontal-padding(@treeselect-padding);
- display: table;
- table-layout: fixed;
- width: 100%;
- }
- .cell() {
- display: table-cell;
- vertical-align: middle;
- }
- .wide-cell() {
- .cell();
- .horizontal-padding(@treeselect-padding);
- .text-truncate();
- width: @treeselect-wide-cell-width;
- }
- .narrow-cell() {
- .cell();
- width: @treeselect-narrow-cell-width;
- text-align: center;
- line-height: 0;
- }
- // based on: https://github.com/strues/retinajs/blob/master/dist/retina.less
- .retina(@path, @cap: 2) { // stylelint-disable-line selector-class-pattern
- @lowretina: ~"(min-resolution: 1.5dppx)";
- @2xpath: replace(@path, "(\.\w+)$", "@2x$1");
- background-image: url(@path);
- @media @lowretina {
- background-image: url(@2xpath);
- }
- .create-queries() when (@cap >= 2) {
- .loop(@env) when (@env <= @cap) {
- @retinapath: replace(@path, "(\.\w+)$", "@@{env}x$1");
- @media (min-resolution: @env * 96dpi) {
- background-image: url(@retinapath);
- }
- .loop((@env + 1));
- }
- .loop(2);
- }
- .create-queries();
- }
- /**
- * Helpers
- */
- .vue-treeselect-helper-hide {
- display: none;
- }
- .vue-treeselect-helper-zoom-effect-off {
- transform: none !important; // stylelint-disable-line declaration-no-important
- }
- /**
- * Animations
- */
- @keyframes vue-treeselect-animation-fade-in {
- 0% {
- opacity: 0;
- }
- }
- @keyframes vue-treeselect-animation-bounce {
- 0%, 100% {
- transform: scale(0);
- }
- 50% {
- transform: scale(1);
- }
- }
- @keyframes vue-treeselect-animation-rotate {
- 100% {
- transform: rotate(360deg);
- }
- }
- /**
- * Transitions
- */
- .vue-treeselect__multi-value-item--transition {
- &-enter-active,
- &-leave-active {
- transition-duration: @treeselect-transition-duration;
- transition-property: transform, opacity;
- }
- &-enter-active {
- transition-timing-function: @ease-out-circ;
- }
- &-leave-active {
- transition-timing-function: @ease-out-cubic;
- // trigger animation when element is removed
- position: absolute;
- }
- &-enter,
- &-leave-to {
- transform: scale(0.7);
- opacity: 0;
- }
- &-move {
- transition: @treeselect-transition-duration transform @ease-out-quart;
- }
- }
- .vue-treeselect__menu--transition {
- &-enter-active,
- &-leave-active {
- // to be overriden
- }
- &-enter,
- &-leave-to {
- // to be overriden
- }
- }
- .vue-treeselect__list--transition {
- &-enter-active,
- &-leave-active {
- // to be overriden
- }
- &-enter,
- &-leave-to {
- // to be overriden
- }
- }
- /**
- * Namespace
- */
- .vue-treeselect {
- position: relative;
- text-align: left;
- [dir="rtl"] & {
- text-align: right;
- }
- div,
- span {
- box-sizing: border-box;
- }
- svg {
- fill: currentColor;
- }
- }
- /**
- * Control
- */
- .vue-treeselect__control {
- .row();
- height: @treeselect-control-height;
- border: @treeselect-control-border-width solid @treeselect-control-border-color;
- border-radius: @treeselect-control-border-radius;
- background: @treeselect-control-bg;
- transition-duration: @treeselect-transition-duration;
- transition-property: border-color, box-shadow, width, height, background-color, opacity;
- transition-timing-function: @ease-out-cubic;
- .vue-treeselect:not(.vue-treeselect--disabled):not(.vue-treeselect--focused) &:hover {
- border-color: @treeselect-control-border-color-hover;
- }
- .vue-treeselect--focused:not(.vue-treeselect--open) & {
- border-color: @treeselect-control-border-color-focus;
- box-shadow: @treeselect-control-box-shadow-focus;
- }
- .vue-treeselect--disabled & {
- background-color: @treeselect-control-bg-disabled;
- }
- .vue-treeselect--open & {
- border-color: @treeselect-control-border-color-active;
- }
- .vue-treeselect--open.vue-treeselect--open-below & {
- .border-radius-bottom(0);
- }
- .vue-treeselect--open.vue-treeselect--open-above & {
- .border-radius-top(0);
- }
- }
- .vue-treeselect__value-container,
- .vue-treeselect__multi-value {
- width: 100%;
- vertical-align: middle;
- }
- .vue-treeselect__value-container {
- display: table-cell;
- position: relative;
- .vue-treeselect--searchable:not(.vue-treeselect--disabled) & {
- // The real input is small and not covering the whole control.
- // We show an I-shape cursor to give user a hint that
- // clicking anywhere in the control will make the input focused.
- .inputtable();
- }
- }
- .vue-treeselect__multi-value {
- display: inline-block;
- .vue-treeselect--has-value & {
- margin-bottom: @treeselect-padding;
- }
- }
- .vue-treeselect__placeholder,
- .vue-treeselect__single-value {
- .text-truncate();
- .horizontal-padding(@treeselect-padding);
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- line-height: @treeselect-control-inner-height;
- user-select: none;
- pointer-events: none;
- }
- .vue-treeselect__placeholder {
- color: @treeselect-placeholder-font-color;
- }
- .vue-treeselect__single-value {
- color: @treeselect-single-value-font-color;
- .vue-treeselect--focused.vue-treeselect--searchable & {
- color: @treeselect-single-value-font-color-focused;
- }
- .vue-treeselect--disabled & {
- // #274 Fix for IE
- position: static;
- }
- }
- .vue-treeselect__multi-value-item-container {
- display: inline-block;
- padding-top: @treeselect-padding;
- padding-right: @treeselect-padding;
- vertical-align: top;
- [dir="rtl"] & {
- padding-right: 0;
- padding-left: @treeselect-padding;
- }
- }
- .vue-treeselect__multi-value-item {
- .clickable();
- display: inline-table;
- background: @treeselect-multi-value-item-bg;
- // Table elements do not have margin, so we set at the container element.
- padding: @treeselect-multi-value-margin-y @treeselect-multi-value-margin-x;
- border: @treeselect-multi-value-item-border-width solid @treeselect-multi-value-item-border-color;
- border-radius: @treeselect-border-radius-sm;
- color: @treeselect-multi-value-font-color;
- font-size: @treeselect-multi-value-font-size;
- vertical-align: top; // stylelint-disable-line plugin/declaration-block-no-ignored-properties
- .vue-treeselect:not(.vue-treeselect--disabled) &:not(.vue-treeselect__multi-value-item-disabled):hover &:not(.vue-treeselect__multi-value-item-new) &:not(.vue-treeselect__multi-value-item-new):hover {
- .clickable();
- background: @treeselect-multi-value-item-bg-hover;
- color: @treeselect-multi-value-font-color-hover;
- }
- &.vue-treeselect__multi-value-item-disabled {
- .reset-cursor();
- background: @treeselect-multi-value-item-bg-disabled;
- color: @treeselect-multi-value-font-color-disabled;
- }
- .vue-treeselect--disabled & {
- .reset-cursor();
- background: @treeselect-multi-value-item-bg-control-disabled;
- border-color: @treeselect-multi-value-item-border-color-control-disabled;
- color: @treeselect-multi-value-item-font-color-control-disabled;
- }
- &.vue-treeselect__multi-value-item-new {
- background: @treeselect-multi-value-item-bg-new;
- &:hover {
- background: @treeselect-multi-value-item-bg-new;
- }
- }
- }
- .vue-treeselect__value-remove,
- .vue-treeselect__multi-value-label {
- display: table-cell;
- padding: @treeselect-multi-value-padding-y @treeselect-multi-value-padding-x;
- vertical-align: middle;
- }
- .vue-treeselect__value-remove {
- color: @treeselect-multi-value-remove-color;
- padding-left: @treeselect-multi-value-padding-x;
- border-left: 1px solid @treeselect-multi-value-divider-color;
- line-height: 0;
- [dir="rtl"] & {
- border-left: 0 none;
- border-right: 1px solid @treeselect-multi-value-divider-color;
- }
- .vue-treeselect__multi-value-item:hover & {
- color: @treeselect-multi-value-remove-color-hover;
- }
- .vue-treeselect--disabled &,
- .vue-treeselect__multi-value-item-disabled & {
- display: none;
- }
- > svg {
- width: @treeselect-multi-value-remove-size;
- height: @treeselect-multi-value-remove-size;
- }
- }
- .vue-treeselect__multi-value-label {
- padding-right: @treeselect-multi-value-padding-x;
- white-space: pre-line;
- user-select: none;
- }
- .vue-treeselect__limit-tip {
- display: inline-block;
- padding-top: @treeselect-padding;
- padding-right: @treeselect-padding;
- vertical-align: top;
- [dir="rtl"] & {
- padding-right: 0;
- padding-left: @treeselect-padding;
- }
- }
- .vue-treeselect__limit-tip-text {
- .reset-cursor();
- display: block;
- margin: @treeselect-multi-value-margin-y @treeselect-multi-value-margin-x;
- padding: (@treeselect-multi-value-padding-y + @treeselect-multi-value-item-border-width) 0;
- color: @treeselect-limit-tip-font-color;
- font-size: @treeselect-limit-tip-font-size;
- font-weight: @treeselect-limit-tip-font-weight;
- }
- .vue-treeselect__input-container {
- display: block;
- max-width: 100%;
- outline: none;
- .vue-treeselect--single & {
- font-size: @treeselect-single-input-font-size;
- height: 100%;
- }
- .vue-treeselect--multi & {
- display: inline-block;
- font-size: @treeselect-multi-input-font-size;
- vertical-align: top;
- }
- .vue-treeselect--searchable & {
- .horizontal-padding(@treeselect-padding);
- }
- .vue-treeselect--searchable.vue-treeselect--multi.vue-treeselect--has-value & {
- padding-top: @treeselect-padding;
- padding-left: 0;
- [dir="rtl"] & {
- padding-left: @treeselect-padding;
- padding-right: 0;
- }
- }
- .vue-treeselect--disabled & {
- display: none;
- }
- }
- .vue-treeselect__input,
- .vue-treeselect__sizer {
- margin: 0;
- line-height: inherit;
- font-family: inherit;
- font-size: inherit;
- }
- .vue-treeselect__input {
- max-width: 100%;
- margin: 0;
- padding: 0;
- border: 0;
- outline: none;
- box-sizing: content-box;
- box-shadow: none;
- background: none transparent;
- line-height: 1;
- vertical-align: middle;
- &::-ms-clear {
- display: none;
- }
- .vue-treeselect--single & {
- width: 100%;
- height: 100%;
- }
- .vue-treeselect--multi & {
- .vertical-padding(@treeselect-multi-value-margin-y + @treeselect-multi-value-item-border-width);
- }
- .vue-treeselect--has-value & {
- line-height: inherit;
- vertical-align: top;
- }
- }
- .vue-treeselect__sizer {
- position: absolute;
- top: 0;
- left: 0;
- visibility: hidden;
- height: 0;
- overflow: scroll;
- white-space: pre;
- }
- .vue-treeselect__x-container {
- .narrow-cell();
- .clickable();
- color: @treeselect-x-color;
- animation: @treeselect-transition-duration vue-treeselect-animation-fade-in @ease-out-circ;
- &:hover {
- color: @treeselect-x-color-hover;
- }
- }
- .vue-treeselect__x {
- width: @treeselect-x-size;
- height: @treeselect-x-size;
- }
- .vue-treeselect__control-arrow-container {
- .narrow-cell();
- .clickable();
- .vue-treeselect--disabled & {
- .reset-cursor();
- }
- }
- .vue-treeselect__control-arrow {
- width: @treeselect-arrow-size;
- height: @treeselect-arrow-size;
- color: @treeselect-arrow-color;
- .vue-treeselect:not(.vue-treeselect--disabled) .vue-treeselect__control-arrow-container:hover & {
- color: @treeselect-arrow-color-hover;
- }
- .vue-treeselect--disabled & {
- opacity: 0.35;
- }
- }
- .vue-treeselect__control-arrow--rotated {
- transform: rotateZ(180deg);
- }
- /**
- * Menu
- */
- .vue-treeselect__menu-container {
- position: absolute;
- left: 0;
- width: 100%;
- overflow: visible;
- transition: 0s;
- .vue-treeselect--open-below:not(.vue-treeselect--append-to-body) & {
- top: 100%;
- }
- .vue-treeselect--open-above:not(.vue-treeselect--append-to-body) & {
- bottom: 100%;
- }
- }
- .vue-treeselect__menu {
- .reset-cursor(); // set to normal cursor since text is unselectable
- .vertical-padding(@treeselect-menu-padding-y);
- display: block;
- position: absolute;
- overflow-x: hidden;
- overflow-y: auto;
- // IE9 does not properly handle `width: 100%` with scrollbar when `box-sizing: border-box`
- width: auto;
- border: 1px solid @treeselect-control-border-color-active;
- background: @treeselect-menu-bg;
- line-height: @treeselect-menu-line-height;
- // https://css-tricks.com/snippets/css/momentum-scrolling-on-ios-overflow-elements/
- -webkit-overflow-scrolling: touch;
- .vue-treeselect--open-below & {
- .border-radius-bottom(@treeselect-border-radius-lg);
- top: 0;
- margin-top: (-@treeselect-control-border-width);
- border-top-color: @treeselect-control-menu-divider-color;
- box-shadow: @treeselect-menu-box-shadow;
- }
- .vue-treeselect--open-above & {
- .border-radius-top(@treeselect-border-radius-lg);
- bottom: 0;
- margin-bottom: (-@treeselect-control-border-width);
- border-bottom-color: @treeselect-control-menu-divider-color;
- }
- }
- .generate-level-indentations(@i) when (@i >= 0) {
- .generate-level-indentations((@i - 1));
- .vue-treeselect__indent-level-@{i} {
- .vue-treeselect__option {
- padding-left: @treeselect-padding + @i * @treeselect-narrow-cell-width;
- [dir="rtl"] & {
- padding-left: @treeselect-padding;
- padding-right: @treeselect-padding + @i * @treeselect-narrow-cell-width;
- }
- }
- .vue-treeselect__tip {
- padding-left: @treeselect-padding + (@i + 1) * @treeselect-narrow-cell-width;
- [dir="rtl"] & {
- padding-left: @treeselect-padding;
- padding-right: @treeselect-padding + (@i + 1) * @treeselect-narrow-cell-width;
- }
- }
- }
- }
- .generate-level-indentations(@treeselect-max-level);
- .vue-treeselect__option {
- .row();
- }
- .vue-treeselect__option--highlight {
- background: @treeselect-option-bg-highlight;
- }
- .vue-treeselect__option--selected {
- // note that these should override `.vue-treeselect__option--highlight`
- .vue-treeselect--single & {
- background: @treeselect-option-selected-bg;
- font-weight: 600;
- &:hover {
- background: @treeselect-option-selected-bg-hover;
- }
- }
- }
- .vue-treeselect__option--hide {
- display: none;
- }
- .vue-treeselect__option-arrow-container,
- .vue-treeselect__option-arrow-placeholder {
- .narrow-cell();
- }
- .vue-treeselect__option-arrow-container {
- .clickable();
- }
- .vue-treeselect__option-arrow {
- display: inline-block;
- width: @treeselect-arrow-size;
- height: @treeselect-arrow-size;
- color: @treeselect-arrow-color;
- vertical-align: middle;
- transition: @treeselect-transition-duration transform @treeselect-arrow-transition-timing-function;
- transform: rotateZ(-90deg);
- [dir="rtl"] & {
- transform: rotateZ(90deg);
- }
- .vue-treeselect__option-arrow-container:hover &,
- .vue-treeselect--branch-nodes-disabled .vue-treeselect__option:hover & {
- color: @treeselect-arrow-color-hover;
- }
- }
- .vue-treeselect__option-arrow--rotated {
- transform: rotateZ(0);
- [dir="rtl"] & {
- transform: rotateZ(0);
- }
- &.vue-treeselect__option-arrow--prepare-enter {
- transform: rotateZ(-90deg) !important; // stylelint-disable-line declaration-no-important
- [dir="rtl"] & {
- transform: rotateZ(90deg) !important; // stylelint-disable-line declaration-no-important
- }
- }
- }
- .vue-treeselect__label-container {
- .cell();
- .clickable();
- display: table;
- width: 100%;
- table-layout: fixed;
- color: @treeselect-option-label-color;
- .vue-treeselect__option--disabled & {
- .forbidden();
- color: @treeselect-option-label-color-disabled;
- }
- }
- .vue-treeselect__checkbox-container {
- display: table-cell;
- width: @treeselect-narrow-cell-width;
- min-width: @treeselect-narrow-cell-width;
- height: 100%;
- text-align: center;
- vertical-align: middle;
- }
- .vue-treeselect__checkbox {
- display: block;
- margin: auto;
- width: @treeselect-checkbox-size;
- height: @treeselect-checkbox-size;
- border-width: 1px;
- border-style: solid;
- border-radius: @treeselect-border-radius-sm;
- position: relative;
- transition: @treeselect-transition-duration all @ease-out-circ;
- }
- .vue-treeselect__check-mark,
- .vue-treeselect__minus-mark {
- display: block;
- position: absolute;
- left: 1px;
- top: 1px;
- background-repeat: no-repeat;
- opacity: 0;
- transition: @treeselect-transition-duration all ease;
- }
- .vue-treeselect__minus-mark {
- width: image-width(@treeselect-checkbox-indeterminate-icon);
- height: image-height(@treeselect-checkbox-indeterminate-icon);
- // Svg icons are rendered differently in different browsers thus unacceptable.
- // Png provides the best consistency with a drawback that
- // its color can't be controlled by CSS.
- .retina(@treeselect-checkbox-indeterminate-icon, 3);
- background-size: image-size(@treeselect-checkbox-indeterminate-icon);
- .vue-treeselect__checkbox--indeterminate > & {
- opacity: 1;
- }
- .vue-treeselect__checkbox--disabled & {
- .retina(@treeselect-checkbox-disabled-indeterminate-icon, 3);
- }
- }
- .vue-treeselect__check-mark {
- width: image-width(@treeselect-checkbox-checked-icon);
- height: image-height(@treeselect-checkbox-checked-icon);
- .retina(@treeselect-checkbox-checked-icon, 3);
- background-size: image-size(@treeselect-checkbox-checked-icon);
- // Set initial height to 1px.
- transform: scaleY(1 / unit(image-height(@treeselect-checkbox-checked-icon)));
- .vue-treeselect__checkbox--checked > & {
- opacity: 1;
- transform: scaleY(1);
- }
- .vue-treeselect__checkbox--disabled & {
- .retina(@treeselect-checkbox-disabled-checked-icon, 3);
- }
- }
- .vue-treeselect__checkbox--unchecked {
- border-color: @treeselect-checkbox-border-color;
- background: @treeselect-checkbox-bg;
- .vue-treeselect__label-container:hover & {
- border-color: @treeselect-checkbox-border-color-hover;
- background: @treeselect-checkbox-bg-hover;
- }
- }
- .vue-treeselect__checkbox--indeterminate {
- border-color: @treeselect-checkbox-indeterminate-border-color;
- background: @treeselect-checkbox-indeterminate-bg;
- .vue-treeselect__label-container:hover & {
- border-color: @treeselect-checkbox-indeterminate-border-color-hover;
- background: @treeselect-checkbox-indeterminate-bg-hover;
- }
- }
- .vue-treeselect__checkbox--checked {
- border-color: @treeselect-checkbox-checked-border-color;
- background: @treeselect-checkbox-checked-bg;
- .vue-treeselect__label-container:hover & {
- border-color: @treeselect-checkbox-checked-border-color-hover;
- background: @treeselect-checkbox-checked-bg-hover;
- }
- }
- .vue-treeselect__checkbox--disabled {
- border-color: @treeselect-checkbox-disabled-border-color;
- background-color: @treeselect-checkbox-disabled-bg-color;
- .vue-treeselect__label-container:hover & {
- border-color: @treeselect-checkbox-disabled-border-color;
- background-color: @treeselect-checkbox-disabled-bg-color;
- }
- }
- .vue-treeselect__label {
- .text-truncate();
- display: table-cell;
- padding-left: @treeselect-padding;
- max-width: 100%;
- vertical-align: middle;
- cursor: inherit; // override user agent style
- [dir="rtl"] & {
- padding-left: 0;
- padding-right: @treeselect-padding;
- }
- }
- .vue-treeselect__count {
- margin-left: @treeselect-padding;
- font-weight: 400;
- opacity: 0.6;
- [dir="rtl"] & {
- margin-left: 0;
- margin-right: @treeselect-padding;
- }
- }
- .vue-treeselect__tip {
- .row();
- color: @treeselect-tip-color;
- }
- .vue-treeselect__tip-text {
- .wide-cell();
- font-size: @treeselect-tip-font-size;
- }
- .vue-treeselect__retry {
- .vue-treeselect__error-tip & {
- .clickable();
- margin-left: @treeselect-padding;
- font-style: normal;
- font-weight: 600;
- text-decoration: none;
- color: @treeselect-retry-text-color;
- [dir="rtl"] & {
- margin-left: 0;
- margin-right: @treeselect-padding;
- }
- }
- }
- .vue-treeselect__icon-container {
- .narrow-cell();
- .vue-treeselect--single & {
- padding-left: @treeselect-padding;
- [dir="rtl"] & {
- padding-left: 0;
- padding-right: @treeselect-padding;
- }
- }
- }
- .vue-treeselect__icon-warning {
- .icon();
- .rounded();
- position: relative;
- width: @treeselect-icon-size;
- height: @treeselect-icon-size;
- background: @treeselect-warning-icon-bg;
- &::after {
- display: block;
- position: absolute;
- content: "";
- left: 5px;
- top: 2.5px;
- width: 2px;
- height: 1px;
- border: 0 solid #fff;
- border-top-width: 5px;
- border-bottom-width: 1px;
- }
- }
- .vue-treeselect__icon-error {
- .icon();
- .rounded();
- @stroke-length: 6px;
- position: relative;
- width: @treeselect-icon-size;
- height: @treeselect-icon-size;
- background: @treeselect-error-icon-bg;
- &::before,
- &::after {
- display: block;
- position: absolute;
- content: "";
- background: #fff;
- transform: rotate(45deg);
- }
- &::before {
- width: @stroke-length;
- height: 2px;
- left: 3px;
- top: 5px;
- }
- &::after {
- width: 2px;
- height: @stroke-length;
- left: 5px;
- top: 3px;
- }
- }
- .vue-treeselect__icon-loader {
- .icon();
- position: relative;
- width: @treeselect-icon-size;
- height: @treeselect-icon-size;
- text-align: center;
- animation: @treeselect-loader-animation-duration vue-treeselect-animation-rotate linear infinite;
- &::before,
- &::after {
- .rounded();
- position: absolute;
- content: "";
- left: 0;
- top: 0;
- display: block;
- width: 100%;
- height: 100%;
- opacity: 0.6;
- animation: @treeselect-loader-animation-duration vue-treeselect-animation-bounce ease-in-out infinite;
- }
- &::before {
- background: @treeselect-loader-color-dark;
- }
- &::after {
- background: @treeselect-loader-color-light;
- animation-delay: -(@treeselect-loader-animation-duration / 2);
- }
- }
- /**
- * Menu Portal
- */
- .vue-treeselect__menu-placeholder {
- display: none;
- }
- .vue-treeselect__portal-target {
- position: absolute;
- display: block;
- left: 0;
- top: 0;
- height: 0;
- width: 0;
- padding: 0;
- margin: 0;
- border: 0;
- overflow: visible;
- box-sizing: border-box;
- }
|