PageSourceSearch

https://www.tijorifinance.com/static/javascript/discovery_dashboard/landing_page/script.js

js tijorifinance.com collected 2026-10-03 23:28:04 UTC 5,952 bytes, 173 lines download raw bytes

1$(function () {
2  var vw = $(window).innerWidth();
3  var tab = "ideas";
4  var planDetails = JSON.parse($("#plan_details").text());
5  var userPrefs = JSON.parse($("#user_prefs").text());
6  var queryParams = new URLSearchParams(location.search);
7
8  setExchangeFilingsLink();
9  function setExchangeFilingsLink() {
10    var endDate = new Date();
11    endDate = new Intl.DateTimeFormat("en-US").format(endDate);
12    var startDate = new Date();
13    startDate.setDate(startDate.getDate() - 89);
14    startDate = new Intl.DateTimeFormat("en-US").format(startDate);
15    var events =
16      "28,29,26,27,31,32,25,30,73,74,20,72,66,67,68,70,71,69,19,21,24,53,52,88,89,90,91,92";
17    if (planDetails.plan_tier != "premium") {
18      events = "28,27,31,25,73,74,72,67,68,70,21,52,88,89,90,91,92";
19    }
20    if (userPrefs.ideas_dashboard_exchange_filings_events) {
21      events = JSON.parse(
22        userPrefs.ideas_dashboard_exchange_filings_events
23      ).join(",");
24    }
25    var path = `/ideas-dashboard/all-exchange-filings/?daterange=${startDate},${endDate}&events=${events}`;
26    $(".exchange_filing__link a").attr("href", path);
27  }
28
29  $(".tabs button").on("click", function () {
30    var id = $(this).attr("for");
31    var desc = $(this).data("desc");
32    var $cont = $(this).parents(".tab_cards");
33    var $cards = $cont.find(".card_tj");
34    $cards.hide();
35    $cont.find(`#${id}`).show();
36    $(this).siblings().removeClass("active");
37    $(this).addClass("active");
38    $cont.find(".description").text(desc);
39
40    //update view all url
41    var $viewAll = $(this).parents(".tabs_container").find("a");
42    var slug = $(this).data("slug");
43    $viewAll.attr("href", `/ideas-dashboard/${slug}/`);
44  });
45
46  $(".results_and_concalls .switch input").on("change", function () {
47    var slug = $(this).prop("checked") ? "concalls" : "upcoming-results";
48    $(".results_and_concalls .card_body").toggle();
49    $(this)
50      .parents(".card_header")
51      .find(".view_all a")
52      .attr("href", `/ideas-dashboard/${slug}/`);
53  });
54
55  function renderTweetLinks() {
56    var $containers = $(".twitter-widget[data-render='no']");
57    $($containers).each(function () {
58      var $self = $(this);
59      var link = $self.data("link");
60      try {
61        var data = JSON.parse($self.find("script").text());
62        var $cont = $self.parents(".tweet_mob");
63
64        var date = new Date(data.created_at);
65        date = new Intl.DateTimeFormat("en-IN", {
66          day: "numeric",
67          month: "short",
68          year: "numeric",
69        }).format(date);
70        $cont.find(".date").text(date);
71      } catch (error) {}
72      $cont.find(".tweet_link a").append(link).attr("href", link);
73      $self.remove();
74    });
75  }
76
77  if (vw <= 520) {
78    //renderTweetLinks();
79    if (queryParams.get("tab")) {
80      tab = queryParams.get("tab");
81    }
82    $("[data-tab]").hide();
83    $(`[data-tab="${tab}"]`).show();
84    $(".page_tabs li").removeClass("active");
85    $(`.page_tabs li[data-tab-name="${tab}"]`).addClass("active");
86  }
87
88  $(".page_tabs li").on("click", function () {
89    $(this).siblings().removeClass("active");
90    $(this).addClass("active");
91    tab = $(this).data("tab-name");
92    $("[data-tab]").hide();
93    $(`[data-tab="${tab}"]`).show();
94    // Need to change the query params in the url.
95    let url = new URL(window.location.href);
96    url.searchParams.set("tab", tab);
97    window.history.pushState({}, "", url);
98  });
99
100  // Non-blocking widget load: only AJAX-fetch card bodies that are cold (show .no_data).
101  // Warm-cache widgets are already rendered in HTML by the server — skip them.
102  // _inflight deduplicates slugs that appear in multiple elements (e.g. Twitter desktop + mobile).
103  var _inflight = {};
104  $(".card_body[data-slug]").each(function () {
105    var $el = $(this);
106    var slug = $el.data("slug");
107    if (!slug) return;
108    // Already warm — server rendered real data, nothing to do.
109    if ($el.find(".no_data").length === 0) return;
110    if (_inflight[slug]) {
111      _inflight[slug].done(function (html) {
112        var $new = $(html);
113        if ($el.css("display") === "none") { $new.hide(); }
114        $el.replaceWith($new);
115      });
116      return;
117    }
118    _inflight[slug] = $.ajax({ url: "/ideas-dashboard/" + slug + "/card-body/" })
119      .done(function (html) {
120        var $new = $(html);
121        // Preserve hide_by_default display state (e.g. concalls hidden by default)
122        if ($el.css("display") === "none") {
123          $new.hide();
124        }
125        $el.replaceWith($new);
126        // Twitter: also populate the desktop carousel from the same response and render tweet widgets.
127        if (slug === "trending-on-social-media") {
128          $(".tweets__container").html($new.find(".tweet").clone());
129          if (typeof renderTwitterWidgets === "function") {
130            renderTwitterWidgets();
131          }
132        }
133      });
134  });
135
136  // Delegated click — handles both skeleton and AJAX-injected card bodies
137  $(document).on("click", ".card_body", function () {
138    var slug = $(this).data("slug");
139    if (slug) {
140      location = `/ideas-dashboard/${slug}/`;
141    }
142  });
143
144  $(".tweets__container").on(
145    "scroll",
146    $.debounce(50, function (e) {
147      var scrollWidth = e.target.scrollWidth;
148      var width = e.target.clientWidth;
149      var scrollableX = scrollWidth - width;
150      var scrollLeft = $(e.target).scrollLeft();
151      var buffer = 8;
152      if (scrollLeft >= 0 && scrollLeft <= buffer) {
153        $(".bg-gradient.start").hide();
154        $(".bg-gradient.end").show();
155        return;
156      }
157      if (
158        scrollLeft >= scrollableX - buffer &&
159        scrollLeft <= scrollableX + buffer
160      ) {
161        $(".bg-gradient.start").show();
162        $(".bg-gradient.end").hide();
163        return;
164      }
165      $(".bg-gradient.start").show();
166      $(".bg-gradient.end").show();
167    })
168  );
169
170  scrollbarInstance?.on("scroll", function (e) {
171    $("[data-toggle='popover']").popover("hide");
172  });
173});

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.