326 lines
8.5 KiB
SCSS

// 箭头
// ----------------------------------------
@mixin step-item-state-rtl(
$shape: 'circle',
$background: $color-white
) {
#{$step-prefix}-item-node-dot {
right: 50%;
left: auto;
}
@if ($shape == 'arrow') {
background: $background;
&:before {
border: $step-arrow-item-border-width solid $background;
border-right-color: transparent;
}
&:after {
border-right-color: $background;
border-left-color: transparent;
}
}
}
@mixin state-node-size-rtl($type: 'hor', $shape: 'circle', $node-size: $s-8) {
@if ($type == 'hor') {
@if ($shape == 'circle') {
& > #{$step-prefix}-item-body {
right: - ($step-circle-item-body-width - $node-size - $step-circle-item-node-padding * 2) / 2;
left: auto;
}
}
@if ($shape == 'dot') {
& > #{$step-prefix}-item-body {
right: - ($step-dot-item-body-width - $node-size - $step-dot-item-dot-padding * 2) / 2;
left: auto;
}
}
}
@if ($type == 'ver') {
@if ($shape == 'circle') {
& > #{$step-prefix}-item-body {
right: $node-size / 2;
left: auto;
margin-right: $step-circle-item-node-padding;
margin-left: 0;
& > #{$step-prefix}-item-title {
text-align: right;
@include reset-font;
}
& > #{$step-prefix}-item-content {
text-align: right;
}
}
}
@if ($shape == 'dot') {
& > #{$step-prefix}-item-body {
right: $node-size / 2;
left: auto;
margin-right: $step-dot-item-dot-padding;
margin-left: 0;
& > #{$step-prefix}-item-title {
text-align: right;
@include reset-font;
}
& > #{$step-prefix}-item-content {
text-align: right;
}
}
}
}
}
@mixin label-placement-rtl($node-size: $s-8) {
#{$step-prefix}-item-body {
left: auto;
right: 0;
text-align: right;
#{$step-prefix}-item-title {
padding-left: $step-circle-item-node-padding;
padding-right: 0;
}
}
#{$step-prefix}-item-tail {
left: 0;
right: auto;
}
}
#{$step-prefix}-horizontal[dir="rtl"] {
& > #{$step-prefix}-item {
text-align: right;
}
}
#{$step-prefix}-arrow[dir="rtl"] {
#{$step-prefix}-item {
@include step-item-size(
$step-arrow-item-height,
auto,
$step-arrow-item-height/8,
$step-arrow-item-height/2
);
&:before {
right: -$step-arrow-item-border-width;
left: auto;
border: $step-arrow-item-border-width solid transparent;
border-right-color: transparent;
}
&:after {
left: -$step-arrow-item-border-width * 2;
right: auto;
border-top: $step-arrow-item-border-width solid transparent;
border-bottom: $step-arrow-item-border-width solid transparent;
border-right: $step-arrow-item-border-width solid transparent;
}
}
& > #{$step-prefix}-item-wait {
@include step-item-state-rtl(
'arrow',
$step-arrow-item-wait-background
);
}
& > #{$step-prefix}-item-process {
@include step-item-state-rtl(
'arrow',
$step-arrow-item-process-background
);
}
& > #{$step-prefix}-item-finish {
@include step-item-state-rtl(
'arrow',
$step-arrow-item-finish-background
);
}
#{$step-prefix}-item-disabled {
@include step-item-state-rtl(
'arrow',
$step-arrow-item-disabled-background
);
}
#{$step-prefix}-item-first {
margin-right: 0;
}
#{$step-prefix}-item-last {
margin-left: 0;
}
}
// 圆形
// ----------------------------------------
#{$step-prefix}-circle[dir="rtl"] {
& > #{$step-prefix}-item-wait {
@include step-item-state-rtl(
'circle',
$step-circle-item-node-wait-background
);
}
& > #{$step-prefix}-item-process {
@include step-item-state-rtl(
'circle',
$step-circle-item-node-process-background
);
}
& > #{$step-prefix}-item-finish {
@include step-item-state-rtl(
'circle',
$step-circle-item-node-finish-background
);
}
#{$step-prefix}-item-disabled {
@include step-item-state-rtl(
'circle',
$step-circle-item-node-disabled-background
);
}
// 圆形 水平
// ----------------------------------------
&#{$step-prefix}-horizontal {
& > #{$step-prefix}-item-wait {
@include state-node-size-rtl('hor', 'circle');
}
& > #{$step-prefix}-item-process {
@include state-node-size-rtl('hor', 'circle', $step-circle-item-node-process-size);
}
& > #{$step-prefix}-item-finish {
@include state-node-size-rtl('hor', 'circle');
}
& > #{$step-prefix}-item-disabled {
@include state-node-size-rtl('hor', 'circle');
}
}
&#{$step-prefix}-horizontal#{$step-prefix}-label-horizontal {
& > #{$step-prefix}-item-wait {
@include label-placement-rtl();
}
& > #{$step-prefix}-item-process {
@include label-placement-rtl($step-circle-item-node-process-size);
}
& > #{$step-prefix}-item-finish {
@include label-placement-rtl();
}
& > #{$step-prefix}-item-disabled {
@include label-placement-rtl();
}
}
// 圆形 垂直
// ----------------------------------------
&#{$step-prefix}-vertical {
& > #{$step-prefix}-item-wait {
@include state-node-size-rtl('ver', 'circle');
}
& > #{$step-prefix}-item-process {
@include state-node-size-rtl('ver', 'circle', $step-circle-item-node-process-size);
}
& > #{$step-prefix}-item-finish {
@include state-node-size-rtl('ver', 'circle');
}
& > #{$step-prefix}-item-disabled {
@include state-node-size-rtl('ver', 'circle');
}
}
}
// 点型
// ----------------------------------------
#{$step-prefix}-dot[dir="rtl"] {
& > #{$step-prefix}-item-wait {
@include step-item-state-rtl(
'dot',
$step-dot-item-node-wait-background
);
}
& > #{$step-prefix}-item-process {
@include step-item-state-rtl(
'dot',
$step-dot-item-node-process-background
);
}
& > #{$step-prefix}-item-finish {
@include step-item-state-rtl(
'dot',
$step-dot-item-node-finish-background
);
}
#{$step-prefix}-item-disabled {
@include step-item-state-rtl(
'dot',
$step-dot-item-node-disabled-background
);
}
// 点型 水平
// ----------------------------------------
&#{$step-prefix}-horizontal {
& > #{$step-prefix}-item-wait {
@include state-node-size-rtl('hor', 'dot', $s-3);
}
& > #{$step-prefix}-item-process {
@include state-node-size-rtl('hor', 'dot', $step-dot-item-dot-process-size);
}
& > #{$step-prefix}-item-finish {
@include state-node-size-rtl('hor', 'dot', $s-3);
}
& > #{$step-prefix}-item-disabled {
@include state-node-size-rtl('hor', 'dot', $s-3);
}
}
// 点型 垂直
// ----------------------------------------
&#{$step-prefix}-vertical {
padding: 0 4px 0 0;
& > #{$step-prefix}-item-wait {
@include state-node-size-rtl('ver', 'dot', $s-3);
}
& > #{$step-prefix}-item-process {
@include state-node-size-rtl('ver', 'dot', $step-dot-item-dot-process-size);
}
& > #{$step-prefix}-item-finish {
@include state-node-size-rtl('ver', 'dot', $s-3);
}
& > #{$step-prefix}-item-disabled {
@include state-node-size-rtl('ver', 'dot', $s-3);
}
}
}