Files
Andrei 58f8093689 Rebrand from 'Redirect Intelligence v2' to 'URL Tracker Tool V2' throughout UI
- Updated all component headers and documentation
- Changed navbar and footer branding
- Updated homepage hero badge
- Modified page title in index.html
- Simplified footer text to 'Built with ❤️'
- Consistent V2 capitalization across all references
2025-08-19 19:12:23 +00:00

369 lines
11 KiB
JavaScript

"use strict";
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
// src/index.ts
var src_exports = {};
__export(src_exports, {
MAX_Z_INDEX: () => MAX_Z_INDEX,
ariaAttr: () => ariaAttr,
contains: () => contains,
createScope: () => createScope,
dataAttr: () => dataAttr,
getActiveElement: () => getActiveElement,
getBeforeInputValue: () => getBeforeInputValue,
getByText: () => getByText,
getByTypeahead: () => getByTypeahead,
getComputedStyle: () => getComputedStyle,
getDocument: () => getDocument2,
getEventTarget: () => getEventTarget,
getParent: () => getParent,
getPlatform: () => getPlatform,
getScrollParent: () => getScrollParent,
getScrollParents: () => getScrollParents,
getWindow: () => getWindow,
indexOfId: () => indexOfId,
isApple: () => isApple,
isDom: () => isDom,
isEditableElement: () => isEditableElement,
isFirefox: () => isFirefox,
isHTMLElement: () => isHTMLElement,
isIPhone: () => isIPhone,
isIos: () => isIos,
isMac: () => isMac,
isSafari: () => isSafari,
isSelfEvent: () => isSelfEvent,
isTouchDevice: () => isTouchDevice,
itemById: () => itemById,
nextById: () => nextById,
nextTick: () => nextTick,
prevById: () => prevById,
query: () => query,
queryAll: () => queryAll,
raf: () => raf
});
module.exports = __toCommonJS(src_exports);
// src/attrs.ts
var dataAttr = (guard) => {
return guard ? "" : void 0;
};
var ariaAttr = (guard) => {
return guard ? "true" : void 0;
};
// src/is-html-element.ts
var isHTMLElement = (v) => typeof v === "object" && v?.nodeType === Node.ELEMENT_NODE && typeof v?.nodeName === "string";
// src/contains.ts
function contains(parent, child) {
if (!parent || !child)
return false;
if (!isHTMLElement(parent) || !isHTMLElement(child))
return false;
return parent === child || parent.contains(child);
}
var isSelfEvent = (event) => contains(event.currentTarget, event.target);
// src/create-scope.ts
var getDocument = (node) => {
if (node.nodeType === Node.DOCUMENT_NODE)
return node;
return node.ownerDocument ?? document;
};
function createScope(methods) {
const screen = {
getRootNode: (ctx) => ctx.getRootNode?.() ?? document,
getDoc: (ctx) => getDocument(screen.getRootNode(ctx)),
getWin: (ctx) => screen.getDoc(ctx).defaultView ?? window,
getActiveElement: (ctx) => screen.getDoc(ctx).activeElement,
isActiveElement: (ctx, elem) => elem === screen.getActiveElement(ctx),
focus(ctx, elem) {
if (elem == null)
return;
if (!screen.isActiveElement(ctx, elem))
elem.focus({ preventScroll: true });
},
getById: (ctx, id) => screen.getRootNode(ctx).getElementById(id),
setValue: (elem, value) => {
if (elem == null || value == null)
return;
const valueAsString = value.toString();
if (elem.value === valueAsString)
return;
elem.value = value.toString();
}
};
return { ...screen, ...methods };
}
// src/is-document.ts
var isDocument = (el) => el.nodeType === Node.DOCUMENT_NODE;
// src/is-shadow-root.ts
var isNode = (el) => el.nodeType !== void 0;
var isShadowRoot = (el) => el && isNode(el) && el.nodeType === Node.DOCUMENT_FRAGMENT_NODE && "host" in el;
// src/env.ts
function getDocument2(el) {
if (isDocument(el))
return el;
return el?.ownerDocument ?? document;
}
function getWindow(el) {
if (isShadowRoot(el))
return getWindow(el.host);
if (isDocument(el))
return el.defaultView ?? window;
if (isHTMLElement(el))
return el.ownerDocument?.defaultView ?? window;
return window;
}
// src/get-active-element.ts
function getActiveElement(el) {
let activeElement = el.ownerDocument.activeElement;
while (activeElement?.shadowRoot) {
const el2 = activeElement.shadowRoot.activeElement;
if (el2 === activeElement)
break;
else
activeElement = el2;
}
return activeElement;
}
// src/get-before-input-value.ts
function getBeforeInputValue(event) {
const { selectionStart, selectionEnd, value } = event.currentTarget;
return value.slice(0, selectionStart) + event.data + value.slice(selectionEnd);
}
// src/get-by-id.ts
function itemById(v, id) {
return v.find((node) => node.id === id);
}
function indexOfId(v, id) {
const item = itemById(v, id);
return item ? v.indexOf(item) : -1;
}
function nextById(v, id, loop = true) {
let idx = indexOfId(v, id);
idx = loop ? (idx + 1) % v.length : Math.min(idx + 1, v.length - 1);
return v[idx];
}
function prevById(v, id, loop = true) {
let idx = indexOfId(v, id);
if (idx === -1)
return loop ? v[v.length - 1] : null;
idx = loop ? (idx - 1 + v.length) % v.length : Math.max(0, idx - 1);
return v[idx];
}
// src/get-by-text.ts
var getValueText = (item) => item.dataset.valuetext ?? item.textContent ?? "";
var match = (valueText, query2) => valueText.trim().toLowerCase().startsWith(query2.toLowerCase());
var wrap = (v, idx) => {
return v.map((_, index) => v[(Math.max(idx, 0) + index) % v.length]);
};
function getByText(v, text, currentId) {
const index = currentId ? indexOfId(v, currentId) : -1;
let items = currentId ? wrap(v, index) : v;
const isSingleKey = text.length === 1;
if (isSingleKey) {
items = items.filter((item) => item.id !== currentId);
}
return items.find((item) => match(getValueText(item), text));
}
// src/get-by-typeahead.ts
function getByTypeaheadImpl(_items, options) {
const { state, activeId, key, timeout = 350 } = options;
const search = state.keysSoFar + key;
const isRepeated = search.length > 1 && Array.from(search).every((char) => char === search[0]);
const query2 = isRepeated ? search[0] : search;
let items = _items.slice();
const next = getByText(items, query2, activeId);
function cleanup() {
clearTimeout(state.timer);
state.timer = -1;
}
function update(value) {
state.keysSoFar = value;
cleanup();
if (value !== "") {
state.timer = +setTimeout(() => {
update("");
cleanup();
}, timeout);
}
}
update(search);
return next;
}
var getByTypeahead = /* @__PURE__ */ Object.assign(getByTypeaheadImpl, {
defaultOptions: { keysSoFar: "", timer: -1 },
isValidEvent: isValidTypeaheadEvent
});
function isValidTypeaheadEvent(event) {
return event.key.length === 1 && !event.ctrlKey && !event.metaKey;
}
// src/get-computed-style.ts
var styleCache = /* @__PURE__ */ new WeakMap();
function getComputedStyle(el) {
if (!styleCache.has(el)) {
const win = el.ownerDocument.defaultView || window;
styleCache.set(el, win.getComputedStyle(el));
}
return styleCache.get(el);
}
// src/get-event-target.ts
function getEventTarget(event) {
return event.composedPath?.()[0] ?? event.target;
}
// src/get-scroll-parent.ts
function isScrollParent(el) {
const win = el.ownerDocument.defaultView || window;
const { overflow, overflowX, overflowY } = win.getComputedStyle(el);
return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);
}
function getParent(el) {
if (el.localName === "html")
return el;
return el.assignedSlot || el.parentElement || el.ownerDocument.documentElement;
}
function getScrollParent(el) {
if (["html", "body", "#document"].includes(el.localName)) {
return el.ownerDocument.body;
}
if (isHTMLElement(el) && isScrollParent(el)) {
return el;
}
return getScrollParent(getParent(el));
}
function getScrollParents(el, list = []) {
const parent = getScrollParent(el);
const isBody = parent === el.ownerDocument.body;
const win = parent.ownerDocument.defaultView || window;
const target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(parent) ? parent : []) : parent;
const parents = list.concat(target);
return isBody ? parents : parents.concat(getScrollParents(getParent(target)));
}
// src/is-editable-element.ts
function isEditableElement(el) {
if (el == null || !isHTMLElement(el)) {
return false;
}
try {
const win = el.ownerDocument.defaultView || window;
return el instanceof win.HTMLInputElement && el.selectionStart != null || /(textarea|select)/.test(el.localName) || el.isContentEditable;
} catch {
return false;
}
}
// src/platform.ts
var isDom = () => typeof document !== "undefined";
function getPlatform() {
const agent = navigator.userAgentData;
return agent?.platform ?? navigator.platform;
}
var pt = (v) => isDom() && v.test(getPlatform());
var ua = (v) => isDom() && v.test(navigator.userAgent);
var vn = (v) => isDom() && v.test(navigator.vendor);
var isTouchDevice = () => isDom() && !!navigator.maxTouchPoints;
var isMac = () => pt(/^Mac/) && !isTouchDevice();
var isIPhone = () => pt(/^iPhone/);
var isSafari = () => isApple() && vn(/apple/i);
var isFirefox = () => ua(/firefox\//i);
var isApple = () => pt(/mac|iphone|ipad|ipod/i);
var isIos = () => isApple() && !isMac();
// src/query.ts
function queryAll(root, selector) {
return Array.from(root?.querySelectorAll(selector) ?? []);
}
function query(root, selector) {
return root?.querySelector(selector);
}
// src/raf.ts
function nextTick(fn) {
const set = /* @__PURE__ */ new Set();
function raf2(fn2) {
const id = globalThis.requestAnimationFrame(fn2);
set.add(() => globalThis.cancelAnimationFrame(id));
}
raf2(() => raf2(fn));
return function cleanup() {
set.forEach((fn2) => fn2());
};
}
function raf(fn) {
const id = globalThis.requestAnimationFrame(fn);
return () => {
globalThis.cancelAnimationFrame(id);
};
}
// src/index.ts
var MAX_Z_INDEX = 2147483647;
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
MAX_Z_INDEX,
ariaAttr,
contains,
createScope,
dataAttr,
getActiveElement,
getBeforeInputValue,
getByText,
getByTypeahead,
getComputedStyle,
getDocument,
getEventTarget,
getParent,
getPlatform,
getScrollParent,
getScrollParents,
getWindow,
indexOfId,
isApple,
isDom,
isEditableElement,
isFirefox,
isHTMLElement,
isIPhone,
isIos,
isMac,
isSafari,
isSelfEvent,
isTouchDevice,
itemById,
nextById,
nextTick,
prevById,
query,
queryAll,
raf
});
//# sourceMappingURL=index.js.map