PageSourceSearch

https://bartyspares.uk/cdn/shop/t/2/assets/instantPage.min.js?v=100886622697803333071591870236

js bartyspares.uk collected 2026-09-29 21:50:16 UTC 8,407 bytes, 277 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 v2.0.1 - (C) 2019 Alexandre Dieulot - https://instant.page/license */
102
103let urlToPreload
104let mouseoverTimer
105let lastTouchTimestamp
106
107const prefetcher = document.createElement('link')
108const isSupported = prefetcher.relList && prefetcher.relList.supports && prefetcher.relList.supports('prefetch')
109const isDataSaverEnabled = navigator.connection && navigator.connection.saveData
110const allowQueryString = 'instantAllowQueryString' in document.body.dataset
111const allowExternalLinks = 'instantAllowExternalLinks' in document.body.dataset
112const useWhitelist = 'instantWhitelist' in document.body.dataset
113
114let delayOnHover = 65
115let useMousedown = false
116let useMousedownOnly = false
117if ('instantIntensity' in document.body.dataset) {
118  if (document.body.dataset.instantIntensity.substr(0, 'mousedown'.length) == 'mousedown') {
119    useMousedown = true
120    if (document.body.dataset.instantIntensity == 'mousedown-only') {
121      useMousedownOnly = true
122    }
123  }
124  else {
125    const milliseconds = parseInt(document.body.dataset.instantIntensity)
126    if (!isNaN(milliseconds)) {
127      delayOnHover = milliseconds
128    }
129  }
130}
131
132if (isSupported && !isDataSaverEnabled) {
133  prefetcher.rel = 'prefetch'
134  document.head.appendChild(prefetcher)
135
136  const eventListenersOptions = {
137    capture: true,
138    passive: true,
139  }
140
141  if (!useMousedownOnly) {
142    document.addEventListener('touchstart', touchstartListener, eventListenersOptions)
143  }
144
145  if (!useMousedown) {
146    document.addEventListener('mouseover', mouseoverListener, eventListenersOptions)
147  }
148  else {
149    document.addEventListener('mousedown', mousedownListener, eventListenersOptions)
150  }
151}
152
153function touchstartListener(event) {
154  /* Chrome on Android calls mouseover before touchcancel so `lastTouchTimestamp`
155   * must be assigned on touchstart to be measured on mouseover. */
156  lastTouchTimestamp = performance.now()
157
158  const linkElement = event.target.closest('a')
159
160  if (!isPreloadable(linkElement)) {
161    return
162  }
163
164  linkElement.addEventListener('touchcancel', touchendAndTouchcancelListener, {passive: true})
165  linkElement.addEventListener('touchend', touchendAndTouchcancelListener, {passive: true})
166
167  urlToPreload = linkElement.href
168  preload(linkElement.href)
169}
170
171function touchendAndTouchcancelListener() {
172  urlToPreload = undefined
173  stopPreloading()
174}
175
176function mouseoverListener(event) {
177  if (performance.now() - lastTouchTimestamp < 1100) {
178    return
179  }
180
181  const linkElement = event.target.closest('a')
182
183  if (!isPreloadable(linkElement)) {
184    return
185  }
186
187  linkElement.addEventListener('mouseout', mouseoutListener, {passive: true})
188
189  urlToPreload = linkElement.href
190
191  mouseoverTimer = setTimeout(() => {
192    preload(linkElement.href)
193    mouseoverTimer = undefined
194  }, delayOnHover)
195}
196
197function mousedownListener(event) {
198  const linkElement = event.target.closest('a')
199
200  if (!isPreloadable(linkElement)) {
201    return
202  }
203
204  linkElement.addEventListener('mouseout', mouseoutListener, {passive: true})
205
206  urlToPreload = linkElement.href
207
208  preload(linkElement.href)
209}
210
211function mouseoutListener(event) {
212  if (event.relatedTarget && event.target.closest('a') == event.relatedTarget.closest('a')) {
213    return
214  }
215
216  if (mouseoverTimer) {
217    clearTimeout(mouseoverTimer)
218    mouseoverTimer = undefined
219  }
220
221  urlToPreload = undefined
222
223  stopPreloading()
224}
225
226function isPreloadable(linkElement) {
227  if (!linkElement || !linkElement.href) {
228    return
229  }
230
231  if (urlToPreload == linkElement.href) {
232    return
233  }
234
235  if (useWhitelist && !('instant' in linkElement.dataset)) {
236    return
237  }
238
239  if (!allowExternalLinks && linkElement.origin != location.origin && !('instant' in linkElement.dataset)) {
240    return
241  }
242
243  if (!['http:', 'https:'].includes(linkElement.protocol)) {
244    return
245  }
246
247  if (linkElement.protocol == 'http:' && location.protocol == 'https:') {
248    return
249  }
250
251  if (!allowQueryString && linkElement.search && !('instant' in linkElement.dataset)) {
252    return
253  }
254
255  if (linkElement.hash && linkElement.pathname + linkElement.search == location.pathname + location.search) {
256    return
257  }
258
259  if ('noInstant' in linkElement.dataset) {
260    return
261  }
262
263  return true
264}
265
266function preload(url) {
267  prefetcher.href = url
268}
269
270function stopPreloading() {
271  prefetcher.removeAttribute('href')
272}
273
274
275/***/ })
276/******/ ]);
277//# sourceMappingURL=instantPage.min.js.map?1590779955329

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.