PageSourceSearch

https://www.rankia.com/assets/application-64e25423.js

js rankia.com collected 2026-09-24 15:23:29 UTC 15,433 bytes, 385 lines download raw bytes

vendor: 1,382 bytes, lines 1-28
1(() => {
2  var __create = Object.create;
3  var __defProp = Object.defineProperty;
4  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5  var __getOwnPropNames = Object.getOwnPropertyNames;
6  var __getProtoOf = Object.getPrototypeOf;
7  var __hasOwnProp = Object.prototype.hasOwnProperty;
8  var __commonJS = (cb, mod) => function __require() {
9    return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
10  };
11  var __copyProps = (to, from, except, desc) => {
12    if (from && typeof from === "object" || typeof from === "function") {
13      for (let key of __getOwnPropNames(from))
14        if (!__hasOwnProp.call(to, key) && key !== except)
15          __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16    }
17    return to;
18  };
19  var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20    // If the importer is in node compatibility mode or this is not an ESM
21    // file that has been converted to a CommonJS file using a Babel-
22    // compatible transform (i.e. "__esModule" has not been set), then set
23    // "default" to the CommonJS "module.exports" for node compatibility.
24    isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25    mod
26  ));
27
28  
28// vendor/assets/javascripts/js.cookie.js
29  var require_js_cookie = __commonJS({
30    "vendor/assets/javascripts/js.cookie.js"(exports, module) {
31      (function(factory) {
32        var registeredInModuleLoader = false;
33        if (typeof define === "function" && define.amd) {
34          define(factory);
35          registeredInModuleLoader = true;
36        }
37        if (typeof exports === "object") {
38          module.exports = factory();
39          registeredInModuleLoader = true;
40        }
41        if (!registeredInModuleLoader) {
42          var OldCookies = window.Cookies;
43          var api = window.Cookies = factory();
44          api.noConflict = function() {
45            window.Cookies = OldCookies;
46            return api;
47          };
48        }
49      })(function() {
50        function extend() {
51          var i = 0;
52          var result = {};
53          for (; i < arguments.length; i++) {
54            var attributes = arguments[i];
55            for (var key in attributes) {
56              result[key] = attributes[key];
57            }
58          }
59          return result;
60        }
61        function init(converter) {
62          function api(key, value, attributes) {
63            var result;
64            if (typeof document === "undefined") {
65              return;
66            }
67            if (arguments.length > 1) {
68              attributes = extend({
69                path: "/"
70              }, api.defaults, attributes);
71              if (typeof attributes.expires === "number") {
72                var expires = /* @__PURE__ */ new Date();
73                expires.setMilliseconds(expires.getMilliseconds() + attributes.expires * 864e5);
74                attributes.expires = expires;
75              }
76              attributes.expires = attributes.expires ? attributes.expires.toUTCString() : "";
77              try {
78                result = JSON.stringify(value);
79                if (/^[\{\[]/.test(result)) {
80                  value = result;
81                }
82              } catch (e) {
83              }
84              if (!converter.write) {
85                value = encodeURIComponent(String(value)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);
86              } else {
87                value = converter.write(value, key);
88              }
89              key = encodeURIComponent(String(key));
90              key = key.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent);
91              key = key.replace(/[\(\)]/g, escape);
92              var stringifiedAttributes = "";
93              for (var attributeName in attributes) {
94                if (!attributes[attributeName]) {
95                  continue;
96                }
97                stringifiedAttributes += "; " + attributeName;
98                if (attributes[attributeName] === true) {
99                  continue;
100                }
101                stringifiedAttributes += "=" + attributes[attributeName];
102              }
103              return document.cookie = key + "=" + value + stringifiedAttributes;
104            }
105            if (!key) {
106              result = {};
107            }
108            var cookies = document.cookie ? document.cookie.split("; ") : [];
109            var rdecode = /(%[0-9A-Z]{2})+/g;
110            var i = 0;
111            for (; i < cookies.length; i++) {
112              var parts = cookies[i].split("=");
113              var cookie = parts.slice(1).join("=");
114              if (cookie.charAt(0) === '"') {
115                cookie = cookie.slice(1, -1);
116              }
117              try {
118                var name = parts[0].replace(rdecode, decodeURIComponent);
119                cookie = converter.read ? converter.read(cookie, name) : converter(cookie, name) || cookie.replace(rdecode, decodeURIComponent);
120                if (this.json) {
121                  try {
122                    cookie = JSON.parse(cookie);
123                  } catch (e) {
124                  }
125                }
126                if (key === name) {
127                  result = cookie;
128                  break;
129                }
130                if (!key) {
131                  result[name] = cookie;
132                }
133              } catch (e) {
134              }
135            }
136            return result;
137          }
138          api.set = api;
139          api.get = function(key) {
140            return api.call(api, key);
141          };
142          api.getJSON = function() {
143            return api.apply({
144              json: true
145            }, [].slice.call(arguments));
146          };
147          api.defaults = {};
148          api.remove = function(key, attributes) {
149            api(key, "", extend(attributes, {
150              expires: -1
151            }));
152          };
153          api.withConverter = init;
154          return api;
155        }
156        return init(function() {
157        });
158      });
159    }
160  });
161
162  
162// app/javascript/packs/application.js
163  var import_js = __toESM(require_js_cookie());
164
165  
165// app/assets/javascripts/contenidos.js
166  window.inputCharCount = function(input, charCounterSelector, upperCounterSelector) {
167    if (!input) return;
168    var countWarn = input.parentElement.querySelector(charCounterSelector || ".rnk-Forms_InputCharCounter");
169    var upperAlert = input.parentElement.querySelector(upperCounterSelector || ".rnk-Forms_InputUpperCaseCounter");
170    if (!countWarn) return;
171    var text = input.value.trim(), charTotal = text.length, charMax = input.getAttribute("maxlength");
172    countWarn.textContent = charTotal + "/" + charMax;
173    if (!upperAlert) return;
174    var upperNow = text.replace(/[^A-Z]/g, "").length, upperMax = Math.floor(charTotal / 2, 0);
175    if (upperNow / upperMax > 1) {
176      upperAlert.textContent = "\xA1Demasiadas may\xFAsculas (" + upperNow + "/" + upperMax + ")!";
177      input.setAttribute("pattern", true);
178    } else {
179      upperAlert.textContent = "";
180      input.removeAttribute("pattern");
181    }
182  };
183  var sendAjax = function(element) {
184    if (element.dataset.status === "pending") {
185      return;
186    }
187    var confirmMsg = element.dataset.confirm;
188    if (confirmMsg && !confirm(confirmMsg)) {
189      element.dataset.status = "rejected";
190      return;
191    }
192    element.dataset.status = "pending";
193    const fetchParams = {
194      credentials: "same-origin",
195      method: element.dataset.type || "GET",
196      headers: { "Accept": "application/json" }
197    };
198    return fetch(element.dataset.url, fetchParams).then(function(response) {
199      return response.json();
200    });
201  };
202  window.showRespuestaParent = function(element, data) {
203    const respuesta = element.closest("article");
204    const parentIsLoaded = respuesta.dataset.parentLoaded === "true" ? true : false;
205    if (!parentIsLoaded) {
206      const padre = document.createElement("div");
207      padre.classList.add("padre", "rnk-PostReply_ParentMsgQuote", "rnk-PostReply_ParentMsg");
208      padre.innerHTML = '<div class="rnk-ClosingX"></div><header><b></b> dijo:</header><main>AQU\xCD VA EL TEXTO COMPLETO</main>';
209      padre.querySelector("b").textContent = data.usr_nick;
210      padre.querySelector("main").innerHTML = data.texto_completo;
211      padre.querySelector(".rnk-ClosingX").addEventListener("click", function() {
212        respuesta.classList.remove("rnk-PostReply-showing-parent");
213      });
214      const selector = respuesta.classList.contains("rnk-PostReply") ? ".rnk-PostReplyMessage_Content" : ".rnk-Comment_Body";
215      respuesta.querySelector(selector).insertAdjacentElement("beforebegin", padre);
216      respuesta.dataset.parentLoaded = "true";
217    }
218    respuesta.classList.toggle("rnk-PostReply-showing-parent");
219  };
220  function activeClickShowRespuesta(event2) {
221    document.querySelectorAll("[data-done]").forEach(function(elem) {
222      elem.addEventListener("click", function() {
223        const element = this;
224        const promise = sendAjax(element);
225        if (promise === void 0) {
226          return;
227        }
228        promise.then(function(data) {
229          element.dataset.status = "fullfilled";
230          switch (element.dataset.done) {
231            case "ver-padre":
232              showRespuestaParent(element, data);
233              break;
234            case "reload":
235              window.location.reload();
236              break;
237          }
238        }).then(null, function() {
239          element.dataset.status = "rejected";
240        });
241      });
242    });
243  }
244  document.addEventListener("DOMContentLoaded", activeClickShowRespuesta);
245  document.addEventListener("turbo:frame-render", activeClickShowRespuesta);
246  window.ocultarSocialShare = function(contenidoId) {
247    const id = "#barra-social-" + contenidoId;
248    const socialShare = document.querySelector(id);
249    const pseudolink = document.querySelector("pseudolink-loader[target='" + id + "']");
250    pseudolink.onclick = function() {
251      socialShare.classList.toggle("hidden");
252    };
253    pseudolink.click();
254  };
255
256  
256// app/assets/javascripts/nojs.js
257  document.addEventListener("DOMContentLoaded", function() {
258    document.querySelector("body").classList.remove("nojs");
259  });
260
261  
261// app/javascript/packs/application.js
262  window.Cookies = window.Cookies || import_js.default;
263  window.scrollToNode = function(selector, forcedOffset) {
264    const node = typeof selector === "string" ? document.querySelector(selector) : selector;
265    if (isNaN(parseInt(forcedOffset))) {
266      node.scrollIntoView({ block: "start", behavior: "smooth" });
267    } else {
268      window.scrollTo(0, node.offsetTop + forcedOffset);
269    }
270  };
271  window.showEnlargedPhoto = function(href) {
272    if (!href.startsWith("/fotos_ampliadas/")) {
273      return;
274    }
275    fetch(href, { credentials: "same-origin" }).then(function(response) {
276      return response.text();
277    }).then(function(responseText) {
278      new Dialog(responseText, { closingx: true, size: "large" });
279    });
280  };
281  window.loadBanners = function() {
282    document.querySelectorAll("template[is=lazyload-template]").forEach(function(element) {
283      element.loadContent();
284    });
285  };
286  window.loginRequired = function(event_data) {
287    event.preventDefault();
288    var accion = event_data["accion"];
289    window.location.href = urlLogin(accion);
290  };
291  function urlLogin(accion) {
292    var url = new URL(window.location);
293    url.pathname = "/login";
294    url.searchParams.append("destino_login", destinoLogin());
295    url.searchParams.append("accion", accion);
296    return url;
297  }
298  function destinoLogin() {
299    const hrefDelAnchor = event.target.tagName === "A" && event.target.href;
300    const hrefDelAnchorPadre = event.target.closest("a") && event.target.closest("a").href;
301    const urlDelFormButtonTo = event.target.closest("form") && event.target.closest("form").action;
302    const hrefEvento = hrefDelAnchor || hrefDelAnchorPadre || urlDelFormButtonTo;
303    const paramDestinoLogin = new URL(hrefEvento).searchParams.get("destino_login");
304    return paramDestinoLogin || hrefEvento || window.location.href;
305  }
306  window.popupAcceder = function() {
307    const loginUrl = "/acceder?destino_login=" + window.location.href;
308    fetch(loginUrl, { credentials: "same-origin" }).then(function(response) {
309      const wcOptions = {
310        id: "popup-acceder",
311        closingx: true,
312        runscripts: true,
313        ondismiss: "window.history.back()"
314      };
315      response.text().then(function(htmlResponse) {
316        const wcContent = document.createElement("div");
317        wcContent.innerHTML = htmlResponse;
318        window.popupLoginModal = new Dialog(wcContent, wcOptions);
319      });
320    });
321    window.history.pushState(null, "login", window.location.href);
322    window.onpopstate = function() {
323      window.popupLoginModal.destroy();
324    };
325  };
326  window.copiarEnlace = function(urlOrPath) {
327    navigator.clipboard.writeText(urlOrPath[0] === "/" ? window.location.origin + urlOrPath : urlOrPath);
328    muestraUnTooltip(event.target, "Enlace copiado");
329  };
330  function muestraUnTooltip(element, mensaje) {
331    const emergiaTooltip = document.createElement("emergia-tooltip");
332    emergiaTooltip.setAttribute("message", mensaje);
333    emergiaTooltip.classList.add("tooltip-without-icon");
334    element.appendChild(emergiaTooltip);
335    emergiaTooltip.tooltip.show();
336    setTimeout(function() {
337      emergiaTooltip.tooltip.hide();
338      emergiaTooltip.remove();
339    }, 2e3);
340  }
341  function togglePasswordVisibility(button) {
342    var passwordField = button.closest(".rnk-Forms_Password-wrapper").querySelector("input");
343    var icon = button.querySelector(".password-icon");
344    if (passwordField.type === "password") {
345      passwordField.type = "text";
346      icon.style.setProperty("--icon-url", `url(${button.dataset.eyeClosed})`);
347    } else {
348      passwordField.type = "password";
349      icon.style.setProperty("--icon-url", `url(${button.dataset.eyeOpen})`);
350    }
351  }
352  function updatePasswordIcon(passwordField) {
353    var button = passwordField.closest(".rnk-Forms_Password-wrapper").querySelector(".rnk-Forms_Password-toggle");
354    var icon = button.querySelector(".password-icon");
355    if (passwordField.value.length === 0) {
356      icon.style.setProperty("--icon-url", `url(${button.dataset.eyeClosed})`);
357      icon.style.color = "#5A6773";
358    } else {
359      icon.style.setProperty("--icon-url", `url(${button.dataset.eyeOpen})`);
360      icon.style.color = "#5A6773";
361    }
362  }
363  document.addEventListener("turbo:load", function() {
364    var passwordFields = document.querySelectorAll('input[type="password"]');
365    passwordFields.forEach(function(field) {
366      field.addEventListener("input", function() {
367        updatePasswordIcon(this);
368      });
369      var toggleButton = field.closest(".rnk-Forms_Password-wrapper").querySelector(".rnk-Forms_Password-toggle");
370      if (toggleButton && toggleButton.classList.contains("rnk-Forms_Password-toggle")) {
371        toggleButton.addEventListener("click", function() {
372          togglePasswordVisibility(this);
373        });
374      }
375    });
376  });
377})();
378/*!
379 * JavaScript Cookie v2.1.3
380 * https://github.com/js-cookie/js-cookie
381 *
382 * Copyright 2006, 2015 Klaus Hartl & Fagner Brack
383 * Released under the MIT license
384 */
385//# sourceMappingURL=/assets/application-69ba30f2.js.map

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.