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

@include mixins.b(pagination) {
	white-space: nowrap;
	padding: 2px 5px;
	color: var.$pagination-font-color;
	font-weight: bold;
	@include utils.utils-clearfix;

	span:not([class*='suffix']),
	button {
		display: inline-block;
		font-size: var.$pagination-font-size;
		min-width: var.$pagination-button-width;
		height: var.$pagination-button-height;
		line-height: var.$pagination-button-height;
		vertical-align: top;
		box-sizing: border-box;
	}

	.el-input__inner {
		text-align: center;
		-moz-appearance: textfield;
		line-height: normal;
	}

	// pagesize 的下拉 icon
	.el-input__suffix {
		right: 0;
		transform: scale(0.8);
	}

	.el-select .el-input {
		width: 100px;
		margin: 0 5px;

		.el-input__inner {
			padding-right: 25px;
			border-radius: var.$pagination-border-radius;
		}
	}

	button {
		border: none;
		padding: 0 6px;
		background: transparent;

		&:focus {
			outline: none;
		}

		&:hover {
			color: var.$pagination-hover-color;
		}

		&:disabled {
			color: var.$pagination-button-disabled-color;
			background-color: var.$pagination-button-disabled-background-color;
			cursor: not-allowed;
		}
	}

	.btn-prev,
	.btn-next {
		background: center center no-repeat;
		background-size: 16px;
		background-color: var.$pagination-background-color;
		cursor: pointer;
		margin: 0;
		color: var.$pagination-button-color;

		.el-icon {
			display: block;
			font-size: 12px;
			font-weight: bold;
		}
	}

	.btn-prev {
		padding-right: 12px;
	}

	.btn-next {
		padding-left: 12px;
	}

	.el-pager li.disabled {
		color: var(--color-text-lighter);
		cursor: not-allowed;
	}

	@include mixins.m(small) {
		.btn-prev,
		.btn-next,
		.el-pager li,
		.el-pager li.btn-quicknext,
		.el-pager li.btn-quickprev,
		.el-pager li:last-child {
			border-color: transparent;
			font-size: 12px;
			line-height: 22px;
			height: 22px;
			min-width: 22px;
		}

		.arrow.disabled {
			visibility: hidden;
		}

		.more::before,
		li.more::before {
			line-height: 24px;
		}

		span:not([class*='suffix']),
		button {
			height: 22px;
			line-height: 22px;
		}

		@include mixins.e(editor) {
			height: 22px;
			&.el-input .el-input__inner {
				height: 22px;
			}
		}
	}

	@include mixins.e(sizes) {
		margin: 0 10px 0 0;
		font-weight: normal;
		color: var(--color-text-dark);

		.el-input .el-input__inner {
			font-size: var.$pagination-font-size;
			padding-left: 8px;

			&:hover {
				border-color: var.$pagination-hover-color;
			}
		}
	}

	@include mixins.e(total) {
		margin-right: 10px;
		font-weight: normal;
		color: var(--color-text-dark);
	}

	@include mixins.e(jump) {
		margin-left: 24px;
		font-weight: normal;
		color: var(--color-text-dark);

		.el-input__inner {
			padding: 0 3px;
		}
	}

	@include mixins.e(rightwrapper) {
		float: right;
	}

	@include mixins.e(editor) {
		line-height: 18px;
		padding: 0 2px;
		height: var.$pagination-button-height;

		text-align: center;
		margin: 0 2px;
		box-sizing: border-box;
		border-radius: var.$pagination-border-radius;

		&.el-input {
			width: 50px;
		}

		&.el-input .el-input__inner {
			height: var.$pagination-button-height;
		}

		.el-input__inner::-webkit-inner-spin-button,
		.el-input__inner::-webkit-outer-spin-button {
			-webkit-appearance: none;
			margin: 0;
		}
	}

	@include mixins.when(background) {
		.btn-prev,
		.btn-next,
		.el-pager li {
			margin: 0 1px;
			color: var(--color-text-base);
			min-width: 30px;
			border-radius: var(--border-radius-base);
			border: 1px solid transparent;

			&.disabled {
				color: var(--color-text-lighter);
			}
		}

		.btn-prev,
		.btn-next {
			padding: 0;

			&:disabled {
				color: var(--color-text-lighter);
			}
		}

		.el-pager li:not(.disabled) {
			&:hover {
				color: var(--color-primary);
				background-color: var(--color-background-xlight);
				border: 1px solid var(--color-foreground-base);
			}

			&.active {
				border: 1px solid var(--color-primary);
				color: var(--color-primary);
			}
		}

		&.el-pagination--small {
			.btn-prev,
			.btn-next,
			.el-pager li {
				margin: 0 3px;
				min-width: 22px;
			}
		}
	}
}

@include mixins.b(pager) {
	user-select: none;
	list-style: none;
	display: inline-block;
	vertical-align: top;
	font-size: 0;
	padding: 0;
	margin: 0;

	.more::before {
		line-height: 30px;
	}

	li {
		padding: 0 4px;
		background: var.$pagination-background-color;
		vertical-align: top;
		font-size: var.$pagination-font-size;
		min-width: var.$pagination-button-width;
		height: var.$pagination-button-height;
		line-height: var.$pagination-button-height;
		cursor: pointer;
		box-sizing: border-box;
		text-align: center;
		margin: 0;
		display: inline-flex;
		align-items: center;
		justify-content: center;

		&.btn-quicknext,
		&.btn-quickprev {
			line-height: 28px;
			color: var.$pagination-button-color;

			&.disabled {
				color: var(--color-text-lighter);
			}
		}

		&.btn-quickprev:hover {
			cursor: pointer;
		}

		&.btn-quicknext:hover {
			cursor: pointer;
		}

		&.active + li {
			border-left: 0;
		}

		&:hover {
			color: var.$pagination-hover-color;
		}

		&.active {
			color: var.$pagination-hover-color;
			cursor: default;
		}
	}
}
