UNPKG

@kit-data-manager/react-search-component

Version:

All-in-one component for rendering an elastic search UI for searching anything. Built-in support for visualizing related items in a graph and resolving unique identifiers.

96 lines 2.2 kB
import { clsx } from "clsx"; import { twMerge } from "tailwind-merge"; export function cn(...inputs) { return twMerge(clsx(inputs)); } export function fieldOptionsToObject(array) { const obj = {}; for (const key of array) { if (typeof key === "string") { obj[key] = {}; } else { obj[key.field] = key; } } return obj; } export function fieldOptionsToArray(array) { const arr = []; for (const key of array) { if (typeof key === "string") { arr.push(key); } else { arr.push(key.field); } } return arr; } export function prettyPrintURL(url) { if (URL.canParse(url)) { const parsed = new URL(url); const path = parsed.pathname; return parsed.hostname.replace("www.", "") + (path === "/" ? "" : path); } else return url; } export function autoUnwrap(item) { if (item === undefined || item === null) { return undefined; } else if (typeof item === "object") { if ("raw" in item) { return item.raw; } else return JSON.stringify(item); } else return item; } export function autoUnwrapArray(item) { if (!item) { return []; } if (Array.isArray(item)) { return item; } else if (typeof item === "object" && "raw" in item && Array.isArray(item.raw)) { return item.raw; } else { return [JSON.stringify(item)]; } } export function toArray(element) { if (Array.isArray(element)) return element; else return [element]; } export function parseStringValueToNumber(value) { if (value.includes(".")) { return Number.parseFloat(value); } return Number.parseInt(value); } export function injectMeta(obj, index) { obj._meta = { rawHit: { _index: index } }; } export function filterValueToString(fv) { if (Array.isArray(fv)) { return fv.join(","); } else if (typeof fv === "object") { return fv.name; } else return fv + ""; } //# sourceMappingURL=utils.js.map