-
+
Working with GIFs
diff --git a/data/web/fragment.com/css/auction.css b/data/web/fragment.com/css/auction.css
index ad26c15845..01a70f305e 100644
--- a/data/web/fragment.com/css/auction.css
+++ b/data/web/fragment.com/css/auction.css
@@ -52,7 +52,8 @@
--popup-border-radius: 12px;
--bg-rgb: 26, 32, 38;
--bg-color: rgb(var(--bg-rgb));
- --header-bg-color: rgba(33, 42, 51, .9);
+ --header-bg-rgb: 33, 42, 51;
+ --header-bg-color: rgba(var(--header-bg-rgb), .9);
--bg-hover-color: #212a33;
--def-transition-duration: .2s;
--def-transition: var(--def-transition-duration) ease;
@@ -104,6 +105,10 @@ a:focus {
color: var(--accent-color);
}
+.mini-frac {
+ font-size: 80%;
+}
+
.link-text {
color: var(--accent-color);
cursor: pointer;
@@ -295,19 +300,38 @@ i.icon {
margin-bottom: 20px;
}
.tm-main-form-link-wrap {
- font-size: 15px;
+ font-size: 13px;
line-height: 19px;
- margin-top: 30px;
+ margin-top: 20px;
text-align: center;
}
-.tm-form-radio-item {
+.tm-form-radio-items {
+ margin: -4px 0;
+}
+.tm-form-radio-item,
+.tm-form-radio-item-more {
display: block;
position: relative;
+ padding: 4px 0;
margin-bottom: 0;
cursor: pointer;
}
-.tm-form-radio-item + .tm-form-radio-item {
- margin-top: 8px;
+.icon-options-more:after {
+ width: 20px;
+ height: 20px;
+ background-image: var(--image-url-options-more-icon);
+}
+.tm-form-radio-item-wrap {
+ padding: 0 3px;
+ margin: 0 -3px;
+ height: 56px;
+ transition: all var(--def-transition);
+ overflow: hidden;
+}
+.options-expanded .tm-form-radio-item-wrap.tm-more-options,
+.options-collapsed .tm-form-radio-item-wrap.tm-second-option {
+ visibility: hidden;
+ height: 0;
}
.tm-form-radio-item input.radio {
position: absolute;
@@ -327,6 +351,9 @@ i.icon {
position: relative;
overflow: hidden;
}
+.tm-form-radio-label svg {
+ color: var(--field-bg-color);
+}
.tm-form-radio-item input.radio ~ .tm-form-radio-label:before {
display: inline-block;
flex-shrink: 0;
@@ -339,7 +366,7 @@ i.icon {
background-color: var(--accent-color);
box-shadow: inset 0 0 0 20px var(--field-bg-color);
transition: border-color var(--def-transition), box-shadow var(--def-transition);
- margin-right: 19px;
+ margin-right: 14px;
}
.tm-form-radio-item input.radio:checked ~ .tm-form-radio-label {
box-shadow: 0 0 0 2px var(--accent-color);
@@ -348,6 +375,11 @@ i.icon {
box-shadow: inset 0 0 0 2px var(--field-bg-color);
border-color: var(--accent-color);
}
+.tm-form-radio-item-more .tm-form-radio-label {
+ display: block;
+ text-align: center;
+ color: var(--accent-color);
+}
.tm-form-radio-label .tm-radio-label {
flex-grow: 1;
}
@@ -366,12 +398,17 @@ i.icon {
.tm-form-radio-label .tm-value {
width: 70px;
}
+.tm-stars-price .tm-value.icon-ton:before,
.tm-form-radio-label .tm-value.icon-ton:before {
width: 15px;
height: 19px;
margin-left: -1px;
margin-right: 4px;
}
+.tm-stars-options .tm-form-radio-label .tm-value {
+ width: 100px;
+ text-align: right;
+}
.tm-form-radio-label .tm-radio-desc {
font-weight: normal;
text-align: right;
@@ -689,7 +726,8 @@ i.icon {
margin-right: 10px;
}
-.icon-telegram-premium {
+.icon-telegram-premium,
+.icon-telegram-stars {
width: 22px;
height: 30px;
margin-left: 6px;
@@ -697,6 +735,9 @@ i.icon {
i.icon-telegram-premium {
background-image: var(--image-url-telegram-premium);
}
+i.icon-telegram-stars {
+ background-image: var(--image-url-stars-icon);
+}
svg.icon-telegram-premium use {
fill: var(--field-accent-color);
scale: 0.833;
@@ -710,6 +751,25 @@ svg.icon-telegram-premium use {
fill: currentColor;
scale: 0.9444;
}
+.tm-qr-code-label svg.icon-telegram-stars {
+ width: 20px;
+ height: 20px;
+ scale: 1.2;
+ margin: 4px 2px;
+}
+.tm-qr-code-label svg.icon-telegram-stars use {
+ transition: var(--def-transition) opacity;
+}
+.tm-qr-code-label svg.icon-telegram-stars use.icon-bg {
+ fill: currentColor;
+ opacity: 0;
+}
+.qr-inactive .tm-qr-code-label svg.icon-telegram-stars use.icon-main {
+ opacity: 0;
+}
+.qr-inactive .tm-qr-code-label svg.icon-telegram-stars use.icon-bg {
+ opacity: 1;
+}
.icon-ton-qr {
width: 24px;
@@ -717,13 +777,49 @@ svg.icon-telegram-premium use {
margin-right: 2px;
}
-.tm-header-tabs {
- display: flex;
+.tm-header-tabs-wrap {
position: absolute;
left: 0;
right: 0;
top: 48px;
+}
+.tm-header-tabs {
+ display: flex;
padding: 0 17px;
+ overflow-x: auto;
+}
+.tm-header-tabs::-webkit-scrollbar {
+ display: none;
+}
+.tm-header-tabs {
+ --shadow-gradient: rgba(var(--header-bg-rgb), 0) 0%, rgba(var(--header-bg-rgb), 1) 70%;
+ -ms-overflow-style: none;
+ scrollbar-width: none;
+}
+.tm-header-tabs:before,
+.tm-header-tabs:after {
+ content: '';
+ display: block;
+ position: absolute;
+ pointer-events: none;
+ width: 24px;
+ left: 0;
+ top: 0;
+ bottom: 0;
+ background: linear-gradient(-90deg, var(--shadow-gradient));
+ transition: transform var(--def-transition);
+ transform: translateX(-10px);
+ z-index: 2;
+}
+.tm-header-tabs:after {
+ background: linear-gradient(90deg, var(--shadow-gradient));
+ transform: translateX(10px);
+ right: 0;
+ left: auto;
+}
+.tm-header-tabs.leftscroll:before,
+.tm-header-tabs.rightscroll:after {
+ transform: translateX(0);
}
.tm-header-tab,
.tm-section-tab,
@@ -771,7 +867,7 @@ a.tm-pagination-item.active:focus {
border-radius: 3px 3px 0 0;
}
.tm-header-tab + .tm-header-tab {
- margin-left: 26px;
+ margin-left: 17px;
}
.tm-label-new,
.tm-label-soon {
@@ -1424,7 +1520,7 @@ a.tm-menu-link:focus {
/*left: 4px;*/
padding: 12px;
cursor: pointer;
- transition: all var(--def-transition);
+ transition: visibility var(--def-transition), opacity var(--def-transition);
}
.tm-search-loading {
visibility: hidden;
@@ -1436,6 +1532,7 @@ a.tm-menu-link:focus {
/*left: auto;*/
/*right: 0;*/
}
+.tm-input:placeholder-shown ~ .tm-search-clear,
.tm-search-input:placeholder-shown ~ .tm-search-clear {
visibility: hidden;
opacity: 0;
@@ -3379,6 +3476,29 @@ a.tm-table-action-link:hover {
.tm-premium-boost-label.icon-boost:before {
margin-right: 4px;
}
+.tm-stars-price {
+ position: absolute;
+ top: 0;
+ right: 0;
+ display: inline-flex;
+ font-size: 15px;
+ line-height: 20px;
+ padding: 11px 7px;
+ margin-right: 42px;
+ font-weight: bold;
+ transition: visibility var(--def-transition), opacity var(--def-transition);
+ color: #fff;
+}
+.tm-stars-price .tm-radio-desc {
+ font-weight: normal;
+ text-align: right;
+ color: var(--dropdown-secondary-color);
+ margin-left: 20px;
+}
+.tm-input:focus ~ .tm-stars-price {
+ visibility: hidden;
+ opacity: 0;
+}
.processing-popup-container .popup-body {
width: 348px;
@@ -3591,13 +3711,23 @@ a.tm-table-action-link:hover {
.tm-header-actions {
display: flex;
}
- .tm-header-tabs {
+ .tm-header-tabs-wrap {
position: static;
+ }
+ .tm-header-tabs {
padding: 0;
+ overflow-x: visible;
+ }
+ .tm-header-tabs:before,
+ .tm-header-tabs:after {
+ visibility: hidden;
}
.tm-header-tab {
padding: 19px 0;
}
+ .tm-header-tab + .tm-header-tab {
+ margin-left: 26px;
+ }
.tm-header-menu-button {
padding: 19px;
}
@@ -3719,7 +3849,8 @@ a.tm-table-action-link:hover {
width: 10px;
height: 19px;
}
- .icon-telegram-premium {
+ .icon-telegram-premium,
+ .icon-telegram-stars {
width: 26px;
height: 36px;
margin-left: 7px;
@@ -3790,9 +3921,9 @@ a.tm-table-action-link:hover {
padding-left: 52px;
}
.tm-main-premium .tm-main-search-form .form-control-wrap.tm-coin-field:before {
- width: 16px;
+ width: 20px;
height: 20px;
- margin: 14px 18px 14px 19px;
+ margin: 14px 16px 14px 17px;
}
.tm-main-premium .tm-main-search-form .tm-search-input,
.tm-main-premium .tm-main-search-form .tm-search-prefix {
@@ -3801,6 +3932,11 @@ a.tm-table-action-link:hover {
.tm-main-form-group {
margin-bottom: 28px;
}
+ .tm-main-form-link-wrap {
+ font-size: 15px;
+ line-height: 19px;
+ margin-top: 30px;
+ }
.tm-main-form-label-badge {
font-size: 13px;
line-height: 17px;
@@ -4039,6 +4175,14 @@ a.tm-table-action-link:hover {
margin-bottom: 23px;
}
+ .tm-stars-price {
+ padding: 14px 7px;
+ margin-right: 48px;
+ }
+ .tm-form-radio-item input.radio ~ .tm-form-radio-label:before {
+ margin-right: 19px;
+ }
+
.tm-auction-section .tm-section-header-text {
font-size: 28px;
justify-content: start;
@@ -4116,6 +4260,10 @@ a.tm-table-action-link:hover {
.tm-form-radio-label .tm-value {
width: 90px;
}
+ .tm-stars-options .tm-form-radio-label .tm-value {
+ width: 110px;
+ text-align: left;
+ }
.tm-form-radio-label .tm-radio-desc {
width: 70px;
}
@@ -4203,7 +4351,7 @@ a.tm-table-action-link:hover {
--image-url-ton-text-icon: url('data:image/svg+xml,%3Csvg%20height%3D%2220%22%20viewBox%3D%220%200%2016%2020%22%20width%3D%2216%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22m2.68%205h10.63c.22%200%20.4.18.4.41%200%20.07-.01.14-.05.2l-5.04%209.08c-.22.4-.72.54-1.11.32-.14-.08-.25-.19-.32-.33l-4.87-9.08c-.1-.2-.03-.45.17-.55.06-.03.12-.05.19-.05zm5.32%209.78v-9.78z%22%20fill%3D%22none%22%20stroke%3D%22%238c9aa9%22%20stroke-width%3D%221.39%22%2F%3E%3C%2Fsvg%3E');
- --image-url-stars-icon: url('data:image/svg+xml,%3Csvg%20height%3D%2245%22%20viewBox%3D%220%200%2046%2045%22%20width%3D%2246%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%3E%3Cdefs%3E%3ClinearGradient%20id%3D%22a%22%20x1%3D%2225%25%22%20x2%3D%2274.92%25%22%20y1%3D%22.825%25%22%20y2%3D%22107.86%25%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%23ffd951%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23ffb222%22%2F%3E%3C%2FlinearGradient%3E%3ClinearGradient%20id%3D%22b%22%20x1%3D%2250%25%22%20x2%3D%2250%25%22%20y1%3D%220%25%22%20y2%3D%2299.795%25%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%23e58f0d%22%2F%3E%3Cstop%20offset%3D%22.99963%22%20stop-color%3D%22%23eb7915%22%2F%3E%3C%2FlinearGradient%3E%3Cpath%20id%3D%22c%22%20d%3D%22m15.45%2013.17%205.29-10.61c.61-1.22%202.09-1.71%203.3-1.09.47.24.86.63%201.09%201.11l5%2010.23c.41.83%201.21%201.4%202.12%201.51l10.47%201.27c1.42.17%202.43%201.47%202.26%202.91-.07.59-.34%201.14-.76%201.56l-8.27%208.2c-.33.33-.49.8-.44%201.27l1.38%2011.08c.2%201.59-.92%203.04-2.49%203.23-.59.08-1.19-.04-1.72-.32l-8.74-4.81c-.63-.35-1.39-.36-2.03-.03l-9.06%204.68c-1.27.66-2.83.14-3.48-1.14-.25-.49-.34-1.03-.26-1.57l.72-5.08c.36-2.49%201.89-4.64%204.1-5.78l10.06-5.17c.27-.14.37-.47.24-.74-.11-.21-.34-.33-.57-.29l-12.3%201.77c-1.88.27-3.78-.27-5.26-1.48l-4.09-3.36c-1.17-.96-1.35-2.7-.4-3.88.44-.55%201.08-.9%201.77-.99l10.5-1.36c.68-.09%201.26-.51%201.57-1.12z%22%2F%3E%3Cfilter%20id%3D%22d%22%20height%3D%22111.7%25%22%20width%3D%22111.4%25%22%20x%3D%22-5.7%25%22%20y%3D%22-5.9%25%22%3E%3CfeOffset%20dx%3D%222%22%20dy%3D%223%22%20in%3D%22SourceAlpha%22%20result%3D%22shadowOffsetInner1%22%2F%3E%3CfeComposite%20in%3D%22shadowOffsetInner1%22%20in2%3D%22SourceAlpha%22%20k2%3D%22-1%22%20k3%3D%221%22%20operator%3D%22arithmetic%22%20result%3D%22shadowInnerInner1%22%2F%3E%3CfeColorMatrix%20in%3D%22shadowInnerInner1%22%20type%3D%22matrix%22%20values%3D%220%200%200%200%201%20%20%200%200%200%200%201%20%20%200%200%200%200%201%20%200%200%200%200.65667938%200%22%2F%3E%3C%2Ffilter%3E%3C%2Fdefs%3E%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Cuse%20fill%3D%22url%28%23a%29%22%20fill-rule%3D%22evenodd%22%20xlink%3Ahref%3D%22%23c%22%2F%3E%3Cuse%20fill%3D%22%23000%22%20filter%3D%22url%28%23d%29%22%20xlink%3Ahref%3D%22%23c%22%2F%3E%3Cuse%20stroke%3D%22url%28%23b%29%22%20stroke-width%3D%222%22%20xlink%3Ahref%3D%22%23c%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E');
+ --image-url-stars-icon: url('data:image/svg+xml,%3Csvg%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20width%3D%2220%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%3E%3Cdefs%3E%3Cpath%20id%3D%22a%22%20d%3D%22m6.02%204.99%202.21-4.42c.25-.51.86-.72%201.37-.46.2.1.36.27.46.47l2.08%204.26c.17.34.5.58.88.63l4.36.52c.59.08%201.02.62.95%201.22-.03.24-.14.47-.32.65l-3.45%203.42c-.14.13-.2.33-.18.53l.57%204.61c.09.66-.38%201.27-1.03%201.35-.25.03-.5-.02-.72-.14l-3.64-2c-.26-.14-.58-.15-.85-.01l-3.77%201.95c-.53.27-1.18.06-1.45-.48-.11-.2-.14-.43-.11-.65l.3-2.12c.15-1.04.79-1.93%201.71-2.41l4.19-2.15c.11-.06.15-.2.1-.31-.05-.09-.14-.14-.24-.12l-5.12.74c-.78.11-1.58-.11-2.19-.62l-1.71-1.4c-.49-.4-.56-1.12-.17-1.62.19-.22.45-.37.74-.41l4.38-.57c.28-.03.52-.21.65-.46z%22%2F%3E%3ClinearGradient%20id%3D%22b%22%20x1%3D%2225%25%22%20x2%3D%2274.92%25%22%20y1%3D%22.825%25%22%20y2%3D%22107.86%25%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%23ffd951%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23ffb222%22%2F%3E%3C%2FlinearGradient%3E%3ClinearGradient%20id%3D%22c%22%20x1%3D%2250%25%22%20x2%3D%2250%25%22%20y1%3D%220%25%22%20y2%3D%2299.8%25%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%23e58f0d%22%2F%3E%3Cstop%20offset%3D%22.9996%22%20stop-color%3D%22%23eb7915%22%2F%3E%3C%2FlinearGradient%3E%3Cfilter%20id%3D%22d%22%20height%3D%22110.6%25%22%20width%3D%22110.3%25%22%20x%3D%22-5.2%25%22%20y%3D%22-5.3%25%22%3E%3CfeOffset%20dx%3D%221%22%20dy%3D%221%22%20in%3D%22SourceAlpha%22%20result%3D%22shadowOffsetInner1%22%2F%3E%3CfeComposite%20in%3D%22shadowOffsetInner1%22%20in2%3D%22SourceAlpha%22%20k2%3D%22-1%22%20k3%3D%221%22%20operator%3D%22arithmetic%22%20result%3D%22shadowInnerInner1%22%2F%3E%3CfeColorMatrix%20in%3D%22shadowInnerInner1%22%20type%3D%22matrix%22%20values%3D%220%200%200%200%201%200%200%200%200%201%200%200%200%200%201%200%200%200%200.657%200%22%2F%3E%3C%2Ffilter%3E%3C%2Fdefs%3E%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%20transform%3D%22translate%281.389%201.389%29%22%3E%3Cuse%20fill%3D%22url%28%23b%29%22%20fill-rule%3D%22evenodd%22%20xlink%3Ahref%3D%22%23a%22%2F%3E%3Cuse%20fill%3D%22%23000%22%20filter%3D%22url%28%23d%29%22%20xlink%3Ahref%3D%22%23a%22%2F%3E%3Cuse%20stroke%3D%22url%28%23c%29%22%20stroke-width%3D%22.89%22%20xlink%3Ahref%3D%22%23a%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E');
--image-url-support-bots-icon: url('data:image/svg+xml,%3Csvg%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%20width%3D%2216%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%20fill%3D%22%234db2ff%22%20fill-rule%3D%22evenodd%22%20transform%3D%22translate%28.67%202%29%22%3E%3Cpath%20d%3D%22m7.33%200c2.58%200%204.67%202.09%204.67%204.67v4.56c0%201.28-1.04%202.33-2.33%202.33h-4.68c-1.28%200-2.32-1.05-2.32-2.33v-4.56c0-2.58%202.09-4.67%204.66-4.67zm0%201.11c-1.96%200-3.55%201.59-3.55%203.56v.44c0%20.74.59%201.33%201.33%201.33h4.45c.73%200%201.33-.59%201.33-1.33v-.44c0-1.97-1.59-3.56-3.56-3.56z%22%2F%3E%3Crect%20height%3D%224.89%22%20rx%3D%22.89%22%20width%3D%221.78%22%20x%3D%2212.89%22%20y%3D%224.89%22%2F%3E%3Crect%20height%3D%224.89%22%20rx%3D%22.89%22%20width%3D%221.78%22%20y%3D%224.89%22%2F%3E%3Cellipse%20cx%3D%228.89%22%20cy%3D%224.22%22%20rx%3D%221%22%20ry%3D%221%22%2F%3E%3Cellipse%20cx%3D%225.78%22%20cy%3D%224.22%22%20rx%3D%221%22%20ry%3D%221%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E');
@@ -4232,4 +4380,6 @@ a.tm-table-action-link:hover {
--image-url-boost-icon: url('data:image/svg+xml,%3Csvg%20height%3D%2218%22%20viewBox%3D%220%200%2011%2018%22%20width%3D%2211%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22m5.84.14-5.74%206.53c-.15.17-.13.43.04.58.07.07.17.1.27.1h2.14c.23%200%20.41.19.41.41%200%20.03%200%20.05-.01.07l-.83%204.94c-.04.22.11.43.34.47.14.03.28-.03.38-.14l5.75-6.71c.15-.17.13-.43-.04-.58-.08-.06-.17-.1-.27-.1h-2.02c-.23%200-.41-.18-.41-.41%200-.02%200-.04%200-.06l.71-4.77c.03-.22-.13-.43-.35-.47-.14-.02-.28.04-.37.14z%22%20fill%3D%22%23fff%22%20fill-rule%3D%22evenodd%22%20transform%3D%22translate%281.1555%202.3794%29%22%2F%3E%3C%2Fsvg%3E');
--image-url-app-more-icon: url('data:image/svg+xml,%3Csvg%20height%3D%2226%22%20viewBox%3D%220%200%2026%2026%22%20width%3D%2226%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%20fill%3D%22%23fff%22%20fill-rule%3D%22evenodd%22%3E%3Ccircle%20cx%3D%2213%22%20cy%3D%2213%22%20opacity%3D%22.07%22%20r%3D%2213%22%2F%3E%3Cg%3E%3Ccircle%20cx%3D%227%22%20cy%3D%2213%22%20r%3D%221.67%22%2F%3E%3Ccircle%20cx%3D%2213%22%20cy%3D%2213%22%20r%3D%221.67%22%2F%3E%3Ccircle%20cx%3D%2219%22%20cy%3D%2213%22%20r%3D%221.67%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E');
+
+ --image-url-options-more-icon: url('data:image/svg+xml,%3Csvg%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20width%3D%2220%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22m4.5%208.2%205.1%205.1c.2.2.5.2.7%200l5.2-5.1%22%20fill%3D%22none%22%20stroke%3D%22%234db2ff%22%20stroke-linecap%3D%22round%22%20stroke-width%3D%221.8%22%2F%3E%3C%2Fsvg%3E');
}
diff --git a/data/web/fragment.com/js/auction.js b/data/web/fragment.com/js/auction.js
index ff18605a58..dd5664eda0 100644
--- a/data/web/fragment.com/js/auction.js
+++ b/data/web/fragment.com/js/auction.js
@@ -33,9 +33,12 @@ var Main = {
state.$mainSearchForm.field('query').on('input', Main.eMainSearchInput);
state.mainSearchCache = {};
$('.js-form-clear', state.$mainSearchForm).on('click', Main.eMainSearchClear);
+ $('.js-x-scrollable').on('scroll', Main.eXScrollableUpdate);
+ $(window).on('resize', Main.eXScrollablesUpdate);
Main.updateTime();
Main.initViewport();
Main.initLogo();
+ Main.eXScrollablesUpdate();
});
Aj.onUnload(function(state) {
clearTimeout(Aj.state.searchTimeout);
@@ -46,6 +49,8 @@ var Main = {
state.$mainSearchForm.off('submit', Main.eMainSearchSubmit);
state.$mainSearchForm.field('query').off('input', Main.eMainSearchInput);
$('.js-form-clear', state.$mainSearchForm).off('click', Main.eMainSearchClear);
+ $('.js-x-scrollable').off('scroll', Main.eXScrollableUpdate);
+ $(window).off('resize', Main.eXScrollablesUpdate);
});
},
initForm: function(form) {
@@ -237,6 +242,15 @@ var Main = {
e.preventDefault();
closePopup(Aj.state.$headerMenu);
},
+ eXScrollableUpdate: function() {
+ $(this).toggleClass('leftscroll', this.scrollLeft > 0);
+ $(this).toggleClass('rightscroll', this.scrollLeft < this.scrollWidth - this.clientWidth);
+ },
+ eXScrollablesUpdate: function() {
+ $('.js-x-scrollable').each(function() {
+ Main.eXScrollableUpdate.apply(this);
+ });
+ },
openSimplePopup: function($popup) {
var onEnterPress = function(e) {
if (e.keyCode == Keys.RETURN) {
@@ -1909,7 +1923,7 @@ var Premium = {
var $field = Aj.state.$premiumSearchField;
var $btn = Aj.state.$giftPremiumBtn;
$form.field('recipient').value('');
- $form.field('query').value('').prop('disabled', false);
+ $form.field('query').value('').prop('disabled', false).focus();
$form.removeClass('myself');
$btn.prop('disabled', true);
$field.removeClass('found');
@@ -2196,7 +2210,7 @@ var PremiumGiveaway = {
var $field = Aj.state.$premiumSearchField;
var $btn = Aj.state.$giveawayPremiumBtn;
$form.field('recipient').value('');
- $form.field('query').value('').prop('disabled', false);
+ $form.field('query').value('').prop('disabled', false).focus();
$btn.prop('disabled', true);
$field.removeClass('found');
$('.js-search-field-error').html('');
@@ -2647,6 +2661,351 @@ var Ads = {
};
var Stars = {
+ init: function() {
+ Aj.onLoad(function(state) {
+ var cont = Aj.ajContainer;
+ $(cont).on('click.curPage', '.js-myself-link', Stars.eBuyForMyself);
+ $(cont).on('click.curPage', '.js-more-stars-btn', Stars.eBuyMoreStats);
+ $(cont).on('click.curPage', '.js-stars-buy-btn', Stars.eBuyStars);
+ $(cont).on('click.curPage', '.js-more-options', Stars.eShowMoreOptions);
+ state.$starsBuyPopup = $('.js-buy-stars-popup');
+ $(cont).on('submit.curPage', '.js-buy-stars-form', Stars.eBuyStarsSubmit);
+ state.$starsBuyForm = $('.js-buy-stars-form');
+ state.$starsSearchField = $('.js-stars-search-field');
+ state.$starsSearchForm = $('.js-stars-form');
+ state.$starsSearchForm.on('submit', Stars.eSearchSubmit);
+ state.$starsSearchForm.field('query').on('input', Stars.eSearchInput);
+ state.$starsSearchForm.field('query').on('change', Stars.eSearchChange);
+ $('.js-form-clear', state.$starsSearchForm).on('click', Stars.eSearchClear);
+ state.$starsQuantityField = $('.js-stars-quantity-field');
+ $(cont).on('click.curPage', '.js-quantity-clear', Stars.eQuantityClear);
+ state.$starsSearchForm.field('quantity').on('change', Stars.eQuantityChanged);
+ state.$starsSearchForm.on('change', '.js-stars-options input.radio', Stars.eRadioChanged);
+ state.$starsBuyForm.on('change', 'input.checkbox', Stars.eCheckboxChanged);
+ state.$starsBuyBtn = $('.js-stars-buy-btn');
+ state.curQuantity = state.$starsSearchForm.field('quantity').value();
+ state.curStars = state.$starsSearchForm.field('stars').value();
+ state.updLastReq = +Date.now();
+ if (state.needUpdate) {
+ state.updStateTo = setTimeout(Stars.updateState, Main.UPDATE_PERIOD);
+ }
+ $(cont).on('click.curPage', '.js-preview-sticker', function() {
+ RLottie.playUntilEnd(this);
+ });
+ $('.js-preview-sticker').each(function() {
+ RLottie.init(this, {playUntilEnd: true});
+ });
+ RLottie.init();
+ });
+ Aj.onUnload(function(state) {
+ clearTimeout(state.updStateTo);
+ state.needUpdate = false;
+ Main.destroyForm(state.$starsSearchForm);
+ state.$starsSearchForm.off('submit', Stars.eSearchSubmit);
+ state.$starsSearchForm.field('query').off('input', Stars.eSearchInput);
+ state.$starsSearchForm.field('query').off('change', Stars.eSearchChange);
+ $('.js-form-clear', state.$starsSearchForm).off('click', Stars.eSearchClear);
+ state.$starsSearchForm.field('quantity').off('change', Stars.eQuantityChanged);
+ state.$starsSearchForm.off('change', '.js-stars-options input.radio', Stars.eRadioChanged);
+ state.$starsBuyForm.off('change', 'input.checkbox', Stars.eCheckboxChanged);
+ $('.js-preview-sticker').each(function() {
+ RLottie.destroy(this);
+ });
+ });
+ },
+ updateState: function(force) {
+ var now = +Date.now();
+ if (document.hasFocus() || force ||
+ Aj.state.updLastReq && (now - Aj.state.updLastReq) > Main.FORCE_UPDATE_PERIOD) {
+ Aj.state.updLastReq = now;
+ Aj.apiRequest('updateStarsBuyState', {
+ mode: Aj.state.mode,
+ lv: Aj.state.lastVer,
+ dh: Aj.state.lastDh
+ }, function(result) {
+ if (result.mode) {
+ Aj.state.mode = result.mode;
+ }
+ if (result.html) {
+ Stars.updateContent(result.html);
+ } else {
+ if (result.history_html) {
+ Stars.updateHistory(result.history_html);
+ }
+ if (result.options_html) {
+ Stars.updateOptions(result.options_html);
+ }
+ }
+ if (result.lv) {
+ Aj.state.lastVer = result.lv;
+ if (Aj.state.$sentPopup) {
+ closePopup(Aj.state.$sentPopup);
+ }
+ }
+ if (result.dh) {
+ Aj.state.lastDh = result.dh;
+ }
+ if (Aj.state.needUpdate && result.need_update) {
+ Aj.state.updStateTo = setTimeout(Stars.updateState, Main.UPDATE_PERIOD);
+ }
+ });
+ } else {
+ if (Aj.state.needUpdate) {
+ Aj.state.updStateTo = setTimeout(Stars.updateState, Main.CHECK_PERIOD);
+ }
+ }
+ },
+ eSearchInput: function(e) {
+ var $field = Aj.state.$starsSearchForm;
+ $('.js-search-field-error').html('');
+ $field.removeClass('error');
+ },
+ eSearchChange: function(e) {
+ Stars.searchSubmit();
+ },
+ eSearchClear: function(e) {
+ var $form = Aj.state.$starsSearchForm;
+ var $field = Aj.state.$starsSearchField;
+ var $btn = Aj.state.$starsBuyBtn;
+ $form.field('recipient').value('');
+ $form.field('query').value('').prop('disabled', false).focus();
+ $form.removeClass('myself');
+ $btn.prop('disabled', true);
+ $field.removeClass('found');
+ $('.js-search-field-error').html('');
+ $field.removeClass('error');
+ Stars.updateUrl();
+ },
+ eQuantityClear: function() {
+ Stars.clearQuantity(true);
+ },
+ clearQuantity: function(need_focus) {
+ var $form = Aj.state.$starsSearchForm;
+ var $field = $form.field('quantity');
+ $field.value('');
+ if (need_focus) {
+ $field.focus();
+ }
+ Aj.state.curQuantity = 0;
+ $('.js-quantity-field-error').html('');
+ $('.js-cur-price').html('');
+ Stars.updateButton();
+ Stars.updateUrl();
+ },
+ eQuantityChanged: function() {
+ var $form = Aj.state.$starsSearchForm;
+ var stars = +$form.field('stars').value();
+ var quantity = +$form.field('quantity').value();
+ $('.js-cur-price').html('');
+ Aj.state.$starsQuantityField.addClass('loading').removeClass('play').redraw().addClass('play');
+ Aj.apiRequest('updateStarsPrices', {
+ stars: stars,
+ quantity: quantity
+ }, function(result) {
+ if (result.error) {
+ $('.js-quantity-field-error').html(result.error);
+ quantity = 0;
+ } else {
+ $('.js-quantity-field-error').html('');
+ }
+ $('.js-cur-price').html(result.cur_price);
+ if (result.options_html) {
+ Stars.updateOptions(result.options_html);
+ }
+ if (result.dh) {
+ Aj.state.lastDh = result.dh;
+ }
+ Aj.state.curQuantity = quantity;
+ Aj.state.$starsQuantityField.removeClass('loading');
+ Aj.state.curStars = 0;
+ $('.js-stars-options input.radio:checked').prop('checked', false);
+ Stars.updateButton();
+ Stars.updateUrl();
+ });
+ },
+ eBuyForMyself: function(e) {
+ e.preventDefault();
+ Stars.updateResult(Aj.state.myselfResult);
+ },
+ eShowMoreOptions: function(e) {
+ e.preventDefault();
+ Stars.toggleOptions(true);
+ },
+ toggleOptions: function(expand) {
+ Aj.state.$starsSearchForm.toggleClass('options-expanded', expand).toggleClass('options-collapsed', !expand);
+ },
+ eRadioChanged: function() {
+ Stars.clearQuantity();
+ Aj.state.curStars = this.value;
+ Stars.updateButton();
+ Stars.updateUrl();
+ },
+ eCheckboxChanged: function() {
+ var $form = Aj.state.$starsBuyForm;
+ var show_sender = $form.field('show_sender').prop('checked');
+ Aj.state.$starsBuyPopup.toggleClass('show-sender', show_sender);
+ },
+ updateButton: function() {
+ var $form = Aj.state.$starsSearchForm;
+ var quantity = Aj.state.curQuantity || Aj.state.curStars;
+ var btn_label = l('WEB_BUY_N_TELEGRAM_STARS_BUTTON', {n: quantity || 0, __format_number: true});
+ $('.js-stars-btn-label').html(btn_label);
+ Aj.state.$starsBuyBtn.prop('disabled', !quantity || !$form.field('recipient').value());
+ },
+ eSearchSubmit: function(e) {
+ e.preventDefault();
+ Stars.searchSubmit();
+ },
+ searchSubmit: function() {
+ var $form = Aj.state.$starsSearchForm;
+ var recipient = $form.field('recipient').value();
+ var quantity = $form.field('quantity').value();
+ var query = $form.field('query').value();
+ if (!query.length) {
+ $form.field('query').focus();
+ return;
+ }
+ Aj.state.$starsSearchField.addClass('loading').removeClass('play').redraw().addClass('play');
+ Aj.showProgress();
+ Aj.apiRequest('searchStarsRecipient', {
+ query: recipient || query,
+ quantity: quantity
+ }, function(result) {
+ Aj.hideProgress();
+ Stars.updateResult(result);
+ Aj.state.$starsSearchField.removeClass('loading');
+ });
+ },
+ updateResult: function(result) {
+ var $form = Aj.state.$starsSearchForm;
+ var $field = Aj.state.$starsSearchField;
+ var $btn = Aj.state.$starsBuyBtn;
+ if (result.error) {
+ $('.js-search-field-error').html(result.error);
+ $field.addClass('error').removeClass('found');
+ $form.field('query').prop('disabled', false);
+ } else {
+ $('.js-search-field-error').html('');
+ $field.removeClass('error');
+ if (result.found) {
+ if (result.found.photo) {
+ $('.js-stars-search-photo', $field).html(result.found.photo);
+ }
+ if (result.found.name) {
+ var $form = Aj.state.$starsSearchForm;
+ $form.field('query').value(uncleanHTML(result.found.name));
+ }
+ $form.toggleClass('myself', result.found.myself);
+ $form.field('recipient').value(result.found.recipient);
+ $field.addClass('found');
+ $form.field('query').prop('disabled', true);
+ } else {
+ $form.removeClass('myself');
+ $form.field('recipient').value('');
+ $field.removeClass('found');
+ $form.field('query').prop('disabled', false);
+ }
+ Stars.updateButton();
+ }
+ Stars.updateUrl();
+ },
+ updateUrl: function() {
+ var new_url = '';
+ var $form = Aj.state.$starsSearchForm;
+ var recipient = $form.field('recipient').value();
+ var stars = $form.field('stars').value();
+ var quantity = Aj.state.curQuantity || stars;
+ if (recipient) {
+ new_url += '&recipient=' + encodeURIComponent(recipient);
+ }
+ if (quantity) {
+ new_url += '&quantity=' + encodeURIComponent(quantity);
+ }
+ if (new_url) {
+ new_url = '?' + new_url.substr(1);
+ }
+ var loc = Aj.location(), path = loc.pathname + loc.search;
+ Aj.setLocation(new_url, path != '/stars');
+ },
+ updateOptions: function(html) {
+ var $form = Aj.state.$starsSearchForm;
+ var stars = $form.field('stars').value();
+ $('.js-premium-options').replaceWith(html);
+ $form.field('stars').value(stars);
+ },
+ eBuyStars: function(e) {
+ e.stopImmediatePropagation();
+ e.preventDefault();
+ var $form = Aj.state.$starsSearchForm;
+ var recipient = $form.field('recipient').value();
+ var quantity = $form.field('quantity').value();
+ var stars = $form.field('stars').value();
+ Aj.apiRequest('initBuyStarsRequest', {
+ recipient: recipient,
+ quantity: quantity || stars
+ }, function(result) {
+ if (result.error) {
+ return showAlert(result.error);
+ }
+ $('.js-buy-stars-content', Aj.state.$starsBuyPopup).html(result.content);
+ $('.js-buy-stars-button', Aj.state.$starsBuyPopup).html(result.button);
+ Aj.state.$starsBuyPopup.toggleClass('iam-sender', result.myself);
+ Aj.state.starsPrice = result.amount;
+ Aj.state.itemTitle = result.item_title;
+ Aj.state.$starsBuyForm.field('id').value(result.req_id);
+ RLottie.WORKERS_LIMIT = 1;
+ openPopup(Aj.state.$starsBuyPopup, {
+ onOpen: function() {
+ $('.js-preview-sticker').each(function() {
+ RLottie.init(this, {playUntilEnd: true});
+ });
+ },
+ onClose: function() {
+ $('.js-preview-sticker').each(function() {
+ RLottie.destroy(this);
+ });
+ }
+ });
+ });
+ },
+ eBuyStarsSubmit: function(e) {
+ e.preventDefault();
+ var $form = $(this);
+ var item_title = Aj.state.itemTitle;
+ var req_id = $form.field('id').value();
+ var show_sender = $form.field('show_sender').prop('checked');
+ closePopup(Aj.state.$starsBuyPopup);
+ Wallet.sendTransaction({
+ request: {
+ method: 'getBuyStarsLink',
+ params: {
+ id: req_id,
+ show_sender: show_sender ? 1 : 0
+ }
+ },
+ title: l('WEB_POPUP_QR_STARS_HEADER'),
+ description: l('WEB_POPUP_QR_STARS_TEXT', {
+ amount: '' + Aj.state.starsPrice + ''
+ }),
+ qr_label: item_title,
+ tk_label: l('WEB_POPUP_QR_STARS_TK_BUTTON'),
+ terms_label: l('WEB_POPUP_QR_PROCEED_TERMS'),
+ onConfirm: function(by_server) {
+ Stars.updateState(true);
+ }
+ });
+ Aj.state.needUpdate = true;
+ },
+ eBuyMoreStats: function(e) {
+ e.preventDefault();
+ e.stopImmediatePropagation();
+ Aj.apiRequest('repeatStars', {}, function(result) {
+ if (result.error) {
+ return showAlert(result.error);
+ }
+ Aj.location('/stars');
+ });
+ },
initWithdraw: function() {
Aj.onLoad(function(state) {
var cont = Aj.ajContainer;