PageSourceSearch

https://www.brei.men/assets/js/base.js

js brei.men collected 2026-10-04 21:18:32 UTC 5,501 bytes, 181 lines download raw bytes

1'use strict';
2window.__DEV_MODE = typeof dev !== 'undefined' && dev;
3
4const $html = $('html');
5const $body = $('body');
6const $wrap = $('.js-wrap');
7
8let winH = window.innerHeight;
9let winOH = window.outerHeight;
10let contentWinH = window.innerWidth;
11let winW = window.innerWidth;
12const documentRoot = document.documentElement;
13function setHeight() {
14  let forced = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
15  if (forced || Default.ua === 'pc' || winW !== window.innerWidth) {
16    winH = window.innerHeight;
17  }
18  winW = window.innerWidth;
19  winOH = window.outerHeight;
20  contentWinH = winW < 1400 ? winW : 1400;
21  documentRoot.style.setProperty('--winH', ''.concat(winH, 'px'));
22}
23
24const ReadyEvent = {
25  event: [],
26  add(event) {
27    this.event.push(event);
28  },
29  run() {
30    this.event.forEach((event) => {
31      var _event$call;
32      return event === null || event === void 0 ? void 0 : (_event$call = event.call) === null || _event$call === void 0 ? void 0 : _event$call.call(event);
33    });
34  },
35};
36const LoadEvent = {
37  event: [],
38  add(event) {
39    this.event.push(event);
40  },
41  run() {
42    this.event.forEach((event) => {
43      var _event$call2;
44      return event === null || event === void 0 ? void 0 : (_event$call2 = event.call) === null || _event$call2 === void 0 ? void 0 : _event$call2.call(event);
45    });
46  },
47};
48
49$(document).ready(() => {
50  ReadyEvent.run();
51});
52
53$(window)
54  .on('load', () => {
55    LoadEvent.run();
56    setHeight();
57  })
58  .on('resize', () => {
59    setHeight();
60  })
61  .on('orientationchange', () => {
62    setHeight(true);
63  });
64
65const Default = {
66  mq() {
67    let breakpoint = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 960;
68    return matchMedia('(min-width:'.concat(breakpoint, 'px)')).matches;
69  },
70  hov() {
71    return matchMedia('(hover: hover) and (pointer: fine)').matches;
72  },
73  land() {
74    return matchMedia('(orientation: landscape)').matches;
75  },
76  getParameterByName(name) {
77    let url = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : location.href;
78    name = name.replace(/[\[\]]/g, '\\$&');
79    let regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)'),
80      results = regex.exec(url);
81    if (!results) return null;
82    if (!results[2]) return '';
83    return decodeURIComponent(results[2].replace(/\+/g, ' '));
84  },
85  userAgent() {
86    const ua = navigator.userAgent;
87    if (ua.indexOf('iPhone') > 0 || (ua.indexOf('Android') > 0 && ua.indexOf('Mobile') > 0)) {
88      this.ua = 'sp';
89      if (ua.indexOf('iPhone') > 0) this.os = 'iOS';
90      if (ua.indexOf('Android') > 0) this.os = 'android';
91    } else if (ua.indexOf('iPad') > 0 || ua.indexOf('Android') > 0) {
92      this.ua = 'sp';
93      if (ua.indexOf('iPad') > 0) this.os = 'iOS';
94      if (ua.indexOf('Android') > 0) this.os = 'android';
95    } else {
96      this.ua = 'pc';
97      this.os = 'pc';
98    }
99    if (ua.toLowerCase().indexOf('windows nt') !== -1) {
100      this.os = 'win';
101    } else if (this.ua === 'pc' && ua.toLowerCase().indexOf('mac os x') !== -1) {
102      this.os = 'mac';
103    }
104
105    if (ua.toLowerCase().indexOf('msie') !== -1 || ua.toLowerCase().indexOf('trident') !== -1) {
106      this.browser = 'ie';
107    } else if (ua.toLowerCase().indexOf('edge') !== -1) {
108      this.browser = 'html_edge';
109    } else if (ua.toLowerCase().indexOf('edg') !== -1) {
110      this.browser = 'edge';
111    } else if (ua.toLowerCase().indexOf('chrome') !== -1) {
112      this.browser = 'chrome';
113    } else if (ua.toLowerCase().indexOf('safari') !== -1) {
114      this.browser = 'safari';
115    } else if (ua.toLowerCase().indexOf('firefox') !== -1) {
116      this.browser = 'firefox';
117    } else {
118      this.browser = 'other';
119    }
120    this.setUa();
121  },
122  zeroPadding(num) {
123    let length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;
124    return String(num).padStart(length, '0');
125  },
126  setUa() {
127    $html.attr('data-ua', this.ua || '');
128    $html.attr('data-os', this.os || '');
129    $html.attr('data-browser', this.browser || '');
130  },
131  init() {
132    this.userAgent();
133  },
134};
135Default.init();
136
137ReadyEvent.add(() => {
138  $body.addClass('is-ready');
139});
140
141LoadEvent.add(() => {
142  $body.addClass('is-load');
143});
144
145const url = {
146  getQuery() {
147    let url = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : location.search;
148    return URI.parseQuery(url);
149  },
150  getReferrer() {
151    if (new URI(document.referrer).origin() === new URI(location.href).origin()) {
152      return document.referrer;
153    } else {
154      return undefined;
155    }
156  },
157  getReferrerQuery() {
158    if (new URI(document.referrer).origin() === new URI(location.href).origin()) {
159      return URI.parseQuery(new URI(document.referrer).query());
160    } else {
161      return undefined;
162    }
163  },
164  removeQuery() {
165    let data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
166    let url = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : location.href;
167    return new URI(url).removeQuery(data);
168  },
169  setQuery() {
170    let data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
171    let fragment = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
172    let url = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : location.href;
173    const uri = new URI(url);
174    if (fragment) {
175      uri.search(data).fragment('');
176    } else {
177      uri.search(data);
178    }
179    return uri.toString();
180  },
181};

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.