mirror of
https://github.com/ianramzy/decentralized-video-chat.git
synced 2024-11-16 23:29:20 +08:00
341 lines
11 KiB
JavaScript
Executable File
341 lines
11 KiB
JavaScript
Executable File
!(function () {
|
|
"use strict";
|
|
const e = document.getElementsByClassName("accordion-header");
|
|
|
|
function t(e, t) {
|
|
e.classList.add("is-active"), (t.style.maxHeight = t.scrollHeight + "px");
|
|
}
|
|
|
|
function n(e, t) {
|
|
e.classList.remove("is-active"), (t.style.maxHeight = null);
|
|
}
|
|
|
|
if (e.length > 0)
|
|
for (let i = 0; i < e.length; i++) {
|
|
const s = e[i],
|
|
a = s.parentNode,
|
|
l = s.nextElementSibling;
|
|
a.classList.contains("is-active") && t(a, l),
|
|
s.addEventListener("click", function () {
|
|
a.classList.contains("is-active") ? n(a, l) : t(a, l);
|
|
});
|
|
}
|
|
})(),
|
|
(function () {
|
|
"use strict";
|
|
let e = {
|
|
touchStartX: 0,
|
|
touchEndX: 0,
|
|
minSwipePixels: 30,
|
|
detectionZone: void 0,
|
|
swipeCallback: function () {},
|
|
init: function (t, n) {
|
|
(e.swipeCallback = n),
|
|
t.addEventListener(
|
|
"touchstart",
|
|
function (t) {
|
|
e.touchStartX = t.changedTouches[0].screenX;
|
|
},
|
|
!1
|
|
),
|
|
t.addEventListener(
|
|
"touchend",
|
|
function (t) {
|
|
(e.touchEndX = t.changedTouches[0].screenX),
|
|
e.handleSwipeGesture();
|
|
},
|
|
!1
|
|
);
|
|
},
|
|
handleSwipeGesture: function () {
|
|
let t, n;
|
|
e.touchEndX <= e.touchStartX &&
|
|
((n = e.touchStartX - e.touchEndX), (t = "left")),
|
|
e.touchEndX >= e.touchStartX &&
|
|
((n = e.touchEndX - e.touchStartX), (t = "right")),
|
|
n > e.minSwipePixels && "undefined" !== t && e.swipe(t, n);
|
|
},
|
|
swipe: function (t, n) {
|
|
let i = {};
|
|
(i.direction = t), (i.movedPixels = n), e.swipeCallback(i);
|
|
},
|
|
};
|
|
const t = document.getElementsByClassName("carousel-items");
|
|
|
|
function n(e, t) {
|
|
void 0 === t && (t = "next");
|
|
let n = e.getElementsByClassName("carousel-item is-active")[0],
|
|
i = "next" === t ? n.nextElementSibling : n.previousElementSibling,
|
|
s = n.getAttribute("data-carousel"),
|
|
a = e.parentNode.getElementsByClassName("carousel-bullet")[s],
|
|
l = "next" === t ? a.nextElementSibling : a.previousElementSibling;
|
|
n.classList.remove("is-active"),
|
|
a.classList.remove("is-active"),
|
|
i
|
|
? (i.classList.add("is-active"), l.classList.add("is-active"))
|
|
: "next" === t
|
|
? (e.firstElementChild.classList.add("is-active"),
|
|
e.parentNode
|
|
.getElementsByClassName("carousel-bullets")[0]
|
|
.firstElementChild.classList.add("is-active"))
|
|
: (e.lastElementChild.classList.add("is-active"),
|
|
e.parentNode
|
|
.getElementsByClassName("carousel-bullets")[0]
|
|
.lastElementChild.classList.add("is-active"));
|
|
}
|
|
|
|
function i(e, t) {
|
|
let n,
|
|
i = 0;
|
|
for (let e = 0; e < t.length; e++)
|
|
(t[0].parentNode.style.minHeight = i + "px"),
|
|
t[e].classList.add("is-loading"),
|
|
(n = t[e].offsetHeight),
|
|
t[e].classList.remove("is-loading"),
|
|
n > i && (i = n);
|
|
t[0].parentNode.style.minHeight = i + "px";
|
|
}
|
|
|
|
function s(e) {
|
|
e && clearInterval(e);
|
|
}
|
|
|
|
if (t.length > 0)
|
|
for (let a = 0; a < t.length; a++) {
|
|
let l = t[a],
|
|
c = l.getElementsByClassName("carousel-item"),
|
|
o = 0,
|
|
r = l.getAttribute("data-autorotate");
|
|
const d = document.createElement("div");
|
|
(d.className = "carousel-bullets"),
|
|
l.parentNode.insertBefore(d, l.nextSibling);
|
|
for (let e = 0; e < c.length; e++) {
|
|
c[e].setAttribute("data-carousel", e),
|
|
c[e].classList.contains("is-active") && (o = e);
|
|
let t = document.createElement("button");
|
|
(t.className = "carousel-bullet"),
|
|
t.setAttribute("data-bullet", e),
|
|
l.parentNode
|
|
.getElementsByClassName("carousel-bullets")[0]
|
|
.appendChild(t);
|
|
}
|
|
c[o].classList.add("is-active");
|
|
let u = l.parentNode.getElementsByClassName("carousel-bullet");
|
|
u[o].classList.add("is-active"),
|
|
i(0, c),
|
|
window.addEventListener("resize", function () {
|
|
i(0, c);
|
|
});
|
|
let m = !1;
|
|
r &&
|
|
(m = setInterval(function () {
|
|
n(l, "next");
|
|
}, r));
|
|
for (let e = 0; e < u.length; e++) {
|
|
let t = u[e];
|
|
t.addEventListener("click", function (e) {
|
|
if ((e.preventDefault(), t.classList.contains("is-active"))) return;
|
|
for (let e = 0; e < u.length; e++)
|
|
u[e].classList.remove("is-active");
|
|
for (let e = 0; e < c.length; e++)
|
|
c[e].classList.remove("is-active");
|
|
let n = this.getAttribute("data-bullet");
|
|
c[n].classList.add("is-active"),
|
|
this.classList.add("is-active"),
|
|
s(m);
|
|
});
|
|
}
|
|
e.init(l, function (e) {
|
|
"left" === e.direction
|
|
? n(l, "next")
|
|
: "right" === e.direction && n(l, "prev"),
|
|
s(m);
|
|
});
|
|
}
|
|
})(),
|
|
(function () {
|
|
"use strict";
|
|
document.documentElement.classList.remove("no-js"),
|
|
document.documentElement.classList.add("js"),
|
|
window.addEventListener("load", function () {
|
|
document.body.classList.add("is-loaded");
|
|
});
|
|
})(),
|
|
(function () {
|
|
"use strict";
|
|
const e = document.getElementById("header-nav-toggle"),
|
|
t = document.getElementById("header-nav");
|
|
e &&
|
|
(e.addEventListener("click", function () {
|
|
document.body.classList.toggle("off-nav-is-active"),
|
|
t.classList.toggle("is-active"),
|
|
t.style.maxHeight
|
|
? (t.style.maxHeight = null)
|
|
: (t.style.maxHeight = t.scrollHeight + "px"),
|
|
"true" === this.getAttribute("aria-expanded")
|
|
? this.setAttribute("aria-expanded", "false")
|
|
: this.setAttribute("aria-expanded", "true");
|
|
}),
|
|
document.addEventListener("click", function (n) {
|
|
n.target === t ||
|
|
n.target === e ||
|
|
t.contains(n.target) ||
|
|
(document.body.classList.remove("off-nav-is-active"),
|
|
t.classList.remove("is-active"),
|
|
(t.style.maxHeight = null),
|
|
e.setAttribute("aria-expanded", "false"));
|
|
}));
|
|
})(),
|
|
(function () {
|
|
"use strict";
|
|
const e = document.getElementsByClassName("modal"),
|
|
t = document.getElementsByClassName("modal-trigger");
|
|
|
|
function n() {
|
|
document.body.classList.remove("modal-is-active");
|
|
for (let t = 0; t < e.length; t++) e[t].classList.remove("is-active");
|
|
}
|
|
|
|
if (e.length > 0 && t.length > 0)
|
|
for (let e = 0; e < t.length; e++) {
|
|
let n = t[e],
|
|
i = document.getElementById(n.getAttribute("aria-controls"));
|
|
i &&
|
|
(n.hasAttribute("data-video") &&
|
|
(null !== i.querySelector("iframe")
|
|
? i
|
|
.querySelector("iframe")
|
|
.setAttribute("src", n.getAttribute("data-video"))
|
|
: null !== i.querySelector("video") &&
|
|
i
|
|
.querySelector("video")
|
|
.setAttribute("src", n.getAttribute("data-video"))),
|
|
n.addEventListener("click", function (e) {
|
|
var t;
|
|
e.preventDefault(),
|
|
n.hasAttribute("aria-controls") &&
|
|
(t = i) &&
|
|
(document.body.classList.add("modal-is-active"),
|
|
t.classList.add("is-active"));
|
|
}));
|
|
}
|
|
document.addEventListener("click", function (e) {
|
|
(e.target.classList.contains("modal") ||
|
|
e.target.classList.contains("modal-close-trigger")) &&
|
|
(e.preventDefault(), n());
|
|
}),
|
|
document.addEventListener("keydown", function (e) {
|
|
27 === (e || window.event).keyCode && n();
|
|
});
|
|
})(),
|
|
(function () {
|
|
"use strict";
|
|
const e = document.getElementById("pricing-toggle");
|
|
|
|
function t() {
|
|
const t = document.getElementsByClassName("pricing-switchable");
|
|
if (e.checked)
|
|
for (let e = 0; e < t.length; e++)
|
|
t[e].innerHTML = t[e].getAttribute("data-pricing-yearly");
|
|
else
|
|
for (let e = 0; e < t.length; e++)
|
|
t[e].innerHTML = t[e].getAttribute("data-pricing-monthly");
|
|
}
|
|
|
|
e && (window.addEventListener("load", t), e.addEventListener("change", t));
|
|
})(),
|
|
(function () {
|
|
"use strict";
|
|
const e = document.querySelectorAll("[class*=reveal-]");
|
|
let t = window.innerHeight;
|
|
|
|
function n(e, t) {
|
|
var n = 0;
|
|
return function () {
|
|
var i = new Date().getTime();
|
|
if (!(i - n < e)) return (n = i), t.apply(void 0, arguments);
|
|
};
|
|
}
|
|
|
|
function i() {
|
|
for (let i = 0; i < e.length; i++) {
|
|
let s = e[i],
|
|
a = s.getAttribute("data-reveal-delay"),
|
|
l = s.getAttribute("data-reveal-offset")
|
|
? s.getAttribute("data-reveal-offset")
|
|
: "200",
|
|
c = s.getAttribute("data-reveal-container")
|
|
? s.closest(s.getAttribute("data-reveal-container"))
|
|
: s;
|
|
(n = l),
|
|
c.getBoundingClientRect().top <= t - n &&
|
|
!s.classList.contains("is-revealed") &&
|
|
(a && 0 !== a
|
|
? setTimeout(function () {
|
|
s.classList.add("is-revealed");
|
|
}, a)
|
|
: s.classList.add("is-revealed"));
|
|
}
|
|
var n;
|
|
!(function () {
|
|
if (
|
|
e.length >
|
|
document.querySelectorAll("[class*=reveal-].is-revealed").length
|
|
)
|
|
return;
|
|
window.removeEventListener("load", i),
|
|
window.removeEventListener("scroll", s),
|
|
window.removeEventListener("resize", a);
|
|
})();
|
|
}
|
|
|
|
function s() {
|
|
n(30, i());
|
|
}
|
|
|
|
function a() {
|
|
(t = window.innerHeight), n(30, i());
|
|
}
|
|
|
|
e.length > 0 &&
|
|
document.body.classList.contains("has-animations") &&
|
|
(window.addEventListener("load", i),
|
|
window.addEventListener("scroll", s),
|
|
window.addEventListener("resize", a));
|
|
})(),
|
|
(function () {
|
|
"use strict";
|
|
const e = document.getElementsByClassName("smooth-scroll"),
|
|
t = (e, n, i, s, a) => {
|
|
const l = n - e;
|
|
let c = l / i;
|
|
const o = (function (e) {
|
|
return e < 0.5 ? 2 * e * e : (4 - 2 * e) * e - 1;
|
|
})((c = Math.min(c, 1)));
|
|
window.scroll(0, a + s * o),
|
|
l < i &&
|
|
window.requestAnimationFrame((n) => {
|
|
const l = n || new Date().getTime();
|
|
t(e, l, i, s, a);
|
|
});
|
|
};
|
|
if (e.length > 0)
|
|
for (let n = 0; n < e.length; n++) {
|
|
e[n].addEventListener("click", function (e) {
|
|
e.preventDefault();
|
|
const n = e.target.closest(".smooth-scroll"),
|
|
i = n.href.split("#")[1],
|
|
s = document.getElementById(i),
|
|
a = n.getAttribute("data-duration") || 1e3;
|
|
s &&
|
|
window.requestAnimationFrame((e) => {
|
|
const n = e || new Date().getTime(),
|
|
i = n,
|
|
l = window.pageYOffset,
|
|
c = s.getBoundingClientRect().top;
|
|
t(i, n, a, c, l);
|
|
});
|
|
});
|
|
}
|
|
})();
|