PageSourceSearch

https://eliteacademy.kg/elite/animations.js?v=20260709a

js eliteacademy.kg collected 2026-10-07 18:13:56 UTC 6,230 bytes, 87 lines download raw bytes

1(() => {
2  const SHAPES = {
3    circle: /* @__PURE__ */ React.createElement("svg", { viewBox: "0 0 100 100", "aria-hidden": "true" }, /* @__PURE__ */ React.createElement("circle", { cx: "50", cy: "50", r: "44" })),
4    triangle: /* @__PURE__ */ React.createElement("svg", { viewBox: "0 0 100 100", "aria-hidden": "true" }, /* @__PURE__ */ React.createElement("polygon", { points: "50,8 92,84 8,84" })),
5    square: /* @__PURE__ */ React.createElement("svg", { viewBox: "0 0 100 100", "aria-hidden": "true" }, /* @__PURE__ */ React.createElement("path", { d: "M 12 12 L 88 12 L 88 88 L 12 88 Z" })),
6    hex: /* @__PURE__ */ React.createElement("svg", { viewBox: "0 0 100 100", "aria-hidden": "true" }, /* @__PURE__ */ React.createElement("polygon", { points: "50,6 90,28 90,72 50,94 10,72 10,28" })),
7    ring: /* @__PURE__ */ React.createElement("svg", { viewBox: "0 0 100 100", "aria-hidden": "true" }, /* @__PURE__ */ React.createElement("circle", { cx: "50", cy: "50", r: "44" }), /* @__PURE__ */ React.createElement("circle", { cx: "50", cy: "50", r: "28" })),
8    cross: /* @__PURE__ */ React.createElement("svg", { viewBox: "0 0 100 100", "aria-hidden": "true" }, /* @__PURE__ */ React.createElement("path", { d: "M 50 10 L 50 90 M 10 50 L 90 50", strokeLinecap: "round" })),
9    wave: /* @__PURE__ */ React.createElement("svg", { viewBox: "0 0 100 100", "aria-hidden": "true" }, /* @__PURE__ */ React.createElement("path", { d: "M 5 50 Q 25 20, 50 50 T 95 50" })),
10    diamond: /* @__PURE__ */ React.createElement("svg", { viewBox: "0 0 100 100", "aria-hidden": "true" }, /* @__PURE__ */ React.createElement("polygon", { points: "50,8 92,50 50,92 8,50" }))
11  };
12  const VARIANTS = {
13    default: ["ring", "triangle", "hex", "square", "circle"],
14    geometric: ["hex", "diamond", "triangle", "cross", "ring"],
15    organic: ["wave", "circle", "ring", "wave", "circle"],
16    minimal: ["circle", "ring", "cross"]
17  };
18  function AliveBackground({ variant = "default" }) {
19    const shapes = VARIANTS[variant] || VARIANTS.default;
20    return /* @__PURE__ */ React.createElement("div", { className: "alive", "aria-hidden": "true" }, shapes.map((name, i) => /* @__PURE__ */ React.createElement("div", { className: `alive__shape alive__shape--${i + 1}`, key: i }, SHAPES[name])));
21  }
22  function SectionWave({ flip = false, color = "var(--white)" }) {
23    return /* @__PURE__ */ React.createElement("div", { className: "section-wave " + (flip ? "section-wave--top" : ""), "aria-hidden": "true" }, /* @__PURE__ */ React.createElement("svg", { viewBox: "0 0 1440 80", preserveAspectRatio: "none" }, /* @__PURE__ */ React.createElement(
24      "path",
25      {
26        d: "M 0 40 C 240 10, 480 70, 720 40 S 1200 10, 1440 40 L 1440 80 L 0 80 Z M 1440 40 C 1680 10, 1920 70, 2160 40 S 2640 10, 2880 40 L 2880 80 L 1440 80 Z",
27        fill: color,
28        opacity: "0.6"
29      }
30    )));
31  }
32  function ScrollRail({ children, trackClass = "", loop = false, step = 320, copies = 3 }) {
33    const ref = React.useRef(null);
34    const base = React.Children.toArray(children);
35    const perCopy = base.length;
36    const items = loop ? Array.from({ length: copies }).flatMap((_, k) => base.map((ch, j) => React.cloneElement(ch, { key: k + "-" + j }))) : base;
37    React.useEffect(() => {
38      if (!loop) return;
39      const el = ref.current;
40      if (!el) return;
41      const period = () => {
42        const kids = el.children;
43        return kids.length > perCopy ? kids[perCopy].offsetLeft - kids[0].offsetLeft : 0;
44      };
45      const recenter = () => {
46        const p = period();
47        if (!p) return;
48        if (el.scrollLeft < p) el.scrollLeft += p;
49        else if (el.scrollLeft >= 2 * p) el.scrollLeft -= p;
50      };
51      const startId = requestAnimationFrame(() => {
52        const p = period();
53        if (p) el.scrollLeft = p;
54      });
55      let settle = 0;
56      const onScroll = () => {
57        clearTimeout(settle);
58        settle = setTimeout(recenter, 130);
59      };
60      el.addEventListener("scroll", onScroll, { passive: true });
61      window.addEventListener("resize", recenter);
62      el._railPeriod = period;
63      return () => {
64        cancelAnimationFrame(startId);
65        clearTimeout(settle);
66        el.removeEventListener("scroll", onScroll);
67        window.removeEventListener("resize", recenter);
68      };
69    }, [loop, perCopy, copies]);
70    function scroll(dir) {
71      const el = ref.current;
72      if (!el) return;
73      if (loop && el._railPeriod) {
74        const p = el._railPeriod();
75        if (p) {
76          if (dir > 0 && el.scrollLeft + step >= 2 * p) el.scrollLeft -= p;
77          else if (dir < 0 && el.scrollLeft - step < p) el.scrollLeft += p;
78        }
79      }
80      el.scrollBy({ left: dir * step, behavior: "smooth" });
81    }
82    return /* @__PURE__ */ React.createElement("div", { className: "srail" }
82, /* @__PURE__ */ React.createElement("button", { type: "button", className: "srail__arrow srail__arrow--prev", onClick: () => scroll(-1), "aria-label": window.__EA_LANG === "en" ? "Back" : window.__EA_LANG === "kg" ? "\u0410\u0440\u0442\u043A\u0430" : "\u041D\u0430\u0437\u0430\u0434" }, /* @__PURE__ */ React.createElement("svg", { width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.4", strokeLinecap: "round", strokeLinejoin: "round" }, /* @__PURE__ */ React.createElement("polyline", { points: "15 18 9 12 15 6" }))), /* @__PURE__ */ React.createElement("div", { className: "srail__track " + trackClass, ref }, items), /* @__PURE__ */ React.createElement("button", { type: "button", className: "srail__arrow srail__arrow--next", onClick: () => scroll(1), "aria-label": window.__EA_LANG === "en" ? "Next" : window.__EA_LANG === "kg" ? "\u0410\u043B\u0434\u044B\u0433\u0430" : "\u0412\u043F\u0435\u0440\u0451\u0434" }, /* @__PURE__ */ React.createElement("svg", { width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.4", strokeLinecap: "round", strokeLinejoin: "round" }, /* @__PURE__ */ React.createElement("polyline", { points: "9 18 15 12 9 6" }))));
83  }
84  window.AliveBackground = AliveBackground;
85  window.SectionWave = SectionWave;
86  window.ScrollRail = ScrollRail;
87})();

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.