PageSourceSearch

https://www.febelink.com/chunk-2UPAZKIA.js

js febelink.com collected 2026-10-02 00:33:49 UTC 10,041 bytes, 293 lines download raw bytes

1import {
2  Host,
3  getAssetPath,
4  getElement,
5  h,
6  registerInstance
7} from "./chunk-2VN5LR3O.js";
8import "./chunk-QQUUYUXS.js";
9
vendor: 2,630 bytes, lines 10-112
10// node_modules/ionicons/dist/esm/utils-2c56d1c8.js
11var CACHED_MAP;
12var getIconMap = () => {
13  if (typeof window === "undefined") {
14    return /* @__PURE__ */ new Map();
15  } else {
16    if (!CACHED_MAP) {
17      const win = window;
18      win.Ionicons = win.Ionicons || {};
19      CACHED_MAP = win.Ionicons.map = win.Ionicons.map || /* @__PURE__ */ new Map();
20    }
21    return CACHED_MAP;
22  }
23};
24var getUrl = (i) => {
25  let url = getSrc(i.src);
26  if (url) {
27    return url;
28  }
29  url = getName(i.name, i.icon, i.mode, i.ios, i.md);
30  if (url) {
31    return getNamedUrl(url, i);
32  }
33  if (i.icon) {
34    url = getSrc(i.icon);
35    if (url) {
36      return url;
37    }
38    url = getSrc(i.icon[i.mode]);
39    if (url) {
40      return url;
41    }
42  }
43  return null;
44};
45var getNamedUrl = (iconName, iconEl) => {
46  const url = getIconMap().get(iconName);
47  if (url) {
48    return url;
49  }
50  try {
51    return getAssetPath(`svg/${iconName}.svg`);
52  } catch (e) {
53    console.warn(`[Ionicons Warning]: Could not load icon with name "${iconName}". Ensure that the icon is registered using addIcons or that the icon SVG data is passed directly to the icon component.`, iconEl);
54  }
55};
56var getName = (iconName, icon, mode, ios, md) => {
57  mode = (mode && toLower(mode)) === "ios" ? "ios" : "md";
58  if (ios && mode === "ios") {
59    iconName = toLower(ios);
60  } else if (md && mode === "md") {
61    iconName = toLower(md);
62  } else {
63    if (!iconName && icon && !isSrc(icon)) {
64      iconName = icon;
65    }
66    if (isStr(iconName)) {
67      iconName = toLower(iconName);
68    }
69  }
70  if (!isStr(iconName) || iconName.trim() === "") {
71    return null;
72  }
73  const invalidChars = iconName.replace(/[a-z]|-|\d/gi, "");
74  if (invalidChars !== "") {
75    return null;
76  }
77  return iconName;
78};
79var getSrc = (src) => {
80  if (isStr(src)) {
81    src = src.trim();
82    if (isSrc(src)) {
83      return src;
84    }
85  }
86  return null;
87};
88var isSrc = (str) => str.length > 0 && /(\/|\.)/.test(str);
89var isStr = (val) => typeof val === "string";
90var toLower = (val) => val.toLowerCase();
91var inheritAttributes = (el, attributes = []) => {
92  const attributeObject = {};
93  attributes.forEach((attr) => {
94    if (el.hasAttribute(attr)) {
95      const value = el.getAttribute(attr);
96      if (value !== null) {
97        attributeObject[attr] = el.getAttribute(attr);
98      }
99      el.removeAttribute(attr);
100    }
101  });
102  return attributeObject;
103};
104var isRTL = (hostEl) => {
105  if (hostEl) {
106    if (hostEl.dir !== "") {
107      return hostEl.dir.toLowerCase() === "rtl";
108    }
109  }
110  return (document === null || document === void 0 ? void 0 : document.dir.toLowerCase()) === "rtl";
111};
112
vendor: 7,279 bytes, lines 113-293
113// node_modules/ionicons/dist/esm/ion-icon.entry.js
114var validateContent = (svgContent) => {
115  const div = document.createElement("div");
116  div.innerHTML = svgContent;
117  for (let i = div.childNodes.length - 1; i >= 0; i--) {
118    if (div.childNodes[i].nodeName.toLowerCase() !== "svg") {
119      div.removeChild(div.childNodes[i]);
120    }
121  }
122  const svgElm = div.firstElementChild;
123  if (svgElm && svgElm.nodeName.toLowerCase() === "svg") {
124    const svgClass = svgElm.getAttribute("class") || "";
125    svgElm.setAttribute("class", (svgClass + " s-ion-icon").trim());
126    if (isValid(svgElm)) {
127      return div.innerHTML;
128    }
129  }
130  return "";
131};
132var isValid = (elm) => {
133  if (elm.nodeType === 1) {
134    if (elm.nodeName.toLowerCase() === "script") {
135      return false;
136    }
137    for (let i = 0; i < elm.attributes.length; i++) {
138      const name = elm.attributes[i].name;
139      if (isStr(name) && name.toLowerCase().indexOf("on") === 0) {
140        return false;
141      }
142    }
143    for (let i = 0; i < elm.childNodes.length; i++) {
144      if (!isValid(elm.childNodes[i])) {
145        return false;
146      }
147    }
148  }
149  return true;
150};
151var isSvgDataUrl = (url) => url.startsWith("data:image/svg+xml");
152var isEncodedDataUrl = (url) => url.indexOf(";utf8,") !== -1;
153var ioniconContent = /* @__PURE__ */ new Map();
154var requests = /* @__PURE__ */ new Map();
155var parser;
156var getSvgContent = (url, sanitize) => {
157  let req = requests.get(url);
158  if (!req) {
159    if (typeof fetch !== "undefined" && typeof document !== "undefined") {
160      if (isSvgDataUrl(url) && isEncodedDataUrl(url)) {
161        if (!parser) {
162          parser = new DOMParser();
163        }
164        const doc = parser.parseFromString(url, "text/html");
165        const svg = doc.querySelector("svg");
166        if (svg) {
167          ioniconContent.set(url, svg.outerHTML);
168        }
169        return Promise.resolve();
170      } else {
171        req = fetch(url).then((rsp) => {
172          if (rsp.ok) {
173            return rsp.text().then((svgContent) => {
174              if (svgContent && sanitize !== false) {
175                svgContent = validateContent(svgContent);
176              }
177              ioniconContent.set(url, svgContent || "");
178            });
179          }
180          ioniconContent.set(url, "");
181        });
182        requests.set(url, req);
183      }
184    } else {
185      ioniconContent.set(url, "");
186      return Promise.resolve();
187    }
188  }
189  return req;
190};
191var iconCss = ":host{display:inline-block;width:1em;height:1em;contain:strict;fill:currentColor;-webkit-box-sizing:content-box !important;box-sizing:content-box !important}:host .ionicon{stroke:currentColor}.ionicon-fill-none{fill:none}.ionicon-stroke-width{stroke-width:32px;stroke-width:var(--ionicon-stroke-width, 32px)}.icon-inner,.ionicon,svg{display:block;height:100%;width:100%}@supports (background: -webkit-named-image(i)){:host(.icon-rtl) .icon-inner{-webkit-transform:scaleX(-1);transform:scaleX(-1)}}@supports not selector(:dir(rtl)) and selector(:host-context([dir='rtl'])){:host(.icon-rtl) .icon-inner{-webkit-transform:scaleX(-1);transform:scaleX(-1)}}:host(.flip-rtl):host-context([dir='rtl']) .icon-inner{-webkit-transform:scaleX(-1);transform:scaleX(-1)}@supports selector(:dir(rtl)){:host(.flip-rtl:dir(rtl)) .icon-inner{-webkit-transform:scaleX(-1);transform:scaleX(-1)}:host(.flip-rtl:dir(ltr)) .icon-inner{-webkit-transform:scaleX(1);transform:scaleX(1)}}:host(.icon-small){font-size:1.125rem !important}:host(.icon-large){font-size:2rem !important}:host(.ion-color){color:var(--ion-color-base) !important}:host(.ion-color-primary){--ion-color-base:var(--ion-color-primary, #3880ff)}:host(.ion-color-secondary){--ion-color-base:var(--ion-color-secondary, #0cd1e8)}:host(.ion-color-tertiary){--ion-color-base:var(--ion-color-tertiary, #f4a942)}:host(.ion-color-success){--ion-color-base:var(--ion-color-success, #10dc60)}:host(.ion-color-warning){--ion-color-base:var(--ion-color-warning, #ffce00)}:host(.ion-color-danger){--ion-color-base:var(--ion-color-danger, #f14141)}:host(.ion-color-light){--ion-color-base:var(--ion-color-light, #f4f5f8)}:host(.ion-color-medium){--ion-color-base:var(--ion-color-medium, #989aa2)}:host(.ion-color-dark){--ion-color-base:var(--ion-color-dark, #222428)}";
192var Icon = class {
193  constructor(hostRef) {
194    registerInstance(this, hostRef);
195    this.iconName = null;
196    this.inheritedAttributes = {};
197    this.didLoadIcon = false;
198    this.svgContent = void 0;
199    this.isVisible = false;
200    this.mode = getIonMode();
201    this.color = void 0;
202    this.ios = void 0;
203    this.md = void 0;
204    this.flipRtl = void 0;
205    this.name = void 0;
206    this.src = void 0;
207    this.icon = void 0;
208    this.size = void 0;
209    this.lazy = false;
210    this.sanitize = true;
211  }
212  componentWillLoad() {
213    this.inheritedAttributes = inheritAttributes(this.el, ["aria-label"]);
214  }
215  connectedCallback() {
216    this.waitUntilVisible(this.el, "50px", () => {
217      this.isVisible = true;
218      this.loadIcon();
219    });
220  }
221  componentDidLoad() {
222    if (!this.didLoadIcon) {
223      this.loadIcon();
224    }
225  }
226  disconnectedCallback() {
227    if (this.io) {
228      this.io.disconnect();
229      this.io = void 0;
230    }
231  }
232  waitUntilVisible(el, rootMargin, cb) {
233    if (this.lazy && typeof window !== "undefined" && window.IntersectionObserver) {
234      const io = this.io = new window.IntersectionObserver((data) => {
235        if (data[0].isIntersecting) {
236          io.disconnect();
237          this.io = void 0;
238          cb();
239        }
240      }, { rootMargin });
241      io.observe(el);
242    } else {
243      cb();
244    }
245  }
246  loadIcon() {
247    if (this.isVisible) {
248      const url = getUrl(this);
249      if (url) {
250        if (ioniconContent.has(url)) {
251          this.svgContent = ioniconContent.get(url);
252        } else {
253          getSvgContent(url, this.sanitize).then(() => this.svgContent = ioniconContent.get(url));
254        }
255        this.didLoadIcon = true;
256      }
257    }
258    this.iconName = getName(this.name, this.icon, this.mode, this.ios, this.md);
259  }
260  render() {
261    const { flipRtl, iconName, inheritedAttributes, el } = this;
262    const mode = this.mode || "md";
263    const shouldAutoFlip = iconName ? (iconName.includes("arrow") || iconName.includes("chevron")) && flipRtl !== false : false;
264    const shouldBeFlippable = flipRtl || shouldAutoFlip;
265    return h(Host, Object.assign({ role: "img", class: Object.assign(Object.assign({ [mode]: true }, createColorClasses(this.color)), { [`icon-${this.size}`]: !!this.size, "flip-rtl": shouldBeFlippable, "icon-rtl": shouldBeFlippable && isRTL(el) }) }, inheritedAttributes), this.svgContent ? h("div", { class: "icon-inner", innerHTML: this.svgContent }) : h("div", { class: "icon-inner" }));
266  }
267  static get assetsDirs() {
268    return ["svg"];
269  }
270  get el() {
271    return getElement(this);
272  }
273  static get watchers() {
274    return {
275      "name": ["loadIcon"],
276      "src": ["loadIcon"],
277      "icon": ["loadIcon"],
278      "ios": ["loadIcon"],
279      "md": ["loadIcon"]
280    };
281  }
282};
283var getIonMode = () => typeof document !== "undefined" && document.documentElement.getAttribute("mode") || "md";
284var createColorClasses = (color) => {
285  return color ? {
286    "ion-color": true,
287    [`ion-color-${color}`]: true
288  } : null;
289};
290Icon.style = iconCss;
291export {
292  Icon as ion_icon
293};

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.