PageSourceSearch

https://picksell.co.kr/js/celeb/m/pullToRefresh.js?ver=202606081702

js picksell.co.kr collected 2026-10-02 15:28:34 UTC 9,467 bytes, 166 lines download raw bytes

1! function(e, t) {
2    "object" == typeof exports && "undefined" != typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define(t) : e.PullToRefresh = t()
3}(this, function() {
4    "use strict";
5    var e = {
6        pullStartY: null,
7        pullMoveY: null,
8        handlers: [],
9        styleEl: null,
10        events: null,
11        dist: 0,
12        state: "pending",
13        timeout: null,
14        distResisted: 0,
15        supportsPassive: !1
16    };
17    try {
18        window.addEventListener("test", null, {
19            get passive() {
20                e.supportsPassive = !0
21            }
22        })
23    } catch (e) {}
24    var t = {
25            setupDOM: function(t) {
26                if (!t.ptrElement) {
27                    var n = document.createElement("div");
28                    t.mainElement !== document.body ? t.mainElement.parentNode.insertBefore(n, t.mainElement) : document.body.insertBefore(n, document.body.firstChild), n.classList.add(t.classPrefix + "ptr"), n.innerHTML = t.getMarkup().replace(/__PREFIX__/g, t.classPrefix), t.ptrElement = n, "function" == typeof t.onInit && t.onInit(t), e.styleEl || (e.styleEl = document.createElement("style"), e.styleEl.setAttribute("id", "pull-to-refresh-js-style"), document.head.appendChild(e.styleEl)), e.styleEl.textContent = t.getStyles().replace(/__PREFIX__/g, t.classPrefix).replace(/\s+/g, " ")
29                }
30                return t
31            },
32            onReset: function(t) {
33                t.ptrElement.classList.remove(t.classPrefix + "refresh"), t.ptrElement.style[t.cssProp] = "0px", setTimeout(function() {
34                    t.ptrElement && t.ptrElement.parentNode && (t.ptrElement.parentNode.removeChild(t.ptrElement), t.ptrElement = null), e.state = "pending"
35                }, t.refreshTimeout)
36            },
37            update: function(t) {
38                var n = t.ptrElement.querySelector("." + t.classPrefix + "icon"),
39                    s = t.ptrElement.querySelector("." + t.classPrefix + "text");
40                n && ("refreshing" === e.state ? n.innerHTML = t.iconRefreshing : n.innerHTML = t.iconArrow), s && ("releasing" === e.state && (s.innerHTML = t.instructionsReleaseToRefresh), "pulling" !== e.state && "pending" !== e.state || (s.innerHTML = t.instructionsPullToRefresh), "refreshing" === e.state && (s.innerHTML = t.instructionsRefreshing))
41            }
42        },
43        n = function() {
44            var n;
45
46            function s(s) {
47                var r = e.handlers.filter(function(e) {
48                    return e.contains(s.target)
49                })[0];
50                e.enable = !!r, r && "pending" === e.state && (n = t.setupDOM(r), r.shouldPullToRefresh() && (e.pullStartY = s.touches[0].screenY), clearTimeout(e.timeout), t.update(r))
51            }
52
53            function r(s) {
54                // slide-out-panel-screen 열려있으면 비작동
55                if($('.slide-out-panel-screen').hasClass('open'))
56                {
57                    return false;
58                }
59
60                n && n.ptrElement && e.enable && (e.pullStartY ? e.pullMoveY = s.touches[0].screenY : n.shouldPullToRefresh() && (e.pullStartY = s.touches[0].screenY), "refreshing" !== e.state ? ("pending" === e.state && (n.ptrElement.classList.add(n.classPrefix + "pull"), e.state = "pulling", t.update(n)), e.pullStartY && e.pullMoveY && (e.dist = e.pullMoveY - e.pullStartY), e.distExtra = e.dist - n.distIgnore, e.distExtra > 0 && (s.preventDefault(), n.ptrElement.style[n.cssProp] = e.distResisted + "px", e.distResisted = n.resistanceFunction(e.distExtra / n.distThreshold) * Math.min(n.distMax, e.distExtra), "pulling" === e.state && e.distResisted > n.distThreshold && (n.ptrElement.classList.add(n.classPrefix + "release"), e.state = "releasing", t.update(n)), "releasing" === e.state && e.distResisted < n.distThreshold && (n.ptrElement.classList.remove(n.classPrefix + "release"), e.state = "pulling", t.update(n)))) : n.shouldPullToRefresh() && e.pullStartY < e.pullMoveY && s.preventDefault())
61            }
62
63            function i() {
64                if (n && n.ptrElement && e.enable) {
65                    if ("releasing" === e.state && e.distResisted > n.distThreshold) e.state = "refreshing", n.ptrElement.style[n.cssProp] = n.distReload + "px", n.ptrElement.classList.add(n.classPrefix + "refresh"), e.timeout = setTimeout(function() {
66                        var e = n.onRefresh(function() {
67                            return t.onReset(n)
68                        });
69                        e && "function" == typeof e.then && e.then(function() {
70                            return t.onReset(n)
71                        }), e || n.onRefresh.length || t.onReset(n)
72                    }, n.refreshTimeout);
73                    else {
74                        if ("refreshing" === e.state) return;
75                        n.ptrElement.style[n.cssProp] = "0px", e.state = "pending"
76                    }
77                    t.update(n), n.ptrElement.classList.remove(n.classPrefix + "release"), n.ptrElement.classList.remove(n.classPrefix + "pull"), e.pullStartY = e.pullMoveY = null, e.dist = e.distResisted = 0
78                }
79            }
80
81            function o() {
82                n && n.mainElement.classList.toggle(n.classPrefix + "top", n.shouldPullToRefresh())
83            }
84            var l = e.supportsPassive ? {
85                passive: e.passive || !1
86            } : void 0;
87            return window.addEventListener("touchend", i), window.addEventListener("touchstart", s), window.addEventListener("touchmove", r, l), window.addEventListener("scroll", o), {
88                onTouchEnd: i,
89                onTouchStart: s,
90                onTouchMove: r,
91                onScroll: o,
92                destroy: function() {
93                    window.removeEventListener("touchstart", s), window.removeEventListener("touchend", i), window.removeEventListener("touchmove", r, l), window.removeEventListener("scroll", o)
94                }
95            }
96        },
97        s = {
98            distThreshold: 60,
99            distMax: 80,
100            distReload: 50,
101            distIgnore: 0,
102            mainElement: "body",
103            triggerElement: "body",
104            ptrElement: ".ptr",
105            classPrefix: "ptr--",
106            cssProp: "min-height",
107            iconArrow: "&#8675;",
108            iconRefreshing: "&hellip;",
109            instructionsPullToRefresh: "Pull down to refresh",
110            instructionsReleaseToRefresh: "Release to refresh",
111            instructionsRefreshing: "Refreshing",
112            refreshTimeout: 500,
113            getMarkup: function() {
114                return '\n<div class="__PREFIX__box">\n <div class="__PREFIX__content">\n <div class="__PREFIX__icon"></div>\n <div class="__PREFIX__text"></div>\n </div>\n</div>\n'
115            },
116            getStyles: function() {
117                return "\n.__PREFIX__ptr {\n box-shadow: inset 0 -3px 5px rgba(0, 0, 0, 0.12);\n pointer-events: none;\n font-size: 0.85em;\n font-weight: bold;\n top: 0;\n height: 0;\n transition: height 0.3s, min-height 0.3s;\n text-align: center;\n width: 100%;\n overflow: hidden;\n display: flex;\n align-items: flex-end;\n align-content: stretch;\n}
117\n\n.__PREFIX__box {\n padding: 10px;\n flex-basis: 100%;\n}\n\n.__PREFIX__pull {\n transition: none;\n}\n\n.__PREFIX__text {\n margin-top: .33em;\n color: rgba(0, 0, 0, 0.3);\n}\n\n.__PREFIX__icon {\n color: rgba(0, 0, 0, 0.3);\n transition: transform .3s;\n}\n\n/*\nWhen at the top of the page, disable vertical overscroll so passive touch\nlisteners can take over.\n*/\n.__PREFIX__top {\n touch-action: pan-x pan-down pinch-zoom;\n}\n\n.__PREFIX__release {\n .__PREFIX__icon {\n transform: rotate(180deg);\n }\n}\n"
118            },
119            onInit: function() {},
120            onRefresh: function() {
121                return location.reload()
122            },
123            resistanceFunction: function(e) {
124                return Math.min(1, e / 2.5)
125            },
126            shouldPullToRefresh: function() {
127                return !window.scrollY
128            }
129        },
130        r = ["mainElement", "ptrElement", "triggerElement"],
131        i = function(t) {
132            var i = {};
133            return Object.keys(s).forEach(function(e) {
134                i[e] = t[e] || s[e]
135            }), i.refreshTimeout = "number" == typeof t.refreshTimeout ? t.refreshTimeout : s.refreshTimeout, r.forEach(function(e) {
136                "string" == typeof i[e] && (i[e] = document.querySelector(i[e]))
137            }), e.events || (e.events = n()), i.contains = function(e) {
138                return i.triggerElement.contains(e)
139            }, i.destroy = function() {
140                clearTimeout(e.timeout), e.handlers.splice(i.offset, 1)
141            }, i
142        };
143    return {
144        setPassiveMode: function(t) {
145            e.passive = t
146        },
147        destroyAll: function() {
148            e.events && (e.events.destroy(), e.events = null), e.handlers.forEach(function(e) {
149                e.destroy()
150            })
151        },
152        init: function(t) {
153            void 0 === t && (t = {});
154            var n = i(t);
155            return n.offset = e.handlers.push(n) - 1, n
156        },
157        _: {
158            setupHandler: i,
159            setupEvents: n,
160            setupDOM: t.setupDOM,
161            onReset: t.onReset,
162            update: t.update
163        }
164    }
165});
166//# sourceMappingURL=pulltorefresh.min.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.