import "../chunks/DKem_M_z.js"; import "../chunks/DwLkIEu4.js"; import { p as push, i as getContext, c as child, z as sibling, r as reset, u as untrack, t as template_effect, d as set_text, y as event, a as append, g as comment, h as first_child, k as get, w as set, x as derived_safe_equal, b as pop, e as store_get, s as setup_stores, q as mutable_source, f as from_html, o as onMount, j as onDestroy, l as legacy_pre_effect, n as legacy_pre_effect_reset, C as deferred_template_effect, $ as $document, A as tick, aR as next, aV as mutate, aW as text, m as deep_read_state, b1 as invalidate_inner_signals } from "../chunks/B-Kw_l3V.js"; import { i as if_block } from "../chunks/DWHK2A9K.js"; import { e as each, i as index } from "../chunks/qTQza25_.js"; import { h as head } from "../chunks/BmxCyGHt.js"; import { r as remove_input_defaults, s as set_attribute, a as set_class } from "../chunks/B9yCN616.js"; import { c as bind_files, b as bind_value } from "../chunks/CgeA63xA.js"; import { b as bind_this } from "../chunks/BSYzg88z.js"; import { p as preventDefault, s as stopPropagation } from "../chunks/CGgk3ROl.js"; import { i as init } from "../chunks/CUpGYt-B.js"; import { b as bubble_event } from "../chunks/C46Aw6eG.js"; import { t as toast } from "../chunks/B4Bn1xMI.js"; import { f as fileSaver } from "../chunks/CVH2w_UO.js"; import { u as user, R as REXPRO_NAME, e as skills } from "../chunks/BJ3rUC-5.js"; import { g as goto } from "../chunks/BLfIdBii.js"; import { d as getSkillItems, c as createNewSkill, g as getSkills, e as deleteSkillById, f as exportSkills, t as toggleSkillById, a as getSkillById } from "../chunks/DRvubTJA.js"; import { p as parseFrontmatter, f as formatSkillName, l as capitalizeFirstLetter } from "../chunks/X0cYWxFO.js"; import { T as Tooltip } from "../chunks/CHPxBs0H.js"; import { C as ConfirmDialog } from "../chunks/Bt_XG8Gm.js"; import { E as EllipsisHorizontal } from "../chunks/viyHXpU2.js"; import { G as GarbageBin } from "../chunks/eobci2cJ.js"; import { S as Search } from "../chunks/C6CynPzh.js"; import { P as Plus } from "../chunks/CKKkwCWl.js"; import { X as XMark } from "../chunks/DAqPThR3.js"; import { S as Spinner } from "../chunks/gJqE84vs.js"; import { V as ViewSelector } from "../chunks/DU19ZWkD.js"; import { B as Badge } from "../chunks/3f_PWqJi.js"; import { S as Switch_1 } from "../chunks/l6D7S60E.js"; import { s as slot } from "../chunks/zXynQJya.js"; import { p as prop } from "../chunks/COqmMDwI.js"; import { D as Dropdown } from "../chunks/8Pg1zo_Z.js"; import { D as DocumentDuplicate } from "../chunks/DjWyMeMm.js"; import { D as Download } from "../chunks/D04FCXQM.js"; import { P as Pagination_1 } from "../chunks/3QixqFIZ.js"; var root$1 = from_html(``); var root_1$1 = from_html(`

`); function SkillMenu($$anchor, $$props) { push($$props, false); const $i18n = () => store_get(i18n, "$i18n", $$stores); const $user = () => store_get(user, "$user", $$stores); const [$$stores, $$cleanup] = setup_stores(); const i18n = getContext("i18n"); let editHandler = prop($$props, "editHandler", 8); let cloneHandler = prop($$props, "cloneHandler", 8); let exportHandler = prop($$props, "exportHandler", 8); let deleteHandler = prop($$props, "deleteHandler", 8); let onClose = prop($$props, "onClose", 8); let show = mutable_source(false); init(); Dropdown($$anchor, { onOpenChange: (state) => { if (state === false) { onClose()(); } }, get show() { return get(show); }, set show($$value) { set(show, $$value); }, children: ($$anchor2, $$slotProps) => { { let $0 = derived_safe_equal(() => ($i18n(), untrack(() => $i18n().t("More")))); Tooltip($$anchor2, { get content() { return get($0); }, children: ($$anchor3, $$slotProps2) => { var fragment_2 = comment(); var node = first_child(fragment_2); slot(node, $$props, "default", {}, null); append($$anchor3, fragment_2); }, $$slots: { default: true } }); } }, $$slots: { default: true, content: ($$anchor2, $$slotProps) => { var div = root_1$1(); var div_1 = child(div); var button = child(div_1); var div_2 = sibling(child(button), 2); var text2 = child(div_2, true); reset(div_2); reset(button); var button_1 = sibling(button, 2); var node_1 = child(button_1); DocumentDuplicate(node_1, {}); var div_3 = sibling(node_1, 2); var text_1 = child(div_3, true); reset(div_3); reset(button_1); var node_2 = sibling(button_1, 2); { var consequent = ($$anchor3) => { var button_2 = root$1(); var node_3 = child(button_2); Download(node_3, {}); var div_4 = sibling(node_3, 2); var text_2 = child(div_4, true); reset(div_4); reset(button_2); template_effect(($0) => set_text(text_2, $0), [() => ($i18n(), untrack(() => $i18n().t("Export")))]); event("click", button_2, () => { exportHandler()(); }); append($$anchor3, button_2); }; if_block(node_2, ($$render) => { if ($user(), untrack(() => { var _a, _b, _c, _d; return ((_a = $user()) == null ? void 0 : _a.role) === "admin" || ((_d = (_c = (_b = $user()) == null ? void 0 : _b.permissions) == null ? void 0 : _c.workspace) == null ? void 0 : _d.skills); })) $$render(consequent); }); } var button_3 = sibling(node_2, 4); var node_4 = child(button_3); GarbageBin(node_4, {}); var div_5 = sibling(node_4, 2); var text_3 = child(div_5, true); reset(div_5); reset(button_3); reset(div_1); reset(div); template_effect( ($0, $1, $2) => { set_text(text2, $0); set_text(text_1, $1); set_text(text_3, $2); }, [ () => ($i18n(), untrack(() => $i18n().t("Edit"))), () => ($i18n(), untrack(() => $i18n().t("Clone"))), () => ($i18n(), untrack(() => $i18n().t("Delete"))) ] ); event("click", button, () => { editHandler()(); }); event("click", button_1, () => { cloneHandler()(); }); event("click", button_3, () => { deleteHandler()(); }); append($$anchor2, div); } }, $$legacy: true }); pop(); $$cleanup(); } var root = from_html(``); var root_1 = from_html(` `); var root_2 = from_html(`
`); var root_3 = from_html(`
`); var root_4 = from_html(`
`); var root_5 = from_html(`
`); var root_6 = from_html(`
`); var root_7 = from_html(``); var root_8 = from_html(``); var root_9 = from_html(`
`); var root_10 = from_html(`
`); var root_11 = from_html(`
`); var root_12 = from_html(`
`, 1); var root_13 = from_html(`
`); var root_14 = from_html(`
.
`); var root_15 = from_html(`
`, 1); var root_16 = from_html(`
`); function Skills($$anchor, $$props) { push($$props, false); const $i18n = () => store_get(i18n, "$i18n", $$stores); const $REXPRO_NAME = () => store_get(REXPRO_NAME, "$REXPRO_NAME", $$stores); const $user = () => store_get(user, "$user", $$stores); const [$$stores, $$cleanup] = setup_stores(); const { saveAs } = fileSaver; const i18n = getContext("i18n"); let shiftKey = mutable_source(false); let loaded = mutable_source(false); let importFiles = mutable_source(); let importInputElement = mutable_source(); let query = mutable_source(""); let searchDebounceTimer = mutable_source(); let selectedSkill = mutable_source(null); let showDeleteConfirm = mutable_source(false); let filteredItems = mutable_source(null); let total = mutable_source(null); let loading = mutable_source(false); let tagsContainerElement = mutable_source(); let viewOption = mutable_source(""); let page = mutable_source(1); const loadSkillItems = async () => { if (!get(loaded)) return; set(loading, true); try { const res = await getSkillItems(localStorage.token, get(query), get(viewOption), get(page)).catch((error) => { toast.error(`${error}`); return null; }); if (res) { set(filteredItems, res.items); set(total, res.total); } } catch (err) { /* @__PURE__ */ console.error(err); } finally { set(loading, false); } }; const cloneHandler = async (skill) => { const _skill = await getSkillById(localStorage.token, skill.id).catch((error) => { toast.error(`${error}`); return null; }); if (_skill) { sessionStorage.skill = JSON.stringify({ ..._skill, id: `${_skill.id}_clone`, name: `${_skill.name} (Clone)` }); goto("/workspace/skills/create"); } }; const exportHandler = async (skill) => { const _skill = await getSkillById(localStorage.token, skill.id).catch((error) => { toast.error(`${error}`); return null; }); if (_skill) { let blob = new Blob([JSON.stringify([_skill])], { type: "application/json" }); saveAs(blob, `skill-${_skill.id}-export-${Date.now()}.json`); } }; const deleteHandler = async (skill) => { const res = await deleteSkillById(localStorage.token, skill.id).catch((error) => { toast.error(`${error}`); return null; }); if (res) { toast.success($i18n().t("Skill deleted successfully")); } set(page, 1); loadSkillItems(); await skills.set(await getSkills(localStorage.token)); }; onMount(async () => { set(viewOption, (localStorage == null ? void 0 : localStorage.workspaceViewOption) || ""); set(loaded, true); const onKeyDown = (event2) => { if (event2.key === "Shift") { set(shiftKey, true); } }; const onKeyUp = (event2) => { if (event2.key === "Shift") { set(shiftKey, false); } }; const onBlur = () => { set(shiftKey, false); }; window.addEventListener("keydown", onKeyDown); window.addEventListener("keyup", onKeyUp); window.addEventListener("blur", onBlur); return () => { clearTimeout(get(searchDebounceTimer)); window.removeEventListener("keydown", onKeyDown); window.removeEventListener("keyup", onKeyUp); window.removeEventListener("blur", onBlur); }; }); onDestroy(() => { clearTimeout(get(searchDebounceTimer)); }); legacy_pre_effect(() => (get(query), get(searchDebounceTimer)), () => { if (get(query) !== void 0) { set(loading, true); clearTimeout(get(searchDebounceTimer)); set(searchDebounceTimer, setTimeout( () => { set(page, 1); loadSkillItems(); }, 300 )); } }); legacy_pre_effect(() => (get(page), get(viewOption)), () => { if (get(page) && get(viewOption) !== void 0) { loadSkillItems(); } }); legacy_pre_effect_reset(); init(); var fragment = comment(); head("1n7k4b0", ($$anchor2) => { deferred_template_effect( ($0) => { $document.title = ` ${$0 ?? ""} • ${$REXPRO_NAME() ?? ""} `; }, [() => ($i18n(), untrack(() => $i18n().t("Skills")))] ); }); var node = first_child(fragment); { var consequent_12 = ($$anchor2) => { var fragment_1 = root_15(); var div = first_child(fragment_1); var div_1 = child(div); var div_2 = child(div_1); var div_3 = child(div_2); var text$1 = child(div_3, true); reset(div_3); var div_4 = sibling(div_3, 2); var text_1 = child(div_4, true); reset(div_4); reset(div_2); var div_5 = sibling(div_2, 2); var input = child(div_5); bind_this(input, ($$value) => set(importInputElement, $$value), () => get(importInputElement)); var node_1 = sibling(input, 2); { var consequent = ($$anchor3) => { var button = root(); var div_6 = child(button); var text_2 = child(div_6, true); reset(div_6); reset(button); template_effect(($0) => set_text(text_2, $0), [() => ($i18n(), untrack(() => $i18n().t("Import")))]); event("click", button, () => { get(importInputElement).click(); }); append($$anchor3, button); }; if_block(node_1, ($$render) => { if ($user(), untrack(() => { var _a, _b, _c, _d; return ((_a = $user()) == null ? void 0 : _a.role) === "admin" || ((_d = (_c = (_b = $user()) == null ? void 0 : _b.permissions) == null ? void 0 : _c.workspace) == null ? void 0 : _d.skills); })) $$render(consequent); }); } var node_2 = sibling(node_1, 2); { var consequent_1 = ($$anchor3) => { var button_1 = root(); var div_7 = child(button_1); var text_3 = child(div_7, true); reset(div_7); reset(button_1); template_effect(($0) => set_text(text_3, $0), [() => ($i18n(), untrack(() => $i18n().t("Export")))]); event("click", button_1, async () => { const _skills = await exportSkills(localStorage.token).catch((error) => { toast.error(`${error}`); return null; }); if (_skills) { let blob = new Blob([JSON.stringify(_skills)], { type: "application/json" }); saveAs(blob, `skills-export-${Date.now()}.json`); } }); append($$anchor3, button_1); }; if_block(node_2, ($$render) => { if (get(total), $user(), untrack(() => { var _a, _b, _c, _d; return get(total) && (((_a = $user()) == null ? void 0 : _a.role) === "admin" || ((_d = (_c = (_b = $user()) == null ? void 0 : _b.permissions) == null ? void 0 : _c.workspace) == null ? void 0 : _d.skills)); })) $$render(consequent_1); }); } var node_3 = sibling(node_2, 2); { var consequent_2 = ($$anchor3) => { var a = root_1(); var node_4 = child(a); Plus(node_4, { className: "size-3", strokeWidth: "2.5" }); var div_8 = sibling(node_4, 2); var text_4 = child(div_8, true); reset(div_8); reset(a); template_effect(($0) => set_text(text_4, $0), [() => ($i18n(), untrack(() => $i18n().t("New Skill")))]); append($$anchor3, a); }; if_block(node_3, ($$render) => { if ($user(), untrack(() => { var _a, _b, _c, _d; return ((_a = $user()) == null ? void 0 : _a.role) === "admin" || ((_d = (_c = (_b = $user()) == null ? void 0 : _b.permissions) == null ? void 0 : _c.workspace) == null ? void 0 : _d.skills); })) $$render(consequent_2); }); } reset(div_5); reset(div_1); reset(div); var div_9 = sibling(div, 2); var div_10 = child(div_9); var div_11 = child(div_10); var div_12 = child(div_11); var node_5 = child(div_12); Search(node_5, { className: "size-3.5" }); reset(div_12); var input_1 = sibling(div_12, 2); remove_input_defaults(input_1); var node_6 = sibling(input_1, 2); { var consequent_3 = ($$anchor3) => { var div_13 = root_2(); var button_2 = child(div_13); var node_7 = child(button_2); XMark(node_7, { className: "size-3", strokeWidth: "2" }); reset(button_2); reset(div_13); template_effect(($0) => set_attribute(button_2, "aria-label", $0), [() => ($i18n(), untrack(() => $i18n().t("Clear search")))]); event("click", button_2, () => { set(query, ""); }); append($$anchor3, div_13); }; if_block(node_6, ($$render) => { if (get(query)) $$render(consequent_3); }); } reset(div_11); reset(div_10); var div_14 = sibling(div_10, 2); var div_15 = child(div_14); var node_8 = child(div_15); ViewSelector(node_8, { onChange: async (value) => { localStorage.workspaceViewOption = value; set(page, 1); await tick(); }, get value() { return get(viewOption); }, set value($$value) { set(viewOption, $$value); }, $$legacy: true }); reset(div_15); bind_this(div_15, ($$value) => set(tagsContainerElement, $$value), () => get(tagsContainerElement)); reset(div_14); var node_9 = sibling(div_14, 2); { var consequent_4 = ($$anchor3) => { var div_16 = root_3(); var node_10 = child(div_16); Spinner(node_10, { className: "size-5" }); reset(div_16); append($$anchor3, div_16); }; var consequent_11 = ($$anchor3) => { var fragment_2 = root_12(); var div_17 = first_child(fragment_2); each(div_17, 5, () => get(filteredItems), index, ($$anchor4, skill, $$index) => { { let $0 = derived_safe_equal(() => (get(skill), untrack(() => { var _a, _b; return ((_a = get(skill)) == null ? void 0 : _a.description) ?? ((_b = get(skill)) == null ? void 0 : _b.id); }))); Tooltip($$anchor4, { get content() { return get($0); }, children: ($$anchor5, $$slotProps) => { var div_18 = root_10(); var node_11 = child(div_18); { var consequent_6 = ($$anchor6) => { var a_1 = root_5(); var div_19 = child(a_1); var div_20 = child(div_19); var node_12 = child(div_20); Tooltip(node_12, { get content() { return get(skill), untrack(() => get(skill).id); }, placement: "top-start", children: ($$anchor7, $$slotProps2) => { var div_21 = root_4(); var div_22 = child(div_21); var text_5 = child(div_22, true); reset(div_22); var node_13 = sibling(div_22, 2); { var consequent_5 = ($$anchor8) => { { let $02 = derived_safe_equal(() => ($i18n(), untrack(() => $i18n().t("Inactive")))); Badge($$anchor8, { type: "muted", get content() { return get($02); } }); } }; if_block(node_13, ($$render) => { if (get(skill), untrack(() => !get(skill).is_active)) $$render(consequent_5); }); } reset(div_21); template_effect(() => set_text(text_5, (get(skill), untrack(() => get(skill).name)))); append($$anchor7, div_21); }, $$slots: { default: true } }); var div_23 = sibling(node_12, 2); var div_24 = child(div_23); var node_14 = child(div_24); { let $02 = derived_safe_equal(() => (get(skill), $i18n(), untrack(() => { var _a, _b; return ((_b = (_a = get(skill)) == null ? void 0 : _a.user) == null ? void 0 : _b.email) ?? $i18n().t("Deleted User"); }))); Tooltip(node_14, { get content() { return get($02); }, className: "flex shrink-0", placement: "top-start", children: ($$anchor7, $$slotProps2) => { next(); var text_6 = text(); template_effect(($03) => set_text(text_6, $03), [ () => ($i18n(), deep_read_state(capitalizeFirstLetter), get(skill), untrack(() => { var _a, _b, _c, _d; return $i18n().t("By {{name}}", { name: capitalizeFirstLetter(((_b = (_a = get(skill)) == null ? void 0 : _a.user) == null ? void 0 : _b.name) ?? ((_d = (_c = get(skill)) == null ? void 0 : _c.user) == null ? void 0 : _d.email) ?? $i18n().t("Deleted User")) }); })) ]); append($$anchor7, text_6); }, $$slots: { default: true } }); } reset(div_24); reset(div_23); reset(div_20); reset(div_19); reset(a_1); template_effect(($02) => set_attribute(a_1, "href", $02), [ () => (get(skill), untrack(() => `/workspace/skills/edit?id=${encodeURIComponent(get(skill).id)}`)) ]); append($$anchor6, a_1); }; var alternate = ($$anchor6) => { var div_25 = root_6(); var div_26 = child(div_25); var div_27 = child(div_26); var div_28 = child(div_27); var node_15 = child(div_28); Tooltip(node_15, { get content() { return get(skill), untrack(() => get(skill).id); }, placement: "top-start", children: ($$anchor7, $$slotProps2) => { var div_29 = root_4(); var div_30 = child(div_29); var text_7 = child(div_30, true); reset(div_30); var node_16 = sibling(div_30, 2); { var consequent_7 = ($$anchor8) => { { let $02 = derived_safe_equal(() => ($i18n(), untrack(() => $i18n().t("Inactive")))); Badge($$anchor8, { type: "muted", get content() { return get($02); } }); } }; if_block(node_16, ($$render) => { if (get(skill), untrack(() => !get(skill).is_active)) $$render(consequent_7); }); } reset(div_29); template_effect(() => set_text(text_7, (get(skill), untrack(() => get(skill).name)))); append($$anchor7, div_29); }, $$slots: { default: true } }); var node_17 = sibling(node_15, 2); { let $02 = derived_safe_equal(() => ($i18n(), untrack(() => $i18n().t("Read Only")))); Badge(node_17, { type: "muted", get content() { return get($02); } }); } reset(div_28); var div_31 = sibling(div_28, 2); var div_32 = child(div_31); var node_18 = child(div_32); { let $02 = derived_safe_equal(() => (get(skill), $i18n(), untrack(() => { var _a, _b; return ((_b = (_a = get(skill)) == null ? void 0 : _a.user) == null ? void 0 : _b.email) ?? $i18n().t("Deleted User"); }))); Tooltip(node_18, { get content() { return get($02); }, className: "flex shrink-0", placement: "top-start", children: ($$anchor7, $$slotProps2) => { next(); var text_8 = text(); template_effect(($03) => set_text(text_8, $03), [ () => ($i18n(), deep_read_state(capitalizeFirstLetter), get(skill), untrack(() => { var _a, _b, _c, _d; return $i18n().t("By {{name}}", { name: capitalizeFirstLetter(((_b = (_a = get(skill)) == null ? void 0 : _a.user) == null ? void 0 : _b.name) ?? ((_d = (_c = get(skill)) == null ? void 0 : _c.user) == null ? void 0 : _d.email) ?? $i18n().t("Deleted User")) }); })) ]); append($$anchor7, text_8); }, $$slots: { default: true } }); } reset(div_32); reset(div_31); reset(div_27); reset(div_26); reset(div_25); append($$anchor6, div_25); }; if_block(node_11, ($$render) => { if (get(skill), untrack(() => get(skill).write_access)) $$render(consequent_6); else $$render(alternate, -1); }); } var node_19 = sibling(node_11, 2); { var consequent_9 = ($$anchor6) => { var div_33 = root_9(); var node_20 = child(div_33); { var consequent_8 = ($$anchor7) => { { let $02 = derived_safe_equal(() => ($i18n(), untrack(() => $i18n().t("Delete")))); Tooltip($$anchor7, { get content() { return get($02); }, children: ($$anchor8, $$slotProps2) => { var button_3 = root_7(); var node_21 = child(button_3); GarbageBin(node_21, {}); reset(button_3); template_effect(($03) => set_attribute(button_3, "aria-label", $03), [() => ($i18n(), untrack(() => $i18n().t("Delete")))]); event("click", button_3, () => { deleteHandler(get(skill)); }); append($$anchor8, button_3); }, $$slots: { default: true } }); } }; var alternate_1 = ($$anchor7) => { SkillMenu($$anchor7, { editHandler: () => { goto(`/workspace/skills/edit?id=${encodeURIComponent(get(skill).id)}`); }, cloneHandler: () => { cloneHandler(get(skill)); }, exportHandler: () => { exportHandler(get(skill)); }, deleteHandler: async () => { set(selectedSkill, get(skill)); set(showDeleteConfirm, true); }, onClose: () => { }, children: ($$anchor8, $$slotProps2) => { var button_4 = root_8(); var node_22 = child(button_4); EllipsisHorizontal(node_22, { className: "size-5" }); reset(button_4); append($$anchor8, button_4); }, $$slots: { default: true } }); }; if_block(node_20, ($$render) => { if (get(shiftKey)) $$render(consequent_8); else $$render(alternate_1, -1); }); } var button_5 = sibling(node_20, 2); var node_23 = child(button_5); { let $02 = derived_safe_equal(() => (get(skill), $i18n(), untrack(() => get(skill).is_active ? $i18n().t("Enabled") : $i18n().t("Disabled")))); Tooltip(node_23, { get content() { return get($02); }, children: ($$anchor7, $$slotProps2) => { Switch_1($$anchor7, { get state() { return get(skill).is_active; }, set state($$value) { get(skill).is_active = $$value, invalidate_inner_signals(() => get(filteredItems)); }, $$events: { change: async () => { toggleSkillById(localStorage.token, get(skill).id); } }, $$legacy: true }); }, $$slots: { default: true } }); } reset(button_5); reset(div_33); event("click", button_5, preventDefault(stopPropagation(function($$arg) { bubble_event.call(this, $$props, $$arg); }))); append($$anchor6, div_33); }; if_block(node_19, ($$render) => { if (get(skill), untrack(() => get(skill).write_access)) $$render(consequent_9); }); } reset(div_18); template_effect(() => set_class(div_18, 1, ` flex space-x-4 text-left w-full px-3 py-2.5 transition rounded-2xl ${(get(skill), untrack(() => get(skill).write_access ? "cursor-pointer dark:hover:bg-gray-850/50 hover:bg-gray-50" : "cursor-not-allowed opacity-60")) ?? ""}`)); append($$anchor5, div_18); }, $$slots: { default: true } }); } }); reset(div_17); var node_24 = sibling(div_17, 2); { var consequent_10 = ($$anchor4) => { var div_34 = root_11(); var node_25 = child(div_34); Pagination_1(node_25, { get count() { return get(total); }, perPage: 30, get page() { return get(page); }, set page($$value) { set(page, $$value); }, $$legacy: true }); reset(div_34); append($$anchor4, div_34); }; if_block(node_24, ($$render) => { if (get(total) > 30) $$render(consequent_10); }); } append($$anchor3, fragment_2); }; var alternate_2 = ($$anchor3) => { var div_35 = root_13(); var div_36 = child(div_35); var div_37 = sibling(child(div_36), 2); var text_9 = child(div_37, true); reset(div_37); var div_38 = sibling(div_37, 2); var text_10 = child(div_38, true); reset(div_38); reset(div_36); reset(div_35); template_effect( ($0, $1) => { set_text(text_9, $0); set_text(text_10, $1); }, [ () => ($i18n(), untrack(() => $i18n().t("No skills found"))), () => ($i18n(), untrack(() => $i18n().t("Try adjusting your search or filter to find what you are looking for."))) ] ); append($$anchor3, div_35); }; if_block(node_9, ($$render) => { if (get(filteredItems) === null || get(loading)) $$render(consequent_4); else if (get(filteredItems), untrack(() => (get(filteredItems) ?? []).length !== 0)) $$render(consequent_11, 1); else $$render(alternate_2, -1); }); } reset(div_9); var node_26 = sibling(div_9, 2); { let $0 = derived_safe_equal(() => ($i18n(), untrack(() => $i18n().t("Delete skill?")))); ConfirmDialog(node_26, { get title() { return get($0); }, get show() { return get(showDeleteConfirm); }, set show($$value) { set(showDeleteConfirm, $$value); }, $$events: { confirm: () => { deleteHandler(get(selectedSkill)); } }, children: ($$anchor3, $$slotProps) => { var div_39 = root_14(); var text_11 = child(div_39); var span = sibling(text_11); var text_12 = child(span, true); reset(span); next(); reset(div_39); template_effect( ($02) => { set_text(text_11, `${$02 ?? ""} `); set_text(text_12, (get(selectedSkill), untrack(() => get(selectedSkill).name))); }, [ () => ($i18n(), untrack(() => $i18n().t("This will delete"))) ] ); append($$anchor3, div_39); }, $$slots: { default: true }, $$legacy: true }); } template_effect( ($0, $1, $2) => { set_text(text$1, $0); set_text(text_1, get(total) ?? ""); set_attribute(input_1, "aria-label", $1); set_attribute(input_1, "placeholder", $2); }, [ () => ($i18n(), untrack(() => $i18n().t("Skills"))), () => ($i18n(), untrack(() => $i18n().t("Search Skills"))), () => ($i18n(), untrack(() => $i18n().t("Search Skills"))) ] ); bind_files(input, () => get(importFiles), ($$value) => set(importFiles, $$value)); event("change", input, () => { var _a; if (get(importFiles) && get(importFiles).length > 0) { const file = get(importFiles)[0]; const ext = (_a = file.name.split(".").pop()) == null ? void 0 : _a.toLowerCase(); if (ext === "json") { const reader = new FileReader(); reader.onload = async (event2) => { var _a2; try { const content = (_a2 = event2.target) == null ? void 0 : _a2.result; if (typeof content !== "string") return; const parsedSkills = JSON.parse(content); const items = Array.isArray(parsedSkills) ? parsedSkills : [parsedSkills]; for (const skill of items) { await createNewSkill(localStorage.token, skill).catch((error) => { toast.error(`${error}`); }); } toast.success($i18n().t("Skill imported successfully")); set(page, 1); loadSkillItems(); skills.set(await getSkills(localStorage.token)); } catch (e) { toast.error($i18n().t("Invalid JSON file")); } }; reader.readAsText(file); } else { const reader = new FileReader(); reader.onload = (event2) => { var _a2; const mdContent = (_a2 = event2.target) == null ? void 0 : _a2.result; if (typeof mdContent === "string") { const fm = parseFrontmatter(mdContent); const fileName = file.name.replace(/\.md$/, ""); const rawName = fm.name || fileName; const displayName = formatSkillName(rawName); sessionStorage.skill = JSON.stringify({ name: displayName, id: fm.name || "", description: fm.description || "", content: mdContent, is_active: true, access_grants: [] }); goto("/workspace/skills/create"); } }; reader.readAsText(file); } mutate(importInputElement, get(importInputElement).value = ""); } }); bind_value(input_1, () => get(query), ($$value) => set(query, $$value)); event("wheel", div_14, (e) => { if (e.deltaY !== 0) { e.preventDefault(); e.currentTarget.scrollLeft += e.deltaY; } }); append($$anchor2, fragment_1); }; var alternate_3 = ($$anchor2) => { var div_40 = root_16(); var node_27 = child(div_40); Spinner(node_27, { className: "size-5" }); reset(div_40); append($$anchor2, div_40); }; if_block(node, ($$render) => { if (get(loaded)) $$render(consequent_12); else $$render(alternate_3, -1); }); } append($$anchor, fragment); pop(); $$cleanup(); } function _page($$anchor) { Skills($$anchor, {}); } export { _page as component };