UNPKG

mongoku

Version:

[![CI](https://github.com/huggingface/Mongoku/actions/workflows/ci.yml/badge.svg)](https://github.com/huggingface/Mongoku/actions/workflows/ci.yml)

321 lines (318 loc) 13.9 kB
import './async-DUoD1OpG.js'; import { e as escape_html, b as ensure_array_like, a as attr, d as derived, c as attr_class, f as clsx } from './root-otUAnOAR.js'; import { T as Tooltip } from './Tooltip-OVylvwfb.js'; function IconExternalLink($$renderer, $$props) { let { class: className = "w-4 h-4" } = $$props; $$renderer.push(`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"${attr_class(clsx(className))}><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path><polyline points="15 3 21 3 21 9"></polyline><line x1="10" x2="21" y1="14" y2="3"></line></svg>`); } function JsonValue_1($$renderer, $$props) { $$renderer.component(($$renderer2) => { const INDENT = " "; let { value, key, autoCollapse = false, collapsed = false, depth = 0, isKeyMapped, fetchMappedDocument, keyPath = "", mappings } = $$props; function getIndent(level) { return INDENT.repeat(level); } function isUrl(str) { return /^https?:\/\/[^\s]+$/.test(str); } let showTooltip = false; const currentKeyPath = derived(() => [keyPath, key].filter(Boolean).join(".")); function interpolateUrl(template, val) { const strValue = String(val); return template.replace(/\{value\}/g, strValue); } function handleTooltipMouseEnter() { } function handleTooltipMouseLeave() { showTooltip = false; } function getValueType(val) { if (val === null) { return "null"; } if (Array.isArray(val)) { return "array"; } switch (typeof val) { case "boolean": return "boolean"; case "number": return "number"; case "string": return "string"; case "object": switch (val.$type) { case "ObjectId": return "objectid"; case "Date": return "date"; case "RegExp": return "regexp"; case "Binary": return "binary"; default: return "object"; } default: return "unknown"; } } const valueType = derived(() => getValueType(value)); const hasMappings = derived(() => !!isKeyMapped && key === void 0 && isKeyMapped(currentKeyPath()) && value !== null && value !== void 0 && valueType() !== "array" && valueType() !== "object"); const hasCollectionMappings = derived(() => hasMappings() && !!fetchMappedDocument); const urlMappings = derived(() => { if (!hasMappings() || !mappings || !mappings[currentKeyPath()]) { return []; } const pathMappings = mappings[currentKeyPath()]; const mappingsArray = Array.isArray(pathMappings) ? pathMappings : [pathMappings]; return mappingsArray.filter((m) => { if ("type" in m) { return m.type === "url"; } return false; }); }); const hasUrlMappings = derived(() => urlMappings().length > 0); let isCollapsible = derived(() => valueType() === "array" || valueType() === "object"); let isEmpty = derived(() => valueType() === "array" && value.length === 0 || valueType() === "object" && Object.keys(value).length === 0); let innerCollapsed = autoCollapse; if (key !== void 0) { $$renderer2.push("<!--[0-->"); if (isCollapsible() && !isEmpty()) { $$renderer2.push("<!--[0-->"); if (innerCollapsed) { $$renderer2.push("<!--[0-->"); $$renderer2.push(`<span class="prop collapsible collapsed svelte-1c374kz" role="button" tabindex="0">${escape_html(getIndent(depth + 1))}<span class="collapse-arrow svelte-1c374kz"></span><var class="svelte-1c374kz">${escape_html(key)}</var>: `); JsonValue_1($$renderer2, { value, autoCollapse, collapsed: innerCollapsed, depth: depth + 1, isKeyMapped, fetchMappedDocument, keyPath: currentKeyPath(), mappings }); $$renderer2.push(`<!----></span>`); } else { $$renderer2.push("<!--[-1-->"); $$renderer2.push(`<span class="prop collapsible svelte-1c374kz">${escape_html(getIndent(depth + 1))}<span class="collapse-arrow arrow-only svelte-1c374kz" role="button" tabindex="0"></span><var class="svelte-1c374kz">${escape_html(key)}</var>: `); JsonValue_1($$renderer2, { value, autoCollapse, collapsed: innerCollapsed, depth: depth + 1, isKeyMapped, fetchMappedDocument, keyPath: currentKeyPath(), mappings }); $$renderer2.push(`<!----></span>`); } $$renderer2.push(`<!--]-->`); } else { $$renderer2.push("<!--[-1-->"); $$renderer2.push(`<span class="prop svelte-1c374kz">${escape_html(getIndent(depth + 1))}<var class="svelte-1c374kz">${escape_html(key)}</var>: `); JsonValue_1($$renderer2, { value, autoCollapse, collapsed: innerCollapsed, depth: depth + 1, isKeyMapped, fetchMappedDocument, keyPath: currentKeyPath(), mappings }); $$renderer2.push(`<!----></span>`); } $$renderer2.push(`<!--]-->`); } else { let valueSnippet = function($$renderer3) { if (valueType() === "string") { $$renderer3.push("<!--[0-->"); $$renderer3.push(`<span class="value quoted svelte-1c374kz">"<span${attr_class("string svelte-1c374kz", void 0, { "url": isUrl(value) })}>`); if (isUrl(value)) { $$renderer3.push("<!--[0-->"); $$renderer3.push(`<a${attr("href", value)} target="_blank" class="svelte-1c374kz">${escape_html(value)}</a>`); } else { $$renderer3.push("<!--[-1-->"); $$renderer3.push(`${escape_html(value)}`); } $$renderer3.push(`<!--]--></span>"</span>`); } else if (valueType() === "number") { $$renderer3.push("<!--[1-->"); $$renderer3.push(`<span class="value number svelte-1c374kz">${escape_html(value)}</span>`); } else if (valueType() === "boolean") { $$renderer3.push("<!--[2-->"); $$renderer3.push(`<span class="value boolean svelte-1c374kz">${escape_html(value)}</span>`); } else if (valueType() === "null") { $$renderer3.push("<!--[3-->"); $$renderer3.push(`<span class="value null svelte-1c374kz">null</span>`); } else if (valueType() === "objectid") { $$renderer3.push("<!--[4-->"); $$renderer3.push(`<span class="call function svelte-1c374kz">ObjectId("<span class="string">${escape_html(value.$value)}</span>")</span>`); } else if (valueType() === "date") { $$renderer3.push("<!--[5-->"); $$renderer3.push(`<span class="call function svelte-1c374kz">Date("<span class="string">${escape_html(value.$value)}</span>")</span>`); } else if (valueType() === "regexp") { $$renderer3.push("<!--[6-->"); $$renderer3.push(`<span class="value regexp svelte-1c374kz">/${escape_html(value.$value.$pattern)}/${escape_html(value.$value.$flags)}</span>`); } else if (valueType() === "binary") { $$renderer3.push("<!--[7-->"); $$renderer3.push(`<span class="call function svelte-1c374kz">BinData(<span class="number">${escape_html(value.$subType)}</span>, "<span class="string">${escape_html(value.$value.length > 40 ? value.$value.substring(0, 40) + "..." : value.$value)}</span>")</span>`); } else if (valueType() === "array") { $$renderer3.push("<!--[8-->"); if (isEmpty()) { $$renderer3.push("<!--[0-->"); $$renderer3.push(`<span class="value array svelte-1c374kz">[]</span>`); } else { $$renderer3.push("<!--[-1-->"); $$renderer3.push(`<span class="value array svelte-1c374kz">[`); if (!collapsed) { $$renderer3.push("<!--[0-->"); $$renderer3.push(`<span class="collapsible-content svelte-1c374kz"><!--[-->`); const each_array = ensure_array_like(value); for (let i = 0, $$length = each_array.length; i < $$length; i++) { let item = each_array[i]; $$renderer3.push(`<br/>${escape_html(getIndent(depth + 1))}`); JsonValue_1($$renderer3, { value: item, autoCollapse, collapsed: false, depth: depth + 1, keyPath: currentKeyPath(), isKeyMapped, fetchMappedDocument, mappings }); $$renderer3.push(`<!---->`); } $$renderer3.push(`<!--]--> <br/>${escape_html(getIndent(depth))}</span>`); } else { $$renderer3.push("<!--[-1-->"); $$renderer3.push(`<span class="collapsed-summary svelte-1c374kz">... ${escape_html(value.length)} item${escape_html(value.length !== 1 ? "s" : "")}</span>`); } $$renderer3.push(`<!--]-->]</span>`); } $$renderer3.push(`<!--]-->`); } else if (valueType() === "object") { $$renderer3.push("<!--[9-->"); if (isEmpty()) { $$renderer3.push("<!--[0-->"); $$renderer3.push(`<span class="value object svelte-1c374kz">{}</span>`); } else { $$renderer3.push("<!--[-1-->"); $$renderer3.push(`<span class="value object svelte-1c374kz">{`); if (!collapsed) { $$renderer3.push("<!--[0-->"); $$renderer3.push(`<span class="collapsible-content svelte-1c374kz"><!--[-->`); const each_array_1 = ensure_array_like(Object.keys(value)); for (let $$index_1 = 0, $$length = each_array_1.length; $$index_1 < $$length; $$index_1++) { let objKey = each_array_1[$$index_1]; JsonValue_1($$renderer3, { value: value[objKey], key: objKey, autoCollapse, collapsed: autoCollapse, depth, isKeyMapped, fetchMappedDocument, keyPath: currentKeyPath(), mappings }); } $$renderer3.push(`<!--]--></span>`); } else { $$renderer3.push("<!--[-1-->"); } $$renderer3.push(`<!--]-->`); if (collapsed) { $$renderer3.push("<!--[0-->"); $$renderer3.push(`<span class="collapsed-summary svelte-1c374kz">... ${escape_html(Object.keys(value).length)} key${escape_html(Object.keys(value).length !== 1 ? "s" : "")}</span>`); } else { $$renderer3.push("<!--[-1-->"); $$renderer3.push(`${escape_html(getIndent(depth))}`); } $$renderer3.push(`<!--]-->}</span>`); } $$renderer3.push(`<!--]-->`); } else { $$renderer3.push("<!--[-1-->"); $$renderer3.push(`<span>${escape_html(String(value))}</span>`); } $$renderer3.push(`<!--]-->`); }; $$renderer2.push("<!--[-1-->"); if (hasUrlMappings()) { $$renderer2.push("<!--[0-->"); $$renderer2.push(`<span class="string mapped url svelte-1c374kz"><!--[-->`); const each_array_2 = ensure_array_like(urlMappings()); for (let i = 0, $$length = each_array_2.length; i < $$length; i++) { let urlMapping = each_array_2[i]; if (i > 0) { $$renderer2.push("<!--[0-->"); $$renderer2.push(`|`); } else { $$renderer2.push("<!--[-1-->"); } $$renderer2.push(`<!--]--> <a${attr("href", interpolateUrl(urlMapping.template, value))} target="_blank" class="inline-flex items-center gap-1 svelte-1c374kz">`); valueSnippet?.($$renderer2); $$renderer2.push(`<!----> `); IconExternalLink($$renderer2, { class: "w-3 h-3 inline-block opacity-70" }); $$renderer2.push(`<!----></a>`); } $$renderer2.push(`<!--]--></span>`); } else if (hasCollectionMappings()) { $$renderer2.push("<!--[1-->"); { let trigger = function($$renderer3) { $$renderer3.push(`<span${attr_class("string mapped svelte-1c374kz", void 0, { "url": isUrl(value) })} role="button" tabindex="0">`); { $$renderer3.push("<!--[-1-->"); valueSnippet?.($$renderer3); } $$renderer3.push(`<!--]--></span>`); }, content = function($$renderer3) { { $$renderer3.push("<!--[-1-->"); } $$renderer3.push(`<!--]-->`); }; Tooltip($$renderer2, { show: showTooltip, tooltipClass: "max-w-[600px] max-h-[400px] overflow-auto whitespace-pre-wrap", onTooltipMouseEnter: handleTooltipMouseEnter, onTooltipMouseLeave: handleTooltipMouseLeave, trigger, content }); } } else { $$renderer2.push("<!--[-1-->"); valueSnippet?.($$renderer2); } $$renderer2.push(`<!--]-->`); if (depth !== 0) { $$renderer2.push("<!--[0-->"); $$renderer2.push(`,`); } else { $$renderer2.push("<!--[-1-->"); } $$renderer2.push(`<!--]-->`); } $$renderer2.push(`<!--]-->`); }); } export { JsonValue_1 as J }; //# sourceMappingURL=JsonValue-CGVfzyTL.js.map