Files
Stackq/build/server/chunks/_page.svelte-DHelfZB3.js

168 lines
8.6 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import { x as head, t as escape_html, o as attributes, B as clsx, d as bind_props, q as attr, y as ensure_array_like, z as stringify } from './index2-C1QMSCIx.js';
import './button-rjWrqfIB.js';
import { C as Card, a as Card_content } from './card-content-kqme4GTP.js';
import 'clsx';
import { c as cn } from './utils-B05Dmz_H.js';
import './root-DLMkITFa.js';
import './state.svelte-BAMO-hRC.js';
import PocketBase from 'pocketbase';
import './index-CoNVFdnx.js';
import 'tailwind-merge';
function Card_header($$renderer, $$props) {
$$renderer.component(($$renderer2) => {
let {
ref = null,
class: className,
children,
$$slots,
$$events,
...restProps
} = $$props;
$$renderer2.push(`<div${attributes({
"data-slot": "card-header",
class: clsx(cn("@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6", className)),
...restProps
})}>`);
children?.($$renderer2);
$$renderer2.push(`<!----></div>`);
bind_props($$props, { ref });
});
}
const POCKETBASE_URL = "https://pocketbase.ccllc.pro";
const POCKETBASE_BASE_URL = POCKETBASE_URL;
let _pb = null;
function getPb() {
if (typeof window === "undefined") {
throw new Error("PocketBase client is only available in the browser. Use load/actions for server data.");
}
if (!_pb) _pb = new PocketBase(POCKETBASE_URL);
return _pb;
}
new Proxy({}, {
get(_, prop) {
if (prop === "baseUrl") return POCKETBASE_BASE_URL;
return getPb()[prop];
}
});
function _page($$renderer, $$props) {
$$renderer.component(($$renderer2) => {
let { data } = $$props;
const item = data?.item;
data?.itemsForParent ?? [];
const PB_BASE = "https://pocketbase.ccllc.pro";
const COLLECTION = "Stackq_Items";
function imageUrl(i) {
if (!i?.Image) return null;
return `${PB_BASE}/api/files/${COLLECTION}/${i.id}/${i.Image}`;
}
function asList(val) {
if (val == null) return [];
return Array.isArray(val) ? val : [val];
}
function formatDate(iso) {
if (!iso) return "—";
try {
return new Date(iso).toLocaleDateString(void 0, { dateStyle: "short", timeStyle: "short" });
} catch {
return iso;
}
}
data?.form === "update" ? data?.error ?? null : null;
let $$settled = true;
let $$inner_renderer;
function $$render_inner($$renderer3) {
head("1r2vy7b", $$renderer3, ($$renderer4) => {
$$renderer4.title(($$renderer5) => {
$$renderer5.push(`<title>${escape_html(item?.Item ?? "Item")} Stackq</title>`);
});
});
if (item) {
$$renderer3.push("<!--[-->");
$$renderer3.push(`<main class="container mx-auto flex flex-col gap-4 px-4 py-6 sm:gap-6 sm:px-6 sm:py-8"><div class="flex flex-wrap items-center gap-2 sm:gap-4 min-w-0"><a href="/" class="text-muted-foreground hover:text-foreground shrink-0 text-sm" title="Back to main">Home</a> <a href="/items" class="text-muted-foreground hover:text-foreground shrink-0 text-sm" title="Back to items">Back to items</a> <h1 class="text-xl font-semibold truncate min-w-0 flex-1 sm:text-2xl">${escape_html(item.Item ?? "—")}</h1> `);
{
$$renderer3.push("<!--[!-->");
}
$$renderer3.push(`<!--]--></div> <div class="grid gap-6 md:grid-cols-2">`);
Card($$renderer3, {
children: ($$renderer4) => {
Card_header($$renderer4, {
children: ($$renderer5) => {
$$renderer5.push(`<h2 class="text-lg font-medium">Details</h2>`);
},
$$slots: { default: true }
});
$$renderer4.push(`<!----> `);
Card_content($$renderer4, {
class: "space-y-4",
children: ($$renderer5) => {
if (imageUrl(item)) {
$$renderer5.push("<!--[-->");
$$renderer5.push(`<div><a${attr("href", imageUrl(item))} target="_blank" rel="noopener noreferrer" class="block overflow-hidden rounded-lg border"><img${attr("src", imageUrl(item))} alt="" class="max-h-64 w-full object-contain"/></a></div>`);
} else {
$$renderer5.push("<!--[!-->");
}
$$renderer5.push(`<!--]--> <dl class="grid gap-2 text-sm"><div class="flex gap-2"><dt class="text-muted-foreground w-24 shrink-0">SKU</dt> <dd class="font-mono">${escape_html(item.SKU ?? "—")}</dd></div> <div class="flex gap-2"><dt class="text-muted-foreground w-24 shrink-0">Description</dt> <dd>${escape_html(item.Description ?? "—")}</dd></div> <div class="flex gap-2"><dt class="text-muted-foreground w-24 shrink-0">UOM</dt> <dd>${escape_html(item.UOM ?? "—")}</dd></div> <div class="flex gap-2"><dt class="text-muted-foreground w-24 shrink-0">Cost</dt> <dd>${escape_html(item.Cost != null ? Number(item.Cost).toLocaleString() : "—")}</dd></div> <div class="flex gap-2"><dt class="text-muted-foreground w-24 shrink-0">Vendor</dt> <dd>${escape_html(item.Vendor ?? "—")}</dd></div> <div class="flex gap-2"><dt class="text-muted-foreground w-24 shrink-0">Category</dt> <dd><!--[-->`);
const each_array = ensure_array_like(asList(item.Catagory));
for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {
let cat = each_array[$$index];
$$renderer5.push(`<span class="mr-1 rounded bg-muted px-1.5 py-0.5 text-xs">${escape_html(cat)}</span>`);
}
$$renderer5.push(`<!--]--> `);
if (asList(item.Catagory).length === 0) {
$$renderer5.push("<!--[-->");
$$renderer5.push(``);
} else {
$$renderer5.push("<!--[!-->");
}
$$renderer5.push(`<!--]--></dd></div> <div class="flex gap-2"><dt class="text-muted-foreground w-24 shrink-0">Sub-category</dt> <dd><!--[-->`);
const each_array_1 = ensure_array_like(asList(item.Sub_Catagory));
for (let $$index_1 = 0, $$length = each_array_1.length; $$index_1 < $$length; $$index_1++) {
let sub = each_array_1[$$index_1];
$$renderer5.push(`<span class="mr-1 rounded border px-1.5 py-0.5 text-xs">${escape_html(sub)}</span>`);
}
$$renderer5.push(`<!--]--> `);
if (asList(item.Sub_Catagory).length === 0) {
$$renderer5.push("<!--[-->");
$$renderer5.push(``);
} else {
$$renderer5.push("<!--[!-->");
}
$$renderer5.push(`<!--]--></dd></div> <div class="flex gap-2"><dt class="text-muted-foreground w-24 shrink-0">Has Parent</dt> <dd>${escape_html(item.Has_Parent ? "Yes" : "No")}</dd></div> `);
if (item.Has_Parent && item.expand?.Parent) {
$$renderer5.push("<!--[-->");
$$renderer5.push(`<div class="flex gap-2"><dt class="text-muted-foreground w-24 shrink-0">Parent</dt> <dd><a${attr("href", `/items/${stringify(item.Parent)}`)} class="text-primary hover:underline">${escape_html(item.expand.Parent.Item ?? item.expand.Parent.SKU ?? item.Parent)}</a></dd></div>`);
} else {
$$renderer5.push("<!--[!-->");
}
$$renderer5.push(`<!--]--> <div class="flex gap-2"><dt class="text-muted-foreground w-24 shrink-0">Stock</dt> <dd>${escape_html(item.Stock ? "Yes" : "No")}</dd></div> <div class="flex gap-2"><dt class="text-muted-foreground w-24 shrink-0">Created</dt> <dd>${escape_html(formatDate(item.created))}</dd></div> <div class="flex gap-2"><dt class="text-muted-foreground w-24 shrink-0">Updated</dt> <dd>${escape_html(formatDate(item.updated))}</dd></div></dl>`);
},
$$slots: { default: true }
});
$$renderer4.push(`<!---->`);
},
$$slots: { default: true }
});
$$renderer3.push(`<!----></div></main> `);
{
$$renderer3.push("<!--[!-->");
}
$$renderer3.push(`<!--]-->`);
} else {
$$renderer3.push("<!--[!-->");
$$renderer3.push(`<main class="container mx-auto py-8"><p class="text-muted-foreground">Item not found.</p></main>`);
}
$$renderer3.push(`<!--]-->`);
}
do {
$$settled = true;
$$inner_renderer = $$renderer2.copy();
$$render_inner($$inner_renderer);
} while (!$$settled);
$$renderer2.subsume($$inner_renderer);
});
}
export { _page as default };
//# sourceMappingURL=_page.svelte-DHelfZB3.js.map