PageSourceSearch

https://www.sivanaspirit.com/cdn/shop/t/250/assets/instantPage.min.js?v=149325163791173914621762802559

js sivanaspirit.com collected 2026-09-24 09:55:04 UTC 9,510 bytes, 307 lines download raw bytes

1/******/ (function(modules) { // webpackBootstrap
2/******/ 	// The module cache
3/******/ 	var installedModules = {};
4/******/
5/******/ 	// The require function
6/******/ 	function __webpack_require__(moduleId) {
7/******/
8/******/ 		// Check if module is in cache
9/******/ 		if(installedModules[moduleId]) {
10/******/ 			return installedModules[moduleId].exports;
11/******/ 		}
12/******/ 		// Create a new module (and put it into the cache)
13/******/ 		var module = installedModules[moduleId] = {
14/******/ 			i: moduleId,
15/******/ 			l: false,
16/******/ 			exports: {}
17/******/ 		};
18/******/
19/******/ 		// Execute the module function
20/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
21/******/
22/******/ 		// Flag the module as loaded
23/******/ 		module.l = true;
24/******/
25/******/ 		// Return the exports of the module
26/******/ 		return module.exports;
27/******/ 	}
28/******/
29/******/
30/******/ 	// expose the modules object (__webpack_modules__)
31/******/ 	__webpack_require__.m = modules;
32/******/
33/******/ 	// expose the module cache
34/******/ 	__webpack_require__.c = installedModules;
35/******/
36/******/ 	// define getter function for harmony exports
37/******/ 	__webpack_require__.d = function(exports, name, getter) {
38/******/ 		if(!__webpack_require__.o(exports, name)) {
39/******/ 			Object.defineProperty(exports, name, { enumerable: true, get: getter });
40/******/ 		}
41/******/ 	};
42/******/
43/******/ 	// define __esModule on exports
44/******/ 	__webpack_require__.r = function(exports) {
45/******/ 		if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
46/******/ 			Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
47/******/ 		}
48/******/ 		Object.defineProperty(exports, '__esModule', { value: true });
49/******/ 	};
50/******/
51/******/ 	// create a fake namespace object
52/******/ 	// mode & 1: value is a module id, require it
53/******/ 	// mode & 2: merge all properties of value into the ns
54/******/ 	// mode & 4: return value when already ns object
55/******/ 	// mode & 8|1: behave like require
56/******/ 	__webpack_require__.t = function(value, mode) {
57/******/ 		if(mode & 1) value = __webpack_require__(value);
58/******/ 		if(mode & 8) return value;
59/******/ 		if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
60/******/ 		var ns = Object.create(null);
61/******/ 		__webpack_require__.r(ns);
62/******/ 		Object.defineProperty(ns, 'default', { enumerable: true, value: value });
63/******/ 		if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
64/******/ 		return ns;
65/******/ 	};
66/******/
67/******/ 	// getDefaultExport function for compatibility with non-harmony modules
68/******/ 	__webpack_require__.n = function(module) {
69/******/ 		var getter = module && module.__esModule ?
70/******/ 			function getDefault() { return module['default']; } :
71/******/ 			function getModuleExports() { return module; };
72/******/ 		__webpack_require__.d(getter, 'a', getter);
73/******/ 		return getter;
74/******/ 	};
75/******/
76/******/ 	// Object.prototype.hasOwnProperty.call
77/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
78/******/
79/******/ 	// __webpack_public_path__
80/******/ 	__webpack_require__.p = "";
81/******/
82/******/
83/******/ 	// Load entry module and return exports
84/******/ 	return __webpack_require__(__webpack_require__.s = 0);
85/******/ })
86/************************************************************************/
87/******/ ([
88/* 0 */
89/***/ (function(module, __webpack_exports__, __webpack_require__) {
90
91"use strict";
92__webpack_require__.r(__webpack_exports__);
93/* harmony import */ var instant_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1);
94/* harmony import */ var instant_page__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(instant_page__WEBPACK_IMPORTED_MODULE_0__);
95
96
97/***/ }),
98/* 1 */
99/***/ (function(module, exports) {
100
101/*! instant.page v3.0.0 - (C) 2019 Alexandre Dieulot - https://instant.page/license */
102
103let mouseoverTimer
104let lastTouchTimestamp
105const prefetches = new Set()
106const prefetchElement = document.createElement('link')
107const isSupported = prefetchElement.relList && prefetchElement.relList.supports && prefetchElement.relList.supports('prefetch')
108                    && window.IntersectionObserver && 'isIntersecting' in IntersectionObserverEntry.prototype
109const allowQueryString = 'instantAllowQueryString' in document.body.dataset
110const allowExternalLinks = 'instantAllowExternalLinks' in document.body.dataset
111const useWhitelist = 'instantWhitelist' in document.body.dataset
112
113let delayOnHover = 65
114let useMousedown = false
115let useMousedownOnly = false
116let useViewport = false
117if ('instantIntensity' in document.body.dataset) {
118  const intensity = document.body.dataset.instantIntensity
119
120  if (intensity.substr(0, 'mousedown'.length) == 'mousedown') {
121    useMousedown = true
122    if (intensity == 'mousedown-only') {
123      useMousedownOnly = true
124    }
125  }
126  else if (intensity.substr(0, 'viewport'.length) == 'viewport') {
127    if (!(navigator.connection && (navigator.connection.saveData || navigator.connection.effectiveType.includes('2g')))) {
128      if (intensity == "viewport") {
129        /* Biggest iPhone resolution (which we want): 414 × 896 = 370944
130         * Small 7" tablet resolution (which we don’t want): 600 × 1024 = 614400
131         * Note that the viewport (which we check here) is smaller than the resolution due to the UI’s chrome */
132        if (document.documentElement.clientWidth * document.documentElement.clientHeight < 450000) {
133          useViewport = true
134        }
135      }
136      else if (intensity == "viewport-all") {
137        useViewport = true
138      }
139    }
140  }
141  else {
142    const milliseconds = parseInt(intensity)
143    if (!isNaN(milliseconds)) {
144      delayOnHover = milliseconds
145    }
146  }
147}
148
149if (isSupported) {
150  const eventListenersOptions = {
151    capture: true,
152    passive: true,
153  }
154
155  if (!useMousedownOnly) {
156    document.addEventListener('touchstart', touchstartListener, eventListenersOptions)
157  }
158
159  if (!useMousedown) {
160    document.addEventListener('mouseover', mouseoverListener, eventListenersOptions)
161  }
162  else {
163    document.addEventListener('mousedown', mousedownListener, eventListenersOptions)
164  }
165
166  if (useViewport) {
167    let triggeringFunction
168    if (window.requestIdleCallback) {
169      triggeringFunction = (callback) => {
170        requestIdleCallback(callback, {
171          timeout: 1500,
172        })
173      }
174    }
175    else {
176      triggeringFunction = (callback) => {
177        callback()
178      }
179    }
180
181    triggeringFunction(() => {
182      const intersectionObserver = new IntersectionObserver((entries) => {
183        entries.forEach((entry) => {
184          if (entry.isIntersecting) {
185            const linkElement = entry.target
186            intersectionObserver.unobserve(linkElement)
187            preload(linkElement.href)
188          }
189        })
190      })
191
192      document.querySelectorAll('a').forEach((linkElement) => {
193        if (isPreloadable(linkElement)) {
194          intersectionObserver.observe(linkElement)
195        }
196      })
197    })
198  }
199}
200
201function touchstartListener(event) {
202  /* Chrome on Android calls mouseover before touchcancel so `lastTouchTimestamp`
203   * must be assigned on touchstart to be measured on mouseover. */
204  lastTouchTimestamp = performance.now()
205
206  const linkElement = event.target.closest('a')
207
208  if (!isPreloadable(linkElement)) {
209    return
210  }
211
212  preload(linkElement.href)
213}
214
215function mouseoverListener(event) {
216  if (performance.now() - lastTouchTimestamp < 1100) {
217    return
218  }
219
220  const linkElement = event.target.closest('a')
221
222  if (!isPreloadable(linkElement)) {
223    return
224  }
225
226  linkElement.addEventListener('mouseout', mouseoutListener, {passive: true})
227
228  mouseoverTimer = setTimeout(() => {
229    preload(linkElement.href)
230    mouseoverTimer = undefined
231  }, delayOnHover)
232}
233
234function mousedownListener(event) {
235  const linkElement = event.target.closest('a')
236
237  if (!isPreloadable(linkElement)) {
238    return
239  }
240
241  preload(linkElement.href)
242}
243
244function mouseoutListener(event) {
245  if (event.relatedTarget && event.target.closest('a') == event.relatedTarget.closest('a')) {
246    return
247  }
248
249  if (mouseoverTimer) {
250    clearTimeout(mouseoverTimer)
251    mouseoverTimer = undefined
252  }
253}
254
255function isPreloadable(linkElement) {
256  if (!linkElement || !linkElement.href) {
257    return
258  }
259
260  if (useWhitelist && !('instant' in linkElement.dataset)) {
261    return
262  }
263
264  if (!allowExternalLinks && linkElement.origin != location.origin && !('instant' in linkElement.dataset)) {
265    return
266  }
267
268  if (!['http:', 'https:'].includes(linkElement.protocol)) {
269    return
270  }
271
272  if (linkElement.protocol == 'http:' && location.protocol == 'https:') {
273    return
274  }
275
276  if (!allowQueryString && linkElement.search && !('instant' in linkElement.dataset)) {
277    return
278  }
279
280  if (linkElement.hash && linkElement.pathname + linkElement.search == location.pathname + location.search) {
281    return
282  }
283
284  if ('noInstant' in linkElement.dataset) {
285    return
286  }
287
288  return true
289}
290
291function preload(url) {
292  if (prefetches.has(url)) {
293    return
294  }
295
296  const prefetcher = document.createElement('link')
297  prefetcher.rel = 'prefetch'
298  prefetcher.href = url
299  document.head.appendChild(prefetcher)
300
301  prefetches.add(url)
302}
303
304
305/***/ })
306/******/ ]);
307//# sourceMappingURL=instantPage.min.js.map?1601936376757

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.