Files
service-finder/frontend_admin/.output/server/chunks/build/index-BE0BbUXA.mjs
2026-07-01 02:27:38 +00:00

167 lines
18 KiB
JavaScript

import { _ as __nuxt_component_0 } from './nuxt-link-1NBbHb-h.mjs';
import { defineComponent, ref, reactive, unref, withCtx, createTextVNode, toDisplayString, openBlock, createBlock, createVNode, useSSRContext } from 'vue';
import { ssrRenderAttrs, ssrInterpolate, ssrRenderAttr, ssrIncludeBooleanAttr, ssrLooseContain, ssrLooseEqual, ssrRenderClass, ssrRenderList, ssrRenderComponent, ssrRenderStyle } from 'vue/server-renderer';
import { u as useFormatter } from './useFormatter-hycy3urM.mjs';
import { _ as _export_sfc } from './_plugin-vue_export-helper-1tPrXgE0.mjs';
import '../nitro/nitro.mjs';
import 'node:http';
import 'node:https';
import 'node:events';
import 'node:buffer';
import 'node:fs';
import 'node:path';
import 'node:crypto';
import 'vue-router';
import 'node:url';
import './server.mjs';
import 'pinia';
import '../routes/renderer.mjs';
import 'vue-bundle-renderer/runtime';
import 'unhead/server';
import 'devalue';
import 'unhead/utils';
import 'unhead/plugins';
import './region-0mvXqaMM.mjs';
const _sfc_main = /* @__PURE__ */ defineComponent({
__name: "index",
__ssrInlineRender: true,
setup(__props) {
const { formatDate } = useFormatter();
const loading = ref(true);
const error = ref(false);
const providers = ref([]);
const stats = ref({
total: 0,
pending: 0,
approved: 0,
rejected: 0,
flagged: 0,
total_validations: 0,
staging_pending: 0
});
const toast = ref("");
const filters = reactive({
search: "",
status: "",
source: "",
sort_by: "created_at",
sort_order: "desc",
skip: 0,
limit: 50
});
function statusClass(status) {
const map = {
pending: "bg-amber-500/10 text-amber-400",
approved: "bg-emerald-500/10 text-emerald-400",
rejected: "bg-rose-500/10 text-rose-400",
flagged: "bg-purple-500/10 text-purple-400"
};
return map[status] || "bg-slate-500/10 text-slate-400";
}
function statusLabel(status) {
const map = {
pending: "F\xFCgg\u0151ben",
approved: "J\xF3v\xE1hagyott",
rejected: "Elutas\xEDtott",
flagged: "Megjel\xF6lt"
};
return map[status] || status;
}
return (_ctx, _push, _parent, _attrs) => {
const _component_NuxtLink = __nuxt_component_0;
_push(`<div${ssrRenderAttrs(_attrs)} data-v-c684092a><div class="mb-8" data-v-c684092a><h1 class="text-2xl font-bold text-white" data-v-c684092a>Szolg\xE1ltat\xF3k</h1><p class="text-slate-400 mt-1" data-v-c684092a>Szolg\xE1ltat\xF3k list\xE1z\xE1sa, keres\xE9se \xE9s moder\xE1l\xE1sa</p></div><div class="grid grid-cols-2 md:grid-cols-5 gap-4 mb-8" data-v-c684092a><div class="bg-slate-800 rounded-xl border border-slate-700 p-4" data-v-c684092a><p class="text-xs text-slate-400 uppercase tracking-wider" data-v-c684092a>\xD6sszes</p><p class="text-2xl font-bold text-white mt-1" data-v-c684092a>${ssrInterpolate(unref(stats).total)}</p></div><div class="bg-slate-800 rounded-xl border border-amber-500/30 p-4" data-v-c684092a><p class="text-xs text-slate-400 uppercase tracking-wider" data-v-c684092a>F\xFCgg\u0151ben</p><p class="text-2xl font-bold text-amber-400 mt-1" data-v-c684092a>${ssrInterpolate(unref(stats).pending)}</p></div><div class="bg-slate-800 rounded-xl border border-emerald-500/30 p-4" data-v-c684092a><p class="text-xs text-slate-400 uppercase tracking-wider" data-v-c684092a>J\xF3v\xE1hagyott</p><p class="text-2xl font-bold text-emerald-400 mt-1" data-v-c684092a>${ssrInterpolate(unref(stats).approved)}</p></div><div class="bg-slate-800 rounded-xl border border-rose-500/30 p-4" data-v-c684092a><p class="text-xs text-slate-400 uppercase tracking-wider" data-v-c684092a>Elutas\xEDtott</p><p class="text-2xl font-bold text-rose-400 mt-1" data-v-c684092a>${ssrInterpolate(unref(stats).rejected)}</p></div><div class="bg-slate-800 rounded-xl border border-purple-500/30 p-4" data-v-c684092a><p class="text-xs text-slate-400 uppercase tracking-wider" data-v-c684092a>Megjel\xF6lt</p><p class="text-2xl font-bold text-purple-400 mt-1" data-v-c684092a>${ssrInterpolate(unref(stats).flagged)}</p></div></div>`);
if (unref(loading)) {
_push(`<div class="flex items-center justify-center py-20" data-v-c684092a><div class="text-slate-400 flex items-center gap-3" data-v-c684092a><svg class="w-5 h-5 animate-spin" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-v-c684092a><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15" data-v-c684092a></path></svg><span data-v-c684092a>Szolg\xE1ltat\xF3k bet\xF6lt\xE9se...</span></div></div>`);
} else if (unref(error)) {
_push(`<div class="bg-rose-500/10 border border-rose-500/30 rounded-xl p-6 mb-8" data-v-c684092a><p class="text-rose-400" data-v-c684092a>Hiba t\xF6rt\xE9nt a szolg\xE1ltat\xF3k bet\xF6lt\xE9se k\xF6zben.</p><button class="mt-3 text-sm text-rose-300 hover:text-rose-200 underline" data-v-c684092a>\xDAjrapr\xF3b\xE1lkoz\xE1s</button></div>`);
} else {
_push(`<!--[--><div class="bg-slate-800 rounded-xl border border-slate-700 p-4 mb-6" data-v-c684092a><div class="flex flex-wrap items-center gap-4" data-v-c684092a><div class="flex-1 min-w-[200px]" data-v-c684092a><input${ssrRenderAttr("value", unref(filters).search)} type="text" placeholder="Keres\xE9s n\xE9v alapj\xE1n..." class="w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white placeholder-slate-500 focus:outline-none focus:ring-2 focus:ring-indigo-500/50 focus:border-indigo-500 text-sm" data-v-c684092a></div><select class="px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white focus:outline-none focus:ring-2 focus:ring-indigo-500/50 focus:border-indigo-500 text-sm" data-v-c684092a><option value="" data-v-c684092a${ssrIncludeBooleanAttr(Array.isArray(unref(filters).status) ? ssrLooseContain(unref(filters).status, "") : ssrLooseEqual(unref(filters).status, "")) ? " selected" : ""}>Minden st\xE1tusz</option><option value="pending" data-v-c684092a${ssrIncludeBooleanAttr(Array.isArray(unref(filters).status) ? ssrLooseContain(unref(filters).status, "pending") : ssrLooseEqual(unref(filters).status, "pending")) ? " selected" : ""}>F\xFCgg\u0151ben</option><option value="approved" data-v-c684092a${ssrIncludeBooleanAttr(Array.isArray(unref(filters).status) ? ssrLooseContain(unref(filters).status, "approved") : ssrLooseEqual(unref(filters).status, "approved")) ? " selected" : ""}>J\xF3v\xE1hagyott</option><option value="rejected" data-v-c684092a${ssrIncludeBooleanAttr(Array.isArray(unref(filters).status) ? ssrLooseContain(unref(filters).status, "rejected") : ssrLooseEqual(unref(filters).status, "rejected")) ? " selected" : ""}>Elutas\xEDtott</option><option value="flagged" data-v-c684092a${ssrIncludeBooleanAttr(Array.isArray(unref(filters).status) ? ssrLooseContain(unref(filters).status, "flagged") : ssrLooseEqual(unref(filters).status, "flagged")) ? " selected" : ""}>Megjel\xF6lt</option></select><select class="px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white focus:outline-none focus:ring-2 focus:ring-indigo-500/50 focus:border-indigo-500 text-sm" data-v-c684092a><option value="" data-v-c684092a${ssrIncludeBooleanAttr(Array.isArray(unref(filters).source) ? ssrLooseContain(unref(filters).source, "") : ssrLooseEqual(unref(filters).source, "")) ? " selected" : ""}>Minden forr\xE1s</option><option value="manual" data-v-c684092a${ssrIncludeBooleanAttr(Array.isArray(unref(filters).source) ? ssrLooseContain(unref(filters).source, "manual") : ssrLooseEqual(unref(filters).source, "manual")) ? " selected" : ""}>K\xE9zi</option><option value="ocr" data-v-c684092a${ssrIncludeBooleanAttr(Array.isArray(unref(filters).source) ? ssrLooseContain(unref(filters).source, "ocr") : ssrLooseEqual(unref(filters).source, "ocr")) ? " selected" : ""}>OCR</option><option value="import" data-v-c684092a${ssrIncludeBooleanAttr(Array.isArray(unref(filters).source) ? ssrLooseContain(unref(filters).source, "import") : ssrLooseEqual(unref(filters).source, "import")) ? " selected" : ""}>Import</option><option value="bot" data-v-c684092a${ssrIncludeBooleanAttr(Array.isArray(unref(filters).source) ? ssrLooseContain(unref(filters).source, "bot") : ssrLooseEqual(unref(filters).source, "bot")) ? " selected" : ""}>Bot (Staging)</option><option value="verified_org" data-v-c684092a${ssrIncludeBooleanAttr(Array.isArray(unref(filters).source) ? ssrLooseContain(unref(filters).source, "verified_org") : ssrLooseEqual(unref(filters).source, "verified_org")) ? " selected" : ""}>Szervezet</option></select><select class="px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white focus:outline-none focus:ring-2 focus:ring-indigo-500/50 focus:border-indigo-500 text-sm" data-v-c684092a><option value="created_at" data-v-c684092a${ssrIncludeBooleanAttr(Array.isArray(unref(filters).sort_by) ? ssrLooseContain(unref(filters).sort_by, "created_at") : ssrLooseEqual(unref(filters).sort_by, "created_at")) ? " selected" : ""}>L\xE9trehoz\xE1s d\xE1tuma</option><option value="name" data-v-c684092a${ssrIncludeBooleanAttr(Array.isArray(unref(filters).sort_by) ? ssrLooseContain(unref(filters).sort_by, "name") : ssrLooseEqual(unref(filters).sort_by, "name")) ? " selected" : ""}>N\xE9v</option><option value="validation_score" data-v-c684092a${ssrIncludeBooleanAttr(Array.isArray(unref(filters).sort_by) ? ssrLooseContain(unref(filters).sort_by, "validation_score") : ssrLooseEqual(unref(filters).sort_by, "validation_score")) ? " selected" : ""}>Valid\xE1ci\xF3s pontsz\xE1m</option></select><button class="px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white hover:bg-slate-600 transition text-sm flex items-center gap-1" data-v-c684092a><svg class="${ssrRenderClass([unref(filters).sort_order === "asc" ? "rotate-180" : "", "w-4 h-4"])}" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-v-c684092a><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7" data-v-c684092a></path></svg> ${ssrInterpolate(unref(filters).sort_order === "asc" ? "N\xF6vekv\u0151" : "Cs\xF6kken\u0151")}</button></div></div><div class="bg-slate-800 rounded-xl border border-slate-700 overflow-hidden" data-v-c684092a><table class="w-full" data-v-c684092a><thead data-v-c684092a><tr class="border-b border-slate-700" data-v-c684092a><th class="text-left px-6 py-4 text-xs font-medium text-slate-400 uppercase tracking-wider" data-v-c684092a>ID</th><th class="text-left px-6 py-4 text-xs font-medium text-slate-400 uppercase tracking-wider" data-v-c684092a>N\xE9v</th><th class="text-left px-6 py-4 text-xs font-medium text-slate-400 uppercase tracking-wider" data-v-c684092a>C\xEDm</th><th class="text-left px-6 py-4 text-xs font-medium text-slate-400 uppercase tracking-wider" data-v-c684092a>St\xE1tusz</th><th class="text-left px-6 py-4 text-xs font-medium text-slate-400 uppercase tracking-wider" data-v-c684092a>Forr\xE1s</th><th class="text-left px-6 py-4 text-xs font-medium text-slate-400 uppercase tracking-wider" data-v-c684092a>Valid\xE1ci\xF3</th><th class="text-left px-6 py-4 text-xs font-medium text-slate-400 uppercase tracking-wider" data-v-c684092a>L\xE9trehozva</th><th class="text-right px-6 py-4 text-xs font-medium text-slate-400 uppercase tracking-wider" data-v-c684092a>M\u0171veletek</th></tr></thead><tbody class="divide-y divide-slate-700/50" data-v-c684092a><!--[-->`);
ssrRenderList(unref(providers), (provider) => {
_push(`<tr class="hover:bg-slate-700/30 transition" data-v-c684092a><td class="px-6 py-4 text-sm text-slate-400" data-v-c684092a>${ssrInterpolate(provider.id)}</td><td class="px-6 py-4" data-v-c684092a>`);
_push(ssrRenderComponent(_component_NuxtLink, {
to: `/providers/${provider.id}`,
class: "text-sm font-medium text-indigo-400 hover:text-indigo-300 transition"
}, {
default: withCtx((_, _push2, _parent2, _scopeId) => {
if (_push2) {
_push2(`${ssrInterpolate(provider.name)}`);
} else {
return [
createTextVNode(toDisplayString(provider.name), 1)
];
}
}),
_: 2
}, _parent));
_push(`</td><td class="px-6 py-4 text-sm text-slate-300 max-w-[200px] truncate" data-v-c684092a>${ssrInterpolate(provider.address || "\u2014")}</td><td class="px-6 py-4" data-v-c684092a><span class="${ssrRenderClass([statusClass(provider.status), "inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium"])}" data-v-c684092a>${ssrInterpolate(statusLabel(provider.status))}</span></td><td class="px-6 py-4" data-v-c684092a><div class="flex items-center gap-1.5" data-v-c684092a><code class="text-xs font-mono text-slate-400 bg-slate-700/50 px-2 py-0.5 rounded" data-v-c684092a>${ssrInterpolate(provider.source)}</code>`);
if (provider.source_table) {
_push(`<span class="text-[10px] font-mono text-slate-500 bg-slate-700/30 px-1.5 py-0.5 rounded" data-v-c684092a>${ssrInterpolate(provider.source_table)}</span>`);
} else {
_push(`<!---->`);
}
_push(`</div></td><td class="px-6 py-4" data-v-c684092a><div class="flex items-center gap-2" data-v-c684092a><div class="w-16 h-1.5 bg-slate-700 rounded-full overflow-hidden" data-v-c684092a><div class="${ssrRenderClass([provider.validation_score >= 50 ? "bg-emerald-500" : provider.validation_score >= 20 ? "bg-amber-500" : "bg-slate-500", "h-full rounded-full transition-all"])}" style="${ssrRenderStyle({ width: Math.min(provider.validation_score, 100) + "%" })}" data-v-c684092a></div></div><span class="text-xs text-slate-400" data-v-c684092a>${ssrInterpolate(provider.validation_score)}</span></div></td><td class="px-6 py-4 text-sm text-slate-400" data-v-c684092a>${ssrInterpolate(unref(formatDate)(provider.created_at))}</td><td class="px-6 py-4 text-right" data-v-c684092a><div class="flex items-center justify-end gap-2" data-v-c684092a>`);
_push(ssrRenderComponent(_component_NuxtLink, {
to: `/providers/${provider.id}`,
class: "p-1.5 rounded-lg text-slate-400 hover:text-white hover:bg-slate-700 transition",
title: "R\xE9szletek"
}, {
default: withCtx((_, _push2, _parent2, _scopeId) => {
if (_push2) {
_push2(`<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-v-c684092a${_scopeId}><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 12a3 3 0 11-6 0 3 3 0 016 0z" data-v-c684092a${_scopeId}></path><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z" data-v-c684092a${_scopeId}></path></svg>`);
} else {
return [
(openBlock(), createBlock("svg", {
class: "w-4 h-4",
fill: "none",
stroke: "currentColor",
viewBox: "0 0 24 24"
}, [
createVNode("path", {
"stroke-linecap": "round",
"stroke-linejoin": "round",
"stroke-width": "2",
d: "M15 12a3 3 0 11-6 0 3 3 0 016 0z"
}),
createVNode("path", {
"stroke-linecap": "round",
"stroke-linejoin": "round",
"stroke-width": "2",
d: "M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z"
})
]))
];
}
}),
_: 2
}, _parent));
_push(`</div></td></tr>`);
});
_push(`<!--]-->`);
if (unref(providers).length === 0) {
_push(`<tr data-v-c684092a><td colspan="8" class="px-6 py-12 text-center text-sm text-slate-500" data-v-c684092a> Nincs megjelen\xEDthet\u0151 szolg\xE1ltat\xF3. </td></tr>`);
} else {
_push(`<!---->`);
}
_push(`</tbody></table></div><div class="flex items-center justify-between mt-6" data-v-c684092a><p class="text-sm text-slate-400" data-v-c684092a>${ssrInterpolate(unref(providers).length)} tal\xE1lat (\xF6sszesen: ${ssrInterpolate(unref(stats).total)}) </p><div class="flex items-center gap-2" data-v-c684092a><button${ssrIncludeBooleanAttr(unref(filters).skip <= 0) ? " disabled" : ""} class="px-3 py-1.5 bg-slate-700 border border-slate-600 rounded-lg text-white disabled:opacity-50 disabled:cursor-not-allowed hover:bg-slate-600 transition text-sm" data-v-c684092a> El\u0151z\u0151 </button><span class="text-sm text-slate-400" data-v-c684092a>${ssrInterpolate(Math.floor(unref(filters).skip / unref(filters).limit) + 1)}. oldal </span><button${ssrIncludeBooleanAttr(unref(providers).length < unref(filters).limit) ? " disabled" : ""} class="px-3 py-1.5 bg-slate-700 border border-slate-600 rounded-lg text-white disabled:opacity-50 disabled:cursor-not-allowed hover:bg-slate-600 transition text-sm" data-v-c684092a> K\xF6vetkez\u0151 </button></div></div><!--]-->`);
}
if (unref(toast)) {
_push(`<div class="fixed bottom-6 right-6 z-50 bg-emerald-600 text-white px-4 py-3 rounded-lg shadow-lg text-sm flex items-center gap-2 animate-slide-up" data-v-c684092a><svg class="w-4 h-4 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-v-c684092a><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z" data-v-c684092a></path></svg> ${ssrInterpolate(unref(toast))}</div>`);
} else {
_push(`<!---->`);
}
_push(`</div>`);
};
}
});
const _sfc_setup = _sfc_main.setup;
_sfc_main.setup = (props, ctx) => {
const ssrContext = useSSRContext();
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/providers/index.vue");
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
};
const index = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-c684092a"]]);
export { index as default };
//# sourceMappingURL=index-BE0BbUXA.mjs.map