@use 'mixins/mixins';
@use 'mixins/utils';
@use './common/var';

@include mixins.b(progress) {
	position: relative;
	line-height: 1;

	@include mixins.e(text) {
		font-size: 14px;
		color: var(--color-text-dark);
		display: inline-block;
		vertical-align: middle;
		margin-left: 10px;
		line-height: 1;

		i {
			vertical-align: middle;
			display: block;
		}
	}

	@include mixins.m((circle, dashboard)) {
		display: inline-block;

		.el-progress__text {
			position: absolute;
			top: 50%;
			left: 0;
			width: 100%;
			text-align: center;
			margin: 0;
			transform: translate(0, -50%);

			i {
				vertical-align: middle;
				display: inline-block;
			}
		}
	}

	@include mixins.m(without-text) {
		.el-progress__text {
			display: none;
		}

		.el-progress-bar {
			padding-right: 0;
			margin-right: 0;
			display: block;
		}
	}

	@include mixins.m(text-inside) {
		.el-progress-bar {
			padding-right: 0;
			margin-right: 0;
		}
	}

	@include mixins.when(success) {
		.el-progress-bar__inner {
			background-color: var(--color-success);
		}

		.el-progress__text {
			color: var(--color-success);
		}
	}

	@include mixins.when(warning) {
		.el-progress-bar__inner {
			background-color: var(--color-warning);
		}

		.el-progress__text {
			color: var(--color-warning);
		}
	}

	@include mixins.when(exception) {
		.el-progress-bar__inner {
			background-color: var(--color-danger);
		}

		.el-progress__text {
			color: var(--color-danger);
		}
	}
}

@include mixins.b(progress-bar) {
	padding-right: 50px;
	display: inline-block;
	vertical-align: middle;
	width: 100%;
	margin-right: -55px;
	box-sizing: border-box;

	@include mixins.e(outer) {
		height: 6px;
		border-radius: 100px;
		background-color: var(--border-color-light);
		overflow: hidden;
		position: relative;
		vertical-align: middle;
	}
	@include mixins.e(inner) {
		position: absolute;
		left: 0;
		top: 0;
		height: 100%;
		background-color: var(--color-primary);
		text-align: right;
		border-radius: 100px;
		line-height: 1;
		white-space: nowrap;
		transition: width 0.6s ease;

		@include utils.utils-vertical-center;
	}

	@include mixins.e(innerText) {
		display: inline-block;
		vertical-align: middle;
		color: var.$color-white;
		font-size: 12px;
		margin: 0 5px;
	}
}

@keyframes progress {
	0% {
		background-position: 0 0;
	}

	100% {
		background-position: 32px 0;
	}
}
