it-tools/dist/server/chunks/chunk-1c9c06f6.js

1560 lines
59 KiB
JavaScript
Raw Normal View History

2024-04-28 00:48:29 +08:00
import { openBlock, createElementBlock, createElementVNode, defineComponent, toRefs, computed, mergeProps, withCtx, unref, renderSlot, withDirectives, createVNode, vShow, useSSRContext, createBlock, resolveDynamicComponent, ref, createTextVNode, toDisplayString, isRef, Fragment, renderList, h, createCommentVNode, onMounted, createSSRApp } from 'vue';
import { defineStore, storeToRefs, createPinia } from 'pinia';
import { useHead, createHead } from '@vueuse/head';
import _, { noop } from 'lodash';
import HomePage, { c as config, u as useToolStore, _ as _sfc_main$b, t as tools, i as i18nPlugin } from '../entries/src_pages_Home-page.mjs';
import { create, NLayout, NLayoutSider, NIcon, useThemeVars, NCollapseTransition, NMenu, NH1, darkTheme, NGlobalStyle, NMessageProvider, NNotificationProvider, NConfigProvider } from 'naive-ui';
import { ssrRenderComponent, ssrRenderSlot, ssrRenderStyle, ssrRenderAttrs, ssrRenderVNode, ssrInterpolate, ssrRenderList, ssrRenderClass } from 'vue/server-renderer';
import { useRouter, useRoute, RouterLink, RouterView, createRouter, createMemoryHistory } from 'vue-router';
import { Sun, Moon, Home2 } from '@vicons/tabler';
import { u as useStyleStore, _ as _export_sfc, a as __unplugin_components_0$2 } from './chunk-6003391e.js';
import { _ as _sfc_main$a } from './chunk-8109fd17.js';
import { C as CLink, r as routes } from '../entries/src_ui_demo_demo-home-page.mjs';
import { _ as __unplugin_components_3 } from './chunk-4e7a6a8d.js';
import { _ as __unplugin_components_2 } from './chunk-6ba26b76.js';
import { _ as __unplugin_components_1 } from './chunk-8daff870.js';
import { u as useFuzzySearch } from './chunk-2ce6ed5e.js';
import { useMagicKeys, whenever, useStorage, syncRef } from '@vueuse/core';
import { _ as __unplugin_components_0$3 } from './chunk-89a4876c.js';
import { useI18n } from 'vue-i18n/dist/vue-i18n.runtime.esm-bundler.js';
import _sfc_main$c from '../entries/src_pages_404-page.mjs';
function createFakePlausibleInstance() {
return {
trackEvent: noop,
enableAutoPageviews: () => noop
};
}
function createPlausibleInstance({
config: config2
}) {
if (config2.isTrackerEnabled) {
return config2;
}
return createFakePlausibleInstance();
}
const plausible = {
install: (app) => {
const plausible2 = createPlausibleInstance({ config: config.plausible });
plausible2.enableAutoPageviews();
app.provide("plausible", plausible2);
}
};
const naive = create();
const lightThemeOverrides = {
Menu: {
itemHeight: "32px"
},
Layout: { color: "#f1f5f9" },
AutoComplete: {
peers: {
InternalSelectMenu: { height: "500px" }
}
}
};
const darkThemeOverrides = {
common: {
primaryColor: "#1ea54cFF",
primaryColorHover: "#36AD6AFF",
primaryColorPressed: "#0C7A43FF",
primaryColorSuppl: "#36AD6AFF"
},
Notification: {
color: "#333333"
},
AutoComplete: {
peers: {
InternalSelectMenu: { height: "500px", color: "#1e1e1e" }
}
},
Menu: {
itemHeight: "32px"
},
Layout: {
color: "#1c1c1c",
siderColor: "#232323",
siderBorderColor: "transparent"
},
Card: {
color: "#232323",
borderColor: "#282828"
},
Table: {
tdColor: "#232323",
thColor: "#353535"
}
};
const _hoisted_1$6 = {
viewBox: "0 0 24 24",
width: "1.2em",
height: "1.2em"
};
const _hoisted_2$6 = /*#__PURE__*/createElementVNode("path", {
fill: "currentColor",
d: "M8 3C5.79 3 4 4.79 4 7v7c0 1.1.9 2 2 2h3v4c0 1.1.9 2 2 2h2c1.1 0 2-.9 2-2v-4h3c1.1 0 2-.9 2-2V3H8m0 2h4v2h2V5h1v4h2V5h1v5H6V7c0-1.1.9-2 2-2m-2 9v-2h12v2H6Z"
}, null, -1);
const _hoisted_3$6 = [
_hoisted_2$6
];
function render$6(_ctx, _cache) {
return (openBlock(), createElementBlock("svg", _hoisted_1$6, _hoisted_3$6))
}
const __unplugin_components_0$1 = { name: 'mdi-brush-variant', render: render$6 };
/* vite-plugin-components disabled */
const _sfc_main$9 = /* @__PURE__ */ defineComponent({
__name: "MenuLayout",
__ssrInlineRender: true,
setup(__props) {
const styleStore = useStyleStore();
const { isMenuCollapsed, isSmallScreen } = toRefs(styleStore);
const siderPosition = computed(() => isSmallScreen.value ? "absolute" : "static");
return (_ctx, _push, _parent, _attrs) => {
const _component_n_layout = NLayout;
const _component_n_layout_sider = NLayoutSider;
_push(ssrRenderComponent(_component_n_layout, mergeProps({ "has-sider": "" }, _attrs), {
default: withCtx((_, _push2, _parent2, _scopeId) => {
if (_push2) {
_push2(ssrRenderComponent(_component_n_layout_sider, {
bordered: "",
"collapse-mode": "width",
"collapsed-width": 0,
width: 240,
collapsed: unref(isMenuCollapsed),
"show-trigger": false,
"native-scrollbar": false,
position: unref(siderPosition)
}, {
default: withCtx((_2, _push3, _parent3, _scopeId2) => {
if (_push3) {
ssrRenderSlot(_ctx.$slots, "sider", {}, null, _push3, _parent3, _scopeId2);
} else {
return [
renderSlot(_ctx.$slots, "sider", {}, void 0, true)
];
}
}),
_: 3
}, _parent2, _scopeId));
_push2(ssrRenderComponent(_component_n_layout, { class: "content" }, {
default: withCtx((_2, _push3, _parent3, _scopeId2) => {
if (_push3) {
ssrRenderSlot(_ctx.$slots, "content", {}, null, _push3, _parent3, _scopeId2);
_push3(`<div style="${ssrRenderStyle(unref(isSmallScreen) && !unref(isMenuCollapsed) ? null : { display: "none" })}" class="overlay" data-v-63c31e01${_scopeId2}></div>`);
} else {
return [
renderSlot(_ctx.$slots, "content", {}, void 0, true),
withDirectives(createVNode("div", {
class: "overlay",
onClick: ($event) => isMenuCollapsed.value = true
}, null, 8, ["onClick"]), [
[vShow, unref(isSmallScreen) && !unref(isMenuCollapsed)]
])
];
}
}),
_: 3
}, _parent2, _scopeId));
} else {
return [
createVNode(_component_n_layout_sider, {
bordered: "",
"collapse-mode": "width",
"collapsed-width": 0,
width: 240,
collapsed: unref(isMenuCollapsed),
"show-trigger": false,
"native-scrollbar": false,
position: unref(siderPosition)
}, {
default: withCtx(() => [
renderSlot(_ctx.$slots, "sider", {}, void 0, true)
]),
_: 3
}, 8, ["collapsed", "position"]),
createVNode(_component_n_layout, { class: "content" }, {
default: withCtx(() => [
renderSlot(_ctx.$slots, "content", {}, void 0, true),
withDirectives(createVNode("div", {
class: "overlay",
onClick: ($event) => isMenuCollapsed.value = true
}, null, 8, ["onClick"]), [
[vShow, unref(isSmallScreen) && !unref(isMenuCollapsed)]
])
]),
_: 3
})
];
}
}),
_: 3
}, _parent));
};
}
});
/* unplugin-vue-components disabled */const MenuLayout_vue_vue_type_style_index_0_scoped_63c31e01_lang = '';
const _sfc_setup$9 = _sfc_main$9.setup;
_sfc_main$9.setup = (props, ctx) => {
const ssrContext = useSSRContext();
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("src/components/MenuLayout.vue");
return _sfc_setup$9 ? _sfc_setup$9(props, ctx) : void 0;
};
const MenuLayout = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["__scopeId", "data-v-63c31e01"]]);
const _sfc_main$8 = /* @__PURE__ */ defineComponent({
__name: "NavbarButtons",
__ssrInlineRender: true,
setup(__props) {
const styleStore = useStyleStore();
const { isDarkTheme } = toRefs(styleStore);
return (_ctx, _push, _parent, _attrs) => {
const _component_c_tooltip = _sfc_main$a;
const _component_c_button = __unplugin_components_0$2;
const _component_n_icon = NIcon;
_push(ssrRenderComponent(_component_c_tooltip, mergeProps({
tooltip: unref(isDarkTheme) ? _ctx.$t("home.nav.lightMode") : _ctx.$t("home.nav.darkMode"),
position: "bottom"
}, _attrs), {
default: withCtx((_, _push2, _parent2, _scopeId) => {
if (_push2) {
_push2(ssrRenderComponent(_component_c_button, {
circle: "",
variant: "text",
"aria-label": _ctx.$t("home.nav.mode"),
onClick: () => unref(styleStore).toggleDark()
}, {
default: withCtx((_2, _push3, _parent3, _scopeId2) => {
if (_push3) {
if (unref(isDarkTheme)) {
_push3(ssrRenderComponent(_component_n_icon, {
size: "25",
component: unref(Sun)
}, null, _parent3, _scopeId2));
} else {
_push3(ssrRenderComponent(_component_n_icon, {
size: "25",
component: unref(Moon)
}, null, _parent3, _scopeId2));
}
} else {
return [
unref(isDarkTheme) ? (openBlock(), createBlock(_component_n_icon, {
key: 0,
size: "25",
component: unref(Sun)
}, null, 8, ["component"])) : (openBlock(), createBlock(_component_n_icon, {
key: 1,
size: "25",
component: unref(Moon)
}, null, 8, ["component"]))
];
}
}),
_: 1
}, _parent2, _scopeId));
} else {
return [
createVNode(_component_c_button, {
circle: "",
variant: "text",
"aria-label": _ctx.$t("home.nav.mode"),
onClick: () => unref(styleStore).toggleDark()
}, {
default: withCtx(() => [
unref(isDarkTheme) ? (openBlock(), createBlock(_component_n_icon, {
key: 0,
size: "25",
component: unref(Sun)
}, null, 8, ["component"])) : (openBlock(), createBlock(_component_n_icon, {
key: 1,
size: "25",
component: unref(Moon)
}, null, 8, ["component"]))
]),
_: 1
}, 8, ["aria-label", "onClick"])
];
}
}),
_: 1
}, _parent));
};
}
});
/* unplugin-vue-components disabled */const NavbarButtons_vue_vue_type_style_index_0_scoped_99ae5a21_lang = '';
const _sfc_setup$8 = _sfc_main$8.setup;
_sfc_main$8.setup = (props, ctx) => {
const ssrContext = useSSRContext();
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("src/components/NavbarButtons.vue");
return _sfc_setup$8 ? _sfc_setup$8(props, ctx) : void 0;
};
const NavbarButtons = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["__scopeId", "data-v-99ae5a21"]]);
const _sfc_main$7 = /* @__PURE__ */ defineComponent({
__name: "command-palette-option",
__ssrInlineRender: true,
props: {
option: {},
selected: { type: Boolean, default: false }
},
emits: ["activated"],
setup(__props, { emit }) {
const props = __props;
const { option } = toRefs(props);
const { selected } = toRefs(props);
return (_ctx, _push, _parent, _attrs) => {
_push(`<div${ssrRenderAttrs(mergeProps({
role: "option",
"aria-selected": unref(selected),
class: {
"text-white": unref(selected),
"bg-primary": unref(selected)
},
"w-full": "",
flex: "",
"cursor-pointer": "",
"items-center": "",
"overflow-hidden": "",
rounded: "",
"pa-3": "",
transition: "",
"hover:bg-primary": "",
"hover:text-white": ""
}, _attrs))}>`);
if (unref(option).icon) {
ssrRenderVNode(_push, createVNode(resolveDynamicComponent(unref(option).icon), {
"mr-3": "",
"h-30px": "",
"w-30px": "",
"shrink-0": "",
"op-50": ""
}, null), _parent);
} else {
_push(`<!---->`);
}
_push(`<div flex-1 overflow-hidden><div truncate font-bold lh-tight op-90>${ssrInterpolate(unref(option).name)}</div>`);
if (unref(option).description) {
_push(`<div truncate lh-tight op-60>${ssrInterpolate(unref(option).description)}</div>`);
} else {
_push(`<!---->`);
}
_push(`</div></div>`);
};
}
});
const _sfc_setup$7 = _sfc_main$7.setup;
_sfc_main$7.setup = (props, ctx) => {
const ssrContext = useSSRContext();
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("src/modules/command-palette/components/command-palette-option.vue");
return _sfc_setup$7 ? _sfc_setup$7(props, ctx) : void 0;
};
const _hoisted_1$5 = {
viewBox: "0 0 24 24",
width: "1.2em",
height: "1.2em"
};
const _hoisted_2$5 = /*#__PURE__*/createElementVNode("path", {
fill: "currentColor",
d: "m3.55 19.09l1.41 1.41l1.8-1.79l-1.42-1.42M12 6c-3.31 0-6 2.69-6 6s2.69 6 6 6s6-2.69 6-6c0-3.32-2.69-6-6-6m8 7h3v-2h-3m-2.76 7.71l1.8 1.79l1.41-1.41l-1.79-1.8M20.45 5l-1.41-1.4l-1.8 1.79l1.42 1.42M13 1h-2v3h2M6.76 5.39L4.96 3.6L3.55 5l1.79 1.81l1.42-1.42M1 13h3v-2H1m12 9h-2v3h2"
}, null, -1);
const _hoisted_3$5 = [
_hoisted_2$5
];
function render$5(_ctx, _cache) {
return (openBlock(), createElementBlock("svg", _hoisted_1$5, _hoisted_3$5))
}
const SunIcon = { name: 'mdi-white-balance-sunny', render: render$5 };
/* vite-plugin-components disabled */
const _hoisted_1$4 = {
viewBox: "0 0 24 24",
width: "1.2em",
height: "1.2em"
};
const _hoisted_2$4 = /*#__PURE__*/createElementVNode("path", {
fill: "currentColor",
d: "M12 2A10 10 0 0 0 2 12c0 4.42 2.87 8.17 6.84 9.5c.5.08.66-.23.66-.5v-1.69c-2.77.6-3.36-1.34-3.36-1.34c-.46-1.16-1.11-1.47-1.11-1.47c-.91-.62.07-.6.07-.6c1 .07 1.53 1.03 1.53 1.03c.87 1.52 2.34 1.07 2.91.83c.09-.65.35-1.09.63-1.34c-2.22-.25-4.55-1.11-4.55-4.92c0-1.11.38-2 1.03-2.71c-.1-.25-.45-1.29.1-2.64c0 0 .84-.27 2.75 1.02c.79-.22 1.65-.33 2.5-.33c.85 0 1.71.11 2.5.33c1.91-1.29 2.75-1.02 2.75-1.02c.55 1.35.2 2.39.1 2.64c.65.71 1.03 1.6 1.03 2.71c0 3.82-2.34 4.66-4.57 4.91c.36.31.69.92.69 1.85V21c0 .27.16.59.67.5C19.14 20.16 22 16.42 22 12A10 10 0 0 0 12 2Z"
}, null, -1);
const _hoisted_3$4 = [
_hoisted_2$4
];
function render$4(_ctx, _cache) {
return (openBlock(), createElementBlock("svg", _hoisted_1$4, _hoisted_3$4))
}
const GithubIcon = { name: 'mdi-github', render: render$4 };
/* vite-plugin-components disabled */
const _hoisted_1$3 = {
viewBox: "0 0 24 24",
width: "1.2em",
height: "1.2em"
};
const _hoisted_2$3 = /*#__PURE__*/createElementVNode("path", {
fill: "currentColor",
d: "M20 8h-2.81c-.45-.8-1.07-1.5-1.82-2L17 4.41L15.59 3l-2.17 2.17a6.002 6.002 0 0 0-2.83 0L8.41 3L7 4.41L8.62 6c-.75.5-1.36 1.21-1.81 2H4v2h2.09c-.06.33-.09.66-.09 1v1H4v2h2v1c0 .34.03.67.09 1H4v2h2.81A5.988 5.988 0 0 0 15 20.18c.91-.52 1.67-1.28 2.19-2.18H20v-2h-2.09c.06-.33.09-.66.09-1v-1h2v-2h-2v-1c0-.34-.03-.67-.09-1H20V8m-4 7a4 4 0 0 1-4 4a4 4 0 0 1-4-4v-4a4 4 0 0 1 4-4a4 4 0 0 1 4 4v4m-2-5v2h-4v-2h4m-4 4h4v2h-4v-2Z"
}, null, -1);
const _hoisted_3$3 = [
_hoisted_2$3
];
function render$3(_ctx, _cache) {
return (openBlock(), createElementBlock("svg", _hoisted_1$3, _hoisted_3$3))
}
const BugIcon = { name: 'mdi-bug-outline', render: render$3 };
/* vite-plugin-components disabled */
const _hoisted_1$2 = {
viewBox: "0 0 24 24",
width: "1.2em",
height: "1.2em"
};
const _hoisted_2$2 = /*#__PURE__*/createElementVNode("path", {
fill: "currentColor",
d: "M5 3h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2m2 2a2 2 0 0 0-2 2a2 2 0 0 0 2 2a2 2 0 0 0 2-2a2 2 0 0 0-2-2m10 10a2 2 0 0 0-2 2a2 2 0 0 0 2 2a2 2 0 0 0 2-2a2 2 0 0 0-2-2m0-10a2 2 0 0 0-2 2a2 2 0 0 0 2 2a2 2 0 0 0 2-2a2 2 0 0 0-2-2m-5 5a2 2 0 0 0-2 2a2 2 0 0 0 2 2a2 2 0 0 0 2-2a2 2 0 0 0-2-2m-5 5a2 2 0 0 0-2 2a2 2 0 0 0 2 2a2 2 0 0 0 2-2a2 2 0 0 0-2-2Z"
}, null, -1);
const _hoisted_3$2 = [
_hoisted_2$2
];
function render$2(_ctx, _cache) {
return (openBlock(), createElementBlock("svg", _hoisted_1$2, _hoisted_3$2))
}
const DiceIcon = { name: 'mdi-dice-5', render: render$2 };
/* vite-plugin-components disabled */
const _hoisted_1$1 = {
viewBox: "0 0 24 24",
width: "1.2em",
height: "1.2em"
};
const _hoisted_2$1 = /*#__PURE__*/createElementVNode("path", {
fill: "currentColor",
d: "M11 9h2V7h-2m1 13c-4.41 0-8-3.59-8-8s3.59-8 8-8s8 3.59 8 8s-3.59 8-8 8m0-18A10 10 0 0 0 2 12a10 10 0 0 0 10 10a10 10 0 0 0 10-10A10 10 0 0 0 12 2m-1 15h2v-6h-2v6Z"
}, null, -1);
const _hoisted_3$1 = [
_hoisted_2$1
];
function render$1(_ctx, _cache) {
return (openBlock(), createElementBlock("svg", _hoisted_1$1, _hoisted_3$1))
}
const InfoIcon = { name: 'mdi-information-outline', render: render$1 };
/* vite-plugin-components disabled */
const useCommandPaletteStore = defineStore("command-palette", () => {
const toolStore = useToolStore();
const styleStore = useStyleStore();
const router = useRouter();
const searchPrompt = ref("");
const toolsOptions = toolStore.tools.map((tool) => ({
...tool,
to: tool.path,
toolCategory: tool.category,
category: "Tools"
}));
const searchOptions = [
...toolsOptions,
{
name: "Random tool",
description: "Get a random tool from the list.",
action: () => {
const { path } = _.sample(toolStore.tools);
router.push(path);
},
icon: DiceIcon,
category: "Tools",
keywords: ["random", "tool", "pick", "choose", "select"],
closeOnSelect: true
},
{
name: "Toggle dark mode",
description: "Toggle dark mode on or off.",
action: () => styleStore.toggleDark(),
icon: SunIcon,
category: "Actions",
keywords: ["dark", "theme", "toggle", "mode", "light", "system"]
},
{
name: "Github repository",
href: "https://github.com/zeeklog/it-tools",
category: "External",
description: "View the source code of it-tools on Github.",
keywords: ["github", "repo", "repository", "source", "code"],
icon: GithubIcon
},
{
name: "Report a bug or an issue",
description: "Report a bug or an issue to help improve it-tools.",
href: "https://github.com/zeeklog/it-tools/issues/new/choose",
category: "Actions",
keywords: ["report", "issue", "bug", "problem", "error"],
icon: BugIcon
},
{
name: "About",
description: "Learn more about IT-Tools.",
to: "/about",
category: "Pages",
keywords: ["about", "learn", "more", "info", "information"],
icon: InfoIcon
}
];
const { searchResult } = useFuzzySearch({
search: searchPrompt,
data: searchOptions,
options: {
keys: [{ name: "name", weight: 2 }, "description", "keywords", "category"],
threshold: 0.3
}
});
const filteredSearchResult = computed(() => _.chain(searchResult.value).groupBy("category").mapValues((categoryOptions) => _.take(categoryOptions, 5)).value());
return {
filteredSearchResult,
searchPrompt
};
});
const _sfc_main$6 = /* @__PURE__ */ defineComponent({
__name: "command-palette",
__ssrInlineRender: true,
setup(__props) {
const isModalOpen = ref(false);
const inputRef = ref();
const router = useRouter();
const isMac = computed(() => true);
const commandPaletteStore = useCommandPaletteStore();
const { searchPrompt, filteredSearchResult } = storeToRefs(commandPaletteStore);
const keys = useMagicKeys({
passive: false,
onEventFired(e) {
if (e.ctrlKey && e.key === "k" && e.type === "keydown") {
e.preventDefault();
}
if (e.metaKey && e.key === "k" && e.type === "keydown") {
e.preventDefault();
}
}
});
whenever(isModalOpen, () => inputRef.value?.focus());
whenever(keys.ctrl_k, open);
whenever(keys.meta_k, open);
whenever(keys.escape, close);
function open() {
return isModalOpen.value = true;
}
function close() {
isModalOpen.value = false;
searchPrompt.value = "";
}
const selectedOptionIndex = ref(0);
function handleKeydown(event) {
const { key } = event;
const isEnterPressed = key === "Enter";
const isArrowUpOrDown = ["ArrowUp", "ArrowDown"].includes(key);
const isArrowDown = key === "ArrowDown";
if (isArrowUpOrDown) {
const increment = isArrowDown ? 1 : -1;
const maxIndex = Math.max(_.chain(filteredSearchResult.value).values().flatten().size().value() - 1, 0);
selectedOptionIndex.value = Math.min(Math.max(selectedOptionIndex.value + increment, 0), maxIndex);
return;
}
if (isEnterPressed) {
const option = _.chain(filteredSearchResult.value).values().flatten().nth(selectedOptionIndex.value).value();
activateOption(option);
}
}
function getOptionIndex(option) {
return _.chain(filteredSearchResult.value).values().flatten().findIndex((o) => o === option).value();
}
function activateOption(option) {
const { closeOnSelect } = option;
if (option.action) {
option.action();
if (closeOnSelect) {
close();
}
return;
}
const closeAfterNavigation = closeOnSelect || _.isUndefined(closeOnSelect);
if (option.to) {
router.push(option.to);
if (closeAfterNavigation) {
close();
}
return;
}
if (option.href) {
window.open(option.href, "_blank");
if (closeAfterNavigation) {
close();
}
}
}
return (_ctx, _push, _parent, _attrs) => {
const _component_c_button = __unplugin_components_0$2;
const _component_icon_mdi_search = __unplugin_components_1;
const _component_c_modal = __unplugin_components_2;
const _component_c_input_text = __unplugin_components_3;
const _component_command_palette_option = _sfc_main$7;
_push(`<div${ssrRenderAttrs(mergeProps({ "flex-1": "" }, _attrs))} data-v-b415a78e>`);
_push(ssrRenderComponent(_component_c_button, {
"w-full": "",
"important:justify-start": "",
onClick: ($event) => isModalOpen.value = true
}, {
default: withCtx((_2, _push2, _parent2, _scopeId) => {
if (_push2) {
_push2(`<span flex items-center gap-3 op-40 data-v-b415a78e${_scopeId}>`);
_push2(ssrRenderComponent(_component_icon_mdi_search, null, null, _parent2, _scopeId));
_push2(` ${ssrInterpolate(_ctx.$t("search.label"))} <span hidden flex-1 border border-current border-op-40 rounded border-solid px-5px py-3px sm:inline data-v-b415a78e${_scopeId}>${ssrInterpolate(unref(isMac) ? "Cmd" : "Ctrl")} + K </span></span>`);
} else {
return [
createVNode("span", {
flex: "",
"items-center": "",
"gap-3": "",
"op-40": ""
}, [
createVNode(_component_icon_mdi_search),
createTextVNode(" " + toDisplayString(_ctx.$t("search.label")) + " ", 1),
createVNode("span", {
hidden: "",
"flex-1": "",
border: "",
"border-current": "",
"border-op-40": "",
rounded: "",
"border-solid": "",
"px-5px": "",
"py-3px": "",
"sm:inline": ""
}, toDisplayString(unref(isMac) ? "Cmd" : "Ctrl") + " + K ", 1)
])
];
}
}),
_: 1
}, _parent));
_push(ssrRenderComponent(_component_c_modal, {
open: unref(isModalOpen),
"onUpdate:open": ($event) => isRef(isModalOpen) ? isModalOpen.value = $event : null,
class: "palette-modal",
"shadow-xl": "",
"important:max-w-650px": "",
"important:pa-12px": "",
onKeydown: handleKeydown
}, {
default: withCtx((_2, _push2, _parent2, _scopeId) => {
if (_push2) {
_push2(ssrRenderComponent(_component_c_input_text, {
ref_key: "inputRef",
ref: inputRef,
value: unref(searchPrompt),
"onUpdate:value": ($event) => isRef(searchPrompt) ? searchPrompt.value = $event : null,
"raw-text": "",
placeholder: "Type to search a tool or a command...",
autofocus: "",
clearable: ""
}, null, _parent2, _scopeId));
_push2(`<!--[-->`);
ssrRenderList(unref(filteredSearchResult), (options, category) => {
_push2(`<div data-v-b415a78e${_scopeId}><div ml-3 mt-3 text-sm font-bold text-primary op-60 data-v-b415a78e${_scopeId}>${ssrInterpolate(category)}</div><!--[-->`);
ssrRenderList(options, (option) => {
_push2(ssrRenderComponent(_component_command_palette_option, {
key: option.name,
option,
selected: unref(selectedOptionIndex) === getOptionIndex(option),
onActivated: activateOption
}, null, _parent2, _scopeId));
});
_push2(`<!--]--></div>`);
});
_push2(`<!--]-->`);
} else {
return [
createVNode(_component_c_input_text, {
ref_key: "inputRef",
ref: inputRef,
value: unref(searchPrompt),
"onUpdate:value": ($event) => isRef(searchPrompt) ? searchPrompt.value = $event : null,
"raw-text": "",
placeholder: "Type to search a tool or a command...",
autofocus: "",
clearable: ""
}, null, 8, ["value", "onUpdate:value"]),
(openBlock(true), createBlock(Fragment, null, renderList(unref(filteredSearchResult), (options, category) => {
return openBlock(), createBlock("div", { key: category }, [
createVNode("div", {
"ml-3": "",
"mt-3": "",
"text-sm": "",
"font-bold": "",
"text-primary": "",
"op-60": ""
}, toDisplayString(category), 1),
(openBlock(true), createBlock(Fragment, null, renderList(options, (option) => {
return openBlock(), createBlock(_component_command_palette_option, {
key: option.name,
option,
selected: unref(selectedOptionIndex) === getOptionIndex(option),
onActivated: activateOption
}, null, 8, ["option", "selected"]);
}), 128))
]);
}), 128))
];
}
}),
_: 1
}, _parent));
_push(`</div>`);
};
}
});
/* unplugin-vue-components disabled */const commandPalette_vue_vue_type_style_index_0_scoped_b415a78e_lang = '';
const _sfc_setup$6 = _sfc_main$6.setup;
_sfc_main$6.setup = (props, ctx) => {
const ssrContext = useSSRContext();
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("src/modules/command-palette/command-palette.vue");
return _sfc_setup$6 ? _sfc_setup$6(props, ctx) : void 0;
};
const CommandPalette = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["__scopeId", "data-v-b415a78e"]]);
const _sfc_main$5 = /* @__PURE__ */ defineComponent({
__name: "locale-selector",
__ssrInlineRender: true,
setup(__props) {
const { availableLocales, locale } = useI18n();
const localesLong = {
en: "English",
es: "Español",
fr: "Français",
pt: "Português",
ru: "Русский",
uk: "Українська",
zh: "中文",
vi: "Tiếng Việt"
};
const localeOptions = computed(
() => availableLocales.map((locale2) => ({
label: localesLong[locale2] ?? locale2,
value: locale2
}))
);
return (_ctx, _push, _parent, _attrs) => {
_push(ssrRenderComponent(__unplugin_components_0$3, mergeProps({
value: unref(locale),
"onUpdate:value": ($event) => isRef(locale) ? locale.value = $event : null,
options: unref(localeOptions),
placeholder: "Select a language",
"w-100px": ""
}, _attrs), null, _parent));
};
}
});
const _sfc_setup$5 = _sfc_main$5.setup;
_sfc_main$5.setup = (props, ctx) => {
const ssrContext = useSSRContext();
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("src/modules/i18n/components/locale-selector.vue");
return _sfc_setup$5 ? _sfc_setup$5(props, ctx) : void 0;
};
const _hoisted_1 = {
viewBox: "0 0 24 24",
width: "1.2em",
height: "1.2em"
};
const _hoisted_2 = /*#__PURE__*/createElementVNode("path", {
fill: "currentColor",
d: "M8.59 16.58L13.17 12L8.59 7.41L10 6l6 6l-6 6l-1.41-1.42Z"
}, null, -1);
const _hoisted_3 = [
_hoisted_2
];
function render(_ctx, _cache) {
return (openBlock(), createElementBlock("svg", _hoisted_1, _hoisted_3))
}
const __unplugin_components_0 = { name: 'mdi-chevron-right', render };
/* vite-plugin-components disabled */
const _sfc_main$4 = /* @__PURE__ */ defineComponent({
__name: "MenuIconItem",
__ssrInlineRender: true,
props: {
tool: {}
},
setup(__props) {
const props = __props;
const { tool } = toRefs(props);
const theme = useThemeVars();
return (_ctx, _push, _parent, _attrs) => {
const _component_n_icon = NIcon;
const _cssVars = { style: {
"--c9671612": unref(theme).primaryColor
} };
_push(`<div${ssrRenderAttrs(mergeProps({ class: "menu-icon-item" }, _attrs, _cssVars))} data-v-962461ab>`);
_push(ssrRenderComponent(_component_n_icon, {
component: unref(tool).icon
}, null, _parent));
if (unref(tool).isNew) {
_push(`<div class="badge" data-v-962461ab></div>`);
} else {
_push(`<!---->`);
}
_push(`</div>`);
};
}
});
/* unplugin-vue-components disabled */const MenuIconItem_vue_vue_type_style_index_0_scoped_962461ab_lang = '';
const _sfc_setup$4 = _sfc_main$4.setup;
_sfc_main$4.setup = (props, ctx) => {
const ssrContext = useSSRContext();
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("src/components/MenuIconItem.vue");
return _sfc_setup$4 ? _sfc_setup$4(props, ctx) : void 0;
};
const MenuIconItem = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["__scopeId", "data-v-962461ab"]]);
const _sfc_main$3 = /* @__PURE__ */ defineComponent({
__name: "CollapsibleToolMenu",
__ssrInlineRender: true,
props: {
toolsByCategory: { default: () => [] }
},
setup(__props) {
const props = __props;
const { toolsByCategory } = toRefs(props);
const route = useRoute();
const makeLabel = (tool) => () => h(RouterLink, { to: tool.path }, { default: () => tool.name });
const makeIcon = (tool) => () => h(MenuIconItem, { tool });
const collapsedCategories = useStorage(
"menu-tool-option:collapsed-categories",
{},
void 0,
{
deep: true,
serializer: {
read: (v) => v ? JSON.parse(v) : null,
write: (v) => JSON.stringify(v)
}
}
);
function toggleCategoryCollapse({ name }) {
collapsedCategories.value[name] = !collapsedCategories.value[name];
}
const menuOptions = computed(
() => toolsByCategory.value.map(({ name, components }) => ({
name,
isCollapsed: collapsedCategories.value[name],
tools: components.map((tool) => ({
label: makeLabel(tool),
icon: makeIcon(tool),
key: tool.path
}))
}))
);
const themeVars = useThemeVars();
return (_ctx, _push, _parent, _attrs) => {
const _component_icon_mdi_chevron_right = __unplugin_components_0;
const _component_n_collapse_transition = NCollapseTransition;
const _component_n_menu = NMenu;
({ style: {
"--2adda884": unref(themeVars).textColor3
} });
_push(`<!--[-->`);
ssrRenderList(unref(menuOptions), ({ name, tools, isCollapsed }) => {
_push(`<div data-v-50838923><div ml-6px mt-12px flex cursor-pointer items-center op-60 data-v-50838923><span class="${ssrRenderClass({ "rotate-0": isCollapsed, "rotate-90": !isCollapsed })}" text-16px lh-1 op-50 transition-transform data-v-50838923>`);
_push(ssrRenderComponent(_component_icon_mdi_chevron_right, null, null, _parent));
_push(`</span><span ml-8px text-13px data-v-50838923>${ssrInterpolate(name)}</span></div>`);
_push(ssrRenderComponent(_component_n_collapse_transition, {
show: !isCollapsed
}, {
default: withCtx((_, _push2, _parent2, _scopeId) => {
if (_push2) {
_push2(`<div class="menu-wrapper" data-v-50838923${_scopeId}><div class="toggle-bar" data-v-50838923${_scopeId}></div>`);
_push2(ssrRenderComponent(_component_n_menu, {
class: "menu",
value: unref(route).path,
"collapsed-width": 64,
"collapsed-icon-size": 22,
options: tools,
indent: 8,
"default-expand-all": true
}, null, _parent2, _scopeId));
_push2(`</div>`);
} else {
return [
createVNode("div", { class: "menu-wrapper" }, [
createVNode("div", {
class: "toggle-bar",
onClick: ($event) => toggleCategoryCollapse({ name })
}, null, 8, ["onClick"]),
createVNode(_component_n_menu, {
class: "menu",
value: unref(route).path,
"collapsed-width": 64,
"collapsed-icon-size": 22,
options: tools,
indent: 8,
"default-expand-all": true
}, null, 8, ["value", "options"])
])
];
}
}),
_: 2
}, _parent));
_push(`</div>`);
});
_push(`<!--]-->`);
};
}
});
/* unplugin-vue-components disabled */const CollapsibleToolMenu_vue_vue_type_style_index_0_scoped_50838923_lang = '';
const _sfc_setup$3 = _sfc_main$3.setup;
_sfc_main$3.setup = (props, ctx) => {
const ssrContext = useSSRContext();
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("src/components/CollapsibleToolMenu.vue");
return _sfc_setup$3 ? _sfc_setup$3(props, ctx) : void 0;
};
const CollapsibleToolMenu = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["__scopeId", "data-v-50838923"]]);
const _sfc_main$2 = /* @__PURE__ */ defineComponent({
__name: "base.layout",
__ssrInlineRender: true,
setup(__props) {
const themeVars = useThemeVars();
const styleStore = useStyleStore();
const version = config.app.version;
const commitSha = config.app.lastCommitSha.slice(0, 7);
const { t } = useI18n();
const toolStore = useToolStore();
const { favoriteTools, toolsByCategory } = storeToRefs(toolStore);
const tools = computed(() => [
...favoriteTools.value.length > 0 ? [{ name: t("tools.categories.favorite-tools"), components: favoriteTools.value }] : [],
...toolsByCategory.value
]);
return (_ctx, _push, _parent, _attrs) => {
const _component_icon_mdi58brush_variant = __unplugin_components_0$1;
const _cssVars = { style: {
"--525f0447": unref(themeVars).primaryColor
} };
_push(ssrRenderComponent(MenuLayout, mergeProps({
class: ["menu-layout", { isSmallScreen: unref(styleStore).isSmallScreen }]
}, _attrs, _cssVars), {
sider: withCtx((_, _push2, _parent2, _scopeId) => {
if (_push2) {
_push2(ssrRenderComponent(unref(RouterLink), {
to: "/",
class: "hero-wrapper"
}, null, _parent2, _scopeId));
_push2(`<div class="sider-content" data-v-311f4fa3${_scopeId}>`);
if (unref(styleStore).isSmallScreen) {
_push2(`<div flex flex-col items-center data-v-311f4fa3${_scopeId}>`);
_push2(ssrRenderComponent(_sfc_main$5, { w: "90%" }, null, _parent2, _scopeId));
_push2(`<div flex justify-center data-v-311f4fa3${_scopeId}>`);
_push2(ssrRenderComponent(NavbarButtons, null, null, _parent2, _scopeId));
_push2(`</div></div>`);
} else {
_push2(`<!---->`);
}
_push2(ssrRenderComponent(CollapsibleToolMenu, { "tools-by-category": unref(tools) }, null, _parent2, _scopeId));
_push2(`<div class="footer" data-v-311f4fa3${_scopeId}><div data-v-311f4fa3${_scopeId}> IT-Tools `);
_push2(ssrRenderComponent(CLink, {
target: "_blank",
rel: "noopener",
href: `https://github.com/zeeklog/it-tools/tree/v${unref(version)}`
}, {
default: withCtx((_2, _push3, _parent3, _scopeId2) => {
if (_push3) {
_push3(` v${ssrInterpolate(unref(version))}`);
} else {
return [
createTextVNode(" v" + toDisplayString(unref(version)), 1)
];
}
}),
_: 1
}, _parent2, _scopeId));
if (unref(commitSha) && unref(commitSha).length > 0) {
_push2(`<!--[--> - `);
_push2(ssrRenderComponent(CLink, {
target: "_blank",
rel: "noopener",
type: "primary",
href: `https://github.com/zeeklog/it-tools/tree/${unref(commitSha)}`
}, {
default: withCtx((_2, _push3, _parent3, _scopeId2) => {
if (_push3) {
_push3(`${ssrInterpolate(unref(commitSha))}`);
} else {
return [
createTextVNode(toDisplayString(unref(commitSha)), 1)
];
}
}),
_: 1
}, _parent2, _scopeId));
_push2(`<!--]-->`);
} else {
_push2(`<!---->`);
}
_push2(`</div><div data-v-311f4fa3${_scopeId}> © ${ssrInterpolate(( new Date()).getFullYear())} `);
_push2(ssrRenderComponent(CLink, {
target: "_blank",
rel: "noopener",
href: "https://github.com/zeeklog"
}, {
default: withCtx((_2, _push3, _parent3, _scopeId2) => {
if (_push3) {
_push3(` Ne0inHK `);
} else {
return [
createTextVNode(" Ne0inHK ")
];
}
}),
_: 1
}, _parent2, _scopeId));
_push2(`</div></div></div>`);
} else {
return [
createVNode(unref(RouterLink), {
to: "/",
class: "hero-wrapper"
}),
createVNode("div", { class: "sider-content" }, [
unref(styleStore).isSmallScreen ? (openBlock(), createBlock("div", {
key: 0,
flex: "",
"flex-col": "",
"items-center": ""
}, [
createVNode(_sfc_main$5, { w: "90%" }),
createVNode("div", {
flex: "",
"justify-center": ""
}, [
createVNode(NavbarButtons)
])
])) : createCommentVNode("", true),
createVNode(CollapsibleToolMenu, { "tools-by-category": unref(tools) }, null, 8, ["tools-by-category"]),
createVNode("div", { class: "footer" }, [
createVNode("div", null, [
createTextVNode(" IT-Tools "),
createVNode(CLink, {
target: "_blank",
rel: "noopener",
href: `https://github.com/zeeklog/it-tools/tree/v${unref(version)}`
}, {
default: withCtx(() => [
createTextVNode(" v" + toDisplayString(unref(version)), 1)
]),
_: 1
}, 8, ["href"]),
unref(commitSha) && unref(commitSha).length > 0 ? (openBlock(), createBlock(Fragment, { key: 0 }, [
createTextVNode(" - "),
createVNode(CLink, {
target: "_blank",
rel: "noopener",
type: "primary",
href: `https://github.com/zeeklog/it-tools/tree/${unref(commitSha)}`
}, {
default: withCtx(() => [
createTextVNode(toDisplayString(unref(commitSha)), 1)
]),
_: 1
}, 8, ["href"])
], 64)) : createCommentVNode("", true)
]),
createVNode("div", null, [
createTextVNode(" © " + toDisplayString((/* @__PURE__ */ new Date()).getFullYear()) + " ", 1),
createVNode(CLink, {
target: "_blank",
rel: "noopener",
href: "https://github.com/zeeklog"
}, {
default: withCtx(() => [
createTextVNode(" Ne0inHK ")
]),
_: 1
})
])
])
])
];
}
}),
content: withCtx((_, _push2, _parent2, _scopeId) => {
if (_push2) {
_push2(`<div flex items-center justify-center gap-2 data-v-311f4fa3${_scopeId}>`);
_push2(ssrRenderComponent(_sfc_main$a, {
tooltip: _ctx.$t("home.home"),
position: "bottom"
}, {
default: withCtx((_2, _push3, _parent3, _scopeId2) => {
if (_push3) {
_push3(ssrRenderComponent(__unplugin_components_0$2, {
to: "/",
circle: "",
variant: "text",
"aria-label": _ctx.$t("home.home")
}, {
default: withCtx((_3, _push4, _parent4, _scopeId3) => {
if (_push4) {
_push4(ssrRenderComponent(unref(NIcon), {
size: "25",
component: unref(Home2)
}, null, _parent4, _scopeId3));
} else {
return [
createVNode(unref(NIcon), {
size: "25",
component: unref(Home2)
}, null, 8, ["component"])
];
}
}),
_: 1
}, _parent3, _scopeId2));
} else {
return [
createVNode(__unplugin_components_0$2, {
to: "/",
circle: "",
variant: "text",
"aria-label": _ctx.$t("home.home")
}, {
default: withCtx(() => [
createVNode(unref(NIcon), {
size: "25",
component: unref(Home2)
}, null, 8, ["component"])
]),
_: 1
}, 8, ["aria-label"])
];
}
}),
_: 1
}, _parent2, _scopeId));
_push2(ssrRenderComponent(_sfc_main$a, {
tooltip: _ctx.$t("home.uiLib"),
position: "bottom"
}, {
default: withCtx((_2, _push3, _parent3, _scopeId2) => {
if (_push3) {
if (unref(config).app.env === "development") {
_push3(ssrRenderComponent(__unplugin_components_0$2, {
to: "/c-lib",
circle: "",
variant: "text",
"aria-label": _ctx.$t("home.uiLib")
}, {
default: withCtx((_3, _push4, _parent4, _scopeId3) => {
if (_push4) {
_push4(ssrRenderComponent(_component_icon_mdi58brush_variant, { "text-20px": "" }, null, _parent4, _scopeId3));
} else {
return [
createVNode(_component_icon_mdi58brush_variant, { "text-20px": "" })
];
}
}),
_: 1
}, _parent3, _scopeId2));
} else {
_push3(`<!---->`);
}
} else {
return [
unref(config).app.env === "development" ? (openBlock(), createBlock(__unplugin_components_0$2, {
key: 0,
to: "/c-lib",
circle: "",
variant: "text",
"aria-label": _ctx.$t("home.uiLib")
}, {
default: withCtx(() => [
createVNode(_component_icon_mdi58brush_variant, { "text-20px": "" })
]),
_: 1
}, 8, ["aria-label"])) : createCommentVNode("", true)
];
}
}),
_: 1
}, _parent2, _scopeId));
_push2(ssrRenderComponent(CommandPalette, null, null, _parent2, _scopeId));
if (!unref(styleStore).isSmallScreen) {
_push2(ssrRenderComponent(_sfc_main$5, null, null, _parent2, _scopeId));
} else {
_push2(`<!---->`);
}
_push2(`<div data-v-311f4fa3${_scopeId}>`);
if (!unref(styleStore).isSmallScreen) {
_push2(ssrRenderComponent(NavbarButtons, null, null, _parent2, _scopeId));
} else {
_push2(`<!---->`);
}
_push2(`</div></div>`);
ssrRenderSlot(_ctx.$slots, "default", {}, null, _push2, _parent2, _scopeId);
} else {
return [
createVNode("div", {
flex: "",
"items-center": "",
"justify-center": "",
"gap-2": ""
}, [
createVNode(_sfc_main$a, {
tooltip: _ctx.$t("home.home"),
position: "bottom"
}, {
default: withCtx(() => [
createVNode(__unplugin_components_0$2, {
to: "/",
circle: "",
variant: "text",
"aria-label": _ctx.$t("home.home")
}, {
default: withCtx(() => [
createVNode(unref(NIcon), {
size: "25",
component: unref(Home2)
}, null, 8, ["component"])
]),
_: 1
}, 8, ["aria-label"])
]),
_: 1
}, 8, ["tooltip"]),
createVNode(_sfc_main$a, {
tooltip: _ctx.$t("home.uiLib"),
position: "bottom"
}, {
default: withCtx(() => [
unref(config).app.env === "development" ? (openBlock(), createBlock(__unplugin_components_0$2, {
key: 0,
to: "/c-lib",
circle: "",
variant: "text",
"aria-label": _ctx.$t("home.uiLib")
}, {
default: withCtx(() => [
createVNode(_component_icon_mdi58brush_variant, { "text-20px": "" })
]),
_: 1
}, 8, ["aria-label"])) : createCommentVNode("", true)
]),
_: 1
}, 8, ["tooltip"]),
createVNode(CommandPalette),
!unref(styleStore).isSmallScreen ? (openBlock(), createBlock(_sfc_main$5, { key: 0 })) : createCommentVNode("", true),
createVNode("div", null, [
!unref(styleStore).isSmallScreen ? (openBlock(), createBlock(NavbarButtons, { key: 0 })) : createCommentVNode("", true)
])
]),
renderSlot(_ctx.$slots, "default", {}, void 0, true)
];
}
}),
_: 3
}, _parent));
};
}
});
/* unplugin-vue-components disabled */const base_layout_vue_vue_type_style_index_0_scoped_311f4fa3_lang = '';
const _sfc_setup$2 = _sfc_main$2.setup;
_sfc_main$2.setup = (props, ctx) => {
const ssrContext = useSSRContext();
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("src/layouts/base.layout.vue");
return _sfc_setup$2 ? _sfc_setup$2(props, ctx) : void 0;
};
const BaseLayout = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-311f4fa3"]]);
const _sfc_main$1 = /* @__PURE__ */ defineComponent({
__name: "tool.layout",
__ssrInlineRender: true,
setup(__props) {
const route = useRoute();
const head = computed(() => ({
title: `${route.meta.name} - Zeeklog Online Tools`,
meta: [
{
name: "description",
content: route.meta?.description
},
{
name: "keywords",
content: (route.meta.keywords ?? []).join(",")
}
]
}));
useHead(head);
const { t } = useI18n();
const i18nKey = computed(() => route.path.trim().replace("/", ""));
const toolTitle = computed(() => t(`tools.${i18nKey.value}.title`, String(route.meta.name)));
const toolDescription = computed(() => t(`tools.${i18nKey.value}.description`, String(route.meta.description)));
return (_ctx, _push, _parent, _attrs) => {
const _component_n_h1 = NH1;
_push(ssrRenderComponent(BaseLayout, _attrs, {
default: withCtx((_, _push2, _parent2, _scopeId) => {
if (_push2) {
_push2(`<div class="tool-layout" data-v-bc13a56b${_scopeId}><div class="tool-header" data-v-bc13a56b${_scopeId}><div flex flex-nowrap items-center justify-between data-v-bc13a56b${_scopeId}>`);
_push2(ssrRenderComponent(_component_n_h1, null, {
default: withCtx((_2, _push3, _parent3, _scopeId2) => {
if (_push3) {
_push3(`${ssrInterpolate(unref(toolTitle))}`);
} else {
return [
createTextVNode(toDisplayString(unref(toolTitle)), 1)
];
}
}),
_: 1
}, _parent2, _scopeId));
_push2(`<div data-v-bc13a56b${_scopeId}>`);
_push2(ssrRenderComponent(_sfc_main$b, {
tool: { name: unref(route).meta.name }
}, null, _parent2, _scopeId));
_push2(`</div></div><div class="separator" data-v-bc13a56b${_scopeId}></div><div class="description" data-v-bc13a56b${_scopeId}>${ssrInterpolate(unref(toolDescription))}</div></div></div><div class="tool-content" data-v-bc13a56b${_scopeId}>`);
ssrRenderSlot(_ctx.$slots, "default", {}, null, _push2, _parent2, _scopeId);
_push2(`</div>`);
} else {
return [
createVNode("div", { class: "tool-layout" }, [
createVNode("div", { class: "tool-header" }, [
createVNode("div", {
flex: "",
"flex-nowrap": "",
"items-center": "",
"justify-between": ""
}, [
createVNode(_component_n_h1, null, {
default: withCtx(() => [
createTextVNode(toDisplayString(unref(toolTitle)), 1)
]),
_: 1
}),
createVNode("div", null, [
createVNode(_sfc_main$b, {
tool: { name: unref(route).meta.name }
}, null, 8, ["tool"])
])
]),
createVNode("div", { class: "separator" }),
createVNode("div", { class: "description" }, toDisplayString(unref(toolDescription)), 1)
])
]),
createVNode("div", { class: "tool-content" }, [
renderSlot(_ctx.$slots, "default", {}, void 0, true)
])
];
}
}),
_: 3
}, _parent));
};
}
});
/* unplugin-vue-components disabled */const tool_layout_vue_vue_type_style_index_0_scoped_bc13a56b_lang = '';
const _sfc_setup$1 = _sfc_main$1.setup;
_sfc_main$1.setup = (props, ctx) => {
const ssrContext = useSSRContext();
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("src/layouts/tool.layout.vue");
return _sfc_setup$1 ? _sfc_setup$1(props, ctx) : void 0;
};
const ToolLayout = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-bc13a56b"]]);
const layouts = {
base: BaseLayout,
toolLayout: ToolLayout
};
const _sfc_main = /* @__PURE__ */ defineComponent({
__name: "App",
__ssrInlineRender: true,
setup(__props) {
const route = useRoute();
const layout = computed(() => route?.meta?.layout ?? layouts.base);
const styleStore = useStyleStore();
const theme = computed(() => styleStore.isDarkTheme ? darkTheme : null);
const themeOverrides = computed(() => styleStore.isDarkTheme ? darkThemeOverrides : lightThemeOverrides);
const { locale } = useI18n();
syncRef(
locale,
useStorage("locale", locale)
);
onMounted(() => {
console.log("APP MOUNTED");
});
return (_ctx, _push, _parent, _attrs) => {
const _component_n_config_provider = NConfigProvider;
_push(ssrRenderComponent(_component_n_config_provider, mergeProps({
theme: unref(theme),
"theme-overrides": unref(themeOverrides)
}, _attrs), {
default: withCtx((_, _push2, _parent2, _scopeId) => {
if (_push2) {
_push2(ssrRenderComponent(unref(NGlobalStyle), null, null, _parent2, _scopeId));
_push2(ssrRenderComponent(unref(NMessageProvider), { placement: "bottom" }, {
default: withCtx((_2, _push3, _parent3, _scopeId2) => {
if (_push3) {
_push3(ssrRenderComponent(unref(NNotificationProvider), { placement: "bottom-right" }, {
default: withCtx((_3, _push4, _parent4, _scopeId3) => {
if (_push4) {
ssrRenderVNode(_push4, createVNode(resolveDynamicComponent(unref(layout)), null, {
default: withCtx((_4, _push5, _parent5, _scopeId4) => {
if (_push5) {
_push5(ssrRenderComponent(unref(RouterView), null, null, _parent5, _scopeId4));
} else {
return [
createVNode(unref(RouterView))
];
}
}),
_: 1
}), _parent4, _scopeId3);
} else {
return [
(openBlock(), createBlock(resolveDynamicComponent(unref(layout)), null, {
default: withCtx(() => [
createVNode(unref(RouterView))
]),
_: 1
}))
];
}
}),
_: 1
}, _parent3, _scopeId2));
} else {
return [
createVNode(unref(NNotificationProvider), { placement: "bottom-right" }, {
default: withCtx(() => [
(openBlock(), createBlock(resolveDynamicComponent(unref(layout)), null, {
default: withCtx(() => [
createVNode(unref(RouterView))
]),
_: 1
}))
]),
_: 1
})
];
}
}),
_: 1
}, _parent2, _scopeId));
} else {
return [
createVNode(unref(NGlobalStyle)),
createVNode(unref(NMessageProvider), { placement: "bottom" }, {
default: withCtx(() => [
createVNode(unref(NNotificationProvider), { placement: "bottom-right" }, {
default: withCtx(() => [
(openBlock(), createBlock(resolveDynamicComponent(unref(layout)), null, {
default: withCtx(() => [
createVNode(unref(RouterView))
]),
_: 1
}))
]),
_: 1
})
]),
_: 1
})
];
}
}),
_: 1
}, _parent));
};
}
});
/* unplugin-vue-components disabled */const App_vue_vue_type_style_index_0_lang = '';
const _sfc_setup = _sfc_main.setup;
_sfc_main.setup = (props, ctx) => {
const ssrContext = useSSRContext();
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("src/App.vue");
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
};
const toolsRoutes = tools.map(({ path, name, component, ...config2 }) => ({
path,
name,
component,
meta: { isTool: true, layout: layouts.toolLayout, name, ...config2 }
}));
const toolsRedirectRoutes = tools.filter(({ redirectFrom }) => redirectFrom && redirectFrom.length > 0).flatMap(
({ path, redirectFrom }) => redirectFrom?.map((redirectSource) => ({ path: redirectSource, redirect: path })) ?? []
);
const router = createRouter({
history: createMemoryHistory(config.app.baseUrl),
routes: [
{
path: "/",
name: "home",
component: HomePage
},
{
path: "/about",
name: "about",
component: () => import('./chunk-e30e03ef.js')
},
...toolsRoutes,
...toolsRedirectRoutes,
...config.app.env === "development" ? routes : [],
{ path: "/:pathMatch(.*)*", name: "NotFound", component: _sfc_main$c }
]
});
function createApp() {
const app = createSSRApp(_sfc_main);
const pinia = createPinia();
app.use(pinia);
app.use(createHead());
app.use(i18nPlugin);
app.use(router);
app.use(plausible);
app.use(naive);
return { app, router, pinia, i18n: i18nPlugin };
}
const __uno = '';
export { createApp as c };