* Copyright (c) 2022 - present TinyVue Authors.
* Copyright (c) 2022 - present Huawei Cloud Computing Technologies Co., Ltd.
*
* Use of this source code is governed by an MIT-style license.
*
* THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL,
* BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR
* A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS.
*
*/
@import '../custom.less';
@import './vars.less';
@modal-prefix-cls: ~'@{css-prefix}modal';
@button-default-prefix-cls: ~'@{css-prefix}button--default';
@button-prefix-cls: ~'@{css-prefix}button';
.@{modal-prefix-cls} {
.inject-Modal-vars();
&__wrapper {
display: none;
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
line-height: var(--tv-Modal-line-height);
&.active {
display: block;
opacity: 1;
}
&.leave {
opacity: 0;
}
&.status__success .@{modal-prefix-cls}__status-wrapper svg {
fill: var(--tv-Modal-status-icon-color-success);
}
&.status__warning .@{modal-prefix-cls}__status-wrapper svg {
fill: var(--tv-Modal-status-icon-color-warning);
}
&.status__error .@{modal-prefix-cls}__status-wrapper svg {
fill: var(--tv-Modal-status-icon-color-error);
}
&.status__info .@{modal-prefix-cls}__status-wrapper svg {
fill: var(--tv-Modal-status-icon-color-info);
}
&.status__question .@{modal-prefix-cls}__status-wrapper svg {
fill: var(--tv-Modal-status-icon-color-question);
}
&.type__alert,
&.type__confirm {
.@{modal-prefix-cls}__box {
display: flex;
flex-direction: column;
position: absolute;
left: 50%;
top: 15vh;
width: var(--tv-Modal-box-width);
background-color: var(--tv-Modal-box-bg-color);
border-radius: var(--tv-Modal-box-border-radius);
box-shadow: var(--tv-shadow-4-down);
.@{modal-prefix-cls}__header {
display: flex;
align-items: center;
padding: var(--tv-Modal-box-header-padding-top) var(--tv-Modal-box-header-padding-x) var(--tv-Modal-box-header-padding-bottom) var(--tv-Modal-box-header-padding-x);
.@{modal-prefix-cls}__status-wrapper {
display: flex;
align-items: center;
font-size: var(--tv-Modal-box-status-icon-font-size);
margin-right: var(--tv-Modal-box-status-icon-margin-right);
.@{modal-prefix-cls}-svg__refresh {
fill: var(--tv-Modal-loading-status-icon-color);
}
}
.@{modal-prefix-cls}__title {
color: var(--tv-Modal-box-title-text-color);
font-size: var(--tv-Modal-box-title-font-size);
font-weight: var(--tv-Modal-box-title-font-weight);
}
.@{modal-prefix-cls}__zoom-btn,
.@{modal-prefix-cls}__close-btn {
position: absolute;
top: var(--tv-Modal-box-close-icon-top);
fill: var(--tv-Modal-box-close-icon-color);
font-size: var(--tv-Modal-box-close-icon-size);
cursor: pointer;
&:hover {
fill: var(--tv-Modal-box-close-icon-color-hover);
}
}
.@{modal-prefix-cls}__close-btn {
right: var(--tv-Modal-box-close-icon-right);
}
.@{modal-prefix-cls}__zoom-btn {
right: var(--tv-Modal-box-zoom-icon-right);
}
}
.@{modal-prefix-cls}__body {
display: flex;
flex-grow: 1;
padding: var(--tv-Modal-box-body-padding-y) var(--tv-Modal-box-body-padding-x);
white-space: normal;
word-break: break-word;
.@{modal-prefix-cls}__content {
width: 100%;
flex-grow: 1;
.@{modal-prefix-cls}__text {
font-size: var(--tv-Modal-box-body-text-font-size);
color: var(--tv-Modal-box-body-text-text-color);
}
}
}
.@{modal-prefix-cls}__footer {
text-align: right;
padding: var(--tv-Modal-box-footer-padding-top) var(--tv-Modal-box-footer-padding-x) var(--tv-Modal-box-footer-padding-bottom) var(--tv-Modal-box-footer-padding-x);
}
}
.@{modal-prefix-cls}__box.is__drag,
.@{modal-prefix-cls}__header,
.@{modal-prefix-cls}__footer-move {
cursor: move;
}
.@{modal-prefix-cls}__resize {
@SpaceSize: 8px;
.wl-resize,
.wr-resize,
.swst-resize,
.sest-resize,
.st-resize,
.swlb-resize,
.selb-resize,
.sb-resize {
position: absolute;
z-index: 100;
}
.wl-resize,
.wr-resize {
width: @SpaceSize;
height: 100%;
top: 0;
cursor: w-resize;
}
.wl-resize {
left: -@SpaceSize * 0.5 + 1;
}
.wr-resize {
right: -@SpaceSize * 0.5 + 1;
}
.swst-resize,
.sest-resize,
.swlb-resize,
.selb-resize {
width: @SpaceSize + 2;
height: @SpaceSize + 2;
z-index: 101;
}
.swst-resize,
.sest-resize {
top: -@SpaceSize;
}
.swlb-resize,
.selb-resize {
bottom: -@SpaceSize;
}
.sest-resize,
.swlb-resize {
cursor: sw-resize;
}
.swst-resize,
.selb-resize {
cursor: se-resize;
}
.swst-resize,
.swlb-resize {
left: -@SpaceSize;
}
.sest-resize,
.selb-resize {
right: -@SpaceSize;
}
.st-resize,
.sb-resize {
width: 100%;
height: @SpaceSize;
left: 0;
cursor: s-resize;
}
.st-resize {
top: -@SpaceSize * 0.5 + 1;
}
.sb-resize {
bottom: -@SpaceSize * 0.5 + 1;
}
}
}
&.is__maximize .@{modal-prefix-cls}__resize {
display: none;
}
&.lock__scroll {
overflow: hidden;
}
&:not(.lock__scroll) {
overflow: auto;
}
.@{modal-prefix-cls}__box {
pointer-events: all;
}
&:not(.lock__view) {
pointer-events: none;
}
&.is__mask {
background-color: var(--tv-Modal-mask-bg-color);
}
&.type__alert,
&.type__confirm {
.@{modal-prefix-cls}__box {
opacity: 0;
transition: opacity 0.4s ease-in;
}
&.is__visible.is__visible {
.@{modal-prefix-cls}__box {
opacity: 1;
}
}
}
&.type__message {
text-align: center;
.@{modal-prefix-cls}__box {
display: inline-block;
background-color: var(--tv-Modal-msg-box-bg-color);
border-radius: var(--tv-Modal-msg-box-border-radius);
box-shadow: var(--tv-Modal-msg-box-box-shadow);
padding: var(--tv-Modal-msg-box-box-padding-y) var(--tv-Modal-msg-box-box-padding-x);
text-align: left;
.@{modal-prefix-cls}__body {
display: flex;
white-space: normal;
word-break: break-word;
.@{modal-prefix-cls}__status-wrapper {
display: flex;
align-items: center;
margin-right: var(--tv-Modal-msg-box-status-icon-margin-right);
svg {
font-size: var(--tv-Modal-msg-box-status-icon-size);
}
.@{modal-prefix-cls}-svg__refresh {
fill: var(--tv-Modal-loading-status-icon-color);
}
}
.@{modal-prefix-cls}__content {
width: 100%;
max-width: 800px;
flex-grow: 1;
.@{modal-prefix-cls}__text {
color: var(--tv-Modal-msg-box-text-color);
font-size: var(--tv-Modal-msg-box-font-size);
font-weight: var(--tv-Modal-msg-box-font-weight);
}
}
.@{modal-prefix-cls}__close-wrapper {
svg {
margin-left: var(--tv-Modal-msg-box-close-icon-margin-left);
fill: var(--tv-Modal-msg-box-close-icon-color);
font-size: var(--tv-Modal-msg-box-close-icon-size);
cursor: pointer;
&:hover {
fill: var(--tv-Modal-msg-box-close-icon-color-hover);
}
}
}
}
}
}
transition: top 0.4s,
opacity 0.4s;
}
}