@import './mixins/mixins.scss'; @mixin cascader-size-mixin ($size) { @include b(cascader-menu) { @include m($size + '-size') { @include b(cascader-submenu) { height: map-get($--n-height, $size) * 6.6; @include b(cascader-option) { height: map-get($--n-height, $size); line-height: map-get($--n-height, $size); font-size: map-get($--n-font-size, $size); } } } } } @include cascader-size-mixin('small'); @include cascader-size-mixin('medium'); @include cascader-size-mixin('large'); @include b(cascader) { width: 100%; } @include themes-mixin { @include b(cascader-menu) { @include once { @include fade-in-scale-up-transition(cascader-menu, inherit, .2s); transform: $--n-transform-debounce-scale; position: relative; margin: 4px 0; display: flex; flex-wrap: nowrap; border-radius: $--n-cascader-border-radius; overflow: hidden; /** * if width not set, cascader select menu's inner scroll area's width is * not correct, which won't change after select menu width is set */ @include b(scrollbar) { width: 100%; } } box-shadow: $--cascader-menu-box-shadow; @include b(cascader-submenu) { @include once { position: relative; overflow: hidden; min-width: 182px; @include b(scrollbar-content) { position: relative; } &:first-child { border-top-left-radius: $--n-cascader-border-radius; border-bottom-left-radius: $--n-cascader-border-radius; } &:last-child { border-top-right-radius: $--n-cascader-border-radius; border-bottom-right-radius: $--n-cascader-border-radius; } } &:not(:first-child) { border-left: 1px solid $--cascader-menu-border-color; } background-color: $--cascader-menu-background-color; } @include b(cascader-option) { @include once { box-sizing: border-box; min-width: 182px; background-color: transparent; transition: background-color .2s $--n-ease-in-out-cubic-bezier, color 0.2s $--n-ease-in-out-cubic-bezier; display: flex; padding: 0px 24px 0 33px; white-space: nowrap; position: relative; cursor: pointer; } color: map-get($--cascader-option-text-color, 'default'); @include not-m(not-leaf) { &::after { @include once { content: ''; height: 6px; width: 3px; position: absolute; right: 14px; transform: rotate(45deg) scale(.5); top: calc(50% - 4px); opacity: 0; transition: transform .3s $--n-ease-in-out-cubic-bezier, opacity .3s $--n-ease-in-out-cubic-bezier; } border-right: 1px solid $--cascader-item-check-mark-color; border-bottom: 1px solid $--cascader-item-check-mark-color; } } @include once { @include m(single-type) { padding: 0px 24px 0 18px; } @include e(checkbox) { position: absolute; top: 50%; transform: translateY(-50%); left: 10px; display: block; } @include e(radio) { position: absolute; top: 50%; transform: translateY(-50%); left: 10px; display: block; } @include e(loading) { @include fade-in-scale-up-transition( cascader-option-loading, $original-transform: translateY(-50%) ); position: absolute; width: 14px; height: 14px; right: 10px; top: 50%; transform: translateY(-50%); display: block; } } @include m(selected) { color: map-get($--cascader-option-text-color, 'active'); @include once { &::after { transform: rotate(45deg) scale(1); opacity: 1; } } } @include m(active) { color: map-get($--cascader-option-text-color, 'active'); } @include m(disabled) { color: map-get($--cascader-option-text-color, 'disabled'); @include once { cursor: not-allowed; } } @include m(tracked) { background-color: $--cascader-menu-tracking-rect-background-color; } @include m(not-leaf) { &::after { @include once { content: ''; position: absolute; width: 5px; height: 5px; transform: rotate(45deg) translateY(-50%); right: 18px; top: 50%; opacity: 1; transition: opacity .3s $--n-ease-in-out-cubic-bezier; } border-top: 2px solid $--cascader-option-arrow-background-color; border-right: 2px solid $--cascader-option-arrow-background-color; } } @include once { @include m(loading) { @include m(not-leaf) { &::after { opacity: 0; } } } } } @include b(base-tracking-rect) { @include e(body) { background-color: $--cascader-menu-tracking-rect-background-color !important; } } } }