@import "../sass/main";

// Mixins
@mixin opacityBlock($opacity: 1) {
	> .kit-filtration-condition
		> .kit-filtration-condition__item-text:not(.kit-filtration-condition__item-text_edit):not(.kit-filtration-condition__item-text_linked-condition-edit) {
		> * {
			opacity: $opacity;
		}

		&:hover {
			> * {
				opacity: 1;
			}
		}
	}

	@include changeHorizontalBracketsOpacity($opacity);
	@include changeVerticalSmallBracketOpacity($opacity);
}

.kit-filtration-group {
	$self: &;
	position: relative;
	min-height: $minHeight;
	margin: 0;
	padding: 0;
	box-sizing: border-box;

	&_or {
		@include changeColorVerticalSmallBracket($orColor);
	}

	&_and {
		@include changeColorVerticalSmallBracket($andColor);
	}

	&_read-only {
		&#{$self}_no-label#{$self}_not-children {
			display: none;
		}
	}

	&_shaded {
		@include opacityBlock(0.3);
	}

	&_edit {
		@include opacityBlock();

		z-index: 5;

		> .kit-filtration-group__label_hover_or,
		> .kit-filtration-group__label_hover_and {
			background-color: $hoverColorBg;
		}

		> .kit-filtration-group {
			> .kit-filtration-group__label-line_hover_or {
				color: $orColorEdit;

				@include changeHorizontalBracketsColor($orColorEdit);
			}

			> .kit-filtration-group__label-line_hover_and {
				color: $andColorEdit;

				@include changeHorizontalBracketsColor($andColorEdit);
			}
		}

		.kit-segment-button-expand,
		.kit-segment-button-edit,
		.kit-segment-content {
			border-color: $segmentBorderColorEditMode;
		}

		.kit-segment-button-expand {
			&_open {
				border-color: transparent;
			}
		}
	}

	&_not-children {
		min-height: $minHeight;

		&#{$self}_edit {
			z-index: 5;
		}
	}

	&:not(#{ $self }_not-children) {
		#{ $self }_not-children {
			> .kit-filtration-group__label-line_or,
			> .kit-filtration-group__label-line_and {
				.kit-filtration-group__label-text-buttons {
					margin-right: -16px;
				}
			}
		}
	}

	&_hover {
		cursor: pointer;

		@include opacityBlock();

		&#{$self}_or {
			@include changeColorVerticalSmallBracket($orColorEdit);
		}

		&#{$self}_and {
			@include changeColorVerticalSmallBracket($andColorEdit);
		}

		> .kit-filtration-group__label_hover_or {
			background-color: $hoverColorBg;
			color: $orColorEdit;
		}

		> .kit-filtration-group__label_hover_and {
			background-color: $hoverColorBg;
			color: $andColorEdit;
		}
	}

	> .kit-filtration-condition {
		width: 100%;
		max-width: calc(100% - 30px);
		margin: 0;
		margin-left: 17px;
		box-sizing: border-box;
	}

	@include createVerticalSmallBracket;

	.kit-filter__btn {
		position: relative;
		margin-left: 20px;
		box-sizing: border-box;
	}
}

.kit-filtration-condition__item-text {
	.kit-filtration-group > .kit-filtration-condition > & {
		@include createHorizontalBrackets(-13px, 15px);
	}
}

.kit-filtration-group__label {
	position: absolute;
	top: 0;
	left: -16px;
	z-index: 1;
	display: flex;
	align-items: center;
	width: calc(100% + 27px);
	height: 1px;
	padding: 15px $groupLabelPaddingLeft;
	border-radius: 3px 0 0 3px;
	box-sizing: border-box;
	color: $bracketColor;

	.kit-filtration-group_read-only & {
		pointer-events: none;
		cursor: default;
	}

	& ~ .kit-filtration-group,
	& ~ .kit-filtration-condition {
		.kit-filtration-group__label {
			left: -10px;
			width: calc(100% + 10px);
			border-radius: 0 0 0 3px;
		}
	}

	& ~ ul {
		margin-left: 30px;
	}

	& ~ .kit-filtration-group_not-children.kit-filtration-group_edit {
		margin-left: 60px;
	}
}

.kit-filtration-group__label-line {
	position: absolute;
	left: 5px;
	display: inline-flex;
	align-items: center;
	width: $borderWidthLine;
	margin-top: 0;
	margin-left: -1px;
	box-sizing: border-box;
	cursor: pointer;

	.kit-filtration-group_read-only & {
		pointer-events: none;
		cursor: default;
	}

	.kit-filtration-group_edit > &,
	.kit-filtration-group_not-applicable > & {
		z-index: 5;
	}

	.kit-filtration-group_hover > .kit-filtration-group__label_hover_or ~ & {
		color: $orColorEdit;

		@include changeHorizontalBracketsColor($orColorEdit);
		@include changeColorVerticalSmallBracket($orColorEdit);
	}

	.kit-filtration-group_hover > .kit-filtration-group__label_hover_and ~ & {
		color: $andColorEdit;

		@include changeHorizontalBracketsColor($andColorEdit);
		@include changeColorVerticalSmallBracket($andColorEdit);

		.kit-filtration-group__label-line-horizontal {
			background-color: $andColorEdit;
			color: #ffffff;
		}
	}

	/* stylelint-disable no-descending-specificity */
	.kit-filtration-group > .kit-filtration-group > & {
		&_or,
		&_and {
			.kit-filtration-group__label-line-horizontal {
				@include createHorizontalBrackets(-30px, 50%);
			}
		}
	}

	&_and {
		top: 0;
		color: $andColor;

		@include changeHorizontalBracketsColor($andColor);
		@include changeColorVerticalSmallBracket($andColor);

		.kit-filtration-group_edit > & {
			color: $andColorEdit;

			@include changeHorizontalBracketsColor($andColorEdit);
			@include changeColorVerticalSmallBracket($andColorEdit);
		}
	}

	&_or {
		top: 0;
		color: $orColor;

		@include changeHorizontalBracketsColor($orColor);
		@include changeColorVerticalSmallBracket($orColor);

		.kit-filtration-group_edit > & {
			color: $orColorEdit;

			@include changeHorizontalBracketsColor($orColorEdit);
			@include changeColorVerticalSmallBracket($orColorEdit);
		}
	}

	.kit-filtration-group_edit > &_show-dropdown,
	.kit-filtration-group_not-applicable > &_show-dropdown {
		z-index: 10;
	}

	.kit-filtration-group_not-children > &_or,
	.kit-filtration-group_not-children > &_and {
		.kit-filtration-group__label-text-height {
			margin-top: 4px;
			margin-right: -22px;
		}
	}

	/* stylelint-enable no-descending-specificity */
}

.kit-filtration-group__label-line-vertical {
	position: absolute;
	left: 0;
	z-index: 5;
	display: inline-flex;
	align-items: center;
	width: $borderWidthLine;
	height: 100%;
	margin-top: 0;
	background-color: $bracketColor;
	box-sizing: border-box;
	color: $bracketColor;

	.kit-filtration-group__label-line_and & {
		background-color: $andColor;
	}

	.kit-filtration-group__label-line_or & {
		background-color: $orColor;
	}

	.kit-filtration-group_edit > .kit-filtration-group__label-line_or & {
		background-color: $orColorEdit;
	}

	.kit-filtration-group_edit > .kit-filtration-group__label-line_and & {
		background-color: $andColorEdit;
	}

	.kit-filtration-group_edit
		> .kit-filtration-group
		> .kit-filtration-group__label-line_hover_or
		& {
		background-color: $orColorEdit;
	}

	.kit-filtration-group_edit
		> .kit-filtration-group
		> .kit-filtration-group__label-line_hover_and
		& {
		background-color: $andColorEdit;
	}

	.kit-filtration-group_hover
		> .kit-filtration-group__label_hover_or
		~ .kit-filtration-group__label-line
		& {
		background-color: $orColorEdit;
	}

	.kit-filtration-group_hover
		> .kit-filtration-group__label_hover_and
		~ .kit-filtration-group__label-line
		& {
		background-color: $andColorEdit;
		color: #ffffff;
	}
}

.kit-filtration-group__label-text {
	position: absolute;
	left: 0;
	display: inline-flex;
	justify-content: center;
	align-items: center;
	min-width: 28px;
	min-height: 14px;
	border-radius: 4px;
	box-sizing: border-box;
	font-family: Inter, sans-serif;
	font-size: 8px;
	line-height: 1;
	font-weight: bold;
	color: #ffffff;
	text-align: center;
	transform: translateX(-50%);

	.kit-filtration-group__label-line_and & {
		background-color: $andColor;
	}

	.kit-filtration-group__label-line_or & {
		background-color: $orColor;
	}

	.kit-filtration-group__label-line-vertical > & {
		border-radius: 4px;
	}

	.kit-filtration-group_edit > .kit-filtration-group__label-line_or &,
	.kit-filtration-group_edit > .kit-filtration-group__label-line_and & {
		margin-left: 0;
		padding: 2px 0 2px 6px;
		background-color: transparent;
		transform: translateX(-100%);

		&:hover {
			background-color: transparent;
		}
	}

	.kit-filtration-group_edit
		> .kit-filtration-group
		> .kit-filtration-group__label-line_hover_or
		& {
		background-color: $orColorEdit;
	}

	.kit-filtration-group_edit
		> .kit-filtration-group
		> .kit-filtration-group__label-line_hover_and
		& {
		background-color: transparent;
		color: #ffffff;
	}

	.kit-filtration-group_hover
		> .kit-filtration-group__label_hover_or
		~ .kit-filtration-group__label-line
		& {
		background-color: $orColorEdit;
	}

	.kit-filtration-group_hover
		> .kit-filtration-group__label_hover_and
		~ .kit-filtration-group__label-line
		& {
		background-color: $andColorEdit;
		color: #ffffff;
	}

	.kit-filtration-group_edit.kit-filtration-group_hover
		> .kit-filtration-group__label_hover_and
		~ .kit-filtration-group__label-line
		& {
		background-color: transparent;
	}

	.kit-filtration-group_edit.kit-filtration-group_hover
		> .kit-filtration-group__label_hover_or
		~ .kit-filtration-group__label-line
		& {
		background-color: transparent;
	}
}

.kit-filtration-group__label-text-buttons {
	display: flex;
	align-items: center;
	height: 22px;
	border-radius: 4px 0 0 4px;
	box-sizing: border-box;

	> * {
		box-shadow: 0 6px 24px 0 #1718201a;
	}

	> *:not(:first-child) {
		margin-left: 2px;
	}
}

.kit-filtration-group__buttons {
	position: relative;
	z-index: 1;
	display: inline-flex;
	align-items: center;
	min-height: $minHeight;
	padding-right: 20px;
	outline: none;

	@include createHorizontalBrackets(-16px, 15px);

	.kit-filtration-group_hover > & {
		button {
			opacity: 1;
		}
	}

	.kit-filtration-group_shaded > & {
		button {
			opacity: 0.3;

			&:hover {
				opacity: 1;
			}
		}
	}

	.kit-filtration-group_edit > & {
		outline: none;

		> .kit-filter-editor .kit-filter-editor__btn,
		> .kit-button {
			opacity: 1;
		}

		> .kit-button:disabled {
			opacity: 0.35;
		}
	}

	.kit-filtration-group:not(.kit-filtration-group_not-children) & {
		margin-left: 20px;
	}

	.kit-filtration-group > .kit-filtration-condition & {
		margin-left: 20px;
	}

	&_no-children {
		&::before {
			content: "";
			position: absolute;
			top: 0;
			left: -10px;
			display: block;
			width: calc(100% + 10px);
			height: 100%;
		}
	}

	> *:not(:last-child) {
		margin-right: 12px;
	}
}

.kit-filtration-group__remove,
.kit-filtration-group__copy,
.kit-filtration-group__more {
	display: inline-flex;
	justify-content: center;
	align-items: center;
	width: 24px;
	height: 100%;
	padding: 0 0 1px;
	background: #ffffff;
	border: 0;
	border-radius: 4px;
	outline: none;
	box-sizing: border-box;
	transition: background-color 0.15s ease-in-out;
	cursor: pointer;
}

.kit-filtration-group__remove {
	color: $removeColor;

	&:hover {
		background-color: darken($removeColorBg, 10%);
	}
}

.kit-filtration-group__copy {
	color: $copyColor;

	&:hover {
		background-color: darken($copyColorBg, 10%);
	}
}

.kit-filtration-group__more {
	font-weight: normal;
	color: $copyColor;

	&:hover {
		background-color: darken($copyColorBg, 10%);
	}

	.kit-actions-dropdown__action {
		white-space: nowrap;
	}
}

.kit-filtration-group__label-button {
	display: flex;
	justify-content: center;
	align-items: center;
	padding-right: 0;
	padding-left: 0;
	background-color: transparent;
	border: 0;
	border-top-left-radius: 4px;
	border-bottom-left-radius: 4px;
	outline: none;
	box-sizing: border-box;
	font-family: Inter, sans-serif;
	font-size: 12px;
	line-height: 1;
	font-weight: 700;
	color: rgba(#ffffff, 0.25);
	cursor: pointer;

	.kit-filtration-group__label-text-buttons & {
		height: 100%;
		margin-right: 0;
		padding: 0 6px 0 9px;
		font-size: 12px;
	}

	.kit-filtration-group__label-text-buttons_or & {
		background-color: $orColorEdit;
	}

	.kit-filtration-group__label-text-buttons_and & {
		background-color: $andColorEdit;
	}

	.kit-filtration-group_edit
		> .kit-filtration-group
		> .kit-filtration-group__label-line_hover_and
		& {
		background-color: $andColorEdit;
	}

	&_active {
		color: #ffffff;
	}

	*:not(:last-child) {
		margin-right: 12px;
	}
}

.kit-filtration-group__close {
	position: absolute;
	top: 7px;
	right: 13px;
	z-index: 10;
	padding: 0;
	background: none;
	border: 0;
	outline: none;
	color: $closeColor;
	transition: color 0.15s ease-in-out;
	cursor: pointer;

	&:hover {
		opacity: 0.2;
	}
}
