@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
JavaScript
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