PageSourceSearch

https://www.tjori.com/cdn/shop/t/27/assets/jquery.products.min.js?v=141435045411844649371783364263

js tjori.com collected 2026-10-07 00:56:20 UTC 2,729 bytes, 49 lines download raw bytes

1if (typeof jQuery.cookie === "function") {
2Shopify.Products = function() {
3    var e = { howManyToShow: 3, howManyToStoreInMemory: 10, wrapperId: "recently-viewed-products", templateId: "recently-viewed-product-template", onComplete: null },
4        n = [],
5        t = null,
6        o = null,
7        r = 0,
8        i = {
9            configuration: { expires: 90, path: "/", domain: window.location.hostname },
10            name: "shopify_recently_viewed",
11            write: function(e) { jQuery.cookie(this.name, e.join(" "), this.configuration) },
12            read: function() {
13                var e = [],
14                    n = jQuery.cookie(this.name);
15                return null !== n && null != n && (e = n.split(" ")), e
16            },
17            destroy: function() { jQuery.cookie(this.name, null, this.configuration) },
18            remove: function(e) {
19                var n = this.read(),
20                    t = jQuery.inArray(e, n); - 1 !== t && (n.splice(t, 1), this.write(n))
21            }
22        },
23        a = function() { n.length && r < e.howManyToShow ? jQuery.ajax({ dataType: "json", url: window.router + "/products/" + n[0] + ".js", cache: !1, success: function(e) { o.tmpl(e).appendTo(t), n.shift(), r++, a() }, error: function() { i.remove(n[0]), n.shift(), a() } }) : function() { if (t.show(), e.onComplete) try { e.onComplete() } catch (e) {} }() };
24    return {
25        resizeImage: function(e, n) {
26            if (null == n) return e;
27            if ("master" == n) return e.replace(/http(s)?:/, "");
28            var t = e.match(/\.(jpg|jpeg|gif|png|bmp|bitmap|tiff|tif)(\?v=\d+)?/i);
29            if (null != t && null != t) {
30                var o = e.split(t[0]),
31                    r = t[0];
32                return (o[0] + "_" + n + r).replace(/http(s)?:/, "")
33            }
34            return null
35        },
36        showRecentlyViewed: function(r) { r = r || {}, jQuery.extend(e, r), n = i.read(), o = jQuery("#" + e.templateId), t = jQuery("#" + e.wrapperId), e.howManyToShow = Math.min(n.length, e.howManyToShow), e.howManyToShow && o.length && t.length && a() },
37        getConfig: function() { return e },
38        clearList: function() { i.destroy() },
39        recordRecentlyViewed: function(n) {
40            n = n || {}, jQuery.extend(e, n);
41            var t = i.read();
42            if (-1 !== window.location.pathname.indexOf("/products/")) {
43                var o = $('[data-main-product-handle]').attr('data-main-product-handle'),
44                    r = jQuery.inArray(o, t); - 1 === r ? (t.unshift(o), t = t.splice(0, e.howManyToStoreInMemory)) : (t.splice(r, 1), t.unshift(o)), i.write(t)
45            }
46        }
47    }
48}();
49}

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.