2773 lines
56 KiB
SCSS
2773 lines
56 KiB
SCSS
/*
|
|
* https://github.com/morethanwords/tweb
|
|
* Copyright (C) 2019-2021 Eduard Kuzmenko
|
|
* https://github.com/morethanwords/tweb/blob/master/LICENSE
|
|
*/
|
|
|
|
$bubble-margin: .25rem;
|
|
$bubble-beside-button-width: 38px;
|
|
|
|
@keyframes bubbleSelected {
|
|
0% {
|
|
opacity: 0;
|
|
}
|
|
|
|
25% {
|
|
opacity: 1;
|
|
}
|
|
|
|
to {
|
|
opacity: 0;
|
|
}
|
|
}
|
|
|
|
.bubbles-date-group {
|
|
position: relative;
|
|
|
|
/* .sticky_sentinel {
|
|
visibility: visible;
|
|
background: #000;
|
|
} */
|
|
|
|
.sticky_sentinel--top {
|
|
/* Adjust the height and top values based on your on your sticky top position.
|
|
e.g. make the height bigger and adjust the top so observeHeaders()'s
|
|
IntersectionObserver fires as soon as the bottom of the sentinel crosses the
|
|
top of the intersection container. */
|
|
height: $bubble-margin;
|
|
top: 0;
|
|
}
|
|
|
|
// .sticky_sentinel--bottom {
|
|
// /* Height should match the top of the header when it's at the bottom of the
|
|
// intersection container. */
|
|
// height: 1px;
|
|
// bottom: 0;
|
|
// }
|
|
}
|
|
|
|
.bubble {
|
|
position: relative;
|
|
z-index: 1;
|
|
margin: 0 auto $bubble-margin;
|
|
user-select: none;
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
//flex-direction: column; // fix 'Unread messages', still need to refactor it
|
|
|
|
&.is-gesturing-reply {
|
|
transform: translateX(0);
|
|
|
|
&.animating.backwards {
|
|
transition: transform var(--transition-standard-out);
|
|
}
|
|
|
|
.bubble-gesture-reply-icon {
|
|
width: var(--message-beside-button-size);
|
|
height: var(--message-beside-button-size);
|
|
position: absolute;
|
|
top: 50%;
|
|
right: var(--message-beside-button-margin);
|
|
transform: translateY(-50%);
|
|
color: #fff;
|
|
border-radius: 50%;
|
|
background-color: var(--message-highlightning-color);
|
|
opacity: 0;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
transform: translateY(-50%) scale(0.6);
|
|
visibility: hidden;
|
|
|
|
&:before {
|
|
font-size: 1.125rem !important;
|
|
}
|
|
|
|
@include animation-level(2) {
|
|
transition: transform .1s ease-in-out;
|
|
}
|
|
|
|
&.is-visible {
|
|
visibility: visible;
|
|
// opacity: 1;
|
|
transform: translateY(-50%) scale(1);
|
|
}
|
|
}
|
|
}
|
|
|
|
&.is-highlighted,
|
|
&.is-selected,
|
|
/* .bubbles.is-selecting */ & {
|
|
&:after {
|
|
position: absolute;
|
|
left: -50%;
|
|
/* top: 0;
|
|
bottom: 0; */
|
|
top: -#{$bubble-margin / 2};
|
|
bottom: -#{$bubble-margin / 2};
|
|
content: " ";
|
|
z-index: -1;
|
|
}
|
|
}
|
|
|
|
/* &.is-highlighted, &.is-selected {
|
|
&:not(.is-group-last):after {
|
|
height: calc(100% + #{$bubble-margin / 2}) !important;
|
|
}
|
|
|
|
& + &:not(.is-group-last) {
|
|
&:after {
|
|
top: .125rem !important;
|
|
height: calc(100% - #{$bubble-margin / 2}) !important;
|
|
}
|
|
}
|
|
} */
|
|
|
|
// ! if turn this on, there will be an empty space
|
|
/* &.is-highlighted, &.is-selected {
|
|
&.is-group-last:after {
|
|
bottom: #{$bubble-margin / 2} !important;
|
|
}
|
|
} */
|
|
|
|
&.is-highlighted:after {
|
|
//background-color: rgba(0, 132, 255, .3);
|
|
background-color: var(--message-highlightning-color);
|
|
|
|
body:not(.animation-level-0) & {
|
|
animation: bubbleSelected 2s linear;
|
|
}
|
|
}
|
|
|
|
&.is-first-unread {
|
|
@include respond-to(handhelds) {
|
|
max-width: unset;
|
|
}
|
|
|
|
&:before {
|
|
content: "Unread messages";
|
|
height: 30px;
|
|
margin-bottom: $bubble-margin;
|
|
margin-left: -50%;
|
|
margin-right: -50%;
|
|
text-align: center;
|
|
color: var(--primary-color);
|
|
line-height: 2.1;
|
|
font-weight: 500;
|
|
font-size: 15px;
|
|
background-color: var(--surface-color);
|
|
z-index: 2;
|
|
position: relative;
|
|
}
|
|
|
|
&.is-highlighted, &.is-selected {
|
|
&:after {
|
|
top: calc(#{$bubble-margin / 2} + 30px);
|
|
}
|
|
}
|
|
}
|
|
|
|
&.is-selected {
|
|
&:after {
|
|
background-color: var(--message-highlightning-color);
|
|
}
|
|
|
|
body:not(.animation-level-0) & {
|
|
&:after {
|
|
animation: fade-in-opacity .2s linear forwards;
|
|
}
|
|
|
|
&.backwards:after {
|
|
animation: fade-in-backwards-opacity .2s linear forwards;
|
|
}
|
|
}
|
|
}
|
|
|
|
//&.is-highlighted:after, &.is-first-unread:before, &.is-selected:after {
|
|
&:after,
|
|
&:before {
|
|
width: 200%;
|
|
display: block;
|
|
}
|
|
|
|
&.is-multiple-documents {
|
|
&:before,
|
|
&:after {
|
|
display: none;
|
|
}
|
|
|
|
.user-avatar {
|
|
z-index: 2;
|
|
}
|
|
}
|
|
|
|
.replies-footer + .poll-message .poll-footer-button {
|
|
border-radius: 0 !important;
|
|
}
|
|
|
|
/* &.channel-post {
|
|
.message.poll-message {
|
|
.time {
|
|
position: unset;
|
|
}
|
|
}
|
|
|
|
poll-element .poll-footer {
|
|
height: auto;
|
|
}
|
|
} */
|
|
|
|
&-select-checkbox {
|
|
z-index: 3;
|
|
position: absolute;
|
|
left: 0;
|
|
display: flex;
|
|
margin: 0;
|
|
|
|
.checkbox-box-border {
|
|
border-color: var(--message-checkbox-border-color);
|
|
}
|
|
|
|
.checkbox-box-background {
|
|
background-color: var(--message-checkbox-color);
|
|
}
|
|
|
|
.checkbox-box-check {
|
|
use {
|
|
stroke-width: 3.5;
|
|
}
|
|
}
|
|
}
|
|
|
|
& > &-select-checkbox {
|
|
//bottom: .75rem; // * by avatar
|
|
bottom: .3125rem; // * by middle of one-line message
|
|
/* left: 0;
|
|
top: 50%;
|
|
transform: translateY(-50%); */
|
|
.checkbox-box {
|
|
box-shadow: 0px 0px 3px 0px rgba(0, 0, 0, .4);
|
|
}
|
|
}
|
|
|
|
.bubbles.is-selecting &:not(.is-album) {
|
|
.audio,
|
|
.document,
|
|
.attachment,
|
|
poll-element {
|
|
pointer-events: none !important;
|
|
}
|
|
}
|
|
|
|
// ! hide context menu for media on android
|
|
.bubbles.is-selecting & {
|
|
img,
|
|
video,
|
|
a {
|
|
pointer-events: none;
|
|
}
|
|
}
|
|
|
|
&-content {
|
|
//min-width: 60px;
|
|
min-width: 56px;
|
|
max-width: 100%;
|
|
border-radius: 12px;
|
|
box-shadow: 0 1px 2px 0 rgba(16, 35, 47, .15);
|
|
position: relative;
|
|
display: flex;
|
|
flex-direction: column-reverse;
|
|
// align-items: flex-start;
|
|
z-index: 2;
|
|
user-select: none;
|
|
background-color: var(--message-background-color);
|
|
|
|
body.animation-level-0 & {
|
|
transition: none;
|
|
}
|
|
|
|
/* html.no-touch .bubbles:not(.is-selecting) &,
|
|
html.is-touch .bubbles.is-selecting:not(.no-select) & {
|
|
user-select: text;
|
|
} */
|
|
html.no-touch .chat:not(.no-forwards) .bubbles:not(.is-selecting) &,
|
|
html.is-touch body:not(.no-select) .chat:not(.no-forwards) .bubbles.is-selecting & { // * need no-select on body because chat-input transforms in channels
|
|
user-select: text;
|
|
}
|
|
}
|
|
|
|
&-hover-reaction {
|
|
--size: 1.875rem;
|
|
--offset: calc(var(--size) * -.75);
|
|
position: absolute;
|
|
right: var(--offset);
|
|
bottom: -.125rem;
|
|
width: var(--size);
|
|
height: 1.625rem;
|
|
border-radius: var(--size);
|
|
z-index: 2;
|
|
background-color: var(--surface-color);
|
|
cursor: pointer;
|
|
opacity: 0;
|
|
transform: scale(.8);
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
box-shadow: var(--menu-box-shadow);
|
|
|
|
@include animation-level(2) {
|
|
transition: opacity var(--btn-corner-transition), transform var(--btn-corner-transition);
|
|
}
|
|
|
|
&.is-visible {
|
|
&:not(.backwards) {
|
|
transform: scale(1);
|
|
opacity: 1;
|
|
}
|
|
}
|
|
|
|
&-sticker {
|
|
width: 1.125rem;
|
|
height: 1.125rem;
|
|
position: relative;
|
|
}
|
|
}
|
|
|
|
/* &.with-beside-button &-content {
|
|
@include respond-to(handhelds) {
|
|
max-width: calc(100% - var(--message-handhelds-margin)) !important;
|
|
}
|
|
} */
|
|
|
|
/* &.with-beside-button &-content {
|
|
margin-right: calc(var(--message-beside-button-margin) * -1);
|
|
} */
|
|
|
|
&.service {
|
|
//padding: 1rem 0;
|
|
//padding: $bubble-margin 0;
|
|
max-width: var(--messages-container-width);
|
|
|
|
.bubble-content {
|
|
/* justify-self: center; */
|
|
margin: 0 auto;
|
|
max-width: 100%;
|
|
box-shadow: none;
|
|
}
|
|
}
|
|
|
|
&.is-date {
|
|
position: sticky;
|
|
top: $bubble-margin;
|
|
padding-bottom: $bubble-margin;
|
|
//z-index: 3;
|
|
z-index: 2;
|
|
transition: opacity .3s ease;
|
|
opacity: .99999; // for safari
|
|
pointer-events: none;
|
|
|
|
&:before,
|
|
&:after {
|
|
display: none;
|
|
}
|
|
|
|
body.animation-level-0 & {
|
|
transition: none;
|
|
}
|
|
|
|
&.is-sticky {
|
|
opacity: .00001; // for safari
|
|
// position: sticky;
|
|
|
|
.bubbles-inner:not(.is-scrolling) & {
|
|
//transition-delay: 1.35s;
|
|
|
|
.bubble-content {
|
|
cursor: default;
|
|
}
|
|
}
|
|
|
|
/* .bubbles-inner.is-scrolling & {
|
|
transition-delay: 0;
|
|
} */
|
|
}
|
|
|
|
.chat.type-chat & .bubble-content,
|
|
.chat.type-discussion & .bubble-content {
|
|
cursor: pointer;
|
|
pointer-events: all;
|
|
}
|
|
}
|
|
|
|
&-beside-button {
|
|
//opacity: 0;
|
|
//transition: .2s opacity;
|
|
position: absolute;
|
|
right: var(--message-beside-button-margin);
|
|
bottom: 0;
|
|
width: var(--message-beside-button-size);
|
|
height: var(--message-beside-button-size);
|
|
font-size: 1.5rem;
|
|
align-items: center;
|
|
display: flex;
|
|
justify-content: center;
|
|
color: var(--badge-text-color);
|
|
border-radius: 50%;
|
|
//background: rgba(0, 0, 0, .16);
|
|
background: var(--message-highlightning-color);
|
|
cursor: pointer;
|
|
|
|
html.no-touch & {
|
|
opacity: 0;
|
|
}
|
|
|
|
html.no-touch body.animation-level-2 & {
|
|
transition: opacity .2s ease-in-out;
|
|
}
|
|
}
|
|
|
|
&-view-button {
|
|
border-radius: 6px;
|
|
border: 1px solid var(--primary-color);
|
|
height: 2rem;
|
|
margin: 0 0.5625rem .5rem;
|
|
width: auto;
|
|
}
|
|
|
|
@include hover() {
|
|
.bubble-beside-button {
|
|
opacity: 1;
|
|
}
|
|
}
|
|
|
|
.forward {
|
|
svg {
|
|
width: 22px;
|
|
height: 22px;
|
|
}
|
|
}
|
|
|
|
/* &.is-group-first {
|
|
padding-top: 10px;
|
|
} */
|
|
|
|
&.is-group-last {
|
|
margin-bottom: #{$bubble-margin * 2};
|
|
|
|
&:after {
|
|
bottom: -#{$bubble-margin};
|
|
}
|
|
|
|
/* > .bubble-select-checkbox {
|
|
bottom: .3125rem;
|
|
} */
|
|
|
|
.bubbles-inner.is-chat &.is-in {
|
|
> .bubble-select-checkbox {
|
|
bottom: .1875rem;
|
|
}
|
|
}
|
|
}
|
|
|
|
&.is-group-first {
|
|
&:after {
|
|
top: -#{$bubble-margin};
|
|
}
|
|
}
|
|
|
|
&:not(.forwarded):not(.must-have-name) {
|
|
&:not(.is-group-first) {
|
|
.name {
|
|
// .bubble-content > .name,
|
|
// .document-wrapper > .name {
|
|
display: none;
|
|
}
|
|
|
|
&:not(.is-message-empty):not(.is-reply) .message {
|
|
padding-top: 6px;
|
|
}
|
|
}
|
|
}
|
|
|
|
&:not(.is-group-last) .bubble-content-wrapper > .user-avatar {
|
|
display: none;
|
|
}
|
|
|
|
/* &:not(.hide-name) {
|
|
.audio {
|
|
margin: 4px 0;
|
|
}
|
|
} */
|
|
|
|
/* .goto-original {
|
|
opacity: 1;
|
|
} */
|
|
|
|
&.photo,
|
|
&.video {
|
|
.bubble-content {
|
|
width: min-content;
|
|
}
|
|
|
|
.web {
|
|
/* width: max-content; */ // commented 10.02.2020
|
|
/* width: min-content; */
|
|
max-width: 100%;
|
|
}
|
|
|
|
.message {
|
|
max-width: 420px;
|
|
}
|
|
}
|
|
|
|
&.webpage {
|
|
.preview-with-document {
|
|
margin-bottom: 0 !important;
|
|
}
|
|
|
|
.document {
|
|
height: 3.375rem;
|
|
|
|
@include respond-to(handhelds) {
|
|
padding-left: 44px;
|
|
}
|
|
}
|
|
}
|
|
|
|
.preview-resizer {
|
|
display: flex;
|
|
}
|
|
|
|
img.emoji {
|
|
height: 18px;
|
|
width: 18px;
|
|
// margin: 0 .05rem;
|
|
vertical-align: bottom;
|
|
}
|
|
|
|
.thumbnail {
|
|
position: absolute;
|
|
}
|
|
|
|
&.emoji-big {
|
|
font-size: 0;
|
|
|
|
.bubble-content {
|
|
line-height: 1;
|
|
}
|
|
|
|
&:not(.sticker) {
|
|
.attachment {
|
|
padding-top: .5rem;
|
|
padding-bottom: 1.5rem;
|
|
//max-width: fit-content!important;
|
|
max-height: fit-content!important;
|
|
|
|
span.emoji {
|
|
height: auto;
|
|
width: auto;
|
|
}
|
|
}
|
|
|
|
.chat:not(.no-forwards) & {
|
|
.attachment {
|
|
cursor: text;
|
|
user-select: text;
|
|
}
|
|
}
|
|
|
|
.message {
|
|
margin-top: -1.125rem;
|
|
}
|
|
}
|
|
|
|
/* &.sticker .bubble-content {
|
|
max-width: 140px !important;
|
|
max-height: 140px !important;
|
|
user-select: none !important;
|
|
} */
|
|
}
|
|
|
|
&.emoji-1x .attachment {
|
|
font-size: 96px;
|
|
|
|
img.emoji {
|
|
height: 64px;
|
|
width: 64px;
|
|
}
|
|
}
|
|
|
|
&.emoji-2x .attachment {
|
|
font-size: 64px;
|
|
|
|
img.emoji {
|
|
height: 48px;
|
|
width: 48px;
|
|
}
|
|
}
|
|
|
|
&.emoji-3x .attachment {
|
|
font-size: 52px;
|
|
|
|
img.emoji {
|
|
height: 32px;
|
|
width: 32px;
|
|
}
|
|
}
|
|
|
|
&.just-media {
|
|
.bubble-content {
|
|
// cursor: pointer;
|
|
background: none!important;
|
|
box-shadow: none;
|
|
/* max-width: 300px;
|
|
max-height: 300px; */
|
|
}
|
|
|
|
img {
|
|
object-fit: contain;
|
|
}
|
|
|
|
&.is-message-empty .message {
|
|
//background-color: rgba(0, 0, 0, .23);
|
|
background: var(--message-highlightning-color);
|
|
}
|
|
|
|
/* &.is-message-empty .message {
|
|
display: none;
|
|
}
|
|
|
|
&.is-message-empty:hover .message {
|
|
display: block;
|
|
} */
|
|
}
|
|
|
|
&.sticker,
|
|
&.emoji-big:not(.sticker) {
|
|
.bubble-content {
|
|
align-self: flex-start;
|
|
}
|
|
|
|
.message {
|
|
position: relative !important;
|
|
// align-self: flex-start;
|
|
margin-left: auto;
|
|
right: 0 !important;
|
|
}
|
|
}
|
|
|
|
&.sticker {
|
|
.attachment {
|
|
position: absolute;
|
|
border-radius: 0;
|
|
z-index: 1;
|
|
}
|
|
|
|
/* .bubble-content {
|
|
max-width: 200px !important;
|
|
max-height: 200px !important;
|
|
} */
|
|
}
|
|
|
|
&.round {
|
|
.attachment {
|
|
max-width: var(--round-video-size) !important;
|
|
max-height: var(--round-video-size) !important;
|
|
width: var(--round-video-size) !important;
|
|
height: var(--round-video-size) !important;
|
|
}
|
|
|
|
.media-photo,
|
|
.media-video {
|
|
border-radius: 50%;
|
|
pointer-events: none;
|
|
}
|
|
}
|
|
|
|
&:not(.is-message-empty) .attachment/* ,
|
|
&:not(.is-message-empty).is-reply .attachment */ {
|
|
border-bottom-left-radius: 0;
|
|
border-bottom-right-radius: 0;
|
|
}
|
|
|
|
&:not(.emoji-big) .attachment {
|
|
font-size: 0;
|
|
}
|
|
|
|
.attachment {
|
|
max-width: 100%;
|
|
border-radius: inherit;
|
|
overflow: hidden;
|
|
user-select: none;
|
|
|
|
//-webkit-mask-image: -webkit-radial-gradient(circle, white 100%, black 100%); // fix safari overflow
|
|
|
|
display: flex; // lol
|
|
justify-content: center;
|
|
position: relative;
|
|
cursor: pointer;
|
|
|
|
img,
|
|
video {
|
|
max-width: 100%;
|
|
}
|
|
|
|
.download {
|
|
position: absolute;
|
|
left: 0;
|
|
top: 0;
|
|
height: 100%;
|
|
width: 100%;
|
|
cursor: pointer;
|
|
display: flex;
|
|
justify-content: center;
|
|
align-items: center;
|
|
|
|
span {
|
|
background-color: var(--message-time-background);
|
|
font-size: 23px;
|
|
color: #fff;
|
|
text-align: center;
|
|
}
|
|
}
|
|
|
|
.download,
|
|
.preloader-container {
|
|
& ~ .video-play {
|
|
display: none;
|
|
}
|
|
}
|
|
}
|
|
|
|
.media-container {
|
|
&-aspecter {
|
|
position: relative;
|
|
margin: 0 auto;
|
|
z-index: 1;
|
|
}
|
|
|
|
&-fitted {
|
|
background-color: transparent !important;
|
|
|
|
> .thumbnail {
|
|
opacity: .8;
|
|
|
|
&.fade-in {
|
|
animation: thumbnail-fade-in-opacity .2s ease-in-out forwards;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
.preloader-container {
|
|
z-index: 2;
|
|
}
|
|
|
|
&:not(.sticker) {
|
|
.attachment {
|
|
max-width: unquote('min(420px, 100%)');
|
|
max-height: unquote('min(340px, 100%)');
|
|
|
|
width: max-content;
|
|
}
|
|
}
|
|
|
|
img:not(.emoji),
|
|
video {
|
|
/* object-fit: contain; */
|
|
object-fit: cover;
|
|
width: 100%;
|
|
height: 100%;
|
|
}
|
|
|
|
html.is-safari &:not(.round) {
|
|
img:not(.emoji),
|
|
video {
|
|
border-radius: inherit;
|
|
}
|
|
}
|
|
|
|
&.is-album {
|
|
.attachment {
|
|
max-width: unquote('min(451px, 100%)');
|
|
max-height: none;
|
|
//overflow: hidden;
|
|
}
|
|
}
|
|
|
|
.album-item {
|
|
background-color: var(--message-highlightning-color);
|
|
max-width: 100%;
|
|
cursor: pointer;
|
|
position: absolute;
|
|
overflow: hidden;
|
|
|
|
@include animation-level(0) {
|
|
transition: none !important;
|
|
}
|
|
|
|
/* .bubbles.is-selecting & {
|
|
-webkit-mask-image: -webkit-radial-gradient(circle, white 100%, black 100%); // fix safari overflow
|
|
} */
|
|
|
|
img, video {
|
|
border-radius: inherit;
|
|
}
|
|
|
|
&-media { // * fix overflow for handhelds
|
|
border-radius: inherit;
|
|
|
|
@include animation-level(0) {
|
|
transition: none !important;
|
|
}
|
|
}
|
|
|
|
.bubble-select-checkbox {
|
|
bottom: auto !important;
|
|
left: auto;
|
|
right: .5rem;
|
|
top: .5rem;
|
|
}
|
|
|
|
&.is-selected {
|
|
border-radius: 0;
|
|
|
|
.album-item-media {
|
|
transform: scale(1);
|
|
}
|
|
|
|
&.animating {
|
|
transition: border-radius var(--transition-standard-out);
|
|
|
|
.album-item-media {
|
|
transition: transform var(--transition-standard-out), border-radius var(--transition-standard-out);
|
|
}
|
|
}
|
|
|
|
&:not(.backwards) {
|
|
transition: border-radius var(--transition-standard-in);
|
|
|
|
.album-item-media {
|
|
transition: transform var(--transition-standard-in), border-radius var(--transition-standard-in);
|
|
transform: scale(.883333);
|
|
}
|
|
|
|
&, .album-item-media {
|
|
//border-radius: .5rem;
|
|
border-radius: 0;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
a {
|
|
@include hover() {
|
|
text-decoration: underline;
|
|
}
|
|
}
|
|
|
|
&-first {
|
|
order: -1;
|
|
margin-top: .5rem;
|
|
justify-content: center;
|
|
align-items: center;
|
|
max-width: 100%;
|
|
|
|
@include animation-level(0) {
|
|
flex: 1 1 auto;
|
|
}
|
|
|
|
.bubble-content-wrapper {
|
|
max-width: 100%;
|
|
}
|
|
|
|
&.empty-bubble-placeholder {
|
|
position: absolute;
|
|
top: 50%;
|
|
left: 50%;
|
|
transform: translate(-50%, -50%);
|
|
|
|
&.has-description {
|
|
.service-msg {
|
|
flex-direction: column;
|
|
align-items: flex-start !important;
|
|
padding: .75rem 1rem .875rem !important;
|
|
}
|
|
|
|
.center {
|
|
align-self: center;
|
|
}
|
|
|
|
.empty-bubble-placeholder-title {
|
|
font-weight: 500;
|
|
font-size: 1rem !important;
|
|
}
|
|
|
|
.bubble-content {
|
|
border-radius: 1.5rem !important;
|
|
}
|
|
}
|
|
|
|
.empty-bubble-placeholder-line {
|
|
color: #fff;
|
|
}
|
|
|
|
.empty-bubble-placeholder-line + .empty-bubble-placeholder-line {
|
|
margin-top: .5rem;
|
|
}
|
|
|
|
.tgico-check {
|
|
margin-right: .25rem;
|
|
font-size: 1.25rem;
|
|
vertical-align: bottom;
|
|
margin-left: -.1875rem;
|
|
}
|
|
|
|
.empty-bubble-placeholder-list-bullet {
|
|
margin-right: .3125rem;
|
|
}
|
|
|
|
&:not(:first-child:last-child) {
|
|
.bubble-content-wrapper {
|
|
transform: scale3d(.8, .8, 1) translateX(0);
|
|
//transform: scale(.8) translateX(0);
|
|
opacity: 0;
|
|
pointer-events: none;
|
|
}
|
|
}
|
|
|
|
&.empty-bubble-placeholder-group {
|
|
.empty-bubble-placeholder-list-item {
|
|
margin-top: .4375rem !important;
|
|
}
|
|
}
|
|
|
|
&.empty-bubble-placeholder-greeting {
|
|
.service-msg {
|
|
max-width: 232px;
|
|
}
|
|
|
|
.empty-bubble-placeholder-subtitle {
|
|
margin-top: .25rem !important;
|
|
}
|
|
}
|
|
|
|
.empty-bubble-placeholder-sticker {
|
|
margin-top: .75rem !important;
|
|
position: relative;
|
|
width: 200px;
|
|
height: 200px;
|
|
cursor: pointer;
|
|
}
|
|
}
|
|
|
|
.time {
|
|
display: none !important;
|
|
}
|
|
|
|
&:before, &:after {
|
|
display: none;
|
|
}
|
|
}
|
|
|
|
.web {
|
|
// margin: .125rem 0;
|
|
margin: .125rem 0 0;
|
|
max-width: 100%;
|
|
overflow: hidden;
|
|
line-height: var(--line-height);
|
|
|
|
& + .time {
|
|
display: block;
|
|
}
|
|
|
|
.preview {
|
|
max-width: unquote('min(420px, 100%)');
|
|
max-height: unquote('min(340px, 100%)');
|
|
border-radius: 4px;
|
|
overflow: hidden;
|
|
user-select: none;
|
|
cursor: pointer;
|
|
position: relative;
|
|
width: max-content;
|
|
|
|
img, video {
|
|
max-width: 100%;
|
|
}
|
|
|
|
&-resizer {
|
|
&:first-child {
|
|
margin: 3px 0;
|
|
|
|
&:last-child {
|
|
margin-bottom: 2px;
|
|
}
|
|
}
|
|
}
|
|
|
|
&.is-round {
|
|
.media-photo,
|
|
.media-video {
|
|
border-radius: 50%;
|
|
}
|
|
}
|
|
}
|
|
|
|
&.no-text {
|
|
margin-bottom: .75rem;
|
|
}
|
|
|
|
.title {
|
|
&:not(:first-child) {
|
|
margin-top: 1px;
|
|
}
|
|
}
|
|
|
|
.webpage-name {
|
|
font-size: var(--messages-secondary-text-size);
|
|
text-decoration: none;
|
|
|
|
@include hover() {
|
|
text-decoration: underline;
|
|
}
|
|
}
|
|
|
|
.text {
|
|
word-break: break-word;
|
|
margin-top: 1px;
|
|
font-size: var(--messages-secondary-text-size);
|
|
}
|
|
|
|
.quote {
|
|
max-width: 100%;
|
|
overflow: hidden;
|
|
width: 100%;
|
|
display: flex;
|
|
|
|
&-text {
|
|
width: 100%;
|
|
// max-width: calc(100% - .625rem); // left border
|
|
max-width: 100%;
|
|
padding-left: .625rem;
|
|
margin-left: -.625rem;
|
|
}
|
|
|
|
&:before {
|
|
flex: 0 0 auto;
|
|
width: .125rem;
|
|
border-radius: .125rem;
|
|
background-color: var(--primary-color);
|
|
margin: .1875rem .5rem .125rem 0;
|
|
content: " ";
|
|
}
|
|
}
|
|
}
|
|
|
|
.web,
|
|
.reply {
|
|
font-size: var(--messages-secondary-text-size);
|
|
}
|
|
|
|
&.is-square-photo {
|
|
.bubble-content {
|
|
width: fit-content;
|
|
}
|
|
|
|
.web {
|
|
.webpage-name {
|
|
margin-right: 1rem;
|
|
}
|
|
|
|
.preview-resizer {
|
|
margin: 0;
|
|
width: 3rem;
|
|
height: 3rem;
|
|
float: right;
|
|
margin-left: .625rem;
|
|
margin-top: .1875rem;
|
|
}
|
|
|
|
.preview {
|
|
max-width: unquote('min(3rem, 100%)');
|
|
max-height: unquote('min(3rem, 100%)');
|
|
margin: 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
/* &.is-vertical-photo {
|
|
.bubble-content {
|
|
width: fit-content;
|
|
}
|
|
} */
|
|
|
|
.reply {
|
|
padding: .25rem;
|
|
margin: 0 .25rem .375rem .375rem;
|
|
cursor: pointer;
|
|
border-radius: .25rem;
|
|
min-width: 10rem;
|
|
width: auto;
|
|
|
|
@include hover() {
|
|
background-color: var(--light-filled-message-primary-color);
|
|
}
|
|
|
|
&-media {
|
|
top: .125rem;
|
|
}
|
|
|
|
&-content {
|
|
//max-width: 300px;
|
|
position: absolute;
|
|
max-width: calc(100% - 1.25rem);
|
|
height: auto;
|
|
min-height: 32px;
|
|
white-space: nowrap;
|
|
text-overflow: ellipsis;
|
|
overflow: hidden;
|
|
}
|
|
}
|
|
|
|
// &:not(.just-media):not(.is-message-empty) .reply {
|
|
.message + .reply {
|
|
// margin-bottom: .125rem; // ! JS2 mockup
|
|
margin-bottom: 0; // ! same margin as between name and message
|
|
}
|
|
|
|
&.just-media {
|
|
.reply,
|
|
.name {
|
|
padding: 10px;
|
|
border-radius: 12px;
|
|
position: absolute;
|
|
top: 0;
|
|
margin-bottom: 0;
|
|
background-color: var(--message-highlightning-color);
|
|
white-space: nowrap;
|
|
max-width: 15rem;
|
|
|
|
@include respond-to(handhelds) {
|
|
max-width: calc(100vw - #{$chat-padding-handhelds * 2} - 10px - 100%);
|
|
}
|
|
}
|
|
|
|
.name {
|
|
color: #fff !important;
|
|
padding: .3125rem .625rem;
|
|
line-height: var(--line-height);
|
|
|
|
.peer-title {
|
|
font-weight: 400 !important;
|
|
// pointer-events: none;
|
|
}
|
|
}
|
|
|
|
.reply {
|
|
height: 54px;
|
|
max-height: 54px;
|
|
|
|
@include respond-to(handhelds) {
|
|
padding: 8px 6px 8px 8px;
|
|
}
|
|
|
|
&-content {
|
|
margin-top: 0;
|
|
position: relative;
|
|
max-width: none !important;
|
|
}
|
|
|
|
&-title,
|
|
&-subtitle,
|
|
i {
|
|
color: #fff !important;
|
|
}
|
|
|
|
&-border {
|
|
background: #fff;
|
|
}
|
|
}
|
|
}
|
|
|
|
/* &.photo, &.video {
|
|
&:not(.hide-name) {
|
|
.attachment {
|
|
border-top-left-radius: 0;
|
|
border-top-right-radius: 0;
|
|
}
|
|
}
|
|
} */
|
|
|
|
&.forwarded .attachment,
|
|
&.is-reply .attachment,
|
|
&:not(.hide-name)/* .is-message-empty */ .attachment/* ,
|
|
&:not(.hide-name):not(.sticker) .attachment */ {
|
|
border-top-left-radius: 0;
|
|
border-top-right-radius: 0;
|
|
}
|
|
|
|
.message {
|
|
font-size: var(--messages-text-size);
|
|
padding: 0 .5rem .375rem .625rem;
|
|
max-width: 100%;
|
|
color: var(--primary-text-color);
|
|
line-height: var(--line-height); // 21 / 16
|
|
word-break: break-word;
|
|
white-space: pre-wrap; // * fix spaces on line begin
|
|
position: relative;
|
|
|
|
&:last-child {
|
|
padding-top: 6px;
|
|
}
|
|
}
|
|
|
|
@include respond-to(handhelds) {
|
|
.document,
|
|
.audio {
|
|
--icon-size: 2.25rem;
|
|
}
|
|
}
|
|
|
|
.audio {
|
|
$parent: ".audio";
|
|
#{$parent} {
|
|
&-title {
|
|
font-weight: 500;
|
|
}
|
|
|
|
&-ico {
|
|
font-size: 0;
|
|
}
|
|
}
|
|
|
|
@include respond-to(handhelds) {
|
|
height: 2.375rem;
|
|
--icon-margin: .6875rem;
|
|
|
|
.audio-details {
|
|
margin-top: 2px;
|
|
margin-bottom: 0;
|
|
}
|
|
|
|
.audio-subtitle {
|
|
margin-top: -1px;
|
|
}
|
|
|
|
/* &.corner-download .audio-download {
|
|
margin: 1.375rem 1.375rem 0;
|
|
} */
|
|
}
|
|
}
|
|
|
|
// all for audio (not voice)
|
|
.message.audio-message {
|
|
width: 335px;
|
|
max-width: unquote("min(100%, 335px)") !important;
|
|
|
|
@include respond-to(handhelds) {
|
|
width: 280px;
|
|
max-width: unquote("min(100%, 300px)") !important;
|
|
}
|
|
}
|
|
|
|
.message.voice-message {
|
|
.document-message {
|
|
max-width: fit-content;
|
|
}
|
|
}
|
|
|
|
.message.audio-message,
|
|
.message.voice-message {
|
|
padding: 8px !important;
|
|
//padding: 4px 6px 4px 8px !important;
|
|
}
|
|
|
|
.message.contact-message,
|
|
.message.call-message {
|
|
min-width: 200px;
|
|
padding-left: 8px;
|
|
}
|
|
|
|
.message.contact-message {
|
|
.contact {
|
|
display: flex;
|
|
padding: 2px 0;
|
|
cursor: pointer;
|
|
user-select: none;
|
|
|
|
&-avatar {
|
|
color: #fff;
|
|
}
|
|
|
|
&-details {
|
|
padding-left: 12px;
|
|
margin-top: 8px;
|
|
display: flex;
|
|
flex-direction: column;
|
|
}
|
|
|
|
&-name {
|
|
font-size: 1rem;
|
|
font-weight: 500;
|
|
}
|
|
|
|
&-number {
|
|
font-size: 14px;
|
|
line-height: 1.4;
|
|
}
|
|
}
|
|
}
|
|
|
|
.message.poll-message {
|
|
max-width: 400px;
|
|
}
|
|
|
|
.message.document-message {
|
|
max-width: 325px !important;
|
|
|
|
.document {
|
|
--icon-margin: .75rem;
|
|
height: 58px;
|
|
|
|
@include respond-to(handhelds) {
|
|
--icon-margin: .5rem;
|
|
height: 44px;
|
|
|
|
.document-size {
|
|
font-size: .75rem;
|
|
}
|
|
|
|
&:not(.document-with-thumb) .document-ico {
|
|
padding: 1.125rem 0 0 0;
|
|
}
|
|
}
|
|
|
|
&-name {
|
|
line-height: 1.4;
|
|
margin-top: 1px;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
}
|
|
}
|
|
}
|
|
|
|
&-call {
|
|
cursor: pointer;
|
|
padding: .125rem 0;
|
|
padding-left: 2.5625rem;
|
|
display: flex;
|
|
flex-direction: column;
|
|
justify-content: center;
|
|
position: relative;
|
|
user-select: none;
|
|
|
|
&:before {
|
|
position: absolute;
|
|
left: .3125rem;
|
|
font-size: 1.5rem;
|
|
}
|
|
|
|
&-title {
|
|
font-weight: 500;
|
|
}
|
|
|
|
&-subtitle {
|
|
font-size: .875rem;
|
|
color: var(--secondary-text-color);
|
|
display: flex;
|
|
align-items: center;
|
|
margin-top: .0625rem;
|
|
margin-left: -.1875rem;
|
|
|
|
&.is-reason:before {
|
|
margin-right: .0625rem;
|
|
}
|
|
|
|
&:before {
|
|
content: $tgico-arrow-next;
|
|
display: inline-block;
|
|
transform: rotate(135deg);
|
|
font-size: 1rem;
|
|
}
|
|
|
|
&.arrow-red:before {
|
|
color: var(--danger-color);
|
|
}
|
|
|
|
&.arrow-green:before {
|
|
color: var(--message-out-primary-color);
|
|
}
|
|
}
|
|
}
|
|
|
|
.document-wrapper {
|
|
display: flex;
|
|
flex-direction: column-reverse;
|
|
|
|
.document-message {
|
|
margin-top: .25rem;
|
|
}
|
|
}
|
|
|
|
/* .document,
|
|
.audio {
|
|
.time.tgico {
|
|
position: relative !important;
|
|
height: 0px !important;
|
|
visibility: hidden !important;
|
|
float: none;
|
|
|
|
.inner {
|
|
visibility: hidden !important;
|
|
}
|
|
}
|
|
} */
|
|
|
|
.document-message {
|
|
& + .document,
|
|
& + .audio {
|
|
.time {
|
|
display: none !important;
|
|
}
|
|
}
|
|
}
|
|
|
|
&.is-multiple-documents {
|
|
/* .bubble-content {
|
|
position: unset;
|
|
} */
|
|
|
|
.message {
|
|
padding: 0 !important;
|
|
border-radius: inherit;
|
|
}
|
|
|
|
.document-container {
|
|
position: relative;
|
|
border-radius: inherit;
|
|
|
|
.document-selection {
|
|
position: absolute;
|
|
top: 0;
|
|
bottom: 0;
|
|
z-index: -1;
|
|
width: 200vw;
|
|
left: -75vw;
|
|
}
|
|
|
|
&.is-highlighted,
|
|
&.is-selected {
|
|
.document-wrapper {
|
|
&:before {
|
|
content: " ";
|
|
position: absolute;
|
|
top: 0;
|
|
right: 0;
|
|
bottom: 0;
|
|
left: 0;
|
|
background-color: rgba(0, 0, 0, .06);
|
|
border-radius: inherit;
|
|
}
|
|
}
|
|
}
|
|
|
|
&.is-highlighted {
|
|
.document-selection {
|
|
background-color: var(--message-highlightning-color);
|
|
}
|
|
|
|
body:not(.animation-level-0) & {
|
|
.document-selection,
|
|
.document-wrapper:before {
|
|
animation: bubbleSelected 2s linear;
|
|
}
|
|
}
|
|
}
|
|
|
|
&.is-selected {
|
|
.document-selection {
|
|
background-color: var(--message-highlightning-color);
|
|
}
|
|
|
|
body:not(.animation-level-0) & {
|
|
.document-selection,
|
|
.document-wrapper:before {
|
|
animation: fade-in-opacity .2s linear forwards;
|
|
}
|
|
|
|
&.backwards {
|
|
.document-selection,
|
|
.document-wrapper:before {
|
|
animation: fade-in-backwards-opacity .2s linear forwards;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
.bubble-select-checkbox {
|
|
--margin-top: .25rem;
|
|
--margin-left: .125rem;
|
|
left: auto;
|
|
top: auto;
|
|
background: #fff;
|
|
border-radius: 50%;
|
|
margin-left: calc(var(--padding-left) * -1 + var(--icon-size) - var(--size) + var(--margin-left));
|
|
margin-top: calc(var(--icon-size) - var(--size) + var(--margin-top));
|
|
|
|
@include respond-to(handhelds) {
|
|
--size: 1.125rem;
|
|
// left: 20px;
|
|
// top: 25px;
|
|
}
|
|
|
|
&:before {
|
|
--inner-size: .125rem;
|
|
content: " ";
|
|
position: absolute;
|
|
width: calc(var(--size) - (var(--inner-size) * 2));
|
|
height: calc(var(--size) - (var(--inner-size) * 2));
|
|
left: var(--inner-size);
|
|
top: var(--inner-size);
|
|
border: 2px solid var(--secondary-color);
|
|
border-radius: inherit;
|
|
}
|
|
}
|
|
|
|
&:first-of-type {
|
|
.document-selection {
|
|
top: -#{$bubble-margin / 2}; // * padding inner + half padding outer
|
|
}
|
|
|
|
.document-wrapper {
|
|
padding-top: .5rem;
|
|
border-top-left-radius: inherit;
|
|
border-top-right-radius: inherit;
|
|
}
|
|
}
|
|
|
|
&:last-of-type {
|
|
.document-selection {
|
|
bottom: -#{$bubble-margin / 2};
|
|
}
|
|
|
|
.document-wrapper {
|
|
padding-bottom: .5rem;
|
|
border-bottom-left-radius: inherit;
|
|
border-bottom-right-radius: inherit;
|
|
}
|
|
}
|
|
}
|
|
|
|
&.is-group-first .document-container {
|
|
&:first-of-type {
|
|
.document-selection {
|
|
top: -$bubble-margin;
|
|
}
|
|
}
|
|
}
|
|
|
|
&.is-group-last .document-container {
|
|
&:last-of-type {
|
|
.document-selection {
|
|
bottom: -$bubble-margin;
|
|
}
|
|
}
|
|
}
|
|
|
|
.document {
|
|
height: 54px !important;
|
|
|
|
@include respond-to(handhelds) {
|
|
height: 38px !important;
|
|
}
|
|
}
|
|
|
|
.document-wrapper {
|
|
background-color: var(--message-background-color);
|
|
padding: .25rem .5rem;
|
|
|
|
> .name {
|
|
// padding: .0625rem 0 .375rem;
|
|
padding: 0 0 .25rem 0;
|
|
margin-top: -.1875rem;
|
|
}
|
|
}
|
|
|
|
// * if have name
|
|
/* .bubbles-inner.is-chat &.is-in.is-group-first {
|
|
.document-container:first-of-type {
|
|
.document-selection {
|
|
top: -30px;
|
|
}
|
|
|
|
.document-wrapper {
|
|
border-top-left-radius: 0;
|
|
border-top-right-radius: 0;
|
|
|
|
&:before {
|
|
top: -26px;
|
|
border-top-left-radius: $border-radius-big;
|
|
border-top-right-radius: $border-radius-big;
|
|
}
|
|
}
|
|
}
|
|
} */
|
|
}
|
|
|
|
.message {
|
|
// &.document-message,
|
|
&.audio-message,
|
|
&.voice-message,
|
|
&.poll-message,
|
|
&.contact-message {
|
|
.time {
|
|
position: absolute;
|
|
right: 0;
|
|
bottom: 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
// ! SAFARI FIX BLINK ON SELECTION TRANSFORM !
|
|
html:not(.is-safari) & {
|
|
.message.voice-message {
|
|
overflow: hidden;
|
|
}
|
|
}
|
|
|
|
&.is-message-empty {
|
|
.message {
|
|
position: absolute;
|
|
/* position: relative;
|
|
width: max-content; */
|
|
bottom: .1875rem;
|
|
right: .1875rem;
|
|
border-radius: .75rem;
|
|
background-color: var(--message-time-background);
|
|
padding: 0 .3125rem;
|
|
z-index: 2;
|
|
|
|
.time {
|
|
margin-left: 0;
|
|
display: flex;
|
|
align-items: center;
|
|
padding: 0;
|
|
margin: 0;
|
|
white-space: nowrap;
|
|
height: 18px;
|
|
|
|
.inner {
|
|
right: unset;
|
|
bottom: unset;
|
|
color: #fff;
|
|
margin: inherit;
|
|
|
|
&:after {
|
|
color: #fff;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
&.with-replies:not(.sticker) .message {
|
|
bottom: 55px;
|
|
}
|
|
|
|
&.sticker,
|
|
&.with-replies.round,
|
|
&.emoji-big {
|
|
.message {
|
|
bottom: 0;
|
|
}
|
|
}
|
|
|
|
&:not(.emoji-big) {
|
|
.reactions-block {
|
|
max-width: fit-content;
|
|
}
|
|
}
|
|
|
|
.reaction-block {
|
|
--chosen-background-color: var(--primary-color);
|
|
}
|
|
}
|
|
|
|
&.with-reply-markup {
|
|
.bubble-content {
|
|
min-width: 100%;
|
|
}
|
|
}
|
|
|
|
&.with-replies .attachment {
|
|
border-bottom-left-radius: 0;
|
|
border-bottom-right-radius: 0;
|
|
}
|
|
|
|
.time {
|
|
visibility: hidden; // * can't use color transparent here, because in name can be emoji
|
|
font-size: 12px;
|
|
user-select: none;
|
|
line-height: 1;
|
|
vertical-align: middle;
|
|
pointer-events: none; // do not show title
|
|
display: inline-flex;
|
|
z-index: 1;
|
|
/* display: inline-flex;
|
|
align-items: center; */
|
|
height: 12px;
|
|
direction: ltr;
|
|
float: right; // * rtl fix
|
|
cursor: pointer;
|
|
|
|
i {
|
|
font-size: 1.125rem;
|
|
margin-right: .375rem;
|
|
}
|
|
|
|
&-icon {
|
|
pointer-events: none;
|
|
|
|
&:not(:first-child) {
|
|
margin-left: 2px;
|
|
}
|
|
}
|
|
|
|
i.edited {
|
|
overflow: visible;
|
|
font-size: inherit;
|
|
}
|
|
|
|
.inner {
|
|
pointer-events: all;
|
|
position: absolute;
|
|
bottom: 0;
|
|
right: 0;
|
|
display: flex;
|
|
align-items: center;
|
|
line-height: 1;
|
|
padding: inherit;
|
|
white-space: nowrap;
|
|
height: 12px; // * as font-size
|
|
visibility: visible;
|
|
}
|
|
|
|
.tgico-pinnedchat {
|
|
margin-right: .125rem;
|
|
}
|
|
}
|
|
|
|
&.webpage .time {
|
|
float: none;
|
|
}
|
|
|
|
.video-time,
|
|
.video-play {
|
|
pointer-events: none;
|
|
}
|
|
|
|
.video-time {
|
|
position: absolute;
|
|
top: 3px;
|
|
left: 3px;
|
|
border-radius: 12px;
|
|
background-color: var(--message-time-background);
|
|
padding: 0px 6px 0px 6px;
|
|
z-index: 2;
|
|
font-size: 12px;
|
|
color: white;
|
|
display: flex;
|
|
align-items: center;
|
|
user-select: none;
|
|
height: 1.125rem;
|
|
line-height: 1;
|
|
|
|
&.can-autoplay:after {
|
|
content: $tgico-nosound;
|
|
|
|
// * same as .iconVolume
|
|
padding: 0 1px 0 3px;
|
|
font-size: 1.25rem;
|
|
color: #fff;
|
|
}
|
|
}
|
|
|
|
pre {
|
|
display: inline;
|
|
margin: 0;
|
|
}
|
|
|
|
.anchor-url {
|
|
text-decoration: underline;
|
|
}
|
|
|
|
.video-play {
|
|
background-color: var(--message-time-background);
|
|
color: #fff;
|
|
text-align: center;
|
|
font-size: 2.125rem;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
z-index: 1;
|
|
}
|
|
|
|
.ckin__player.circle {
|
|
z-index: 1;
|
|
}
|
|
|
|
&:not(.forwarded).hide-name {
|
|
.name {
|
|
display: none;
|
|
}
|
|
}
|
|
|
|
.name {
|
|
user-select: none;
|
|
}
|
|
|
|
.peer-title {
|
|
cursor: pointer;
|
|
}
|
|
|
|
.name {
|
|
// &-content > .name,
|
|
// .document-wrapper > .name {
|
|
/* padding: .2675rem 9px 0 9px; */
|
|
/* padding: .32rem 9px 0 9px; */
|
|
padding: 5px 9px 0 9px;
|
|
font-weight: 500 !important;
|
|
/* padding-bottom: 4px; */
|
|
color: var(--primary-color);
|
|
font-size: .9rem;
|
|
max-width: 100%;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
// order: 1;
|
|
//width: max-content;
|
|
//white-space: nowrap;
|
|
}
|
|
|
|
/* &:not(.is-group-first) .bubble-content > .name .name {
|
|
display: none;
|
|
} */
|
|
|
|
&:not(.webpage) {
|
|
&.photo,
|
|
&.video {
|
|
.bubble-content > .name {
|
|
//padding-bottom: .2675rem;
|
|
padding-bottom: 6px;
|
|
}
|
|
|
|
&:not(.is-message-empty) .message {
|
|
//padding-top: .2675rem;
|
|
padding-top: 6px;
|
|
}
|
|
}
|
|
}
|
|
|
|
&:not(.webpage):not(.is-album):not(.sticker):not(.round):not(.emoji-big) .attachment {
|
|
background-color: #000;
|
|
}
|
|
|
|
&.hide-name:not(.is-reply):not(.is-message-empty) .message {
|
|
//padding-top: .2675rem;
|
|
padding-top: 6px;
|
|
}
|
|
|
|
&:not(.sticker):not(.emoji-big) {
|
|
&.hide-name,
|
|
&:not(.is-group-first)/* , &.is-out */ {
|
|
.reply {
|
|
margin-top: 6px;
|
|
}
|
|
}
|
|
}
|
|
|
|
.bubble-tail {
|
|
display: none;
|
|
}
|
|
|
|
//&.can-have-tail.is-group-last .bubble-content:after {
|
|
&.can-have-tail.is-group-last .bubble-tail {
|
|
position: absolute;
|
|
//bottom: 0;
|
|
width: 11px;
|
|
height: 20px;
|
|
//background-repeat: no-repeat no-repeat;
|
|
//content: '';
|
|
//background-size: 11px 20px;
|
|
//background-position-y: 1px;
|
|
z-index: -2;
|
|
display: block;
|
|
fill: var(--message-background-color);
|
|
transform: translateY(1px);
|
|
}
|
|
|
|
&.photo,
|
|
&.video {
|
|
&.is-message-empty.is-group-last:not(.with-replies) {
|
|
//.bubble-content:after {
|
|
.bubble-tail {
|
|
display: none;
|
|
}
|
|
}
|
|
}
|
|
|
|
&.is-message-empty.is-group-last.with-media-tail {
|
|
//.bubble-content:after {
|
|
.bubble-tail {
|
|
display: none;
|
|
}
|
|
|
|
.attachment {
|
|
overflow: visible;
|
|
}
|
|
}
|
|
|
|
&__media-container {
|
|
cursor: pointer;
|
|
border-radius: inherit;
|
|
}
|
|
|
|
audio-element,
|
|
poll-element {
|
|
white-space: normal; // * fix due to .message white-space prewrap
|
|
}
|
|
|
|
.replies {
|
|
user-select: none;
|
|
|
|
.c-ripple__circle {
|
|
background-color: var(--light-primary-color);
|
|
}
|
|
|
|
.rp {
|
|
width: 100%;
|
|
height: 100%;
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
overflow: hidden;
|
|
border-radius: inherit;
|
|
cursor: pointer;
|
|
}
|
|
|
|
&-beside {
|
|
flex-direction: column;
|
|
width: 36px;
|
|
min-height: 36px;
|
|
height: auto;
|
|
max-height: 52px;
|
|
bottom: 47px; // * forward button + 9px margin
|
|
border-radius: 2rem;
|
|
right: -44px; // * because not 38px, as forward button
|
|
padding: 5.5px 0;
|
|
|
|
.tgico-commentssticker {
|
|
font-size: 23px;
|
|
}
|
|
|
|
&-text {
|
|
font-size: .75rem;
|
|
}
|
|
}
|
|
|
|
&-footer {
|
|
height: 50px;
|
|
border-top: 1px solid var(--border-color);
|
|
position: relative;
|
|
display: flex;
|
|
align-items: center;
|
|
padding: 0 .5rem;
|
|
border-bottom-left-radius: inherit;
|
|
border-bottom-right-radius: inherit;
|
|
color: var(--primary-color);
|
|
min-width: 15rem;
|
|
|
|
.tgico-comments,
|
|
.tgico-next {
|
|
font-size: 1.4375rem;
|
|
}
|
|
|
|
&-text {
|
|
font-weight: 500;
|
|
font-size: 15px;
|
|
margin-left: 9px;
|
|
display: flex;
|
|
align-items: center;
|
|
color: var(--primary-color);
|
|
}
|
|
|
|
&-avatars {
|
|
display: flex;
|
|
flex-direction: row-reverse;
|
|
|
|
avatar-element {
|
|
width: 34px;
|
|
height: 34px;
|
|
border: 2px solid var(--surface-color);
|
|
cursor: pointer;
|
|
z-index: 0; // * fix border blinking
|
|
|
|
&:not(:first-child) {
|
|
margin-right: -14px;
|
|
}
|
|
}
|
|
}
|
|
|
|
.tgico-next {
|
|
position: absolute;
|
|
right: 4px;
|
|
}
|
|
|
|
&.is-unread {
|
|
.replies-footer-text {
|
|
&:after {
|
|
content: " ";
|
|
background-color: var(--primary-color);
|
|
width: .5rem;
|
|
height: .5rem;
|
|
margin-left: .75rem;
|
|
border-radius: 50%;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
&.is-thread-starter {
|
|
.user-avatar {
|
|
display: none;
|
|
}
|
|
|
|
&.is-in .bubble-content-wrapper {
|
|
margin-left: 0;
|
|
}
|
|
}
|
|
|
|
.message {
|
|
.reaction {
|
|
--background-color: var(--light-filled-message-primary-color);
|
|
|
|
&:not(.is-chosen),
|
|
&.is-chosen.backwards {
|
|
--counter-color: var(--message-primary-color);
|
|
|
|
.stacked-avatars {
|
|
--border-color: var(--background-color);
|
|
}
|
|
}
|
|
}
|
|
|
|
.reactions-block {
|
|
.time {
|
|
position: unset !important;
|
|
right: auto !important;
|
|
bottom: auto !important;
|
|
order: 100;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// * fix scroll with only 1 bubble
|
|
.bubbles-date-group:last-of-type {
|
|
.bubble:last-of-type {
|
|
margin-bottom: $bubble-margin;
|
|
/* &:after, .document-container:last-of-type .document-selection {
|
|
bottom: 0 !important;
|
|
} */
|
|
}
|
|
}
|
|
|
|
.bubble-content-wrapper {
|
|
transform: scale(1) translateX(0);
|
|
transform-origin: center;
|
|
opacity: 1;
|
|
|
|
display: flex;
|
|
flex-direction: column;
|
|
|
|
@include animation-level(2) {
|
|
transition: transform var(--transition-standard-out), opacity var(--transition-standard-out);
|
|
}
|
|
|
|
.bubbles-inner.zoom-fading & {
|
|
transition: transform var(--transition-standard-in), opacity var(--transition-standard-in);
|
|
//transition: transform 10s ease-in-out, opacity 10s ease-in-out;
|
|
}
|
|
|
|
&.zoom-fade /* .bubble-content */ {
|
|
transform: scale3d(.8, .8, 1) translateX(0);
|
|
//transform: scale(.8) translateX(0);
|
|
opacity: 0;
|
|
}
|
|
|
|
.bubble:not(.service) & {
|
|
@include respond-to(not-handhelds) {
|
|
max-width: 85%;
|
|
}
|
|
}
|
|
|
|
@include respond-to(handhelds) {
|
|
max-width: calc(100% - var(--message-handhelds-margin));
|
|
}
|
|
|
|
> .user-avatar {
|
|
position: absolute;
|
|
margin-left: -45px;
|
|
//left: -3rem; # DO JS3
|
|
bottom: 0;
|
|
cursor: pointer;
|
|
|
|
.bubbles.is-selecting & {
|
|
transform: scale3d(1, 1, 1);
|
|
transform-origin: bottom;
|
|
transition: transform var(--transition-standard-out);
|
|
|
|
body.animation-level-0 & {
|
|
transition: none;
|
|
}
|
|
}
|
|
|
|
.bubbles.is-selecting:not(.backwards) & {
|
|
transform: scale3d(.76, .76, 1);
|
|
transition: transform var(--transition-standard-in);
|
|
}
|
|
|
|
// @include respond-to(handhelds) {
|
|
// left: -45px;
|
|
// }
|
|
}
|
|
}
|
|
|
|
.bubble.service {
|
|
align-self: center;
|
|
justify-content: center;
|
|
|
|
b {
|
|
color: inherit;
|
|
}
|
|
|
|
.bubble-content {
|
|
background-color: transparent;
|
|
border-radius: .875rem;
|
|
|
|
&-wrapper {
|
|
max-width: 100%;
|
|
padding: 0 2rem;
|
|
}
|
|
}
|
|
|
|
.service-msg {
|
|
color: #fff;
|
|
//background-color: rgba(0, 0, 0, .24);
|
|
background-color: var(--message-highlightning-color);
|
|
font-size: .9375rem;
|
|
padding: .28125rem .625rem;
|
|
// line-height: var(--line-height);
|
|
line-height: 1.25rem;
|
|
border-radius: inherit;
|
|
user-select: none;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
text-align: center;
|
|
word-break: break-word;
|
|
|
|
i {
|
|
font-style: normal;
|
|
}
|
|
|
|
a {
|
|
color: #fff;
|
|
}
|
|
|
|
a,
|
|
.peer-title,
|
|
[data-saved-from] {
|
|
&:hover {
|
|
text-decoration: underline;
|
|
cursor: pointer;
|
|
}
|
|
}
|
|
|
|
.peer-title {
|
|
cursor: pointer;
|
|
//margin-right: 5px;
|
|
}
|
|
|
|
img.emoji {
|
|
margin-bottom: 3px;
|
|
}
|
|
}
|
|
}
|
|
|
|
.bubble.is-in {
|
|
.bubble-content {
|
|
&,
|
|
.poll-footer-button {
|
|
border-radius: 6px 12px 12px 6px;
|
|
}
|
|
}
|
|
|
|
&.is-group-first {
|
|
.bubble-content,
|
|
.poll-footer-button {
|
|
border-top-left-radius: 12px;
|
|
}
|
|
}
|
|
|
|
&.is-group-last {
|
|
&.can-have-tail {
|
|
.bubble-content,
|
|
.poll-footer-button {
|
|
border-bottom-left-radius: 0;
|
|
}
|
|
|
|
.bubble-tail {
|
|
margin-left: -8.4px;
|
|
}
|
|
|
|
/* .bubble-content:after {
|
|
margin-left: -8.4px;
|
|
background-image: url('assets/img/msg-tail-left.svg');
|
|
} */
|
|
}
|
|
|
|
&:not(.can-have-tail) {
|
|
.bubble-content,
|
|
.poll-footer-button {
|
|
border-bottom-left-radius: 12px;
|
|
}
|
|
}
|
|
}
|
|
|
|
&.just-media {
|
|
.reply,
|
|
.name {
|
|
left: calc(100% + 10px);
|
|
|
|
@include respond-to(handhelds) {
|
|
left: calc(100% + 1px);
|
|
}
|
|
}
|
|
}
|
|
|
|
.quote .webpage-name,
|
|
.reply-title
|
|
/* , .reply i */ {
|
|
color: var(--primary-color);
|
|
}
|
|
|
|
.time {
|
|
margin-left: -3px;
|
|
padding-right: 8px;
|
|
|
|
.inner {
|
|
color: var(--secondary-text-color);
|
|
margin-bottom: 4px;
|
|
}
|
|
}
|
|
|
|
&.is-message-empty.is-group-last {
|
|
/* &:not(.with-media-tail):not(.with-replies) {
|
|
&.photo, &.video {
|
|
.bubble-content {
|
|
border-bottom-left-radius: 6px;
|
|
}
|
|
}
|
|
} */
|
|
|
|
&.with-media-tail {
|
|
.attachment {
|
|
border-bottom-left-radius: 0;
|
|
}
|
|
|
|
.bubble__media-container {
|
|
margin-left: -9px;
|
|
}
|
|
}
|
|
}
|
|
|
|
.audio-subtitle,
|
|
.contact-number,
|
|
.audio-time {
|
|
color: var(--secondary-text-color) !important;
|
|
}
|
|
|
|
/* .poll {
|
|
&-answer-selected {
|
|
&:before {
|
|
margin-left: -1px;
|
|
}
|
|
}
|
|
} */
|
|
}
|
|
|
|
.bubble.is-out {
|
|
flex-direction: row-reverse;
|
|
--message-background-color: var(--message-out-background-color);
|
|
--light-message-background-color: var(--light-message-out-background-color);
|
|
--dark-message-background-color: var(--dark-message-out-background-color);
|
|
--link-color: var(--message-out-link-color);
|
|
--message-primary-color: var(--message-out-primary-color);
|
|
--light-filled-message-primary-color: var(--light-filled-message-out-primary-color);
|
|
|
|
.bubble-content {
|
|
margin-left: auto;
|
|
|
|
&,
|
|
.poll-footer-button {
|
|
border-radius: 12px 6px 6px 12px;
|
|
}
|
|
|
|
.name {
|
|
color: var(--message-out-primary-color);
|
|
}
|
|
|
|
/* html:not(.is-firefox) */ &-wrapper {
|
|
@include respond-to(medium-screens) {
|
|
transform: scale(1) translateX(calc((var(--chat-input-size) + #{$btn-send-margin}) * -1));
|
|
|
|
&.zoom-fade {
|
|
transform: scale3d(.8, .8, 1) translateX(calc((var(--chat-input-size) + #{$btn-send-margin}) * -1));
|
|
}
|
|
|
|
//@include respond-to(no-floating-left-sidebar) {
|
|
body.is-right-column-shown & {
|
|
transform: scale(1) translateX(0);
|
|
|
|
@include animation-level(2) {
|
|
transition: transform var(--transition-standard-in), opacity var(--transition-standard-in);
|
|
}
|
|
|
|
&.zoom-fade {
|
|
transform: scale3d(.8, .8, 1) translateX(0);
|
|
}
|
|
}
|
|
//}
|
|
}
|
|
}
|
|
}
|
|
|
|
/* .bubble-content-wrapper {
|
|
> .user-avatar {
|
|
left: auto;
|
|
right: -2.5rem;
|
|
}
|
|
} */
|
|
|
|
&.is-group-first {
|
|
.bubble-content,
|
|
.poll-footer-button {
|
|
border-top-right-radius: 12px;
|
|
}
|
|
}
|
|
|
|
&.is-group-last {
|
|
&.can-have-tail {
|
|
.bubble-content,
|
|
.poll-footer-button {
|
|
border-bottom-right-radius: 0;
|
|
}
|
|
|
|
.bubble-tail {
|
|
right: -8.4px;
|
|
transform: translateY(1px) scaleX(-1);
|
|
}
|
|
|
|
/* .bubble-content:after {
|
|
right: -8.4px;
|
|
background-image: url('assets/img/msg-tail-right.svg');
|
|
} */
|
|
}
|
|
|
|
&:not(.can-have-tail) {
|
|
.bubble-content,
|
|
.poll-footer-button {
|
|
border-bottom-right-radius: 12px;
|
|
}
|
|
}
|
|
}
|
|
|
|
&.just-media {
|
|
.reply,
|
|
.name {
|
|
right: calc(100% + 10px);
|
|
}
|
|
|
|
.message {
|
|
right: 0;
|
|
}
|
|
}
|
|
|
|
&:not(.just-media) {
|
|
.reply {
|
|
&-border {
|
|
background-color: var(--message-out-primary-color);
|
|
}
|
|
|
|
&-title,
|
|
i {
|
|
color: var(--message-out-primary-color);
|
|
}
|
|
}
|
|
}
|
|
|
|
.quote:before {
|
|
background-color: var(--message-out-primary-color);
|
|
}
|
|
|
|
.quote .webpage-name {
|
|
color: var(--message-out-primary-color);
|
|
}
|
|
|
|
.time {
|
|
padding-right: 5px;
|
|
margin-left: -4px;
|
|
|
|
.inner {
|
|
color: var(--message-out-status-color);
|
|
bottom: 4px;
|
|
}
|
|
|
|
&:after,
|
|
.inner:after {
|
|
font-size: 19px;
|
|
//vertical-align: middle;
|
|
margin-left: 1px;
|
|
line-height: 16px; // of message
|
|
color: var(--message-out-primary-color);
|
|
}
|
|
}
|
|
|
|
/* &.is-message-empty .time:after {
|
|
margin-bottom: 1px;
|
|
} */
|
|
|
|
&.forwarded {
|
|
.name {
|
|
color: var(--message-out-primary-color);
|
|
}
|
|
}
|
|
|
|
&.is-read {
|
|
.time:after,
|
|
.time .inner:after {
|
|
content: $tgico-checks;
|
|
}
|
|
}
|
|
|
|
&.is-sent {
|
|
.time:after,
|
|
.time .inner:after {
|
|
content: $tgico-check;
|
|
}
|
|
}
|
|
|
|
&.is-sending {
|
|
.time:after,
|
|
.time .inner:after {
|
|
content: $tgico-sending;
|
|
}
|
|
}
|
|
|
|
/* &.is-reply .name {
|
|
display: none;
|
|
} */
|
|
|
|
.document-ico:after {
|
|
border-top-color: var(--message-background-color);
|
|
border-right-color: var(--message-background-color);
|
|
}
|
|
|
|
.audio {
|
|
&-waveform {
|
|
rect {
|
|
fill: var(--message-out-primary-color);
|
|
|
|
&.active {
|
|
fill: var(--message-out-primary-color) !important;
|
|
}
|
|
}
|
|
}
|
|
|
|
&-time,
|
|
&-subtitle {
|
|
color: var(--message-out-status-color);
|
|
}
|
|
|
|
&-toggle,
|
|
&-download,
|
|
&.corner-download .preloader-container {
|
|
background-color: var(--message-out-primary-color);
|
|
}
|
|
|
|
&-download:empty {
|
|
display: none;
|
|
}
|
|
|
|
&.is-unread {
|
|
rect {
|
|
fill: var(--message-out-primary-color);
|
|
}
|
|
|
|
.audio-time:after {
|
|
background-color: var(--message-out-primary-color);
|
|
}
|
|
}
|
|
|
|
&-toggle {
|
|
.part {
|
|
background-color: var(--message-out-audio-play-button-color);
|
|
}
|
|
}
|
|
}
|
|
|
|
&.is-message-empty.is-group-last {
|
|
/* &:not(.with-media-tail) {
|
|
&.photo, &.video {
|
|
.bubble-content {
|
|
border-bottom-right-radius: 6px;
|
|
}
|
|
}
|
|
} */
|
|
|
|
&.with-media-tail {
|
|
.attachment {
|
|
border-bottom-right-radius: 0;
|
|
}
|
|
|
|
.bubble__media-container {
|
|
margin-right: -9px;
|
|
}
|
|
}
|
|
}
|
|
|
|
&.is-message-empty {
|
|
.reactions-block {
|
|
justify-content: flex-end;
|
|
}
|
|
|
|
.reaction-block {
|
|
margin-right: .25rem;
|
|
|
|
&:last-child {
|
|
margin-right: 0;
|
|
}
|
|
|
|
&.is-chosen {
|
|
--chosen-background-color: var(--surface-color);
|
|
}
|
|
}
|
|
|
|
&:not(.emoji-big) {
|
|
.reactions-block {
|
|
margin-left: auto;
|
|
}
|
|
}
|
|
}
|
|
|
|
.contact-number,
|
|
.document-size,
|
|
.bubble-call-subtitle {
|
|
color: var(--message-out-status-color);
|
|
}
|
|
|
|
.bubble-call-subtitle:before {
|
|
transform: rotate(-45deg);
|
|
}
|
|
|
|
poll-element {
|
|
.poll {
|
|
&-desc,
|
|
&-votes-count {
|
|
color: var(--message-out-primary-color);
|
|
}
|
|
|
|
&-line use {
|
|
stroke: var(--message-out-primary-color);
|
|
}
|
|
|
|
&-answer-selected {
|
|
background-color: var(--message-out-primary-color);
|
|
color: var(--message-out-background-color);
|
|
}
|
|
|
|
html.no-touch &-answer:hover {
|
|
.animation-ring {
|
|
background-color: var(--message-out-primary-color);
|
|
opacity: .08;
|
|
}
|
|
}
|
|
|
|
&-footer-button,
|
|
&-hint {
|
|
color: var(--message-out-primary-color);
|
|
}
|
|
}
|
|
|
|
.progress-ring__circle {
|
|
stroke: var(--message-out-primary-color);
|
|
}
|
|
|
|
.c-ripple__circle {
|
|
background-color: var(--message-out-primary-color);
|
|
|
|
&:not(.hiding) {
|
|
opacity: .08;
|
|
}
|
|
}
|
|
}
|
|
|
|
&.is-sending poll-element {
|
|
pointer-events: none;
|
|
}
|
|
|
|
.audio {
|
|
.progress-line {
|
|
--color: var(--message-out-primary-color);
|
|
|
|
&:before,
|
|
&__loaded {
|
|
background-color: var(--message-out-primary-color);
|
|
}
|
|
}
|
|
|
|
.preloader-container {
|
|
--color: var(--message-background-color);
|
|
}
|
|
}
|
|
|
|
.bubble-beside-button {
|
|
right: auto;
|
|
left: var(--message-beside-button-margin);
|
|
//transform: scaleX(-1);
|
|
|
|
&.goto-original {
|
|
transform: rotate(180deg);
|
|
}
|
|
}
|
|
|
|
&.is-multiple-documents {
|
|
.document-container {
|
|
.bubble-select-checkbox {
|
|
background-color: var(--message-background-color);
|
|
|
|
&:before {
|
|
border-color: var(--dark-message-background-color);
|
|
}
|
|
|
|
.checkbox-box-border {
|
|
border-color: var(--message-background-color);
|
|
}
|
|
}
|
|
|
|
/* &:after {
|
|
left: -50vw;
|
|
} */
|
|
}
|
|
|
|
.document-wrapper {
|
|
background-color: var(--message-background-color);
|
|
}
|
|
}
|
|
|
|
.bubble-hover-reaction {
|
|
right: auto;
|
|
left: var(--offset);
|
|
}
|
|
|
|
/* &.sticker {
|
|
.message {
|
|
margin-right: 0;
|
|
margin-left: auto;
|
|
}
|
|
} */
|
|
}
|
|
|
|
.reply-markup {
|
|
width: 100%;
|
|
|
|
&-row {
|
|
margin-top: .3125rem;
|
|
overflow: hidden;
|
|
min-height: 2.5rem;
|
|
display: flex;
|
|
|
|
&:last-child {
|
|
border-bottom-left-radius: $border-radius-big;
|
|
border-bottom-right-radius: $border-radius-big;
|
|
}
|
|
}
|
|
|
|
&-button {
|
|
padding: .5625rem 0;
|
|
border-radius: 6px;
|
|
z-index: 2;
|
|
font-size: .875rem;
|
|
user-select: none;
|
|
text-align: center;
|
|
color: #fff !important;
|
|
outline: none;
|
|
border: none;
|
|
width: 100%;
|
|
cursor: pointer;
|
|
position: relative;
|
|
overflow: hidden;
|
|
//line-height: var(--line-height);
|
|
background: var(--message-highlightning-color);
|
|
|
|
&.anchor-url {
|
|
text-decoration: none !important;
|
|
}
|
|
|
|
&:after {
|
|
content: " ";
|
|
display: block;
|
|
position: absolute;
|
|
top: 0;
|
|
right: 0;
|
|
bottom: 0;
|
|
left: 0;
|
|
border-radius: inherit;
|
|
opacity: 0;
|
|
z-index: -1;
|
|
background-color: #fff;
|
|
|
|
@include animation-level(2) {
|
|
transition: opacity .35s ease;
|
|
}
|
|
}
|
|
|
|
@include hover() {
|
|
&:after {
|
|
opacity: var(--hover-alpha);
|
|
}
|
|
}
|
|
|
|
& + & {
|
|
margin-left: .3125rem;
|
|
}
|
|
|
|
&.tgico:before,
|
|
.forward-icon {
|
|
position: absolute;
|
|
right: .125rem;
|
|
top: .125rem;
|
|
display: block;
|
|
}
|
|
|
|
&.is-link:before {
|
|
content: $tgico-arrow-next;
|
|
transform: rotate(-45deg);
|
|
}
|
|
|
|
&.is-switch-inline:before {
|
|
content: $tgico-forward_filled;
|
|
}
|
|
}
|
|
}
|