it-tools/dist/server/chunks/chunk-1c9c06f6.js
2024-04-28 00:48:29 +08:00

1559 lines
59 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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 };