diff --git a/.gitignore b/.gitignore index 7794f9d..18fdbf6 100644 --- a/.gitignore +++ b/.gitignore @@ -17,4 +17,6 @@ dist.zip bun.lockb -.env.*.local \ No newline at end of file +.env.*.local + +out \ No newline at end of file diff --git a/out/main/index.js b/out/main/index.js deleted file mode 100644 index f188d04..0000000 --- a/out/main/index.js +++ /dev/null @@ -1,323 +0,0 @@ -"use strict"; -const utils = require("@electron-toolkit/utils"); -const electron = require("electron"); -const Store = require("electron-store"); -const path = require("path"); -const fs = require("fs"); -const os = require("os"); -const match = require("@unblockneteasemusic/server"); -const server = require("netease-cloud-music-api-alger/server"); -const isProxy = false; -const noAnimate = false; -const animationSpeed = 1; -const author = "Alger"; -const authorUrl = "https://github.com/algerkong"; -const musicApiPort = 30488; -const set = { - isProxy, - noAnimate, - animationSpeed, - author, - authorUrl, - musicApiPort -}; -const store$2 = new Store(); -let lyricWindow = null; -const createWin = () => { - console.log("Creating lyric window"); - const windowBounds = store$2.get("lyricWindowBounds") || {}; - const { x, y, width, height } = windowBounds; - const { width: screenWidth, height: screenHeight } = electron.screen.getPrimaryDisplay().workAreaSize; - const validPosition = x !== void 0 && y !== void 0 && x >= 0 && y >= 0 && x < screenWidth && y < screenHeight; - lyricWindow = new electron.BrowserWindow({ - width: width || 800, - height: height || 200, - x: validPosition ? x : void 0, - y: validPosition ? y : void 0, - frame: false, - show: false, - transparent: true, - hasShadow: false, - alwaysOnTop: true, - webPreferences: { - preload: path.join(__dirname, "../preload/index.js"), - sandbox: false, - contextIsolation: true - } - }); - lyricWindow.on("closed", () => { - if (lyricWindow) { - lyricWindow.destroy(); - lyricWindow = null; - } - }); - return lyricWindow; -}; -const loadLyricWindow = (ipcMain, mainWin) => { - const showLyricWindow = () => { - if (lyricWindow && !lyricWindow.isDestroyed()) { - if (lyricWindow.isMinimized()) { - lyricWindow.restore(); - } - lyricWindow.focus(); - lyricWindow.show(); - return true; - } - return false; - }; - ipcMain.on("open-lyric", () => { - console.log("Received open-lyric request"); - if (showLyricWindow()) { - return; - } - console.log("Creating new lyric window"); - const win = createWin(); - if (!win) { - console.error("Failed to create lyric window"); - return; - } - if (process.env.NODE_ENV === "development") { - win.webContents.openDevTools({ mode: "detach" }); - win.loadURL(`${process.env.ELECTRON_RENDERER_URL}/#/lyric`); - } else { - const distPath = path.resolve(__dirname, "../renderer"); - win.loadURL(`file://${distPath}/index.html#/lyric`); - } - win.setMinimumSize(600, 200); - win.setSkipTaskbar(true); - win.once("ready-to-show", () => { - console.log("Lyric window ready to show"); - win.show(); - }); - }); - ipcMain.on("send-lyric", (_, data) => { - if (lyricWindow && !lyricWindow.isDestroyed()) { - try { - lyricWindow.webContents.send("receive-lyric", data); - } catch (error) { - console.error("Error processing lyric data:", error); - } - } - }); - ipcMain.on("top-lyric", (_, data) => { - if (lyricWindow && !lyricWindow.isDestroyed()) { - lyricWindow.setAlwaysOnTop(data); - } - }); - ipcMain.on("close-lyric", () => { - if (lyricWindow && !lyricWindow.isDestroyed()) { - lyricWindow.webContents.send("lyric-window-close"); - mainWin.webContents.send("lyric-control-back", "close"); - lyricWindow.destroy(); - lyricWindow = null; - } - }); - ipcMain.on("mouseenter-lyric", () => { - if (lyricWindow && !lyricWindow.isDestroyed()) { - lyricWindow.setIgnoreMouseEvents(true); - } - }); - ipcMain.on("mouseleave-lyric", () => { - if (lyricWindow && !lyricWindow.isDestroyed()) { - lyricWindow.setIgnoreMouseEvents(false); - } - }); - ipcMain.on("lyric-drag-move", (_, { deltaX, deltaY }) => { - if (!lyricWindow || lyricWindow.isDestroyed()) return; - const [currentX, currentY] = lyricWindow.getPosition(); - const { width: screenWidth, height: screenHeight } = electron.screen.getPrimaryDisplay().workAreaSize; - const [windowWidth, windowHeight] = lyricWindow.getSize(); - const newX = Math.max(0, Math.min(currentX + deltaX, screenWidth - windowWidth)); - const newY = Math.max(0, Math.min(currentY + deltaY, screenHeight - windowHeight)); - lyricWindow.setPosition(newX, newY); - store$2.set("lyricWindowBounds", { - ...lyricWindow.getBounds(), - x: newX, - y: newY - }); - }); - ipcMain.on("set-ignore-mouse", (_, shouldIgnore) => { - if (!lyricWindow || lyricWindow.isDestroyed()) return; - lyricWindow.setIgnoreMouseEvents(shouldIgnore, { forward: true }); - }); - ipcMain.on("control-back", (_, command) => { - console.log("command", command); - if (mainWin && !mainWin.isDestroyed()) { - console.log("Sending control-back command:", command); - mainWin.webContents.send("lyric-control-back", command); - } - }); -}; -const unblockMusic = async (id) => { - return new Promise((resolve, reject) => { - match(parseInt(id, 10), ["qq", "migu", "kugou", "joox"]).then((data) => { - resolve({ - data: { - data, - params: { - id, - type: "song" - } - } - }); - }).catch((err) => { - reject(err); - }); - }); -}; -const store$1 = new Store(); -if (!fs.existsSync(path.resolve(os.tmpdir(), "anonymous_token"))) { - fs.writeFileSync(path.resolve(os.tmpdir(), "anonymous_token"), "", "utf-8"); -} -electron.ipcMain.handle("unblock-music", async (_, id) => { - return unblockMusic(id); -}); -async function startMusicApi() { - console.log("MUSIC API STARTED"); - const port = store$1.get("set").musicApiPort || 30488; - await server.serveNcmApi({ - port - }); -} -const iconPath = path.join(__dirname, "../../resources"); -const icon = electron.nativeImage.createFromPath( - process.platform === "darwin" ? path.join(iconPath, "icon.icns") : process.platform === "win32" ? path.join(iconPath, "favicon.ico") : path.join(iconPath, "icon.png") -); -let mainWindow; -function createWindow() { - startMusicApi(); - mainWindow = new electron.BrowserWindow({ - width: 1200, - height: 780, - show: false, - frame: false, - autoHideMenuBar: true, - icon, - webPreferences: { - preload: path.join(__dirname, "../preload/index.js"), - sandbox: false, - contextIsolation: true - } - }); - mainWindow.setMinimumSize(1200, 780); - mainWindow.on("ready-to-show", () => { - mainWindow.show(); - }); - mainWindow.webContents.setWindowOpenHandler((details) => { - electron.shell.openExternal(details.url); - return { action: "deny" }; - }); - if (utils.is.dev && process.env.ELECTRON_RENDERER_URL) { - mainWindow.webContents.openDevTools({ mode: "detach" }); - mainWindow.loadURL(process.env.ELECTRON_RENDERER_URL); - } else { - mainWindow.webContents.openDevTools({ mode: "detach" }); - mainWindow.loadFile(path.join(__dirname, "../renderer/index.html")); - } - const trayIcon = electron.nativeImage.createFromPath(path.join(iconPath, "icon_16x16.png")).resize({ width: 16, height: 16 }); - const tray = new electron.Tray(trayIcon); - const contextMenu = electron.Menu.buildFromTemplate([ - { - label: "显示", - click: () => { - mainWindow.show(); - } - }, - { - label: "退出", - click: () => { - mainWindow.destroy(); - electron.app.quit(); - } - } - ]); - tray.setContextMenu(contextMenu); - tray.on("click", () => { - if (mainWindow.isVisible()) { - mainWindow.hide(); - } else { - mainWindow.show(); - } - }); - loadLyricWindow(electron.ipcMain, mainWindow); -} -electron.app.whenReady().then(() => { - utils.electronApp.setAppUserModelId("com.alger.music"); - electron.app.on("browser-window-created", (_, window) => { - utils.optimizer.watchWindowShortcuts(window); - }); - electron.ipcMain.on("ping", () => console.log("pong")); - createWindow(); - electron.app.on("activate", function() { - if (electron.BrowserWindow.getAllWindows().length === 0) createWindow(); - }); -}); -electron.app.on("ready", () => { - electron.globalShortcut.register("CommandOrControl+Alt+Shift+M", () => { - if (mainWindow.isVisible()) { - mainWindow.hide(); - } else { - mainWindow.show(); - } - }); -}); -electron.app.on("window-all-closed", () => { - if (process.platform !== "darwin") { - electron.app.quit(); - } -}); -electron.ipcMain.on("minimize-window", (event) => { - const win = electron.BrowserWindow.fromWebContents(event.sender); - if (win) { - win.minimize(); - } -}); -electron.ipcMain.on("maximize-window", (event) => { - const win = electron.BrowserWindow.fromWebContents(event.sender); - if (win) { - if (win.isMaximized()) { - win.unmaximize(); - } else { - win.maximize(); - } - } -}); -electron.ipcMain.on("close-window", (event) => { - const win = electron.BrowserWindow.fromWebContents(event.sender); - if (win) { - win.destroy(); - electron.app.quit(); - } -}); -electron.ipcMain.on("drag-start", (event) => { - const win = electron.BrowserWindow.fromWebContents(event.sender); - if (win) { - win.webContents.beginFrameSubscription((frameBuffer) => { - event.reply("frame-buffer", frameBuffer); - }); - } -}); -electron.ipcMain.on("mini-tray", (event) => { - const win = electron.BrowserWindow.fromWebContents(event.sender); - if (win) { - win.hide(); - } -}); -electron.ipcMain.on("restart", () => { - electron.app.relaunch(); - electron.app.exit(0); -}); -const store = new Store({ - name: "config", - // 配置文件名 - defaults: { - set - } -}); -electron.ipcMain.on("set-store-value", (_, key, value) => { - store.set(key, value); -}); -electron.ipcMain.on("get-store-value", (_, key) => { - const value = store.get(key); - _.returnValue = value || ""; -}); diff --git a/out/preload/index.js b/out/preload/index.js deleted file mode 100644 index f8670c8..0000000 --- a/out/preload/index.js +++ /dev/null @@ -1,25 +0,0 @@ -"use strict"; -const preload = require("@electron-toolkit/preload"); -const electron = require("electron"); -const api = { - minimize: () => electron.ipcRenderer.send("minimize-window"), - maximize: () => electron.ipcRenderer.send("maximize-window"), - close: () => electron.ipcRenderer.send("close-window"), - dragStart: (data) => electron.ipcRenderer.send("drag-start", data), - miniTray: () => electron.ipcRenderer.send("mini-tray"), - restart: () => electron.ipcRenderer.send("restart"), - openLyric: () => electron.ipcRenderer.send("open-lyric"), - sendLyric: (data) => electron.ipcRenderer.send("send-lyric", data), - unblockMusic: (id) => electron.ipcRenderer.invoke("unblock-music", id) -}; -if (process.contextIsolated) { - try { - electron.contextBridge.exposeInMainWorld("electron", preload.electronAPI); - electron.contextBridge.exposeInMainWorld("api", api); - } catch (error) { - console.error(error); - } -} else { - window.electron = preload.electronAPI; - window.api = api; -} diff --git a/out/renderer/assets/AppMenu-CbDXL_JE.js b/out/renderer/assets/AppMenu-CbDXL_JE.js deleted file mode 100644 index ae96239..0000000 --- a/out/renderer/assets/AppMenu-CbDXL_JE.js +++ /dev/null @@ -1,98 +0,0 @@ -import { d as defineComponent, af as useRoute, r as ref, E as watch, ar as resolveComponent, j as openBlock, c as createElementBlock, b as createBaseVNode, u as unref, a3 as Fragment, a4 as renderList, e as createVNode, f as withCtx, n as normalizeClass, a2 as normalizeStyle, t as toDisplayString, T as createCommentVNode, _ as _export_sfc } from "./index-DKaFsuse.js"; -const icon = "" + new URL("icon-mGmYaNg4.png", import.meta.url).href; -const _hoisted_1 = { class: "app-menu-header" }; -const _hoisted_2 = ["src"]; -const _hoisted_3 = { class: "app-menu-list" }; -const _sfc_main = /* @__PURE__ */ defineComponent({ - __name: "AppMenu", - props: { - size: { - type: String, - default: "26px" - }, - color: { - type: String, - default: "#aaa" - }, - selectColor: { - type: String, - default: "#10B981" - }, - menus: { - type: Array, - default: () => [] - } - }, - setup(__props) { - const props = __props; - const route = useRoute(); - const path = ref(route.path); - watch( - () => route.path, - async (newParams) => { - path.value = newParams; - } - ); - const isChecked = (index) => { - return path.value === props.menus[index].path; - }; - const iconStyle = (index) => { - const style = { - fontSize: props.size, - color: isChecked(index) ? props.selectColor : props.color - }; - return style; - }; - const isText = ref(false); - return (_ctx, _cache) => { - const _component_router_link = resolveComponent("router-link"); - return openBlock(), createElementBlock("div", null, [ - createBaseVNode("div", { - class: normalizeClass(["app-menu", { "app-menu-expanded": unref(isText) }]) - }, [ - createBaseVNode("div", _hoisted_1, [ - createBaseVNode("div", { - class: "app-menu-logo", - onClick: _cache[0] || (_cache[0] = ($event) => isText.value = !unref(isText)) - }, [ - createBaseVNode("img", { - src: unref(icon), - class: "w-9 h-9", - alt: "logo" - }, null, 8, _hoisted_2) - ]) - ]), - createBaseVNode("div", _hoisted_3, [ - (openBlock(true), createElementBlock(Fragment, null, renderList(__props.menus, (item, index) => { - return openBlock(), createElementBlock("div", { - key: item.path, - class: "app-menu-item" - }, [ - createVNode(_component_router_link, { - class: "app-menu-item-link", - to: item.path - }, { - default: withCtx(() => [ - createBaseVNode("i", { - class: normalizeClass(["iconfont app-menu-item-icon", item.meta.icon]), - style: normalizeStyle(iconStyle(index)) - }, null, 6), - unref(isText) ? (openBlock(), createElementBlock("span", { - key: 0, - class: normalizeClass(["app-menu-item-text ml-3", isChecked(index) ? "text-green-500" : ""]) - }, toDisplayString(item.meta.title), 3)) : createCommentVNode("", true) - ]), - _: 2 - }, 1032, ["to"]) - ]); - }), 128)) - ]) - ], 2) - ]); - }; - } -}); -const AppMenu = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-f209e92f"]]); -export { - AppMenu as default -}; diff --git a/out/renderer/assets/AppMenu-CbDXL_JE.js.gz b/out/renderer/assets/AppMenu-CbDXL_JE.js.gz deleted file mode 100644 index 4d6c45c..0000000 Binary files a/out/renderer/assets/AppMenu-CbDXL_JE.js.gz and /dev/null differ diff --git a/out/renderer/assets/AppMenu-iZYnVe2B.css b/out/renderer/assets/AppMenu-iZYnVe2B.css deleted file mode 100644 index 6b7185d..0000000 --- a/out/renderer/assets/AppMenu-iZYnVe2B.css +++ /dev/null @@ -1,90 +0,0 @@ -.app-menu[data-v-f209e92f] { - width: 100px; - flex-direction: column; - align-items: center; - justify-content: center; - padding-left: 0.25rem; - padding-right: 0.25rem; - transition-property: all; - transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - transition-duration: 300ms; -} -.app-menu-expanded[data-v-f209e92f] { - width: 160px; -} -.app-menu-expanded .app-menu-item[data-v-f209e92f] { - margin-right: 1rem; - border-radius: 0.25rem; -} -.app-menu-expanded .app-menu-item[data-v-f209e92f]:hover { - --tw-bg-opacity: 1; - background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1)); -} -.app-menu-expanded .app-menu-item[data-v-f209e92f]:hover:is(.dark *) { - --tw-bg-opacity: 1; - background-color: rgb(31 41 55 / var(--tw-bg-opacity, 1)); -} -.app-menu-item-link[data-v-f209e92f], -.app-menu-header[data-v-f209e92f] { - margin-left: 0.5rem; - display: flex; - width: 200px; - align-items: center; - overflow: hidden; - padding-left: 1.25rem; - padding-right: 1.25rem; -} -.app-menu-header[data-v-f209e92f] { - margin-left: 0.25rem; -} -.app-menu-item-link[data-v-f209e92f] { - margin-bottom: 1.5rem; - margin-top: 1.5rem; -} -.app-menu-item-icon[data-v-f209e92f] { - --tw-text-opacity: 1; - color: rgb(107 114 128 / var(--tw-text-opacity, 1)); - transition-property: all; - transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - transition-duration: 200ms; -} -.app-menu-item-icon[data-v-f209e92f]:is(.dark *) { - --tw-text-opacity: 1; - color: rgb(156 163 175 / var(--tw-text-opacity, 1)); -} -.app-menu-item-icon[data-v-f209e92f]:hover { - --tw-scale-x: 1.05 !important; - --tw-scale-y: 1.05 !important; - transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) !important; - --tw-text-opacity: 1 !important; - color: rgb(34 197 94 / var(--tw-text-opacity, 1)) !important; -} -.mobile .app-menu[data-v-f209e92f] { - max-width: 100%; - width: 100vw; - position: relative; - z-index: 999999; - border-top-width: 1px; - --tw-border-opacity: 1; - border-color: rgb(229 231 235 / var(--tw-border-opacity, 1)); - --tw-bg-opacity: 1; - background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1)); -} -.mobile .app-menu[data-v-f209e92f]:is(.dark *) { - --tw-border-opacity: 1; - border-color: rgb(55 65 81 / var(--tw-border-opacity, 1)); - --tw-bg-opacity: 1; - background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1)); -} -.mobile .app-menu-header[data-v-f209e92f] { - display: none; -} -.mobile .app-menu-list[data-v-f209e92f] { - display: flex; - justify-content: space-between; -} -.mobile .app-menu-item-link[data-v-f209e92f] { - margin-top: 1rem; - margin-bottom: 1rem; - width: auto; -} \ No newline at end of file diff --git a/out/renderer/assets/AppMenu-iZYnVe2B.css.gz b/out/renderer/assets/AppMenu-iZYnVe2B.css.gz deleted file mode 100644 index 5bd99f0..0000000 Binary files a/out/renderer/assets/AppMenu-iZYnVe2B.css.gz and /dev/null differ diff --git a/out/renderer/assets/Avatar-rQ2og-6c.js b/out/renderer/assets/Avatar-rQ2og-6c.js deleted file mode 100644 index b21f078..0000000 --- a/out/renderer/assets/Avatar-rQ2og-6c.js +++ /dev/null @@ -1,319 +0,0 @@ -import { i as isImageSupportNativeLazy, o as observeIntersection } from "./Image-DXClIklC.js"; -import { t as tagInjectionKey } from "./Tag-C0oC92WF.js"; -import { aL as createInjectionKey, p as cB, aN as insideModal, m as c, aO as insidePopover, Y as cE, d as defineComponent, x as useConfig, r as ref, G as computed, q as useTheme, ap as useThemeClass, o as onMounted, a8 as watchEffect, a as onBeforeUnmount, E as watch, K as resolveSlot, I as resolveWrappedSlot, l as h, as as inject, bw as avatarLight, ao as createKey, bx as color2Class, ay as VResizeObserver } from "./index-DKaFsuse.js"; -const avatarGroupInjectionKey = createInjectionKey("n-avatar-group"); -const style = cB("avatar", ` - width: var(--n-merged-size); - height: var(--n-merged-size); - color: #FFF; - font-size: var(--n-font-size); - display: inline-flex; - position: relative; - overflow: hidden; - text-align: center; - border: var(--n-border); - border-radius: var(--n-border-radius); - --n-merged-color: var(--n-color); - background-color: var(--n-merged-color); - transition: - border-color .3s var(--n-bezier), - background-color .3s var(--n-bezier), - color .3s var(--n-bezier); -`, [insideModal(c("&", "--n-merged-color: var(--n-color-modal);")), insidePopover(c("&", "--n-merged-color: var(--n-color-popover);")), c("img", ` - width: 100%; - height: 100%; - `), cE("text", ` - white-space: nowrap; - display: inline-block; - position: absolute; - left: 50%; - top: 50%; - `), cB("icon", ` - vertical-align: bottom; - font-size: calc(var(--n-merged-size) - 6px); - `), cE("text", "line-height: 1.25")]); -const avatarProps = Object.assign(Object.assign({}, useTheme.props), { - size: [String, Number], - src: String, - circle: { - type: Boolean, - default: void 0 - }, - objectFit: String, - round: { - type: Boolean, - default: void 0 - }, - bordered: { - type: Boolean, - default: void 0 - }, - onError: Function, - fallbackSrc: String, - intersectionObserverOptions: Object, - lazy: Boolean, - onLoad: Function, - renderPlaceholder: Function, - renderFallback: Function, - imgProps: Object, - /** @deprecated */ - color: String -}); -const __unplugin_components_2 = defineComponent({ - name: "Avatar", - props: avatarProps, - setup(props) { - const { - mergedClsPrefixRef, - inlineThemeDisabled - } = useConfig(props); - const hasLoadErrorRef = ref(false); - let memoedTextHtml = null; - const textRef = ref(null); - const selfRef = ref(null); - const fitTextTransform = () => { - const { - value: textEl - } = textRef; - if (textEl) { - if (memoedTextHtml === null || memoedTextHtml !== textEl.innerHTML) { - memoedTextHtml = textEl.innerHTML; - const { - value: selfEl - } = selfRef; - if (selfEl) { - const { - offsetWidth: elWidth, - offsetHeight: elHeight - } = selfEl; - const { - offsetWidth: textWidth, - offsetHeight: textHeight - } = textEl; - const radix = 0.9; - const ratio = Math.min(elWidth / textWidth * radix, elHeight / textHeight * radix, 1); - textEl.style.transform = `translateX(-50%) translateY(-50%) scale(${ratio})`; - } - } - } - }; - const NAvatarGroup = inject(avatarGroupInjectionKey, null); - const mergedSizeRef = computed(() => { - const { - size - } = props; - if (size) return size; - const { - size: avatarGroupSize - } = NAvatarGroup || {}; - if (avatarGroupSize) return avatarGroupSize; - return "medium"; - }); - const themeRef = useTheme("Avatar", "-avatar", style, avatarLight, props, mergedClsPrefixRef); - const TagInjection = inject(tagInjectionKey, null); - const mergedRoundRef = computed(() => { - if (NAvatarGroup) return true; - const { - round, - circle - } = props; - if (round !== void 0 || circle !== void 0) return round || circle; - if (TagInjection) { - return TagInjection.roundRef.value; - } - return false; - }); - const mergedBorderedRef = computed(() => { - if (NAvatarGroup) return true; - return props.bordered || false; - }); - const cssVarsRef = computed(() => { - const size = mergedSizeRef.value; - const round = mergedRoundRef.value; - const bordered = mergedBorderedRef.value; - const { - color: propColor - } = props; - const { - self: { - borderRadius, - fontSize, - color, - border, - colorModal, - colorPopover - }, - common: { - cubicBezierEaseInOut - } - } = themeRef.value; - let height; - if (typeof size === "number") { - height = `${size}px`; - } else { - height = themeRef.value.self[createKey("height", size)]; - } - return { - "--n-font-size": fontSize, - "--n-border": bordered ? border : "none", - "--n-border-radius": round ? "50%" : borderRadius, - "--n-color": propColor || color, - "--n-color-modal": propColor || colorModal, - "--n-color-popover": propColor || colorPopover, - "--n-bezier": cubicBezierEaseInOut, - "--n-merged-size": `var(--n-avatar-size-override, ${height})` - }; - }); - const themeClassHandle = inlineThemeDisabled ? useThemeClass("avatar", computed(() => { - const size = mergedSizeRef.value; - const round = mergedRoundRef.value; - const bordered = mergedBorderedRef.value; - const { - color - } = props; - let hash = ""; - if (size) { - if (typeof size === "number") { - hash += `a${size}`; - } else { - hash += size[0]; - } - } - if (round) { - hash += "b"; - } - if (bordered) { - hash += "c"; - } - if (color) { - hash += color2Class(color); - } - return hash; - }), cssVarsRef, props) : void 0; - const shouldStartLoadingRef = ref(!props.lazy); - onMounted(() => { - if (props.lazy && props.intersectionObserverOptions) { - let unobserve; - const stopWatchHandle = watchEffect(() => { - unobserve === null || unobserve === void 0 ? void 0 : unobserve(); - unobserve = void 0; - if (props.lazy) { - unobserve = observeIntersection(selfRef.value, props.intersectionObserverOptions, shouldStartLoadingRef); - } - }); - onBeforeUnmount(() => { - stopWatchHandle(); - unobserve === null || unobserve === void 0 ? void 0 : unobserve(); - }); - } - }); - watch(() => { - var _a; - return props.src || ((_a = props.imgProps) === null || _a === void 0 ? void 0 : _a.src); - }, () => { - hasLoadErrorRef.value = false; - }); - const loadedRef = ref(!props.lazy); - return { - textRef, - selfRef, - mergedRoundRef, - mergedClsPrefix: mergedClsPrefixRef, - fitTextTransform, - cssVars: inlineThemeDisabled ? void 0 : cssVarsRef, - themeClass: themeClassHandle === null || themeClassHandle === void 0 ? void 0 : themeClassHandle.themeClass, - onRender: themeClassHandle === null || themeClassHandle === void 0 ? void 0 : themeClassHandle.onRender, - hasLoadError: hasLoadErrorRef, - shouldStartLoading: shouldStartLoadingRef, - loaded: loadedRef, - mergedOnError: (e) => { - if (!shouldStartLoadingRef.value) return; - hasLoadErrorRef.value = true; - const { - onError, - imgProps: { - onError: imgPropsOnError - } = {} - } = props; - onError === null || onError === void 0 ? void 0 : onError(e); - imgPropsOnError === null || imgPropsOnError === void 0 ? void 0 : imgPropsOnError(e); - }, - mergedOnLoad: (e) => { - const { - onLoad, - imgProps: { - onLoad: imgPropsOnLoad - } = {} - } = props; - onLoad === null || onLoad === void 0 ? void 0 : onLoad(e); - imgPropsOnLoad === null || imgPropsOnLoad === void 0 ? void 0 : imgPropsOnLoad(e); - loadedRef.value = true; - } - }; - }, - render() { - var _a, _b; - const { - $slots, - src, - mergedClsPrefix, - lazy, - onRender, - loaded, - hasLoadError, - imgProps = {} - } = this; - onRender === null || onRender === void 0 ? void 0 : onRender(); - let img; - const placeholderNode = !loaded && !hasLoadError && (this.renderPlaceholder ? this.renderPlaceholder() : (_b = (_a = this.$slots).placeholder) === null || _b === void 0 ? void 0 : _b.call(_a)); - if (this.hasLoadError) { - img = this.renderFallback ? this.renderFallback() : resolveSlot($slots.fallback, () => [h("img", { - src: this.fallbackSrc, - style: { - objectFit: this.objectFit - } - })]); - } else { - img = resolveWrappedSlot($slots.default, (children) => { - if (children) { - return h(VResizeObserver, { - onResize: this.fitTextTransform - }, { - default: () => h("span", { - ref: "textRef", - class: `${mergedClsPrefix}-avatar__text` - }, children) - }); - } else if (src || imgProps.src) { - const loadSrc = this.src || imgProps.src; - return h("img", Object.assign(Object.assign({}, imgProps), { - loading: ( - // If interseciton observer options is set, do not use native lazy - isImageSupportNativeLazy && !this.intersectionObserverOptions && lazy ? "lazy" : "eager" - ), - src: lazy && this.intersectionObserverOptions ? this.shouldStartLoading ? loadSrc : void 0 : loadSrc, - "data-image-src": loadSrc, - onLoad: this.mergedOnLoad, - onError: this.mergedOnError, - style: [imgProps.style || "", { - objectFit: this.objectFit - }, placeholderNode ? { - height: "0", - width: "0", - visibility: "hidden", - position: "absolute" - } : ""] - })); - } - }); - } - return h("span", { - ref: "selfRef", - class: [`${mergedClsPrefix}-avatar`, this.themeClass], - style: this.cssVars - }, img, lazy && placeholderNode); - } -}); -export { - __unplugin_components_2 as _ -}; diff --git a/out/renderer/assets/Avatar-rQ2og-6c.js.gz b/out/renderer/assets/Avatar-rQ2og-6c.js.gz deleted file mode 100644 index 7f32948..0000000 Binary files a/out/renderer/assets/Avatar-rQ2og-6c.js.gz and /dev/null differ diff --git a/out/renderer/assets/Drawer-BEJ8Ydua.js b/out/renderer/assets/Drawer-BEJ8Ydua.js deleted file mode 100644 index dea8270..0000000 --- a/out/renderer/assets/Drawer-BEJ8Ydua.js +++ /dev/null @@ -1,803 +0,0 @@ -import { d as defineComponent, r as ref, as as inject, G as computed, x as useConfig, F as useRtl, a8 as watchEffect, E as watch, a as onBeforeUnmount, aT as clickoutside, aU as useLockHtmlScroll, $ as provide, w as withDirectives, a6 as vShow, l as h, aV as FocusTrap, ak as Transition, ax as mergeProps, aK as Scrollbar, aW as drawerInjectionKey, aX as drawerBodyInjectionKey, aY as popoverBodyInjectionKey, aZ as modalBodyInjectionKey, m as c, a_ as commonVariables, p as cB, W as cM, Y as cE, a$ as fadeInTransition, aR as isMounted, q as useTheme, C as useMergedState, A as toRef, b0 as useIsComposing, ap as useThemeClass, b1 as LazyTeleport, b2 as drawerLight, b3 as eventEffectNotPerformed, L as call, b4 as zindexable } from "./index-DKaFsuse.js"; -import { f as formatLength } from "./Image-DXClIklC.js"; -const NDrawerBodyWrapper = defineComponent({ - name: "NDrawerContent", - inheritAttrs: false, - props: { - blockScroll: Boolean, - show: { - type: Boolean, - default: void 0 - }, - displayDirective: { - type: String, - required: true - }, - placement: { - type: String, - required: true - }, - contentClass: String, - contentStyle: [Object, String], - nativeScrollbar: { - type: Boolean, - required: true - }, - scrollbarProps: Object, - trapFocus: { - type: Boolean, - default: true - }, - autoFocus: { - type: Boolean, - default: true - }, - showMask: { - type: [Boolean, String], - required: true - }, - maxWidth: Number, - maxHeight: Number, - minWidth: Number, - minHeight: Number, - resizable: Boolean, - onClickoutside: Function, - onAfterLeave: Function, - onAfterEnter: Function, - onEsc: Function - }, - setup(props) { - const displayedRef = ref(!!props.show); - const bodyRef = ref(null); - const NDrawer = inject(drawerInjectionKey); - let startPosition = 0; - let memoizedBodyStyleCursor = ""; - let hoverTimerId = null; - const isHoverOnResizeTriggerRef = ref(false); - const isDraggingRef = ref(false); - const isVertical = computed(() => { - return props.placement === "top" || props.placement === "bottom"; - }); - const { - mergedClsPrefixRef, - mergedRtlRef - } = useConfig(props); - const rtlEnabledRef = useRtl("Drawer", mergedRtlRef, mergedClsPrefixRef); - const handleBodyMouseleave = handleBodyMouseup; - const handleMousedownResizeTrigger = (e) => { - isDraggingRef.value = true; - startPosition = isVertical.value ? e.clientY : e.clientX; - memoizedBodyStyleCursor = document.body.style.cursor; - document.body.style.cursor = isVertical.value ? "ns-resize" : "ew-resize"; - document.body.addEventListener("mousemove", handleBodyMousemove); - document.body.addEventListener("mouseleave", handleBodyMouseleave); - document.body.addEventListener("mouseup", handleBodyMouseup); - }; - const handleMouseenterResizeTrigger = () => { - if (hoverTimerId !== null) { - window.clearTimeout(hoverTimerId); - hoverTimerId = null; - } - if (isDraggingRef.value) { - isHoverOnResizeTriggerRef.value = true; - } else { - hoverTimerId = window.setTimeout(() => { - isHoverOnResizeTriggerRef.value = true; - }, 300); - } - }; - const handleMouseleaveResizeTrigger = () => { - if (hoverTimerId !== null) { - window.clearTimeout(hoverTimerId); - hoverTimerId = null; - } - isHoverOnResizeTriggerRef.value = false; - }; - const { - doUpdateHeight, - doUpdateWidth - } = NDrawer; - const regulateWidth = (size) => { - const { - maxWidth - } = props; - if (maxWidth && size > maxWidth) return maxWidth; - const { - minWidth - } = props; - if (minWidth && size < minWidth) return minWidth; - return size; - }; - const regulateHeight = (size) => { - const { - maxHeight - } = props; - if (maxHeight && size > maxHeight) return maxHeight; - const { - minHeight - } = props; - if (minHeight && size < minHeight) return minHeight; - return size; - }; - function handleBodyMousemove(e) { - var _a, _b; - if (isDraggingRef.value) { - if (isVertical.value) { - let height = ((_a = bodyRef.value) === null || _a === void 0 ? void 0 : _a.offsetHeight) || 0; - const increment = startPosition - e.clientY; - height += props.placement === "bottom" ? increment : -increment; - height = regulateHeight(height); - doUpdateHeight(height); - startPosition = e.clientY; - } else { - let width = ((_b = bodyRef.value) === null || _b === void 0 ? void 0 : _b.offsetWidth) || 0; - const increment = startPosition - e.clientX; - width += props.placement === "right" ? increment : -increment; - width = regulateWidth(width); - doUpdateWidth(width); - startPosition = e.clientX; - } - } - } - function handleBodyMouseup() { - if (isDraggingRef.value) { - startPosition = 0; - isDraggingRef.value = false; - document.body.style.cursor = memoizedBodyStyleCursor; - document.body.removeEventListener("mousemove", handleBodyMousemove); - document.body.removeEventListener("mouseup", handleBodyMouseup); - document.body.removeEventListener("mouseleave", handleBodyMouseleave); - } - } - watchEffect(() => { - if (props.show) displayedRef.value = true; - }); - watch(() => props.show, (value) => { - if (!value) { - handleBodyMouseup(); - } - }); - onBeforeUnmount(() => { - handleBodyMouseup(); - }); - const bodyDirectivesRef = computed(() => { - const { - show - } = props; - const directives = [[vShow, show]]; - if (!props.showMask) { - directives.push([clickoutside, props.onClickoutside, void 0, { - capture: true - }]); - } - return directives; - }); - function handleAfterLeave() { - var _a; - displayedRef.value = false; - (_a = props.onAfterLeave) === null || _a === void 0 ? void 0 : _a.call(props); - } - useLockHtmlScroll(computed(() => props.blockScroll && displayedRef.value)); - provide(drawerBodyInjectionKey, bodyRef); - provide(popoverBodyInjectionKey, null); - provide(modalBodyInjectionKey, null); - return { - bodyRef, - rtlEnabled: rtlEnabledRef, - mergedClsPrefix: NDrawer.mergedClsPrefixRef, - isMounted: NDrawer.isMountedRef, - mergedTheme: NDrawer.mergedThemeRef, - displayed: displayedRef, - transitionName: computed(() => { - return { - right: "slide-in-from-right-transition", - left: "slide-in-from-left-transition", - top: "slide-in-from-top-transition", - bottom: "slide-in-from-bottom-transition" - }[props.placement]; - }), - handleAfterLeave, - bodyDirectives: bodyDirectivesRef, - handleMousedownResizeTrigger, - handleMouseenterResizeTrigger, - handleMouseleaveResizeTrigger, - isDragging: isDraggingRef, - isHoverOnResizeTrigger: isHoverOnResizeTriggerRef - }; - }, - render() { - const { - $slots, - mergedClsPrefix - } = this; - return this.displayDirective === "show" || this.displayed || this.show ? withDirectives( - /* Keep the wrapper dom. Make sure the drawer has a host. - Nor the detached content will disappear without transition */ - h("div", { - role: "none" - }, h(FocusTrap, { - disabled: !this.showMask || !this.trapFocus, - active: this.show, - autoFocus: this.autoFocus, - onEsc: this.onEsc - }, { - default: () => h(Transition, { - name: this.transitionName, - appear: this.isMounted, - onAfterEnter: this.onAfterEnter, - onAfterLeave: this.handleAfterLeave - }, { - default: () => withDirectives(h("div", mergeProps(this.$attrs, { - role: "dialog", - ref: "bodyRef", - "aria-modal": "true", - class: [ - `${mergedClsPrefix}-drawer`, - this.rtlEnabled && `${mergedClsPrefix}-drawer--rtl`, - `${mergedClsPrefix}-drawer--${this.placement}-placement`, - /** - * When the mouse is pressed to resize the drawer, - * disable text selection - */ - this.isDragging && `${mergedClsPrefix}-drawer--unselectable`, - this.nativeScrollbar && `${mergedClsPrefix}-drawer--native-scrollbar` - ] - }), [this.resizable ? h("div", { - class: [`${mergedClsPrefix}-drawer__resize-trigger`, (this.isDragging || this.isHoverOnResizeTrigger) && `${mergedClsPrefix}-drawer__resize-trigger--hover`], - onMouseenter: this.handleMouseenterResizeTrigger, - onMouseleave: this.handleMouseleaveResizeTrigger, - onMousedown: this.handleMousedownResizeTrigger - }) : null, this.nativeScrollbar ? h("div", { - class: [`${mergedClsPrefix}-drawer-content-wrapper`, this.contentClass], - style: this.contentStyle, - role: "none" - }, $slots) : h(Scrollbar, Object.assign({}, this.scrollbarProps, { - contentStyle: this.contentStyle, - contentClass: [`${mergedClsPrefix}-drawer-content-wrapper`, this.contentClass], - theme: this.mergedTheme.peers.Scrollbar, - themeOverrides: this.mergedTheme.peerOverrides.Scrollbar - }), $slots)]), this.bodyDirectives) - }) - })), - [[vShow, this.displayDirective === "if" || this.displayed || this.show]] - ) : null; - } -}); -const { - cubicBezierEaseIn: cubicBezierEaseIn$3, - cubicBezierEaseOut: cubicBezierEaseOut$3 -} = commonVariables; -function slideInFromBottomTransition({ - duration = "0.3s", - leaveDuration = "0.2s", - name = "slide-in-from-bottom" -} = {}) { - return [c(`&.${name}-transition-leave-active`, { - transition: `transform ${leaveDuration} ${cubicBezierEaseIn$3}` - }), c(`&.${name}-transition-enter-active`, { - transition: `transform ${duration} ${cubicBezierEaseOut$3}` - }), c(`&.${name}-transition-enter-to`, { - transform: "translateY(0)" - }), c(`&.${name}-transition-enter-from`, { - transform: "translateY(100%)" - }), c(`&.${name}-transition-leave-from`, { - transform: "translateY(0)" - }), c(`&.${name}-transition-leave-to`, { - transform: "translateY(100%)" - })]; -} -const { - cubicBezierEaseIn: cubicBezierEaseIn$2, - cubicBezierEaseOut: cubicBezierEaseOut$2 -} = commonVariables; -function slideInFromLeftTransition({ - duration = "0.3s", - leaveDuration = "0.2s", - name = "slide-in-from-left" -} = {}) { - return [c(`&.${name}-transition-leave-active`, { - transition: `transform ${leaveDuration} ${cubicBezierEaseIn$2}` - }), c(`&.${name}-transition-enter-active`, { - transition: `transform ${duration} ${cubicBezierEaseOut$2}` - }), c(`&.${name}-transition-enter-to`, { - transform: "translateX(0)" - }), c(`&.${name}-transition-enter-from`, { - transform: "translateX(-100%)" - }), c(`&.${name}-transition-leave-from`, { - transform: "translateX(0)" - }), c(`&.${name}-transition-leave-to`, { - transform: "translateX(-100%)" - })]; -} -const { - cubicBezierEaseIn: cubicBezierEaseIn$1, - cubicBezierEaseOut: cubicBezierEaseOut$1 -} = commonVariables; -function slideInFromRightTransition({ - duration = "0.3s", - leaveDuration = "0.2s", - name = "slide-in-from-right" -} = {}) { - return [c(`&.${name}-transition-leave-active`, { - transition: `transform ${leaveDuration} ${cubicBezierEaseIn$1}` - }), c(`&.${name}-transition-enter-active`, { - transition: `transform ${duration} ${cubicBezierEaseOut$1}` - }), c(`&.${name}-transition-enter-to`, { - transform: "translateX(0)" - }), c(`&.${name}-transition-enter-from`, { - transform: "translateX(100%)" - }), c(`&.${name}-transition-leave-from`, { - transform: "translateX(0)" - }), c(`&.${name}-transition-leave-to`, { - transform: "translateX(100%)" - })]; -} -const { - cubicBezierEaseIn, - cubicBezierEaseOut -} = commonVariables; -function slideInFromTopTransition({ - duration = "0.3s", - leaveDuration = "0.2s", - name = "slide-in-from-top" -} = {}) { - return [c(`&.${name}-transition-leave-active`, { - transition: `transform ${leaveDuration} ${cubicBezierEaseIn}` - }), c(`&.${name}-transition-enter-active`, { - transition: `transform ${duration} ${cubicBezierEaseOut}` - }), c(`&.${name}-transition-enter-to`, { - transform: "translateY(0)" - }), c(`&.${name}-transition-enter-from`, { - transform: "translateY(-100%)" - }), c(`&.${name}-transition-leave-from`, { - transform: "translateY(0)" - }), c(`&.${name}-transition-leave-to`, { - transform: "translateY(-100%)" - })]; -} -const style = c([cB("drawer", ` - word-break: break-word; - line-height: var(--n-line-height); - position: absolute; - pointer-events: all; - box-shadow: var(--n-box-shadow); - transition: - background-color .3s var(--n-bezier), - color .3s var(--n-bezier); - background-color: var(--n-color); - color: var(--n-text-color); - box-sizing: border-box; - `, [slideInFromRightTransition(), slideInFromLeftTransition(), slideInFromTopTransition(), slideInFromBottomTransition(), cM("unselectable", ` - user-select: none; - -webkit-user-select: none; - `), cM("native-scrollbar", [cB("drawer-content-wrapper", ` - overflow: auto; - height: 100%; - `)]), cE("resize-trigger", ` - position: absolute; - background-color: #0000; - transition: background-color .3s var(--n-bezier); - `, [cM("hover", ` - background-color: var(--n-resize-trigger-color-hover); - `)]), cB("drawer-content-wrapper", ` - box-sizing: border-box; - `), cB("drawer-content", ` - height: 100%; - display: flex; - flex-direction: column; - `, [cM("native-scrollbar", [cB("drawer-body-content-wrapper", ` - height: 100%; - overflow: auto; - `)]), cB("drawer-body", ` - flex: 1 0 0; - overflow: hidden; - `), cB("drawer-body-content-wrapper", ` - box-sizing: border-box; - padding: var(--n-body-padding); - `), cB("drawer-header", ` - font-weight: var(--n-title-font-weight); - line-height: 1; - font-size: var(--n-title-font-size); - color: var(--n-title-text-color); - padding: var(--n-header-padding); - transition: border .3s var(--n-bezier); - border-bottom: 1px solid var(--n-divider-color); - border-bottom: var(--n-header-border-bottom); - display: flex; - justify-content: space-between; - align-items: center; - `, [cE("main", ` - flex: 1; - `), cE("close", ` - margin-left: 6px; - transition: - background-color .3s var(--n-bezier), - color .3s var(--n-bezier); - `)]), cB("drawer-footer", ` - display: flex; - justify-content: flex-end; - border-top: var(--n-footer-border-top); - transition: border .3s var(--n-bezier); - padding: var(--n-footer-padding); - `)]), cM("right-placement", ` - top: 0; - bottom: 0; - right: 0; - border-top-left-radius: var(--n-border-radius); - border-bottom-left-radius: var(--n-border-radius); - `, [cE("resize-trigger", ` - width: 3px; - height: 100%; - top: 0; - left: 0; - transform: translateX(-1.5px); - cursor: ew-resize; - `)]), cM("left-placement", ` - top: 0; - bottom: 0; - left: 0; - border-top-right-radius: var(--n-border-radius); - border-bottom-right-radius: var(--n-border-radius); - `, [cE("resize-trigger", ` - width: 3px; - height: 100%; - top: 0; - right: 0; - transform: translateX(1.5px); - cursor: ew-resize; - `)]), cM("top-placement", ` - top: 0; - left: 0; - right: 0; - border-bottom-left-radius: var(--n-border-radius); - border-bottom-right-radius: var(--n-border-radius); - `, [cE("resize-trigger", ` - width: 100%; - height: 3px; - bottom: 0; - left: 0; - transform: translateY(1.5px); - cursor: ns-resize; - `)]), cM("bottom-placement", ` - left: 0; - bottom: 0; - right: 0; - border-top-left-radius: var(--n-border-radius); - border-top-right-radius: var(--n-border-radius); - `, [cE("resize-trigger", ` - width: 100%; - height: 3px; - top: 0; - left: 0; - transform: translateY(-1.5px); - cursor: ns-resize; - `)])]), c("body", [c(">", [cB("drawer-container", ` - position: fixed; - `)])]), cB("drawer-container", ` - position: relative; - position: absolute; - left: 0; - right: 0; - top: 0; - bottom: 0; - pointer-events: none; - `, [c("> *", ` - pointer-events: all; - `)]), cB("drawer-mask", ` - background-color: rgba(0, 0, 0, .3); - position: absolute; - left: 0; - right: 0; - top: 0; - bottom: 0; - `, [cM("invisible", ` - background-color: rgba(0, 0, 0, 0) - `), fadeInTransition({ - enterDuration: "0.2s", - leaveDuration: "0.2s", - enterCubicBezier: "var(--n-bezier-in)", - leaveCubicBezier: "var(--n-bezier-out)" -})])]); -const drawerProps = Object.assign(Object.assign({}, useTheme.props), { - show: Boolean, - width: [Number, String], - height: [Number, String], - placement: { - type: String, - default: "right" - }, - maskClosable: { - type: Boolean, - default: true - }, - showMask: { - type: [Boolean, String], - default: true - }, - to: [String, Object], - displayDirective: { - type: String, - default: "if" - }, - nativeScrollbar: { - type: Boolean, - default: true - }, - zIndex: Number, - onMaskClick: Function, - scrollbarProps: Object, - contentClass: String, - contentStyle: [Object, String], - trapFocus: { - type: Boolean, - default: true - }, - onEsc: Function, - autoFocus: { - type: Boolean, - default: true - }, - closeOnEsc: { - type: Boolean, - default: true - }, - blockScroll: { - type: Boolean, - default: true - }, - maxWidth: Number, - maxHeight: Number, - minWidth: Number, - minHeight: Number, - resizable: Boolean, - defaultWidth: { - type: [Number, String], - default: 251 - }, - defaultHeight: { - type: [Number, String], - default: 251 - }, - onUpdateWidth: [Function, Array], - onUpdateHeight: [Function, Array], - "onUpdate:width": [Function, Array], - "onUpdate:height": [Function, Array], - "onUpdate:show": [Function, Array], - onUpdateShow: [Function, Array], - onAfterEnter: Function, - onAfterLeave: Function, - /** @deprecated */ - drawerStyle: [String, Object], - drawerClass: String, - target: null, - onShow: Function, - onHide: Function -}); -const __unplugin_components_2 = defineComponent({ - name: "Drawer", - inheritAttrs: false, - props: drawerProps, - setup(props) { - const { - mergedClsPrefixRef, - namespaceRef, - inlineThemeDisabled - } = useConfig(props); - const isMountedRef = isMounted(); - const themeRef = useTheme("Drawer", "-drawer", style, drawerLight, props, mergedClsPrefixRef); - const uncontrolledWidthRef = ref(props.defaultWidth); - const uncontrolledHeightRef = ref(props.defaultHeight); - const mergedWidthRef = useMergedState(toRef(props, "width"), uncontrolledWidthRef); - const mergedHeightRef = useMergedState(toRef(props, "height"), uncontrolledHeightRef); - const styleWidthRef = computed(() => { - const { - placement - } = props; - if (placement === "top" || placement === "bottom") return ""; - return formatLength(mergedWidthRef.value); - }); - const styleHeightRef = computed(() => { - const { - placement - } = props; - if (placement === "left" || placement === "right") return ""; - return formatLength(mergedHeightRef.value); - }); - const doUpdateWidth = (value) => { - const { - onUpdateWidth, - "onUpdate:width": _onUpdateWidth - } = props; - if (onUpdateWidth) call(onUpdateWidth, value); - if (_onUpdateWidth) call(_onUpdateWidth, value); - uncontrolledWidthRef.value = value; - }; - const doUpdateHeight = (value) => { - const { - onUpdateHeight, - "onUpdate:width": _onUpdateHeight - } = props; - if (onUpdateHeight) call(onUpdateHeight, value); - if (_onUpdateHeight) call(_onUpdateHeight, value); - uncontrolledHeightRef.value = value; - }; - const mergedBodyStyleRef = computed(() => { - return [{ - width: styleWidthRef.value, - height: styleHeightRef.value - }, props.drawerStyle || ""]; - }); - function handleMaskClick(e) { - const { - onMaskClick, - maskClosable - } = props; - if (maskClosable) { - doUpdateShow(false); - } - if (onMaskClick) onMaskClick(e); - } - function handleOutsideClick(e) { - handleMaskClick(e); - } - const isComposingRef = useIsComposing(); - function handleEsc(e) { - var _a; - (_a = props.onEsc) === null || _a === void 0 ? void 0 : _a.call(props); - if (props.show && props.closeOnEsc && eventEffectNotPerformed(e)) { - if (!isComposingRef.value) { - doUpdateShow(false); - } - } - } - function doUpdateShow(show) { - const { - onHide, - onUpdateShow, - "onUpdate:show": _onUpdateShow - } = props; - if (onUpdateShow) call(onUpdateShow, show); - if (_onUpdateShow) call(_onUpdateShow, show); - if (onHide && !show) call(onHide, show); - } - provide(drawerInjectionKey, { - isMountedRef, - mergedThemeRef: themeRef, - mergedClsPrefixRef, - doUpdateShow, - doUpdateHeight, - doUpdateWidth - }); - const cssVarsRef = computed(() => { - const { - common: { - cubicBezierEaseInOut, - cubicBezierEaseIn: cubicBezierEaseIn2, - cubicBezierEaseOut: cubicBezierEaseOut2 - }, - self: { - color, - textColor, - boxShadow, - lineHeight, - headerPadding, - footerPadding, - borderRadius, - bodyPadding, - titleFontSize, - titleTextColor, - titleFontWeight, - headerBorderBottom, - footerBorderTop, - closeIconColor, - closeIconColorHover, - closeIconColorPressed, - closeColorHover, - closeColorPressed, - closeIconSize, - closeSize, - closeBorderRadius, - resizableTriggerColorHover - } - } = themeRef.value; - return { - "--n-line-height": lineHeight, - "--n-color": color, - "--n-border-radius": borderRadius, - "--n-text-color": textColor, - "--n-box-shadow": boxShadow, - "--n-bezier": cubicBezierEaseInOut, - "--n-bezier-out": cubicBezierEaseOut2, - "--n-bezier-in": cubicBezierEaseIn2, - "--n-header-padding": headerPadding, - "--n-body-padding": bodyPadding, - "--n-footer-padding": footerPadding, - "--n-title-text-color": titleTextColor, - "--n-title-font-size": titleFontSize, - "--n-title-font-weight": titleFontWeight, - "--n-header-border-bottom": headerBorderBottom, - "--n-footer-border-top": footerBorderTop, - "--n-close-icon-color": closeIconColor, - "--n-close-icon-color-hover": closeIconColorHover, - "--n-close-icon-color-pressed": closeIconColorPressed, - "--n-close-size": closeSize, - "--n-close-color-hover": closeColorHover, - "--n-close-color-pressed": closeColorPressed, - "--n-close-icon-size": closeIconSize, - "--n-close-border-radius": closeBorderRadius, - "--n-resize-trigger-color-hover": resizableTriggerColorHover - }; - }); - const themeClassHandle = inlineThemeDisabled ? useThemeClass("drawer", void 0, cssVarsRef, props) : void 0; - return { - mergedClsPrefix: mergedClsPrefixRef, - namespace: namespaceRef, - mergedBodyStyle: mergedBodyStyleRef, - handleOutsideClick, - handleMaskClick, - handleEsc, - mergedTheme: themeRef, - cssVars: inlineThemeDisabled ? void 0 : cssVarsRef, - themeClass: themeClassHandle === null || themeClassHandle === void 0 ? void 0 : themeClassHandle.themeClass, - onRender: themeClassHandle === null || themeClassHandle === void 0 ? void 0 : themeClassHandle.onRender, - isMounted: isMountedRef - }; - }, - render() { - const { - mergedClsPrefix - } = this; - return h(LazyTeleport, { - to: this.to, - show: this.show - }, { - default: () => { - var _a; - (_a = this.onRender) === null || _a === void 0 ? void 0 : _a.call(this); - return withDirectives(h("div", { - class: [`${mergedClsPrefix}-drawer-container`, this.namespace, this.themeClass], - style: this.cssVars, - role: "none" - }, this.showMask ? h(Transition, { - name: "fade-in-transition", - appear: this.isMounted - }, { - default: () => this.show ? h("div", { - "aria-hidden": true, - class: [`${mergedClsPrefix}-drawer-mask`, this.showMask === "transparent" && `${mergedClsPrefix}-drawer-mask--invisible`], - onClick: this.handleMaskClick - }) : null - }) : null, h(NDrawerBodyWrapper, Object.assign({}, this.$attrs, { - class: [this.drawerClass, this.$attrs.class], - style: [this.mergedBodyStyle, this.$attrs.style], - blockScroll: this.blockScroll, - contentStyle: this.contentStyle, - contentClass: this.contentClass, - placement: this.placement, - scrollbarProps: this.scrollbarProps, - show: this.show, - displayDirective: this.displayDirective, - nativeScrollbar: this.nativeScrollbar, - onAfterEnter: this.onAfterEnter, - onAfterLeave: this.onAfterLeave, - trapFocus: this.trapFocus, - autoFocus: this.autoFocus, - resizable: this.resizable, - maxHeight: this.maxHeight, - minHeight: this.minHeight, - maxWidth: this.maxWidth, - minWidth: this.minWidth, - showMask: this.showMask, - onEsc: this.handleEsc, - onClickoutside: this.handleOutsideClick - }), this.$slots)), [[zindexable, { - zIndex: this.zIndex, - enabled: this.show - }]]); - } - }); - } -}); -export { - __unplugin_components_2 as _ -}; diff --git a/out/renderer/assets/Drawer-BEJ8Ydua.js.gz b/out/renderer/assets/Drawer-BEJ8Ydua.js.gz deleted file mode 100644 index 26c87e9..0000000 Binary files a/out/renderer/assets/Drawer-BEJ8Ydua.js.gz and /dev/null differ diff --git a/out/renderer/assets/Ellipsis-D4R5dIX2.js b/out/renderer/assets/Ellipsis-D4R5dIX2.js deleted file mode 100644 index a30ba00..0000000 --- a/out/renderer/assets/Ellipsis-D4R5dIX2.js +++ /dev/null @@ -1,195 +0,0 @@ -import { p as cB, V as cNotM, W as cM, q as useTheme, d as defineComponent, b6 as useMergedClsPrefix, b7 as ellipsisLight, r as ref, G as computed, au as onDeactivated, l as h, ax as mergeProps } from "./index-DKaFsuse.js"; -import { _ as __unplugin_components_3 } from "./Image-DXClIklC.js"; -const style = cB("ellipsis", { - overflow: "hidden" -}, [cNotM("line-clamp", ` - white-space: nowrap; - display: inline-block; - vertical-align: bottom; - max-width: 100%; - `), cM("line-clamp", ` - display: -webkit-inline-box; - -webkit-box-orient: vertical; - `), cM("cursor-pointer", ` - cursor: pointer; - `)]); -function createLineClampClass(clsPrefix) { - return `${clsPrefix}-ellipsis--line-clamp`; -} -function createCursorClass(clsPrefix, cursor) { - return `${clsPrefix}-ellipsis--cursor-${cursor}`; -} -const ellipsisProps = Object.assign(Object.assign({}, useTheme.props), { - expandTrigger: String, - lineClamp: [Number, String], - tooltip: { - type: [Boolean, Object], - default: true - } -}); -const __unplugin_components_2 = defineComponent({ - name: "Ellipsis", - inheritAttrs: false, - props: ellipsisProps, - setup(props, { - slots, - attrs - }) { - const mergedClsPrefixRef = useMergedClsPrefix(); - const mergedTheme = useTheme("Ellipsis", "-ellipsis", style, ellipsisLight, props, mergedClsPrefixRef); - const triggerRef = ref(null); - const triggerInnerRef = ref(null); - const tooltipRef = ref(null); - const expandedRef = ref(false); - const ellipsisStyleRef = computed(() => { - const { - lineClamp - } = props; - const { - value: expanded - } = expandedRef; - if (lineClamp !== void 0) { - return { - textOverflow: "", - "-webkit-line-clamp": expanded ? "" : lineClamp - }; - } else { - return { - textOverflow: expanded ? "" : "ellipsis", - "-webkit-line-clamp": "" - }; - } - }); - function getTooltipDisabled() { - let tooltipDisabled = false; - const { - value: expanded - } = expandedRef; - if (expanded) return true; - const { - value: trigger - } = triggerRef; - if (trigger) { - const { - lineClamp - } = props; - syncEllipsisStyle(trigger); - if (lineClamp !== void 0) { - tooltipDisabled = trigger.scrollHeight <= trigger.offsetHeight; - } else { - const { - value: triggerInner - } = triggerInnerRef; - if (triggerInner) { - tooltipDisabled = triggerInner.getBoundingClientRect().width <= trigger.getBoundingClientRect().width; - } - } - syncCursorStyle(trigger, tooltipDisabled); - } - return tooltipDisabled; - } - const handleClickRef = computed(() => { - return props.expandTrigger === "click" ? () => { - var _a; - const { - value: expanded - } = expandedRef; - if (expanded) { - (_a = tooltipRef.value) === null || _a === void 0 ? void 0 : _a.setShow(false); - } - expandedRef.value = !expanded; - } : void 0; - }); - onDeactivated(() => { - var _a; - if (props.tooltip) { - (_a = tooltipRef.value) === null || _a === void 0 ? void 0 : _a.setShow(false); - } - }); - const renderTrigger = () => h("span", Object.assign({}, mergeProps(attrs, { - class: [`${mergedClsPrefixRef.value}-ellipsis`, props.lineClamp !== void 0 ? createLineClampClass(mergedClsPrefixRef.value) : void 0, props.expandTrigger === "click" ? createCursorClass(mergedClsPrefixRef.value, "pointer") : void 0], - style: ellipsisStyleRef.value - }), { - ref: "triggerRef", - onClick: handleClickRef.value, - onMouseenter: ( - // get tooltip disabled will derive cursor style - props.expandTrigger === "click" ? getTooltipDisabled : void 0 - ) - }), props.lineClamp ? slots : h("span", { - ref: "triggerInnerRef" - }, slots)); - function syncEllipsisStyle(trigger) { - if (!trigger) return; - const latestStyle = ellipsisStyleRef.value; - const lineClampClass = createLineClampClass(mergedClsPrefixRef.value); - if (props.lineClamp !== void 0) { - syncTriggerClass(trigger, lineClampClass, "add"); - } else { - syncTriggerClass(trigger, lineClampClass, "remove"); - } - for (const key in latestStyle) { - if (trigger.style[key] !== latestStyle[key]) { - trigger.style[key] = latestStyle[key]; - } - } - } - function syncCursorStyle(trigger, tooltipDisabled) { - const cursorClass = createCursorClass(mergedClsPrefixRef.value, "pointer"); - if (props.expandTrigger === "click" && !tooltipDisabled) { - syncTriggerClass(trigger, cursorClass, "add"); - } else { - syncTriggerClass(trigger, cursorClass, "remove"); - } - } - function syncTriggerClass(trigger, styleClass, action) { - if (action === "add") { - if (!trigger.classList.contains(styleClass)) { - trigger.classList.add(styleClass); - } - } else { - if (trigger.classList.contains(styleClass)) { - trigger.classList.remove(styleClass); - } - } - } - return { - mergedTheme, - triggerRef, - triggerInnerRef, - tooltipRef, - handleClick: handleClickRef, - renderTrigger, - getTooltipDisabled - }; - }, - render() { - var _a; - const { - tooltip, - renderTrigger, - $slots - } = this; - if (tooltip) { - const { - mergedTheme - } = this; - return h(__unplugin_components_3, Object.assign({ - ref: "tooltipRef", - placement: "top" - }, tooltip, { - getDisabled: this.getTooltipDisabled, - theme: mergedTheme.peers.Tooltip, - themeOverrides: mergedTheme.peerOverrides.Tooltip - }), { - trigger: renderTrigger, - default: (_a = $slots.tooltip) !== null && _a !== void 0 ? _a : $slots.default - }); - } else { - return renderTrigger(); - } - } -}); -export { - __unplugin_components_2 as _ -}; diff --git a/out/renderer/assets/Ellipsis-D4R5dIX2.js.gz b/out/renderer/assets/Ellipsis-D4R5dIX2.js.gz deleted file mode 100644 index 210f650..0000000 Binary files a/out/renderer/assets/Ellipsis-D4R5dIX2.js.gz and /dev/null differ diff --git a/out/renderer/assets/FiraCode-Regular-CRwVj4V2.woff2 b/out/renderer/assets/FiraCode-Regular-CRwVj4V2.woff2 deleted file mode 100644 index d58667c..0000000 Binary files a/out/renderer/assets/FiraCode-Regular-CRwVj4V2.woff2 and /dev/null differ diff --git a/out/renderer/assets/Icon-DucaliTK.js b/out/renderer/assets/Icon-DucaliTK.js deleted file mode 100644 index c25b924..0000000 --- a/out/renderer/assets/Icon-DucaliTK.js +++ /dev/null @@ -1,111 +0,0 @@ -import { p as cB, W as cM, m as c, q as useTheme, d as defineComponent, x as useConfig, bv as iconLight, G as computed, ap as useThemeClass, bd as warn, l as h, ax as mergeProps } from "./index-DKaFsuse.js"; -import { f as formatLength } from "./Image-DXClIklC.js"; -const style = cB("icon", ` - height: 1em; - width: 1em; - line-height: 1em; - text-align: center; - display: inline-block; - position: relative; - fill: currentColor; - transform: translateZ(0); -`, [cM("color-transition", { - transition: "color .3s var(--n-bezier)" -}), cM("depth", { - color: "var(--n-color)" -}, [c("svg", { - opacity: "var(--n-opacity)", - transition: "opacity .3s var(--n-bezier)" -})]), c("svg", { - height: "1em", - width: "1em" -})]); -const iconProps = Object.assign(Object.assign({}, useTheme.props), { - depth: [String, Number], - size: [Number, String], - color: String, - component: [Object, Function] -}); -const NIcon = defineComponent({ - _n_icon__: true, - name: "Icon", - inheritAttrs: false, - props: iconProps, - setup(props) { - const { - mergedClsPrefixRef, - inlineThemeDisabled - } = useConfig(props); - const themeRef = useTheme("Icon", "-icon", style, iconLight, props, mergedClsPrefixRef); - const cssVarsRef = computed(() => { - const { - depth - } = props; - const { - common: { - cubicBezierEaseInOut - }, - self - } = themeRef.value; - if (depth !== void 0) { - const { - color, - [`opacity${depth}Depth`]: opacity - } = self; - return { - "--n-bezier": cubicBezierEaseInOut, - "--n-color": color, - "--n-opacity": opacity - }; - } - return { - "--n-bezier": cubicBezierEaseInOut, - "--n-color": "", - "--n-opacity": "" - }; - }); - const themeClassHandle = inlineThemeDisabled ? useThemeClass("icon", computed(() => `${props.depth || "d"}`), cssVarsRef, props) : void 0; - return { - mergedClsPrefix: mergedClsPrefixRef, - mergedStyle: computed(() => { - const { - size, - color - } = props; - return { - fontSize: formatLength(size), - color - }; - }), - cssVars: inlineThemeDisabled ? void 0 : cssVarsRef, - themeClass: themeClassHandle === null || themeClassHandle === void 0 ? void 0 : themeClassHandle.themeClass, - onRender: themeClassHandle === null || themeClassHandle === void 0 ? void 0 : themeClassHandle.onRender - }; - }, - render() { - var _a; - const { - $parent, - depth, - mergedClsPrefix, - component, - onRender, - themeClass - } = this; - if ((_a = $parent === null || $parent === void 0 ? void 0 : $parent.$options) === null || _a === void 0 ? void 0 : _a._n_icon__) { - warn("icon", "don't wrap `n-icon` inside `n-icon`"); - } - onRender === null || onRender === void 0 ? void 0 : onRender(); - return h("i", mergeProps(this.$attrs, { - role: "img", - class: [`${mergedClsPrefix}-icon`, themeClass, { - [`${mergedClsPrefix}-icon--depth`]: depth, - [`${mergedClsPrefix}-icon--color-transition`]: depth !== void 0 - }], - style: [this.cssVars, this.mergedStyle] - }), component ? h(component) : this.$slots); - } -}); -export { - NIcon as N -}; diff --git a/out/renderer/assets/Icon-DucaliTK.js.gz b/out/renderer/assets/Icon-DucaliTK.js.gz deleted file mode 100644 index 43f451e..0000000 Binary files a/out/renderer/assets/Icon-DucaliTK.js.gz and /dev/null differ diff --git a/out/renderer/assets/Image-DXClIklC.js b/out/renderer/assets/Image-DXClIklC.js deleted file mode 100644 index 591c965..0000000 --- a/out/renderer/assets/Image-DXClIklC.js +++ /dev/null @@ -1,2864 +0,0 @@ -import { J as on, aS as off, bA as getNative, bB as root, bC as overArg, bD as isPrototype, bE as isArrayLike, bF as arrayLikeKeys, bG as isArray, bH as isSymbol, bI as MapCache, bJ as toString, bK as toSource, bL as Map$1, bM as baseGetTag, bN as Symbol$1, bO as eq, bP as Uint8Array, bQ as isBuffer, bR as Stack, bS as isTypedArray, bT as isObjectLike, bU as isObject, bV as isLength, bW as isIndex, bX as isArguments, bY as identity, bZ as baseFor, b_ as arrayMap, bk as replaceable, l as h, d as defineComponent, m as c, p as cB, V as cNotM, Y as cE, W as cM, b$ as cCB, x as useConfig, q as useTheme, c0 as popoverLight, r as ref, as as inject, a8 as watchEffect, G as computed, aT as clickoutside, a6 as vShow, ap as useThemeClass, a as onBeforeUnmount, E as watch, A as toRef, c1 as getPreciseEventTarget, $ as provide, ak as Transition, aY as popoverBodyInjectionKey, aX as drawerBodyInjectionKey, aZ as modalBodyInjectionKey, bu as isSlotEmpty, aV as FocusTrap, ax as mergeProps, w as withDirectives, I as resolveWrappedSlot, a3 as Fragment, az as XScrollbar, aR as isMounted, C as useMergedState, D as useMemo, c2 as useCompitable, c3 as getFirstSlotVNode, c4 as cloneVNode, c5 as Text, b4 as zindexable, bf as keep, L as call, c6 as isBrowser, c7 as tooltipLight, aL as createInjectionKey, a$ as fadeInTransition, aM as fadeInScaleUpTransition, c8 as imageLight, N as NBaseIcon, b1 as LazyTeleport, a2 as normalizeStyle, o as onMounted, K as resolveSlot } from "./index-DKaFsuse.js"; -import { d as useAdjustedTo, e as VFollower, V as VTarget, B as Binder, u as useLocale, b as beforeNextFrameOnce } from "./use-locale-DLWAOXez.js"; -const ctxKey = "@@mmoContext"; -const mousemoveoutside = { - mounted(el, { value }) { - el[ctxKey] = { - handler: void 0 - }; - if (typeof value === "function") { - el[ctxKey].handler = value; - on("mousemoveoutside", el, value); - } - }, - updated(el, { value }) { - const ctx = el[ctxKey]; - if (typeof value === "function") { - if (ctx.handler) { - if (ctx.handler !== value) { - off("mousemoveoutside", el, ctx.handler); - ctx.handler = value; - on("mousemoveoutside", el, value); - } - } else { - el[ctxKey].handler = value; - on("mousemoveoutside", el, value); - } - } else { - if (ctx.handler) { - off("mousemoveoutside", el, ctx.handler); - ctx.handler = void 0; - } - } - }, - unmounted(el) { - const { handler } = el[ctxKey]; - if (handler) { - off("mousemoveoutside", el, handler); - } - el[ctxKey].handler = void 0; - } -}; -const pureNumberRegex = /^(\d|\.)+$/; -const numberRegex = /(\d|\.)+/; -function formatLength(length, { - c: c2 = 1, - offset = 0, - attachPx = true -} = {}) { - if (typeof length === "number") { - const result = (length + offset) * c2; - if (result === 0) return "0"; - return `${result}px`; - } else if (typeof length === "string") { - if (pureNumberRegex.test(length)) { - const result = (Number(length) + offset) * c2; - if (attachPx) { - if (result === 0) return "0"; - return `${result}px`; - } else { - return `${result}`; - } - } else { - const result = numberRegex.exec(length); - if (!result) return length; - return length.replace(numberRegex, String((Number(result[0]) + offset) * c2)); - } - } - return length; -} -function download(url, name) { - if (!url) return; - const a = document.createElement("a"); - a.href = url; - document.body.appendChild(a); - a.click(); - document.body.removeChild(a); -} -let _isJsdom; -function isJsdom() { - if (_isJsdom === void 0) { - _isJsdom = navigator.userAgent.includes("Node.js") || navigator.userAgent.includes("jsdom"); - } - return _isJsdom; -} -var WeakMap$1 = getNative(root, "WeakMap"); -var nativeKeys = overArg(Object.keys, Object); -var objectProto$3 = Object.prototype; -var hasOwnProperty$2 = objectProto$3.hasOwnProperty; -function baseKeys(object) { - if (!isPrototype(object)) { - return nativeKeys(object); - } - var result = []; - for (var key in Object(object)) { - if (hasOwnProperty$2.call(object, key) && key != "constructor") { - result.push(key); - } - } - return result; -} -function keys(object) { - return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object); -} -var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, reIsPlainProp = /^\w*$/; -function isKey(value, object) { - if (isArray(value)) { - return false; - } - var type = typeof value; - if (type == "number" || type == "symbol" || type == "boolean" || value == null || isSymbol(value)) { - return true; - } - return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || object != null && value in Object(object); -} -var FUNC_ERROR_TEXT = "Expected a function"; -function memoize(func, resolver) { - if (typeof func != "function" || resolver != null && typeof resolver != "function") { - throw new TypeError(FUNC_ERROR_TEXT); - } - var memoized = function() { - var args = arguments, key = resolver ? resolver.apply(this, args) : args[0], cache = memoized.cache; - if (cache.has(key)) { - return cache.get(key); - } - var result = func.apply(this, args); - memoized.cache = cache.set(key, result) || cache; - return result; - }; - memoized.cache = new (memoize.Cache || MapCache)(); - return memoized; -} -memoize.Cache = MapCache; -var MAX_MEMOIZE_SIZE = 500; -function memoizeCapped(func) { - var result = memoize(func, function(key) { - if (cache.size === MAX_MEMOIZE_SIZE) { - cache.clear(); - } - return key; - }); - var cache = result.cache; - return result; -} -var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g; -var reEscapeChar = /\\(\\)?/g; -var stringToPath = memoizeCapped(function(string) { - var result = []; - if (string.charCodeAt(0) === 46) { - result.push(""); - } - string.replace(rePropName, function(match, number, quote, subString) { - result.push(quote ? subString.replace(reEscapeChar, "$1") : number || match); - }); - return result; -}); -function castPath(value, object) { - if (isArray(value)) { - return value; - } - return isKey(value, object) ? [value] : stringToPath(toString(value)); -} -var INFINITY = 1 / 0; -function toKey(value) { - if (typeof value == "string" || isSymbol(value)) { - return value; - } - var result = value + ""; - return result == "0" && 1 / value == -INFINITY ? "-0" : result; -} -function baseGet(object, path) { - path = castPath(path, object); - var index = 0, length = path.length; - while (object != null && index < length) { - object = object[toKey(path[index++])]; - } - return index && index == length ? object : void 0; -} -function get(object, path, defaultValue) { - var result = object == null ? void 0 : baseGet(object, path); - return result === void 0 ? defaultValue : result; -} -function arrayPush(array, values) { - var index = -1, length = values.length, offset = array.length; - while (++index < length) { - array[offset + index] = values[index]; - } - return array; -} -function arrayReduce(array, iteratee, accumulator, initAccum) { - var index = -1, length = array == null ? 0 : array.length; - while (++index < length) { - accumulator = iteratee(accumulator, array[index], index, array); - } - return accumulator; -} -function basePropertyOf(object) { - return function(key) { - return object == null ? void 0 : object[key]; - }; -} -var deburredLetters = { - // Latin-1 Supplement block. - "À": "A", - "Á": "A", - "Â": "A", - "Ã": "A", - "Ä": "A", - "Å": "A", - "à": "a", - "á": "a", - "â": "a", - "ã": "a", - "ä": "a", - "å": "a", - "Ç": "C", - "ç": "c", - "Ð": "D", - "ð": "d", - "È": "E", - "É": "E", - "Ê": "E", - "Ë": "E", - "è": "e", - "é": "e", - "ê": "e", - "ë": "e", - "Ì": "I", - "Í": "I", - "Î": "I", - "Ï": "I", - "ì": "i", - "í": "i", - "î": "i", - "ï": "i", - "Ñ": "N", - "ñ": "n", - "Ò": "O", - "Ó": "O", - "Ô": "O", - "Õ": "O", - "Ö": "O", - "Ø": "O", - "ò": "o", - "ó": "o", - "ô": "o", - "õ": "o", - "ö": "o", - "ø": "o", - "Ù": "U", - "Ú": "U", - "Û": "U", - "Ü": "U", - "ù": "u", - "ú": "u", - "û": "u", - "ü": "u", - "Ý": "Y", - "ý": "y", - "ÿ": "y", - "Æ": "Ae", - "æ": "ae", - "Þ": "Th", - "þ": "th", - "ß": "ss", - // Latin Extended-A block. - "Ā": "A", - "Ă": "A", - "Ą": "A", - "ā": "a", - "ă": "a", - "ą": "a", - "Ć": "C", - "Ĉ": "C", - "Ċ": "C", - "Č": "C", - "ć": "c", - "ĉ": "c", - "ċ": "c", - "č": "c", - "Ď": "D", - "Đ": "D", - "ď": "d", - "đ": "d", - "Ē": "E", - "Ĕ": "E", - "Ė": "E", - "Ę": "E", - "Ě": "E", - "ē": "e", - "ĕ": "e", - "ė": "e", - "ę": "e", - "ě": "e", - "Ĝ": "G", - "Ğ": "G", - "Ġ": "G", - "Ģ": "G", - "ĝ": "g", - "ğ": "g", - "ġ": "g", - "ģ": "g", - "Ĥ": "H", - "Ħ": "H", - "ĥ": "h", - "ħ": "h", - "Ĩ": "I", - "Ī": "I", - "Ĭ": "I", - "Į": "I", - "İ": "I", - "ĩ": "i", - "ī": "i", - "ĭ": "i", - "į": "i", - "ı": "i", - "Ĵ": "J", - "ĵ": "j", - "Ķ": "K", - "ķ": "k", - "ĸ": "k", - "Ĺ": "L", - "Ļ": "L", - "Ľ": "L", - "Ŀ": "L", - "Ł": "L", - "ĺ": "l", - "ļ": "l", - "ľ": "l", - "ŀ": "l", - "ł": "l", - "Ń": "N", - "Ņ": "N", - "Ň": "N", - "Ŋ": "N", - "ń": "n", - "ņ": "n", - "ň": "n", - "ŋ": "n", - "Ō": "O", - "Ŏ": "O", - "Ő": "O", - "ō": "o", - "ŏ": "o", - "ő": "o", - "Ŕ": "R", - "Ŗ": "R", - "Ř": "R", - "ŕ": "r", - "ŗ": "r", - "ř": "r", - "Ś": "S", - "Ŝ": "S", - "Ş": "S", - "Š": "S", - "ś": "s", - "ŝ": "s", - "ş": "s", - "š": "s", - "Ţ": "T", - "Ť": "T", - "Ŧ": "T", - "ţ": "t", - "ť": "t", - "ŧ": "t", - "Ũ": "U", - "Ū": "U", - "Ŭ": "U", - "Ů": "U", - "Ű": "U", - "Ų": "U", - "ũ": "u", - "ū": "u", - "ŭ": "u", - "ů": "u", - "ű": "u", - "ų": "u", - "Ŵ": "W", - "ŵ": "w", - "Ŷ": "Y", - "ŷ": "y", - "Ÿ": "Y", - "Ź": "Z", - "Ż": "Z", - "Ž": "Z", - "ź": "z", - "ż": "z", - "ž": "z", - "IJ": "IJ", - "ij": "ij", - "Œ": "Oe", - "œ": "oe", - "ʼn": "'n", - "ſ": "s" -}; -var deburrLetter = basePropertyOf(deburredLetters); -var reLatin = /[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g; -var rsComboMarksRange$1 = "\\u0300-\\u036f", reComboHalfMarksRange$1 = "\\ufe20-\\ufe2f", rsComboSymbolsRange$1 = "\\u20d0-\\u20ff", rsComboRange$1 = rsComboMarksRange$1 + reComboHalfMarksRange$1 + rsComboSymbolsRange$1; -var rsCombo$1 = "[" + rsComboRange$1 + "]"; -var reComboMark = RegExp(rsCombo$1, "g"); -function deburr(string) { - string = toString(string); - return string && string.replace(reLatin, deburrLetter).replace(reComboMark, ""); -} -var reAsciiWord = /[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g; -function asciiWords(string) { - return string.match(reAsciiWord) || []; -} -var reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/; -function hasUnicodeWord(string) { - return reHasUnicodeWord.test(string); -} -var rsAstralRange = "\\ud800-\\udfff", rsComboMarksRange = "\\u0300-\\u036f", reComboHalfMarksRange = "\\ufe20-\\ufe2f", rsComboSymbolsRange = "\\u20d0-\\u20ff", rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange, rsDingbatRange = "\\u2700-\\u27bf", rsLowerRange = "a-z\\xdf-\\xf6\\xf8-\\xff", rsMathOpRange = "\\xac\\xb1\\xd7\\xf7", rsNonCharRange = "\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf", rsPunctuationRange = "\\u2000-\\u206f", rsSpaceRange = " \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000", rsUpperRange = "A-Z\\xc0-\\xd6\\xd8-\\xde", rsVarRange = "\\ufe0e\\ufe0f", rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange; -var rsApos$1 = "['’]", rsBreak = "[" + rsBreakRange + "]", rsCombo = "[" + rsComboRange + "]", rsDigits = "\\d+", rsDingbat = "[" + rsDingbatRange + "]", rsLower = "[" + rsLowerRange + "]", rsMisc = "[^" + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + "]", rsFitz = "\\ud83c[\\udffb-\\udfff]", rsModifier = "(?:" + rsCombo + "|" + rsFitz + ")", rsNonAstral = "[^" + rsAstralRange + "]", rsRegional = "(?:\\ud83c[\\udde6-\\uddff]){2}", rsSurrPair = "[\\ud800-\\udbff][\\udc00-\\udfff]", rsUpper = "[" + rsUpperRange + "]", rsZWJ = "\\u200d"; -var rsMiscLower = "(?:" + rsLower + "|" + rsMisc + ")", rsMiscUpper = "(?:" + rsUpper + "|" + rsMisc + ")", rsOptContrLower = "(?:" + rsApos$1 + "(?:d|ll|m|re|s|t|ve))?", rsOptContrUpper = "(?:" + rsApos$1 + "(?:D|LL|M|RE|S|T|VE))?", reOptMod = rsModifier + "?", rsOptVar = "[" + rsVarRange + "]?", rsOptJoin = "(?:" + rsZWJ + "(?:" + [rsNonAstral, rsRegional, rsSurrPair].join("|") + ")" + rsOptVar + reOptMod + ")*", rsOrdLower = "\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])", rsOrdUpper = "\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])", rsSeq = rsOptVar + reOptMod + rsOptJoin, rsEmoji = "(?:" + [rsDingbat, rsRegional, rsSurrPair].join("|") + ")" + rsSeq; -var reUnicodeWord = RegExp([ - rsUpper + "?" + rsLower + "+" + rsOptContrLower + "(?=" + [rsBreak, rsUpper, "$"].join("|") + ")", - rsMiscUpper + "+" + rsOptContrUpper + "(?=" + [rsBreak, rsUpper + rsMiscLower, "$"].join("|") + ")", - rsUpper + "?" + rsMiscLower + "+" + rsOptContrLower, - rsUpper + "+" + rsOptContrUpper, - rsOrdUpper, - rsOrdLower, - rsDigits, - rsEmoji -].join("|"), "g"); -function unicodeWords(string) { - return string.match(reUnicodeWord) || []; -} -function words(string, pattern, guard) { - string = toString(string); - pattern = pattern; - if (pattern === void 0) { - return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string); - } - return string.match(pattern) || []; -} -var rsApos = "['’]"; -var reApos = RegExp(rsApos, "g"); -function createCompounder(callback) { - return function(string) { - return arrayReduce(words(deburr(string).replace(reApos, "")), callback, ""); - }; -} -function arrayFilter(array, predicate) { - var index = -1, length = array == null ? 0 : array.length, resIndex = 0, result = []; - while (++index < length) { - var value = array[index]; - if (predicate(value, index, array)) { - result[resIndex++] = value; - } - } - return result; -} -function stubArray() { - return []; -} -var objectProto$2 = Object.prototype; -var propertyIsEnumerable = objectProto$2.propertyIsEnumerable; -var nativeGetSymbols = Object.getOwnPropertySymbols; -var getSymbols = !nativeGetSymbols ? stubArray : function(object) { - if (object == null) { - return []; - } - object = Object(object); - return arrayFilter(nativeGetSymbols(object), function(symbol) { - return propertyIsEnumerable.call(object, symbol); - }); -}; -function baseGetAllKeys(object, keysFunc, symbolsFunc) { - var result = keysFunc(object); - return isArray(object) ? result : arrayPush(result, symbolsFunc(object)); -} -function getAllKeys(object) { - return baseGetAllKeys(object, keys, getSymbols); -} -var DataView = getNative(root, "DataView"); -var Promise$1 = getNative(root, "Promise"); -var Set$1 = getNative(root, "Set"); -var mapTag$1 = "[object Map]", objectTag$1 = "[object Object]", promiseTag = "[object Promise]", setTag$1 = "[object Set]", weakMapTag = "[object WeakMap]"; -var dataViewTag$1 = "[object DataView]"; -var dataViewCtorString = toSource(DataView), mapCtorString = toSource(Map$1), promiseCtorString = toSource(Promise$1), setCtorString = toSource(Set$1), weakMapCtorString = toSource(WeakMap$1); -var getTag = baseGetTag; -if (DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag$1 || Map$1 && getTag(new Map$1()) != mapTag$1 || Promise$1 && getTag(Promise$1.resolve()) != promiseTag || Set$1 && getTag(new Set$1()) != setTag$1 || WeakMap$1 && getTag(new WeakMap$1()) != weakMapTag) { - getTag = function(value) { - var result = baseGetTag(value), Ctor = result == objectTag$1 ? value.constructor : void 0, ctorString = Ctor ? toSource(Ctor) : ""; - if (ctorString) { - switch (ctorString) { - case dataViewCtorString: - return dataViewTag$1; - case mapCtorString: - return mapTag$1; - case promiseCtorString: - return promiseTag; - case setCtorString: - return setTag$1; - case weakMapCtorString: - return weakMapTag; - } - } - return result; - }; -} -var HASH_UNDEFINED = "__lodash_hash_undefined__"; -function setCacheAdd(value) { - this.__data__.set(value, HASH_UNDEFINED); - return this; -} -function setCacheHas(value) { - return this.__data__.has(value); -} -function SetCache(values) { - var index = -1, length = values == null ? 0 : values.length; - this.__data__ = new MapCache(); - while (++index < length) { - this.add(values[index]); - } -} -SetCache.prototype.add = SetCache.prototype.push = setCacheAdd; -SetCache.prototype.has = setCacheHas; -function arraySome(array, predicate) { - var index = -1, length = array == null ? 0 : array.length; - while (++index < length) { - if (predicate(array[index], index, array)) { - return true; - } - } - return false; -} -function cacheHas(cache, key) { - return cache.has(key); -} -var COMPARE_PARTIAL_FLAG$5 = 1, COMPARE_UNORDERED_FLAG$3 = 2; -function equalArrays(array, other, bitmask, customizer, equalFunc, stack) { - var isPartial = bitmask & COMPARE_PARTIAL_FLAG$5, arrLength = array.length, othLength = other.length; - if (arrLength != othLength && !(isPartial && othLength > arrLength)) { - return false; - } - var arrStacked = stack.get(array); - var othStacked = stack.get(other); - if (arrStacked && othStacked) { - return arrStacked == other && othStacked == array; - } - var index = -1, result = true, seen = bitmask & COMPARE_UNORDERED_FLAG$3 ? new SetCache() : void 0; - stack.set(array, other); - stack.set(other, array); - while (++index < arrLength) { - var arrValue = array[index], othValue = other[index]; - if (customizer) { - var compared = isPartial ? customizer(othValue, arrValue, index, other, array, stack) : customizer(arrValue, othValue, index, array, other, stack); - } - if (compared !== void 0) { - if (compared) { - continue; - } - result = false; - break; - } - if (seen) { - if (!arraySome(other, function(othValue2, othIndex) { - if (!cacheHas(seen, othIndex) && (arrValue === othValue2 || equalFunc(arrValue, othValue2, bitmask, customizer, stack))) { - return seen.push(othIndex); - } - })) { - result = false; - break; - } - } else if (!(arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) { - result = false; - break; - } - } - stack["delete"](array); - stack["delete"](other); - return result; -} -function mapToArray(map2) { - var index = -1, result = Array(map2.size); - map2.forEach(function(value, key) { - result[++index] = [key, value]; - }); - return result; -} -function setToArray(set) { - var index = -1, result = Array(set.size); - set.forEach(function(value) { - result[++index] = value; - }); - return result; -} -var COMPARE_PARTIAL_FLAG$4 = 1, COMPARE_UNORDERED_FLAG$2 = 2; -var boolTag = "[object Boolean]", dateTag = "[object Date]", errorTag = "[object Error]", mapTag = "[object Map]", numberTag = "[object Number]", regexpTag = "[object RegExp]", setTag = "[object Set]", stringTag = "[object String]", symbolTag = "[object Symbol]"; -var arrayBufferTag = "[object ArrayBuffer]", dataViewTag = "[object DataView]"; -var symbolProto = Symbol$1 ? Symbol$1.prototype : void 0, symbolValueOf = symbolProto ? symbolProto.valueOf : void 0; -function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) { - switch (tag) { - case dataViewTag: - if (object.byteLength != other.byteLength || object.byteOffset != other.byteOffset) { - return false; - } - object = object.buffer; - other = other.buffer; - case arrayBufferTag: - if (object.byteLength != other.byteLength || !equalFunc(new Uint8Array(object), new Uint8Array(other))) { - return false; - } - return true; - case boolTag: - case dateTag: - case numberTag: - return eq(+object, +other); - case errorTag: - return object.name == other.name && object.message == other.message; - case regexpTag: - case stringTag: - return object == other + ""; - case mapTag: - var convert = mapToArray; - case setTag: - var isPartial = bitmask & COMPARE_PARTIAL_FLAG$4; - convert || (convert = setToArray); - if (object.size != other.size && !isPartial) { - return false; - } - var stacked = stack.get(object); - if (stacked) { - return stacked == other; - } - bitmask |= COMPARE_UNORDERED_FLAG$2; - stack.set(object, other); - var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack); - stack["delete"](object); - return result; - case symbolTag: - if (symbolValueOf) { - return symbolValueOf.call(object) == symbolValueOf.call(other); - } - } - return false; -} -var COMPARE_PARTIAL_FLAG$3 = 1; -var objectProto$1 = Object.prototype; -var hasOwnProperty$1 = objectProto$1.hasOwnProperty; -function equalObjects(object, other, bitmask, customizer, equalFunc, stack) { - var isPartial = bitmask & COMPARE_PARTIAL_FLAG$3, objProps = getAllKeys(object), objLength = objProps.length, othProps = getAllKeys(other), othLength = othProps.length; - if (objLength != othLength && !isPartial) { - return false; - } - var index = objLength; - while (index--) { - var key = objProps[index]; - if (!(isPartial ? key in other : hasOwnProperty$1.call(other, key))) { - return false; - } - } - var objStacked = stack.get(object); - var othStacked = stack.get(other); - if (objStacked && othStacked) { - return objStacked == other && othStacked == object; - } - var result = true; - stack.set(object, other); - stack.set(other, object); - var skipCtor = isPartial; - while (++index < objLength) { - key = objProps[index]; - var objValue = object[key], othValue = other[key]; - if (customizer) { - var compared = isPartial ? customizer(othValue, objValue, key, other, object, stack) : customizer(objValue, othValue, key, object, other, stack); - } - if (!(compared === void 0 ? objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack) : compared)) { - result = false; - break; - } - skipCtor || (skipCtor = key == "constructor"); - } - if (result && !skipCtor) { - var objCtor = object.constructor, othCtor = other.constructor; - if (objCtor != othCtor && ("constructor" in object && "constructor" in other) && !(typeof objCtor == "function" && objCtor instanceof objCtor && typeof othCtor == "function" && othCtor instanceof othCtor)) { - result = false; - } - } - stack["delete"](object); - stack["delete"](other); - return result; -} -var COMPARE_PARTIAL_FLAG$2 = 1; -var argsTag = "[object Arguments]", arrayTag = "[object Array]", objectTag = "[object Object]"; -var objectProto = Object.prototype; -var hasOwnProperty = objectProto.hasOwnProperty; -function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) { - var objIsArr = isArray(object), othIsArr = isArray(other), objTag = objIsArr ? arrayTag : getTag(object), othTag = othIsArr ? arrayTag : getTag(other); - objTag = objTag == argsTag ? objectTag : objTag; - othTag = othTag == argsTag ? objectTag : othTag; - var objIsObj = objTag == objectTag, othIsObj = othTag == objectTag, isSameTag = objTag == othTag; - if (isSameTag && isBuffer(object)) { - if (!isBuffer(other)) { - return false; - } - objIsArr = true; - objIsObj = false; - } - if (isSameTag && !objIsObj) { - stack || (stack = new Stack()); - return objIsArr || isTypedArray(object) ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack); - } - if (!(bitmask & COMPARE_PARTIAL_FLAG$2)) { - var objIsWrapped = objIsObj && hasOwnProperty.call(object, "__wrapped__"), othIsWrapped = othIsObj && hasOwnProperty.call(other, "__wrapped__"); - if (objIsWrapped || othIsWrapped) { - var objUnwrapped = objIsWrapped ? object.value() : object, othUnwrapped = othIsWrapped ? other.value() : other; - stack || (stack = new Stack()); - return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack); - } - } - if (!isSameTag) { - return false; - } - stack || (stack = new Stack()); - return equalObjects(object, other, bitmask, customizer, equalFunc, stack); -} -function baseIsEqual(value, other, bitmask, customizer, stack) { - if (value === other) { - return true; - } - if (value == null || other == null || !isObjectLike(value) && !isObjectLike(other)) { - return value !== value && other !== other; - } - return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack); -} -var COMPARE_PARTIAL_FLAG$1 = 1, COMPARE_UNORDERED_FLAG$1 = 2; -function baseIsMatch(object, source, matchData, customizer) { - var index = matchData.length, length = index; - if (object == null) { - return !length; - } - object = Object(object); - while (index--) { - var data = matchData[index]; - if (data[2] ? data[1] !== object[data[0]] : !(data[0] in object)) { - return false; - } - } - while (++index < length) { - data = matchData[index]; - var key = data[0], objValue = object[key], srcValue = data[1]; - if (data[2]) { - if (objValue === void 0 && !(key in object)) { - return false; - } - } else { - var stack = new Stack(); - var result; - if (!(result === void 0 ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG$1 | COMPARE_UNORDERED_FLAG$1, customizer, stack) : result)) { - return false; - } - } - } - return true; -} -function isStrictComparable(value) { - return value === value && !isObject(value); -} -function getMatchData(object) { - var result = keys(object), length = result.length; - while (length--) { - var key = result[length], value = object[key]; - result[length] = [key, value, isStrictComparable(value)]; - } - return result; -} -function matchesStrictComparable(key, srcValue) { - return function(object) { - if (object == null) { - return false; - } - return object[key] === srcValue && (srcValue !== void 0 || key in Object(object)); - }; -} -function baseMatches(source) { - var matchData = getMatchData(source); - if (matchData.length == 1 && matchData[0][2]) { - return matchesStrictComparable(matchData[0][0], matchData[0][1]); - } - return function(object) { - return object === source || baseIsMatch(object, source, matchData); - }; -} -function baseHasIn(object, key) { - return object != null && key in Object(object); -} -function hasPath(object, path, hasFunc) { - path = castPath(path, object); - var index = -1, length = path.length, result = false; - while (++index < length) { - var key = toKey(path[index]); - if (!(result = object != null && hasFunc(object, key))) { - break; - } - object = object[key]; - } - if (result || ++index != length) { - return result; - } - length = object == null ? 0 : object.length; - return !!length && isLength(length) && isIndex(key, length) && (isArray(object) || isArguments(object)); -} -function hasIn(object, path) { - return object != null && hasPath(object, path, baseHasIn); -} -var COMPARE_PARTIAL_FLAG = 1, COMPARE_UNORDERED_FLAG = 2; -function baseMatchesProperty(path, srcValue) { - if (isKey(path) && isStrictComparable(srcValue)) { - return matchesStrictComparable(toKey(path), srcValue); - } - return function(object) { - var objValue = get(object, path); - return objValue === void 0 && objValue === srcValue ? hasIn(object, path) : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG); - }; -} -function baseProperty(key) { - return function(object) { - return object == null ? void 0 : object[key]; - }; -} -function basePropertyDeep(path) { - return function(object) { - return baseGet(object, path); - }; -} -function property(path) { - return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path); -} -function baseIteratee(value) { - if (typeof value == "function") { - return value; - } - if (value == null) { - return identity; - } - if (typeof value == "object") { - return isArray(value) ? baseMatchesProperty(value[0], value[1]) : baseMatches(value); - } - return property(value); -} -function baseForOwn(object, iteratee) { - return object && baseFor(object, iteratee, keys); -} -function createBaseEach(eachFunc, fromRight) { - return function(collection, iteratee) { - if (collection == null) { - return collection; - } - if (!isArrayLike(collection)) { - return eachFunc(collection, iteratee); - } - var length = collection.length, index = -1, iterable = Object(collection); - while (++index < length) { - if (iteratee(iterable[index], index, iterable) === false) { - break; - } - } - return collection; - }; -} -var baseEach = createBaseEach(baseForOwn); -function baseMap(collection, iteratee) { - var index = -1, result = isArrayLike(collection) ? Array(collection.length) : []; - baseEach(collection, function(value, key, collection2) { - result[++index] = iteratee(value, key, collection2); - }); - return result; -} -function map(collection, iteratee) { - var func = isArray(collection) ? arrayMap : baseMap; - return func(collection, baseIteratee(iteratee)); -} -var kebabCase = createCompounder(function(result, word, index) { - return result + (index ? "-" : "") + word.toLowerCase(); -}); -const DownloadIcon = replaceable("download", () => h("svg", { - viewBox: "0 0 16 16", - version: "1.1", - xmlns: "http://www.w3.org/2000/svg" -}, h("g", { - stroke: "none", - "stroke-width": "1", - fill: "none", - "fill-rule": "evenodd" -}, h("g", { - fill: "currentColor", - "fill-rule": "nonzero" -}, h("path", { - d: "M3.5,13 L12.5,13 C12.7761424,13 13,13.2238576 13,13.5 C13,13.7454599 12.8231248,13.9496084 12.5898756,13.9919443 L12.5,14 L3.5,14 C3.22385763,14 3,13.7761424 3,13.5 C3,13.2545401 3.17687516,13.0503916 3.41012437,13.0080557 L3.5,13 L12.5,13 L3.5,13 Z M7.91012437,1.00805567 L8,1 C8.24545989,1 8.44960837,1.17687516 8.49194433,1.41012437 L8.5,1.5 L8.5,10.292 L11.1819805,7.6109127 C11.3555469,7.43734635 11.6249713,7.4180612 11.8198394,7.55305725 L11.8890873,7.6109127 C12.0626536,7.78447906 12.0819388,8.05390346 11.9469427,8.2487716 L11.8890873,8.31801948 L8.35355339,11.8535534 C8.17998704,12.0271197 7.91056264,12.0464049 7.7156945,11.9114088 L7.64644661,11.8535534 L4.1109127,8.31801948 C3.91565056,8.12275734 3.91565056,7.80617485 4.1109127,7.6109127 C4.28447906,7.43734635 4.55390346,7.4180612 4.7487716,7.55305725 L4.81801948,7.6109127 L7.5,10.292 L7.5,1.5 C7.5,1.25454011 7.67687516,1.05039163 7.91012437,1.00805567 L8,1 L7.91012437,1.00805567 Z" -}))))); -const ResizeSmallIcon = defineComponent({ - name: "ResizeSmall", - render() { - return h("svg", { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 20 20" - }, h("g", { - fill: "none" - }, h("path", { - d: "M5.5 4A1.5 1.5 0 0 0 4 5.5v1a.5.5 0 0 1-1 0v-1A2.5 2.5 0 0 1 5.5 3h1a.5.5 0 0 1 0 1h-1zM16 5.5A1.5 1.5 0 0 0 14.5 4h-1a.5.5 0 0 1 0-1h1A2.5 2.5 0 0 1 17 5.5v1a.5.5 0 0 1-1 0v-1zm0 9a1.5 1.5 0 0 1-1.5 1.5h-1a.5.5 0 0 0 0 1h1a2.5 2.5 0 0 0 2.5-2.5v-1a.5.5 0 0 0-1 0v1zm-12 0A1.5 1.5 0 0 0 5.5 16h1.25a.5.5 0 0 1 0 1H5.5A2.5 2.5 0 0 1 3 14.5v-1.25a.5.5 0 0 1 1 0v1.25zM8.5 7A1.5 1.5 0 0 0 7 8.5v3A1.5 1.5 0 0 0 8.5 13h3a1.5 1.5 0 0 0 1.5-1.5v-3A1.5 1.5 0 0 0 11.5 7h-3zM8 8.5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5v3a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5v-3z", - fill: "currentColor" - }))); - } -}); -const RotateClockwiseIcon = replaceable("rotateClockwise", () => h("svg", { - viewBox: "0 0 20 20", - fill: "none", - xmlns: "http://www.w3.org/2000/svg" -}, h("path", { - d: "M3 10C3 6.13401 6.13401 3 10 3C13.866 3 17 6.13401 17 10C17 12.7916 15.3658 15.2026 13 16.3265V14.5C13 14.2239 12.7761 14 12.5 14C12.2239 14 12 14.2239 12 14.5V17.5C12 17.7761 12.2239 18 12.5 18H15.5C15.7761 18 16 17.7761 16 17.5C16 17.2239 15.7761 17 15.5 17H13.8758C16.3346 15.6357 18 13.0128 18 10C18 5.58172 14.4183 2 10 2C5.58172 2 2 5.58172 2 10C2 10.2761 2.22386 10.5 2.5 10.5C2.77614 10.5 3 10.2761 3 10Z", - fill: "currentColor" -}), h("path", { - d: "M10 12C11.1046 12 12 11.1046 12 10C12 8.89543 11.1046 8 10 8C8.89543 8 8 8.89543 8 10C8 11.1046 8.89543 12 10 12ZM10 11C9.44772 11 9 10.5523 9 10C9 9.44772 9.44772 9 10 9C10.5523 9 11 9.44772 11 10C11 10.5523 10.5523 11 10 11Z", - fill: "currentColor" -}))); -const RotateCounterclockwiseIcon = replaceable("rotateClockwise", () => h("svg", { - viewBox: "0 0 20 20", - fill: "none", - xmlns: "http://www.w3.org/2000/svg" -}, h("path", { - d: "M17 10C17 6.13401 13.866 3 10 3C6.13401 3 3 6.13401 3 10C3 12.7916 4.63419 15.2026 7 16.3265V14.5C7 14.2239 7.22386 14 7.5 14C7.77614 14 8 14.2239 8 14.5V17.5C8 17.7761 7.77614 18 7.5 18H4.5C4.22386 18 4 17.7761 4 17.5C4 17.2239 4.22386 17 4.5 17H6.12422C3.66539 15.6357 2 13.0128 2 10C2 5.58172 5.58172 2 10 2C14.4183 2 18 5.58172 18 10C18 10.2761 17.7761 10.5 17.5 10.5C17.2239 10.5 17 10.2761 17 10Z", - fill: "currentColor" -}), h("path", { - d: "M10 12C8.89543 12 8 11.1046 8 10C8 8.89543 8.89543 8 10 8C11.1046 8 12 8.89543 12 10C12 11.1046 11.1046 12 10 12ZM10 11C10.5523 11 11 10.5523 11 10C11 9.44772 10.5523 9 10 9C9.44772 9 9 9.44772 9 10C9 10.5523 9.44772 11 10 11Z", - fill: "currentColor" -}))); -const ZoomInIcon = replaceable("zoomIn", () => h("svg", { - viewBox: "0 0 20 20", - fill: "none", - xmlns: "http://www.w3.org/2000/svg" -}, h("path", { - d: "M11.5 8.5C11.5 8.22386 11.2761 8 11 8H9V6C9 5.72386 8.77614 5.5 8.5 5.5C8.22386 5.5 8 5.72386 8 6V8H6C5.72386 8 5.5 8.22386 5.5 8.5C5.5 8.77614 5.72386 9 6 9H8V11C8 11.2761 8.22386 11.5 8.5 11.5C8.77614 11.5 9 11.2761 9 11V9H11C11.2761 9 11.5 8.77614 11.5 8.5Z", - fill: "currentColor" -}), h("path", { - d: "M8.5 3C11.5376 3 14 5.46243 14 8.5C14 9.83879 13.5217 11.0659 12.7266 12.0196L16.8536 16.1464C17.0488 16.3417 17.0488 16.6583 16.8536 16.8536C16.68 17.0271 16.4106 17.0464 16.2157 16.9114L16.1464 16.8536L12.0196 12.7266C11.0659 13.5217 9.83879 14 8.5 14C5.46243 14 3 11.5376 3 8.5C3 5.46243 5.46243 3 8.5 3ZM8.5 4C6.01472 4 4 6.01472 4 8.5C4 10.9853 6.01472 13 8.5 13C10.9853 13 13 10.9853 13 8.5C13 6.01472 10.9853 4 8.5 4Z", - fill: "currentColor" -}))); -const ZoomOutIcon = replaceable("zoomOut", () => h("svg", { - viewBox: "0 0 20 20", - fill: "none", - xmlns: "http://www.w3.org/2000/svg" -}, h("path", { - d: "M11 8C11.2761 8 11.5 8.22386 11.5 8.5C11.5 8.77614 11.2761 9 11 9H6C5.72386 9 5.5 8.77614 5.5 8.5C5.5 8.22386 5.72386 8 6 8H11Z", - fill: "currentColor" -}), h("path", { - d: "M14 8.5C14 5.46243 11.5376 3 8.5 3C5.46243 3 3 5.46243 3 8.5C3 11.5376 5.46243 14 8.5 14C9.83879 14 11.0659 13.5217 12.0196 12.7266L16.1464 16.8536L16.2157 16.9114C16.4106 17.0464 16.68 17.0271 16.8536 16.8536C17.0488 16.6583 17.0488 16.3417 16.8536 16.1464L12.7266 12.0196C13.5217 11.0659 14 9.83879 14 8.5ZM4 8.5C4 6.01472 6.01472 4 8.5 4C10.9853 4 13 6.01472 13 8.5C13 10.9853 10.9853 13 8.5 13C6.01472 13 4 10.9853 4 8.5Z", - fill: "currentColor" -}))); -const oppositePlacement = { - top: "bottom", - bottom: "top", - left: "right", - right: "left" -}; -const arrowSize = "var(--n-arrow-height) * 1.414"; -const style$1 = c([cB("popover", ` - transition: - box-shadow .3s var(--n-bezier), - background-color .3s var(--n-bezier), - color .3s var(--n-bezier); - position: relative; - font-size: var(--n-font-size); - color: var(--n-text-color); - box-shadow: var(--n-box-shadow); - word-break: break-word; - `, [c(">", [cB("scrollbar", ` - height: inherit; - max-height: inherit; - `)]), cNotM("raw", ` - background-color: var(--n-color); - border-radius: var(--n-border-radius); - `, [cNotM("scrollable", [cNotM("show-header-or-footer", "padding: var(--n-padding);")])]), cE("header", ` - padding: var(--n-padding); - border-bottom: 1px solid var(--n-divider-color); - transition: border-color .3s var(--n-bezier); - `), cE("footer", ` - padding: var(--n-padding); - border-top: 1px solid var(--n-divider-color); - transition: border-color .3s var(--n-bezier); - `), cM("scrollable, show-header-or-footer", [cE("content", ` - padding: var(--n-padding); - `)])]), cB("popover-shared", ` - transform-origin: inherit; - `, [ - cB("popover-arrow-wrapper", ` - position: absolute; - overflow: hidden; - pointer-events: none; - `, [cB("popover-arrow", ` - transition: background-color .3s var(--n-bezier); - position: absolute; - display: block; - width: calc(${arrowSize}); - height: calc(${arrowSize}); - box-shadow: 0 0 8px 0 rgba(0, 0, 0, .12); - transform: rotate(45deg); - background-color: var(--n-color); - pointer-events: all; - `)]), - // body transition - c("&.popover-transition-enter-from, &.popover-transition-leave-to", ` - opacity: 0; - transform: scale(.85); - `), - c("&.popover-transition-enter-to, &.popover-transition-leave-from", ` - transform: scale(1); - opacity: 1; - `), - c("&.popover-transition-enter-active", ` - transition: - box-shadow .3s var(--n-bezier), - background-color .3s var(--n-bezier), - color .3s var(--n-bezier), - opacity .15s var(--n-bezier-ease-out), - transform .15s var(--n-bezier-ease-out); - `), - c("&.popover-transition-leave-active", ` - transition: - box-shadow .3s var(--n-bezier), - background-color .3s var(--n-bezier), - color .3s var(--n-bezier), - opacity .15s var(--n-bezier-ease-in), - transform .15s var(--n-bezier-ease-in); - `) -]), placementStyle("top-start", ` - top: calc(${arrowSize} / -2); - left: calc(${getArrowOffset("top-start")} - var(--v-offset-left)); - `), placementStyle("top", ` - top: calc(${arrowSize} / -2); - transform: translateX(calc(${arrowSize} / -2)) rotate(45deg); - left: 50%; - `), placementStyle("top-end", ` - top: calc(${arrowSize} / -2); - right: calc(${getArrowOffset("top-end")} + var(--v-offset-left)); - `), placementStyle("bottom-start", ` - bottom: calc(${arrowSize} / -2); - left: calc(${getArrowOffset("bottom-start")} - var(--v-offset-left)); - `), placementStyle("bottom", ` - bottom: calc(${arrowSize} / -2); - transform: translateX(calc(${arrowSize} / -2)) rotate(45deg); - left: 50%; - `), placementStyle("bottom-end", ` - bottom: calc(${arrowSize} / -2); - right: calc(${getArrowOffset("bottom-end")} + var(--v-offset-left)); - `), placementStyle("left-start", ` - left: calc(${arrowSize} / -2); - top: calc(${getArrowOffset("left-start")} - var(--v-offset-top)); - `), placementStyle("left", ` - left: calc(${arrowSize} / -2); - transform: translateY(calc(${arrowSize} / -2)) rotate(45deg); - top: 50%; - `), placementStyle("left-end", ` - left: calc(${arrowSize} / -2); - bottom: calc(${getArrowOffset("left-end")} + var(--v-offset-top)); - `), placementStyle("right-start", ` - right: calc(${arrowSize} / -2); - top: calc(${getArrowOffset("right-start")} - var(--v-offset-top)); - `), placementStyle("right", ` - right: calc(${arrowSize} / -2); - transform: translateY(calc(${arrowSize} / -2)) rotate(45deg); - top: 50%; - `), placementStyle("right-end", ` - right: calc(${arrowSize} / -2); - bottom: calc(${getArrowOffset("right-end")} + var(--v-offset-top)); - `), ...map({ - top: ["right-start", "left-start"], - right: ["top-end", "bottom-end"], - bottom: ["right-end", "left-end"], - left: ["top-start", "bottom-start"] -}, (placements, direction) => { - const isVertical = ["right", "left"].includes(direction); - const sizeType = isVertical ? "width" : "height"; - return placements.map((placement) => { - const isReverse = placement.split("-")[1] === "end"; - const targetSize = `var(--v-target-${sizeType}, 0px)`; - const centerOffset = `calc((${targetSize} - ${arrowSize}) / 2)`; - const offset = getArrowOffset(placement); - return c(`[v-placement="${placement}"] >`, [cB("popover-shared", [cM("center-arrow", [cB("popover-arrow", `${direction}: calc(max(${centerOffset}, ${offset}) ${isReverse ? "+" : "-"} var(--v-offset-${isVertical ? "left" : "top"}));`)])])]); - }); -})]); -function getArrowOffset(placement) { - return ["top", "bottom"].includes(placement.split("-")[0]) ? "var(--n-arrow-offset)" : "var(--n-arrow-offset-vertical)"; -} -function placementStyle(placement, arrowStyleLiteral) { - const position = placement.split("-")[0]; - const sizeStyle = ["top", "bottom"].includes(position) ? "height: var(--n-space-arrow);" : "width: var(--n-space-arrow);"; - return c(`[v-placement="${placement}"] >`, [cB("popover-shared", ` - margin-${oppositePlacement[position]}: var(--n-space); - `, [cM("show-arrow", ` - margin-${oppositePlacement[position]}: var(--n-space-arrow); - `), cM("overlap", ` - margin: 0; - `), cCB("popover-arrow-wrapper", ` - right: 0; - left: 0; - top: 0; - bottom: 0; - ${position}: 100%; - ${oppositePlacement[position]}: auto; - ${sizeStyle} - `, [cB("popover-arrow", arrowStyleLiteral)])])]); -} -const popoverBodyProps = Object.assign(Object.assign({}, useTheme.props), { - to: useAdjustedTo.propTo, - show: Boolean, - trigger: String, - showArrow: Boolean, - delay: Number, - duration: Number, - raw: Boolean, - arrowPointToCenter: Boolean, - arrowClass: String, - arrowStyle: [String, Object], - arrowWrapperClass: String, - arrowWrapperStyle: [String, Object], - displayDirective: String, - x: Number, - y: Number, - flip: Boolean, - overlap: Boolean, - placement: String, - width: [Number, String], - keepAliveOnHover: Boolean, - scrollable: Boolean, - contentClass: String, - contentStyle: [Object, String], - headerClass: String, - headerStyle: [Object, String], - footerClass: String, - footerStyle: [Object, String], - // private - internalDeactivateImmediately: Boolean, - animated: Boolean, - onClickoutside: Function, - internalTrapFocus: Boolean, - internalOnAfterLeave: Function, - // deprecated - minWidth: Number, - maxWidth: Number -}); -function renderArrow({ - arrowClass, - arrowStyle, - arrowWrapperClass, - arrowWrapperStyle, - clsPrefix -}) { - return h("div", { - key: "__popover-arrow__", - style: arrowWrapperStyle, - class: [`${clsPrefix}-popover-arrow-wrapper`, arrowWrapperClass] - }, h("div", { - class: [`${clsPrefix}-popover-arrow`, arrowClass], - style: arrowStyle - })); -} -const NPopoverBody = defineComponent({ - name: "PopoverBody", - inheritAttrs: false, - props: popoverBodyProps, - setup(props, { - slots, - attrs - }) { - const { - namespaceRef, - mergedClsPrefixRef, - inlineThemeDisabled - } = useConfig(props); - const themeRef = useTheme("Popover", "-popover", style$1, popoverLight, props, mergedClsPrefixRef); - const followerRef = ref(null); - const NPopover = inject("NPopover"); - const bodyRef = ref(null); - const followerEnabledRef = ref(props.show); - const displayedRef = ref(false); - watchEffect(() => { - const { - show - } = props; - if (show && !isJsdom() && !props.internalDeactivateImmediately) { - displayedRef.value = true; - } - }); - const directivesRef = computed(() => { - const { - trigger, - onClickoutside - } = props; - const directives = []; - const { - positionManuallyRef: { - value: positionManually - } - } = NPopover; - if (!positionManually) { - if (trigger === "click" && !onClickoutside) { - directives.push([clickoutside, handleClickOutside, void 0, { - capture: true - }]); - } - if (trigger === "hover") { - directives.push([mousemoveoutside, handleMouseMoveOutside]); - } - } - if (onClickoutside) { - directives.push([clickoutside, handleClickOutside, void 0, { - capture: true - }]); - } - if (props.displayDirective === "show" || props.animated && displayedRef.value) { - directives.push([vShow, props.show]); - } - return directives; - }); - const cssVarsRef = computed(() => { - const { - common: { - cubicBezierEaseInOut, - cubicBezierEaseIn, - cubicBezierEaseOut - }, - self: { - space, - spaceArrow, - padding, - fontSize, - textColor, - dividerColor, - color, - boxShadow, - borderRadius, - arrowHeight, - arrowOffset, - arrowOffsetVertical - } - } = themeRef.value; - return { - "--n-box-shadow": boxShadow, - "--n-bezier": cubicBezierEaseInOut, - "--n-bezier-ease-in": cubicBezierEaseIn, - "--n-bezier-ease-out": cubicBezierEaseOut, - "--n-font-size": fontSize, - "--n-text-color": textColor, - "--n-color": color, - "--n-divider-color": dividerColor, - "--n-border-radius": borderRadius, - "--n-arrow-height": arrowHeight, - "--n-arrow-offset": arrowOffset, - "--n-arrow-offset-vertical": arrowOffsetVertical, - "--n-padding": padding, - "--n-space": space, - "--n-space-arrow": spaceArrow - }; - }); - const styleRef = computed(() => { - const width = props.width === "trigger" ? void 0 : formatLength(props.width); - const style2 = []; - if (width) { - style2.push({ - width - }); - } - const { - maxWidth, - minWidth - } = props; - if (maxWidth) { - style2.push({ - maxWidth: formatLength(maxWidth) - }); - } - if (minWidth) { - style2.push({ - maxWidth: formatLength(minWidth) - }); - } - if (!inlineThemeDisabled) { - style2.push(cssVarsRef.value); - } - return style2; - }); - const themeClassHandle = inlineThemeDisabled ? useThemeClass("popover", void 0, cssVarsRef, props) : void 0; - NPopover.setBodyInstance({ - syncPosition - }); - onBeforeUnmount(() => { - NPopover.setBodyInstance(null); - }); - watch(toRef(props, "show"), (value) => { - if (props.animated) return; - if (value) { - followerEnabledRef.value = true; - } else { - followerEnabledRef.value = false; - } - }); - function syncPosition() { - var _a; - (_a = followerRef.value) === null || _a === void 0 ? void 0 : _a.syncPosition(); - } - function handleMouseEnter(e) { - if (props.trigger === "hover" && props.keepAliveOnHover && props.show) { - NPopover.handleMouseEnter(e); - } - } - function handleMouseLeave(e) { - if (props.trigger === "hover" && props.keepAliveOnHover) { - NPopover.handleMouseLeave(e); - } - } - function handleMouseMoveOutside(e) { - if (props.trigger === "hover" && !getTriggerElement().contains(getPreciseEventTarget(e))) { - NPopover.handleMouseMoveOutside(e); - } - } - function handleClickOutside(e) { - if (props.trigger === "click" && !getTriggerElement().contains(getPreciseEventTarget(e)) || props.onClickoutside) { - NPopover.handleClickOutside(e); - } - } - function getTriggerElement() { - return NPopover.getTriggerElement(); - } - provide(popoverBodyInjectionKey, bodyRef); - provide(drawerBodyInjectionKey, null); - provide(modalBodyInjectionKey, null); - function renderContentNode() { - themeClassHandle === null || themeClassHandle === void 0 ? void 0 : themeClassHandle.onRender(); - const shouldRenderDom = props.displayDirective === "show" || props.show || props.animated && displayedRef.value; - if (!shouldRenderDom) { - return null; - } - let contentNode; - const renderBody = NPopover.internalRenderBodyRef.value; - const { - value: mergedClsPrefix - } = mergedClsPrefixRef; - if (!renderBody) { - const { - value: extraClass - } = NPopover.extraClassRef; - const { - internalTrapFocus - } = props; - const hasHeaderOrFooter = !isSlotEmpty(slots.header) || !isSlotEmpty(slots.footer); - const renderContentInnerNode = () => { - var _a, _b; - const body = hasHeaderOrFooter ? h(Fragment, null, resolveWrappedSlot(slots.header, (children) => { - return children ? h("div", { - class: [`${mergedClsPrefix}-popover__header`, props.headerClass], - style: props.headerStyle - }, children) : null; - }), resolveWrappedSlot(slots.default, (children) => { - return children ? h("div", { - class: [`${mergedClsPrefix}-popover__content`, props.contentClass], - style: props.contentStyle - }, slots) : null; - }), resolveWrappedSlot(slots.footer, (children) => { - return children ? h("div", { - class: [`${mergedClsPrefix}-popover__footer`, props.footerClass], - style: props.footerStyle - }, children) : null; - })) : props.scrollable ? (_a = slots.default) === null || _a === void 0 ? void 0 : _a.call(slots) : h("div", { - class: [`${mergedClsPrefix}-popover__content`, props.contentClass], - style: props.contentStyle - }, slots); - const maybeScrollableBody = props.scrollable ? h(XScrollbar, { - contentClass: hasHeaderOrFooter ? void 0 : `${mergedClsPrefix}-popover__content ${(_b = props.contentClass) !== null && _b !== void 0 ? _b : ""}`, - contentStyle: hasHeaderOrFooter ? void 0 : props.contentStyle - }, { - default: () => body - }) : body; - const arrow = props.showArrow ? renderArrow({ - arrowClass: props.arrowClass, - arrowStyle: props.arrowStyle, - arrowWrapperClass: props.arrowWrapperClass, - arrowWrapperStyle: props.arrowWrapperStyle, - clsPrefix: mergedClsPrefix - }) : null; - return [maybeScrollableBody, arrow]; - }; - contentNode = h("div", mergeProps({ - class: [`${mergedClsPrefix}-popover`, `${mergedClsPrefix}-popover-shared`, themeClassHandle === null || themeClassHandle === void 0 ? void 0 : themeClassHandle.themeClass.value, extraClass.map((v) => `${mergedClsPrefix}-${v}`), { - [`${mergedClsPrefix}-popover--scrollable`]: props.scrollable, - [`${mergedClsPrefix}-popover--show-header-or-footer`]: hasHeaderOrFooter, - [`${mergedClsPrefix}-popover--raw`]: props.raw, - [`${mergedClsPrefix}-popover-shared--overlap`]: props.overlap, - [`${mergedClsPrefix}-popover-shared--show-arrow`]: props.showArrow, - [`${mergedClsPrefix}-popover-shared--center-arrow`]: props.arrowPointToCenter - }], - ref: bodyRef, - style: styleRef.value, - onKeydown: NPopover.handleKeydown, - onMouseenter: handleMouseEnter, - onMouseleave: handleMouseLeave - }, attrs), internalTrapFocus ? h(FocusTrap, { - active: props.show, - autoFocus: true - }, { - default: renderContentInnerNode - }) : renderContentInnerNode()); - } else { - contentNode = renderBody( - // The popover class and overlap class must exists, they will be used - // to place the body & transition animation. - // Shadow class exists for reuse box-shadow. - [`${mergedClsPrefix}-popover-shared`, themeClassHandle === null || themeClassHandle === void 0 ? void 0 : themeClassHandle.themeClass.value, props.overlap && `${mergedClsPrefix}-popover-shared--overlap`, props.showArrow && `${mergedClsPrefix}-popover-shared--show-arrow`, props.arrowPointToCenter && `${mergedClsPrefix}-popover-shared--center-arrow`], - bodyRef, - styleRef.value, - handleMouseEnter, - handleMouseLeave - ); - } - return withDirectives(contentNode, directivesRef.value); - } - return { - displayed: displayedRef, - namespace: namespaceRef, - isMounted: NPopover.isMountedRef, - zIndex: NPopover.zIndexRef, - followerRef, - adjustedTo: useAdjustedTo(props), - followerEnabled: followerEnabledRef, - renderContentNode - }; - }, - render() { - return h(VFollower, { - ref: "followerRef", - zIndex: this.zIndex, - show: this.show, - enabled: this.followerEnabled, - to: this.adjustedTo, - x: this.x, - y: this.y, - flip: this.flip, - placement: this.placement, - containerClass: this.namespace, - overlap: this.overlap, - width: this.width === "trigger" ? "target" : void 0, - teleportDisabled: this.adjustedTo === useAdjustedTo.tdkey - }, { - default: () => { - return this.animated ? h(Transition, { - name: "popover-transition", - appear: this.isMounted, - // Don't use watch to enable follower, since the transition may - // make position sync timing very subtle and buggy. - onEnter: () => { - this.followerEnabled = true; - }, - onAfterLeave: () => { - var _a; - (_a = this.internalOnAfterLeave) === null || _a === void 0 ? void 0 : _a.call(this); - this.followerEnabled = false; - this.displayed = false; - } - }, { - default: this.renderContentNode - }) : this.renderContentNode(); - } - }); - } -}); -const bodyPropKeys = Object.keys(popoverBodyProps); -const triggerEventMap = { - focus: ["onFocus", "onBlur"], - click: ["onClick"], - hover: ["onMouseenter", "onMouseleave"], - manual: [], - nested: ["onFocus", "onBlur", "onMouseenter", "onMouseleave", "onClick"] -}; -function appendEvents(vNode, trigger, events) { - triggerEventMap[trigger].forEach((eventName) => { - if (!vNode.props) { - vNode.props = {}; - } else { - vNode.props = Object.assign({}, vNode.props); - } - const originalHandler = vNode.props[eventName]; - const handler = events[eventName]; - if (!originalHandler) { - vNode.props[eventName] = handler; - } else { - vNode.props[eventName] = (...args) => { - originalHandler(...args); - handler(...args); - }; - } - }); -} -const popoverBaseProps = { - show: { - type: Boolean, - default: void 0 - }, - defaultShow: Boolean, - showArrow: { - type: Boolean, - default: true - }, - trigger: { - type: String, - default: "hover" - }, - delay: { - type: Number, - default: 100 - }, - duration: { - type: Number, - default: 100 - }, - raw: Boolean, - placement: { - type: String, - default: "top" - }, - x: Number, - y: Number, - arrowPointToCenter: Boolean, - disabled: Boolean, - getDisabled: Function, - displayDirective: { - type: String, - default: "if" - }, - arrowClass: String, - arrowStyle: [String, Object], - arrowWrapperClass: String, - arrowWrapperStyle: [String, Object], - flip: { - type: Boolean, - default: true - }, - animated: { - type: Boolean, - default: true - }, - width: { - type: [Number, String], - default: void 0 - }, - overlap: Boolean, - keepAliveOnHover: { - type: Boolean, - default: true - }, - zIndex: Number, - to: useAdjustedTo.propTo, - scrollable: Boolean, - contentClass: String, - contentStyle: [Object, String], - headerClass: String, - headerStyle: [Object, String], - footerClass: String, - footerStyle: [Object, String], - // events - onClickoutside: Function, - "onUpdate:show": [Function, Array], - onUpdateShow: [Function, Array], - // internal - internalDeactivateImmediately: Boolean, - internalSyncTargetWithParent: Boolean, - internalInheritedEventHandlers: { - type: Array, - default: () => [] - }, - internalTrapFocus: Boolean, - internalExtraClass: { - type: Array, - default: () => [] - }, - // deprecated - onShow: [Function, Array], - onHide: [Function, Array], - arrow: { - type: Boolean, - default: void 0 - }, - minWidth: Number, - maxWidth: Number -}; -const popoverProps = Object.assign(Object.assign(Object.assign({}, useTheme.props), popoverBaseProps), { - internalOnAfterLeave: Function, - internalRenderBody: Function -}); -const __unplugin_components_5 = defineComponent({ - name: "Popover", - inheritAttrs: false, - props: popoverProps, - __popover__: true, - setup(props) { - const isMountedRef = isMounted(); - const binderInstRef = ref(null); - const controlledShowRef = computed(() => props.show); - const uncontrolledShowRef = ref(props.defaultShow); - const mergedShowWithoutDisabledRef = useMergedState(controlledShowRef, uncontrolledShowRef); - const mergedShowConsideringDisabledPropRef = useMemo(() => { - if (props.disabled) return false; - return mergedShowWithoutDisabledRef.value; - }); - const getMergedDisabled = () => { - if (props.disabled) return true; - const { - getDisabled - } = props; - if (getDisabled === null || getDisabled === void 0 ? void 0 : getDisabled()) return true; - return false; - }; - const getMergedShow = () => { - if (getMergedDisabled()) return false; - return mergedShowWithoutDisabledRef.value; - }; - const compatibleShowArrowRef = useCompitable(props, ["arrow", "showArrow"]); - const mergedShowArrowRef = computed(() => { - if (props.overlap) return false; - return compatibleShowArrowRef.value; - }); - let bodyInstance = null; - const showTimerIdRef = ref(null); - const hideTimerIdRef = ref(null); - const positionManuallyRef = useMemo(() => { - return props.x !== void 0 && props.y !== void 0; - }); - function doUpdateShow(value) { - const { - "onUpdate:show": _onUpdateShow, - onUpdateShow, - onShow, - onHide - } = props; - uncontrolledShowRef.value = value; - if (_onUpdateShow) { - call(_onUpdateShow, value); - } - if (onUpdateShow) { - call(onUpdateShow, value); - } - if (value && onShow) { - call(onShow, true); - } - if (value && onHide) { - call(onHide, false); - } - } - function syncPosition() { - if (bodyInstance) { - bodyInstance.syncPosition(); - } - } - function clearShowTimer() { - const { - value: showTimerId - } = showTimerIdRef; - if (showTimerId) { - window.clearTimeout(showTimerId); - showTimerIdRef.value = null; - } - } - function clearHideTimer() { - const { - value: hideTimerId - } = hideTimerIdRef; - if (hideTimerId) { - window.clearTimeout(hideTimerId); - hideTimerIdRef.value = null; - } - } - function handleFocus() { - const mergedDisabled = getMergedDisabled(); - if (props.trigger === "focus" && !mergedDisabled) { - if (getMergedShow()) return; - doUpdateShow(true); - } - } - function handleBlur() { - const mergedDisabled = getMergedDisabled(); - if (props.trigger === "focus" && !mergedDisabled) { - if (!getMergedShow()) return; - doUpdateShow(false); - } - } - function handleMouseEnter() { - const mergedDisabled = getMergedDisabled(); - if (props.trigger === "hover" && !mergedDisabled) { - clearHideTimer(); - if (showTimerIdRef.value !== null) return; - if (getMergedShow()) return; - const delayCallback = () => { - doUpdateShow(true); - showTimerIdRef.value = null; - }; - const { - delay - } = props; - if (delay === 0) { - delayCallback(); - } else { - showTimerIdRef.value = window.setTimeout(delayCallback, delay); - } - } - } - function handleMouseLeave() { - const mergedDisabled = getMergedDisabled(); - if (props.trigger === "hover" && !mergedDisabled) { - clearShowTimer(); - if (hideTimerIdRef.value !== null) return; - if (!getMergedShow()) return; - const delayedCallback = () => { - doUpdateShow(false); - hideTimerIdRef.value = null; - }; - const { - duration - } = props; - if (duration === 0) { - delayedCallback(); - } else { - hideTimerIdRef.value = window.setTimeout(delayedCallback, duration); - } - } - } - function handleMouseMoveOutside() { - handleMouseLeave(); - } - function handleClickOutside(e) { - var _a; - if (!getMergedShow()) return; - if (props.trigger === "click") { - clearShowTimer(); - clearHideTimer(); - doUpdateShow(false); - } - (_a = props.onClickoutside) === null || _a === void 0 ? void 0 : _a.call(props, e); - } - function handleClick() { - if (props.trigger === "click" && !getMergedDisabled()) { - clearShowTimer(); - clearHideTimer(); - const nextShow = !getMergedShow(); - doUpdateShow(nextShow); - } - } - function handleKeydown(e) { - if (!props.internalTrapFocus) return; - if (e.key === "Escape") { - clearShowTimer(); - clearHideTimer(); - doUpdateShow(false); - } - } - function setShow(value) { - uncontrolledShowRef.value = value; - } - function getTriggerElement() { - var _a; - return (_a = binderInstRef.value) === null || _a === void 0 ? void 0 : _a.targetRef; - } - function setBodyInstance(value) { - bodyInstance = value; - } - provide("NPopover", { - getTriggerElement, - handleKeydown, - handleMouseEnter, - handleMouseLeave, - handleClickOutside, - handleMouseMoveOutside, - setBodyInstance, - positionManuallyRef, - isMountedRef, - zIndexRef: toRef(props, "zIndex"), - extraClassRef: toRef(props, "internalExtraClass"), - internalRenderBodyRef: toRef(props, "internalRenderBody") - }); - watchEffect(() => { - if (mergedShowWithoutDisabledRef.value && getMergedDisabled()) { - doUpdateShow(false); - } - }); - const returned = { - binderInstRef, - positionManually: positionManuallyRef, - mergedShowConsideringDisabledProp: mergedShowConsideringDisabledPropRef, - // if to show popover body - uncontrolledShow: uncontrolledShowRef, - mergedShowArrow: mergedShowArrowRef, - getMergedShow, - setShow, - handleClick, - handleMouseEnter, - handleMouseLeave, - handleFocus, - handleBlur, - syncPosition - }; - return returned; - }, - render() { - var _a; - const { - positionManually, - $slots: slots - } = this; - let triggerVNode; - let popoverInside = false; - if (!positionManually) { - if (slots.activator) { - triggerVNode = getFirstSlotVNode(slots, "activator"); - } else { - triggerVNode = getFirstSlotVNode(slots, "trigger"); - } - if (triggerVNode) { - triggerVNode = cloneVNode(triggerVNode); - triggerVNode = triggerVNode.type === Text ? h("span", [triggerVNode]) : triggerVNode; - const handlers = { - onClick: this.handleClick, - onMouseenter: this.handleMouseEnter, - onMouseleave: this.handleMouseLeave, - onFocus: this.handleFocus, - onBlur: this.handleBlur - }; - if ((_a = triggerVNode.type) === null || _a === void 0 ? void 0 : _a.__popover__) { - popoverInside = true; - if (!triggerVNode.props) { - triggerVNode.props = { - internalSyncTargetWithParent: true, - internalInheritedEventHandlers: [] - }; - } - triggerVNode.props.internalSyncTargetWithParent = true; - if (!triggerVNode.props.internalInheritedEventHandlers) { - triggerVNode.props.internalInheritedEventHandlers = [handlers]; - } else { - triggerVNode.props.internalInheritedEventHandlers = [handlers, ...triggerVNode.props.internalInheritedEventHandlers]; - } - } else { - const { - internalInheritedEventHandlers - } = this; - const ascendantAndCurrentHandlers = [handlers, ...internalInheritedEventHandlers]; - const mergedHandlers = { - onBlur: (e) => { - ascendantAndCurrentHandlers.forEach((_handlers) => { - _handlers.onBlur(e); - }); - }, - onFocus: (e) => { - ascendantAndCurrentHandlers.forEach((_handlers) => { - _handlers.onFocus(e); - }); - }, - onClick: (e) => { - ascendantAndCurrentHandlers.forEach((_handlers) => { - _handlers.onClick(e); - }); - }, - onMouseenter: (e) => { - ascendantAndCurrentHandlers.forEach((_handlers) => { - _handlers.onMouseenter(e); - }); - }, - onMouseleave: (e) => { - ascendantAndCurrentHandlers.forEach((_handlers) => { - _handlers.onMouseleave(e); - }); - } - }; - appendEvents(triggerVNode, internalInheritedEventHandlers ? "nested" : positionManually ? "manual" : this.trigger, mergedHandlers); - } - } - } - return h(Binder, { - ref: "binderInstRef", - syncTarget: !popoverInside, - syncTargetWithParent: this.internalSyncTargetWithParent - }, { - default: () => { - void this.mergedShowConsideringDisabledProp; - const mergedShow = this.getMergedShow(); - return [this.internalTrapFocus && mergedShow ? withDirectives(h("div", { - style: { - position: "fixed", - top: 0, - right: 0, - bottom: 0, - left: 0 - } - }), [[zindexable, { - enabled: mergedShow, - zIndex: this.zIndex - }]]) : null, positionManually ? null : h(VTarget, null, { - default: () => triggerVNode - }), h(NPopoverBody, keep(this.$props, bodyPropKeys, Object.assign(Object.assign({}, this.$attrs), { - showArrow: this.mergedShowArrow, - show: mergedShow - })), { - default: () => { - var _a2, _b; - return (_b = (_a2 = this.$slots).default) === null || _b === void 0 ? void 0 : _b.call(_a2); - }, - header: () => { - var _a2, _b; - return (_b = (_a2 = this.$slots).header) === null || _b === void 0 ? void 0 : _b.call(_a2); - }, - footer: () => { - var _a2, _b; - return (_b = (_a2 = this.$slots).footer) === null || _b === void 0 ? void 0 : _b.call(_a2); - } - })]; - } - }); - } -}); -const isImageSupportNativeLazy = isBrowser && "loading" in document.createElement("img"); -function resolveOptionsAndHash(options = {}) { - var _a; - const { - root: root2 = null - } = options; - return { - hash: `${options.rootMargin || "0px 0px 0px 0px"}-${Array.isArray(options.threshold) ? options.threshold.join(",") : (_a = options.threshold) !== null && _a !== void 0 ? _a : "0"}`, - options: Object.assign(Object.assign({}, options), { - root: (typeof root2 === "string" ? document.querySelector(root2) : root2) || document.documentElement - }) - }; -} -const observers = /* @__PURE__ */ new WeakMap(); -const unobserveHandleMap = /* @__PURE__ */ new WeakMap(); -const shouldStartLoadingRefMap = /* @__PURE__ */ new WeakMap(); -const observeIntersection = (el, options, shouldStartLoadingRef) => { - if (!el) return () => { - }; - const resolvedOptionsAndHash = resolveOptionsAndHash(options); - const { - root: root2 - } = resolvedOptionsAndHash.options; - let rootObservers; - const _rootObservers = observers.get(root2); - if (_rootObservers) { - rootObservers = _rootObservers; - } else { - rootObservers = /* @__PURE__ */ new Map(); - observers.set(root2, rootObservers); - } - let observer; - let observerAndObservedElements; - if (rootObservers.has(resolvedOptionsAndHash.hash)) { - observerAndObservedElements = rootObservers.get(resolvedOptionsAndHash.hash); - if (!observerAndObservedElements[1].has(el)) { - observer = observerAndObservedElements[0]; - observerAndObservedElements[1].add(el); - observer.observe(el); - } - } else { - observer = new IntersectionObserver((entries) => { - entries.forEach((entry) => { - if (entry.isIntersecting) { - const _unobserve = unobserveHandleMap.get(entry.target); - const _shouldStartLoadingRef = shouldStartLoadingRefMap.get(entry.target); - if (_unobserve) _unobserve(); - if (_shouldStartLoadingRef) { - _shouldStartLoadingRef.value = true; - } - } - }); - }, resolvedOptionsAndHash.options); - observer.observe(el); - observerAndObservedElements = [observer, /* @__PURE__ */ new Set([el])]; - rootObservers.set(resolvedOptionsAndHash.hash, observerAndObservedElements); - } - let unobservered = false; - const unobserve = () => { - if (unobservered) return; - unobserveHandleMap.delete(el); - shouldStartLoadingRefMap.delete(el); - unobservered = true; - if (observerAndObservedElements[1].has(el)) { - observerAndObservedElements[0].unobserve(el); - observerAndObservedElements[1].delete(el); - } - if (observerAndObservedElements[1].size <= 0) { - rootObservers.delete(resolvedOptionsAndHash.hash); - } - if (!rootObservers.size) { - observers.delete(root2); - } - }; - unobserveHandleMap.set(el, unobserve); - shouldStartLoadingRefMap.set(el, shouldStartLoadingRef); - return unobserve; -}; -const tooltipProps = Object.assign(Object.assign({}, popoverBaseProps), useTheme.props); -const __unplugin_components_3 = defineComponent({ - name: "Tooltip", - props: tooltipProps, - __popover__: true, - setup(props) { - const { - mergedClsPrefixRef - } = useConfig(props); - const themeRef = useTheme("Tooltip", "-tooltip", void 0, tooltipLight, props, mergedClsPrefixRef); - const popoverRef = ref(null); - const tooltipExposedMethod = { - syncPosition() { - popoverRef.value.syncPosition(); - }, - setShow(show) { - popoverRef.value.setShow(show); - } - }; - return Object.assign(Object.assign({}, tooltipExposedMethod), { - popoverRef, - mergedTheme: themeRef, - popoverThemeOverrides: computed(() => { - return themeRef.value.self; - }) - }); - }, - render() { - const { - mergedTheme, - internalExtraClass - } = this; - return h(__unplugin_components_5, Object.assign(Object.assign({}, this.$props), { - theme: mergedTheme.peers.Popover, - themeOverrides: mergedTheme.peerOverrides.Popover, - builtinThemeOverrides: this.popoverThemeOverrides, - internalExtraClass: internalExtraClass.concat("tooltip"), - ref: "popoverRef" - }), this.$slots); - } -}); -function renderPrevIcon() { - return h("svg", { - viewBox: "0 0 20 20", - fill: "none", - xmlns: "http://www.w3.org/2000/svg" - }, h("path", { - d: "M6 5C5.75454 5 5.55039 5.17688 5.50806 5.41012L5.5 5.5V14.5C5.5 14.7761 5.72386 15 6 15C6.24546 15 6.44961 14.8231 6.49194 14.5899L6.5 14.5V5.5C6.5 5.22386 6.27614 5 6 5ZM13.8536 5.14645C13.68 4.97288 13.4106 4.9536 13.2157 5.08859L13.1464 5.14645L8.64645 9.64645C8.47288 9.82001 8.4536 10.0894 8.58859 10.2843L8.64645 10.3536L13.1464 14.8536C13.3417 15.0488 13.6583 15.0488 13.8536 14.8536C14.0271 14.68 14.0464 14.4106 13.9114 14.2157L13.8536 14.1464L9.70711 10L13.8536 5.85355C14.0488 5.65829 14.0488 5.34171 13.8536 5.14645Z", - fill: "currentColor" - })); -} -function renderNextIcon() { - return h("svg", { - viewBox: "0 0 20 20", - fill: "none", - xmlns: "http://www.w3.org/2000/svg" - }, h("path", { - d: "M13.5 5C13.7455 5 13.9496 5.17688 13.9919 5.41012L14 5.5V14.5C14 14.7761 13.7761 15 13.5 15C13.2545 15 13.0504 14.8231 13.0081 14.5899L13 14.5V5.5C13 5.22386 13.2239 5 13.5 5ZM5.64645 5.14645C5.82001 4.97288 6.08944 4.9536 6.28431 5.08859L6.35355 5.14645L10.8536 9.64645C11.0271 9.82001 11.0464 10.0894 10.9114 10.2843L10.8536 10.3536L6.35355 14.8536C6.15829 15.0488 5.84171 15.0488 5.64645 14.8536C5.47288 14.68 5.4536 14.4106 5.58859 14.2157L5.64645 14.1464L9.79289 10L5.64645 5.85355C5.45118 5.65829 5.45118 5.34171 5.64645 5.14645Z", - fill: "currentColor" - })); -} -function renderCloseIcon() { - return h("svg", { - viewBox: "0 0 20 20", - fill: "none", - xmlns: "http://www.w3.org/2000/svg" - }, h("path", { - d: "M4.089 4.216l.057-.07a.5.5 0 0 1 .638-.057l.07.057L10 9.293l5.146-5.147a.5.5 0 0 1 .638-.057l.07.057a.5.5 0 0 1 .057.638l-.057.07L10.707 10l5.147 5.146a.5.5 0 0 1 .057.638l-.057.07a.5.5 0 0 1-.638.057l-.07-.057L10 10.707l-5.146 5.147a.5.5 0 0 1-.638.057l-.07-.057a.5.5 0 0 1-.057-.638l.057-.07L9.293 10L4.146 4.854a.5.5 0 0 1-.057-.638l.057-.07l-.057.07z", - fill: "currentColor" - })); -} -const imagePreviewSharedProps = Object.assign(Object.assign({}, useTheme.props), { - onPreviewPrev: Function, - onPreviewNext: Function, - showToolbar: { - type: Boolean, - default: true - }, - showToolbarTooltip: Boolean, - renderToolbar: Function -}); -const imageContextKey = createInjectionKey("n-image"); -const style = c([c("body >", [cB("image-container", "position: fixed;")]), cB("image-preview-container", ` - position: fixed; - left: 0; - right: 0; - top: 0; - bottom: 0; - display: flex; - `), cB("image-preview-overlay", ` - z-index: -1; - position: absolute; - left: 0; - right: 0; - top: 0; - bottom: 0; - background: rgba(0, 0, 0, .3); - `, [fadeInTransition()]), cB("image-preview-toolbar", ` - z-index: 1; - position: absolute; - left: 50%; - transform: translateX(-50%); - border-radius: var(--n-toolbar-border-radius); - height: 48px; - bottom: 40px; - padding: 0 12px; - background: var(--n-toolbar-color); - box-shadow: var(--n-toolbar-box-shadow); - color: var(--n-toolbar-icon-color); - transition: color .3s var(--n-bezier); - display: flex; - align-items: center; - `, [cB("base-icon", ` - padding: 0 8px; - font-size: 28px; - cursor: pointer; - `), fadeInTransition()]), cB("image-preview-wrapper", ` - position: absolute; - left: 0; - right: 0; - top: 0; - bottom: 0; - display: flex; - pointer-events: none; - `, [fadeInScaleUpTransition()]), cB("image-preview", ` - user-select: none; - -webkit-user-select: none; - pointer-events: all; - margin: auto; - max-height: calc(100vh - 32px); - max-width: calc(100vw - 32px); - transition: transform .3s var(--n-bezier); - `), cB("image", ` - display: inline-flex; - max-height: 100%; - max-width: 100%; - `, [cNotM("preview-disabled", ` - cursor: pointer; - `), c("img", ` - border-radius: inherit; - `)])]); -const BLEEDING = 32; -const NImagePreview = defineComponent({ - name: "ImagePreview", - props: Object.assign(Object.assign({}, imagePreviewSharedProps), { - onNext: Function, - onPrev: Function, - clsPrefix: { - type: String, - required: true - } - }), - setup(props) { - const themeRef = useTheme("Image", "-image", style, imageLight, props, toRef(props, "clsPrefix")); - let thumbnailEl = null; - const previewRef = ref(null); - const previewWrapperRef = ref(null); - const previewSrcRef = ref(void 0); - const showRef = ref(false); - const displayedRef = ref(false); - const { - localeRef - } = useLocale("Image"); - function syncTransformOrigin() { - const { - value: previewWrapper - } = previewWrapperRef; - if (!thumbnailEl || !previewWrapper) return; - const { - style: style2 - } = previewWrapper; - const tbox = thumbnailEl.getBoundingClientRect(); - const tx = tbox.left + tbox.width / 2; - const ty = tbox.top + tbox.height / 2; - style2.transformOrigin = `${tx}px ${ty}px`; - } - function handleKeydown(e) { - var _a, _b; - switch (e.key) { - case " ": - e.preventDefault(); - break; - case "ArrowLeft": - (_a = props.onPrev) === null || _a === void 0 ? void 0 : _a.call(props); - break; - case "ArrowRight": - (_b = props.onNext) === null || _b === void 0 ? void 0 : _b.call(props); - break; - case "Escape": - toggleShow(); - break; - } - } - watch(showRef, (value) => { - if (value) { - on("keydown", document, handleKeydown); - } else { - off("keydown", document, handleKeydown); - } - }); - onBeforeUnmount(() => { - off("keydown", document, handleKeydown); - }); - let startX = 0; - let startY = 0; - let offsetX = 0; - let offsetY = 0; - let startOffsetX = 0; - let startOffsetY = 0; - let mouseDownClientX = 0; - let mouseDownClientY = 0; - let dragging = false; - function handleMouseMove(e) { - const { - clientX, - clientY - } = e; - offsetX = clientX - startX; - offsetY = clientY - startY; - beforeNextFrameOnce(derivePreviewStyle); - } - function getMoveStrategy(opts) { - const { - mouseUpClientX, - mouseUpClientY, - mouseDownClientX: mouseDownClientX2, - mouseDownClientY: mouseDownClientY2 - } = opts; - const deltaHorizontal = mouseDownClientX2 - mouseUpClientX; - const deltaVertical = mouseDownClientY2 - mouseUpClientY; - const moveVerticalDirection = `vertical${deltaVertical > 0 ? "Top" : "Bottom"}`; - const moveHorizontalDirection = `horizontal${deltaHorizontal > 0 ? "Left" : "Right"}`; - return { - moveVerticalDirection, - moveHorizontalDirection, - deltaHorizontal, - deltaVertical - }; - } - function getDerivedOffset(moveStrategy) { - const { - value: preview - } = previewRef; - if (!preview) return { - offsetX: 0, - offsetY: 0 - }; - const pbox = preview.getBoundingClientRect(); - const { - moveVerticalDirection, - moveHorizontalDirection, - deltaHorizontal, - deltaVertical - } = moveStrategy || {}; - let nextOffsetX = 0; - let nextOffsetY = 0; - if (pbox.width <= window.innerWidth) { - nextOffsetX = 0; - } else if (pbox.left > 0) { - nextOffsetX = (pbox.width - window.innerWidth) / 2; - } else if (pbox.right < window.innerWidth) { - nextOffsetX = -(pbox.width - window.innerWidth) / 2; - } else if (moveHorizontalDirection === "horizontalRight") { - nextOffsetX = Math.min((pbox.width - window.innerWidth) / 2, startOffsetX - (deltaHorizontal !== null && deltaHorizontal !== void 0 ? deltaHorizontal : 0)); - } else { - nextOffsetX = Math.max(-((pbox.width - window.innerWidth) / 2), startOffsetX - (deltaHorizontal !== null && deltaHorizontal !== void 0 ? deltaHorizontal : 0)); - } - if (pbox.height <= window.innerHeight) { - nextOffsetY = 0; - } else if (pbox.top > 0) { - nextOffsetY = (pbox.height - window.innerHeight) / 2; - } else if (pbox.bottom < window.innerHeight) { - nextOffsetY = -(pbox.height - window.innerHeight) / 2; - } else if (moveVerticalDirection === "verticalBottom") { - nextOffsetY = Math.min((pbox.height - window.innerHeight) / 2, startOffsetY - (deltaVertical !== null && deltaVertical !== void 0 ? deltaVertical : 0)); - } else { - nextOffsetY = Math.max(-((pbox.height - window.innerHeight) / 2), startOffsetY - (deltaVertical !== null && deltaVertical !== void 0 ? deltaVertical : 0)); - } - return { - offsetX: nextOffsetX, - offsetY: nextOffsetY - }; - } - function handleMouseUp(e) { - off("mousemove", document, handleMouseMove); - off("mouseup", document, handleMouseUp); - const { - clientX: mouseUpClientX, - clientY: mouseUpClientY - } = e; - dragging = false; - const moveStrategy = getMoveStrategy({ - mouseUpClientX, - mouseUpClientY, - mouseDownClientX, - mouseDownClientY - }); - const offset = getDerivedOffset(moveStrategy); - offsetX = offset.offsetX; - offsetY = offset.offsetY; - derivePreviewStyle(); - } - const imageContext = inject(imageContextKey, null); - function handlePreviewMousedown(e) { - var _a, _b; - (_b = (_a = imageContext === null || imageContext === void 0 ? void 0 : imageContext.previewedImgPropsRef.value) === null || _a === void 0 ? void 0 : _a.onMousedown) === null || _b === void 0 ? void 0 : _b.call(_a, e); - if (e.button !== 0) return; - const { - clientX, - clientY - } = e; - dragging = true; - startX = clientX - offsetX; - startY = clientY - offsetY; - startOffsetX = offsetX; - startOffsetY = offsetY; - mouseDownClientX = clientX; - mouseDownClientY = clientY; - derivePreviewStyle(); - on("mousemove", document, handleMouseMove); - on("mouseup", document, handleMouseUp); - } - const scaleRadix = 1.5; - let scaleExp = 0; - let scale = 1; - let rotate = 0; - function handlePreviewDblclick(e) { - var _a, _b; - (_b = (_a = imageContext === null || imageContext === void 0 ? void 0 : imageContext.previewedImgPropsRef.value) === null || _a === void 0 ? void 0 : _a.onDblclick) === null || _b === void 0 ? void 0 : _b.call(_a, e); - const originalImageSizeScale = getOrignalImageSizeScale(); - scale = scale === originalImageSizeScale ? 1 : originalImageSizeScale; - derivePreviewStyle(); - } - function resetScale() { - scale = 1; - scaleExp = 0; - } - function handleSwitchPrev() { - var _a; - resetScale(); - rotate = 0; - (_a = props.onPrev) === null || _a === void 0 ? void 0 : _a.call(props); - } - function handleSwitchNext() { - var _a; - resetScale(); - rotate = 0; - (_a = props.onNext) === null || _a === void 0 ? void 0 : _a.call(props); - } - function rotateCounterclockwise() { - rotate -= 90; - derivePreviewStyle(); - } - function rotateClockwise() { - rotate += 90; - derivePreviewStyle(); - } - function getMaxScale() { - const { - value: preview - } = previewRef; - if (!preview) return 1; - const { - innerWidth, - innerHeight - } = window; - const heightMaxScale = Math.max(1, preview.naturalHeight / (innerHeight - BLEEDING)); - const widthMaxScale = Math.max(1, preview.naturalWidth / (innerWidth - BLEEDING)); - return Math.max(3, heightMaxScale * 2, widthMaxScale * 2); - } - function getOrignalImageSizeScale() { - const { - value: preview - } = previewRef; - if (!preview) return 1; - const { - innerWidth, - innerHeight - } = window; - const heightScale = preview.naturalHeight / (innerHeight - BLEEDING); - const widthScale = preview.naturalWidth / (innerWidth - BLEEDING); - if (heightScale < 1 && widthScale < 1) { - return 1; - } - return Math.max(heightScale, widthScale); - } - function zoomIn() { - const maxScale = getMaxScale(); - if (scale < maxScale) { - scaleExp += 1; - scale = Math.min(maxScale, Math.pow(scaleRadix, scaleExp)); - derivePreviewStyle(); - } - } - function zoomOut() { - if (scale > 0.5) { - const originalScale = scale; - scaleExp -= 1; - scale = Math.max(0.5, Math.pow(scaleRadix, scaleExp)); - const diff = originalScale - scale; - derivePreviewStyle(false); - const offset = getDerivedOffset(); - scale += diff; - derivePreviewStyle(false); - scale -= diff; - offsetX = offset.offsetX; - offsetY = offset.offsetY; - derivePreviewStyle(); - } - } - function handleDownloadClick() { - const src = previewSrcRef.value; - if (src) { - download(src); - } - } - function derivePreviewStyle(transition = true) { - var _a; - const { - value: preview - } = previewRef; - if (!preview) return; - const { - style: style2 - } = preview; - const controlledStyle = normalizeStyle((_a = imageContext === null || imageContext === void 0 ? void 0 : imageContext.previewedImgPropsRef.value) === null || _a === void 0 ? void 0 : _a.style); - let controlledStyleString = ""; - if (typeof controlledStyle === "string") { - controlledStyleString = `${controlledStyle};`; - } else { - for (const key in controlledStyle) { - controlledStyleString += `${kebabCase(key)}: ${controlledStyle[key]};`; - } - } - const transformStyle = `transform-origin: center; transform: translateX(${offsetX}px) translateY(${offsetY}px) rotate(${rotate}deg) scale(${scale});`; - if (dragging) { - style2.cssText = `${controlledStyleString}cursor: grabbing; transition: none;${transformStyle}`; - } else { - style2.cssText = `${controlledStyleString}cursor: grab;${transformStyle}${transition ? "" : "transition: none;"}`; - } - if (!transition) { - void preview.offsetHeight; - } - } - function toggleShow() { - showRef.value = !showRef.value; - displayedRef.value = true; - } - function resizeToOrignalImageSize() { - scale = getOrignalImageSizeScale(); - scaleExp = Math.ceil(Math.log(scale) / Math.log(scaleRadix)); - offsetX = 0; - offsetY = 0; - derivePreviewStyle(); - } - const exposedMethods = { - setPreviewSrc: (src) => { - previewSrcRef.value = src; - }, - setThumbnailEl: (el) => { - thumbnailEl = el; - }, - toggleShow - }; - function withTooltip(node, tooltipKey) { - if (props.showToolbarTooltip) { - const { - value: theme - } = themeRef; - return h(__unplugin_components_3, { - to: false, - theme: theme.peers.Tooltip, - themeOverrides: theme.peerOverrides.Tooltip, - keepAliveOnHover: false - }, { - default: () => { - return localeRef.value[tooltipKey]; - }, - trigger: () => node - }); - } else { - return node; - } - } - const cssVarsRef = computed(() => { - const { - common: { - cubicBezierEaseInOut - }, - self: { - toolbarIconColor, - toolbarBorderRadius, - toolbarBoxShadow, - toolbarColor - } - } = themeRef.value; - return { - "--n-bezier": cubicBezierEaseInOut, - "--n-toolbar-icon-color": toolbarIconColor, - "--n-toolbar-color": toolbarColor, - "--n-toolbar-border-radius": toolbarBorderRadius, - "--n-toolbar-box-shadow": toolbarBoxShadow - }; - }); - const { - inlineThemeDisabled - } = useConfig(); - const themeClassHandle = inlineThemeDisabled ? useThemeClass("image-preview", void 0, cssVarsRef, props) : void 0; - return Object.assign({ - previewRef, - previewWrapperRef, - previewSrc: previewSrcRef, - show: showRef, - appear: isMounted(), - displayed: displayedRef, - previewedImgProps: imageContext === null || imageContext === void 0 ? void 0 : imageContext.previewedImgPropsRef, - handleWheel(e) { - e.preventDefault(); - }, - handlePreviewMousedown, - handlePreviewDblclick, - syncTransformOrigin, - handleAfterLeave: () => { - resetScale(); - rotate = 0; - displayedRef.value = false; - }, - handleDragStart: (e) => { - var _a, _b; - (_b = (_a = imageContext === null || imageContext === void 0 ? void 0 : imageContext.previewedImgPropsRef.value) === null || _a === void 0 ? void 0 : _a.onDragstart) === null || _b === void 0 ? void 0 : _b.call(_a, e); - e.preventDefault(); - }, - zoomIn, - zoomOut, - handleDownloadClick, - rotateCounterclockwise, - rotateClockwise, - handleSwitchPrev, - handleSwitchNext, - withTooltip, - resizeToOrignalImageSize, - cssVars: inlineThemeDisabled ? void 0 : cssVarsRef, - themeClass: themeClassHandle === null || themeClassHandle === void 0 ? void 0 : themeClassHandle.themeClass, - onRender: themeClassHandle === null || themeClassHandle === void 0 ? void 0 : themeClassHandle.onRender - }, exposedMethods); - }, - render() { - var _a, _b; - const { - clsPrefix, - renderToolbar, - withTooltip - } = this; - const prevNode = withTooltip(h(NBaseIcon, { - clsPrefix, - onClick: this.handleSwitchPrev - }, { - default: renderPrevIcon - }), "tipPrevious"); - const nextNode = withTooltip(h(NBaseIcon, { - clsPrefix, - onClick: this.handleSwitchNext - }, { - default: renderNextIcon - }), "tipNext"); - const rotateCounterclockwiseNode = withTooltip(h(NBaseIcon, { - clsPrefix, - onClick: this.rotateCounterclockwise - }, { - default: () => h(RotateCounterclockwiseIcon, null) - }), "tipCounterclockwise"); - const rotateClockwiseNode = withTooltip(h(NBaseIcon, { - clsPrefix, - onClick: this.rotateClockwise - }, { - default: () => h(RotateClockwiseIcon, null) - }), "tipClockwise"); - const originalSizeNode = withTooltip(h(NBaseIcon, { - clsPrefix, - onClick: this.resizeToOrignalImageSize - }, { - default: () => { - return h(ResizeSmallIcon, null); - } - }), "tipOriginalSize"); - const zoomOutNode = withTooltip(h(NBaseIcon, { - clsPrefix, - onClick: this.zoomOut - }, { - default: () => h(ZoomOutIcon, null) - }), "tipZoomOut"); - const downloadNode = withTooltip(h(NBaseIcon, { - clsPrefix, - onClick: this.handleDownloadClick - }, { - default: () => h(DownloadIcon, null) - }), "tipDownload"); - const closeNode = withTooltip(h(NBaseIcon, { - clsPrefix, - onClick: this.toggleShow - }, { - default: renderCloseIcon - }), "tipClose"); - const zoomInNode = withTooltip(h(NBaseIcon, { - clsPrefix, - onClick: this.zoomIn - }, { - default: () => h(ZoomInIcon, null) - }), "tipZoomIn"); - return h(Fragment, null, (_b = (_a = this.$slots).default) === null || _b === void 0 ? void 0 : _b.call(_a), h(LazyTeleport, { - show: this.show - }, { - default: () => { - var _a2; - if (!(this.show || this.displayed)) { - return null; - } - (_a2 = this.onRender) === null || _a2 === void 0 ? void 0 : _a2.call(this); - return withDirectives(h("div", { - class: [`${clsPrefix}-image-preview-container`, this.themeClass], - style: this.cssVars, - onWheel: this.handleWheel - }, h(Transition, { - name: "fade-in-transition", - appear: this.appear - }, { - default: () => this.show ? h("div", { - class: `${clsPrefix}-image-preview-overlay`, - onClick: this.toggleShow - }) : null - }), this.showToolbar ? h(Transition, { - name: "fade-in-transition", - appear: this.appear - }, { - default: () => { - if (!this.show) return null; - return h("div", { - class: `${clsPrefix}-image-preview-toolbar` - }, renderToolbar ? renderToolbar({ - nodes: { - prev: prevNode, - next: nextNode, - rotateCounterclockwise: rotateCounterclockwiseNode, - rotateClockwise: rotateClockwiseNode, - resizeToOriginalSize: originalSizeNode, - zoomOut: zoomOutNode, - zoomIn: zoomInNode, - download: downloadNode, - close: closeNode - } - }) : h(Fragment, null, this.onPrev ? h(Fragment, null, prevNode, nextNode) : null, rotateCounterclockwiseNode, rotateClockwiseNode, originalSizeNode, zoomOutNode, zoomInNode, downloadNode, closeNode)); - } - }) : null, h(Transition, { - name: "fade-in-scale-up-transition", - onAfterLeave: this.handleAfterLeave, - appear: this.appear, - // BUG: - // onEnter will be called twice, I don't know why - // Maybe it is a bug of vue - onEnter: this.syncTransformOrigin, - onBeforeLeave: this.syncTransformOrigin - }, { - default: () => { - const { - previewedImgProps = {} - } = this; - return withDirectives(h("div", { - class: `${clsPrefix}-image-preview-wrapper`, - ref: "previewWrapperRef" - }, h("img", Object.assign({}, previewedImgProps, { - draggable: false, - onMousedown: this.handlePreviewMousedown, - onDblclick: this.handlePreviewDblclick, - class: [`${clsPrefix}-image-preview`, previewedImgProps.class], - key: this.previewSrc, - src: this.previewSrc, - ref: "previewRef", - onDragstart: this.handleDragStart - }))), [[vShow, this.show]]); - } - })), [[zindexable, { - enabled: this.show - }]]); - } - })); - } -}); -const imageGroupInjectionKey = createInjectionKey("n-image-group"); -const imageProps = Object.assign({ - alt: String, - height: [String, Number], - imgProps: Object, - previewedImgProps: Object, - lazy: Boolean, - intersectionObserverOptions: Object, - objectFit: { - type: String, - default: "fill" - }, - previewSrc: String, - fallbackSrc: String, - width: [String, Number], - src: String, - previewDisabled: Boolean, - loadDescription: String, - onError: Function, - onLoad: Function -}, imagePreviewSharedProps); -const NImage = defineComponent({ - name: "Image", - props: imageProps, - inheritAttrs: false, - setup(props) { - const imageRef = ref(null); - const showErrorRef = ref(false); - const previewInstRef = ref(null); - const imageGroupHandle = inject(imageGroupInjectionKey, null); - const { - mergedClsPrefixRef - } = imageGroupHandle || useConfig(props); - const exposedMethods = { - click: () => { - if (props.previewDisabled || showErrorRef.value) return; - const mergedPreviewSrc = props.previewSrc || props.src; - if (imageGroupHandle) { - imageGroupHandle.setPreviewSrc(mergedPreviewSrc); - imageGroupHandle.setThumbnailEl(imageRef.value); - imageGroupHandle.toggleShow(); - return; - } - const { - value: previewInst - } = previewInstRef; - if (!previewInst) return; - previewInst.setPreviewSrc(mergedPreviewSrc); - previewInst.setThumbnailEl(imageRef.value); - previewInst.toggleShow(); - } - }; - const shouldStartLoadingRef = ref(!props.lazy); - onMounted(() => { - var _a; - (_a = imageRef.value) === null || _a === void 0 ? void 0 : _a.setAttribute("data-group-id", (imageGroupHandle === null || imageGroupHandle === void 0 ? void 0 : imageGroupHandle.groupId) || ""); - }); - onMounted(() => { - if (props.lazy && props.intersectionObserverOptions) { - let unobserve; - const stopWatchHandle = watchEffect(() => { - unobserve === null || unobserve === void 0 ? void 0 : unobserve(); - unobserve = void 0; - unobserve = observeIntersection(imageRef.value, props.intersectionObserverOptions, shouldStartLoadingRef); - }); - onBeforeUnmount(() => { - stopWatchHandle(); - unobserve === null || unobserve === void 0 ? void 0 : unobserve(); - }); - } - }); - watchEffect(() => { - var _a; - void (props.src || ((_a = props.imgProps) === null || _a === void 0 ? void 0 : _a.src)); - showErrorRef.value = false; - }); - const loadedRef = ref(false); - provide(imageContextKey, { - previewedImgPropsRef: toRef(props, "previewedImgProps") - }); - return Object.assign({ - mergedClsPrefix: mergedClsPrefixRef, - groupId: imageGroupHandle === null || imageGroupHandle === void 0 ? void 0 : imageGroupHandle.groupId, - previewInstRef, - imageRef, - showError: showErrorRef, - shouldStartLoading: shouldStartLoadingRef, - loaded: loadedRef, - mergedOnClick: (e) => { - var _a, _b; - exposedMethods.click(); - (_b = (_a = props.imgProps) === null || _a === void 0 ? void 0 : _a.onClick) === null || _b === void 0 ? void 0 : _b.call(_a, e); - }, - mergedOnError: (e) => { - if (!shouldStartLoadingRef.value) return; - showErrorRef.value = true; - const { - onError, - imgProps: { - onError: imgPropsOnError - } = {} - } = props; - onError === null || onError === void 0 ? void 0 : onError(e); - imgPropsOnError === null || imgPropsOnError === void 0 ? void 0 : imgPropsOnError(e); - }, - mergedOnLoad: (e) => { - const { - onLoad, - imgProps: { - onLoad: imgPropsOnLoad - } = {} - } = props; - onLoad === null || onLoad === void 0 ? void 0 : onLoad(e); - imgPropsOnLoad === null || imgPropsOnLoad === void 0 ? void 0 : imgPropsOnLoad(e); - loadedRef.value = true; - } - }, exposedMethods); - }, - render() { - var _a, _b; - const { - mergedClsPrefix, - imgProps = {}, - loaded, - $attrs, - lazy - } = this; - const errorNode = resolveSlot(this.$slots.error, () => []); - const placeholderNode = (_b = (_a = this.$slots).placeholder) === null || _b === void 0 ? void 0 : _b.call(_a); - const loadSrc = this.src || imgProps.src; - const imgNode = this.showError && errorNode.length ? errorNode : h("img", Object.assign(Object.assign({}, imgProps), { - ref: "imageRef", - width: this.width || imgProps.width, - height: this.height || imgProps.height, - src: this.showError ? this.fallbackSrc : lazy && this.intersectionObserverOptions ? this.shouldStartLoading ? loadSrc : void 0 : loadSrc, - alt: this.alt || imgProps.alt, - "aria-label": this.alt || imgProps.alt, - onClick: this.mergedOnClick, - onError: this.mergedOnError, - onLoad: this.mergedOnLoad, - // If interseciton observer options is set, do not use native lazy - loading: isImageSupportNativeLazy && lazy && !this.intersectionObserverOptions ? "lazy" : "eager", - style: [imgProps.style || "", placeholderNode && !loaded ? { - height: "0", - width: "0", - visibility: "hidden" - } : "", { - objectFit: this.objectFit - }], - "data-error": this.showError, - "data-preview-src": this.previewSrc || this.src - })); - return h("div", Object.assign({}, $attrs, { - role: "none", - class: [$attrs.class, `${mergedClsPrefix}-image`, (this.previewDisabled || this.showError) && `${mergedClsPrefix}-image--preview-disabled`] - }), this.groupId ? imgNode : h(NImagePreview, { - theme: this.theme, - themeOverrides: this.themeOverrides, - clsPrefix: mergedClsPrefix, - ref: "previewInstRef", - showToolbar: this.showToolbar, - showToolbarTooltip: this.showToolbarTooltip, - renderToolbar: this.renderToolbar - }, { - default: () => imgNode, - toolbar: () => { - var _a2, _b2; - return (_b2 = (_a2 = this.$slots).toolbar) === null || _b2 === void 0 ? void 0 : _b2.call(_a2); - } - }), !loaded && placeholderNode); - } -}); -export { - NImage as N, - __unplugin_components_3 as _, - __unplugin_components_5 as a, - formatLength as f, - isImageSupportNativeLazy as i, - observeIntersection as o, - popoverBaseProps as p, - renderArrow as r -}; diff --git a/out/renderer/assets/Image-DXClIklC.js.gz b/out/renderer/assets/Image-DXClIklC.js.gz deleted file mode 100644 index 8358a20..0000000 Binary files a/out/renderer/assets/Image-DXClIklC.js.gz and /dev/null differ diff --git a/out/renderer/assets/LatoLatin-Regular-Dmlz1U0B.woff2 b/out/renderer/assets/LatoLatin-Regular-Dmlz1U0B.woff2 deleted file mode 100644 index a4d084b..0000000 Binary files a/out/renderer/assets/LatoLatin-Regular-Dmlz1U0B.woff2 and /dev/null differ diff --git a/out/renderer/assets/LatoLatin-Semibold-Dbk81p2D.woff2 b/out/renderer/assets/LatoLatin-Semibold-Dbk81p2D.woff2 deleted file mode 100644 index 1861c24..0000000 Binary files a/out/renderer/assets/LatoLatin-Semibold-Dbk81p2D.woff2 and /dev/null differ diff --git a/out/renderer/assets/Layout-CvYBg1vI.js b/out/renderer/assets/Layout-CvYBg1vI.js deleted file mode 100644 index 346b0e7..0000000 --- a/out/renderer/assets/Layout-CvYBg1vI.js +++ /dev/null @@ -1,170 +0,0 @@ -import { p as cB, W as cM, d as defineComponent, q as useTheme, r as ref, x as useConfig, aI as layoutLight, $ as provide, aJ as useReactivated, G as computed, ap as useThemeClass, l as h, aK as Scrollbar, aL as createInjectionKey } from "./index-DKaFsuse.js"; -const positionProp = { - type: String, - default: "static" -}; -const style = cB("layout", ` - color: var(--n-text-color); - background-color: var(--n-color); - box-sizing: border-box; - position: relative; - z-index: auto; - flex: auto; - overflow: hidden; - transition: - box-shadow .3s var(--n-bezier), - background-color .3s var(--n-bezier), - color .3s var(--n-bezier); -`, [cB("layout-scroll-container", ` - overflow-x: hidden; - box-sizing: border-box; - height: 100%; - `), cM("absolute-positioned", ` - position: absolute; - left: 0; - right: 0; - top: 0; - bottom: 0; - `)]); -const layoutProps = { - embedded: Boolean, - position: positionProp, - nativeScrollbar: { - type: Boolean, - default: true - }, - scrollbarProps: Object, - onScroll: Function, - contentClass: String, - contentStyle: { - type: [String, Object], - default: "" - }, - hasSider: Boolean, - siderPlacement: { - type: String, - default: "left" - } -}; -const layoutInjectionKey = createInjectionKey("n-layout"); -function createLayoutComponent(isContent) { - return defineComponent({ - name: "Layout", - props: Object.assign(Object.assign({}, useTheme.props), layoutProps), - setup(props) { - const scrollableElRef = ref(null); - const scrollbarInstRef = ref(null); - const { - mergedClsPrefixRef, - inlineThemeDisabled - } = useConfig(props); - const themeRef = useTheme("Layout", "-layout", style, layoutLight, props, mergedClsPrefixRef); - function scrollTo(options, y) { - if (props.nativeScrollbar) { - const { - value: scrollableEl - } = scrollableElRef; - if (scrollableEl) { - if (y === void 0) { - scrollableEl.scrollTo(options); - } else { - scrollableEl.scrollTo(options, y); - } - } - } else { - const { - value: scrollbarInst - } = scrollbarInstRef; - if (scrollbarInst) { - scrollbarInst.scrollTo(options, y); - } - } - } - provide(layoutInjectionKey, props); - let scrollX = 0; - let scrollY = 0; - const handleNativeElScroll = (e) => { - var _a; - const target = e.target; - scrollX = target.scrollLeft; - scrollY = target.scrollTop; - (_a = props.onScroll) === null || _a === void 0 ? void 0 : _a.call(props, e); - }; - useReactivated(() => { - if (props.nativeScrollbar) { - const el = scrollableElRef.value; - if (el) { - el.scrollTop = scrollY; - el.scrollLeft = scrollX; - } - } - }); - const hasSiderStyle = { - display: "flex", - flexWrap: "nowrap", - width: "100%", - flexDirection: "row" - }; - const exposedMethods = { - scrollTo - }; - const cssVarsRef = computed(() => { - const { - common: { - cubicBezierEaseInOut - }, - self - } = themeRef.value; - return { - "--n-bezier": cubicBezierEaseInOut, - "--n-color": props.embedded ? self.colorEmbedded : self.color, - "--n-text-color": self.textColor - }; - }); - const themeClassHandle = inlineThemeDisabled ? useThemeClass("layout", computed(() => { - return props.embedded ? "e" : ""; - }), cssVarsRef, props) : void 0; - return Object.assign({ - mergedClsPrefix: mergedClsPrefixRef, - scrollableElRef, - scrollbarInstRef, - hasSiderStyle, - mergedTheme: themeRef, - handleNativeElScroll, - cssVars: inlineThemeDisabled ? void 0 : cssVarsRef, - themeClass: themeClassHandle === null || themeClassHandle === void 0 ? void 0 : themeClassHandle.themeClass, - onRender: themeClassHandle === null || themeClassHandle === void 0 ? void 0 : themeClassHandle.onRender - }, exposedMethods); - }, - render() { - var _a; - const { - mergedClsPrefix, - hasSider - } = this; - (_a = this.onRender) === null || _a === void 0 ? void 0 : _a.call(this); - const hasSiderStyle = hasSider ? this.hasSiderStyle : void 0; - const layoutClass = [this.themeClass, isContent, `${mergedClsPrefix}-layout`, `${mergedClsPrefix}-layout--${this.position}-positioned`]; - return h("div", { - class: layoutClass, - style: this.cssVars - }, this.nativeScrollbar ? h("div", { - ref: "scrollableElRef", - class: [`${mergedClsPrefix}-layout-scroll-container`, this.contentClass], - style: [this.contentStyle, hasSiderStyle], - onScroll: this.handleNativeElScroll - }, this.$slots) : h(Scrollbar, Object.assign({}, this.scrollbarProps, { - onScroll: this.onScroll, - ref: "scrollbarInstRef", - theme: this.mergedTheme.peers.Scrollbar, - themeOverrides: this.mergedTheme.peerOverrides.Scrollbar, - contentClass: this.contentClass, - contentStyle: [this.contentStyle, hasSiderStyle] - }), this.$slots)); - } - }); -} -const __unplugin_components_1 = createLayoutComponent(false); -export { - __unplugin_components_1 as _ -}; diff --git a/out/renderer/assets/Layout-CvYBg1vI.js.gz b/out/renderer/assets/Layout-CvYBg1vI.js.gz deleted file mode 100644 index aa82070..0000000 Binary files a/out/renderer/assets/Layout-CvYBg1vI.js.gz and /dev/null differ diff --git a/out/renderer/assets/MusicList-NCsRWE81.css b/out/renderer/assets/MusicList-NCsRWE81.css deleted file mode 100644 index e55e713..0000000 --- a/out/renderer/assets/MusicList-NCsRWE81.css +++ /dev/null @@ -1,162 +0,0 @@ -.music-title[data-v-1b137c3d] { - font-size: 1.25rem; - line-height: 1.75rem; - font-weight: 700; - --tw-text-opacity: 1; - color: rgb(17 24 39 / var(--tw-text-opacity, 1)); -} -.music-title[data-v-1b137c3d]:is(.dark *) { - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity, 1)); -} -.music-page[data-v-1b137c3d] { - height: 100%; - width: 100%; - border-top-left-radius: 1rem; - border-top-right-radius: 1rem; - background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1)); - --tw-bg-opacity: 0.75; - padding-left: 2rem; - padding-right: 2rem; -} -.music-page[data-v-1b137c3d]:is(.dark *) { - background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1)); - --tw-bg-opacity: 0.75; -} -.music-page[data-v-1b137c3d] { - -webkit-backdrop-filter: blur(20px); - backdrop-filter: blur(20px); -} -.music-close[data-v-1b137c3d] { - display: flex; - cursor: pointer; - align-items: center; - gap: 0.5rem; - --tw-text-opacity: 1; - color: rgb(17 24 39 / var(--tw-text-opacity, 1)); -} -.music-close[data-v-1b137c3d]:is(.dark *) { - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity, 1)); -} -.music-close .icon[data-v-1b137c3d] { - font-size: 1.875rem; - line-height: 2.25rem; -} -.music-content[data-v-1b137c3d] { - display: flex; - height: calc(100% - 60px); -} -.music-info[data-v-1b137c3d] { - display: flex; - width: 25%; - flex-shrink: 0; - flex-direction: column; - padding-right: 2rem; -} -.music-info .music-cover[data-v-1b137c3d] { - margin-bottom: 1rem; - aspect-ratio: 1 / 1; - min-height: 250px; - width: 100%; - overflow: hidden; - border-radius: 1rem; -} -.music-info .music-cover .cover-img[data-v-1b137c3d] { - height: 100%; - width: 100%; - -o-object-fit: cover; - object-fit: cover; -} -.music-info .creator-info[data-v-1b137c3d] { - margin-bottom: 1rem; - display: flex; - align-items: center; -} -.music-info .creator-info .creator-name[data-v-1b137c3d] { - margin-left: 0.5rem; - --tw-text-opacity: 1; - color: rgb(55 65 81 / var(--tw-text-opacity, 1)); -} -.music-info .creator-info .creator-name[data-v-1b137c3d]:is(.dark *) { - --tw-text-opacity: 1; - color: rgb(209 213 219 / var(--tw-text-opacity, 1)); -} -.music-info .music-desc[data-v-1b137c3d] { - padding-right: 1rem; - font-size: 0.875rem; - line-height: 1.25rem; - line-height: 1.625; - --tw-text-opacity: 1; - color: rgb(75 85 99 / var(--tw-text-opacity, 1)); -} -.music-info .music-desc[data-v-1b137c3d]:is(.dark *) { - --tw-text-opacity: 1; - color: rgb(156 163 175 / var(--tw-text-opacity, 1)); -} -.music-list[data-v-1b137c3d] { - min-height: 0px; - flex-grow: 1; -} -.music-list-container[data-v-1b137c3d] { - position: relative; - display: flex; - min-height: 0px; - flex-grow: 1; - flex-direction: column; -} -.music-list-content[data-v-1b137c3d] { - min-height: calc(80vh - 60px); -} -.music-list[data-v-1b137c3d] .n-virtual-list__scroll { - scrollbar-width: none; -} -.music-list[data-v-1b137c3d] .n-virtual-list__scroll::-webkit-scrollbar { - display: none; -} -.mobile .music-page[data-v-1b137c3d] { - padding-left: 1rem; - padding-right: 1rem; -} -.mobile .music-content[data-v-1b137c3d] { - flex-direction: column; -} -.mobile .music-info[data-v-1b137c3d] { - margin-bottom: 0.5rem; - display: flex; - width: 100%; - flex-direction: row; - padding-right: 0px; -} -.mobile .music-info .music-cover[data-v-1b137c3d] { - margin-bottom: 1rem; - height: 100px; - width: 100px; - overflow: hidden; - border-radius: 0.5rem; -} -.mobile .music-info .music-detail[data-v-1b137c3d] { - margin-left: 1rem; - flex: 1 1 0%; -} -.loading-more[data-v-1b137c3d] { - padding-top: 1rem; - padding-bottom: 1rem; - text-align: center; - --tw-text-opacity: 1; - color: rgb(107 114 128 / var(--tw-text-opacity, 1)); -} -.loading-more[data-v-1b137c3d]:is(.dark *) { - --tw-text-opacity: 1; - color: rgb(156 163 175 / var(--tw-text-opacity, 1)); -} -.double-item[data-v-1b137c3d] { - margin-bottom: 0.5rem; - border-radius: 1.5rem; - background-color: rgb(248 249 250 / var(--tw-bg-opacity, 1)); - --tw-bg-opacity: 0.2; -} -.double-item[data-v-1b137c3d]:is(.dark *) { - background-color: rgb(22 22 22 / var(--tw-bg-opacity, 1)); - --tw-bg-opacity: 0.2; -} \ No newline at end of file diff --git a/out/renderer/assets/MusicList-NCsRWE81.css.gz b/out/renderer/assets/MusicList-NCsRWE81.css.gz deleted file mode 100644 index 11946ab..0000000 Binary files a/out/renderer/assets/MusicList-NCsRWE81.css.gz and /dev/null differ diff --git a/out/renderer/assets/MusicList-s-QHu-iA.js b/out/renderer/assets/MusicList-s-QHu-iA.js deleted file mode 100644 index 5fc8e31..0000000 --- a/out/renderer/assets/MusicList-s-QHu-iA.js +++ /dev/null @@ -1,258 +0,0 @@ -import { ad as request, d as defineComponent, r as ref, G as computed, E as watch, O as createBlock, f as withCtx, u as unref, g as useStore, j as openBlock, b as createBaseVNode, e as createVNode, t as toDisplayString, a7 as getImgUrl, n as normalizeClass, s as setAnimationClass, c as createElementBlock, T as createCommentVNode, U as PlayBottom, a4 as renderList, a2 as normalizeStyle, a3 as Fragment, ac as isMobile, a5 as setAnimationDelay, S as Scrollbar, aj as __unplugin_components_0, am as getMusicDetail, _ as _export_sfc } from "./index-DKaFsuse.js"; -import { S as SongItem } from "./SongItem-CoswpGn6.js"; -import { _ as __unplugin_components_2 } from "./Drawer-BEJ8Ydua.js"; -import { _ as __unplugin_components_2$2 } from "./Avatar-rQ2og-6c.js"; -import { _ as __unplugin_components_2$1 } from "./Ellipsis-D4R5dIX2.js"; -import { N as NImage } from "./Image-DXClIklC.js"; -function getListByCat(params) { - return request.get("/top/playlist", { - params - }); -} -function getListDetail(id) { - return request.get("/playlist/detail", { params: { id } }); -} -function getAlbum(id) { - return request.get("/album", { params: { id } }); -} -const _hoisted_1 = { class: "music-page" }; -const _hoisted_2 = { class: "music-header h-12 flex items-center justify-between" }; -const _hoisted_3 = { class: "music-title" }; -const _hoisted_4 = { class: "music-content" }; -const _hoisted_5 = { class: "music-info" }; -const _hoisted_6 = { class: "music-cover" }; -const _hoisted_7 = { - key: 0, - class: "creator-info" -}; -const _hoisted_8 = { class: "creator-name" }; -const _hoisted_9 = { - key: 0, - class: "music-desc" -}; -const _hoisted_10 = { class: "music-list-container" }; -const _hoisted_11 = { class: "music-list" }; -const _hoisted_12 = { class: "music-list-content" }; -const _hoisted_13 = { - key: 0, - class: "loading-more" -}; -const pageSize = 20; -const _sfc_main = /* @__PURE__ */ defineComponent({ - __name: "MusicList", - props: { - show: { type: Boolean }, - name: {}, - songList: {}, - loading: { type: Boolean, default: false }, - listInfo: {}, - cover: { type: Boolean, default: true } - }, - emits: ["update:show", "update:loading"], - setup(__props, { emit: __emit }) { - const store = useStore(); - const props = __props; - const emit = __emit; - const page = ref(0); - const isLoadingMore = ref(false); - const displayedSongs = ref([]); - const loadingList = ref(false); - const total = computed(() => { - if (props.listInfo?.trackIds) { - return props.listInfo.trackIds.length; - } - return props.songList.length; - }); - const formatDetail = computed(() => (detail) => { - const song = { - artists: detail.ar, - name: detail.al.name, - id: detail.al.id - }; - detail.song = song; - detail.picUrl = detail.al.picUrl; - return detail; - }); - const handlePlay = () => { - const tracks = props.songList || []; - store.commit( - "setPlayList", - tracks.map((item) => ({ - ...item, - picUrl: item.al.picUrl, - song: { - artists: item.ar - } - })) - ); - }; - const close = () => { - emit("update:show", false); - }; - const loadMoreSongs = async () => { - if (isLoadingMore.value || displayedSongs.value.length >= total.value) return; - isLoadingMore.value = true; - try { - if (props.listInfo?.trackIds) { - const start = page.value * pageSize; - const end = Math.min((page.value + 1) * pageSize, total.value); - const trackIds = props.listInfo.trackIds.slice(start, end).map((item) => item.id); - if (trackIds.length > 0) { - const { data } = await getMusicDetail(trackIds); - displayedSongs.value = [...displayedSongs.value, ...data.songs]; - page.value++; - } - } else { - const start = page.value * pageSize; - const end = Math.min((page.value + 1) * pageSize, props.songList.length); - const newSongs = props.songList.slice(start, end); - displayedSongs.value = [...displayedSongs.value, ...newSongs]; - page.value++; - } - } catch (error) { - console.error("加载歌曲失败:", error); - } finally { - isLoadingMore.value = false; - loadingList.value = false; - } - }; - const getItemAnimationDelay = (index) => { - const currentPageIndex = index % pageSize; - return setAnimationDelay(currentPageIndex, 20); - }; - const handleScroll = (e) => { - const target = e.target; - if (!target) return; - const { scrollTop, scrollHeight, clientHeight } = target; - if (scrollHeight - scrollTop - clientHeight < 100 && !isLoadingMore.value) { - loadMoreSongs(); - } - }; - watch( - () => props.show, - (newVal) => { - loadingList.value = newVal; - if (!props.cover) { - loadingList.value = false; - } - } - ); - watch( - () => props.songList, - (newSongs) => { - page.value = 0; - displayedSongs.value = newSongs.slice(0, pageSize); - if (newSongs.length > pageSize) { - page.value = 1; - } - loadingList.value = false; - }, - { immediate: true } - ); - return (_ctx, _cache) => { - const _component_n_ellipsis = __unplugin_components_2$1; - const _component_n_image = NImage; - const _component_n_avatar = __unplugin_components_2$2; - const _component_n_scrollbar = Scrollbar; - const _component_n_spin = __unplugin_components_0; - const _component_n_drawer = __unplugin_components_2; - return openBlock(), createBlock(_component_n_drawer, { - show: _ctx.show, - height: unref(isMobile) ? "100%" : "80%", - placement: "bottom", - "block-scroll": "", - "mask-closable": "", - style: { backgroundColor: "transparent" }, - to: `#layout-main`, - onMaskClick: close - }, { - default: withCtx(() => [ - createBaseVNode("div", _hoisted_1, [ - createBaseVNode("div", _hoisted_2, [ - createVNode(_component_n_ellipsis, { "line-clamp": 1 }, { - default: withCtx(() => [ - createBaseVNode("div", _hoisted_3, toDisplayString(_ctx.name), 1) - ]), - _: 1 - }), - createBaseVNode("div", { class: "music-close" }, [ - createBaseVNode("i", { - class: "icon iconfont icon-icon_error", - onClick: close - }) - ]) - ]), - createBaseVNode("div", _hoisted_4, [ - createBaseVNode("div", _hoisted_5, [ - createBaseVNode("div", _hoisted_6, [ - createVNode(_component_n_image, { - src: unref(getImgUrl)(_ctx.cover ? _ctx.listInfo?.coverImgUrl : unref(displayedSongs)[0]?.picUrl, "500y500"), - class: normalizeClass(["cover-img", unref(setAnimationClass)("animate__fadeIn")]), - "preview-disabled": "", - "object-fit": "cover" - }, null, 8, ["src", "class"]) - ]), - _ctx.listInfo?.creator ? (openBlock(), createElementBlock("div", _hoisted_7, [ - createVNode(_component_n_avatar, { - round: "", - size: 24, - src: unref(getImgUrl)(_ctx.listInfo.creator.avatarUrl, "50y50") - }, null, 8, ["src"]), - createBaseVNode("span", _hoisted_8, toDisplayString(_ctx.listInfo.creator.nickname), 1) - ])) : createCommentVNode("", true), - createVNode(_component_n_scrollbar, { style: { "max-height": "200" } }, { - default: withCtx(() => [ - _ctx.listInfo?.description ? (openBlock(), createElementBlock("div", _hoisted_9, toDisplayString(_ctx.listInfo.description), 1)) : createCommentVNode("", true), - createVNode(PlayBottom) - ]), - _: 1 - }) - ]), - createBaseVNode("div", _hoisted_10, [ - createBaseVNode("div", _hoisted_11, [ - createVNode(_component_n_scrollbar, { onScroll: handleScroll }, { - default: withCtx(() => [ - createVNode(_component_n_spin, { - show: unref(loadingList) || _ctx.loading - }, { - default: withCtx(() => [ - createBaseVNode("div", _hoisted_12, [ - (openBlock(true), createElementBlock(Fragment, null, renderList(unref(displayedSongs), (item, index) => { - return openBlock(), createElementBlock("div", { - key: item.id, - class: normalizeClass(["double-item", unref(setAnimationClass)("animate__bounceInUp")]), - style: normalizeStyle(getItemAnimationDelay(index)) - }, [ - createVNode(SongItem, { - item: unref(formatDetail)(item), - onPlay: handlePlay - }, null, 8, ["item"]) - ], 6); - }), 128)), - unref(isLoadingMore) ? (openBlock(), createElementBlock("div", _hoisted_13, "加载更多...")) : createCommentVNode("", true), - createVNode(PlayBottom) - ]) - ]), - _: 1 - }, 8, ["show"]) - ]), - _: 1 - }) - ]), - createVNode(PlayBottom) - ]) - ]) - ]) - ]), - _: 1 - }, 8, ["show", "height"]); - }; - } -}); -const MusicList = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-1b137c3d"]]); -export { - MusicList as M, - getListDetail as a, - getListByCat as b, - getAlbum as g -}; diff --git a/out/renderer/assets/MusicList-s-QHu-iA.js.gz b/out/renderer/assets/MusicList-s-QHu-iA.js.gz deleted file mode 100644 index 9984154..0000000 Binary files a/out/renderer/assets/MusicList-s-QHu-iA.js.gz and /dev/null differ diff --git a/out/renderer/assets/MvPlayer-BPFZslTY.css b/out/renderer/assets/MvPlayer-BPFZslTY.css deleted file mode 100644 index fd0edf9..0000000 --- a/out/renderer/assets/MvPlayer-BPFZslTY.css +++ /dev/null @@ -1,177 +0,0 @@ -.mv-detail[data-v-f4c63e83] { - height: 100%; - --tw-bg-opacity: 1; - background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1)); -} -.mv-detail[data-v-f4c63e83]:is(.dark *) { - --tw-bg-opacity: 1; - background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1)); -} -.mv-detail-title[data-v-f4c63e83] { - position: fixed; - top: 0px; - left: 0px; - right: 0px; - z-index: 10; - padding: 1rem; - transition-property: opacity; - transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - transition-duration: 300ms; - background: linear-gradient(to bottom, rgba(0, 0, 0, 0.7), transparent); -} -.mv-detail-title .title[data-v-f4c63e83] { - font-size: 1.125rem; - line-height: 1.75rem; - font-weight: 700; - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity, 1)); -} -.video-container[data-v-f4c63e83] { - position: relative; - height: 100%; - width: 100%; -} -.video-container .video-player[data-v-f4c63e83] { - height: 100%; - width: 100%; - --tw-bg-opacity: 1; - background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1)); - -o-object-fit: contain; - object-fit: contain; -} -.video-container .play-hint[data-v-f4c63e83] { - position: absolute; - inset: 0px; - display: flex; - align-items: center; - justify-content: center; - background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1)); - --tw-bg-opacity: 0.5; -} -.video-container .play-hint .n-button[data-v-f4c63e83] { - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity, 1)); - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke; - transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - transition-duration: 150ms; -} -.video-container .play-hint .n-button[data-v-f4c63e83]:hover { - --tw-text-opacity: 1; - color: rgb(34 197 94 / var(--tw-text-opacity, 1)); -} -.video-container .custom-controls[data-v-f4c63e83] { - position: absolute; - bottom: 0px; - left: 0px; - right: 0px; - padding: 1rem; - transition-property: opacity; - transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - transition-duration: 300ms; - background: linear-gradient(to top, rgba(0, 0, 0, 0.7), transparent); -} -.video-container .custom-controls .controls-main[data-v-f4c63e83] { - display: flex; - align-items: center; - justify-content: space-between; -} -.video-container .custom-controls .controls-main .left-controls[data-v-f4c63e83], -.video-container .custom-controls .controls-main .right-controls[data-v-f4c63e83] { - display: flex; - align-items: center; - gap: 0.5rem; -} -.video-container .custom-controls .controls-main .left-controls .n-button[data-v-f4c63e83], -.video-container .custom-controls .controls-main .right-controls .n-button[data-v-f4c63e83] { - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity, 1)); - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke; - transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - transition-duration: 150ms; -} -.video-container .custom-controls .controls-main .left-controls .n-button[data-v-f4c63e83]:hover, -.video-container .custom-controls .controls-main .right-controls .n-button[data-v-f4c63e83]:hover { - --tw-text-opacity: 1; - color: rgb(34 197 94 / var(--tw-text-opacity, 1)); -} -.video-container .custom-controls .controls-main .left-controls .time-display[data-v-f4c63e83], -.video-container .custom-controls .controls-main .right-controls .time-display[data-v-f4c63e83] { - margin-left: 1rem; - font-size: 0.875rem; - line-height: 1.25rem; - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity, 1)); -} -.mode-hint[data-v-f4c63e83] { - position: absolute; - top: 50%; - left: 50%; - display: flex; - --tw-translate-x: -50%; - --tw-translate-y: -50%; - transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); - flex-direction: column; - align-items: center; -} -.mode-hint .mode-icon[data-v-f4c63e83] { - margin-bottom: 0.5rem; - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity, 1)); -} -.mode-hint .mode-text[data-v-f4c63e83] { - font-size: 0.875rem; - line-height: 1.25rem; - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity, 1)); -} -.custom-slider[data-v-f4c63e83] .n-slider { - --n-rail-height: 4px; - --n-rail-color: rgba(255, 255, 255, 0.2); - --n-fill-color: #10b981; - --n-handle-size: 12px; - --n-handle-color: #10b981; -} -.progress-bar[data-v-f4c63e83] { - margin-bottom: 1rem; -} -.progress-bar .progress-rail[data-v-f4c63e83] { - position: relative; - height: 0.25rem; - width: 100%; - --tw-bg-opacity: 1; - background-color: rgb(75 85 99 / var(--tw-bg-opacity, 1)); -} -.progress-bar .progress-rail .progress-buffer[data-v-f4c63e83] { - position: absolute; - top: 0px; - left: 0px; - height: 100%; - --tw-bg-opacity: 1; - background-color: rgb(156 163 175 / var(--tw-bg-opacity, 1)); -} -.volume-control[data-v-f4c63e83] { - display: flex; - align-items: center; - gap: 0.5rem; -} -.volume-control .volume-slider[data-v-f4c63e83] { - width: 100px; -} -.controls-hidden[data-v-f4c63e83] { - opacity: 0; - pointer-events: none; -} -.cursor-hidden[data-v-f4c63e83] { - cursor: none; -} -.title-hidden[data-v-f4c63e83] { - opacity: 0; -} -.fade-enter-active[data-v-f4c63e83], -.fade-leave-active[data-v-f4c63e83] { - transition: opacity 0.3s ease; -} -.fade-enter-from[data-v-f4c63e83], -.fade-leave-to[data-v-f4c63e83] { - opacity: 0; -} \ No newline at end of file diff --git a/out/renderer/assets/MvPlayer-BPFZslTY.css.gz b/out/renderer/assets/MvPlayer-BPFZslTY.css.gz deleted file mode 100644 index c3be8aa..0000000 Binary files a/out/renderer/assets/MvPlayer-BPFZslTY.css.gz and /dev/null differ diff --git a/out/renderer/assets/MvPlayer-I4IDK1xL.js b/out/renderer/assets/MvPlayer-I4IDK1xL.js deleted file mode 100644 index 30aa195..0000000 --- a/out/renderer/assets/MvPlayer-I4IDK1xL.js +++ /dev/null @@ -1,670 +0,0 @@ -import { ad as request, d as defineComponent, r as ref, E as watch, o as onMounted, a1 as onUnmounted, G as computed, O as createBlock, f as withCtx, g as useStore, j as openBlock, b as createBaseVNode, n as normalizeClass, c as createElementBlock, e as createVNode, u as unref, B as Button, T as createCommentVNode, a2 as normalizeStyle, k as createTextVNode, t as toDisplayString, ak as Transition, M as nextTick, aj as __unplugin_components_0$1, _ as _export_sfc } from "./index-DKaFsuse.js"; -import { N as NIcon } from "./Icon-DucaliTK.js"; -import { _ as __unplugin_components_0 } from "./Slider-BA6NituQ.js"; -import { _ as __unplugin_components_3 } from "./Image-DXClIklC.js"; -import { _ as __unplugin_components_2 } from "./Drawer-BEJ8Ydua.js"; -import { _ as __unplugin_components_2$1 } from "./Ellipsis-D4R5dIX2.js"; -const getTopMv = (params) => { - return request({ - url: "/mv/all", - method: "get", - params - }); -}; -const getAllMv = (params) => { - return request({ - url: "/mv/all", - method: "get", - params - }); -}; -const getMvUrl = (id) => { - return request.get("/mv/url", { - params: { - id - } - }); -}; -const _hoisted_1 = { class: "mv-detail" }; -const _hoisted_2 = ["src"]; -const _hoisted_3 = { class: "progress-bar custom-slider" }; -const _hoisted_4 = { class: "progress-rail" }; -const _hoisted_5 = { class: "controls-main" }; -const _hoisted_6 = { class: "left-controls" }; -const _hoisted_7 = { - key: 1, - class: "ri-skip-back-line" -}; -const _hoisted_8 = { - key: 1, - class: "ri-skip-forward-line" -}; -const _hoisted_9 = { class: "time-display" }; -const _hoisted_10 = { class: "right-controls" }; -const _hoisted_11 = { - key: 0, - class: "volume-control custom-slider" -}; -const _hoisted_12 = { - key: 0, - class: "mode-hint" -}; -const _hoisted_13 = { class: "mode-text" }; -const _hoisted_14 = { class: "title" }; -const _sfc_main = /* @__PURE__ */ defineComponent({ - __name: "MvPlayer", - props: { - show: { type: Boolean, default: false }, - currentMv: { default: void 0 }, - noList: { type: Boolean, default: false } - }, - emits: ["update:show", "next", "prev"], - setup(__props, { emit: __emit }) { - const PLAY_MODE = { - Single: "single", - Auto: "auto" - }; - const props = __props; - const emit = __emit; - const store = useStore(); - const mvUrl = ref(); - const playMode = ref(PLAY_MODE.Auto); - const videoRef = ref(); - const isPlaying = ref(false); - const currentTime = ref(0); - const duration = ref(0); - const progress = ref(0); - const bufferedProgress = ref(0); - const volume = ref(100); - const showControls = ref(true); - let controlsTimer = null; - const formatTime = (seconds) => { - const minutes = Math.floor(seconds / 60); - const remainingSeconds = Math.floor(seconds % 60); - return `${minutes.toString().padStart(2, "0")}:${remainingSeconds.toString().padStart(2, "0")}`; - }; - const togglePlay = () => { - if (!videoRef.value) return; - if (isPlaying.value) { - videoRef.value.pause(); - } else { - videoRef.value.play(); - } - resetCursorTimer(); - }; - const toggleMute = () => { - if (!videoRef.value) return; - if (volume.value === 0) { - volume.value = 100; - } else { - volume.value = 0; - } - }; - watch(volume, (newVolume) => { - if (videoRef.value) { - videoRef.value.volume = newVolume / 100; - } - }); - const handleProgressChange = (value) => { - if (!videoRef.value || !duration.value) return; - const newTime = value / 100 * duration.value; - videoRef.value.currentTime = newTime; - }; - const handleTimeUpdate = () => { - if (!videoRef.value) return; - currentTime.value = videoRef.value.currentTime; - if (!isDragging.value) { - progress.value = currentTime.value / duration.value * 100; - } - if (videoRef.value.buffered.length > 0) { - bufferedProgress.value = videoRef.value.buffered.end(0) / duration.value * 100; - } - }; - const handleLoadedMetadata = () => { - if (!videoRef.value) return; - duration.value = videoRef.value.duration; - }; - const resetControlsTimer = () => { - if (controlsTimer) { - clearTimeout(controlsTimer); - } - showControls.value = true; - controlsTimer = setTimeout(() => { - if (isPlaying.value) { - showControls.value = false; - } - }, 3e3); - }; - const handleMouseMove = () => { - resetControlsTimer(); - resetCursorTimer(); - }; - onMounted(() => { - document.addEventListener("mousemove", handleMouseMove); - }); - onUnmounted(() => { - document.removeEventListener("mousemove", handleMouseMove); - if (controlsTimer) { - clearTimeout(controlsTimer); - } - if (cursorTimer) { - clearTimeout(cursorTimer); - } - unlockScreenOrientation(); - }); - watch( - () => props.currentMv, - async (newMv) => { - if (newMv) { - await loadMvUrl(newMv); - } - } - ); - const autoPlayBlocked = ref(false); - const playLoading = ref(false); - const loadMvUrl = async (mv) => { - playLoading.value = true; - autoPlayBlocked.value = false; - try { - const res = await getMvUrl(mv.id); - mvUrl.value = res.data.data.url; - await nextTick(); - if (videoRef.value) { - try { - await videoRef.value.play(); - } catch (error) { - console.warn("自动播放失败,可能需要用户交互:", error); - autoPlayBlocked.value = true; - } - } - } catch (error) { - console.error("加载MV地址失败:", error); - } finally { - playLoading.value = false; - } - }; - const handleClose = () => { - emit("update:show", false); - if (store.state.playMusicUrl) { - store.commit("setIsPlay", true); - } - }; - const handleEnded = () => { - if (playMode.value === PLAY_MODE.Single) { - if (props.currentMv) { - loadMvUrl(props.currentMv); - } - } else { - emit("next", (value) => { - nextLoading.value = value; - }); - } - }; - const togglePlayMode = () => { - playMode.value = playMode.value === PLAY_MODE.Auto ? PLAY_MODE.Single : PLAY_MODE.Auto; - showModeHint.value = true; - setTimeout(() => { - showModeHint.value = false; - }, 1500); - }; - const isDragging = ref(false); - const videoContainerRef = ref(); - const isFullscreen = ref(false); - const checkFullscreenAPI = () => { - const doc = document; - return { - requestFullscreen: videoContainerRef.value?.requestFullscreen || videoContainerRef.value?.webkitRequestFullscreen || videoContainerRef.value?.mozRequestFullScreen || videoContainerRef.value?.msRequestFullscreen, - exitFullscreen: doc.exitFullscreen || doc.webkitExitFullscreen || doc.mozCancelFullScreen || doc.msExitFullscreen, - fullscreenElement: doc.fullscreenElement || doc.webkitFullscreenElement || doc.mozFullScreenElement || doc.msFullscreenElement, - fullscreenEnabled: doc.fullscreenEnabled || doc.webkitFullscreenEnabled || doc.mozFullScreenEnabled || doc.msFullscreenEnabled - }; - }; - const lockScreenOrientation = async () => { - try { - if ("orientation" in screen) { - await screen.orientation.lock("landscape"); - } - } catch (error) { - console.warn("无法锁定屏幕方向:", error); - } - }; - const unlockScreenOrientation = () => { - try { - if ("orientation" in screen) { - screen.orientation.unlock(); - } - } catch (error) { - console.warn("无法解锁屏幕方向:", error); - } - }; - const toggleFullscreen = async () => { - const api = checkFullscreenAPI(); - if (!api.fullscreenEnabled) { - console.warn("全屏API不可用"); - return; - } - try { - if (!api.fullscreenElement) { - await videoContainerRef.value?.requestFullscreen(); - isFullscreen.value = true; - if (window.innerWidth <= 768) { - await lockScreenOrientation(); - } - } else { - await document.exitFullscreen(); - isFullscreen.value = false; - if (window.innerWidth <= 768) { - unlockScreenOrientation(); - } - } - } catch (error) { - console.error("切换全屏失败:", error); - } - }; - const handleFullscreenChange = () => { - const api = checkFullscreenAPI(); - isFullscreen.value = !!api.fullscreenElement; - }; - onMounted(() => { - document.addEventListener("fullscreenchange", handleFullscreenChange); - document.addEventListener("webkitfullscreenchange", handleFullscreenChange); - document.addEventListener("mozfullscreenchange", handleFullscreenChange); - document.addEventListener("MSFullscreenChange", handleFullscreenChange); - }); - onUnmounted(() => { - document.removeEventListener("fullscreenchange", handleFullscreenChange); - document.removeEventListener("webkitfullscreenchange", handleFullscreenChange); - document.removeEventListener("mozfullscreenchange", handleFullscreenChange); - document.removeEventListener("MSFullscreenChange", handleFullscreenChange); - }); - const handleKeyPress = (e) => { - if (e.key === "f" || e.key === "F") { - toggleFullscreen(); - } - }; - onMounted(() => { - document.addEventListener("keydown", handleKeyPress); - }); - onUnmounted(() => { - document.removeEventListener("keydown", handleKeyPress); - }); - const showModeHint = ref(false); - const prevLoading = ref(false); - const nextLoading = ref(false); - const handlePrev = () => { - prevLoading.value = true; - emit("prev", (value) => { - prevLoading.value = value; - }); - }; - const handleNext = () => { - nextLoading.value = true; - emit("next", (value) => { - nextLoading.value = value; - }); - }; - const showCursor = ref(true); - let cursorTimer = null; - const resetCursorTimer = () => { - if (cursorTimer) { - clearTimeout(cursorTimer); - } - showCursor.value = true; - if (isPlaying.value && !showControls.value) { - cursorTimer = setTimeout(() => { - showCursor.value = false; - }, 3e3); - } - }; - watch(isPlaying, (newValue) => { - if (!newValue) { - showCursor.value = true; - if (cursorTimer) { - clearTimeout(cursorTimer); - } - } else { - resetCursorTimer(); - } - }); - watch(showControls, (newValue) => { - if (newValue) { - showCursor.value = true; - if (cursorTimer) { - clearTimeout(cursorTimer); - } - } else { - resetCursorTimer(); - } - }); - const isMobile = computed(() => store.state.isMobile); - return (_ctx, _cache) => { - const _component_n_spin = __unplugin_components_0$1; - const _component_n_ellipsis = __unplugin_components_2$1; - const _component_n_drawer = __unplugin_components_2; - return openBlock(), createBlock(_component_n_drawer, { - show: _ctx.show, - height: "100%", - placement: "bottom", - "z-index": 999999999, - to: `#layout-main` - }, { - default: withCtx(() => [ - createBaseVNode("div", _hoisted_1, [ - createBaseVNode("div", { - ref_key: "videoContainerRef", - ref: videoContainerRef, - class: normalizeClass(["video-container", { "cursor-hidden": !showCursor.value }]) - }, [ - createBaseVNode("video", { - ref_key: "videoRef", - ref: videoRef, - src: mvUrl.value, - class: "video-player", - onEnded: handleEnded, - onTimeupdate: handleTimeUpdate, - onLoadedmetadata: handleLoadedMetadata, - onPlay: _cache[0] || (_cache[0] = ($event) => isPlaying.value = true), - onPause: _cache[1] || (_cache[1] = ($event) => isPlaying.value = false), - onClick: togglePlay - }, null, 40, _hoisted_2), - autoPlayBlocked.value ? (openBlock(), createElementBlock("div", { - key: 0, - class: "play-hint", - onClick: togglePlay - }, [ - createVNode(unref(Button), { - quaternary: "", - circle: "", - size: "large" - }, { - icon: withCtx(() => [ - createVNode(unref(NIcon), { size: "48" }, { - default: withCtx(() => _cache[4] || (_cache[4] = [ - createBaseVNode("i", { class: "ri-play-circle-line" }, null, -1) - ])), - _: 1 - }) - ]), - _: 1 - }) - ])) : createCommentVNode("", true), - createBaseVNode("div", { - class: normalizeClass(["custom-controls", { "controls-hidden": !showControls.value }]) - }, [ - createBaseVNode("div", _hoisted_3, [ - createVNode(unref(__unplugin_components_0), { - value: progress.value, - "onUpdate:value": [ - _cache[2] || (_cache[2] = ($event) => progress.value = $event), - handleProgressChange - ], - min: 0, - max: 100, - tooltip: false, - step: 0.1 - }, { - rail: withCtx(() => [ - createBaseVNode("div", _hoisted_4, [ - createBaseVNode("div", { - class: "progress-buffer", - style: normalizeStyle({ width: `${bufferedProgress.value}%` }) - }, null, 4) - ]) - ]), - _: 1 - }, 8, ["value"]) - ]), - createBaseVNode("div", _hoisted_5, [ - createBaseVNode("div", _hoisted_6, [ - !props.noList ? (openBlock(), createBlock(unref(__unplugin_components_3), { - key: 0, - placement: "top" - }, { - trigger: withCtx(() => [ - createVNode(unref(Button), { - quaternary: "", - circle: "", - onClick: handlePrev - }, { - icon: withCtx(() => [ - createVNode(unref(NIcon), { size: "24" }, { - default: withCtx(() => [ - prevLoading.value ? (openBlock(), createBlock(_component_n_spin, { - key: 0, - size: "small" - })) : (openBlock(), createElementBlock("i", _hoisted_7)) - ]), - _: 1 - }) - ]), - _: 1 - }) - ]), - default: withCtx(() => [ - _cache[5] || (_cache[5] = createTextVNode(" 上一个 ")) - ]), - _: 1 - })) : createCommentVNode("", true), - createVNode(unref(__unplugin_components_3), { placement: "top" }, { - trigger: withCtx(() => [ - createVNode(unref(Button), { - quaternary: "", - circle: "", - onClick: togglePlay - }, { - icon: withCtx(() => [ - createVNode(unref(NIcon), { size: "24" }, { - default: withCtx(() => [ - playLoading.value ? (openBlock(), createBlock(_component_n_spin, { - key: 0, - size: "small" - })) : (openBlock(), createElementBlock("i", { - key: 1, - class: normalizeClass(isPlaying.value ? "ri-pause-line" : "ri-play-line") - }, null, 2)) - ]), - _: 1 - }) - ]), - _: 1 - }) - ]), - default: withCtx(() => [ - createTextVNode(" " + toDisplayString(isPlaying.value ? "暂停" : "播放"), 1) - ]), - _: 1 - }), - !props.noList ? (openBlock(), createBlock(unref(__unplugin_components_3), { - key: 1, - placement: "top" - }, { - trigger: withCtx(() => [ - createVNode(unref(Button), { - quaternary: "", - circle: "", - onClick: handleNext - }, { - icon: withCtx(() => [ - createVNode(unref(NIcon), { size: "24" }, { - default: withCtx(() => [ - nextLoading.value ? (openBlock(), createBlock(_component_n_spin, { - key: 0, - size: "small" - })) : (openBlock(), createElementBlock("i", _hoisted_8)) - ]), - _: 1 - }) - ]), - _: 1 - }) - ]), - default: withCtx(() => [ - _cache[6] || (_cache[6] = createTextVNode(" 下一个 ")) - ]), - _: 1 - })) : createCommentVNode("", true), - createBaseVNode("div", _hoisted_9, toDisplayString(formatTime(currentTime.value)) + " / " + toDisplayString(formatTime(duration.value)), 1) - ]), - createBaseVNode("div", _hoisted_10, [ - !isMobile.value ? (openBlock(), createElementBlock("div", _hoisted_11, [ - createVNode(unref(__unplugin_components_3), { placement: "top" }, { - trigger: withCtx(() => [ - createVNode(unref(Button), { - quaternary: "", - circle: "", - onClick: toggleMute - }, { - icon: withCtx(() => [ - createVNode(unref(NIcon), { size: "24" }, { - default: withCtx(() => [ - createBaseVNode("i", { - class: normalizeClass(volume.value === 0 ? "ri-volume-mute-line" : "ri-volume-up-line") - }, null, 2) - ]), - _: 1 - }) - ]), - _: 1 - }) - ]), - default: withCtx(() => [ - createTextVNode(" " + toDisplayString(volume.value === 0 ? "取消静音" : "静音"), 1) - ]), - _: 1 - }), - createVNode(unref(__unplugin_components_0), { - value: volume.value, - "onUpdate:value": _cache[3] || (_cache[3] = ($event) => volume.value = $event), - min: 0, - max: 100, - tooltip: false, - class: "volume-slider" - }, null, 8, ["value"]) - ])) : createCommentVNode("", true), - !props.noList ? (openBlock(), createBlock(unref(__unplugin_components_3), { - key: 1, - placement: "top" - }, { - trigger: withCtx(() => [ - createVNode(unref(Button), { - quaternary: "", - circle: "", - class: "play-mode-btn", - onClick: togglePlayMode - }, { - icon: withCtx(() => [ - createVNode(unref(NIcon), { size: "24" }, { - default: withCtx(() => [ - createBaseVNode("i", { - class: normalizeClass( - playMode.value === "single" ? "ri-repeat-one-line" : "ri-play-list-line" - ) - }, null, 2) - ]), - _: 1 - }) - ]), - _: 1 - }) - ]), - default: withCtx(() => [ - createTextVNode(" " + toDisplayString(playMode.value === "single" ? "单曲循环" : "列表循环"), 1) - ]), - _: 1 - })) : createCommentVNode("", true), - createVNode(unref(__unplugin_components_3), { placement: "top" }, { - trigger: withCtx(() => [ - createVNode(unref(Button), { - quaternary: "", - circle: "", - onClick: toggleFullscreen - }, { - icon: withCtx(() => [ - createVNode(unref(NIcon), { size: "24" }, { - default: withCtx(() => [ - createBaseVNode("i", { - class: normalizeClass(isFullscreen.value ? "ri-fullscreen-exit-line" : "ri-fullscreen-line") - }, null, 2) - ]), - _: 1 - }) - ]), - _: 1 - }) - ]), - default: withCtx(() => [ - createTextVNode(" " + toDisplayString(isFullscreen.value ? "退出全屏" : "全屏"), 1) - ]), - _: 1 - }), - createVNode(unref(__unplugin_components_3), { placement: "top" }, { - trigger: withCtx(() => [ - createVNode(unref(Button), { - quaternary: "", - circle: "", - onClick: handleClose - }, { - icon: withCtx(() => [ - createVNode(unref(NIcon), { size: "24" }, { - default: withCtx(() => _cache[7] || (_cache[7] = [ - createBaseVNode("i", { class: "ri-close-line" }, null, -1) - ])), - _: 1 - }) - ]), - _: 1 - }) - ]), - default: withCtx(() => [ - _cache[8] || (_cache[8] = createTextVNode(" 关闭 ")) - ]), - _: 1 - }) - ]) - ]) - ], 2), - createVNode(Transition, { name: "fade" }, { - default: withCtx(() => [ - showModeHint.value ? (openBlock(), createElementBlock("div", _hoisted_12, [ - createVNode(unref(NIcon), { - size: "48", - class: "mode-icon" - }, { - default: withCtx(() => [ - createBaseVNode("i", { - class: normalizeClass(playMode.value === "single" ? "ri-repeat-one-line" : "ri-play-list-line") - }, null, 2) - ]), - _: 1 - }), - createBaseVNode("div", _hoisted_13, toDisplayString(playMode.value === "single" ? "单曲循环" : "自动播放下一个"), 1) - ])) : createCommentVNode("", true) - ]), - _: 1 - }) - ], 2), - createBaseVNode("div", { - class: normalizeClass(["mv-detail-title", { "title-hidden": !showControls.value }]) - }, [ - createBaseVNode("div", _hoisted_14, [ - createVNode(_component_n_ellipsis, null, { - default: withCtx(() => [ - createTextVNode(toDisplayString(_ctx.currentMv?.name), 1) - ]), - _: 1 - }) - ]) - ], 2) - ]) - ]), - _: 1 - }, 8, ["show"]); - }; - } -}); -const MvPlayer = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-f4c63e83"]]); -export { - MvPlayer as M, - getAllMv as a, - getTopMv as g -}; diff --git a/out/renderer/assets/MvPlayer-I4IDK1xL.js.gz b/out/renderer/assets/MvPlayer-I4IDK1xL.js.gz deleted file mode 100644 index fa6e166..0000000 Binary files a/out/renderer/assets/MvPlayer-I4IDK1xL.js.gz and /dev/null differ diff --git a/out/renderer/assets/PlayBar-BNzUvTGp.js b/out/renderer/assets/PlayBar-BNzUvTGp.js deleted file mode 100644 index a12d40f..0000000 --- a/out/renderer/assets/PlayBar-BNzUvTGp.js +++ /dev/null @@ -1,1620 +0,0 @@ -import { r as ref, G as computed, D as useMemo, $ as provide, d as defineComponent, as as inject, at as useSsrAdapter, o as onMounted, aq as onActivated, au as onDeactivated, A as toRef, av as depx, aw as pxfy, l as h, ax as mergeProps, ay as VResizeObserver, az as XScrollbar, aA as store, ae as audioService, aB as getTextColors, E as watch, M as nextTick, R as isElectron, a1 as onUnmounted, aC as getHoverBackgroundColor, aD as animateGradient, a as onBeforeUnmount, j as openBlock, O as createBlock, f as withCtx, b as createBaseVNode, a2 as normalizeStyle, u as unref, e as createVNode, a7 as getImgUrl, t as toDisplayString, c as createElementBlock, a3 as Fragment, a4 as renderList, n as normalizeClass, T as createCommentVNode, aE as useDebounceFn, _ as _export_sfc, g as useStore, aF as useThrottleFn, aG as useTemplateRef, i as isRef, k as createTextVNode, ac as isMobile, s as setAnimationClass, aH as secondToMinute } from "./index-DKaFsuse.js"; -import { S as SongItem } from "./SongItem-CoswpGn6.js"; -import { N as NImage, _ as __unplugin_components_3, a as __unplugin_components_5 } from "./Image-DXClIklC.js"; -import { _ as __unplugin_components_1 } from "./Layout-CvYBg1vI.js"; -import { _ as __unplugin_components_2 } from "./Drawer-BEJ8Ydua.js"; -import { c as cssrAnchorMetaName, a as c, b as beforeNextFrameOnce } from "./use-locale-DLWAOXez.js"; -import { _ as __unplugin_components_0 } from "./Slider-BA6NituQ.js"; -import { _ as __unplugin_components_2$1 } from "./Ellipsis-D4R5dIX2.js"; -function lowBit(n) { - return n & -n; -} -class FinweckTree { - /** - * @param l length of the array - * @param min min value of the array - */ - constructor(l, min) { - this.l = l; - this.min = min; - const ft = new Array(l + 1); - for (let i = 0; i < l + 1; ++i) { - ft[i] = 0; - } - this.ft = ft; - } - /** - * Add arr[i] by n, start from 0 - * @param i the index of the element to be added - * @param n the value to be added - */ - add(i, n) { - if (n === 0) - return; - const { l, ft } = this; - i += 1; - while (i <= l) { - ft[i] += n; - i += lowBit(i); - } - } - /** - * Get the value of index i - * @param i index - * @returns value of the index - */ - get(i) { - return this.sum(i + 1) - this.sum(i); - } - /** - * Get the sum of first i elements - * @param i count of head elements to be added - * @returns the sum of first i elements - */ - sum(i) { - if (i === void 0) - i = this.l; - if (i <= 0) - return 0; - const { ft, min, l } = this; - if (i > l) - throw new Error("[FinweckTree.sum]: `i` is larger than length."); - let ret = i * min; - while (i > 0) { - ret += ft[i]; - i -= lowBit(i); - } - return ret; - } - /** - * Get the largest count of head elements whose sum are <= threshold - * @param threshold - * @returns the largest count of head elements whose sum are <= threshold - */ - getBound(threshold) { - let l = 0; - let r = this.l; - while (r > l) { - const m = Math.floor((l + r) / 2); - const sumM = this.sum(m); - if (sumM > threshold) { - r = m; - continue; - } else if (sumM < threshold) { - if (l === m) { - if (this.sum(l + 1) <= threshold) - return l + 1; - return m; - } - l = m; - } else { - return m; - } - } - return l; - } -} -let maybeTouch; -function ensureMaybeTouch() { - if (typeof document === "undefined") - return false; - if (maybeTouch === void 0) { - if ("matchMedia" in window) { - maybeTouch = window.matchMedia("(pointer:coarse)").matches; - } else { - maybeTouch = false; - } - } - return maybeTouch; -} -let wheelScale; -function ensureWheelScale() { - if (typeof document === "undefined") - return 1; - if (wheelScale === void 0) { - wheelScale = "chrome" in window ? window.devicePixelRatio : 1; - } - return wheelScale; -} -const xScrollInjextionKey = "VVirtualListXScroll"; -function setupXScroll({ columnsRef, renderColRef, renderItemWithColsRef }) { - const listWidthRef = ref(0); - const scrollLeftRef = ref(0); - const xFinweckTreeRef = computed(() => { - const columns = columnsRef.value; - if (columns.length === 0) { - return null; - } - const ft = new FinweckTree(columns.length, 0); - columns.forEach((column, index) => { - ft.add(index, column.width); - }); - return ft; - }); - const startIndexRef = useMemo(() => { - const xFinweckTree = xFinweckTreeRef.value; - if (xFinweckTree !== null) { - return Math.max(xFinweckTree.getBound(scrollLeftRef.value) - 1, 0); - } else { - return 0; - } - }); - const getLeft = (index) => { - const xFinweckTree = xFinweckTreeRef.value; - if (xFinweckTree !== null) { - return xFinweckTree.sum(index); - } else { - return 0; - } - }; - const endIndexRef = useMemo(() => { - const xFinweckTree = xFinweckTreeRef.value; - if (xFinweckTree !== null) { - return Math.min(xFinweckTree.getBound(scrollLeftRef.value + listWidthRef.value) + 1, columnsRef.value.length - 1); - } else { - return 0; - } - }); - provide(xScrollInjextionKey, { - startIndexRef, - endIndexRef, - columnsRef, - renderColRef, - renderItemWithColsRef, - getLeft - }); - return { - listWidthRef, - scrollLeftRef - }; -} -const VirtualListRow = defineComponent({ - name: "VirtualListRow", - props: { - index: { type: Number, required: true }, - item: { - type: Object, - required: true - } - }, - setup() { - const { startIndexRef, endIndexRef, columnsRef, getLeft, renderColRef, renderItemWithColsRef } = ( - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - inject(xScrollInjextionKey) - ); - return { - startIndex: startIndexRef, - endIndex: endIndexRef, - columns: columnsRef, - renderCol: renderColRef, - renderItemWithCols: renderItemWithColsRef, - getLeft - }; - }, - render() { - const { startIndex, endIndex, columns, renderCol, renderItemWithCols, getLeft, item } = this; - if (renderItemWithCols != null) { - return renderItemWithCols({ - itemIndex: this.index, - startColIndex: startIndex, - endColIndex: endIndex, - allColumns: columns, - item, - getLeft - }); - } - if (renderCol != null) { - const items = []; - for (let i = startIndex; i <= endIndex; ++i) { - const column = columns[i]; - items.push(renderCol({ column, left: getLeft(i), item })); - } - return items; - } - return null; - } -}); -const styles = c(".v-vl", { - maxHeight: "inherit", - height: "100%", - overflow: "auto", - minWidth: "1px" - // a zero width container won't be scrollable -}, [ - c("&:not(.v-vl--show-scrollbar)", { - scrollbarWidth: "none" - }, [ - c("&::-webkit-scrollbar, &::-webkit-scrollbar-track-piece, &::-webkit-scrollbar-thumb", { - width: 0, - height: 0, - display: "none" - }) - ]) -]); -const VVirtualList = defineComponent({ - name: "VirtualList", - inheritAttrs: false, - props: { - showScrollbar: { - type: Boolean, - default: true - }, - columns: { - type: Array, - default: () => [] - }, - renderCol: Function, - renderItemWithCols: Function, - items: { - type: Array, - default: () => [] - }, - // it is suppose to be the min height - itemSize: { - type: Number, - required: true - }, - itemResizable: Boolean, - itemsStyle: [String, Object], - visibleItemsTag: { - type: [String, Object], - default: "div" - }, - visibleItemsProps: Object, - ignoreItemResize: Boolean, - onScroll: Function, - onWheel: Function, - onResize: Function, - defaultScrollKey: [Number, String], - defaultScrollIndex: Number, - keyField: { - type: String, - default: "key" - }, - // Whether it is a good API? - // ResizeObserver + footer & header is not enough. - // Too complex for simple case - paddingTop: { - type: [Number, String], - default: 0 - }, - paddingBottom: { - type: [Number, String], - default: 0 - } - }, - setup(props) { - const ssrAdapter = useSsrAdapter(); - styles.mount({ - id: "vueuc/virtual-list", - head: true, - anchorMetaName: cssrAnchorMetaName, - ssr: ssrAdapter - }); - onMounted(() => { - const { defaultScrollIndex, defaultScrollKey } = props; - if (defaultScrollIndex !== void 0 && defaultScrollIndex !== null) { - scrollTo({ index: defaultScrollIndex }); - } else if (defaultScrollKey !== void 0 && defaultScrollKey !== null) { - scrollTo({ key: defaultScrollKey }); - } - }); - let isDeactivated = false; - let activateStateInitialized = false; - onActivated(() => { - isDeactivated = false; - if (!activateStateInitialized) { - activateStateInitialized = true; - return; - } - scrollTo({ top: scrollTopRef.value, left: scrollLeftRef.value }); - }); - onDeactivated(() => { - isDeactivated = true; - if (!activateStateInitialized) { - activateStateInitialized = true; - } - }); - const totalWidthRef = useMemo(() => { - if (props.renderCol == null && props.renderItemWithCols == null) { - return void 0; - } - if (props.columns.length === 0) - return void 0; - let width = 0; - props.columns.forEach((column) => { - width += column.width; - }); - return width; - }); - const keyIndexMapRef = computed(() => { - const map = /* @__PURE__ */ new Map(); - const { keyField } = props; - props.items.forEach((item, index) => { - map.set(item[keyField], index); - }); - return map; - }); - const { scrollLeftRef, listWidthRef } = setupXScroll({ - columnsRef: toRef(props, "columns"), - renderColRef: toRef(props, "renderCol"), - renderItemWithColsRef: toRef(props, "renderItemWithCols") - }); - const listElRef = ref(null); - const listHeightRef = ref(void 0); - const keyToHeightOffset = /* @__PURE__ */ new Map(); - const finweckTreeRef = computed(() => { - const { items, itemSize, keyField } = props; - const ft = new FinweckTree(items.length, itemSize); - items.forEach((item, index) => { - const key = item[keyField]; - const heightOffset = keyToHeightOffset.get(key); - if (heightOffset !== void 0) { - ft.add(index, heightOffset); - } - }); - return ft; - }); - const finweckTreeUpdateTrigger = ref(0); - const scrollTopRef = ref(0); - const startIndexRef = useMemo(() => { - return Math.max(finweckTreeRef.value.getBound(scrollTopRef.value - depx(props.paddingTop)) - 1, 0); - }); - const viewportItemsRef = computed(() => { - const { value: listHeight } = listHeightRef; - if (listHeight === void 0) - return []; - const { items, itemSize } = props; - const startIndex = startIndexRef.value; - const endIndex = Math.min(startIndex + Math.ceil(listHeight / itemSize + 1), items.length - 1); - const viewportItems = []; - for (let i = startIndex; i <= endIndex; ++i) { - viewportItems.push(items[i]); - } - return viewportItems; - }); - const scrollTo = (options, y) => { - if (typeof options === "number") { - scrollToPosition(options, y, "auto"); - return; - } - const { left, top, index, key, position, behavior, debounce = true } = options; - if (left !== void 0 || top !== void 0) { - scrollToPosition(left, top, behavior); - } else if (index !== void 0) { - scrollToIndex(index, behavior, debounce); - } else if (key !== void 0) { - const toIndex = keyIndexMapRef.value.get(key); - if (toIndex !== void 0) - scrollToIndex(toIndex, behavior, debounce); - } else if (position === "bottom") { - scrollToPosition(0, Number.MAX_SAFE_INTEGER, behavior); - } else if (position === "top") { - scrollToPosition(0, 0, behavior); - } - }; - let anchorIndex; - let anchorTimerId = null; - function scrollToIndex(index, behavior, debounce) { - const { value: ft } = finweckTreeRef; - const targetTop = ft.sum(index) + depx(props.paddingTop); - if (!debounce) { - listElRef.value.scrollTo({ - left: 0, - top: targetTop, - behavior - }); - } else { - anchorIndex = index; - if (anchorTimerId !== null) { - window.clearTimeout(anchorTimerId); - } - anchorTimerId = window.setTimeout(() => { - anchorIndex = void 0; - anchorTimerId = null; - }, 16); - const { scrollTop, offsetHeight } = listElRef.value; - if (targetTop > scrollTop) { - const itemSize = ft.get(index); - if (targetTop + itemSize <= scrollTop + offsetHeight) ; - else { - listElRef.value.scrollTo({ - left: 0, - top: targetTop + itemSize - offsetHeight, - behavior - }); - } - } else { - listElRef.value.scrollTo({ - left: 0, - top: targetTop, - behavior - }); - } - } - } - function scrollToPosition(left, top, behavior) { - listElRef.value.scrollTo({ - left, - top, - behavior - }); - } - function handleItemResize(key, entry) { - var _a, _b, _c; - if (isDeactivated) - return; - if (props.ignoreItemResize) - return; - if (isHideByVShow(entry.target)) - return; - const { value: ft } = finweckTreeRef; - const index = keyIndexMapRef.value.get(key); - const previousHeight = ft.get(index); - const height = (_c = (_b = (_a = entry.borderBoxSize) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.blockSize) !== null && _c !== void 0 ? _c : entry.contentRect.height; - if (height === previousHeight) - return; - const offset = height - props.itemSize; - if (offset === 0) { - keyToHeightOffset.delete(key); - } else { - keyToHeightOffset.set(key, height - props.itemSize); - } - const delta = height - previousHeight; - if (delta === 0) - return; - ft.add(index, delta); - const listEl = listElRef.value; - if (listEl != null) { - if (anchorIndex === void 0) { - const previousHeightSum = ft.sum(index); - if (listEl.scrollTop > previousHeightSum) { - listEl.scrollBy(0, delta); - } - } else { - if (index < anchorIndex) { - listEl.scrollBy(0, delta); - } else if (index === anchorIndex) { - const previousHeightSum = ft.sum(index); - if (height + previousHeightSum > // Note, listEl shouldn't have border, nor offsetHeight won't be - // correct - listEl.scrollTop + listEl.offsetHeight) { - listEl.scrollBy(0, delta); - } - } - } - syncViewport(); - } - finweckTreeUpdateTrigger.value++; - } - const mayUseWheel = !ensureMaybeTouch(); - let wheelCatched = false; - function handleListScroll(e) { - var _a; - (_a = props.onScroll) === null || _a === void 0 ? void 0 : _a.call(props, e); - if (!mayUseWheel || !wheelCatched) { - syncViewport(); - } - } - function handleListWheel(e) { - var _a; - (_a = props.onWheel) === null || _a === void 0 ? void 0 : _a.call(props, e); - if (mayUseWheel) { - const listEl = listElRef.value; - if (listEl != null) { - if (e.deltaX === 0) { - if (listEl.scrollTop === 0 && e.deltaY <= 0) { - return; - } - if (listEl.scrollTop + listEl.offsetHeight >= listEl.scrollHeight && e.deltaY >= 0) { - return; - } - } - e.preventDefault(); - listEl.scrollTop += e.deltaY / ensureWheelScale(); - listEl.scrollLeft += e.deltaX / ensureWheelScale(); - syncViewport(); - wheelCatched = true; - beforeNextFrameOnce(() => { - wheelCatched = false; - }); - } - } - } - function handleListResize(entry) { - if (isDeactivated) - return; - if (isHideByVShow(entry.target)) - return; - if (props.renderCol == null && props.renderItemWithCols == null) { - if (entry.contentRect.height === listHeightRef.value) - return; - } else { - if (entry.contentRect.height === listHeightRef.value && entry.contentRect.width === listWidthRef.value) { - return; - } - } - listHeightRef.value = entry.contentRect.height; - listWidthRef.value = entry.contentRect.width; - const { onResize } = props; - if (onResize !== void 0) - onResize(entry); - } - function syncViewport() { - const { value: listEl } = listElRef; - if (listEl == null) - return; - scrollTopRef.value = listEl.scrollTop; - scrollLeftRef.value = listEl.scrollLeft; - } - function isHideByVShow(el) { - let cursor = el; - while (cursor !== null) { - if (cursor.style.display === "none") - return true; - cursor = cursor.parentElement; - } - return false; - } - return { - listHeight: listHeightRef, - listStyle: { - overflow: "auto" - }, - keyToIndex: keyIndexMapRef, - itemsStyle: computed(() => { - const { itemResizable } = props; - const height = pxfy(finweckTreeRef.value.sum()); - finweckTreeUpdateTrigger.value; - return [ - props.itemsStyle, - { - boxSizing: "content-box", - width: pxfy(totalWidthRef.value), - height: itemResizable ? "" : height, - minHeight: itemResizable ? height : "", - paddingTop: pxfy(props.paddingTop), - paddingBottom: pxfy(props.paddingBottom) - } - ]; - }), - visibleItemsStyle: computed(() => { - finweckTreeUpdateTrigger.value; - return { - transform: `translateY(${pxfy(finweckTreeRef.value.sum(startIndexRef.value))})` - }; - }), - viewportItems: viewportItemsRef, - listElRef, - itemsElRef: ref(null), - scrollTo, - handleListResize, - handleListScroll, - handleListWheel, - handleItemResize - }; - }, - render() { - const { itemResizable, keyField, keyToIndex, visibleItemsTag } = this; - return h(VResizeObserver, { - onResize: this.handleListResize - }, { - default: () => { - var _a, _b; - return h("div", mergeProps(this.$attrs, { - class: ["v-vl", this.showScrollbar && "v-vl--show-scrollbar"], - onScroll: this.handleListScroll, - onWheel: this.handleListWheel, - ref: "listElRef" - }), [ - this.items.length !== 0 ? h("div", { - ref: "itemsElRef", - class: "v-vl-items", - style: this.itemsStyle - }, [ - h(visibleItemsTag, Object.assign({ - class: "v-vl-visible-items", - style: this.visibleItemsStyle - }, this.visibleItemsProps), { - default: () => { - const { renderCol, renderItemWithCols } = this; - return this.viewportItems.map((item) => { - const key = item[keyField]; - const index = keyToIndex.get(key); - const renderedCols = renderCol != null ? h(VirtualListRow, { - index, - item - }) : void 0; - const renderedItemWithCols = renderItemWithCols != null ? h(VirtualListRow, { - index, - item - }) : void 0; - const itemVNode = this.$slots.default({ - item, - renderedCols, - renderedItemWithCols, - index - })[0]; - if (itemResizable) { - return h(VResizeObserver, { - key, - onResize: (entry) => this.handleItemResize(key, entry) - }, { - default: () => itemVNode - }); - } - itemVNode.key = key; - return itemVNode; - }); - } - }) - ]) : (_b = (_a = this.$slots).empty) === null || _b === void 0 ? void 0 : _b.call(_a) - ]); - } - }); - } -}); -const virtualListProps = { - scrollbarProps: Object, - items: { - type: Array, - default: () => [] - }, - itemSize: { - type: Number, - required: true - }, - itemResizable: Boolean, - itemsStyle: [String, Object], - visibleItemsTag: { - type: [String, Object], - default: "div" - }, - visibleItemsProps: Object, - ignoreItemResize: Boolean, - onScroll: Function, - onWheel: Function, - onResize: Function, - defaultScrollKey: [Number, String], - defaultScrollIndex: Number, - keyField: { - type: String, - default: "key" - }, - paddingTop: { - type: [Number, String], - default: 0 - }, - paddingBottom: { - type: [Number, String], - default: 0 - } -}; -const __unplugin_components_4 = defineComponent({ - name: "VirtualList", - props: virtualListProps, - setup(props) { - const scrollbarInstRef = ref(null); - const virtualListInstRef = ref(null); - function syncScrollbar() { - const { - value: scrollbarInst - } = scrollbarInstRef; - if (scrollbarInst) scrollbarInst.sync(); - } - function handleScroll(e) { - var _a; - syncScrollbar(); - (_a = props.onScroll) === null || _a === void 0 ? void 0 : _a.call(props, e); - } - function handleResize(e) { - var _a; - syncScrollbar(); - (_a = props.onResize) === null || _a === void 0 ? void 0 : _a.call(props, e); - } - function handleWheel(e) { - var _a; - (_a = props.onWheel) === null || _a === void 0 ? void 0 : _a.call(props, e); - } - function scrollTo(options, y) { - var _a, _b; - if (typeof options === "number") { - (_a = virtualListInstRef.value) === null || _a === void 0 ? void 0 : _a.scrollTo(options, y !== null && y !== void 0 ? y : 0); - } else { - (_b = virtualListInstRef.value) === null || _b === void 0 ? void 0 : _b.scrollTo(options); - } - } - function getScrollContainer() { - var _a; - return (_a = virtualListInstRef.value) === null || _a === void 0 ? void 0 : _a.listElRef; - } - function getScrollContent() { - var _a; - return (_a = virtualListInstRef.value) === null || _a === void 0 ? void 0 : _a.itemsElRef; - } - return { - scrollTo, - scrollbarInstRef, - virtualListInstRef, - getScrollContainer, - getScrollContent, - handleScroll, - handleResize, - handleWheel - }; - }, - render() { - return h(XScrollbar, Object.assign({}, this.scrollbarProps, { - ref: "scrollbarInstRef", - container: this.getScrollContainer, - content: this.getScrollContent - }), { - default: () => { - return h(VVirtualList, { - ref: "virtualListInstRef", - showScrollbar: false, - items: this.items, - itemSize: this.itemSize, - itemResizable: this.itemResizable, - itemsStyle: this.itemsStyle, - visibleItemsTag: this.visibleItemsTag, - visibleItemsProps: this.visibleItemsProps, - ignoreItemResize: this.ignoreItemResize, - keyField: this.keyField, - defaultScrollKey: this.defaultScrollKey, - defaultScrollIndex: this.defaultScrollIndex, - paddingTop: this.paddingTop, - paddingBottom: this.paddingBottom, - onScroll: this.handleScroll, - onResize: this.handleResize, - onWheel: this.handleWheel - }, { - default: ({ - item, - index - }) => { - var _a, _b; - return (_b = (_a = this.$slots).default) === null || _b === void 0 ? void 0 : _b.call(_a, { - item, - index - }); - } - }); - } - }); - } -}); -const windowData = window; -const lrcArray = ref([]); -const lrcTimeArray = ref([]); -const nowTime = ref(0); -const allTime = ref(0); -const nowIndex = ref(0); -const correctionTime = ref(0.4); -const currentLrcProgress = ref(0); -const playMusic = computed(() => store.state.playMusic); -const sound = ref(audioService.getCurrentSound()); -const isLyricWindowOpen = ref(false); -const textColors = ref(getTextColors()); -document.onkeyup = (e) => { - const target = e.target; - if (target.tagName === "INPUT" || target.tagName === "TEXTAREA") { - return; - } - switch (e.code) { - case "Space": - if (store.state.play) { - store.commit("setPlayMusic", false); - audioService.getCurrentSound()?.pause(); - } else { - store.commit("setPlayMusic", true); - audioService.getCurrentSound()?.play(); - } - break; - } -}; -watch( - () => store.state.playMusicUrl, - (newVal) => { - if (newVal) { - audioService.play(newVal); - sound.value = audioService.getCurrentSound(); - audioServiceOn(audioService); - } - } -); -watch( - () => store.state.playMusic, - () => { - nextTick(async () => { - lrcArray.value = playMusic.value.lyric?.lrcArray || []; - lrcTimeArray.value = playMusic.value.lyric?.lrcTimeArray || []; - if (isElectron && isLyricWindowOpen.value && lrcArray.value.length > 0) { - sendLyricToWin(); - } - }); - }, - { - deep: true, - immediate: true - } -); -const audioServiceOn = (audio) => { - let interval = null; - audio.onPlay(() => { - store.commit("setPlayMusic", true); - interval = setInterval(() => { - nowTime.value = sound.value?.seek(); - allTime.value = sound.value?.duration(); - const newIndex = getLrcIndex(nowTime.value); - if (newIndex !== nowIndex.value) { - nowIndex.value = newIndex; - currentLrcProgress.value = 0; - if (isElectron && isLyricWindowOpen.value) { - sendLyricToWin(); - } - } - if (isElectron && isLyricWindowOpen.value) { - sendLyricToWin(); - } - }, 50); - }); - audio.onPause(() => { - store.commit("setPlayMusic", false); - clearInterval(interval); - if (isElectron && isLyricWindowOpen.value) { - sendLyricToWin(); - } - }); - audio.onEnd(() => { - if (store.state.playMode === 1) { - audio.getCurrentSound()?.play(); - } else if (store.state.playMode === 2) { - const { playList } = store.state; - if (playList.length <= 1) { - audio.getCurrentSound()?.play(); - } else { - let randomIndex; - do { - randomIndex = Math.floor(Math.random() * playList.length); - } while (randomIndex === store.state.playListIndex && playList.length > 1); - store.state.playListIndex = randomIndex; - store.commit("setPlay", playList[randomIndex]); - } - } else { - store.commit("nextPlay"); - } - }); -}; -const isPlaying = computed(() => store.state.play); -const isCurrentLrc = (index, time) => { - const currentTime = lrcTimeArray.value[index]; - const nextTime = lrcTimeArray.value[index + 1]; - const nowTime2 = time + correctionTime.value; - const isTrue = nowTime2 > currentTime && nowTime2 < nextTime; - return isTrue; -}; -const getLrcIndex = (time) => { - for (let i = 0; i < lrcTimeArray.value.length; i++) { - if (isCurrentLrc(i, time)) { - nowIndex.value = i; - return i; - } - } - return nowIndex.value; -}; -const currentLrcTiming = computed(() => { - const start = lrcTimeArray.value[nowIndex.value] || 0; - const end = lrcTimeArray.value[nowIndex.value + 1] || start + 1; - return { start, end }; -}); -const getLrcStyle = (index) => { - if (index === nowIndex.value) { - return { - backgroundImage: `linear-gradient(to right, #ffffff ${currentLrcProgress.value}%, #ffffff8a ${currentLrcProgress.value}%)`, - backgroundClip: "text", - WebkitBackgroundClip: "text", - color: "transparent", - transition: "background-image 0.1s linear" - }; - } - return {}; -}; -const useLyricProgress = () => { - let animationFrameId = null; - const updateProgress = () => { - if (!isPlaying.value) return; - const currentSound = sound.value; - if (!currentSound) return; - const { start, end } = currentLrcTiming.value; - const duration = end - start; - const elapsed = currentSound.seek() - start; - currentLrcProgress.value = Math.min(Math.max(elapsed / duration * 100, 0), 100); - animationFrameId = requestAnimationFrame(updateProgress); - }; - const startProgressAnimation = () => { - if (!animationFrameId && isPlaying.value) { - updateProgress(); - } - }; - const stopProgressAnimation = () => { - if (animationFrameId) { - cancelAnimationFrame(animationFrameId); - animationFrameId = null; - } - }; - watch(isPlaying, (newIsPlaying) => { - if (newIsPlaying) { - startProgressAnimation(); - } else { - stopProgressAnimation(); - } - }); - onMounted(() => { - if (isPlaying.value) { - startProgressAnimation(); - } - }); - onUnmounted(() => { - stopProgressAnimation(); - }); - return { - currentLrcProgress, - getLrcStyle - }; -}; -const setAudioTime = (index) => { - const currentSound = sound.value; - if (!currentSound) return; - currentSound.seek(lrcTimeArray.value[index]); - currentSound.play(); -}; -watch( - () => lrcArray.value, - (newLrcArray) => { - if (newLrcArray.length > 0 && isElectron && isLyricWindowOpen.value) { - sendLyricToWin(); - } - } -); -const sendLyricToWin = () => { - if (!isElectron || !isLyricWindowOpen.value) { - console.log("Cannot send lyric: electron or lyric window not available"); - return; - } - try { - if (lrcArray.value.length > 0) { - const nowIndex2 = getLrcIndex(nowTime.value); - const updateData = { - type: "full", - nowIndex: nowIndex2, - nowTime: nowTime.value, - startCurrentTime: lrcTimeArray.value[nowIndex2], - nextTime: lrcTimeArray.value[nowIndex2 + 1], - isPlay: isPlaying.value, - lrcArray: lrcArray.value, - lrcTimeArray: lrcTimeArray.value, - allTime: allTime.value, - playMusic: playMusic.value - }; - window.api.sendLyric(JSON.stringify(updateData)); - } - } catch (error) { - console.error("Error sending lyric update:", error); - } -}; -const openLyric = () => { - if (!isElectron) return; - console.log("Opening lyric window with current song:", playMusic.value?.name); - isLyricWindowOpen.value = !isLyricWindowOpen.value; - if (isLyricWindowOpen.value) { - setTimeout(() => { - window.api.openLyric(); - sendLyricToWin(); - }, 500); - sendLyricToWin(); - } else { - closeLyric(); - } -}; -const closeLyric = () => { - if (!isElectron) return; - windowData.electron.ipcRenderer.send("close-lyric"); -}; -if (isElectron) { - windowData.electron.ipcRenderer.on("lyric-control-back", (_, command) => { - switch (command) { - case "playpause": - if (store.state.play) { - store.commit("setPlayMusic", false); - audioService.getCurrentSound()?.pause(); - } else { - store.commit("setPlayMusic", true); - audioService.getCurrentSound()?.play(); - } - break; - case "prev": - store.commit("prevPlay"); - break; - case "next": - store.commit("nextPlay"); - break; - case "close": - closeLyric(); - break; - default: - console.log("Unknown command:", command); - break; - } - }); -} -const _hoisted_1$1 = { id: "drawer-target" }; -const _hoisted_2$1 = { class: "music-content-name" }; -const _hoisted_3$1 = { class: "music-content-singer" }; -const _hoisted_4$1 = { class: "music-content" }; -const _hoisted_5$1 = ["id", "onClick"]; -const _hoisted_6$1 = { class: "music-lrc-text-tr" }; -const _hoisted_7$1 = { - key: 0, - class: "music-lrc-text mt-40" -}; -const _sfc_main$1 = /* @__PURE__ */ defineComponent({ - __name: "MusicFull", - props: { - musicFull: { - type: Boolean, - default: false - }, - background: { - type: String, - default: "" - } - }, - setup(__props, { expose: __expose }) { - const lrcSider = ref(null); - const isMouse = ref(false); - const lrcContainer = ref(null); - const currentBackground = ref(""); - const animationFrame = ref(null); - const isDark = ref(false); - const props = __props; - const lrcScroll = (behavior = "smooth") => { - const nowEl = document.querySelector(`#music-lrc-text-${nowIndex.value}`); - if (props.musicFull && !isMouse.value && nowEl && lrcContainer.value) { - const containerRect = lrcContainer.value.getBoundingClientRect(); - const nowElRect = nowEl.getBoundingClientRect(); - const relativeTop = nowElRect.top - containerRect.top; - const scrollTop = relativeTop - lrcSider.value.$el.getBoundingClientRect().height / 2; - lrcSider.value.scrollTo({ top: scrollTop, behavior }); - } - }; - const debouncedLrcScroll = useDebounceFn(lrcScroll, 200); - const mouseOverLayout = () => { - isMouse.value = true; - }; - const mouseLeaveLayout = () => { - setTimeout(() => { - isMouse.value = false; - lrcScroll(); - }, 2e3); - }; - watch(nowIndex, () => { - debouncedLrcScroll(); - }); - watch( - () => props.musicFull, - () => { - if (props.musicFull) { - nextTick(() => { - lrcScroll("instant"); - }); - } - } - ); - watch( - () => props.background, - (newBg) => { - if (!newBg) { - textColors.value = getTextColors(); - document.documentElement.style.setProperty( - "--hover-bg-color", - getHoverBackgroundColor(false) - ); - document.documentElement.style.setProperty("--text-color-primary", textColors.value.primary); - document.documentElement.style.setProperty("--text-color-active", textColors.value.active); - return; - } - if (currentBackground.value) { - if (animationFrame.value) { - cancelAnimationFrame(animationFrame.value); - } - animationFrame.value = animateGradient(currentBackground.value, newBg, (gradient) => { - currentBackground.value = gradient; - }); - } else { - currentBackground.value = newBg; - } - textColors.value = getTextColors(newBg); - isDark.value = textColors.value.active === "#000000"; - document.documentElement.style.setProperty( - "--hover-bg-color", - getHoverBackgroundColor(isDark.value) - ); - document.documentElement.style.setProperty("--text-color-primary", textColors.value.primary); - document.documentElement.style.setProperty("--text-color-active", textColors.value.active); - }, - { immediate: true } - ); - const { getLrcStyle: originalLrcStyle } = useLyricProgress(); - const getLrcStyle2 = (index) => { - const colors = textColors.value || getTextColors; - const originalStyle = originalLrcStyle(index); - if (index === nowIndex.value) { - return { - ...originalStyle, - backgroundImage: originalStyle.backgroundImage?.replace(/#ffffff/g, colors.active).replace(/#ffffff8a/g, `${colors.primary}`), - backgroundClip: "text", - WebkitBackgroundClip: "text", - color: "transparent" - }; - } - return { - color: colors.primary - }; - }; - onBeforeUnmount(() => { - if (animationFrame.value) { - cancelAnimationFrame(animationFrame.value); - } - }); - __expose({ - lrcScroll - }); - return (_ctx, _cache) => { - const _component_n_image = NImage; - const _component_n_layout = __unplugin_components_1; - const _component_n_drawer = __unplugin_components_2; - return openBlock(), createBlock(_component_n_drawer, { - show: __props.musicFull, - height: "100%", - placement: "bottom", - style: normalizeStyle({ background: currentBackground.value || __props.background }), - to: `#layout-main` - }, { - default: withCtx(() => [ - createBaseVNode("div", _hoisted_1$1, [ - _cache[1] || (_cache[1] = createBaseVNode("div", { class: "drawer-back" }, null, -1)), - createBaseVNode("div", { - class: "music-img", - style: normalizeStyle({ color: unref(textColors).theme === "dark" ? "#000000" : "#ffffff" }) - }, [ - createVNode(_component_n_image, { - ref: "PicImgRef", - src: unref(getImgUrl)(unref(playMusic)?.picUrl, "500y500"), - class: "img", - lazy: "", - "preview-disabled": "" - }, null, 8, ["src"]), - createBaseVNode("div", null, [ - createBaseVNode("div", _hoisted_2$1, toDisplayString(unref(playMusic).name), 1), - createBaseVNode("div", _hoisted_3$1, [ - (openBlock(true), createElementBlock(Fragment, null, renderList(unref(playMusic).ar || unref(playMusic).song.artists, (item, index) => { - return openBlock(), createElementBlock("span", { key: index }, toDisplayString(item.name) + toDisplayString(index < (unref(playMusic).ar || unref(playMusic).song.artists).length - 1 ? " / " : ""), 1); - }), 128)) - ]) - ]) - ], 4), - createBaseVNode("div", _hoisted_4$1, [ - createVNode(_component_n_layout, { - ref_key: "lrcSider", - ref: lrcSider, - class: "music-lrc", - style: { "height": "60vh" }, - "native-scrollbar": false, - onMouseover: mouseOverLayout, - onMouseleave: mouseLeaveLayout - }, { - default: withCtx(() => [ - createBaseVNode("div", { - ref_key: "lrcContainer", - ref: lrcContainer - }, [ - (openBlock(true), createElementBlock(Fragment, null, renderList(unref(lrcArray), (item, index) => { - return openBlock(), createElementBlock("div", { - id: `music-lrc-text-${index}`, - key: index, - class: normalizeClass(["music-lrc-text", { "now-text": index === unref(nowIndex), "hover-text": item.text }]), - onClick: ($event) => unref(setAudioTime)(index) - }, [ - createBaseVNode("span", { - style: normalizeStyle(getLrcStyle2(index)) - }, toDisplayString(item.text), 5), - createBaseVNode("div", _hoisted_6$1, toDisplayString(item.trText), 1) - ], 10, _hoisted_5$1); - }), 128)), - !unref(lrcArray).length ? (openBlock(), createElementBlock("div", _hoisted_7$1, _cache[0] || (_cache[0] = [ - createBaseVNode("span", null, "暂无歌词, 请欣赏", -1) - ]))) : createCommentVNode("", true) - ], 512) - ]), - _: 1 - }, 512) - ]) - ]) - ]), - _: 1 - }, 8, ["show", "style"]); - }; - } -}); -const MusicFull = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-03432cea"]]); -const _hoisted_1 = { class: "music-time custom-slider" }; -const _hoisted_2 = { class: "hover-arrow" }; -const _hoisted_3 = { class: "hover-content" }; -const _hoisted_4 = { class: "hover-text" }; -const _hoisted_5 = { class: "music-content" }; -const _hoisted_6 = { class: "music-content-title" }; -const _hoisted_7 = { class: "music-content-name" }; -const _hoisted_8 = { class: "music-buttons" }; -const _hoisted_9 = { class: "audio-button" }; -const _hoisted_10 = { class: "audio-volume custom-slider" }; -const _hoisted_11 = { class: "volume-slider" }; -const _hoisted_12 = { class: "music-play-list" }; -const _hoisted_13 = { class: "music-play-list-content" }; -const _sfc_main = /* @__PURE__ */ defineComponent({ - __name: "PlayBar", - setup(__props) { - const store2 = useStore(); - const playMusic2 = computed(() => store2.state.playMusic); - const play = computed(() => store2.state.play); - const playList = computed(() => store2.state.playList); - const background = ref("#000"); - watch( - () => store2.state.playMusic, - async () => { - background.value = playMusic2.value.backgroundColor; - }, - { immediate: true, deep: true } - ); - const throttledSeek = useThrottleFn((value) => { - if (!sound.value) return; - sound.value.seek(value); - nowTime.value = value; - }, 50); - const timeSlider = computed({ - get: () => nowTime.value, - set: throttledSeek - }); - const formatTooltip = (value) => { - return `${secondToMinute(value)} / ${secondToMinute(allTime.value)}`; - }; - const audioVolume = ref( - localStorage.getItem("volume") ? parseFloat(localStorage.getItem("volume")) : 1 - ); - const getVolumeIcon = computed(() => { - if (audioVolume.value === 0) { - return "ri-volume-mute-line"; - } - if (audioVolume.value <= 0.5) { - return "ri-volume-down-line"; - } - return "ri-volume-up-line"; - }); - const volumeSlider = computed({ - get: () => audioVolume.value * 100, - set: (value) => { - if (!sound.value) return; - localStorage.setItem("volume", (value / 100).toString()); - sound.value.volume(value / 100); - audioVolume.value = value / 100; - } - }); - const mute = () => { - if (volumeSlider.value === 0) { - volumeSlider.value = 30; - } else { - volumeSlider.value = 0; - } - }; - const playMode = computed(() => store2.state.playMode); - const playModeIcon = computed(() => { - switch (playMode.value) { - case 0: - return "ri-repeat-2-line"; - case 1: - return "ri-repeat-one-line"; - case 2: - return "ri-shuffle-line"; - default: - return "ri-repeat-2-line"; - } - }); - const playModeText = computed(() => { - switch (playMode.value) { - case 0: - return "列表循环"; - case 1: - return "单曲循环"; - case 2: - return "随机播放"; - default: - return "列表循环"; - } - }); - const togglePlayMode = () => { - store2.commit("togglePlayMode"); - }; - function handleNext() { - store2.commit("nextPlay"); - } - function handlePrev() { - store2.commit("prevPlay"); - } - const MusicFullRef = ref(null); - const playMusicEvent = async () => { - if (play.value) { - if (sound.value) { - sound.value.pause(); - } - store2.commit("setPlayMusic", false); - } else { - if (sound.value) { - sound.value.play(); - } - store2.commit("setPlayMusic", true); - } - }; - const musicFullVisible = ref(false); - const setMusicFull = () => { - musicFullVisible.value = !musicFullVisible.value; - }; - const palyListRef = useTemplateRef("palyListRef"); - const scrollToPlayList = (val) => { - if (!val) return; - setTimeout(() => { - palyListRef.value?.scrollTo({ top: store2.state.playListIndex * 62 }); - }, 50); - }; - const isFavorite = computed(() => { - return store2.state.favoriteList.includes(playMusic2.value.id); - }); - const toggleFavorite = async (e) => { - e.stopPropagation(); - if (isFavorite.value) { - store2.commit("removeFromFavorite", playMusic2.value.id); - } else { - store2.commit("addToFavorite", playMusic2.value.id); - } - }; - const openLyricWindow = () => { - openLyric(); - }; - return (_ctx, _cache) => { - const _component_n_slider = __unplugin_components_0; - const _component_n_image = NImage; - const _component_n_ellipsis = __unplugin_components_2$1; - const _component_n_tooltip = __unplugin_components_3; - const _component_n_virtual_list = __unplugin_components_4; - const _component_n_popover = __unplugin_components_5; - return openBlock(), createElementBlock(Fragment, null, [ - createVNode(MusicFull, { - ref_key: "MusicFullRef", - ref: MusicFullRef, - "music-full": unref(musicFullVisible), - "onUpdate:musicFull": _cache[0] || (_cache[0] = ($event) => isRef(musicFullVisible) ? musicFullVisible.value = $event : null), - background: unref(background) - }, null, 8, ["music-full", "background"]), - createBaseVNode("div", { - class: normalizeClass([ - "music-play-bar", - unref(setAnimationClass)("animate__bounceInUp") + " " + (unref(musicFullVisible) ? "play-bar-opcity" : "") - ]), - style: normalizeStyle({ - color: unref(musicFullVisible) ? unref(textColors).theme === "dark" ? "#000000" : "#ffffff" : unref(store2).state.theme === "dark" ? "#ffffff" : "#000000" - }) - }, [ - createBaseVNode("div", _hoisted_1, [ - createVNode(_component_n_slider, { - value: unref(timeSlider), - "onUpdate:value": _cache[1] || (_cache[1] = ($event) => isRef(timeSlider) ? timeSlider.value = $event : null), - step: 1, - max: unref(allTime), - min: 0, - "format-tooltip": formatTooltip - }, null, 8, ["value", "max"]) - ]), - createBaseVNode("div", { - class: "play-bar-img-wrapper", - onClick: setMusicFull - }, [ - createVNode(_component_n_image, { - src: unref(getImgUrl)(unref(playMusic2)?.picUrl, "500y500"), - class: "play-bar-img", - lazy: "", - "preview-disabled": "" - }, null, 8, ["src"]), - createBaseVNode("div", _hoisted_2, [ - createBaseVNode("div", _hoisted_3, [ - createBaseVNode("i", { - class: normalizeClass(["text-3xl", unref(musicFullVisible) ? "ri-arrow-down-s-line" : "ri-arrow-up-s-line"]) - }, null, 2), - createBaseVNode("span", _hoisted_4, toDisplayString(unref(musicFullVisible) ? "收起" : "展开") + "歌词", 1) - ]) - ]) - ]), - createBaseVNode("div", _hoisted_5, [ - createBaseVNode("div", _hoisted_6, [ - createVNode(_component_n_ellipsis, { - class: "text-ellipsis", - "line-clamp": "1" - }, { - default: withCtx(() => [ - createTextVNode(toDisplayString(unref(playMusic2).name), 1) - ]), - _: 1 - }) - ]), - createBaseVNode("div", _hoisted_7, [ - createVNode(_component_n_ellipsis, { - class: "text-ellipsis", - "line-clamp": "1" - }, { - default: withCtx(() => [ - (openBlock(true), createElementBlock(Fragment, null, renderList(unref(playMusic2).ar || unref(playMusic2).song.artists, (artists, artistsindex) => { - return openBlock(), createElementBlock("span", { key: artistsindex }, toDisplayString(artists.name) + toDisplayString(artistsindex < (unref(playMusic2).ar || unref(playMusic2).song.artists).length - 1 ? " / " : ""), 1); - }), 128)) - ]), - _: 1 - }) - ]) - ]), - createBaseVNode("div", _hoisted_8, [ - createBaseVNode("div", { - class: "music-buttons-prev", - onClick: handlePrev - }, _cache[3] || (_cache[3] = [ - createBaseVNode("i", { class: "iconfont icon-prev" }, null, -1) - ])), - createBaseVNode("div", { - class: "music-buttons-play", - onClick: playMusicEvent - }, [ - createBaseVNode("i", { - class: normalizeClass(["iconfont icon", unref(play) ? "icon-stop" : "icon-play"]) - }, null, 2) - ]), - createBaseVNode("div", { - class: "music-buttons-next", - onClick: handleNext - }, _cache[4] || (_cache[4] = [ - createBaseVNode("i", { class: "iconfont icon-next" }, null, -1) - ])) - ]), - createBaseVNode("div", _hoisted_9, [ - createBaseVNode("div", _hoisted_10, [ - createBaseVNode("div", { - class: "volume-icon", - onClick: mute - }, [ - createBaseVNode("i", { - class: normalizeClass(["iconfont", unref(getVolumeIcon)]) - }, null, 2) - ]), - createBaseVNode("div", _hoisted_11, [ - createVNode(_component_n_slider, { - value: unref(volumeSlider), - "onUpdate:value": _cache[2] || (_cache[2] = ($event) => isRef(volumeSlider) ? volumeSlider.value = $event : null), - step: 0.01, - tooltip: false, - vertical: "" - }, null, 8, ["value"]) - ]) - ]), - !unref(isMobile) ? (openBlock(), createBlock(_component_n_tooltip, { - key: 0, - trigger: "hover", - "z-index": 9999999 - }, { - trigger: withCtx(() => [ - createBaseVNode("i", { - class: normalizeClass(["iconfont", unref(playModeIcon)]), - onClick: togglePlayMode - }, null, 2) - ]), - default: withCtx(() => [ - createTextVNode(" " + toDisplayString(unref(playModeText)), 1) - ]), - _: 1 - })) : createCommentVNode("", true), - !unref(isMobile) ? (openBlock(), createBlock(_component_n_tooltip, { - key: 1, - trigger: "hover", - "z-index": 9999999 - }, { - trigger: withCtx(() => [ - createBaseVNode("i", { - class: normalizeClass(["iconfont icon-likefill", { "like-active": unref(isFavorite) }]), - onClick: toggleFavorite - }, null, 2) - ]), - default: withCtx(() => [ - _cache[5] || (_cache[5] = createTextVNode(" 喜欢 ")) - ]), - _: 1 - })) : createCommentVNode("", true), - unref(isElectron) ? (openBlock(), createBlock(_component_n_tooltip, { - key: 2, - class: "music-lyric", - trigger: "hover", - "z-index": 9999999 - }, { - trigger: withCtx(() => [ - createBaseVNode("i", { - class: normalizeClass(["iconfont ri-netease-cloud-music-line", { "text-green-500": unref(isLyricWindowOpen) }]), - onClick: openLyricWindow - }, null, 2) - ]), - default: withCtx(() => [ - _cache[6] || (_cache[6] = createTextVNode(" 歌词 ")) - ]), - _: 1 - })) : createCommentVNode("", true), - createVNode(_component_n_popover, { - trigger: "click", - "z-index": 99999999, - "content-class": "music-play", - raw: "", - "show-arrow": false, - delay: 200, - "arrow-wrapper-style": " border-radius:1.5rem", - onUpdateShow: scrollToPlayList - }, { - trigger: withCtx(() => [ - createVNode(_component_n_tooltip, { - trigger: "manual", - "z-index": 9999999 - }, { - trigger: withCtx(() => _cache[7] || (_cache[7] = [ - createBaseVNode("i", { class: "iconfont icon-list" }, null, -1) - ])), - default: withCtx(() => [ - _cache[8] || (_cache[8] = createTextVNode(" 播放列表 ")) - ]), - _: 1 - }) - ]), - default: withCtx(() => [ - createBaseVNode("div", _hoisted_12, [ - _cache[9] || (_cache[9] = createBaseVNode("div", { class: "music-play-list-back" }, null, -1)), - createVNode(_component_n_virtual_list, { - ref_key: "palyListRef", - ref: palyListRef, - "item-size": 62, - "item-resizable": "", - items: unref(playList) - }, { - default: withCtx(({ item }) => [ - createBaseVNode("div", _hoisted_13, [ - (openBlock(), createBlock(SongItem, { - key: item.id, - item, - mini: "" - }, null, 8, ["item"])) - ]) - ]), - _: 1 - }, 8, ["items"]) - ]) - ]), - _: 1 - }) - ]) - ], 6) - ], 64); - }; - } -}); -const PlayBar = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-5d6cadda"]]); -export { - PlayBar as default -}; diff --git a/out/renderer/assets/PlayBar-BNzUvTGp.js.gz b/out/renderer/assets/PlayBar-BNzUvTGp.js.gz deleted file mode 100644 index a4773f8..0000000 Binary files a/out/renderer/assets/PlayBar-BNzUvTGp.js.gz and /dev/null differ diff --git a/out/renderer/assets/PlayBar-Ct36doNR.css b/out/renderer/assets/PlayBar-Ct36doNR.css deleted file mode 100644 index 59acd4d..0000000 --- a/out/renderer/assets/PlayBar-Ct36doNR.css +++ /dev/null @@ -1,502 +0,0 @@ -@keyframes round-03432cea { -0% { - transform: rotate(0deg); -} -100% { - transform: rotate(360deg); -} -} -.drawer-back[data-v-03432cea] { - position: absolute; - background-size: cover; - background-position: center; - z-index: -1; - width: 200%; - height: 200%; - top: -50%; - left: -50%; -} -.drawer-back.paused[data-v-03432cea] { - animation-play-state: paused; -} -#drawer-target[data-v-03432cea] { - position: absolute; - top: 0px; - left: 0px; - display: flex; - height: 100%; - width: 100%; - align-items: center; - justify-content: center; - overflow: hidden; - border-radius: 0.25rem; - padding-left: 6rem; - padding-right: 6rem; - padding-bottom: 2rem; - animation-duration: 300ms; -} -#drawer-target .music-img[data-v-03432cea] { - margin-right: 4rem; - display: flex; - flex: 1 1 0%; - flex-direction: column; - justify-content: center; - max-width: 360px; - max-height: 360px; -} -#drawer-target .music-img .img[data-v-03432cea] { - height: 100%; - width: 100%; - border-radius: 0.75rem; - --tw-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25); - --tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color); - box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); -} -#drawer-target .music-content[data-v-03432cea] { - position: relative; - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; -} -#drawer-target .music-content-name[data-v-03432cea] { - padding-bottom: 0.25rem; - padding-top: 1rem; - font-size: 1.25rem; - line-height: 1.75rem; - font-weight: 700; -} -#drawer-target .music-content-singer[data-v-03432cea] { - font-size: 1rem; - line-height: 1.5rem; -} -#drawer-target .music-content-time[data-v-03432cea] { - display: none; - display: flex; - align-items: center; - justify-content: center; -} -#drawer-target .music-lrc[data-v-03432cea] { - background-color: inherit; - width: 500px; - height: 550px; - -webkit-mask-image: linear-gradient(to bottom, transparent 0%, black 10%, black 90%, transparent 100%); - mask-image: linear-gradient(to bottom, transparent 0%, black 10%, black 90%, transparent 100%); -} -#drawer-target .music-lrc-text[data-v-03432cea] { - cursor: pointer; - padding-left: 0.5rem; - padding-right: 0.5rem; - padding-top: 1rem; - padding-bottom: 1rem; - font-size: 1.5rem; - line-height: 2rem; - font-weight: 700; - transition: all 0.3s ease; - background-color: transparent; -} -#drawer-target .music-lrc-text span[data-v-03432cea] { - background-clip: text !important; - -webkit-background-clip: text !important; - padding-right: 30px; -} -#drawer-target .music-lrc-text-tr[data-v-03432cea] { - font-weight: 400; - opacity: 0.7; - color: var(--text-color-primary); -} -#drawer-target .music-lrc .hover-text[data-v-03432cea]:hover { - border-radius: 0.75rem; - font-weight: 700; - opacity: 1; - background-color: var(--hover-bg-color); -} -#drawer-target .music-lrc .hover-text:hover span[data-v-03432cea] { - color: var(--text-color-active) !important; -} -.mobile #drawer-target[data-v-03432cea] { - flex-direction: column; - justify-content: flex-start; - padding: 1rem; - padding-top: 2rem; -} -.mobile #drawer-target .music-img[data-v-03432cea] { - display: none; -} -.mobile #drawer-target .music-lrc[data-v-03432cea] { - height: calc(100vh - 260px) !important; - width: 100vw; -} -.mobile #drawer-target .music-lrc span[data-v-03432cea] { - padding-right: 0px !important; -} -.mobile #drawer-target .music-lrc-text[data-v-03432cea] { - text-align: center; - font-size: 1.25rem; - line-height: 1.75rem; -} -.music-drawer[data-v-03432cea] { - transition: none; -}.text-ellipsis[data-v-5d6cadda] { - width: 100%; -} -.music-play-bar[data-v-5d6cadda] { - position: absolute; - bottom: 0px; - left: 0px; - box-sizing: border-box; - display: flex; - height: 5rem; - width: 100%; - align-items: center; - padding-left: 1.5rem; - padding-right: 1.5rem; - padding-bottom: 0.5rem; - padding-top: 0.75rem; - --tw-bg-opacity: 1; - background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1)); - --tw-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25); - --tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color); - box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); - --tw-shadow-color: #d1d5db; - --tw-shadow: var(--tw-shadow-colored); -} -.music-play-bar[data-v-5d6cadda]:is(.dark *) { - --tw-bg-opacity: 1; - background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1)); -} -.music-play-bar[data-v-5d6cadda] { - z-index: 9999; - animation-duration: 0.5s !important; -} -.music-play-bar .music-content[data-v-5d6cadda] { - width: 160px; - margin-left: 1rem; -} -.music-play-bar .music-content-title[data-v-5d6cadda] { - font-size: 1rem; - line-height: 1.5rem; -} -.music-play-bar .music-content-name[data-v-5d6cadda] { - margin-top: 0.25rem; - font-size: 0.75rem; - line-height: 1rem; - opacity: 0.8; -} -.play-bar-opcity[data-v-5d6cadda] { - background-color: transparent !important; - box-shadow: 0 0 20px 5px rgba(0, 0, 0, 0.1137254902); -} -.play-bar-img[data-v-5d6cadda] { - height: 3.5rem; - width: 3.5rem; - border-radius: 1rem; -} -.music-buttons[data-v-5d6cadda] { - margin-left: 1.5rem; - margin-right: 1.5rem; - flex: 1 1 0%; - justify-content: center; - display: flex; - align-items: center; -} -.music-buttons .iconfont[data-v-5d6cadda] { - font-size: 1.5rem; - line-height: 2rem; - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter; - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter; - transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - transition-duration: 150ms; -} -.music-buttons .iconfont[data-v-5d6cadda]:hover { - --tw-text-opacity: 1; - color: rgb(34 197 94 / var(--tw-text-opacity, 1)); -} -.music-buttons .icon[data-v-5d6cadda] { - font-size: 1.875rem; - line-height: 2.25rem; -} -.music-buttons .icon[data-v-5d6cadda]:hover { - --tw-text-opacity: 1; - color: rgb(34 197 94 / var(--tw-text-opacity, 1)); -} -.music-buttons > div[data-v-5d6cadda] { - cursor: pointer; -} -.music-buttons-play[data-v-5d6cadda] { - margin-left: 1rem; - margin-right: 1rem; - display: flex; - height: 3rem; - width: 5rem; - align-items: center; - justify-content: center; - border-radius: 9999px; - --tw-text-opacity: 1; - color: rgb(107 114 128 / var(--tw-text-opacity, 1)); - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter; - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter; - transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - transition-duration: 150ms; - background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1)); - --tw-bg-opacity: 0.6; -} -.music-buttons-play[data-v-5d6cadda]:hover { - --tw-bg-opacity: 1; - background-color: rgb(229 231 235 / var(--tw-bg-opacity, 1)); -} -.audio-volume[data-v-5d6cadda] { - position: relative; - display: flex; - align-items: center; -} -.audio-volume:hover .volume-slider[data-v-5d6cadda] { - visibility: visible; - opacity: 1; -} -.audio-volume .volume-icon[data-v-5d6cadda] { - cursor: pointer; -} -.audio-volume .iconfont[data-v-5d6cadda] { - font-size: 1.5rem; - line-height: 2rem; - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter; - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter; - transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - transition-duration: 150ms; -} -.audio-volume .iconfont[data-v-5d6cadda]:hover { - --tw-text-opacity: 1; - color: rgb(34 197 94 / var(--tw-text-opacity, 1)); -} -.audio-volume .volume-slider[data-v-5d6cadda] { - visibility: hidden; - position: absolute; - bottom: 30px; - left: 50%; - height: 180px; - --tw-translate-x: -50%; - transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); - border-radius: 0.75rem; - padding-left: 0.5rem; - padding-right: 0.5rem; - padding-top: 1rem; - padding-bottom: 1rem; - opacity: 0; - transition-property: all; - transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - transition-duration: 300ms; - --tw-bg-opacity: 1; - background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1)); -} -.audio-volume .volume-slider[data-v-5d6cadda]:is(.dark *) { - --tw-bg-opacity: 1; - background-color: rgb(31 41 55 / var(--tw-bg-opacity, 1)); -} -.audio-volume .volume-slider[data-v-5d6cadda] { - border-width: 1px; - --tw-border-opacity: 1; - border-color: rgb(229 231 235 / var(--tw-border-opacity, 1)); -} -.audio-volume .volume-slider[data-v-5d6cadda]:is(.dark *) { - --tw-border-opacity: 1; - border-color: rgb(55 65 81 / var(--tw-border-opacity, 1)); -} -.audio-button[data-v-5d6cadda] { - margin-left: 1rem; - margin-right: 1rem; - display: flex; - align-items: center; -} -.audio-button .iconfont[data-v-5d6cadda] { - margin: 1rem; - cursor: pointer; - font-size: 1.5rem; - line-height: 2rem; - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter; - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter; - transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - transition-duration: 150ms; -} -.audio-button .iconfont[data-v-5d6cadda]:hover { - --tw-text-opacity: 1; - color: rgb(34 197 94 / var(--tw-text-opacity, 1)); -} -.music-play-list[data-v-5d6cadda] { - height: 50vh; - width: 300px; - position: relative; - overflow: hidden; - border-radius: 1.5rem; - padding-top: 0.5rem; - padding-bottom: 0.5rem; -} -.music-play-list-back[data-v-5d6cadda] { - -webkit-backdrop-filter: blur(20px); - backdrop-filter: blur(20px); - position: absolute; - top: 0px; - left: 0px; - height: 100%; - width: 100%; - background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1)); - --tw-bg-opacity: 0.75; -} -.music-play-list-back[data-v-5d6cadda]:is(.dark *) { - --tw-bg-opacity: 1; - background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1)); -} -.music-play-list-content[data-v-5d6cadda] { - margin-left: 0.5rem; - margin-right: 0.5rem; -} -.mobile .music-play-bar[data-v-5d6cadda] { - padding-left: 1rem; - padding-right: 1rem; - bottom: 70px; -} -.mobile .music-time[data-v-5d6cadda] { - display: none; -} -.mobile .ri-netease-cloud-music-line[data-v-5d6cadda] { - display: none; -} -.mobile .audio-volume[data-v-5d6cadda] { - display: none; -} -.mobile .audio-button[data-v-5d6cadda] { - margin-left: 0px; - margin-right: 0px; -} -.mobile .music-buttons[data-v-5d6cadda] { - margin: 0px; -} -.mobile .music-buttons-prev[data-v-5d6cadda], .mobile .music-buttons-next[data-v-5d6cadda] { - display: none; -} -.mobile .music-buttons-play[data-v-5d6cadda] { - margin: 0px; -} -.mobile .music-content[data-v-5d6cadda] { - flex: 1; -} -.custom-slider[data-v-5d6cadda] .n-slider { - --n-rail-height: 4px; - --n-rail-color: #e5e7eb; - --n-rail-color-dark: #374151; - --n-fill-color: #22c55e; - --n-handle-size: 12px; - --n-handle-color: #22c55e; -} -.custom-slider[data-v-5d6cadda] .n-slider.n-slider--vertical { - height: 100%; -} -.custom-slider[data-v-5d6cadda] .n-slider.n-slider--vertical .n-slider-rail { - width: 4px; -} -.custom-slider[data-v-5d6cadda] .n-slider.n-slider--vertical:hover .n-slider-rail { - width: 6px; -} -.custom-slider[data-v-5d6cadda] .n-slider.n-slider--vertical:hover .n-slider-handle { - width: 14px; - height: 14px; -} -.custom-slider[data-v-5d6cadda] .n-slider .n-slider-rail { - overflow: hidden; - transition-property: all; - transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - transition-duration: 200ms; - background-color: rgb(107 114 128 / var(--tw-bg-opacity, 1)) !important; - --tw-bg-opacity: 0.1 !important; -} -.custom-slider[data-v-5d6cadda] .n-slider .n-slider-rail:is(.dark *) { - --tw-bg-opacity: 1 !important; - background-color: rgb(61 61 61 / var(--tw-bg-opacity, 1)) !important; -} -.custom-slider[data-v-5d6cadda] .n-slider .n-slider-handle { - transition-property: all; - transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - transition-duration: 200ms; - opacity: 0; -} -.custom-slider[data-v-5d6cadda] .n-slider:hover .n-slider-handle { - opacity: 1; -} -.play-bar-img-wrapper[data-v-5d6cadda] { - position: relative; - height: 3.5rem; - width: 3.5rem; - cursor: pointer; -} -.play-bar-img-wrapper .hover-arrow[data-v-5d6cadda] { - position: absolute; - inset: 0px; - display: flex; - align-items: center; - justify-content: center; - border-radius: 1rem; - opacity: 0; - transition-property: opacity; - transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - transition-duration: 300ms; - background: rgba(0, 0, 0, 0.5); -} -.play-bar-img-wrapper .hover-arrow .hover-content[data-v-5d6cadda] { - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; -} -.play-bar-img-wrapper .hover-arrow .hover-content i[data-v-5d6cadda] { - margin-bottom: 0.125rem; - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity, 1)); -} -.play-bar-img-wrapper .hover-arrow .hover-content .hover-text[data-v-5d6cadda] { - --tw-scale-x: .9; - --tw-scale-y: .9; - transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); - font-size: 0.75rem; - line-height: 1rem; - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity, 1)); -} -.play-bar-img-wrapper:hover .hover-arrow[data-v-5d6cadda] { - opacity: 1; -} -.tooltip-content[data-v-5d6cadda] { - padding-top: 0.25rem; - padding-bottom: 0.25rem; - padding-left: 0.5rem; - padding-right: 0.5rem; - font-size: 0.875rem; - line-height: 1.25rem; -} -.play-bar-img[data-v-5d6cadda] { - height: 3.5rem; - width: 3.5rem; - border-radius: 1rem; -} -.like-active[data-v-5d6cadda] { - --tw-text-opacity: 1 !important; - color: rgb(239 68 68 / var(--tw-text-opacity, 1)) !important; -} -.like-active[data-v-5d6cadda]:hover { - --tw-text-opacity: 1 !important; - color: rgb(220 38 38 / var(--tw-text-opacity, 1)) !important; -} -.icon-loop[data-v-5d6cadda], -.icon-single-loop[data-v-5d6cadda] { - font-size: 1.5rem; -} -.music-time .n-slider[data-v-5d6cadda] { - position: absolute; - top: 0; - left: 0; - padding: 0; - border-radius: 0; -} \ No newline at end of file diff --git a/out/renderer/assets/PlayBar-Ct36doNR.css.gz b/out/renderer/assets/PlayBar-Ct36doNR.css.gz deleted file mode 100644 index 1c18e39..0000000 Binary files a/out/renderer/assets/PlayBar-Ct36doNR.css.gz and /dev/null differ diff --git a/out/renderer/assets/SearchBar-CIYxJjXH.css b/out/renderer/assets/SearchBar-CIYxJjXH.css deleted file mode 100644 index e2a2a46..0000000 --- a/out/renderer/assets/SearchBar-CIYxJjXH.css +++ /dev/null @@ -1,219 +0,0 @@ -.user-box[data-v-064c45e9] { - margin-left: 1rem; - display: flex; - align-items: center; - justify-content: center; - border-radius: 9999px; - font-size: 1.125rem; - line-height: 1.75rem; - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke; - transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - transition-duration: 200ms; - border-width: 1px; - --tw-border-opacity: 1; - border-color: rgb(229 231 235 / var(--tw-border-opacity, 1)); -}.user-box[data-v-064c45e9]:hover { - --tw-border-opacity: 1; - border-color: rgb(156 163 175 / var(--tw-border-opacity, 1)); -}.user-box[data-v-064c45e9]:is(.dark *) { - --tw-border-opacity: 1; - border-color: rgb(75 85 99 / var(--tw-border-opacity, 1)); -}.user-box[data-v-064c45e9]:hover:is(.dark *) { - --tw-border-opacity: 1; - border-color: rgb(156 163 175 / var(--tw-border-opacity, 1)); -}.user-box[data-v-064c45e9] { - --tw-bg-opacity: 1; - background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1)); -}.user-box[data-v-064c45e9]:is(.dark *) { - --tw-bg-opacity: 1; - background-color: rgb(31 41 55 / var(--tw-bg-opacity, 1)); -} -.search-box[data-v-064c45e9] { - padding-bottom: 1rem; - padding-right: 1rem; -} -.search-box-input[data-v-064c45e9] { - position: relative; -} -.search-box-input[data-v-064c45e9] .n-input { - --tw-bg-opacity: 1; - background-color: rgb(249 250 251 / var(--tw-bg-opacity, 1)); -} -.search-box-input[data-v-064c45e9] .n-input:is(.dark *) { - --tw-bg-opacity: 1; - background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1)); -} -.search-box-input[data-v-064c45e9] .n-input .n-input__input-el { - --tw-text-opacity: 1; - color: rgb(17 24 39 / var(--tw-text-opacity, 1)); -} -.search-box-input[data-v-064c45e9] .n-input .n-input__input-el:is(.dark *) { - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity, 1)); -} -.search-box-input[data-v-064c45e9] .n-input .n-input__prefix { - --tw-text-opacity: 1; - color: rgb(107 114 128 / var(--tw-text-opacity, 1)); -} -.search-box-input[data-v-064c45e9] .n-input .n-input__prefix:is(.dark *) { - --tw-text-opacity: 1; - color: rgb(156 163 175 / var(--tw-text-opacity, 1)); -} -.mobile .search-box[data-v-064c45e9] { - padding-left: 1rem; -} -.github[data-v-064c45e9] { - margin-left: 1rem; - display: flex; - height: 100%; - cursor: pointer; - align-items: center; - justify-content: center; - border-radius: 9999px; - padding-left: 0.5rem; - padding-right: 0.5rem; - font-size: 1.25rem; - line-height: 1.75rem; - --tw-text-opacity: 1; - color: rgb(17 24 39 / var(--tw-text-opacity, 1)); -} -.github[data-v-064c45e9]:hover { - --tw-text-opacity: 1; - color: rgb(75 85 99 / var(--tw-text-opacity, 1)); -} -.github[data-v-064c45e9]:is(.dark *) { - --tw-text-opacity: 1; - color: rgb(243 244 246 / var(--tw-text-opacity, 1)); -} -.github[data-v-064c45e9]:hover:is(.dark *) { - --tw-text-opacity: 1; - color: rgb(156 163 175 / var(--tw-text-opacity, 1)); -} -.github[data-v-064c45e9] { - border-width: 1px; - --tw-border-opacity: 1; - border-color: rgb(229 231 235 / var(--tw-border-opacity, 1)); - --tw-bg-opacity: 1; - background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1)); -} -.github[data-v-064c45e9]:is(.dark *) { - --tw-border-opacity: 1; - border-color: rgb(75 85 99 / var(--tw-border-opacity, 1)); - --tw-bg-opacity: 1; - background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1)); -} -.user-popover[data-v-064c45e9] { - min-width: 280px; - overflow: hidden; - border-radius: 0.75rem; - padding: 0px; - --tw-bg-opacity: 1; - background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1)); -} -.user-popover[data-v-064c45e9]:is(.dark *) { - --tw-bg-opacity: 1; - background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1)); -} -.user-popover[data-v-064c45e9] { - box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); -} -.user-popover .user-header[data-v-064c45e9] { - display: flex; - cursor: pointer; - align-items: center; - gap: 0.5rem; - padding: 0.75rem; - border-bottom-width: 1px; - --tw-border-opacity: 1; - border-color: rgb(243 244 246 / var(--tw-border-opacity, 1)); -} -.user-popover .user-header[data-v-064c45e9]:hover { - --tw-bg-opacity: 1; - background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1)); -} -.user-popover .user-header[data-v-064c45e9]:is(.dark *) { - --tw-border-opacity: 1; - border-color: rgb(55 65 81 / var(--tw-border-opacity, 1)); -} -.user-popover .user-header[data-v-064c45e9]:hover:is(.dark *) { - --tw-bg-opacity: 1; - background-color: rgb(55 65 81 / var(--tw-bg-opacity, 1)); -} -.user-popover .user-header .username[data-v-064c45e9] { - font-size: 0.875rem; - line-height: 1.25rem; - font-weight: 500; - --tw-text-opacity: 1; - color: rgb(17 24 39 / var(--tw-text-opacity, 1)); -} -.user-popover .user-header .username[data-v-064c45e9]:is(.dark *) { - --tw-text-opacity: 1; - color: rgb(229 231 235 / var(--tw-text-opacity, 1)); -} -.user-popover .menu-items[data-v-064c45e9] { - padding-top: 0.25rem; - padding-bottom: 0.25rem; -} -.user-popover .menu-items .menu-item[data-v-064c45e9] { - display: flex; - cursor: pointer; - align-items: center; - padding-left: 0.75rem; - padding-right: 0.75rem; - padding-top: 0.5rem; - padding-bottom: 0.5rem; - font-size: 0.875rem; - line-height: 1.25rem; - --tw-text-opacity: 1; - color: rgb(55 65 81 / var(--tw-text-opacity, 1)); -} -.user-popover .menu-items .menu-item[data-v-064c45e9]:is(.dark *) { - --tw-text-opacity: 1; - color: rgb(209 213 219 / var(--tw-text-opacity, 1)); -} -.user-popover .menu-items .menu-item[data-v-064c45e9] { - transition: background-color 0.2s; -} -.user-popover .menu-items .menu-item[data-v-064c45e9]:hover { - --tw-bg-opacity: 1; - background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1)); -} -.user-popover .menu-items .menu-item[data-v-064c45e9]:hover:is(.dark *) { - --tw-bg-opacity: 1; - background-color: rgb(55 65 81 / var(--tw-bg-opacity, 1)); -} -.user-popover .menu-items .menu-item i[data-v-064c45e9] { - margin-right: 0.25rem; - font-size: 1.125rem; - line-height: 1.75rem; - --tw-text-opacity: 1; - color: rgb(107 114 128 / var(--tw-text-opacity, 1)); -} -.user-popover .menu-items .menu-item i[data-v-064c45e9]:is(.dark *) { - --tw-text-opacity: 1; - color: rgb(156 163 175 / var(--tw-text-opacity, 1)); -} -.user-popover .menu-items .menu-item .version-info[data-v-064c45e9] { - margin-left: auto; - display: flex; - align-items: center; -} -.user-popover .menu-items .menu-item .version-info .version-number[data-v-064c45e9] { - border-radius: 0.25rem; - padding-left: 0.5rem; - padding-right: 0.5rem; - padding-top: 0.125rem; - padding-bottom: 0.125rem; - font-size: 0.75rem; - line-height: 1rem; - --tw-bg-opacity: 1; - background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1)); - --tw-text-opacity: 1; - color: rgb(75 85 99 / var(--tw-text-opacity, 1)); -} -.user-popover .menu-items .menu-item .version-info .version-number[data-v-064c45e9]:is(.dark *) { - --tw-bg-opacity: 1; - background-color: rgb(55 65 81 / var(--tw-bg-opacity, 1)); - --tw-text-opacity: 1; - color: rgb(209 213 219 / var(--tw-text-opacity, 1)); -} \ No newline at end of file diff --git a/out/renderer/assets/SearchBar-CIYxJjXH.css.gz b/out/renderer/assets/SearchBar-CIYxJjXH.css.gz deleted file mode 100644 index 4992291..0000000 Binary files a/out/renderer/assets/SearchBar-CIYxJjXH.css.gz and /dev/null differ diff --git a/out/renderer/assets/SearchBar-Cx7zzS9t.js b/out/renderer/assets/SearchBar-Cx7zzS9t.js deleted file mode 100644 index 840cbd7..0000000 --- a/out/renderer/assets/SearchBar-Cx7zzS9t.js +++ /dev/null @@ -1,2263 +0,0 @@ -import { b8 as reactive, b9 as hasInstance, ba as onBeforeMount, a as onBeforeUnmount, aS as off, bb as readonly, J as on, E as watch, r as ref, d as defineComponent, l as h, aL as createInjectionKey, as as inject, bc as render, aY as popoverBodyInjectionKey, G as computed, $ as provide, D as useMemo, ak as Transition, ax as mergeProps, bd as warn, a3 as Fragment, aZ as modalBodyInjectionKey, aX as drawerBodyInjectionKey, az as XScrollbar, p as cB, aM as fadeInScaleUpTransition, m as c, V as cNotM, W as cM, Y as cE, C as useMergedState, A as toRef, x as useConfig, q as useTheme, be as dropdownLight, L as call, ao as createKey, ap as useThemeClass, bf as keep, j as openBlock, c as createElementBlock, e as createVNode, f as withCtx, bg as renderSlot, u as unref, B as Button, k as createTextVNode, b as createBaseVNode, h as useRouter, g as useStore, a8 as watchEffect, o as onMounted, Q as config, P as checkUpdate, t as toDisplayString, bh as withKeys, O as createBlock, a7 as getImgUrl, T as createCommentVNode, n as normalizeClass, _ as _export_sfc } from "./index-DKaFsuse.js"; -import { f as getSearchKeyword } from "./home-BXGE9AqN.js"; -import { u as useMessage, b as getUserDetail, d as logout } from "./login-BsPxQYi6.js"; -import { r as renderArrow, a as __unplugin_components_5, p as popoverBaseProps, N as NImage } from "./Image-DXClIklC.js"; -import { B as Binder, V as VTarget, e as VFollower } from "./use-locale-DLWAOXez.js"; -import { N as NIcon } from "./Icon-DucaliTK.js"; -import { _ as __unplugin_components_1, a as __unplugin_components_3 } from "./Switch-D3Z_Vg3u.js"; -import { _ as __unplugin_components_2 } from "./Avatar-rQ2og-6c.js"; -import { _ as __unplugin_components_4 } from "./Tag-C0oC92WF.js"; -function happensIn(e, dataSetPropName) { - let { target } = e; - while (target) { - if (target.dataset) { - if (target.dataset[dataSetPropName] !== void 0) - return true; - } - target = target.parentElement; - } - return false; -} -function useKeyboard(options = {}, enabledRef) { - const state = reactive({ - ctrl: false, - command: false, - win: false, - shift: false, - tab: false - }); - const { keydown, keyup } = options; - const keydownHandler = (e) => { - switch (e.key) { - case "Control": - state.ctrl = true; - break; - case "Meta": - state.command = true; - state.win = true; - break; - case "Shift": - state.shift = true; - break; - case "Tab": - state.tab = true; - break; - } - if (keydown !== void 0) { - Object.keys(keydown).forEach((key) => { - if (key !== e.key) - return; - const handler = keydown[key]; - if (typeof handler === "function") { - handler(e); - } else { - const { stop = false, prevent = false } = handler; - if (stop) - e.stopPropagation(); - if (prevent) - e.preventDefault(); - handler.handler(e); - } - }); - } - }; - const keyupHandler = (e) => { - switch (e.key) { - case "Control": - state.ctrl = false; - break; - case "Meta": - state.command = false; - state.win = false; - break; - case "Shift": - state.shift = false; - break; - case "Tab": - state.tab = false; - break; - } - if (keyup !== void 0) { - Object.keys(keyup).forEach((key) => { - if (key !== e.key) - return; - const handler = keyup[key]; - if (typeof handler === "function") { - handler(e); - } else { - const { stop = false, prevent = false } = handler; - if (stop) - e.stopPropagation(); - if (prevent) - e.preventDefault(); - handler.handler(e); - } - }); - } - }; - const setup = () => { - if (enabledRef === void 0 || enabledRef.value) { - on("keydown", document, keydownHandler); - on("keyup", document, keyupHandler); - } - if (enabledRef !== void 0) { - watch(enabledRef, (value) => { - if (value) { - on("keydown", document, keydownHandler); - on("keyup", document, keyupHandler); - } else { - off("keydown", document, keydownHandler); - off("keyup", document, keyupHandler); - } - }); - } - }; - if (hasInstance()) { - onBeforeMount(setup); - onBeforeUnmount(() => { - if (enabledRef === void 0 || enabledRef.value) { - off("keydown", document, keydownHandler); - off("keyup", document, keyupHandler); - } - }); - } else { - setup(); - } - return readonly(state); -} -function useDeferredTrue(valueRef, delay, shouldDelayRef) { - const delayedRef = ref(valueRef.value); - let timerId = null; - watch(valueRef, (value) => { - if (timerId !== null) window.clearTimeout(timerId); - if (value === true) { - if (shouldDelayRef && !shouldDelayRef.value) { - delayedRef.value = true; - } else { - timerId = window.setTimeout(() => { - delayedRef.value = true; - }, delay); - } - } else { - delayedRef.value = false; - } - }); - return delayedRef; -} -function createRefSetter(ref2) { - return (inst) => { - if (inst) { - ref2.value = inst.$el; - } else { - ref2.value = null; - } - }; -} -const ChevronRightIcon = defineComponent({ - name: "ChevronRight", - render() { - return h("svg", { - viewBox: "0 0 16 16", - fill: "none", - xmlns: "http://www.w3.org/2000/svg" - }, h("path", { - d: "M5.64645 3.14645C5.45118 3.34171 5.45118 3.65829 5.64645 3.85355L9.79289 8L5.64645 12.1464C5.45118 12.3417 5.45118 12.6583 5.64645 12.8536C5.84171 13.0488 6.15829 13.0488 6.35355 12.8536L10.8536 8.35355C11.0488 8.15829 11.0488 7.84171 10.8536 7.64645L6.35355 3.14645C6.15829 2.95118 5.84171 2.95118 5.64645 3.14645Z", - fill: "currentColor" - })); - } -}); -function toArray(arg) { - if (Array.isArray(arg)) - return arg; - return [arg]; -} -const TRAVERSE_COMMAND = { - STOP: "STOP" -}; -function traverseWithCb(treeNode, callback) { - const command = callback(treeNode); - if (treeNode.children !== void 0 && command !== TRAVERSE_COMMAND.STOP) { - treeNode.children.forEach((childNode) => traverseWithCb(childNode, callback)); - } -} -function getNonLeafKeys(treeNodes, options = {}) { - const { preserveGroup = false } = options; - const keys = []; - const cb = preserveGroup ? (node) => { - if (!node.isLeaf) { - keys.push(node.key); - traverse(node.children); - } - } : (node) => { - if (!node.isLeaf) { - if (!node.isGroup) - keys.push(node.key); - traverse(node.children); - } - }; - function traverse(nodes) { - nodes.forEach(cb); - } - traverse(treeNodes); - return keys; -} -function isLeaf(rawNode, getChildren) { - const { isLeaf: isLeaf2 } = rawNode; - if (isLeaf2 !== void 0) - return isLeaf2; - else if (!getChildren(rawNode)) - return true; - return false; -} -function defaultGetChildren(node) { - return node.children; -} -function defaultGetKey(node) { - return node.key; -} -function isIgnored() { - return false; -} -function isShallowLoaded(rawNode, getChildren) { - const { isLeaf: isLeaf2 } = rawNode; - if (isLeaf2 === false && !Array.isArray(getChildren(rawNode))) - return false; - return true; -} -function isDisabled(rawNode) { - return rawNode.disabled === true; -} -function isExpilicitlyNotLoaded(rawNode, getChildren) { - return rawNode.isLeaf === false && !Array.isArray(getChildren(rawNode)); -} -function unwrapCheckedKeys(result) { - var _a; - if (result === void 0 || result === null) - return []; - if (Array.isArray(result)) - return result; - return (_a = result.checkedKeys) !== null && _a !== void 0 ? _a : []; -} -function unwrapIndeterminateKeys(result) { - var _a; - if (result === void 0 || result === null || Array.isArray(result)) { - return []; - } - return (_a = result.indeterminateKeys) !== null && _a !== void 0 ? _a : []; -} -function merge(originalKeys, keysToAdd) { - const set = new Set(originalKeys); - keysToAdd.forEach((key) => { - if (!set.has(key)) { - set.add(key); - } - }); - return Array.from(set); -} -function minus(originalKeys, keysToRemove) { - const set = new Set(originalKeys); - keysToRemove.forEach((key) => { - if (set.has(key)) { - set.delete(key); - } - }); - return Array.from(set); -} -function isGroup(rawNode) { - return (rawNode === null || rawNode === void 0 ? void 0 : rawNode.type) === "group"; -} -class SubtreeNotLoadedError extends Error { - constructor() { - super(); - this.message = "SubtreeNotLoadedError: checking a subtree whose required nodes are not fully loaded."; - } -} -function getExtendedCheckedKeySetAfterCheck(checkKeys, currentCheckedKeys, treeMate, allowNotLoaded) { - return getExtendedCheckedKeySet(currentCheckedKeys.concat(checkKeys), treeMate, allowNotLoaded, false); -} -function getAvailableAscendantNodeSet(uncheckedKeys, treeMate) { - const visitedKeys = /* @__PURE__ */ new Set(); - uncheckedKeys.forEach((uncheckedKey) => { - const uncheckedTreeNode = treeMate.treeNodeMap.get(uncheckedKey); - if (uncheckedTreeNode !== void 0) { - let nodeCursor = uncheckedTreeNode.parent; - while (nodeCursor !== null) { - if (nodeCursor.disabled) - break; - if (visitedKeys.has(nodeCursor.key)) - break; - else { - visitedKeys.add(nodeCursor.key); - } - nodeCursor = nodeCursor.parent; - } - } - }); - return visitedKeys; -} -function getExtendedCheckedKeySetAfterUncheck(uncheckedKeys, currentCheckedKeys, treeMate, allowNotLoaded) { - const extendedCheckedKeySet = getExtendedCheckedKeySet(currentCheckedKeys, treeMate, allowNotLoaded, false); - const extendedKeySetToUncheck = getExtendedCheckedKeySet(uncheckedKeys, treeMate, allowNotLoaded, true); - const ascendantKeySet = getAvailableAscendantNodeSet(uncheckedKeys, treeMate); - const keysToRemove = []; - extendedCheckedKeySet.forEach((key) => { - if (extendedKeySetToUncheck.has(key) || ascendantKeySet.has(key)) { - keysToRemove.push(key); - } - }); - keysToRemove.forEach((key) => extendedCheckedKeySet.delete(key)); - return extendedCheckedKeySet; -} -function getCheckedKeys(options, treeMate) { - const { checkedKeys, keysToCheck, keysToUncheck, indeterminateKeys, cascade, leafOnly, checkStrategy, allowNotLoaded } = options; - if (!cascade) { - if (keysToCheck !== void 0) { - return { - checkedKeys: merge(checkedKeys, keysToCheck), - indeterminateKeys: Array.from(indeterminateKeys) - }; - } else if (keysToUncheck !== void 0) { - return { - checkedKeys: minus(checkedKeys, keysToUncheck), - indeterminateKeys: Array.from(indeterminateKeys) - }; - } else { - return { - checkedKeys: Array.from(checkedKeys), - indeterminateKeys: Array.from(indeterminateKeys) - }; - } - } - const { levelTreeNodeMap } = treeMate; - let extendedCheckedKeySet; - if (keysToUncheck !== void 0) { - extendedCheckedKeySet = getExtendedCheckedKeySetAfterUncheck(keysToUncheck, checkedKeys, treeMate, allowNotLoaded); - } else if (keysToCheck !== void 0) { - extendedCheckedKeySet = getExtendedCheckedKeySetAfterCheck(keysToCheck, checkedKeys, treeMate, allowNotLoaded); - } else { - extendedCheckedKeySet = getExtendedCheckedKeySet(checkedKeys, treeMate, allowNotLoaded, false); - } - const checkStrategyIsParent = checkStrategy === "parent"; - const checkStrategyIsChild = checkStrategy === "child" || leafOnly; - const syntheticCheckedKeySet = extendedCheckedKeySet; - const syntheticIndeterminateKeySet = /* @__PURE__ */ new Set(); - const maxLevel = Math.max.apply(null, Array.from(levelTreeNodeMap.keys())); - for (let level = maxLevel; level >= 0; level -= 1) { - const levelIsZero = level === 0; - const levelTreeNodes = levelTreeNodeMap.get(level); - for (const levelTreeNode of levelTreeNodes) { - if (levelTreeNode.isLeaf) - continue; - const { key: levelTreeNodeKey, shallowLoaded } = levelTreeNode; - if (checkStrategyIsChild && shallowLoaded) { - levelTreeNode.children.forEach((v) => { - if (!v.disabled && !v.isLeaf && v.shallowLoaded && syntheticCheckedKeySet.has(v.key)) { - syntheticCheckedKeySet.delete(v.key); - } - }); - } - if (levelTreeNode.disabled || !shallowLoaded) { - continue; - } - let fullyChecked = true; - let partialChecked = false; - let allDisabled = true; - for (const childNode of levelTreeNode.children) { - const childKey = childNode.key; - if (childNode.disabled) - continue; - if (allDisabled) - allDisabled = false; - if (syntheticCheckedKeySet.has(childKey)) { - partialChecked = true; - } else if (syntheticIndeterminateKeySet.has(childKey)) { - partialChecked = true; - fullyChecked = false; - break; - } else { - fullyChecked = false; - if (partialChecked) { - break; - } - } - } - if (fullyChecked && !allDisabled) { - if (checkStrategyIsParent) { - levelTreeNode.children.forEach((v) => { - if (!v.disabled && syntheticCheckedKeySet.has(v.key)) { - syntheticCheckedKeySet.delete(v.key); - } - }); - } - syntheticCheckedKeySet.add(levelTreeNodeKey); - } else if (partialChecked) { - syntheticIndeterminateKeySet.add(levelTreeNodeKey); - } - if (levelIsZero && checkStrategyIsChild && syntheticCheckedKeySet.has(levelTreeNodeKey)) { - syntheticCheckedKeySet.delete(levelTreeNodeKey); - } - } - } - return { - checkedKeys: Array.from(syntheticCheckedKeySet), - indeterminateKeys: Array.from(syntheticIndeterminateKeySet) - }; -} -function getExtendedCheckedKeySet(checkedKeys, treeMate, allowNotLoaded, isUnchecking) { - const { treeNodeMap, getChildren } = treeMate; - const visitedKeySet = /* @__PURE__ */ new Set(); - const extendedKeySet = new Set(checkedKeys); - checkedKeys.forEach((checkedKey) => { - const checkedTreeNode = treeNodeMap.get(checkedKey); - if (checkedTreeNode !== void 0) { - traverseWithCb(checkedTreeNode, (treeNode) => { - if (treeNode.disabled) { - return TRAVERSE_COMMAND.STOP; - } - const { key } = treeNode; - if (visitedKeySet.has(key)) - return; - visitedKeySet.add(key); - extendedKeySet.add(key); - if (isExpilicitlyNotLoaded(treeNode.rawNode, getChildren)) { - if (isUnchecking) { - return TRAVERSE_COMMAND.STOP; - } else if (!allowNotLoaded) { - throw new SubtreeNotLoadedError(); - } - } - }); - } - }); - return extendedKeySet; -} -function getPath(key, { includeGroup = false, includeSelf = true }, treeMate) { - var _a; - const treeNodeMap = treeMate.treeNodeMap; - let treeNode = key === null || key === void 0 ? null : (_a = treeNodeMap.get(key)) !== null && _a !== void 0 ? _a : null; - const mergedPath = { - keyPath: [], - treeNodePath: [], - treeNode - }; - if (treeNode === null || treeNode === void 0 ? void 0 : treeNode.ignored) { - mergedPath.treeNode = null; - return mergedPath; - } - while (treeNode) { - if (!treeNode.ignored && (includeGroup || !treeNode.isGroup)) { - mergedPath.treeNodePath.push(treeNode); - } - treeNode = treeNode.parent; - } - mergedPath.treeNodePath.reverse(); - if (!includeSelf) - mergedPath.treeNodePath.pop(); - mergedPath.keyPath = mergedPath.treeNodePath.map((treeNode2) => treeNode2.key); - return mergedPath; -} -function getFirstAvailableNode(nodes) { - if (nodes.length === 0) - return null; - const node = nodes[0]; - if (node.isGroup || node.ignored || node.disabled) { - return node.getNext(); - } - return node; -} -function rawGetNext(node, loop) { - const sibs = node.siblings; - const l = sibs.length; - const { index } = node; - if (loop) { - return sibs[(index + 1) % l]; - } else { - if (index === sibs.length - 1) - return null; - return sibs[index + 1]; - } -} -function move(fromNode, dir, { loop = false, includeDisabled = false } = {}) { - const iterate = dir === "prev" ? rawGetPrev : rawGetNext; - const getChildOptions = { - reverse: dir === "prev" - }; - let meet = false; - let endNode = null; - function traverse(node) { - if (node === null) - return; - if (node === fromNode) { - if (!meet) { - meet = true; - } else if (!fromNode.disabled && !fromNode.isGroup) { - endNode = fromNode; - return; - } - } else { - if ((!node.disabled || includeDisabled) && !node.ignored && !node.isGroup) { - endNode = node; - return; - } - } - if (node.isGroup) { - const child = getChild(node, getChildOptions); - if (child !== null) { - endNode = child; - } else { - traverse(iterate(node, loop)); - } - } else { - const nextNode = iterate(node, false); - if (nextNode !== null) { - traverse(nextNode); - } else { - const parent = rawGetParent(node); - if (parent === null || parent === void 0 ? void 0 : parent.isGroup) { - traverse(iterate(parent, loop)); - } else if (loop) { - traverse(iterate(node, true)); - } - } - } - } - traverse(fromNode); - return endNode; -} -function rawGetPrev(node, loop) { - const sibs = node.siblings; - const l = sibs.length; - const { index } = node; - if (loop) { - return sibs[(index - 1 + l) % l]; - } else { - if (index === 0) - return null; - return sibs[index - 1]; - } -} -function rawGetParent(node) { - return node.parent; -} -function getChild(node, options = {}) { - const { reverse = false } = options; - const { children } = node; - if (children) { - const { length } = children; - const start = reverse ? length - 1 : 0; - const end = reverse ? -1 : length; - const delta = reverse ? -1 : 1; - for (let i = start; i !== end; i += delta) { - const child = children[i]; - if (!child.disabled && !child.ignored) { - if (child.isGroup) { - const childInGroup = getChild(child, options); - if (childInGroup !== null) - return childInGroup; - } else { - return child; - } - } - } - } - return null; -} -const moveMethods = { - getChild() { - if (this.ignored) - return null; - return getChild(this); - }, - getParent() { - const { parent } = this; - if (parent === null || parent === void 0 ? void 0 : parent.isGroup) { - return parent.getParent(); - } - return parent; - }, - getNext(options = {}) { - return move(this, "next", options); - }, - getPrev(options = {}) { - return move(this, "prev", options); - } -}; -function flatten(treeNodes, expandedKeys) { - const expandedKeySet = expandedKeys ? new Set(expandedKeys) : void 0; - const flattenedNodes = []; - function traverse(treeNodes2) { - treeNodes2.forEach((treeNode) => { - flattenedNodes.push(treeNode); - if (treeNode.isLeaf || !treeNode.children || treeNode.ignored) - return; - if (treeNode.isGroup) { - traverse(treeNode.children); - } else if ( - // normal non-leaf node - expandedKeySet === void 0 || expandedKeySet.has(treeNode.key) - ) { - traverse(treeNode.children); - } - }); - } - traverse(treeNodes); - return flattenedNodes; -} -function contains(parent, child) { - const parentKey = parent.key; - while (child) { - if (child.key === parentKey) - return true; - child = child.parent; - } - return false; -} -function createTreeNodes(rawNodes, treeNodeMap, levelTreeNodeMap, nodeProto, getChildren, parent = null, level = 0) { - const treeNodes = []; - rawNodes.forEach((rawNode, index) => { - var _a; - const treeNode = Object.create(nodeProto); - treeNode.rawNode = rawNode; - treeNode.siblings = treeNodes; - treeNode.level = level; - treeNode.index = index; - treeNode.isFirstChild = index === 0; - treeNode.isLastChild = index + 1 === rawNodes.length; - treeNode.parent = parent; - if (!treeNode.ignored) { - const rawChildren = getChildren(rawNode); - if (Array.isArray(rawChildren)) { - treeNode.children = createTreeNodes(rawChildren, treeNodeMap, levelTreeNodeMap, nodeProto, getChildren, treeNode, level + 1); - } - } - treeNodes.push(treeNode); - treeNodeMap.set(treeNode.key, treeNode); - if (!levelTreeNodeMap.has(level)) - levelTreeNodeMap.set(level, []); - (_a = levelTreeNodeMap.get(level)) === null || _a === void 0 ? void 0 : _a.push(treeNode); - }); - return treeNodes; -} -function createTreeMate(rawNodes, options = {}) { - var _a; - const treeNodeMap = /* @__PURE__ */ new Map(); - const levelTreeNodeMap = /* @__PURE__ */ new Map(); - const { getDisabled = isDisabled, getIgnored = isIgnored, getIsGroup = isGroup, getKey = defaultGetKey } = options; - const _getChildren = (_a = options.getChildren) !== null && _a !== void 0 ? _a : defaultGetChildren; - const getChildren = options.ignoreEmptyChildren ? (node) => { - const children = _getChildren(node); - if (Array.isArray(children)) { - if (!children.length) - return null; - return children; - } - return children; - } : _getChildren; - const nodeProto = Object.assign({ - get key() { - return getKey(this.rawNode); - }, - get disabled() { - return getDisabled(this.rawNode); - }, - get isGroup() { - return getIsGroup(this.rawNode); - }, - get isLeaf() { - return isLeaf(this.rawNode, getChildren); - }, - get shallowLoaded() { - return isShallowLoaded(this.rawNode, getChildren); - }, - get ignored() { - return getIgnored(this.rawNode); - }, - contains(node) { - return contains(this, node); - } - }, moveMethods); - const treeNodes = createTreeNodes(rawNodes, treeNodeMap, levelTreeNodeMap, nodeProto, getChildren); - function getNode(key) { - if (key === null || key === void 0) - return null; - const tmNode = treeNodeMap.get(key); - if (tmNode && !tmNode.isGroup && !tmNode.ignored) { - return tmNode; - } - return null; - } - function _getNode(key) { - if (key === null || key === void 0) - return null; - const tmNode = treeNodeMap.get(key); - if (tmNode && !tmNode.ignored) { - return tmNode; - } - return null; - } - function getPrev(key, options2) { - const node = _getNode(key); - if (!node) - return null; - return node.getPrev(options2); - } - function getNext(key, options2) { - const node = _getNode(key); - if (!node) - return null; - return node.getNext(options2); - } - function getParent(key) { - const node = _getNode(key); - if (!node) - return null; - return node.getParent(); - } - function getChild2(key) { - const node = _getNode(key); - if (!node) - return null; - return node.getChild(); - } - const treemate = { - treeNodes, - treeNodeMap, - levelTreeNodeMap, - maxLevel: Math.max(...levelTreeNodeMap.keys()), - getChildren, - getFlattenedNodes(expandedKeys) { - return flatten(treeNodes, expandedKeys); - }, - getNode, - getPrev, - getNext, - getParent, - getChild: getChild2, - getFirstAvailableNode() { - return getFirstAvailableNode(treeNodes); - }, - getPath(key, options2 = {}) { - return getPath(key, options2, treemate); - }, - getCheckedKeys(checkedKeys, options2 = {}) { - const { cascade = true, leafOnly = false, checkStrategy = "all", allowNotLoaded = false } = options2; - return getCheckedKeys({ - checkedKeys: unwrapCheckedKeys(checkedKeys), - indeterminateKeys: unwrapIndeterminateKeys(checkedKeys), - cascade, - leafOnly, - checkStrategy, - allowNotLoaded - }, treemate); - }, - check(keysToCheck, checkedKeys, options2 = {}) { - const { cascade = true, leafOnly = false, checkStrategy = "all", allowNotLoaded = false } = options2; - return getCheckedKeys({ - checkedKeys: unwrapCheckedKeys(checkedKeys), - indeterminateKeys: unwrapIndeterminateKeys(checkedKeys), - keysToCheck: keysToCheck === void 0 || keysToCheck === null ? [] : toArray(keysToCheck), - cascade, - leafOnly, - checkStrategy, - allowNotLoaded - }, treemate); - }, - uncheck(keysToUncheck, checkedKeys, options2 = {}) { - const { cascade = true, leafOnly = false, checkStrategy = "all", allowNotLoaded = false } = options2; - return getCheckedKeys({ - checkedKeys: unwrapCheckedKeys(checkedKeys), - indeterminateKeys: unwrapIndeterminateKeys(checkedKeys), - keysToUncheck: keysToUncheck === null || keysToUncheck === void 0 ? [] : toArray(keysToUncheck), - cascade, - leafOnly, - checkStrategy, - allowNotLoaded - }, treemate); - }, - getNonLeafKeys(options2 = {}) { - return getNonLeafKeys(treeNodes, options2); - } - }; - return treemate; -} -const dropdownMenuInjectionKey = createInjectionKey("n-dropdown-menu"); -const dropdownInjectionKey = createInjectionKey("n-dropdown"); -const dropdownOptionInjectionKey = createInjectionKey("n-dropdown-option"); -const NDropdownDivider = defineComponent({ - name: "DropdownDivider", - props: { - clsPrefix: { - type: String, - required: true - } - }, - render() { - return h("div", { - class: `${this.clsPrefix}-dropdown-divider` - }); - } -}); -const NDropdownGroupHeader = defineComponent({ - name: "DropdownGroupHeader", - props: { - clsPrefix: { - type: String, - required: true - }, - tmNode: { - type: Object, - required: true - } - }, - setup() { - const { - showIconRef, - hasSubmenuRef - } = inject(dropdownMenuInjectionKey); - const { - renderLabelRef, - labelFieldRef, - nodePropsRef, - renderOptionRef - } = inject(dropdownInjectionKey); - return { - labelField: labelFieldRef, - showIcon: showIconRef, - hasSubmenu: hasSubmenuRef, - renderLabel: renderLabelRef, - nodeProps: nodePropsRef, - renderOption: renderOptionRef - }; - }, - render() { - var _a; - const { - clsPrefix, - hasSubmenu, - showIcon, - nodeProps, - renderLabel, - renderOption - } = this; - const { - rawNode - } = this.tmNode; - const node = h("div", Object.assign({ - class: `${clsPrefix}-dropdown-option` - }, nodeProps === null || nodeProps === void 0 ? void 0 : nodeProps(rawNode)), h("div", { - class: `${clsPrefix}-dropdown-option-body ${clsPrefix}-dropdown-option-body--group` - }, h("div", { - "data-dropdown-option": true, - class: [`${clsPrefix}-dropdown-option-body__prefix`, showIcon && `${clsPrefix}-dropdown-option-body__prefix--show-icon`] - }, render(rawNode.icon)), h("div", { - class: `${clsPrefix}-dropdown-option-body__label`, - "data-dropdown-option": true - }, renderLabel ? renderLabel(rawNode) : render((_a = rawNode.title) !== null && _a !== void 0 ? _a : rawNode[this.labelField])), h("div", { - class: [`${clsPrefix}-dropdown-option-body__suffix`, hasSubmenu && `${clsPrefix}-dropdown-option-body__suffix--has-submenu`], - "data-dropdown-option": true - }))); - if (renderOption) { - return renderOption({ - node, - option: rawNode - }); - } - return node; - } -}); -function isSubmenuNode(rawNode, childrenField) { - return rawNode.type === "submenu" || rawNode.type === void 0 && rawNode[childrenField] !== void 0; -} -function isGroupNode(rawNode) { - return rawNode.type === "group"; -} -function isDividerNode(rawNode) { - return rawNode.type === "divider"; -} -function isRenderNode(rawNode) { - return rawNode.type === "render"; -} -const NDropdownOption = defineComponent({ - name: "DropdownOption", - props: { - clsPrefix: { - type: String, - required: true - }, - tmNode: { - type: Object, - required: true - }, - parentKey: { - type: [String, Number], - default: null - }, - placement: { - type: String, - default: "right-start" - }, - props: Object, - scrollable: Boolean - }, - setup(props) { - const NDropdown = inject(dropdownInjectionKey); - const { - hoverKeyRef, - keyboardKeyRef, - lastToggledSubmenuKeyRef, - pendingKeyPathRef, - activeKeyPathRef, - animatedRef, - mergedShowRef, - renderLabelRef, - renderIconRef, - labelFieldRef, - childrenFieldRef, - renderOptionRef, - nodePropsRef, - menuPropsRef - } = NDropdown; - const NDropdownOption2 = inject(dropdownOptionInjectionKey, null); - const NDropdownMenu2 = inject(dropdownMenuInjectionKey); - const NPopoverBody = inject(popoverBodyInjectionKey); - const rawNodeRef = computed(() => props.tmNode.rawNode); - const hasSubmenuRef = computed(() => { - const { - value: childrenField - } = childrenFieldRef; - return isSubmenuNode(props.tmNode.rawNode, childrenField); - }); - const mergedDisabledRef = computed(() => { - const { - disabled - } = props.tmNode; - return disabled; - }); - const showSubmenuRef = computed(() => { - if (!hasSubmenuRef.value) return false; - const { - key, - disabled - } = props.tmNode; - if (disabled) return false; - const { - value: hoverKey - } = hoverKeyRef; - const { - value: keyboardKey - } = keyboardKeyRef; - const { - value: lastToggledSubmenuKey - } = lastToggledSubmenuKeyRef; - const { - value: pendingKeyPath - } = pendingKeyPathRef; - if (hoverKey !== null) return pendingKeyPath.includes(key); - if (keyboardKey !== null) { - return pendingKeyPath.includes(key) && pendingKeyPath[pendingKeyPath.length - 1] !== key; - } - if (lastToggledSubmenuKey !== null) return pendingKeyPath.includes(key); - return false; - }); - const shouldDelayRef = computed(() => { - return keyboardKeyRef.value === null && !animatedRef.value; - }); - const deferredShowSubmenuRef = useDeferredTrue(showSubmenuRef, 300, shouldDelayRef); - const parentEnteringSubmenuRef = computed(() => { - return !!(NDropdownOption2 === null || NDropdownOption2 === void 0 ? void 0 : NDropdownOption2.enteringSubmenuRef.value); - }); - const enteringSubmenuRef = ref(false); - provide(dropdownOptionInjectionKey, { - enteringSubmenuRef - }); - function handleSubmenuBeforeEnter() { - enteringSubmenuRef.value = true; - } - function handleSubmenuAfterEnter() { - enteringSubmenuRef.value = false; - } - function handleMouseEnter() { - const { - parentKey, - tmNode - } = props; - if (tmNode.disabled) return; - if (!mergedShowRef.value) return; - lastToggledSubmenuKeyRef.value = parentKey; - keyboardKeyRef.value = null; - hoverKeyRef.value = tmNode.key; - } - function handleMouseMove() { - const { - tmNode - } = props; - if (tmNode.disabled) return; - if (!mergedShowRef.value) return; - if (hoverKeyRef.value === tmNode.key) return; - handleMouseEnter(); - } - function handleMouseLeave(e) { - if (props.tmNode.disabled) return; - if (!mergedShowRef.value) return; - const { - relatedTarget - } = e; - if (relatedTarget && !happensIn({ - target: relatedTarget - }, "dropdownOption") && !happensIn({ - target: relatedTarget - }, "scrollbarRail")) { - hoverKeyRef.value = null; - } - } - function handleClick() { - const { - value: hasSubmenu - } = hasSubmenuRef; - const { - tmNode - } = props; - if (!mergedShowRef.value) return; - if (!hasSubmenu && !tmNode.disabled) { - NDropdown.doSelect(tmNode.key, tmNode.rawNode); - NDropdown.doUpdateShow(false); - } - } - return { - labelField: labelFieldRef, - renderLabel: renderLabelRef, - renderIcon: renderIconRef, - siblingHasIcon: NDropdownMenu2.showIconRef, - siblingHasSubmenu: NDropdownMenu2.hasSubmenuRef, - menuProps: menuPropsRef, - popoverBody: NPopoverBody, - animated: animatedRef, - mergedShowSubmenu: computed(() => { - return deferredShowSubmenuRef.value && !parentEnteringSubmenuRef.value; - }), - rawNode: rawNodeRef, - hasSubmenu: hasSubmenuRef, - pending: useMemo(() => { - const { - value: pendingKeyPath - } = pendingKeyPathRef; - const { - key - } = props.tmNode; - return pendingKeyPath.includes(key); - }), - childActive: useMemo(() => { - const { - value: activeKeyPath - } = activeKeyPathRef; - const { - key - } = props.tmNode; - const index = activeKeyPath.findIndex((k) => key === k); - if (index === -1) return false; - return index < activeKeyPath.length - 1; - }), - active: useMemo(() => { - const { - value: activeKeyPath - } = activeKeyPathRef; - const { - key - } = props.tmNode; - const index = activeKeyPath.findIndex((k) => key === k); - if (index === -1) return false; - return index === activeKeyPath.length - 1; - }), - mergedDisabled: mergedDisabledRef, - renderOption: renderOptionRef, - nodeProps: nodePropsRef, - handleClick, - handleMouseMove, - handleMouseEnter, - handleMouseLeave, - handleSubmenuBeforeEnter, - handleSubmenuAfterEnter - }; - }, - render() { - var _a, _b; - const { - animated, - rawNode, - mergedShowSubmenu, - clsPrefix, - siblingHasIcon, - siblingHasSubmenu, - renderLabel, - renderIcon, - renderOption, - nodeProps, - props, - scrollable - } = this; - let submenuVNode = null; - if (mergedShowSubmenu) { - const submenuNodeProps = (_a = this.menuProps) === null || _a === void 0 ? void 0 : _a.call(this, rawNode, rawNode.children); - submenuVNode = h(NDropdownMenu, Object.assign({}, submenuNodeProps, { - clsPrefix, - scrollable: this.scrollable, - tmNodes: this.tmNode.children, - parentKey: this.tmNode.key - })); - } - const builtinProps = { - class: [`${clsPrefix}-dropdown-option-body`, this.pending && `${clsPrefix}-dropdown-option-body--pending`, this.active && `${clsPrefix}-dropdown-option-body--active`, this.childActive && `${clsPrefix}-dropdown-option-body--child-active`, this.mergedDisabled && `${clsPrefix}-dropdown-option-body--disabled`], - onMousemove: this.handleMouseMove, - onMouseenter: this.handleMouseEnter, - onMouseleave: this.handleMouseLeave, - onClick: this.handleClick - }; - const optionNodeProps = nodeProps === null || nodeProps === void 0 ? void 0 : nodeProps(rawNode); - const node = h("div", Object.assign({ - class: [`${clsPrefix}-dropdown-option`, optionNodeProps === null || optionNodeProps === void 0 ? void 0 : optionNodeProps.class], - "data-dropdown-option": true - }, optionNodeProps), h("div", mergeProps(builtinProps, props), [h("div", { - class: [`${clsPrefix}-dropdown-option-body__prefix`, siblingHasIcon && `${clsPrefix}-dropdown-option-body__prefix--show-icon`] - }, [renderIcon ? renderIcon(rawNode) : render(rawNode.icon)]), h("div", { - "data-dropdown-option": true, - class: `${clsPrefix}-dropdown-option-body__label` - }, renderLabel ? renderLabel(rawNode) : render((_b = rawNode[this.labelField]) !== null && _b !== void 0 ? _b : rawNode.title)), h("div", { - "data-dropdown-option": true, - class: [`${clsPrefix}-dropdown-option-body__suffix`, siblingHasSubmenu && `${clsPrefix}-dropdown-option-body__suffix--has-submenu`] - }, this.hasSubmenu ? h(NIcon, null, { - default: () => h(ChevronRightIcon, null) - }) : null)]), this.hasSubmenu ? h(Binder, null, { - default: () => [h(VTarget, null, { - default: () => h("div", { - class: `${clsPrefix}-dropdown-offset-container` - }, h(VFollower, { - show: this.mergedShowSubmenu, - placement: this.placement, - to: scrollable ? this.popoverBody || void 0 : void 0, - teleportDisabled: !scrollable - }, { - default: () => { - return h("div", { - class: `${clsPrefix}-dropdown-menu-wrapper` - }, animated ? h(Transition, { - onBeforeEnter: this.handleSubmenuBeforeEnter, - onAfterEnter: this.handleSubmenuAfterEnter, - name: "fade-in-scale-up-transition", - appear: true - }, { - default: () => submenuVNode - }) : submenuVNode); - } - })) - })] - }) : null); - if (renderOption) { - return renderOption({ - node, - option: rawNode - }); - } - return node; - } -}); -const NDropdownGroup = defineComponent({ - name: "NDropdownGroup", - props: { - clsPrefix: { - type: String, - required: true - }, - tmNode: { - type: Object, - required: true - }, - parentKey: { - type: [String, Number], - default: null - } - }, - render() { - const { - tmNode, - parentKey, - clsPrefix - } = this; - const { - children - } = tmNode; - return h(Fragment, null, h(NDropdownGroupHeader, { - clsPrefix, - tmNode, - key: tmNode.key - }), children === null || children === void 0 ? void 0 : children.map((child) => { - const { - rawNode - } = child; - if (rawNode.show === false) return null; - if (isDividerNode(rawNode)) { - return h(NDropdownDivider, { - clsPrefix, - key: child.key - }); - } - if (child.isGroup) { - warn("dropdown", "`group` node is not allowed to be put in `group` node."); - return null; - } - return h(NDropdownOption, { - clsPrefix, - tmNode: child, - parentKey, - key: child.key - }); - })); - } -}); -const NDropdownRenderOption = defineComponent({ - name: "DropdownRenderOption", - props: { - tmNode: { - type: Object, - required: true - } - }, - render() { - const { - rawNode: { - render: render2, - props - } - } = this.tmNode; - return h("div", props, [render2 === null || render2 === void 0 ? void 0 : render2()]); - } -}); -const NDropdownMenu = defineComponent({ - name: "DropdownMenu", - props: { - scrollable: Boolean, - showArrow: Boolean, - arrowStyle: [String, Object], - clsPrefix: { - type: String, - required: true - }, - tmNodes: { - type: Array, - default: () => [] - }, - parentKey: { - type: [String, Number], - default: null - } - }, - setup(props) { - const { - renderIconRef, - childrenFieldRef - } = inject(dropdownInjectionKey); - provide(dropdownMenuInjectionKey, { - showIconRef: computed(() => { - const renderIcon = renderIconRef.value; - return props.tmNodes.some((tmNode) => { - var _a; - if (tmNode.isGroup) { - return (_a = tmNode.children) === null || _a === void 0 ? void 0 : _a.some(({ - rawNode: rawChild - }) => renderIcon ? renderIcon(rawChild) : rawChild.icon); - } - const { - rawNode - } = tmNode; - return renderIcon ? renderIcon(rawNode) : rawNode.icon; - }); - }), - hasSubmenuRef: computed(() => { - const { - value: childrenField - } = childrenFieldRef; - return props.tmNodes.some((tmNode) => { - var _a; - if (tmNode.isGroup) { - return (_a = tmNode.children) === null || _a === void 0 ? void 0 : _a.some(({ - rawNode: rawChild - }) => isSubmenuNode(rawChild, childrenField)); - } - const { - rawNode - } = tmNode; - return isSubmenuNode(rawNode, childrenField); - }); - }) - }); - const bodyRef = ref(null); - provide(modalBodyInjectionKey, null); - provide(drawerBodyInjectionKey, null); - provide(popoverBodyInjectionKey, bodyRef); - return { - bodyRef - }; - }, - render() { - const { - parentKey, - clsPrefix, - scrollable - } = this; - const menuOptionsNode = this.tmNodes.map((tmNode) => { - const { - rawNode - } = tmNode; - if (rawNode.show === false) return null; - if (isRenderNode(rawNode)) { - return h(NDropdownRenderOption, { - tmNode, - key: tmNode.key - }); - } - if (isDividerNode(rawNode)) { - return h(NDropdownDivider, { - clsPrefix, - key: tmNode.key - }); - } - if (isGroupNode(rawNode)) { - return h(NDropdownGroup, { - clsPrefix, - tmNode, - parentKey, - key: tmNode.key - }); - } - return h(NDropdownOption, { - clsPrefix, - tmNode, - parentKey, - key: tmNode.key, - props: rawNode.props, - scrollable - }); - }); - return h("div", { - class: [`${clsPrefix}-dropdown-menu`, scrollable && `${clsPrefix}-dropdown-menu--scrollable`], - ref: "bodyRef" - }, scrollable ? h(XScrollbar, { - contentClass: `${clsPrefix}-dropdown-menu__content` - }, { - default: () => menuOptionsNode - }) : menuOptionsNode, this.showArrow ? renderArrow({ - clsPrefix, - arrowStyle: this.arrowStyle, - arrowClass: void 0, - arrowWrapperClass: void 0, - arrowWrapperStyle: void 0 - }) : null); - } -}); -const style = cB("dropdown-menu", ` - transform-origin: var(--v-transform-origin); - background-color: var(--n-color); - border-radius: var(--n-border-radius); - box-shadow: var(--n-box-shadow); - position: relative; - transition: - background-color .3s var(--n-bezier), - box-shadow .3s var(--n-bezier); -`, [fadeInScaleUpTransition(), cB("dropdown-option", ` - position: relative; - `, [c("a", ` - text-decoration: none; - color: inherit; - outline: none; - `, [c("&::before", ` - content: ""; - position: absolute; - left: 0; - right: 0; - top: 0; - bottom: 0; - `)]), cB("dropdown-option-body", ` - display: flex; - cursor: pointer; - position: relative; - height: var(--n-option-height); - line-height: var(--n-option-height); - font-size: var(--n-font-size); - color: var(--n-option-text-color); - transition: color .3s var(--n-bezier); - `, [c("&::before", ` - content: ""; - position: absolute; - top: 0; - bottom: 0; - left: 4px; - right: 4px; - transition: background-color .3s var(--n-bezier); - border-radius: var(--n-border-radius); - `), cNotM("disabled", [cM("pending", ` - color: var(--n-option-text-color-hover); - `, [cE("prefix, suffix", ` - color: var(--n-option-text-color-hover); - `), c("&::before", "background-color: var(--n-option-color-hover);")]), cM("active", ` - color: var(--n-option-text-color-active); - `, [cE("prefix, suffix", ` - color: var(--n-option-text-color-active); - `), c("&::before", "background-color: var(--n-option-color-active);")]), cM("child-active", ` - color: var(--n-option-text-color-child-active); - `, [cE("prefix, suffix", ` - color: var(--n-option-text-color-child-active); - `)])]), cM("disabled", ` - cursor: not-allowed; - opacity: var(--n-option-opacity-disabled); - `), cM("group", ` - font-size: calc(var(--n-font-size) - 1px); - color: var(--n-group-header-text-color); - `, [cE("prefix", ` - width: calc(var(--n-option-prefix-width) / 2); - `, [cM("show-icon", ` - width: calc(var(--n-option-icon-prefix-width) / 2); - `)])]), cE("prefix", ` - width: var(--n-option-prefix-width); - display: flex; - justify-content: center; - align-items: center; - color: var(--n-prefix-color); - transition: color .3s var(--n-bezier); - z-index: 1; - `, [cM("show-icon", ` - width: var(--n-option-icon-prefix-width); - `), cB("icon", ` - font-size: var(--n-option-icon-size); - `)]), cE("label", ` - white-space: nowrap; - flex: 1; - z-index: 1; - `), cE("suffix", ` - box-sizing: border-box; - flex-grow: 0; - flex-shrink: 0; - display: flex; - justify-content: flex-end; - align-items: center; - min-width: var(--n-option-suffix-width); - padding: 0 8px; - transition: color .3s var(--n-bezier); - color: var(--n-suffix-color); - z-index: 1; - `, [cM("has-submenu", ` - width: var(--n-option-icon-suffix-width); - `), cB("icon", ` - font-size: var(--n-option-icon-size); - `)]), cB("dropdown-menu", "pointer-events: all;")]), cB("dropdown-offset-container", ` - pointer-events: none; - position: absolute; - left: 0; - right: 0; - top: -4px; - bottom: -4px; - `)]), cB("dropdown-divider", ` - transition: background-color .3s var(--n-bezier); - background-color: var(--n-divider-color); - height: 1px; - margin: 4px 0; - `), cB("dropdown-menu-wrapper", ` - transform-origin: var(--v-transform-origin); - width: fit-content; - `), c(">", [cB("scrollbar", ` - height: inherit; - max-height: inherit; - `)]), cNotM("scrollable", ` - padding: var(--n-padding); - `), cM("scrollable", [cE("content", ` - padding: var(--n-padding); - `)])]); -const dropdownBaseProps = { - animated: { - type: Boolean, - default: true - }, - keyboard: { - type: Boolean, - default: true - }, - size: { - type: String, - default: "medium" - }, - inverted: Boolean, - placement: { - type: String, - default: "bottom" - }, - onSelect: [Function, Array], - options: { - type: Array, - default: () => [] - }, - menuProps: Function, - showArrow: Boolean, - renderLabel: Function, - renderIcon: Function, - renderOption: Function, - nodeProps: Function, - labelField: { - type: String, - default: "label" - }, - keyField: { - type: String, - default: "key" - }, - childrenField: { - type: String, - default: "children" - }, - // for menu, not documented - value: [String, Number] -}; -const popoverPropKeys = Object.keys(popoverBaseProps); -const dropdownProps = Object.assign(Object.assign(Object.assign({}, popoverBaseProps), dropdownBaseProps), useTheme.props); -const __unplugin_components_0 = defineComponent({ - name: "Dropdown", - inheritAttrs: false, - props: dropdownProps, - setup(props) { - const uncontrolledShowRef = ref(false); - const mergedShowRef = useMergedState(toRef(props, "show"), uncontrolledShowRef); - const treemateRef = computed(() => { - const { - keyField, - childrenField - } = props; - return createTreeMate(props.options, { - getKey(node) { - return node[keyField]; - }, - getDisabled(node) { - return node.disabled === true; - }, - getIgnored(node) { - return node.type === "divider" || node.type === "render"; - }, - getChildren(node) { - return node[childrenField]; - } - }); - }); - const tmNodesRef = computed(() => { - return treemateRef.value.treeNodes; - }); - const hoverKeyRef = ref(null); - const keyboardKeyRef = ref(null); - const lastToggledSubmenuKeyRef = ref(null); - const pendingKeyRef = computed(() => { - var _a, _b, _c; - return (_c = (_b = (_a = hoverKeyRef.value) !== null && _a !== void 0 ? _a : keyboardKeyRef.value) !== null && _b !== void 0 ? _b : lastToggledSubmenuKeyRef.value) !== null && _c !== void 0 ? _c : null; - }); - const pendingKeyPathRef = computed(() => treemateRef.value.getPath(pendingKeyRef.value).keyPath); - const activeKeyPathRef = computed(() => treemateRef.value.getPath(props.value).keyPath); - const keyboardEnabledRef = useMemo(() => { - return props.keyboard && mergedShowRef.value; - }); - useKeyboard({ - keydown: { - ArrowUp: { - prevent: true, - handler: handleKeydownUp - }, - ArrowRight: { - prevent: true, - handler: handleKeydownRight - }, - ArrowDown: { - prevent: true, - handler: handleKeydownDown - }, - ArrowLeft: { - prevent: true, - handler: handleKeydownLeft - }, - Enter: { - prevent: true, - handler: handleKeydownEnter - }, - Escape: handleKeydownEsc - } - }, keyboardEnabledRef); - const { - mergedClsPrefixRef, - inlineThemeDisabled - } = useConfig(props); - const themeRef = useTheme("Dropdown", "-dropdown", style, dropdownLight, props, mergedClsPrefixRef); - provide(dropdownInjectionKey, { - labelFieldRef: toRef(props, "labelField"), - childrenFieldRef: toRef(props, "childrenField"), - renderLabelRef: toRef(props, "renderLabel"), - renderIconRef: toRef(props, "renderIcon"), - hoverKeyRef, - keyboardKeyRef, - lastToggledSubmenuKeyRef, - pendingKeyPathRef, - activeKeyPathRef, - animatedRef: toRef(props, "animated"), - mergedShowRef, - nodePropsRef: toRef(props, "nodeProps"), - renderOptionRef: toRef(props, "renderOption"), - menuPropsRef: toRef(props, "menuProps"), - doSelect, - doUpdateShow - }); - watch(mergedShowRef, (value) => { - if (!props.animated && !value) { - clearPendingState(); - } - }); - function doSelect(key, node) { - const { - onSelect - } = props; - if (onSelect) call(onSelect, key, node); - } - function doUpdateShow(value) { - const { - "onUpdate:show": _onUpdateShow, - onUpdateShow - } = props; - if (_onUpdateShow) call(_onUpdateShow, value); - if (onUpdateShow) call(onUpdateShow, value); - uncontrolledShowRef.value = value; - } - function clearPendingState() { - hoverKeyRef.value = null; - keyboardKeyRef.value = null; - lastToggledSubmenuKeyRef.value = null; - } - function handleKeydownEsc() { - doUpdateShow(false); - } - function handleKeydownLeft() { - handleKeydown("left"); - } - function handleKeydownRight() { - handleKeydown("right"); - } - function handleKeydownUp() { - handleKeydown("up"); - } - function handleKeydownDown() { - handleKeydown("down"); - } - function handleKeydownEnter() { - const pendingNode = getPendingNode(); - if ((pendingNode === null || pendingNode === void 0 ? void 0 : pendingNode.isLeaf) && mergedShowRef.value) { - doSelect(pendingNode.key, pendingNode.rawNode); - doUpdateShow(false); - } - } - function getPendingNode() { - var _a; - const { - value: treeMate - } = treemateRef; - const { - value: pendingKey - } = pendingKeyRef; - if (!treeMate || pendingKey === null) return null; - return (_a = treeMate.getNode(pendingKey)) !== null && _a !== void 0 ? _a : null; - } - function handleKeydown(direction) { - const { - value: pendingKey - } = pendingKeyRef; - const { - value: { - getFirstAvailableNode: getFirstAvailableNode2 - } - } = treemateRef; - let nextKeyboardKey = null; - if (pendingKey === null) { - const firstNode = getFirstAvailableNode2(); - if (firstNode !== null) { - nextKeyboardKey = firstNode.key; - } - } else { - const currentNode = getPendingNode(); - if (currentNode) { - let nextNode; - switch (direction) { - case "down": - nextNode = currentNode.getNext(); - break; - case "up": - nextNode = currentNode.getPrev(); - break; - case "right": - nextNode = currentNode.getChild(); - break; - case "left": - nextNode = currentNode.getParent(); - break; - } - if (nextNode) nextKeyboardKey = nextNode.key; - } - } - if (nextKeyboardKey !== null) { - hoverKeyRef.value = null; - keyboardKeyRef.value = nextKeyboardKey; - } - } - const cssVarsRef = computed(() => { - const { - size, - inverted - } = props; - const { - common: { - cubicBezierEaseInOut - }, - self - } = themeRef.value; - const { - padding, - dividerColor, - borderRadius, - optionOpacityDisabled, - [createKey("optionIconSuffixWidth", size)]: optionIconSuffixWidth, - [createKey("optionSuffixWidth", size)]: optionSuffixWidth, - [createKey("optionIconPrefixWidth", size)]: optionIconPrefixWidth, - [createKey("optionPrefixWidth", size)]: optionPrefixWidth, - [createKey("fontSize", size)]: fontSize, - [createKey("optionHeight", size)]: optionHeight, - [createKey("optionIconSize", size)]: optionIconSize - } = self; - const vars = { - "--n-bezier": cubicBezierEaseInOut, - "--n-font-size": fontSize, - "--n-padding": padding, - "--n-border-radius": borderRadius, - "--n-option-height": optionHeight, - "--n-option-prefix-width": optionPrefixWidth, - "--n-option-icon-prefix-width": optionIconPrefixWidth, - "--n-option-suffix-width": optionSuffixWidth, - "--n-option-icon-suffix-width": optionIconSuffixWidth, - "--n-option-icon-size": optionIconSize, - "--n-divider-color": dividerColor, - "--n-option-opacity-disabled": optionOpacityDisabled - }; - if (inverted) { - vars["--n-color"] = self.colorInverted; - vars["--n-option-color-hover"] = self.optionColorHoverInverted; - vars["--n-option-color-active"] = self.optionColorActiveInverted; - vars["--n-option-text-color"] = self.optionTextColorInverted; - vars["--n-option-text-color-hover"] = self.optionTextColorHoverInverted; - vars["--n-option-text-color-active"] = self.optionTextColorActiveInverted; - vars["--n-option-text-color-child-active"] = self.optionTextColorChildActiveInverted; - vars["--n-prefix-color"] = self.prefixColorInverted; - vars["--n-suffix-color"] = self.suffixColorInverted; - vars["--n-group-header-text-color"] = self.groupHeaderTextColorInverted; - } else { - vars["--n-color"] = self.color; - vars["--n-option-color-hover"] = self.optionColorHover; - vars["--n-option-color-active"] = self.optionColorActive; - vars["--n-option-text-color"] = self.optionTextColor; - vars["--n-option-text-color-hover"] = self.optionTextColorHover; - vars["--n-option-text-color-active"] = self.optionTextColorActive; - vars["--n-option-text-color-child-active"] = self.optionTextColorChildActive; - vars["--n-prefix-color"] = self.prefixColor; - vars["--n-suffix-color"] = self.suffixColor; - vars["--n-group-header-text-color"] = self.groupHeaderTextColor; - } - return vars; - }); - const themeClassHandle = inlineThemeDisabled ? useThemeClass("dropdown", computed(() => `${props.size[0]}${props.inverted ? "i" : ""}`), cssVarsRef, props) : void 0; - return { - mergedClsPrefix: mergedClsPrefixRef, - mergedTheme: themeRef, - // data - tmNodes: tmNodesRef, - // show - mergedShow: mergedShowRef, - // methods - handleAfterLeave: () => { - if (!props.animated) return; - clearPendingState(); - }, - doUpdateShow, - cssVars: inlineThemeDisabled ? void 0 : cssVarsRef, - themeClass: themeClassHandle === null || themeClassHandle === void 0 ? void 0 : themeClassHandle.themeClass, - onRender: themeClassHandle === null || themeClassHandle === void 0 ? void 0 : themeClassHandle.onRender - }; - }, - render() { - const renderPopoverBody = (className, ref2, style2, onMouseenter, onMouseleave) => { - var _a; - const { - mergedClsPrefix, - menuProps - } = this; - (_a = this.onRender) === null || _a === void 0 ? void 0 : _a.call(this); - const menuNodeProps = (menuProps === null || menuProps === void 0 ? void 0 : menuProps(void 0, this.tmNodes.map((v) => v.rawNode))) || {}; - const dropdownProps2 = { - ref: createRefSetter(ref2), - class: [className, `${mergedClsPrefix}-dropdown`, this.themeClass], - clsPrefix: mergedClsPrefix, - tmNodes: this.tmNodes, - style: [...style2, this.cssVars], - showArrow: this.showArrow, - arrowStyle: this.arrowStyle, - scrollable: this.scrollable, - onMouseenter, - onMouseleave - }; - return h(NDropdownMenu, mergeProps(this.$attrs, dropdownProps2, menuNodeProps)); - }; - const { - mergedTheme - } = this; - const popoverProps = { - show: this.mergedShow, - theme: mergedTheme.peers.Popover, - themeOverrides: mergedTheme.peerOverrides.Popover, - internalOnAfterLeave: this.handleAfterLeave, - internalRenderBody: renderPopoverBody, - onUpdateShow: this.doUpdateShow, - "onUpdate:show": void 0 - }; - return h(__unplugin_components_5, Object.assign({}, keep(this.$props, popoverPropKeys), popoverProps), { - trigger: () => { - var _a, _b; - return (_b = (_a = this.$slots).default) === null || _b === void 0 ? void 0 : _b.call(_a); - } - }); - } -}); -const alipay = "" + new URL("alipay-CcfmUela.png", import.meta.url).href; -const wechat = "" + new URL("wechat-DjfpYhZS.png", import.meta.url).href; -const _hoisted_1$1 = { class: "relative inline-block" }; -const _hoisted_2$1 = { class: "p-6 rounded-lg shadow-lg bg-light dark:bg-gray-800" }; -const _hoisted_3$1 = { class: "flex gap-10" }; -const _hoisted_4$1 = { class: "flex flex-col items-center gap-2" }; -const _hoisted_5$1 = { class: "flex flex-col items-center gap-2" }; -const _sfc_main$1 = { - __name: "Coffee", - props: { - alipayQR: { - type: String, - required: true - }, - wechatQR: { - type: String, - required: true - } - }, - setup(__props) { - const message = useMessage(); - const copyQQ = () => { - navigator.clipboard.writeText("789288579"); - message.success("已复制到剪贴板"); - }; - return (_ctx, _cache) => { - return openBlock(), createElementBlock("div", _hoisted_1$1, [ - createVNode(unref(__unplugin_components_5), { - trigger: "hover", - placement: "top", - "show-arrow": true, - raw: true, - delay: 100 - }, { - trigger: withCtx(() => [ - renderSlot(_ctx.$slots, "default", {}, () => [ - createVNode(unref(Button), { - quaternary: "", - class: "inline-flex items-center gap-2 px-4 py-2 transition-all duration-300 hover:-translate-y-0.5" - }, { - default: withCtx(() => _cache[0] || (_cache[0] = [ - createTextVNode(" 请我喝咖啡 ") - ])), - _: 1 - }) - ]) - ]), - default: withCtx(() => [ - createBaseVNode("div", _hoisted_2$1, [ - createBaseVNode("div", _hoisted_3$1, [ - createBaseVNode("div", _hoisted_4$1, [ - createVNode(unref(NImage), { - src: __props.alipayQR, - alt: "支付宝收款码", - class: "w-32 h-32 rounded-lg cursor-none", - "preview-disabled": "" - }, null, 8, ["src"]), - _cache[1] || (_cache[1] = createBaseVNode("span", { class: "text-sm text-gray-700 dark:text-gray-200" }, "支付宝", -1)) - ]), - createBaseVNode("div", _hoisted_5$1, [ - createVNode(unref(NImage), { - src: __props.wechatQR, - alt: "微信收款码", - class: "w-32 h-32 rounded-lg cursor-none", - "preview-disabled": "" - }, null, 8, ["src"]), - _cache[2] || (_cache[2] = createBaseVNode("span", { class: "text-sm text-gray-700 dark:text-gray-200" }, "微信支付", -1)) - ]) - ]), - createBaseVNode("div", { class: "mt-4" }, [ - createBaseVNode("p", { - class: "text-sm text-gray-700 dark:text-gray-200 text-center cursor-pointer hover:text-green-500", - onClick: copyQQ - }, " QQ群:789288579 ") - ]) - ]) - ]), - _: 3 - }) - ]); - }; - } -}; -const USER_SET_OPTIONS = [ - // { - // label: '打卡', - // key: 'card', - // }, - // { - // label: '听歌升级', - // key: 'card_music', - // }, - // { - // label: '歌曲次数', - // key: 'listen', - // }, - { - label: "退出登录", - key: "logout" - }, - { - label: "设置", - key: "set" - } -]; -const SEARCH_TYPES = [ - { - label: "单曲", - key: 1 - }, - { - label: "专辑", - key: 10 - }, - // { - // label: '歌手', - // key: 100, - // }, - { - label: "歌单", - key: 1e3 - }, - // { - // label: '用户', - // key: 1002, - // }, - { - label: "MV", - key: 1004 - } - // { - // label: '歌词', - // key: 1006, - // }, - // { - // label: '电台', - // key: 1009, - // }, - // { - // label: '视频', - // key: 1014, - // }, - // { - // label: '综合', - // key: 1018, - // }, -]; -const _hoisted_1 = { class: "search-box flex" }; -const _hoisted_2 = { class: "search-box-input flex-1" }; -const _hoisted_3 = { class: "w-20 px-3 flex justify-between items-center" }; -const _hoisted_4 = { class: "user-box" }; -const _hoisted_5 = { class: "user-popover" }; -const _hoisted_6 = { class: "username" }; -const _hoisted_7 = { class: "menu-items" }; -const _hoisted_8 = { class: "menu-item" }; -const _hoisted_9 = { class: "version-info" }; -const _hoisted_10 = { class: "version-number" }; -const _sfc_main = /* @__PURE__ */ defineComponent({ - __name: "SearchBar", - setup(__props) { - const router = useRouter(); - const store = useStore(); - const userSetOptions = ref(USER_SET_OPTIONS); - const hotSearchKeyword = ref("搜索点什么吧..."); - const hotSearchValue = ref(""); - const loadHotSearchKeyword = async () => { - const { data } = await getSearchKeyword(); - hotSearchKeyword.value = data.data.showKeyword; - hotSearchValue.value = data.data.realkeyword; - }; - const loadPage = async () => { - const token = localStorage.getItem("token"); - if (!token) return; - const { data } = await getUserDetail(); - store.state.user = data.profile; - localStorage.setItem("user", JSON.stringify(data.profile)); - }; - loadPage(); - watchEffect(() => { - if (store.state.user) { - userSetOptions.value = USER_SET_OPTIONS; - } else { - userSetOptions.value = USER_SET_OPTIONS.filter((item) => item.key !== "logout"); - } - }); - const restartApp = () => { - window.electron.ipcRenderer.send("restart"); - }; - const toLogin = () => { - router.push("/login"); - }; - onMounted(() => { - loadHotSearchKeyword(); - loadPage(); - checkForUpdates(); - }); - const isDarkTheme = computed({ - get: () => store.state.theme === "dark", - set: () => store.commit("toggleTheme") - }); - const searchValue = ref(""); - const search = () => { - const { value } = searchValue; - if (value === "") { - searchValue.value = hotSearchValue.value; - return; - } - if (router.currentRoute.value.path === "/search") { - store.state.searchValue = value; - return; - } - router.push({ - path: "/search", - query: { - keyword: value - } - }); - }; - const selectSearchType = (key) => { - store.state.searchType = key; - }; - const searchTypeOptions = ref(SEARCH_TYPES); - const selectItem = async (key) => { - switch (key) { - case "logout": - logout().then(() => { - store.state.user = null; - localStorage.clear(); - router.push("/login"); - }); - break; - case "login": - router.push("/login"); - break; - case "set": - router.push("/set"); - break; - case "user": - router.push("/user"); - break; - } - }; - const toGithub = () => { - window.open("https://github.com/algerkong/AlgerMusicPlayer", "_blank"); - }; - const updateInfo = ref({ - hasUpdate: false, - latestVersion: "", - currentVersion: config.version, - releaseInfo: null - }); - const checkForUpdates = async () => { - try { - const result = await checkUpdate(); - updateInfo.value = result; - } catch (error) { - console.error("检查更新失败:", error); - } - }; - const toGithubRelease = () => { - if (updateInfo.value.hasUpdate) { - window.open("https://github.com/algerkong/AlgerMusicPlayer/releases/latest", "_blank"); - } else { - window.open("https://github.com/algerkong/AlgerMusicPlayer/releases", "_blank"); - } - }; - return (_ctx, _cache) => { - const _component_n_dropdown = __unplugin_components_0; - const _component_n_input = __unplugin_components_1; - const _component_n_avatar = __unplugin_components_2; - const _component_n_switch = __unplugin_components_3; - const _component_n_tag = __unplugin_components_4; - const _component_n_popover = __unplugin_components_5; - return openBlock(), createElementBlock("div", _hoisted_1, [ - createBaseVNode("div", _hoisted_2, [ - createVNode(_component_n_input, { - value: searchValue.value, - "onUpdate:value": _cache[0] || (_cache[0] = ($event) => searchValue.value = $event), - size: "medium", - round: "", - placeholder: hotSearchKeyword.value, - class: "border dark:border-gray-600 border-gray-200", - onKeydown: withKeys(search, ["enter"]) - }, { - prefix: withCtx(() => _cache[5] || (_cache[5] = [ - createBaseVNode("i", { class: "iconfont icon-search" }, null, -1) - ])), - suffix: withCtx(() => [ - createVNode(_component_n_dropdown, { - trigger: "hover", - options: searchTypeOptions.value, - onSelect: selectSearchType - }, { - default: withCtx(() => [ - createBaseVNode("div", _hoisted_3, [ - createBaseVNode("div", null, toDisplayString(searchTypeOptions.value.find((item) => item.key === unref(store).state.searchType)?.label), 1), - _cache[6] || (_cache[6] = createBaseVNode("i", { class: "iconfont icon-xiasanjiaoxing" }, null, -1)) - ]) - ]), - _: 1 - }, 8, ["options"]) - ]), - _: 1 - }, 8, ["value", "placeholder"]) - ]), - createVNode(_component_n_popover, { - trigger: "hover", - placement: "bottom", - "show-arrow": false, - raw: "" - }, { - trigger: withCtx(() => [ - createBaseVNode("div", _hoisted_4, [ - unref(store).state.user ? (openBlock(), createBlock(_component_n_avatar, { - key: 0, - class: "cursor-pointer", - circle: "", - size: "medium", - src: unref(getImgUrl)(unref(store).state.user.avatarUrl), - onClick: _cache[1] || (_cache[1] = ($event) => selectItem("user")) - }, null, 8, ["src"])) : (openBlock(), createElementBlock("div", { - key: 1, - class: "mx-2 rounded-full cursor-pointer text-sm", - onClick: toLogin - }, "登录")) - ]) - ]), - default: withCtx(() => [ - createBaseVNode("div", _hoisted_5, [ - unref(store).state.user ? (openBlock(), createElementBlock("div", { - key: 0, - class: "user-header", - onClick: _cache[2] || (_cache[2] = ($event) => selectItem("user")) - }, [ - createVNode(_component_n_avatar, { - circle: "", - size: "small", - src: unref(getImgUrl)(unref(store).state.user?.avatarUrl) - }, null, 8, ["src"]), - createBaseVNode("span", _hoisted_6, toDisplayString(unref(store).state.user?.nickname || "Theodore"), 1) - ])) : createCommentVNode("", true), - createBaseVNode("div", _hoisted_7, [ - !unref(store).state.user ? (openBlock(), createElementBlock("div", { - key: 0, - class: "menu-item", - onClick: toLogin - }, _cache[7] || (_cache[7] = [ - createBaseVNode("i", { class: "iconfont ri-login-box-line" }, null, -1), - createBaseVNode("span", null, "去登录", -1) - ]))) : createCommentVNode("", true), - createBaseVNode("div", { - class: "menu-item", - onClick: _cache[3] || (_cache[3] = ($event) => selectItem("set")) - }, _cache[8] || (_cache[8] = [ - createBaseVNode("i", { class: "iconfont ri-settings-3-line" }, null, -1), - createBaseVNode("span", null, "设置", -1) - ])), - createBaseVNode("div", _hoisted_8, [ - createBaseVNode("i", { - class: normalizeClass(["iconfont", isDarkTheme.value ? "ri-moon-line" : "ri-sun-line"]) - }, null, 2), - _cache[11] || (_cache[11] = createBaseVNode("span", null, "主题", -1)), - createVNode(_component_n_switch, { - value: isDarkTheme.value, - "onUpdate:value": _cache[4] || (_cache[4] = ($event) => isDarkTheme.value = $event), - class: "ml-auto" - }, { - checked: withCtx(() => _cache[9] || (_cache[9] = [ - createBaseVNode("i", { class: "ri-moon-line" }, null, -1) - ])), - unchecked: withCtx(() => _cache[10] || (_cache[10] = [ - createBaseVNode("i", { class: "ri-sun-line" }, null, -1) - ])), - _: 1 - }, 8, ["value"]) - ]), - createBaseVNode("div", { - class: "menu-item", - onClick: restartApp - }, _cache[12] || (_cache[12] = [ - createBaseVNode("i", { class: "iconfont ri-restart-line" }, null, -1), - createBaseVNode("span", null, "重启", -1) - ])), - createBaseVNode("div", { - class: "menu-item", - onClick: toGithubRelease - }, [ - _cache[13] || (_cache[13] = createBaseVNode("i", { class: "iconfont ri-refresh-line" }, null, -1)), - _cache[14] || (_cache[14] = createBaseVNode("span", null, "当前版本", -1)), - createBaseVNode("div", _hoisted_9, [ - createBaseVNode("span", _hoisted_10, toDisplayString(updateInfo.value.currentVersion), 1), - updateInfo.value.hasUpdate ? (openBlock(), createBlock(_component_n_tag, { - key: 0, - type: "success", - size: "small", - class: "ml-1" - }, { - default: withCtx(() => [ - createTextVNode(" New " + toDisplayString(updateInfo.value.latestVersion), 1) - ]), - _: 1 - })) : createCommentVNode("", true) - ]) - ]) - ]) - ]) - ]), - _: 1 - }), - createVNode(_sfc_main$1, { - "alipay-q-r": unref(alipay), - "wechat-q-r": unref(wechat) - }, { - default: withCtx(() => [ - createBaseVNode("div", { - class: "github", - onClick: toGithub - }, _cache[15] || (_cache[15] = [ - createBaseVNode("i", { class: "ri-github-fill" }, null, -1) - ])) - ]), - _: 1 - }, 8, ["alipay-q-r", "wechat-q-r"]) - ]); - }; - } -}); -const SearchBar = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-064c45e9"]]); -export { - SearchBar as default -}; diff --git a/out/renderer/assets/SearchBar-Cx7zzS9t.js.gz b/out/renderer/assets/SearchBar-Cx7zzS9t.js.gz deleted file mode 100644 index 2d44eb4..0000000 Binary files a/out/renderer/assets/SearchBar-Cx7zzS9t.js.gz and /dev/null differ diff --git a/out/renderer/assets/Slider-BA6NituQ.js b/out/renderer/assets/Slider-BA6NituQ.js deleted file mode 100644 index 487e189..0000000 --- a/out/renderer/assets/Slider-BA6NituQ.js +++ /dev/null @@ -1,864 +0,0 @@ -import { m as c, p as cB, W as cM, Y as cE, aM as fadeInScaleUpTransition, aN as insideModal, aO as insidePopover, aP as onBeforeUpdate, q as useTheme, d as defineComponent, x as useConfig, aQ as sliderLight, r as ref, z as useFormItem, G as computed, A as toRef, C as useMergedState, E as watch, a as onBeforeUnmount, ap as useThemeClass, aR as isMounted, l as h, K as resolveSlot, ak as Transition, L as call, J as on, aS as off, M as nextTick } from "./index-DKaFsuse.js"; -import { d as useAdjustedTo, B as Binder, V as VTarget, e as VFollower } from "./use-locale-DLWAOXez.js"; -const style = c([cB("slider", ` - display: block; - padding: calc((var(--n-handle-size) - var(--n-rail-height)) / 2) 0; - position: relative; - z-index: 0; - width: 100%; - cursor: pointer; - user-select: none; - -webkit-user-select: none; - `, [cM("reverse", [cB("slider-handles", [cB("slider-handle-wrapper", ` - transform: translate(50%, -50%); - `)]), cB("slider-dots", [cB("slider-dot", ` - transform: translateX(50%, -50%); - `)]), cM("vertical", [cB("slider-handles", [cB("slider-handle-wrapper", ` - transform: translate(-50%, -50%); - `)]), cB("slider-marks", [cB("slider-mark", ` - transform: translateY(calc(-50% + var(--n-dot-height) / 2)); - `)]), cB("slider-dots", [cB("slider-dot", ` - transform: translateX(-50%) translateY(0); - `)])])]), cM("vertical", ` - box-sizing: content-box; - padding: 0 calc((var(--n-handle-size) - var(--n-rail-height)) / 2); - width: var(--n-rail-width-vertical); - height: 100%; - `, [cB("slider-handles", ` - top: calc(var(--n-handle-size) / 2); - right: 0; - bottom: calc(var(--n-handle-size) / 2); - left: 0; - `, [cB("slider-handle-wrapper", ` - top: unset; - left: 50%; - transform: translate(-50%, 50%); - `)]), cB("slider-rail", ` - height: 100%; - `, [cE("fill", ` - top: unset; - right: 0; - bottom: unset; - left: 0; - `)]), cM("with-mark", ` - width: var(--n-rail-width-vertical); - margin: 0 32px 0 8px; - `), cB("slider-marks", ` - top: calc(var(--n-handle-size) / 2); - right: unset; - bottom: calc(var(--n-handle-size) / 2); - left: 22px; - font-size: var(--n-mark-font-size); - `, [cB("slider-mark", ` - transform: translateY(50%); - white-space: nowrap; - `)]), cB("slider-dots", ` - top: calc(var(--n-handle-size) / 2); - right: unset; - bottom: calc(var(--n-handle-size) / 2); - left: 50%; - `, [cB("slider-dot", ` - transform: translateX(-50%) translateY(50%); - `)])]), cM("disabled", ` - cursor: not-allowed; - opacity: var(--n-opacity-disabled); - `, [cB("slider-handle", ` - cursor: not-allowed; - `)]), cM("with-mark", ` - width: 100%; - margin: 8px 0 32px 0; - `), c("&:hover", [cB("slider-rail", { - backgroundColor: "var(--n-rail-color-hover)" -}, [cE("fill", { - backgroundColor: "var(--n-fill-color-hover)" -})]), cB("slider-handle", { - boxShadow: "var(--n-handle-box-shadow-hover)" -})]), cM("active", [cB("slider-rail", { - backgroundColor: "var(--n-rail-color-hover)" -}, [cE("fill", { - backgroundColor: "var(--n-fill-color-hover)" -})]), cB("slider-handle", { - boxShadow: "var(--n-handle-box-shadow-hover)" -})]), cB("slider-marks", ` - position: absolute; - top: 18px; - left: calc(var(--n-handle-size) / 2); - right: calc(var(--n-handle-size) / 2); - `, [cB("slider-mark", ` - position: absolute; - transform: translateX(-50%); - white-space: nowrap; - `)]), cB("slider-rail", ` - width: 100%; - position: relative; - height: var(--n-rail-height); - background-color: var(--n-rail-color); - transition: background-color .3s var(--n-bezier); - border-radius: calc(var(--n-rail-height) / 2); - `, [cE("fill", ` - position: absolute; - top: 0; - bottom: 0; - border-radius: calc(var(--n-rail-height) / 2); - transition: background-color .3s var(--n-bezier); - background-color: var(--n-fill-color); - `)]), cB("slider-handles", ` - position: absolute; - top: 0; - right: calc(var(--n-handle-size) / 2); - bottom: 0; - left: calc(var(--n-handle-size) / 2); - `, [cB("slider-handle-wrapper", ` - outline: none; - position: absolute; - top: 50%; - transform: translate(-50%, -50%); - cursor: pointer; - display: flex; - `, [cB("slider-handle", ` - height: var(--n-handle-size); - width: var(--n-handle-size); - border-radius: 50%; - overflow: hidden; - transition: box-shadow .2s var(--n-bezier), background-color .3s var(--n-bezier); - background-color: var(--n-handle-color); - box-shadow: var(--n-handle-box-shadow); - `, [c("&:hover", ` - box-shadow: var(--n-handle-box-shadow-hover); - `)]), c("&:focus", [cB("slider-handle", ` - box-shadow: var(--n-handle-box-shadow-focus); - `, [c("&:hover", ` - box-shadow: var(--n-handle-box-shadow-active); - `)])])])]), cB("slider-dots", ` - position: absolute; - top: 50%; - left: calc(var(--n-handle-size) / 2); - right: calc(var(--n-handle-size) / 2); - `, [cM("transition-disabled", [cB("slider-dot", "transition: none;")]), cB("slider-dot", ` - transition: - border-color .3s var(--n-bezier), - box-shadow .3s var(--n-bezier), - background-color .3s var(--n-bezier); - position: absolute; - transform: translate(-50%, -50%); - height: var(--n-dot-height); - width: var(--n-dot-width); - border-radius: var(--n-dot-border-radius); - overflow: hidden; - box-sizing: border-box; - border: var(--n-dot-border); - background-color: var(--n-dot-color); - `, [cM("active", "border: var(--n-dot-border-active);")])])]), cB("slider-handle-indicator", ` - font-size: var(--n-font-size); - padding: 6px 10px; - border-radius: var(--n-indicator-border-radius); - color: var(--n-indicator-text-color); - background-color: var(--n-indicator-color); - box-shadow: var(--n-indicator-box-shadow); - `, [fadeInScaleUpTransition()]), cB("slider-handle-indicator", ` - font-size: var(--n-font-size); - padding: 6px 10px; - border-radius: var(--n-indicator-border-radius); - color: var(--n-indicator-text-color); - background-color: var(--n-indicator-color); - box-shadow: var(--n-indicator-box-shadow); - `, [cM("top", ` - margin-bottom: 12px; - `), cM("right", ` - margin-left: 12px; - `), cM("bottom", ` - margin-top: 12px; - `), cM("left", ` - margin-right: 12px; - `), fadeInScaleUpTransition()]), insideModal(cB("slider", [cB("slider-dot", "background-color: var(--n-dot-color-modal);")])), insidePopover(cB("slider", [cB("slider-dot", "background-color: var(--n-dot-color-popover);")]))]); -function isTouchEvent(e) { - return window.TouchEvent && e instanceof window.TouchEvent; -} -function useRefs() { - const refs = /* @__PURE__ */ new Map(); - const setRefs = (index) => (el) => { - refs.set(index, el); - }; - onBeforeUpdate(() => { - refs.clear(); - }); - return [refs, setRefs]; -} -const eventButtonLeft = 0; -const sliderProps = Object.assign(Object.assign({}, useTheme.props), { - to: useAdjustedTo.propTo, - defaultValue: { - type: [Number, Array], - default: 0 - }, - marks: Object, - disabled: { - type: Boolean, - default: void 0 - }, - formatTooltip: Function, - keyboard: { - type: Boolean, - default: true - }, - min: { - type: Number, - default: 0 - }, - max: { - type: Number, - default: 100 - }, - step: { - type: [Number, String], - default: 1 - }, - range: Boolean, - value: [Number, Array], - placement: String, - showTooltip: { - type: Boolean, - default: void 0 - }, - tooltip: { - type: Boolean, - default: true - }, - vertical: Boolean, - reverse: Boolean, - "onUpdate:value": [Function, Array], - onUpdateValue: [Function, Array], - onDragstart: [Function], - onDragend: [Function] -}); -const __unplugin_components_0 = defineComponent({ - name: "Slider", - props: sliderProps, - setup(props) { - const { - mergedClsPrefixRef, - namespaceRef, - inlineThemeDisabled - } = useConfig(props); - const themeRef = useTheme("Slider", "-slider", style, sliderLight, props, mergedClsPrefixRef); - const handleRailRef = ref(null); - const [handleRefs, setHandleRefs] = useRefs(); - const [followerRefs, setFollowerRefs] = useRefs(); - const followerEnabledIndexSetRef = ref(/* @__PURE__ */ new Set()); - const formItem = useFormItem(props); - const { - mergedDisabledRef - } = formItem; - const precisionRef = computed(() => { - const { - step - } = props; - if (Number(step) <= 0 || step === "mark") return 0; - const stepString = step.toString(); - let precision = 0; - if (stepString.includes(".")) { - precision = stepString.length - stepString.indexOf(".") - 1; - } - return precision; - }); - const uncontrolledValueRef = ref(props.defaultValue); - const controlledValueRef = toRef(props, "value"); - const mergedValueRef = useMergedState(controlledValueRef, uncontrolledValueRef); - const arrifiedValueRef = computed(() => { - const { - value: mergedValue - } = mergedValueRef; - return (props.range ? mergedValue : [mergedValue]).map(clampValue); - }); - const handleCountExceeds2Ref = computed(() => arrifiedValueRef.value.length > 2); - const mergedPlacementRef = computed(() => { - return props.placement === void 0 ? props.vertical ? "right" : "top" : props.placement; - }); - const markValuesRef = computed(() => { - const { - marks - } = props; - return marks ? Object.keys(marks).map(Number.parseFloat) : null; - }); - const activeIndexRef = ref(-1); - const previousIndexRef = ref(-1); - const hoverIndexRef = ref(-1); - const draggingRef = ref(false); - const dotTransitionDisabledRef = ref(false); - const styleDirectionRef = computed(() => { - const { - vertical, - reverse - } = props; - const left = reverse ? "right" : "left"; - const bottom = reverse ? "top" : "bottom"; - return vertical ? bottom : left; - }); - const fillStyleRef = computed(() => { - if (handleCountExceeds2Ref.value) return; - const values = arrifiedValueRef.value; - const start = valueToPercentage(props.range ? Math.min(...values) : props.min); - const end = valueToPercentage(props.range ? Math.max(...values) : values[0]); - const { - value: styleDirection - } = styleDirectionRef; - return props.vertical ? { - [styleDirection]: `${start}%`, - height: `${end - start}%` - } : { - [styleDirection]: `${start}%`, - width: `${end - start}%` - }; - }); - const markInfosRef = computed(() => { - const mergedMarks = []; - const { - marks - } = props; - if (marks) { - const orderValues = arrifiedValueRef.value.slice(); - orderValues.sort((a, b) => a - b); - const { - value: styleDirection - } = styleDirectionRef; - const { - value: handleCountExceeds2 - } = handleCountExceeds2Ref; - const { - range - } = props; - const isActive = handleCountExceeds2 ? () => false : (num) => range ? num >= orderValues[0] && num <= orderValues[orderValues.length - 1] : num <= orderValues[0]; - for (const key of Object.keys(marks)) { - const num = Number(key); - mergedMarks.push({ - active: isActive(num), - key: num, - label: marks[key], - style: { - [styleDirection]: `${valueToPercentage(num)}%` - } - }); - } - } - return mergedMarks; - }); - function getHandleStyle(value, index) { - const percentage = valueToPercentage(value); - const { - value: styleDirection - } = styleDirectionRef; - return { - [styleDirection]: `${percentage}%`, - zIndex: index === activeIndexRef.value ? 1 : 0 - }; - } - function isShowTooltip(index) { - return props.showTooltip || hoverIndexRef.value === index || activeIndexRef.value === index && draggingRef.value; - } - function shouldKeepTooltipTransition(index) { - if (!draggingRef.value) return true; - return !(activeIndexRef.value === index && previousIndexRef.value === index); - } - function focusActiveHandle(index) { - var _a; - if (~index) { - activeIndexRef.value = index; - (_a = handleRefs.get(index)) === null || _a === void 0 ? void 0 : _a.focus(); - } - } - function syncPosition() { - followerRefs.forEach((inst, index) => { - if (isShowTooltip(index)) inst.syncPosition(); - }); - } - function doUpdateValue(value) { - const { - "onUpdate:value": _onUpdateValue, - onUpdateValue - } = props; - const { - nTriggerFormInput, - nTriggerFormChange - } = formItem; - if (onUpdateValue) call(onUpdateValue, value); - if (_onUpdateValue) call(_onUpdateValue, value); - uncontrolledValueRef.value = value; - nTriggerFormInput(); - nTriggerFormChange(); - } - function dispatchValueUpdate(value) { - const { - range - } = props; - if (range) { - if (Array.isArray(value)) { - const { - value: oldValues - } = arrifiedValueRef; - if (value.join() !== oldValues.join()) { - doUpdateValue(value); - } - } - } else if (!Array.isArray(value)) { - const oldValue = arrifiedValueRef.value[0]; - if (oldValue !== value) { - doUpdateValue(value); - } - } - } - function doDispatchValue(value, index) { - if (props.range) { - const values = arrifiedValueRef.value.slice(); - values.splice(index, 1, value); - dispatchValueUpdate(values); - } else { - dispatchValueUpdate(value); - } - } - function sanitizeValue(value, currentValue, stepBuffer) { - const stepping = stepBuffer !== void 0; - if (!stepBuffer) { - stepBuffer = value - currentValue > 0 ? 1 : -1; - } - const markValues = markValuesRef.value || []; - const { - step - } = props; - if (step === "mark") { - const closestMark2 = getClosestMark(value, markValues.concat(currentValue), stepping ? stepBuffer : void 0); - return closestMark2 ? closestMark2.value : currentValue; - } - if (step <= 0) return currentValue; - const { - value: precision - } = precisionRef; - let closestMark; - if (stepping) { - const currentStep = Number((currentValue / step).toFixed(precision)); - const actualStep = Math.floor(currentStep); - const leftStep = currentStep > actualStep ? actualStep : actualStep - 1; - const rightStep = currentStep < actualStep ? actualStep : actualStep + 1; - closestMark = getClosestMark(currentValue, [Number((leftStep * step).toFixed(precision)), Number((rightStep * step).toFixed(precision)), ...markValues], stepBuffer); - } else { - const roundValue = getRoundValue(value); - closestMark = getClosestMark(value, [...markValues, roundValue]); - } - return closestMark ? clampValue(closestMark.value) : currentValue; - } - function clampValue(value) { - return Math.min(props.max, Math.max(props.min, value)); - } - function valueToPercentage(value) { - const { - max, - min - } = props; - return (value - min) / (max - min) * 100; - } - function percentageToValue(percentage) { - const { - max, - min - } = props; - return min + (max - min) * percentage; - } - function getRoundValue(value) { - const { - step, - min - } = props; - if (Number(step) <= 0 || step === "mark") return value; - const newValue = Math.round((value - min) / step) * step + min; - return Number(newValue.toFixed(precisionRef.value)); - } - function getClosestMark(currentValue, markValues = markValuesRef.value, buffer) { - if (!(markValues === null || markValues === void 0 ? void 0 : markValues.length)) return null; - let closestMark = null; - let index = -1; - while (++index < markValues.length) { - const diff = markValues[index] - currentValue; - const distance = Math.abs(diff); - if ( - // find marks in the same direction - (buffer === void 0 || diff * buffer > 0) && (closestMark === null || distance < closestMark.distance) - ) { - closestMark = { - index, - distance, - value: markValues[index] - }; - } - } - return closestMark; - } - function getPointValue(event) { - const railEl = handleRailRef.value; - if (!railEl) return; - const touchEvent = isTouchEvent(event) ? event.touches[0] : event; - const railRect = railEl.getBoundingClientRect(); - let percentage; - if (props.vertical) { - percentage = (railRect.bottom - touchEvent.clientY) / railRect.height; - } else { - percentage = (touchEvent.clientX - railRect.left) / railRect.width; - } - if (props.reverse) { - percentage = 1 - percentage; - } - return percentageToValue(percentage); - } - function handleRailKeyDown(e) { - if (mergedDisabledRef.value || !props.keyboard) return; - const { - vertical, - reverse - } = props; - switch (e.key) { - case "ArrowUp": - e.preventDefault(); - handleStepValue(vertical && reverse ? -1 : 1); - break; - case "ArrowRight": - e.preventDefault(); - handleStepValue(!vertical && reverse ? -1 : 1); - break; - case "ArrowDown": - e.preventDefault(); - handleStepValue(vertical && reverse ? 1 : -1); - break; - case "ArrowLeft": - e.preventDefault(); - handleStepValue(!vertical && reverse ? 1 : -1); - break; - } - } - function handleStepValue(ratio) { - const activeIndex = activeIndexRef.value; - if (activeIndex === -1) return; - const { - step - } = props; - const currentValue = arrifiedValueRef.value[activeIndex]; - const nextValue = Number(step) <= 0 || step === "mark" ? currentValue : currentValue + step * ratio; - doDispatchValue( - // Avoid the number of value does not change when `step` is null - sanitizeValue(nextValue, currentValue, ratio > 0 ? 1 : -1), - activeIndex - ); - } - function handleRailMouseDown(event) { - var _a, _b; - if (mergedDisabledRef.value) return; - if (!isTouchEvent(event) && event.button !== eventButtonLeft) { - return; - } - const pointValue = getPointValue(event); - if (pointValue === void 0) return; - const values = arrifiedValueRef.value.slice(); - const activeIndex = props.range ? (_b = (_a = getClosestMark(pointValue, values)) === null || _a === void 0 ? void 0 : _a.index) !== null && _b !== void 0 ? _b : -1 : 0; - if (activeIndex !== -1) { - event.preventDefault(); - focusActiveHandle(activeIndex); - startDragging(); - doDispatchValue(sanitizeValue(pointValue, arrifiedValueRef.value[activeIndex]), activeIndex); - } - } - function startDragging() { - if (!draggingRef.value) { - draggingRef.value = true; - if (props.onDragstart) call(props.onDragstart); - on("touchend", document, handleMouseUp); - on("mouseup", document, handleMouseUp); - on("touchmove", document, handleMouseMove); - on("mousemove", document, handleMouseMove); - } - } - function stopDragging() { - if (draggingRef.value) { - draggingRef.value = false; - if (props.onDragend) call(props.onDragend); - off("touchend", document, handleMouseUp); - off("mouseup", document, handleMouseUp); - off("touchmove", document, handleMouseMove); - off("mousemove", document, handleMouseMove); - } - } - function handleMouseMove(event) { - const { - value: activeIndex - } = activeIndexRef; - if (!draggingRef.value || activeIndex === -1) { - stopDragging(); - return; - } - const pointValue = getPointValue(event); - if (pointValue === void 0) return; - doDispatchValue(sanitizeValue(pointValue, arrifiedValueRef.value[activeIndex]), activeIndex); - } - function handleMouseUp() { - stopDragging(); - } - function handleHandleFocus(index) { - activeIndexRef.value = index; - if (!mergedDisabledRef.value) { - hoverIndexRef.value = index; - } - } - function handleHandleBlur(index) { - if (activeIndexRef.value === index) { - activeIndexRef.value = -1; - stopDragging(); - } - if (hoverIndexRef.value === index) { - hoverIndexRef.value = -1; - } - } - function handleHandleMouseEnter(index) { - hoverIndexRef.value = index; - } - function handleHandleMouseLeave(index) { - if (hoverIndexRef.value === index) { - hoverIndexRef.value = -1; - } - } - watch(activeIndexRef, (_, previous) => void nextTick(() => previousIndexRef.value = previous)); - watch(mergedValueRef, () => { - if (props.marks) { - if (dotTransitionDisabledRef.value) return; - dotTransitionDisabledRef.value = true; - void nextTick(() => { - dotTransitionDisabledRef.value = false; - }); - } - void nextTick(syncPosition); - }); - onBeforeUnmount(() => { - stopDragging(); - }); - const cssVarsRef = computed(() => { - const { - self: { - markFontSize, - railColor, - railColorHover, - fillColor, - fillColorHover, - handleColor, - opacityDisabled, - dotColor, - dotColorModal, - handleBoxShadow, - handleBoxShadowHover, - handleBoxShadowActive, - handleBoxShadowFocus, - dotBorder, - dotBoxShadow, - railHeight, - railWidthVertical, - handleSize, - dotHeight, - dotWidth, - dotBorderRadius, - fontSize, - dotBorderActive, - dotColorPopover - }, - common: { - cubicBezierEaseInOut - } - } = themeRef.value; - return { - "--n-bezier": cubicBezierEaseInOut, - "--n-dot-border": dotBorder, - "--n-dot-border-active": dotBorderActive, - "--n-dot-border-radius": dotBorderRadius, - "--n-dot-box-shadow": dotBoxShadow, - "--n-dot-color": dotColor, - "--n-dot-color-modal": dotColorModal, - "--n-dot-color-popover": dotColorPopover, - "--n-dot-height": dotHeight, - "--n-dot-width": dotWidth, - "--n-fill-color": fillColor, - "--n-fill-color-hover": fillColorHover, - "--n-font-size": fontSize, - "--n-handle-box-shadow": handleBoxShadow, - "--n-handle-box-shadow-active": handleBoxShadowActive, - "--n-handle-box-shadow-focus": handleBoxShadowFocus, - "--n-handle-box-shadow-hover": handleBoxShadowHover, - "--n-handle-color": handleColor, - "--n-handle-size": handleSize, - "--n-opacity-disabled": opacityDisabled, - "--n-rail-color": railColor, - "--n-rail-color-hover": railColorHover, - "--n-rail-height": railHeight, - "--n-rail-width-vertical": railWidthVertical, - "--n-mark-font-size": markFontSize - }; - }); - const themeClassHandle = inlineThemeDisabled ? useThemeClass("slider", void 0, cssVarsRef, props) : void 0; - const indicatorCssVarsRef = computed(() => { - const { - self: { - fontSize, - indicatorColor, - indicatorBoxShadow, - indicatorTextColor, - indicatorBorderRadius - } - } = themeRef.value; - return { - "--n-font-size": fontSize, - "--n-indicator-border-radius": indicatorBorderRadius, - "--n-indicator-box-shadow": indicatorBoxShadow, - "--n-indicator-color": indicatorColor, - "--n-indicator-text-color": indicatorTextColor - }; - }); - const indicatorThemeClassHandle = inlineThemeDisabled ? useThemeClass("slider-indicator", void 0, indicatorCssVarsRef, props) : void 0; - return { - mergedClsPrefix: mergedClsPrefixRef, - namespace: namespaceRef, - uncontrolledValue: uncontrolledValueRef, - mergedValue: mergedValueRef, - mergedDisabled: mergedDisabledRef, - mergedPlacement: mergedPlacementRef, - isMounted: isMounted(), - adjustedTo: useAdjustedTo(props), - dotTransitionDisabled: dotTransitionDisabledRef, - markInfos: markInfosRef, - isShowTooltip, - shouldKeepTooltipTransition, - handleRailRef, - setHandleRefs, - setFollowerRefs, - fillStyle: fillStyleRef, - getHandleStyle, - activeIndex: activeIndexRef, - arrifiedValues: arrifiedValueRef, - followerEnabledIndexSet: followerEnabledIndexSetRef, - handleRailMouseDown, - handleHandleFocus, - handleHandleBlur, - handleHandleMouseEnter, - handleHandleMouseLeave, - handleRailKeyDown, - indicatorCssVars: inlineThemeDisabled ? void 0 : indicatorCssVarsRef, - indicatorThemeClass: indicatorThemeClassHandle === null || indicatorThemeClassHandle === void 0 ? void 0 : indicatorThemeClassHandle.themeClass, - indicatorOnRender: indicatorThemeClassHandle === null || indicatorThemeClassHandle === void 0 ? void 0 : indicatorThemeClassHandle.onRender, - cssVars: inlineThemeDisabled ? void 0 : cssVarsRef, - themeClass: themeClassHandle === null || themeClassHandle === void 0 ? void 0 : themeClassHandle.themeClass, - onRender: themeClassHandle === null || themeClassHandle === void 0 ? void 0 : themeClassHandle.onRender - }; - }, - render() { - var _a; - const { - mergedClsPrefix, - themeClass, - formatTooltip - } = this; - (_a = this.onRender) === null || _a === void 0 ? void 0 : _a.call(this); - return h("div", { - class: [`${mergedClsPrefix}-slider`, themeClass, { - [`${mergedClsPrefix}-slider--disabled`]: this.mergedDisabled, - [`${mergedClsPrefix}-slider--active`]: this.activeIndex !== -1, - [`${mergedClsPrefix}-slider--with-mark`]: this.marks, - [`${mergedClsPrefix}-slider--vertical`]: this.vertical, - [`${mergedClsPrefix}-slider--reverse`]: this.reverse - }], - style: this.cssVars, - onKeydown: this.handleRailKeyDown, - onMousedown: this.handleRailMouseDown, - onTouchstart: this.handleRailMouseDown - }, h("div", { - class: `${mergedClsPrefix}-slider-rail` - }, h("div", { - class: `${mergedClsPrefix}-slider-rail__fill`, - style: this.fillStyle - }), this.marks ? h("div", { - class: [`${mergedClsPrefix}-slider-dots`, this.dotTransitionDisabled && `${mergedClsPrefix}-slider-dots--transition-disabled`] - }, this.markInfos.map((mark) => h("div", { - key: mark.key, - class: [`${mergedClsPrefix}-slider-dot`, { - [`${mergedClsPrefix}-slider-dot--active`]: mark.active - }], - style: mark.style - }))) : null, h("div", { - ref: "handleRailRef", - class: `${mergedClsPrefix}-slider-handles` - }, this.arrifiedValues.map((value, index) => { - const showTooltip = this.isShowTooltip(index); - return h(Binder, null, { - default: () => [h(VTarget, null, { - default: () => h("div", { - ref: this.setHandleRefs(index), - class: `${mergedClsPrefix}-slider-handle-wrapper`, - tabindex: this.mergedDisabled ? -1 : 0, - role: "slider", - "aria-valuenow": value, - "aria-valuemin": this.min, - "aria-valuemax": this.max, - "aria-orientation": this.vertical ? "vertical" : "horizontal", - "aria-disabled": this.disabled, - style: this.getHandleStyle(value, index), - onFocus: () => { - this.handleHandleFocus(index); - }, - onBlur: () => { - this.handleHandleBlur(index); - }, - onMouseenter: () => { - this.handleHandleMouseEnter(index); - }, - onMouseleave: () => { - this.handleHandleMouseLeave(index); - } - }, resolveSlot(this.$slots.thumb, () => [h("div", { - class: `${mergedClsPrefix}-slider-handle` - })])) - }), this.tooltip && h(VFollower, { - ref: this.setFollowerRefs(index), - show: showTooltip, - to: this.adjustedTo, - enabled: this.showTooltip && !this.range || this.followerEnabledIndexSet.has(index), - teleportDisabled: this.adjustedTo === useAdjustedTo.tdkey, - placement: this.mergedPlacement, - containerClass: this.namespace - }, { - default: () => h(Transition, { - name: "fade-in-scale-up-transition", - appear: this.isMounted, - css: this.shouldKeepTooltipTransition(index), - onEnter: () => { - this.followerEnabledIndexSet.add(index); - }, - onAfterLeave: () => { - this.followerEnabledIndexSet.delete(index); - } - }, { - default: () => { - var _a2; - if (showTooltip) { - (_a2 = this.indicatorOnRender) === null || _a2 === void 0 ? void 0 : _a2.call(this); - return h("div", { - class: [`${mergedClsPrefix}-slider-handle-indicator`, this.indicatorThemeClass, `${mergedClsPrefix}-slider-handle-indicator--${this.mergedPlacement}`], - style: this.indicatorCssVars - }, typeof formatTooltip === "function" ? formatTooltip(value) : value); - } - return null; - } - }) - })] - }); - })), this.marks ? h("div", { - class: `${mergedClsPrefix}-slider-marks` - }, this.markInfos.map((mark) => h("div", { - key: mark.key, - class: `${mergedClsPrefix}-slider-mark`, - style: mark.style - }, typeof mark.label === "function" ? mark.label() : mark.label))) : null)); - } -}); -export { - __unplugin_components_0 as _ -}; diff --git a/out/renderer/assets/Slider-BA6NituQ.js.gz b/out/renderer/assets/Slider-BA6NituQ.js.gz deleted file mode 100644 index 56da44e..0000000 Binary files a/out/renderer/assets/Slider-BA6NituQ.js.gz and /dev/null differ diff --git a/out/renderer/assets/SongItem-Bw5Qa7XV.css b/out/renderer/assets/SongItem-Bw5Qa7XV.css deleted file mode 100644 index 8895831..0000000 --- a/out/renderer/assets/SongItem-Bw5Qa7XV.css +++ /dev/null @@ -1,296 +0,0 @@ -.text-ellipsis[data-v-aae6c67f] { - width: 100%; -} -.song-item[data-v-aae6c67f] { - -webkit-user-select: none; - -moz-user-select: none; - user-select: none; - display: flex; - align-items: center; - border-radius: 1.5rem; - background-color: transparent; - padding: 0.75rem; - --tw-text-opacity: 1; - color: rgb(17 24 39 / var(--tw-text-opacity, 1)); - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter; - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter; - transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - transition-duration: 150ms; -} -.song-item[data-v-aae6c67f]:is(.dark *) { - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity, 1)); -} -.song-item[data-v-aae6c67f]:hover { - --tw-bg-opacity: 1; - background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1)); -} -.song-item[data-v-aae6c67f]:hover:is(.dark *) { - --tw-bg-opacity: 1; - background-color: rgb(31 41 55 / var(--tw-bg-opacity, 1)); -} -.song-item-img[data-v-aae6c67f] { - margin-right: 1rem; - height: 3rem; - width: 3rem; - border-radius: 1rem; -} -.song-item-content[data-v-aae6c67f] { - flex: 1 1 0%; -} -.song-item-content-title[data-v-aae6c67f] { - font-size: 1rem; - line-height: 1.5rem; - --tw-text-opacity: 1; - color: rgb(17 24 39 / var(--tw-text-opacity, 1)); -} -.song-item-content-title[data-v-aae6c67f]:is(.dark *) { - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity, 1)); -} -.song-item-content-name[data-v-aae6c67f] { - font-size: 0.75rem; - line-height: 1rem; - --tw-text-opacity: 1; - color: rgb(107 114 128 / var(--tw-text-opacity, 1)); -} -.song-item-content-name[data-v-aae6c67f]:is(.dark *) { - --tw-text-opacity: 1; - color: rgb(156 163 175 / var(--tw-text-opacity, 1)); -} -.song-item-operating[data-v-aae6c67f] { - margin-left: 1rem; - display: flex; - align-items: center; - border-radius: 9999px; - border-width: 1px; - --tw-border-opacity: 1; - border-color: rgb(229 231 235 / var(--tw-border-opacity, 1)); - --tw-bg-opacity: 1; - background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1)); -} -.song-item-operating[data-v-aae6c67f]:is(.dark *) { - --tw-border-opacity: 1; - border-color: rgb(55 65 81 / var(--tw-border-opacity, 1)); - --tw-bg-opacity: 1; - background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1)); -} -.song-item-operating .iconfont[data-v-aae6c67f] { - font-size: 1.25rem; - line-height: 1.75rem; -} -.song-item-operating .icon-likefill[data-v-aae6c67f] { - font-size: 1.25rem; - line-height: 1.75rem; - --tw-text-opacity: 1; - color: rgb(107 114 128 / var(--tw-text-opacity, 1)); - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter; - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter; - transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - transition-duration: 150ms; -} -.song-item-operating .icon-likefill[data-v-aae6c67f]:hover { - --tw-text-opacity: 1; - color: rgb(239 68 68 / var(--tw-text-opacity, 1)); -} -.song-item-operating .icon-likefill[data-v-aae6c67f]:is(.dark *) { - --tw-text-opacity: 1; - color: rgb(156 163 175 / var(--tw-text-opacity, 1)); -} -.song-item-operating-like[data-v-aae6c67f] { - margin-right: 0.5rem; - margin-left: 1rem; - cursor: pointer; -} -.song-item-operating .like-active[data-v-aae6c67f] { - --tw-text-opacity: 1; - color: rgb(239 68 68 / var(--tw-text-opacity, 1)); -} -.song-item-operating-play[data-v-aae6c67f] { - display: flex; - height: 2.5rem; - width: 2.5rem; - cursor: pointer; - align-items: center; - justify-content: center; - border-radius: 9999px; - border-width: 1px; - --tw-border-opacity: 1; - border-color: rgb(229 231 235 / var(--tw-border-opacity, 1)); - --tw-text-opacity: 1; - color: rgb(17 24 39 / var(--tw-text-opacity, 1)); - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter; - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter; - transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - transition-duration: 150ms; -} -.song-item-operating-play[data-v-aae6c67f]:is(.dark *) { - --tw-border-opacity: 1; - border-color: rgb(55 65 81 / var(--tw-border-opacity, 1)); - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity, 1)); -} -.song-item-operating-play[data-v-aae6c67f]:hover, .song-item-operating-play.bg-green-600[data-v-aae6c67f] { - --tw-border-opacity: 1; - border-color: rgb(34 197 94 / var(--tw-border-opacity, 1)); - --tw-bg-opacity: 1; - background-color: rgb(34 197 94 / var(--tw-bg-opacity, 1)); - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity, 1)); -} -.song-mini[data-v-aae6c67f] { - border-radius: 1rem; - padding: 0.5rem; -} -.song-mini .song-item[data-v-aae6c67f] { - padding: 0px; -} -.song-mini .song-item-img[data-v-aae6c67f] { - margin-right: 0.5rem; - height: 2.5rem; - width: 2.5rem; -} -.song-mini .song-item-content[data-v-aae6c67f] { - flex: 1 1 0%; -} -.song-mini .song-item-content-title[data-v-aae6c67f] { - font-size: 0.875rem; - line-height: 1.25rem; -} -.song-mini .song-item-content-name[data-v-aae6c67f] { - font-size: 0.75rem; - line-height: 1rem; -} -.song-mini .song-item-operating[data-v-aae6c67f] { - padding-left: 0.5rem; -} -.song-mini .song-item-operating .iconfont[data-v-aae6c67f] { - font-size: 1rem; - line-height: 1.5rem; -} -.song-mini .song-item-operating-like[data-v-aae6c67f] { - margin-right: 0.25rem; - margin-left: 0.25rem; -} -.song-mini .song-item-operating-play[data-v-aae6c67f] { - height: 2rem; - width: 2rem; -} -.song-list[data-v-aae6c67f] { - margin-bottom: 0.5rem; - border-radius: 0.5rem; - border-width: 1px; - --tw-border-opacity: 1; - border-color: rgb(229 231 235 / var(--tw-border-opacity, 1)); - padding: 0.5rem; -} -.song-list[data-v-aae6c67f]:is(.dark *) { - --tw-border-opacity: 1; - border-color: rgb(31 41 55 / var(--tw-border-opacity, 1)); -} -.song-list[data-v-aae6c67f]:hover { - --tw-bg-opacity: 1; - background-color: rgb(249 250 251 / var(--tw-bg-opacity, 1)); -} -.song-list[data-v-aae6c67f]:hover:is(.dark *) { - --tw-bg-opacity: 1; - background-color: rgb(31 41 55 / var(--tw-bg-opacity, 1)); -} -.song-list .song-item-img[data-v-aae6c67f] { - margin-right: 0.75rem; - height: 2.5rem; - width: 2.5rem; - border-radius: 0.5rem; -} -.song-list .song-item-content[data-v-aae6c67f] { - display: flex; - flex: 1 1 0%; - align-items: center; -} -.song-list .song-item-content-wrapper[data-v-aae6c67f] { - display: flex; - flex: 1 1 0%; - align-items: center; - font-size: 0.875rem; - line-height: 1.25rem; -} -.song-list .song-item-content-title[data-v-aae6c67f] { - max-width: 45%; - flex-shrink: 0; - --tw-text-opacity: 1; - color: rgb(17 24 39 / var(--tw-text-opacity, 1)); -} -.song-list .song-item-content-title[data-v-aae6c67f]:is(.dark *) { - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity, 1)); -} -.song-list .song-item-content-divider[data-v-aae6c67f] { - margin-left: 0.5rem; - margin-right: 0.5rem; - --tw-text-opacity: 1; - color: rgb(107 114 128 / var(--tw-text-opacity, 1)); -} -.song-list .song-item-content-divider[data-v-aae6c67f]:is(.dark *) { - --tw-text-opacity: 1; - color: rgb(156 163 175 / var(--tw-text-opacity, 1)); -} -.song-list .song-item-content-name[data-v-aae6c67f] { - min-width: 0px; - flex: 1 1 0%; - --tw-text-opacity: 1; - color: rgb(107 114 128 / var(--tw-text-opacity, 1)); -} -.song-list .song-item-content-name[data-v-aae6c67f]:is(.dark *) { - --tw-text-opacity: 1; - color: rgb(156 163 175 / var(--tw-text-opacity, 1)); -} -.song-list .song-item-operating[data-v-aae6c67f] { - display: flex; - align-items: center; - gap: 0.5rem; -} -.song-list .song-item-operating-like[data-v-aae6c67f] { - cursor: pointer; - transition-property: transform; - transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - transition-duration: 150ms; -} -.song-list .song-item-operating-like[data-v-aae6c67f]:hover { - --tw-scale-x: 1.1; - --tw-scale-y: 1.1; - transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); -} -.song-list .song-item-operating-like .iconfont[data-v-aae6c67f] { - font-size: 1rem; - line-height: 1.5rem; - --tw-text-opacity: 1; - color: rgb(107 114 128 / var(--tw-text-opacity, 1)); -} -.song-list .song-item-operating-like .iconfont[data-v-aae6c67f]:hover { - --tw-text-opacity: 1; - color: rgb(239 68 68 / var(--tw-text-opacity, 1)); -} -.song-list .song-item-operating-like .iconfont[data-v-aae6c67f]:is(.dark *) { - --tw-text-opacity: 1; - color: rgb(156 163 175 / var(--tw-text-opacity, 1)); -} -.song-list .song-item-operating-play[data-v-aae6c67f] { - height: 1.75rem; - width: 1.75rem; - cursor: pointer; - transition-property: transform; - transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - transition-duration: 150ms; -} -.song-list .song-item-operating-play[data-v-aae6c67f]:hover { - --tw-scale-x: 1.1; - --tw-scale-y: 1.1; - transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); -} -.song-list .song-item-operating-play .iconfont[data-v-aae6c67f] { - font-size: 1rem; - line-height: 1.5rem; -} \ No newline at end of file diff --git a/out/renderer/assets/SongItem-Bw5Qa7XV.css.gz b/out/renderer/assets/SongItem-Bw5Qa7XV.css.gz deleted file mode 100644 index 5304efb..0000000 Binary files a/out/renderer/assets/SongItem-Bw5Qa7XV.css.gz and /dev/null differ diff --git a/out/renderer/assets/SongItem-CoswpGn6.js b/out/renderer/assets/SongItem-CoswpGn6.js deleted file mode 100644 index 2e6953d..0000000 --- a/out/renderer/assets/SongItem-CoswpGn6.js +++ /dev/null @@ -1,170 +0,0 @@ -import { d as defineComponent, g as useStore, G as computed, aG as useTemplateRef, j as openBlock, c as createElementBlock, O as createBlock, u as unref, a7 as getImgUrl, T as createCommentVNode, b as createBaseVNode, e as createVNode, f as withCtx, k as createTextVNode, t as toDisplayString, a3 as Fragment, a4 as renderList, n as normalizeClass, ah as withModifiers, b5 as getImageBackground, ae as audioService, _ as _export_sfc } from "./index-DKaFsuse.js"; -import { N as NImage } from "./Image-DXClIklC.js"; -import { _ as __unplugin_components_2 } from "./Ellipsis-D4R5dIX2.js"; -const _hoisted_1 = { class: "song-item-content" }; -const _hoisted_2 = { - key: 0, - class: "song-item-content-wrapper" -}; -const _hoisted_3 = { class: "song-item-content-title" }; -const _hoisted_4 = { class: "song-item-content-name" }; -const _hoisted_5 = { - key: 0, - class: "song-item-operating-like" -}; -const _hoisted_6 = { - key: 0, - class: "iconfont icon-stop" -}; -const _hoisted_7 = { - key: 1, - class: "iconfont icon-playfill" -}; -const _sfc_main = /* @__PURE__ */ defineComponent({ - __name: "SongItem", - props: { - item: {}, - mini: { type: Boolean, default: false }, - list: { type: Boolean, default: false }, - favorite: { type: Boolean, default: true } - }, - emits: ["play"], - setup(__props, { emit: __emit }) { - const props = __props; - const store = useStore(); - const play = computed(() => store.state.play); - const playMusic = computed(() => store.state.playMusic); - const playLoading = computed( - () => playMusic.value.id === props.item.id && playMusic.value.playLoading - ); - const isPlaying = computed(() => { - return playMusic.value.id === props.item.id; - }); - const emits = __emit; - const songImageRef = useTemplateRef("songImg"); - const imageLoad = async () => { - if (!songImageRef.value) { - return; - } - const { backgroundColor } = await getImageBackground( - songImageRef.value.imageRef - ); - props.item.backgroundColor = backgroundColor; - }; - const playMusicEvent = async (item) => { - if (playMusic.value.id === item.id) { - if (play.value) { - store.commit("setPlayMusic", false); - audioService.getCurrentSound()?.pause(); - } else { - store.commit("setPlayMusic", true); - audioService.getCurrentSound()?.play(); - } - return; - } - await store.commit("setPlay", item); - store.commit("setIsPlay", true); - emits("play", item); - }; - const isFavorite = computed(() => { - return store.state.favoriteList.includes(props.item.id); - }); - const toggleFavorite = async (e) => { - e.stopPropagation(); - if (isFavorite.value) { - store.commit("removeFromFavorite", props.item.id); - } else { - store.commit("addToFavorite", props.item.id); - } - }; - return (_ctx, _cache) => { - const _component_n_image = NImage; - const _component_n_ellipsis = __unplugin_components_2; - return openBlock(), createElementBlock("div", { - class: normalizeClass(["song-item", { "song-mini": _ctx.mini, "song-list": _ctx.list }]) - }, [ - _ctx.item.picUrl ? (openBlock(), createBlock(_component_n_image, { - key: 0, - ref: "songImg", - src: unref(getImgUrl)(_ctx.item.picUrl, "100y100"), - class: "song-item-img", - "preview-disabled": "", - "img-props": { - crossorigin: "anonymous" - }, - onLoad: imageLoad - }, null, 8, ["src"])) : createCommentVNode("", true), - createBaseVNode("div", _hoisted_1, [ - _ctx.list ? (openBlock(), createElementBlock("div", _hoisted_2, [ - createVNode(_component_n_ellipsis, { - class: "song-item-content-title text-ellipsis", - "line-clamp": "1" - }, { - default: withCtx(() => [ - createTextVNode(toDisplayString(_ctx.item.name), 1) - ]), - _: 1 - }), - _cache[1] || (_cache[1] = createBaseVNode("div", { class: "song-item-content-divider" }, "-", -1)), - createVNode(_component_n_ellipsis, { - class: "song-item-content-name text-ellipsis", - "line-clamp": "1" - }, { - default: withCtx(() => [ - (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.item.ar || _ctx.item.song.artists, (artists, artistsindex) => { - return openBlock(), createElementBlock("span", { key: artistsindex }, toDisplayString(artists.name) + toDisplayString(artistsindex < (_ctx.item.ar || _ctx.item.song.artists).length - 1 ? " / " : ""), 1); - }), 128)) - ]), - _: 1 - }) - ])) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [ - createBaseVNode("div", _hoisted_3, [ - createVNode(_component_n_ellipsis, { - class: "text-ellipsis", - "line-clamp": "1" - }, { - default: withCtx(() => [ - createTextVNode(toDisplayString(_ctx.item.name), 1) - ]), - _: 1 - }) - ]), - createBaseVNode("div", _hoisted_4, [ - createVNode(_component_n_ellipsis, { - class: "text-ellipsis", - "line-clamp": "1" - }, { - default: withCtx(() => [ - (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.item.ar || _ctx.item.song.artists, (artists, artistsindex) => { - return openBlock(), createElementBlock("span", { key: artistsindex }, toDisplayString(artists.name) + toDisplayString(artistsindex < (_ctx.item.ar || _ctx.item.song.artists).length - 1 ? " / " : ""), 1); - }), 128)) - ]), - _: 1 - }) - ]) - ], 64)) - ]), - createBaseVNode("div", { - class: normalizeClass(["song-item-operating", { "song-item-operating-list": _ctx.list }]) - }, [ - _ctx.favorite ? (openBlock(), createElementBlock("div", _hoisted_5, [ - createBaseVNode("i", { - class: normalizeClass(["iconfont icon-likefill", { "like-active": isFavorite.value }]), - onClick: withModifiers(toggleFavorite, ["stop"]) - }, null, 2) - ])) : createCommentVNode("", true), - createBaseVNode("div", { - class: normalizeClass(["song-item-operating-play bg-gray-300 dark:bg-gray-800 animate__animated", { "bg-green-600": isPlaying.value, animate__flipInY: playLoading.value }]), - onClick: _cache[0] || (_cache[0] = ($event) => playMusicEvent(_ctx.item)) - }, [ - isPlaying.value && play.value ? (openBlock(), createElementBlock("i", _hoisted_6)) : (openBlock(), createElementBlock("i", _hoisted_7)) - ], 2) - ], 2) - ], 2); - }; - } -}); -const SongItem = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-aae6c67f"]]); -export { - SongItem as S -}; diff --git a/out/renderer/assets/SongItem-CoswpGn6.js.gz b/out/renderer/assets/SongItem-CoswpGn6.js.gz deleted file mode 100644 index 877070a..0000000 Binary files a/out/renderer/assets/SongItem-CoswpGn6.js.gz and /dev/null differ diff --git a/out/renderer/assets/Switch-D3Z_Vg3u.js b/out/renderer/assets/Switch-D3Z_Vg3u.js deleted file mode 100644 index 176fd48..0000000 --- a/out/renderer/assets/Switch-D3Z_Vg3u.js +++ /dev/null @@ -1,2185 +0,0 @@ -import { d as defineComponent, l as h, bk as replaceable, p as cB, m as c, Y as cE, bl as iconSwitchTransition, Z as useStyle, A as toRef, bm as NIconSwitchTransition, K as resolveSlot, N as NBaseIcon, bn as NBaseLoading, aL as createInjectionKey, W as cM, V as cNotM, r as ref, E as watch, as as inject, G as computed, bo as resolveSlotWithProps, x as useConfig, q as useTheme, bp as inputLight, bq as isSafari, C as useMergedState, z as useFormItem, D as useMemo, o as onMounted, br as getCurrentInstance, a8 as watchEffect, $ as provide, F as useRtl, ao as createKey, bs as getMargin, ap as useThemeClass, I as resolveWrappedSlot, aK as Scrollbar, a3 as Fragment, ay as VResizeObserver, M as nextTick, J as on, L as call, aS as off, bt as switchLight, aw as pxfy, av as depx, bu as isSlotEmpty } from "./index-DKaFsuse.js"; -import { u as useLocale } from "./use-locale-DLWAOXez.js"; -const ChevronDownIcon = defineComponent({ - name: "ChevronDown", - render() { - return h("svg", { - viewBox: "0 0 16 16", - fill: "none", - xmlns: "http://www.w3.org/2000/svg" - }, h("path", { - d: "M3.14645 5.64645C3.34171 5.45118 3.65829 5.45118 3.85355 5.64645L8 9.79289L12.1464 5.64645C12.3417 5.45118 12.6583 5.45118 12.8536 5.64645C13.0488 5.84171 13.0488 6.15829 12.8536 6.35355L8.35355 10.8536C8.15829 11.0488 7.84171 11.0488 7.64645 10.8536L3.14645 6.35355C2.95118 6.15829 2.95118 5.84171 3.14645 5.64645Z", - fill: "currentColor" - })); - } -}); -const ClearIcon = replaceable("clear", () => h("svg", { - viewBox: "0 0 16 16", - version: "1.1", - xmlns: "http://www.w3.org/2000/svg" -}, h("g", { - stroke: "none", - "stroke-width": "1", - fill: "none", - "fill-rule": "evenodd" -}, h("g", { - fill: "currentColor", - "fill-rule": "nonzero" -}, h("path", { - d: "M8,2 C11.3137085,2 14,4.6862915 14,8 C14,11.3137085 11.3137085,14 8,14 C4.6862915,14 2,11.3137085 2,8 C2,4.6862915 4.6862915,2 8,2 Z M6.5343055,5.83859116 C6.33943736,5.70359511 6.07001296,5.72288026 5.89644661,5.89644661 L5.89644661,5.89644661 L5.83859116,5.9656945 C5.70359511,6.16056264 5.72288026,6.42998704 5.89644661,6.60355339 L5.89644661,6.60355339 L7.293,8 L5.89644661,9.39644661 L5.83859116,9.4656945 C5.70359511,9.66056264 5.72288026,9.92998704 5.89644661,10.1035534 L5.89644661,10.1035534 L5.9656945,10.1614088 C6.16056264,10.2964049 6.42998704,10.2771197 6.60355339,10.1035534 L6.60355339,10.1035534 L8,8.707 L9.39644661,10.1035534 L9.4656945,10.1614088 C9.66056264,10.2964049 9.92998704,10.2771197 10.1035534,10.1035534 L10.1035534,10.1035534 L10.1614088,10.0343055 C10.2964049,9.83943736 10.2771197,9.57001296 10.1035534,9.39644661 L10.1035534,9.39644661 L8.707,8 L10.1035534,6.60355339 L10.1614088,6.5343055 C10.2964049,6.33943736 10.2771197,6.07001296 10.1035534,5.89644661 L10.1035534,5.89644661 L10.0343055,5.83859116 C9.83943736,5.70359511 9.57001296,5.72288026 9.39644661,5.89644661 L9.39644661,5.89644661 L8,7.293 L6.60355339,5.89644661 Z" -}))))); -const EyeIcon = defineComponent({ - name: "Eye", - render() { - return h("svg", { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 512 512" - }, h("path", { - d: "M255.66 112c-77.94 0-157.89 45.11-220.83 135.33a16 16 0 0 0-.27 17.77C82.92 340.8 161.8 400 255.66 400c92.84 0 173.34-59.38 221.79-135.25a16.14 16.14 0 0 0 0-17.47C428.89 172.28 347.8 112 255.66 112z", - fill: "none", - stroke: "currentColor", - "stroke-linecap": "round", - "stroke-linejoin": "round", - "stroke-width": "32" - }), h("circle", { - cx: "256", - cy: "256", - r: "80", - fill: "none", - stroke: "currentColor", - "stroke-miterlimit": "10", - "stroke-width": "32" - })); - } -}); -const EyeOffIcon = defineComponent({ - name: "EyeOff", - render() { - return h("svg", { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 512 512" - }, h("path", { - d: "M432 448a15.92 15.92 0 0 1-11.31-4.69l-352-352a16 16 0 0 1 22.62-22.62l352 352A16 16 0 0 1 432 448z", - fill: "currentColor" - }), h("path", { - d: "M255.66 384c-41.49 0-81.5-12.28-118.92-36.5c-34.07-22-64.74-53.51-88.7-91v-.08c19.94-28.57 41.78-52.73 65.24-72.21a2 2 0 0 0 .14-2.94L93.5 161.38a2 2 0 0 0-2.71-.12c-24.92 21-48.05 46.76-69.08 76.92a31.92 31.92 0 0 0-.64 35.54c26.41 41.33 60.4 76.14 98.28 100.65C162 402 207.9 416 255.66 416a239.13 239.13 0 0 0 75.8-12.58a2 2 0 0 0 .77-3.31l-21.58-21.58a4 4 0 0 0-3.83-1a204.8 204.8 0 0 1-51.16 6.47z", - fill: "currentColor" - }), h("path", { - d: "M490.84 238.6c-26.46-40.92-60.79-75.68-99.27-100.53C349 110.55 302 96 255.66 96a227.34 227.34 0 0 0-74.89 12.83a2 2 0 0 0-.75 3.31l21.55 21.55a4 4 0 0 0 3.88 1a192.82 192.82 0 0 1 50.21-6.69c40.69 0 80.58 12.43 118.55 37c34.71 22.4 65.74 53.88 89.76 91a.13.13 0 0 1 0 .16a310.72 310.72 0 0 1-64.12 72.73a2 2 0 0 0-.15 2.95l19.9 19.89a2 2 0 0 0 2.7.13a343.49 343.49 0 0 0 68.64-78.48a32.2 32.2 0 0 0-.1-34.78z", - fill: "currentColor" - }), h("path", { - d: "M256 160a95.88 95.88 0 0 0-21.37 2.4a2 2 0 0 0-1 3.38l112.59 112.56a2 2 0 0 0 3.38-1A96 96 0 0 0 256 160z", - fill: "currentColor" - }), h("path", { - d: "M165.78 233.66a2 2 0 0 0-3.38 1a96 96 0 0 0 115 115a2 2 0 0 0 1-3.38z", - fill: "currentColor" - })); - } -}); -const style$2 = cB("base-clear", ` - flex-shrink: 0; - height: 1em; - width: 1em; - position: relative; -`, [c(">", [cE("clear", ` - font-size: var(--n-clear-size); - height: 1em; - width: 1em; - cursor: pointer; - color: var(--n-clear-color); - transition: color .3s var(--n-bezier); - display: flex; - `, [c("&:hover", ` - color: var(--n-clear-color-hover)!important; - `), c("&:active", ` - color: var(--n-clear-color-pressed)!important; - `)]), cE("placeholder", ` - display: flex; - `), cE("clear, placeholder", ` - position: absolute; - left: 50%; - top: 50%; - transform: translateX(-50%) translateY(-50%); - `, [iconSwitchTransition({ - originalTransform: "translateX(-50%) translateY(-50%)", - left: "50%", - top: "50%" -})])])]); -const NBaseClear = defineComponent({ - name: "BaseClear", - props: { - clsPrefix: { - type: String, - required: true - }, - show: Boolean, - onClear: Function - }, - setup(props) { - useStyle("-base-clear", style$2, toRef(props, "clsPrefix")); - return { - handleMouseDown(e) { - e.preventDefault(); - } - }; - }, - render() { - const { - clsPrefix - } = this; - return h("div", { - class: `${clsPrefix}-base-clear` - }, h(NIconSwitchTransition, null, { - default: () => { - var _a, _b; - return this.show ? h("div", { - key: "dismiss", - class: `${clsPrefix}-base-clear__clear`, - onClick: this.onClear, - onMousedown: this.handleMouseDown, - "data-clear": true - }, resolveSlot(this.$slots.icon, () => [h(NBaseIcon, { - clsPrefix - }, { - default: () => h(ClearIcon, null) - })])) : h("div", { - key: "icon", - class: `${clsPrefix}-base-clear__placeholder` - }, (_b = (_a = this.$slots).placeholder) === null || _b === void 0 ? void 0 : _b.call(_a)); - } - })); - } -}); -const NBaseSuffix = defineComponent({ - name: "InternalSelectionSuffix", - props: { - clsPrefix: { - type: String, - required: true - }, - showArrow: { - type: Boolean, - default: void 0 - }, - showClear: { - type: Boolean, - default: void 0 - }, - loading: { - type: Boolean, - default: false - }, - onClear: Function - }, - setup(props, { - slots - }) { - return () => { - const { - clsPrefix - } = props; - return h(NBaseLoading, { - clsPrefix, - class: `${clsPrefix}-base-suffix`, - strokeWidth: 24, - scale: 0.85, - show: props.loading - }, { - default: () => props.showArrow ? h(NBaseClear, { - clsPrefix, - show: props.showClear, - onClear: props.onClear - }, { - placeholder: () => h(NBaseIcon, { - clsPrefix, - class: `${clsPrefix}-base-suffix__arrow` - }, { - default: () => resolveSlot(slots.default, () => [h(ChevronDownIcon, null)]) - }) - }) : null - }); - }; - } -}); -const inputInjectionKey = createInjectionKey("n-input"); -const style$1 = cB("input", ` - max-width: 100%; - cursor: text; - line-height: 1.5; - z-index: auto; - outline: none; - box-sizing: border-box; - position: relative; - display: inline-flex; - border-radius: var(--n-border-radius); - background-color: var(--n-color); - transition: background-color .3s var(--n-bezier); - font-size: var(--n-font-size); - font-weight: var(--n-font-weight); - --n-padding-vertical: calc((var(--n-height) - 1.5 * var(--n-font-size)) / 2); -`, [ - // common - cE("input, textarea", ` - overflow: hidden; - flex-grow: 1; - position: relative; - `), - cE("input-el, textarea-el, input-mirror, textarea-mirror, separator, placeholder", ` - box-sizing: border-box; - font-size: inherit; - line-height: 1.5; - font-family: inherit; - border: none; - outline: none; - background-color: #0000; - text-align: inherit; - transition: - -webkit-text-fill-color .3s var(--n-bezier), - caret-color .3s var(--n-bezier), - color .3s var(--n-bezier), - text-decoration-color .3s var(--n-bezier); - `), - cE("input-el, textarea-el", ` - -webkit-appearance: none; - scrollbar-width: none; - width: 100%; - min-width: 0; - text-decoration-color: var(--n-text-decoration-color); - color: var(--n-text-color); - caret-color: var(--n-caret-color); - background-color: transparent; - `, [c("&::-webkit-scrollbar, &::-webkit-scrollbar-track-piece, &::-webkit-scrollbar-thumb", ` - width: 0; - height: 0; - display: none; - `), c("&::placeholder", ` - color: #0000; - -webkit-text-fill-color: transparent !important; - `), c("&:-webkit-autofill ~", [cE("placeholder", "display: none;")])]), - cM("round", [cNotM("textarea", "border-radius: calc(var(--n-height) / 2);")]), - cE("placeholder", ` - pointer-events: none; - position: absolute; - left: 0; - right: 0; - top: 0; - bottom: 0; - overflow: hidden; - color: var(--n-placeholder-color); - `, [c("span", ` - width: 100%; - display: inline-block; - `)]), - cM("textarea", [cE("placeholder", "overflow: visible;")]), - cNotM("autosize", "width: 100%;"), - cM("autosize", [cE("textarea-el, input-el", ` - position: absolute; - top: 0; - left: 0; - height: 100%; - `)]), - // input - cB("input-wrapper", ` - overflow: hidden; - display: inline-flex; - flex-grow: 1; - position: relative; - padding-left: var(--n-padding-left); - padding-right: var(--n-padding-right); - `), - cE("input-mirror", ` - padding: 0; - height: var(--n-height); - line-height: var(--n-height); - overflow: hidden; - visibility: hidden; - position: static; - white-space: pre; - pointer-events: none; - `), - cE("input-el", ` - padding: 0; - height: var(--n-height); - line-height: var(--n-height); - `, [c("&[type=password]::-ms-reveal", "display: none;"), c("+", [cE("placeholder", ` - display: flex; - align-items: center; - `)])]), - cNotM("textarea", [cE("placeholder", "white-space: nowrap;")]), - cE("eye", ` - display: flex; - align-items: center; - justify-content: center; - transition: color .3s var(--n-bezier); - `), - // textarea - cM("textarea", "width: 100%;", [cB("input-word-count", ` - position: absolute; - right: var(--n-padding-right); - bottom: var(--n-padding-vertical); - `), cM("resizable", [cB("input-wrapper", ` - resize: vertical; - min-height: var(--n-height); - `)]), cE("textarea-el, textarea-mirror, placeholder", ` - height: 100%; - padding-left: 0; - padding-right: 0; - padding-top: var(--n-padding-vertical); - padding-bottom: var(--n-padding-vertical); - word-break: break-word; - display: inline-block; - vertical-align: bottom; - box-sizing: border-box; - line-height: var(--n-line-height-textarea); - margin: 0; - resize: none; - white-space: pre-wrap; - scroll-padding-block-end: var(--n-padding-vertical); - `), cE("textarea-mirror", ` - width: 100%; - pointer-events: none; - overflow: hidden; - visibility: hidden; - position: static; - white-space: pre-wrap; - overflow-wrap: break-word; - `)]), - // pair - cM("pair", [cE("input-el, placeholder", "text-align: center;"), cE("separator", ` - display: flex; - align-items: center; - transition: color .3s var(--n-bezier); - color: var(--n-text-color); - white-space: nowrap; - `, [cB("icon", ` - color: var(--n-icon-color); - `), cB("base-icon", ` - color: var(--n-icon-color); - `)])]), - cM("disabled", ` - cursor: not-allowed; - background-color: var(--n-color-disabled); - `, [cE("border", "border: var(--n-border-disabled);"), cE("input-el, textarea-el", ` - cursor: not-allowed; - color: var(--n-text-color-disabled); - text-decoration-color: var(--n-text-color-disabled); - `), cE("placeholder", "color: var(--n-placeholder-color-disabled);"), cE("separator", "color: var(--n-text-color-disabled);", [cB("icon", ` - color: var(--n-icon-color-disabled); - `), cB("base-icon", ` - color: var(--n-icon-color-disabled); - `)]), cB("input-word-count", ` - color: var(--n-count-text-color-disabled); - `), cE("suffix, prefix", "color: var(--n-text-color-disabled);", [cB("icon", ` - color: var(--n-icon-color-disabled); - `), cB("internal-icon", ` - color: var(--n-icon-color-disabled); - `)])]), - cNotM("disabled", [cE("eye", ` - color: var(--n-icon-color); - cursor: pointer; - `, [c("&:hover", ` - color: var(--n-icon-color-hover); - `), c("&:active", ` - color: var(--n-icon-color-pressed); - `)]), c("&:hover", [cE("state-border", "border: var(--n-border-hover);")]), cM("focus", "background-color: var(--n-color-focus);", [cE("state-border", ` - border: var(--n-border-focus); - box-shadow: var(--n-box-shadow-focus); - `)])]), - cE("border, state-border", ` - box-sizing: border-box; - position: absolute; - left: 0; - right: 0; - top: 0; - bottom: 0; - pointer-events: none; - border-radius: inherit; - border: var(--n-border); - transition: - box-shadow .3s var(--n-bezier), - border-color .3s var(--n-bezier); - `), - cE("state-border", ` - border-color: #0000; - z-index: 1; - `), - cE("prefix", "margin-right: 4px;"), - cE("suffix", ` - margin-left: 4px; - `), - cE("suffix, prefix", ` - transition: color .3s var(--n-bezier); - flex-wrap: nowrap; - flex-shrink: 0; - line-height: var(--n-height); - white-space: nowrap; - display: inline-flex; - align-items: center; - justify-content: center; - color: var(--n-suffix-text-color); - `, [cB("base-loading", ` - font-size: var(--n-icon-size); - margin: 0 2px; - color: var(--n-loading-color); - `), cB("base-clear", ` - font-size: var(--n-icon-size); - `, [cE("placeholder", [cB("base-icon", ` - transition: color .3s var(--n-bezier); - color: var(--n-icon-color); - font-size: var(--n-icon-size); - `)])]), c(">", [cB("icon", ` - transition: color .3s var(--n-bezier); - color: var(--n-icon-color); - font-size: var(--n-icon-size); - `)]), cB("base-icon", ` - font-size: var(--n-icon-size); - `)]), - cB("input-word-count", ` - pointer-events: none; - line-height: 1.5; - font-size: .85em; - color: var(--n-count-text-color); - transition: color .3s var(--n-bezier); - margin-left: 4px; - font-variant: tabular-nums; - `), - ["warning", "error"].map((status) => cM(`${status}-status`, [cNotM("disabled", [cB("base-loading", ` - color: var(--n-loading-color-${status}) - `), cE("input-el, textarea-el", ` - caret-color: var(--n-caret-color-${status}); - `), cE("state-border", ` - border: var(--n-border-${status}); - `), c("&:hover", [cE("state-border", ` - border: var(--n-border-hover-${status}); - `)]), c("&:focus", ` - background-color: var(--n-color-focus-${status}); - `, [cE("state-border", ` - box-shadow: var(--n-box-shadow-focus-${status}); - border: var(--n-border-focus-${status}); - `)]), cM("focus", ` - background-color: var(--n-color-focus-${status}); - `, [cE("state-border", ` - box-shadow: var(--n-box-shadow-focus-${status}); - border: var(--n-border-focus-${status}); - `)])])])) -]); -const safariStyle = cB("input", [cM("disabled", [cE("input-el, textarea-el", ` - -webkit-text-fill-color: var(--n-text-color-disabled); - `)])]); -function len(s) { - let count = 0; - for (const _ of s) { - count++; - } - return count; -} -function isEmptyInputValue(value) { - return value === "" || value == null; -} -function useCursor(inputElRef) { - const selectionRef = ref(null); - function recordCursor() { - const { - value: input - } = inputElRef; - if (!(input === null || input === void 0 ? void 0 : input.focus)) { - reset(); - return; - } - const { - selectionStart, - selectionEnd, - value - } = input; - if (selectionStart == null || selectionEnd == null) { - reset(); - return; - } - selectionRef.value = { - start: selectionStart, - end: selectionEnd, - beforeText: value.slice(0, selectionStart), - afterText: value.slice(selectionEnd) - }; - } - function restoreCursor() { - var _a; - const { - value: selection - } = selectionRef; - const { - value: inputEl - } = inputElRef; - if (!selection || !inputEl) { - return; - } - const { - value - } = inputEl; - const { - start, - beforeText, - afterText - } = selection; - let startPos = value.length; - if (value.endsWith(afterText)) { - startPos = value.length - afterText.length; - } else if (value.startsWith(beforeText)) { - startPos = beforeText.length; - } else { - const beforeLastChar = beforeText[start - 1]; - const newIndex = value.indexOf(beforeLastChar, start - 1); - if (newIndex !== -1) { - startPos = newIndex + 1; - } - } - (_a = inputEl.setSelectionRange) === null || _a === void 0 ? void 0 : _a.call(inputEl, startPos, startPos); - } - function reset() { - selectionRef.value = null; - } - watch(inputElRef, reset); - return { - recordCursor, - restoreCursor - }; -} -const WordCount = defineComponent({ - name: "InputWordCount", - setup(_, { - slots - }) { - const { - mergedValueRef, - maxlengthRef, - mergedClsPrefixRef, - countGraphemesRef - } = inject(inputInjectionKey); - const wordCountRef = computed(() => { - const { - value: mergedValue - } = mergedValueRef; - if (mergedValue === null || Array.isArray(mergedValue)) return 0; - return (countGraphemesRef.value || len)(mergedValue); - }); - return () => { - const { - value: maxlength - } = maxlengthRef; - const { - value: mergedValue - } = mergedValueRef; - return h("span", { - class: `${mergedClsPrefixRef.value}-input-word-count` - }, resolveSlotWithProps(slots.default, { - value: mergedValue === null || Array.isArray(mergedValue) ? "" : mergedValue - }, () => [maxlength === void 0 ? wordCountRef.value : `${wordCountRef.value} / ${maxlength}`])); - }; - } -}); -const inputProps = Object.assign(Object.assign({}, useTheme.props), { - bordered: { - type: Boolean, - default: void 0 - }, - type: { - type: String, - default: "text" - }, - placeholder: [Array, String], - defaultValue: { - type: [String, Array], - default: null - }, - value: [String, Array], - disabled: { - type: Boolean, - default: void 0 - }, - size: String, - rows: { - type: [Number, String], - default: 3 - }, - round: Boolean, - minlength: [String, Number], - maxlength: [String, Number], - clearable: Boolean, - autosize: { - type: [Boolean, Object], - default: false - }, - pair: Boolean, - separator: String, - readonly: { - type: [String, Boolean], - default: false - }, - passivelyActivated: Boolean, - showPasswordOn: String, - stateful: { - type: Boolean, - default: true - }, - autofocus: Boolean, - inputProps: Object, - resizable: { - type: Boolean, - default: true - }, - showCount: Boolean, - loading: { - type: Boolean, - default: void 0 - }, - allowInput: Function, - renderCount: Function, - onMousedown: Function, - onKeydown: Function, - onKeyup: [Function, Array], - onInput: [Function, Array], - onFocus: [Function, Array], - onBlur: [Function, Array], - onClick: [Function, Array], - onChange: [Function, Array], - onClear: [Function, Array], - countGraphemes: Function, - status: String, - "onUpdate:value": [Function, Array], - onUpdateValue: [Function, Array], - /** private */ - textDecoration: [String, Array], - attrSize: { - type: Number, - default: 20 - }, - onInputBlur: [Function, Array], - onInputFocus: [Function, Array], - onDeactivate: [Function, Array], - onActivate: [Function, Array], - onWrapperFocus: [Function, Array], - onWrapperBlur: [Function, Array], - internalDeactivateOnEnter: Boolean, - internalForceFocus: Boolean, - internalLoadingBeforeSuffix: { - type: Boolean, - default: true - }, - /** deprecated */ - showPasswordToggle: Boolean -}); -const __unplugin_components_1 = defineComponent({ - name: "Input", - props: inputProps, - setup(props) { - const { - mergedClsPrefixRef, - mergedBorderedRef, - inlineThemeDisabled, - mergedRtlRef - } = useConfig(props); - const themeRef = useTheme("Input", "-input", style$1, inputLight, props, mergedClsPrefixRef); - if (isSafari) { - useStyle("-input-safari", safariStyle, mergedClsPrefixRef); - } - const wrapperElRef = ref(null); - const textareaElRef = ref(null); - const textareaMirrorElRef = ref(null); - const inputMirrorElRef = ref(null); - const inputElRef = ref(null); - const inputEl2Ref = ref(null); - const currentFocusedInputRef = ref(null); - const focusedInputCursorControl = useCursor(currentFocusedInputRef); - const textareaScrollbarInstRef = ref(null); - const { - localeRef - } = useLocale("Input"); - const uncontrolledValueRef = ref(props.defaultValue); - const controlledValueRef = toRef(props, "value"); - const mergedValueRef = useMergedState(controlledValueRef, uncontrolledValueRef); - const formItem = useFormItem(props); - const { - mergedSizeRef, - mergedDisabledRef, - mergedStatusRef - } = formItem; - const focusedRef = ref(false); - const hoverRef = ref(false); - const isComposingRef = ref(false); - const activatedRef = ref(false); - let syncSource = null; - const mergedPlaceholderRef = computed(() => { - const { - placeholder, - pair - } = props; - if (pair) { - if (Array.isArray(placeholder)) { - return placeholder; - } else if (placeholder === void 0) { - return ["", ""]; - } - return [placeholder, placeholder]; - } else if (placeholder === void 0) { - return [localeRef.value.placeholder]; - } else { - return [placeholder]; - } - }); - const showPlaceholder1Ref = computed(() => { - const { - value: isComposing - } = isComposingRef; - const { - value: mergedValue - } = mergedValueRef; - const { - value: mergedPlaceholder - } = mergedPlaceholderRef; - return !isComposing && (isEmptyInputValue(mergedValue) || Array.isArray(mergedValue) && isEmptyInputValue(mergedValue[0])) && mergedPlaceholder[0]; - }); - const showPlaceholder2Ref = computed(() => { - const { - value: isComposing - } = isComposingRef; - const { - value: mergedValue - } = mergedValueRef; - const { - value: mergedPlaceholder - } = mergedPlaceholderRef; - return !isComposing && mergedPlaceholder[1] && (isEmptyInputValue(mergedValue) || Array.isArray(mergedValue) && isEmptyInputValue(mergedValue[1])); - }); - const mergedFocusRef = useMemo(() => { - return props.internalForceFocus || focusedRef.value; - }); - const showClearButton = useMemo(() => { - if (mergedDisabledRef.value || props.readonly || !props.clearable || !mergedFocusRef.value && !hoverRef.value) { - return false; - } - const { - value: mergedValue - } = mergedValueRef; - const { - value: mergedFocus - } = mergedFocusRef; - if (props.pair) { - return !!(Array.isArray(mergedValue) && (mergedValue[0] || mergedValue[1])) && (hoverRef.value || mergedFocus); - } else { - return !!mergedValue && (hoverRef.value || mergedFocus); - } - }); - const mergedShowPasswordOnRef = computed(() => { - const { - showPasswordOn - } = props; - if (showPasswordOn) { - return showPasswordOn; - } - if (props.showPasswordToggle) return "click"; - return void 0; - }); - const passwordVisibleRef = ref(false); - const textDecorationStyleRef = computed(() => { - const { - textDecoration - } = props; - if (!textDecoration) return ["", ""]; - if (Array.isArray(textDecoration)) { - return textDecoration.map((v) => ({ - textDecoration: v - })); - } - return [{ - textDecoration - }]; - }); - const textAreaScrollContainerWidthRef = ref(void 0); - const updateTextAreaStyle = () => { - var _a, _b; - if (props.type === "textarea") { - const { - autosize - } = props; - if (autosize) { - textAreaScrollContainerWidthRef.value = (_b = (_a = textareaScrollbarInstRef.value) === null || _a === void 0 ? void 0 : _a.$el) === null || _b === void 0 ? void 0 : _b.offsetWidth; - } - if (!textareaElRef.value) return; - if (typeof autosize === "boolean") return; - const { - paddingTop: stylePaddingTop, - paddingBottom: stylePaddingBottom, - lineHeight: styleLineHeight - } = window.getComputedStyle(textareaElRef.value); - const paddingTop = Number(stylePaddingTop.slice(0, -2)); - const paddingBottom = Number(stylePaddingBottom.slice(0, -2)); - const lineHeight = Number(styleLineHeight.slice(0, -2)); - const { - value: textareaMirrorEl - } = textareaMirrorElRef; - if (!textareaMirrorEl) return; - if (autosize.minRows) { - const minRows = Math.max(autosize.minRows, 1); - const styleMinHeight = `${paddingTop + paddingBottom + lineHeight * minRows}px`; - textareaMirrorEl.style.minHeight = styleMinHeight; - } - if (autosize.maxRows) { - const styleMaxHeight = `${paddingTop + paddingBottom + lineHeight * autosize.maxRows}px`; - textareaMirrorEl.style.maxHeight = styleMaxHeight; - } - } - }; - const maxlengthRef = computed(() => { - const { - maxlength - } = props; - return maxlength === void 0 ? void 0 : Number(maxlength); - }); - onMounted(() => { - const { - value - } = mergedValueRef; - if (!Array.isArray(value)) { - syncMirror(value); - } - }); - const vm = getCurrentInstance().proxy; - function doUpdateValue(value, meta) { - const { - onUpdateValue, - "onUpdate:value": _onUpdateValue, - onInput - } = props; - const { - nTriggerFormInput - } = formItem; - if (onUpdateValue) call(onUpdateValue, value, meta); - if (_onUpdateValue) call(_onUpdateValue, value, meta); - if (onInput) call(onInput, value, meta); - uncontrolledValueRef.value = value; - nTriggerFormInput(); - } - function doChange(value, meta) { - const { - onChange - } = props; - const { - nTriggerFormChange - } = formItem; - if (onChange) call(onChange, value, meta); - uncontrolledValueRef.value = value; - nTriggerFormChange(); - } - function doBlur(e) { - const { - onBlur - } = props; - const { - nTriggerFormBlur - } = formItem; - if (onBlur) call(onBlur, e); - nTriggerFormBlur(); - } - function doFocus(e) { - const { - onFocus - } = props; - const { - nTriggerFormFocus - } = formItem; - if (onFocus) call(onFocus, e); - nTriggerFormFocus(); - } - function doClear(e) { - const { - onClear - } = props; - if (onClear) call(onClear, e); - } - function doUpdateValueBlur(e) { - const { - onInputBlur - } = props; - if (onInputBlur) call(onInputBlur, e); - } - function doUpdateValueFocus(e) { - const { - onInputFocus - } = props; - if (onInputFocus) call(onInputFocus, e); - } - function doDeactivate() { - const { - onDeactivate - } = props; - if (onDeactivate) call(onDeactivate); - } - function doActivate() { - const { - onActivate - } = props; - if (onActivate) call(onActivate); - } - function doClick(e) { - const { - onClick - } = props; - if (onClick) call(onClick, e); - } - function doWrapperFocus(e) { - const { - onWrapperFocus - } = props; - if (onWrapperFocus) call(onWrapperFocus, e); - } - function doWrapperBlur(e) { - const { - onWrapperBlur - } = props; - if (onWrapperBlur) call(onWrapperBlur, e); - } - function handleCompositionStart() { - isComposingRef.value = true; - } - function handleCompositionEnd(e) { - isComposingRef.value = false; - if (e.target === inputEl2Ref.value) { - handleInput(e, 1); - } else { - handleInput(e, 0); - } - } - function handleInput(e, index = 0, event = "input") { - const targetValue = e.target.value; - syncMirror(targetValue); - if (e instanceof InputEvent && !e.isComposing) { - isComposingRef.value = false; - } - if (props.type === "textarea") { - const { - value: textareaScrollbarInst - } = textareaScrollbarInstRef; - if (textareaScrollbarInst) { - textareaScrollbarInst.syncUnifiedContainer(); - } - } - syncSource = targetValue; - if (isComposingRef.value) return; - focusedInputCursorControl.recordCursor(); - const isIncomingValueValid = allowInput(targetValue); - if (isIncomingValueValid) { - if (!props.pair) { - if (event === "input") { - doUpdateValue(targetValue, { - source: index - }); - } else { - doChange(targetValue, { - source: index - }); - } - } else { - let { - value - } = mergedValueRef; - if (!Array.isArray(value)) { - value = ["", ""]; - } else { - value = [value[0], value[1]]; - } - value[index] = targetValue; - if (event === "input") { - doUpdateValue(value, { - source: index - }); - } else { - doChange(value, { - source: index - }); - } - } - } - vm.$forceUpdate(); - if (!isIncomingValueValid) { - void nextTick(focusedInputCursorControl.restoreCursor); - } - } - function allowInput(value) { - const { - countGraphemes, - maxlength, - minlength - } = props; - if (countGraphemes) { - let graphemesCount; - if (maxlength !== void 0) { - if (graphemesCount === void 0) { - graphemesCount = countGraphemes(value); - } - if (graphemesCount > Number(maxlength)) return false; - } - if (minlength !== void 0) { - if (graphemesCount === void 0) { - graphemesCount = countGraphemes(value); - } - if (graphemesCount < Number(maxlength)) return false; - } - } - const { - allowInput: allowInput2 - } = props; - if (typeof allowInput2 === "function") { - return allowInput2(value); - } - return true; - } - function handleInputBlur(e) { - doUpdateValueBlur(e); - if (e.relatedTarget === wrapperElRef.value) { - doDeactivate(); - } - if (!(e.relatedTarget !== null && (e.relatedTarget === inputElRef.value || e.relatedTarget === inputEl2Ref.value || e.relatedTarget === textareaElRef.value))) { - activatedRef.value = false; - } - dealWithEvent(e, "blur"); - currentFocusedInputRef.value = null; - } - function handleInputFocus(e, index) { - doUpdateValueFocus(e); - focusedRef.value = true; - activatedRef.value = true; - doActivate(); - dealWithEvent(e, "focus"); - if (index === 0) { - currentFocusedInputRef.value = inputElRef.value; - } else if (index === 1) { - currentFocusedInputRef.value = inputEl2Ref.value; - } else if (index === 2) { - currentFocusedInputRef.value = textareaElRef.value; - } - } - function handleWrapperBlur(e) { - if (props.passivelyActivated) { - doWrapperBlur(e); - dealWithEvent(e, "blur"); - } - } - function handleWrapperFocus(e) { - if (props.passivelyActivated) { - focusedRef.value = true; - doWrapperFocus(e); - dealWithEvent(e, "focus"); - } - } - function dealWithEvent(e, type) { - if (e.relatedTarget !== null && (e.relatedTarget === inputElRef.value || e.relatedTarget === inputEl2Ref.value || e.relatedTarget === textareaElRef.value || e.relatedTarget === wrapperElRef.value)) ; - else { - if (type === "focus") { - doFocus(e); - focusedRef.value = true; - } else if (type === "blur") { - doBlur(e); - focusedRef.value = false; - } - } - } - function handleChange(e, index) { - handleInput(e, index, "change"); - } - function handleClick(e) { - doClick(e); - } - function handleClear(e) { - doClear(e); - clearValue(); - } - function clearValue() { - if (props.pair) { - doUpdateValue(["", ""], { - source: "clear" - }); - doChange(["", ""], { - source: "clear" - }); - } else { - doUpdateValue("", { - source: "clear" - }); - doChange("", { - source: "clear" - }); - } - } - function handleMouseDown(e) { - const { - onMousedown - } = props; - if (onMousedown) onMousedown(e); - const { - tagName - } = e.target; - if (tagName !== "INPUT" && tagName !== "TEXTAREA") { - if (props.resizable) { - const { - value: wrapperEl - } = wrapperElRef; - if (wrapperEl) { - const { - left, - top, - width, - height - } = wrapperEl.getBoundingClientRect(); - const resizeHandleSize = 14; - if (left + width - resizeHandleSize < e.clientX && e.clientX < left + width && top + height - resizeHandleSize < e.clientY && e.clientY < top + height) { - return; - } - } - } - e.preventDefault(); - if (!focusedRef.value) { - focus(); - } - } - } - function handleMouseEnter() { - var _a; - hoverRef.value = true; - if (props.type === "textarea") { - (_a = textareaScrollbarInstRef.value) === null || _a === void 0 ? void 0 : _a.handleMouseEnterWrapper(); - } - } - function handleMouseLeave() { - var _a; - hoverRef.value = false; - if (props.type === "textarea") { - (_a = textareaScrollbarInstRef.value) === null || _a === void 0 ? void 0 : _a.handleMouseLeaveWrapper(); - } - } - function handlePasswordToggleClick() { - if (mergedDisabledRef.value) return; - if (mergedShowPasswordOnRef.value !== "click") return; - passwordVisibleRef.value = !passwordVisibleRef.value; - } - function handlePasswordToggleMousedown(e) { - if (mergedDisabledRef.value) return; - e.preventDefault(); - const preventDefaultOnce = (e2) => { - e2.preventDefault(); - off("mouseup", document, preventDefaultOnce); - }; - on("mouseup", document, preventDefaultOnce); - if (mergedShowPasswordOnRef.value !== "mousedown") return; - passwordVisibleRef.value = true; - const hidePassword = () => { - passwordVisibleRef.value = false; - off("mouseup", document, hidePassword); - }; - on("mouseup", document, hidePassword); - } - function handleWrapperKeyup(e) { - if (props.onKeyup) call(props.onKeyup, e); - } - function handleWrapperKeydown(e) { - if (props.onKeydown) call(props.onKeydown, e); - switch (e.key) { - case "Escape": - handleWrapperKeydownEsc(); - break; - case "Enter": - handleWrapperKeydownEnter(e); - break; - } - } - function handleWrapperKeydownEnter(e) { - var _a, _b; - if (props.passivelyActivated) { - const { - value: focused - } = activatedRef; - if (focused) { - if (props.internalDeactivateOnEnter) { - handleWrapperKeydownEsc(); - } - return; - } - e.preventDefault(); - if (props.type === "textarea") { - (_a = textareaElRef.value) === null || _a === void 0 ? void 0 : _a.focus(); - } else { - (_b = inputElRef.value) === null || _b === void 0 ? void 0 : _b.focus(); - } - } - } - function handleWrapperKeydownEsc() { - if (props.passivelyActivated) { - activatedRef.value = false; - void nextTick(() => { - var _a; - (_a = wrapperElRef.value) === null || _a === void 0 ? void 0 : _a.focus(); - }); - } - } - function focus() { - var _a, _b, _c; - if (mergedDisabledRef.value) return; - if (props.passivelyActivated) { - (_a = wrapperElRef.value) === null || _a === void 0 ? void 0 : _a.focus(); - } else { - (_b = textareaElRef.value) === null || _b === void 0 ? void 0 : _b.focus(); - (_c = inputElRef.value) === null || _c === void 0 ? void 0 : _c.focus(); - } - } - function blur() { - var _a; - if ((_a = wrapperElRef.value) === null || _a === void 0 ? void 0 : _a.contains(document.activeElement)) { - document.activeElement.blur(); - } - } - function select() { - var _a, _b; - (_a = textareaElRef.value) === null || _a === void 0 ? void 0 : _a.select(); - (_b = inputElRef.value) === null || _b === void 0 ? void 0 : _b.select(); - } - function activate() { - if (mergedDisabledRef.value) return; - if (textareaElRef.value) textareaElRef.value.focus(); - else if (inputElRef.value) inputElRef.value.focus(); - } - function deactivate() { - const { - value: wrapperEl - } = wrapperElRef; - if ((wrapperEl === null || wrapperEl === void 0 ? void 0 : wrapperEl.contains(document.activeElement)) && wrapperEl !== document.activeElement) { - handleWrapperKeydownEsc(); - } - } - function scrollTo(options) { - if (props.type === "textarea") { - const { - value: textareaEl - } = textareaElRef; - textareaEl === null || textareaEl === void 0 ? void 0 : textareaEl.scrollTo(options); - } else { - const { - value: inputEl - } = inputElRef; - inputEl === null || inputEl === void 0 ? void 0 : inputEl.scrollTo(options); - } - } - function syncMirror(value) { - const { - type, - pair, - autosize - } = props; - if (!pair && autosize) { - if (type === "textarea") { - const { - value: textareaMirrorEl - } = textareaMirrorElRef; - if (textareaMirrorEl) { - textareaMirrorEl.textContent = `${value !== null && value !== void 0 ? value : ""}\r -`; - } - } else { - const { - value: inputMirrorEl - } = inputMirrorElRef; - if (inputMirrorEl) { - if (value) { - inputMirrorEl.textContent = value; - } else { - inputMirrorEl.innerHTML = " "; - } - } - } - } - } - function handleTextAreaMirrorResize() { - updateTextAreaStyle(); - } - const placeholderStyleRef = ref({ - top: "0" - }); - function handleTextAreaScroll(e) { - var _a; - const { - scrollTop - } = e.target; - placeholderStyleRef.value.top = `${-scrollTop}px`; - (_a = textareaScrollbarInstRef.value) === null || _a === void 0 ? void 0 : _a.syncUnifiedContainer(); - } - let stopWatchMergedValue1 = null; - watchEffect(() => { - const { - autosize, - type - } = props; - if (autosize && type === "textarea") { - stopWatchMergedValue1 = watch(mergedValueRef, (value) => { - if (!Array.isArray(value) && value !== syncSource) { - syncMirror(value); - } - }); - } else { - stopWatchMergedValue1 === null || stopWatchMergedValue1 === void 0 ? void 0 : stopWatchMergedValue1(); - } - }); - let stopWatchMergedValue2 = null; - watchEffect(() => { - if (props.type === "textarea") { - stopWatchMergedValue2 = watch(mergedValueRef, (value) => { - var _a; - if (!Array.isArray(value) && value !== syncSource) { - (_a = textareaScrollbarInstRef.value) === null || _a === void 0 ? void 0 : _a.syncUnifiedContainer(); - } - }); - } else { - stopWatchMergedValue2 === null || stopWatchMergedValue2 === void 0 ? void 0 : stopWatchMergedValue2(); - } - }); - provide(inputInjectionKey, { - mergedValueRef, - maxlengthRef, - mergedClsPrefixRef, - countGraphemesRef: toRef(props, "countGraphemes") - }); - const exposedProps = { - wrapperElRef, - inputElRef, - textareaElRef, - isCompositing: isComposingRef, - clear: clearValue, - focus, - blur, - select, - deactivate, - activate, - scrollTo - }; - const rtlEnabledRef = useRtl("Input", mergedRtlRef, mergedClsPrefixRef); - const cssVarsRef = computed(() => { - const { - value: size - } = mergedSizeRef; - const { - common: { - cubicBezierEaseInOut - }, - self: { - color, - borderRadius, - textColor, - caretColor, - caretColorError, - caretColorWarning, - textDecorationColor, - border, - borderDisabled, - borderHover, - borderFocus, - placeholderColor, - placeholderColorDisabled, - lineHeightTextarea, - colorDisabled, - colorFocus, - textColorDisabled, - boxShadowFocus, - iconSize, - colorFocusWarning, - boxShadowFocusWarning, - borderWarning, - borderFocusWarning, - borderHoverWarning, - colorFocusError, - boxShadowFocusError, - borderError, - borderFocusError, - borderHoverError, - clearSize, - clearColor, - clearColorHover, - clearColorPressed, - iconColor, - iconColorDisabled, - suffixTextColor, - countTextColor, - countTextColorDisabled, - iconColorHover, - iconColorPressed, - loadingColor, - loadingColorError, - loadingColorWarning, - fontWeight, - [createKey("padding", size)]: padding, - [createKey("fontSize", size)]: fontSize, - [createKey("height", size)]: height - } - } = themeRef.value; - const { - left: paddingLeft, - right: paddingRight - } = getMargin(padding); - return { - "--n-bezier": cubicBezierEaseInOut, - "--n-count-text-color": countTextColor, - "--n-count-text-color-disabled": countTextColorDisabled, - "--n-color": color, - "--n-font-size": fontSize, - "--n-font-weight": fontWeight, - "--n-border-radius": borderRadius, - "--n-height": height, - "--n-padding-left": paddingLeft, - "--n-padding-right": paddingRight, - "--n-text-color": textColor, - "--n-caret-color": caretColor, - "--n-text-decoration-color": textDecorationColor, - "--n-border": border, - "--n-border-disabled": borderDisabled, - "--n-border-hover": borderHover, - "--n-border-focus": borderFocus, - "--n-placeholder-color": placeholderColor, - "--n-placeholder-color-disabled": placeholderColorDisabled, - "--n-icon-size": iconSize, - "--n-line-height-textarea": lineHeightTextarea, - "--n-color-disabled": colorDisabled, - "--n-color-focus": colorFocus, - "--n-text-color-disabled": textColorDisabled, - "--n-box-shadow-focus": boxShadowFocus, - "--n-loading-color": loadingColor, - // form warning - "--n-caret-color-warning": caretColorWarning, - "--n-color-focus-warning": colorFocusWarning, - "--n-box-shadow-focus-warning": boxShadowFocusWarning, - "--n-border-warning": borderWarning, - "--n-border-focus-warning": borderFocusWarning, - "--n-border-hover-warning": borderHoverWarning, - "--n-loading-color-warning": loadingColorWarning, - // form error - "--n-caret-color-error": caretColorError, - "--n-color-focus-error": colorFocusError, - "--n-box-shadow-focus-error": boxShadowFocusError, - "--n-border-error": borderError, - "--n-border-focus-error": borderFocusError, - "--n-border-hover-error": borderHoverError, - "--n-loading-color-error": loadingColorError, - // clear-button - "--n-clear-color": clearColor, - "--n-clear-size": clearSize, - "--n-clear-color-hover": clearColorHover, - "--n-clear-color-pressed": clearColorPressed, - "--n-icon-color": iconColor, - "--n-icon-color-hover": iconColorHover, - "--n-icon-color-pressed": iconColorPressed, - "--n-icon-color-disabled": iconColorDisabled, - "--n-suffix-text-color": suffixTextColor - }; - }); - const themeClassHandle = inlineThemeDisabled ? useThemeClass("input", computed(() => { - const { - value: size - } = mergedSizeRef; - return size[0]; - }), cssVarsRef, props) : void 0; - return Object.assign(Object.assign({}, exposedProps), { - // DOM ref - wrapperElRef, - inputElRef, - inputMirrorElRef, - inputEl2Ref, - textareaElRef, - textareaMirrorElRef, - textareaScrollbarInstRef, - // value - rtlEnabled: rtlEnabledRef, - uncontrolledValue: uncontrolledValueRef, - mergedValue: mergedValueRef, - passwordVisible: passwordVisibleRef, - mergedPlaceholder: mergedPlaceholderRef, - showPlaceholder1: showPlaceholder1Ref, - showPlaceholder2: showPlaceholder2Ref, - mergedFocus: mergedFocusRef, - isComposing: isComposingRef, - activated: activatedRef, - showClearButton, - mergedSize: mergedSizeRef, - mergedDisabled: mergedDisabledRef, - textDecorationStyle: textDecorationStyleRef, - mergedClsPrefix: mergedClsPrefixRef, - mergedBordered: mergedBorderedRef, - mergedShowPasswordOn: mergedShowPasswordOnRef, - placeholderStyle: placeholderStyleRef, - mergedStatus: mergedStatusRef, - textAreaScrollContainerWidth: textAreaScrollContainerWidthRef, - // methods - handleTextAreaScroll, - handleCompositionStart, - handleCompositionEnd, - handleInput, - handleInputBlur, - handleInputFocus, - handleWrapperBlur, - handleWrapperFocus, - handleMouseEnter, - handleMouseLeave, - handleMouseDown, - handleChange, - handleClick, - handleClear, - handlePasswordToggleClick, - handlePasswordToggleMousedown, - handleWrapperKeydown, - handleWrapperKeyup, - handleTextAreaMirrorResize, - getTextareaScrollContainer: () => { - return textareaElRef.value; - }, - mergedTheme: themeRef, - cssVars: inlineThemeDisabled ? void 0 : cssVarsRef, - themeClass: themeClassHandle === null || themeClassHandle === void 0 ? void 0 : themeClassHandle.themeClass, - onRender: themeClassHandle === null || themeClassHandle === void 0 ? void 0 : themeClassHandle.onRender - }); - }, - render() { - var _a, _b; - const { - mergedClsPrefix, - mergedStatus, - themeClass, - type, - countGraphemes, - onRender - } = this; - const $slots = this.$slots; - onRender === null || onRender === void 0 ? void 0 : onRender(); - return h("div", { - ref: "wrapperElRef", - class: [`${mergedClsPrefix}-input`, themeClass, mergedStatus && `${mergedClsPrefix}-input--${mergedStatus}-status`, { - [`${mergedClsPrefix}-input--rtl`]: this.rtlEnabled, - [`${mergedClsPrefix}-input--disabled`]: this.mergedDisabled, - [`${mergedClsPrefix}-input--textarea`]: type === "textarea", - [`${mergedClsPrefix}-input--resizable`]: this.resizable && !this.autosize, - [`${mergedClsPrefix}-input--autosize`]: this.autosize, - [`${mergedClsPrefix}-input--round`]: this.round && !(type === "textarea"), - [`${mergedClsPrefix}-input--pair`]: this.pair, - [`${mergedClsPrefix}-input--focus`]: this.mergedFocus, - [`${mergedClsPrefix}-input--stateful`]: this.stateful - }], - style: this.cssVars, - tabindex: !this.mergedDisabled && this.passivelyActivated && !this.activated ? 0 : void 0, - onFocus: this.handleWrapperFocus, - onBlur: this.handleWrapperBlur, - onClick: this.handleClick, - onMousedown: this.handleMouseDown, - onMouseenter: this.handleMouseEnter, - onMouseleave: this.handleMouseLeave, - onCompositionstart: this.handleCompositionStart, - onCompositionend: this.handleCompositionEnd, - onKeyup: this.handleWrapperKeyup, - onKeydown: this.handleWrapperKeydown - }, h("div", { - class: `${mergedClsPrefix}-input-wrapper` - }, resolveWrappedSlot($slots.prefix, (children) => children && h("div", { - class: `${mergedClsPrefix}-input__prefix` - }, children)), type === "textarea" ? h(Scrollbar, { - ref: "textareaScrollbarInstRef", - class: `${mergedClsPrefix}-input__textarea`, - container: this.getTextareaScrollContainer, - triggerDisplayManually: true, - useUnifiedContainer: true, - internalHoistYRail: true - }, { - default: () => { - var _a2, _b2; - const { - textAreaScrollContainerWidth - } = this; - const scrollContainerWidthStyle = { - width: this.autosize && textAreaScrollContainerWidth && `${textAreaScrollContainerWidth}px` - }; - return h(Fragment, null, h("textarea", Object.assign({}, this.inputProps, { - ref: "textareaElRef", - class: [`${mergedClsPrefix}-input__textarea-el`, (_a2 = this.inputProps) === null || _a2 === void 0 ? void 0 : _a2.class], - autofocus: this.autofocus, - rows: Number(this.rows), - placeholder: this.placeholder, - value: this.mergedValue, - disabled: this.mergedDisabled, - maxlength: countGraphemes ? void 0 : this.maxlength, - minlength: countGraphemes ? void 0 : this.minlength, - readonly: this.readonly, - tabindex: this.passivelyActivated && !this.activated ? -1 : void 0, - style: [this.textDecorationStyle[0], (_b2 = this.inputProps) === null || _b2 === void 0 ? void 0 : _b2.style, scrollContainerWidthStyle], - onBlur: this.handleInputBlur, - onFocus: (e) => { - this.handleInputFocus(e, 2); - }, - onInput: this.handleInput, - onChange: this.handleChange, - onScroll: this.handleTextAreaScroll - })), this.showPlaceholder1 ? h("div", { - class: `${mergedClsPrefix}-input__placeholder`, - style: [this.placeholderStyle, scrollContainerWidthStyle], - key: "placeholder" - }, this.mergedPlaceholder[0]) : null, this.autosize ? h(VResizeObserver, { - onResize: this.handleTextAreaMirrorResize - }, { - default: () => h("div", { - ref: "textareaMirrorElRef", - class: `${mergedClsPrefix}-input__textarea-mirror`, - key: "mirror" - }) - }) : null); - } - }) : h("div", { - class: `${mergedClsPrefix}-input__input` - }, h("input", Object.assign({ - type: type === "password" && this.mergedShowPasswordOn && this.passwordVisible ? "text" : type - }, this.inputProps, { - ref: "inputElRef", - class: [`${mergedClsPrefix}-input__input-el`, (_a = this.inputProps) === null || _a === void 0 ? void 0 : _a.class], - style: [this.textDecorationStyle[0], (_b = this.inputProps) === null || _b === void 0 ? void 0 : _b.style], - tabindex: this.passivelyActivated && !this.activated ? -1 : void 0, - placeholder: this.mergedPlaceholder[0], - disabled: this.mergedDisabled, - maxlength: countGraphemes ? void 0 : this.maxlength, - minlength: countGraphemes ? void 0 : this.minlength, - value: Array.isArray(this.mergedValue) ? this.mergedValue[0] : this.mergedValue, - readonly: this.readonly, - autofocus: this.autofocus, - size: this.attrSize, - onBlur: this.handleInputBlur, - onFocus: (e) => { - this.handleInputFocus(e, 0); - }, - onInput: (e) => { - this.handleInput(e, 0); - }, - onChange: (e) => { - this.handleChange(e, 0); - } - })), this.showPlaceholder1 ? h("div", { - class: `${mergedClsPrefix}-input__placeholder` - }, h("span", null, this.mergedPlaceholder[0])) : null, this.autosize ? h("div", { - class: `${mergedClsPrefix}-input__input-mirror`, - key: "mirror", - ref: "inputMirrorElRef" - }, " ") : null), !this.pair && resolveWrappedSlot($slots.suffix, (children) => { - return children || this.clearable || this.showCount || this.mergedShowPasswordOn || this.loading !== void 0 ? h("div", { - class: `${mergedClsPrefix}-input__suffix` - }, [resolveWrappedSlot($slots["clear-icon-placeholder"], (children2) => { - return (this.clearable || children2) && h(NBaseClear, { - clsPrefix: mergedClsPrefix, - show: this.showClearButton, - onClear: this.handleClear - }, { - placeholder: () => children2, - icon: () => { - var _a2, _b2; - return (_b2 = (_a2 = this.$slots)["clear-icon"]) === null || _b2 === void 0 ? void 0 : _b2.call(_a2); - } - }); - }), !this.internalLoadingBeforeSuffix ? children : null, this.loading !== void 0 ? h(NBaseSuffix, { - clsPrefix: mergedClsPrefix, - loading: this.loading, - showArrow: false, - showClear: false, - style: this.cssVars - }) : null, this.internalLoadingBeforeSuffix ? children : null, this.showCount && this.type !== "textarea" ? h(WordCount, null, { - default: (props) => { - var _a2; - return (_a2 = $slots.count) === null || _a2 === void 0 ? void 0 : _a2.call($slots, props); - } - }) : null, this.mergedShowPasswordOn && this.type === "password" ? h("div", { - class: `${mergedClsPrefix}-input__eye`, - onMousedown: this.handlePasswordToggleMousedown, - onClick: this.handlePasswordToggleClick - }, this.passwordVisible ? resolveSlot($slots["password-visible-icon"], () => [h(NBaseIcon, { - clsPrefix: mergedClsPrefix - }, { - default: () => h(EyeIcon, null) - })]) : resolveSlot($slots["password-invisible-icon"], () => [h(NBaseIcon, { - clsPrefix: mergedClsPrefix - }, { - default: () => h(EyeOffIcon, null) - })])) : null]) : null; - })), this.pair ? h("span", { - class: `${mergedClsPrefix}-input__separator` - }, resolveSlot($slots.separator, () => [this.separator])) : null, this.pair ? h("div", { - class: `${mergedClsPrefix}-input-wrapper` - }, h("div", { - class: `${mergedClsPrefix}-input__input` - }, h("input", { - ref: "inputEl2Ref", - type: this.type, - class: `${mergedClsPrefix}-input__input-el`, - tabindex: this.passivelyActivated && !this.activated ? -1 : void 0, - placeholder: this.mergedPlaceholder[1], - disabled: this.mergedDisabled, - maxlength: countGraphemes ? void 0 : this.maxlength, - minlength: countGraphemes ? void 0 : this.minlength, - value: Array.isArray(this.mergedValue) ? this.mergedValue[1] : void 0, - readonly: this.readonly, - style: this.textDecorationStyle[1], - onBlur: this.handleInputBlur, - onFocus: (e) => { - this.handleInputFocus(e, 1); - }, - onInput: (e) => { - this.handleInput(e, 1); - }, - onChange: (e) => { - this.handleChange(e, 1); - } - }), this.showPlaceholder2 ? h("div", { - class: `${mergedClsPrefix}-input__placeholder` - }, h("span", null, this.mergedPlaceholder[1])) : null), resolveWrappedSlot($slots.suffix, (children) => { - return (this.clearable || children) && h("div", { - class: `${mergedClsPrefix}-input__suffix` - }, [this.clearable && h(NBaseClear, { - clsPrefix: mergedClsPrefix, - show: this.showClearButton, - onClear: this.handleClear - }, { - icon: () => { - var _a2; - return (_a2 = $slots["clear-icon"]) === null || _a2 === void 0 ? void 0 : _a2.call($slots); - }, - placeholder: () => { - var _a2; - return (_a2 = $slots["clear-icon-placeholder"]) === null || _a2 === void 0 ? void 0 : _a2.call($slots); - } - }), children]); - })) : null, this.mergedBordered ? h("div", { - class: `${mergedClsPrefix}-input__border` - }) : null, this.mergedBordered ? h("div", { - class: `${mergedClsPrefix}-input__state-border` - }) : null, this.showCount && type === "textarea" ? h(WordCount, null, { - default: (props) => { - var _a2; - const { - renderCount - } = this; - if (renderCount) { - return renderCount(props); - } - return (_a2 = $slots.count) === null || _a2 === void 0 ? void 0 : _a2.call($slots, props); - } - }) : null); - } -}); -const style = cB("switch", ` - height: var(--n-height); - min-width: var(--n-width); - vertical-align: middle; - user-select: none; - -webkit-user-select: none; - display: inline-flex; - outline: none; - justify-content: center; - align-items: center; -`, [cE("children-placeholder", ` - height: var(--n-rail-height); - display: flex; - flex-direction: column; - overflow: hidden; - pointer-events: none; - visibility: hidden; - `), cE("rail-placeholder", ` - display: flex; - flex-wrap: none; - `), cE("button-placeholder", ` - width: calc(1.75 * var(--n-rail-height)); - height: var(--n-rail-height); - `), cB("base-loading", ` - position: absolute; - top: 50%; - left: 50%; - transform: translateX(-50%) translateY(-50%); - font-size: calc(var(--n-button-width) - 4px); - color: var(--n-loading-color); - transition: color .3s var(--n-bezier); - `, [iconSwitchTransition({ - left: "50%", - top: "50%", - originalTransform: "translateX(-50%) translateY(-50%)" -})]), cE("checked, unchecked", ` - transition: color .3s var(--n-bezier); - color: var(--n-text-color); - box-sizing: border-box; - position: absolute; - white-space: nowrap; - top: 0; - bottom: 0; - display: flex; - align-items: center; - line-height: 1; - `), cE("checked", ` - right: 0; - padding-right: calc(1.25 * var(--n-rail-height) - var(--n-offset)); - `), cE("unchecked", ` - left: 0; - justify-content: flex-end; - padding-left: calc(1.25 * var(--n-rail-height) - var(--n-offset)); - `), c("&:focus", [cE("rail", ` - box-shadow: var(--n-box-shadow-focus); - `)]), cM("round", [cE("rail", "border-radius: calc(var(--n-rail-height) / 2);", [cE("button", "border-radius: calc(var(--n-button-height) / 2);")])]), cNotM("disabled", [cNotM("icon", [cM("rubber-band", [cM("pressed", [cE("rail", [cE("button", "max-width: var(--n-button-width-pressed);")])]), cE("rail", [c("&:active", [cE("button", "max-width: var(--n-button-width-pressed);")])]), cM("active", [cM("pressed", [cE("rail", [cE("button", "left: calc(100% - var(--n-offset) - var(--n-button-width-pressed));")])]), cE("rail", [c("&:active", [cE("button", "left: calc(100% - var(--n-offset) - var(--n-button-width-pressed));")])])])])])]), cM("active", [cE("rail", [cE("button", "left: calc(100% - var(--n-button-width) - var(--n-offset))")])]), cE("rail", ` - overflow: hidden; - height: var(--n-rail-height); - min-width: var(--n-rail-width); - border-radius: var(--n-rail-border-radius); - cursor: pointer; - position: relative; - transition: - opacity .3s var(--n-bezier), - background .3s var(--n-bezier), - box-shadow .3s var(--n-bezier); - background-color: var(--n-rail-color); - `, [cE("button-icon", ` - color: var(--n-icon-color); - transition: color .3s var(--n-bezier); - font-size: calc(var(--n-button-height) - 4px); - position: absolute; - left: 0; - right: 0; - top: 0; - bottom: 0; - display: flex; - justify-content: center; - align-items: center; - line-height: 1; - `, [iconSwitchTransition()]), cE("button", ` - align-items: center; - top: var(--n-offset); - left: var(--n-offset); - height: var(--n-button-height); - width: var(--n-button-width-pressed); - max-width: var(--n-button-width); - border-radius: var(--n-button-border-radius); - background-color: var(--n-button-color); - box-shadow: var(--n-button-box-shadow); - box-sizing: border-box; - cursor: inherit; - content: ""; - position: absolute; - transition: - background-color .3s var(--n-bezier), - left .3s var(--n-bezier), - opacity .3s var(--n-bezier), - max-width .3s var(--n-bezier), - box-shadow .3s var(--n-bezier); - `)]), cM("active", [cE("rail", "background-color: var(--n-rail-color-active);")]), cM("loading", [cE("rail", ` - cursor: wait; - `)]), cM("disabled", [cE("rail", ` - cursor: not-allowed; - opacity: .5; - `)])]); -const switchProps = Object.assign(Object.assign({}, useTheme.props), { - size: { - type: String, - default: "medium" - }, - value: { - type: [String, Number, Boolean], - default: void 0 - }, - loading: Boolean, - defaultValue: { - type: [String, Number, Boolean], - default: false - }, - disabled: { - type: Boolean, - default: void 0 - }, - round: { - type: Boolean, - default: true - }, - "onUpdate:value": [Function, Array], - onUpdateValue: [Function, Array], - checkedValue: { - type: [String, Number, Boolean], - default: true - }, - uncheckedValue: { - type: [String, Number, Boolean], - default: false - }, - railStyle: Function, - rubberBand: { - type: Boolean, - default: true - }, - /** @deprecated */ - onChange: [Function, Array] -}); -let supportCssMax; -const __unplugin_components_3 = defineComponent({ - name: "Switch", - props: switchProps, - setup(props) { - if (supportCssMax === void 0) { - if (typeof CSS !== "undefined") { - if (typeof CSS.supports !== "undefined") { - supportCssMax = CSS.supports("width", "max(1px)"); - } else { - supportCssMax = false; - } - } else { - supportCssMax = true; - } - } - const { - mergedClsPrefixRef, - inlineThemeDisabled - } = useConfig(props); - const themeRef = useTheme("Switch", "-switch", style, switchLight, props, mergedClsPrefixRef); - const formItem = useFormItem(props); - const { - mergedSizeRef, - mergedDisabledRef - } = formItem; - const uncontrolledValueRef = ref(props.defaultValue); - const controlledValueRef = toRef(props, "value"); - const mergedValueRef = useMergedState(controlledValueRef, uncontrolledValueRef); - const checkedRef = computed(() => { - return mergedValueRef.value === props.checkedValue; - }); - const pressedRef = ref(false); - const focusedRef = ref(false); - const mergedRailStyleRef = computed(() => { - const { - railStyle - } = props; - if (!railStyle) return void 0; - return railStyle({ - focused: focusedRef.value, - checked: checkedRef.value - }); - }); - function doUpdateValue(value) { - const { - "onUpdate:value": _onUpdateValue, - onChange, - onUpdateValue - } = props; - const { - nTriggerFormInput, - nTriggerFormChange - } = formItem; - if (_onUpdateValue) call(_onUpdateValue, value); - if (onUpdateValue) call(onUpdateValue, value); - if (onChange) call(onChange, value); - uncontrolledValueRef.value = value; - nTriggerFormInput(); - nTriggerFormChange(); - } - function doFocus() { - const { - nTriggerFormFocus - } = formItem; - nTriggerFormFocus(); - } - function doBlur() { - const { - nTriggerFormBlur - } = formItem; - nTriggerFormBlur(); - } - function handleClick() { - if (props.loading || mergedDisabledRef.value) return; - if (mergedValueRef.value !== props.checkedValue) { - doUpdateValue(props.checkedValue); - } else { - doUpdateValue(props.uncheckedValue); - } - } - function handleFocus() { - focusedRef.value = true; - doFocus(); - } - function handleBlur() { - focusedRef.value = false; - doBlur(); - pressedRef.value = false; - } - function handleKeyup(e) { - if (props.loading || mergedDisabledRef.value) return; - if (e.key === " ") { - if (mergedValueRef.value !== props.checkedValue) { - doUpdateValue(props.checkedValue); - } else { - doUpdateValue(props.uncheckedValue); - } - pressedRef.value = false; - } - } - function handleKeydown(e) { - if (props.loading || mergedDisabledRef.value) return; - if (e.key === " ") { - e.preventDefault(); - pressedRef.value = true; - } - } - const cssVarsRef = computed(() => { - const { - value: size - } = mergedSizeRef; - const { - self: { - opacityDisabled, - railColor, - railColorActive, - buttonBoxShadow, - buttonColor, - boxShadowFocus, - loadingColor, - textColor, - iconColor, - [createKey("buttonHeight", size)]: buttonHeight, - [createKey("buttonWidth", size)]: buttonWidth, - [createKey("buttonWidthPressed", size)]: buttonWidthPressed, - [createKey("railHeight", size)]: railHeight, - [createKey("railWidth", size)]: railWidth, - [createKey("railBorderRadius", size)]: railBorderRadius, - [createKey("buttonBorderRadius", size)]: buttonBorderRadius - }, - common: { - cubicBezierEaseInOut - } - } = themeRef.value; - let offset; - let height; - let width; - if (supportCssMax) { - offset = `calc((${railHeight} - ${buttonHeight}) / 2)`; - height = `max(${railHeight}, ${buttonHeight})`; - width = `max(${railWidth}, calc(${railWidth} + ${buttonHeight} - ${railHeight}))`; - } else { - offset = pxfy((depx(railHeight) - depx(buttonHeight)) / 2); - height = pxfy(Math.max(depx(railHeight), depx(buttonHeight))); - width = depx(railHeight) > depx(buttonHeight) ? railWidth : pxfy(depx(railWidth) + depx(buttonHeight) - depx(railHeight)); - } - return { - "--n-bezier": cubicBezierEaseInOut, - "--n-button-border-radius": buttonBorderRadius, - "--n-button-box-shadow": buttonBoxShadow, - "--n-button-color": buttonColor, - "--n-button-width": buttonWidth, - "--n-button-width-pressed": buttonWidthPressed, - "--n-button-height": buttonHeight, - "--n-height": height, - "--n-offset": offset, - "--n-opacity-disabled": opacityDisabled, - "--n-rail-border-radius": railBorderRadius, - "--n-rail-color": railColor, - "--n-rail-color-active": railColorActive, - "--n-rail-height": railHeight, - "--n-rail-width": railWidth, - "--n-width": width, - "--n-box-shadow-focus": boxShadowFocus, - "--n-loading-color": loadingColor, - "--n-text-color": textColor, - "--n-icon-color": iconColor - }; - }); - const themeClassHandle = inlineThemeDisabled ? useThemeClass("switch", computed(() => { - return mergedSizeRef.value[0]; - }), cssVarsRef, props) : void 0; - return { - handleClick, - handleBlur, - handleFocus, - handleKeyup, - handleKeydown, - mergedRailStyle: mergedRailStyleRef, - pressed: pressedRef, - mergedClsPrefix: mergedClsPrefixRef, - mergedValue: mergedValueRef, - checked: checkedRef, - mergedDisabled: mergedDisabledRef, - cssVars: inlineThemeDisabled ? void 0 : cssVarsRef, - themeClass: themeClassHandle === null || themeClassHandle === void 0 ? void 0 : themeClassHandle.themeClass, - onRender: themeClassHandle === null || themeClassHandle === void 0 ? void 0 : themeClassHandle.onRender - }; - }, - render() { - const { - mergedClsPrefix, - mergedDisabled, - checked, - mergedRailStyle, - onRender, - $slots - } = this; - onRender === null || onRender === void 0 ? void 0 : onRender(); - const { - checked: checkedSlot, - unchecked: uncheckedSlot, - icon: iconSlot, - "checked-icon": checkedIconSlot, - "unchecked-icon": uncheckedIconSlot - } = $slots; - const hasIcon = !(isSlotEmpty(iconSlot) && isSlotEmpty(checkedIconSlot) && isSlotEmpty(uncheckedIconSlot)); - return h("div", { - role: "switch", - "aria-checked": checked, - class: [`${mergedClsPrefix}-switch`, this.themeClass, hasIcon && `${mergedClsPrefix}-switch--icon`, checked && `${mergedClsPrefix}-switch--active`, mergedDisabled && `${mergedClsPrefix}-switch--disabled`, this.round && `${mergedClsPrefix}-switch--round`, this.loading && `${mergedClsPrefix}-switch--loading`, this.pressed && `${mergedClsPrefix}-switch--pressed`, this.rubberBand && `${mergedClsPrefix}-switch--rubber-band`], - tabindex: !this.mergedDisabled ? 0 : void 0, - style: this.cssVars, - onClick: this.handleClick, - onFocus: this.handleFocus, - onBlur: this.handleBlur, - onKeyup: this.handleKeyup, - onKeydown: this.handleKeydown - }, h("div", { - class: `${mergedClsPrefix}-switch__rail`, - "aria-hidden": "true", - style: mergedRailStyle - }, resolveWrappedSlot(checkedSlot, (checkedSlotChildren) => resolveWrappedSlot(uncheckedSlot, (uncheckedSlotChildren) => { - if (checkedSlotChildren || uncheckedSlotChildren) { - return h("div", { - "aria-hidden": true, - class: `${mergedClsPrefix}-switch__children-placeholder` - }, h("div", { - class: `${mergedClsPrefix}-switch__rail-placeholder` - }, h("div", { - class: `${mergedClsPrefix}-switch__button-placeholder` - }), checkedSlotChildren), h("div", { - class: `${mergedClsPrefix}-switch__rail-placeholder` - }, h("div", { - class: `${mergedClsPrefix}-switch__button-placeholder` - }), uncheckedSlotChildren)); - } - return null; - })), h("div", { - class: `${mergedClsPrefix}-switch__button` - }, resolveWrappedSlot(iconSlot, (icon) => resolveWrappedSlot(checkedIconSlot, (checkedIcon) => resolveWrappedSlot(uncheckedIconSlot, (uncheckedIcon) => { - return h(NIconSwitchTransition, null, { - default: () => this.loading ? h(NBaseLoading, { - key: "loading", - clsPrefix: mergedClsPrefix, - strokeWidth: 20 - }) : this.checked && (checkedIcon || icon) ? h("div", { - class: `${mergedClsPrefix}-switch__button-icon`, - key: checkedIcon ? "checked-icon" : "icon" - }, checkedIcon || icon) : !this.checked && (uncheckedIcon || icon) ? h("div", { - class: `${mergedClsPrefix}-switch__button-icon`, - key: uncheckedIcon ? "unchecked-icon" : "icon" - }, uncheckedIcon || icon) : null - }); - }))), resolveWrappedSlot(checkedSlot, (children) => children && h("div", { - key: "checked", - class: `${mergedClsPrefix}-switch__checked` - }, children)), resolveWrappedSlot(uncheckedSlot, (children) => children && h("div", { - key: "unchecked", - class: `${mergedClsPrefix}-switch__unchecked` - }, children))))); - } -}); -export { - __unplugin_components_1 as _, - __unplugin_components_3 as a -}; diff --git a/out/renderer/assets/Switch-D3Z_Vg3u.js.gz b/out/renderer/assets/Switch-D3Z_Vg3u.js.gz deleted file mode 100644 index 3e65ca6..0000000 Binary files a/out/renderer/assets/Switch-D3Z_Vg3u.js.gz and /dev/null differ diff --git a/out/renderer/assets/Tag-C0oC92WF.js b/out/renderer/assets/Tag-C0oC92WF.js deleted file mode 100644 index 1c3002f..0000000 --- a/out/renderer/assets/Tag-C0oC92WF.js +++ /dev/null @@ -1,344 +0,0 @@ -import { p as cB, W as cM, Y as cE, V as cNotM, m as c, q as useTheme, d as defineComponent, r as ref, x as useConfig, by as tagLight, $ as provide, A as toRef, F as useRtl, G as computed, ao as createKey, bs as getMargin, ap as useThemeClass, bx as color2Class, I as resolveWrappedSlot, l as h, bz as NBaseClose, aL as createInjectionKey, L as call } from "./index-DKaFsuse.js"; -const commonProps = { - color: Object, - type: { - type: String, - default: "default" - }, - round: Boolean, - size: { - type: String, - default: "medium" - }, - closable: Boolean, - disabled: { - type: Boolean, - default: void 0 - } -}; -const style = cB("tag", ` - --n-close-margin: var(--n-close-margin-top) var(--n-close-margin-right) var(--n-close-margin-bottom) var(--n-close-margin-left); - white-space: nowrap; - position: relative; - box-sizing: border-box; - cursor: default; - display: inline-flex; - align-items: center; - flex-wrap: nowrap; - padding: var(--n-padding); - border-radius: var(--n-border-radius); - color: var(--n-text-color); - background-color: var(--n-color); - transition: - border-color .3s var(--n-bezier), - background-color .3s var(--n-bezier), - color .3s var(--n-bezier), - box-shadow .3s var(--n-bezier), - opacity .3s var(--n-bezier); - line-height: 1; - height: var(--n-height); - font-size: var(--n-font-size); -`, [cM("strong", ` - font-weight: var(--n-font-weight-strong); - `), cE("border", ` - pointer-events: none; - position: absolute; - left: 0; - right: 0; - top: 0; - bottom: 0; - border-radius: inherit; - border: var(--n-border); - transition: border-color .3s var(--n-bezier); - `), cE("icon", ` - display: flex; - margin: 0 4px 0 0; - color: var(--n-text-color); - transition: color .3s var(--n-bezier); - font-size: var(--n-avatar-size-override); - `), cE("avatar", ` - display: flex; - margin: 0 6px 0 0; - `), cE("close", ` - margin: var(--n-close-margin); - transition: - background-color .3s var(--n-bezier), - color .3s var(--n-bezier); - `), cM("round", ` - padding: 0 calc(var(--n-height) / 3); - border-radius: calc(var(--n-height) / 2); - `, [cE("icon", ` - margin: 0 4px 0 calc((var(--n-height) - 8px) / -2); - `), cE("avatar", ` - margin: 0 6px 0 calc((var(--n-height) - 8px) / -2); - `), cM("closable", ` - padding: 0 calc(var(--n-height) / 4) 0 calc(var(--n-height) / 3); - `)]), cM("icon, avatar", [cM("round", ` - padding: 0 calc(var(--n-height) / 3) 0 calc(var(--n-height) / 2); - `)]), cM("disabled", ` - cursor: not-allowed !important; - opacity: var(--n-opacity-disabled); - `), cM("checkable", ` - cursor: pointer; - box-shadow: none; - color: var(--n-text-color-checkable); - background-color: var(--n-color-checkable); - `, [cNotM("disabled", [c("&:hover", "background-color: var(--n-color-hover-checkable);", [cNotM("checked", "color: var(--n-text-color-hover-checkable);")]), c("&:active", "background-color: var(--n-color-pressed-checkable);", [cNotM("checked", "color: var(--n-text-color-pressed-checkable);")])]), cM("checked", ` - color: var(--n-text-color-checked); - background-color: var(--n-color-checked); - `, [cNotM("disabled", [c("&:hover", "background-color: var(--n-color-checked-hover);"), c("&:active", "background-color: var(--n-color-checked-pressed);")])])])]); -const tagProps = Object.assign(Object.assign(Object.assign({}, useTheme.props), commonProps), { - bordered: { - type: Boolean, - default: void 0 - }, - checked: Boolean, - checkable: Boolean, - strong: Boolean, - triggerClickOnClose: Boolean, - onClose: [Array, Function], - onMouseenter: Function, - onMouseleave: Function, - "onUpdate:checked": Function, - onUpdateChecked: Function, - // private - internalCloseFocusable: { - type: Boolean, - default: true - }, - internalCloseIsButtonTag: { - type: Boolean, - default: true - }, - // deprecated - onCheckedChange: Function -}); -const tagInjectionKey = createInjectionKey("n-tag"); -const __unplugin_components_4 = defineComponent({ - name: "Tag", - props: tagProps, - setup(props) { - const contentRef = ref(null); - const { - mergedBorderedRef, - mergedClsPrefixRef, - inlineThemeDisabled, - mergedRtlRef - } = useConfig(props); - const themeRef = useTheme("Tag", "-tag", style, tagLight, props, mergedClsPrefixRef); - provide(tagInjectionKey, { - roundRef: toRef(props, "round") - }); - function handleClick() { - if (!props.disabled) { - if (props.checkable) { - const { - checked, - onCheckedChange, - onUpdateChecked, - "onUpdate:checked": _onUpdateChecked - } = props; - if (onUpdateChecked) onUpdateChecked(!checked); - if (_onUpdateChecked) _onUpdateChecked(!checked); - if (onCheckedChange) onCheckedChange(!checked); - } - } - } - function handleCloseClick(e) { - if (!props.triggerClickOnClose) { - e.stopPropagation(); - } - if (!props.disabled) { - const { - onClose - } = props; - if (onClose) call(onClose, e); - } - } - const tagPublicMethods = { - setTextContent(textContent) { - const { - value - } = contentRef; - if (value) value.textContent = textContent; - } - }; - const rtlEnabledRef = useRtl("Tag", mergedRtlRef, mergedClsPrefixRef); - const cssVarsRef = computed(() => { - const { - type, - size, - color: { - color, - textColor - } = {} - } = props; - const { - common: { - cubicBezierEaseInOut - }, - self: { - padding, - closeMargin, - borderRadius, - opacityDisabled, - textColorCheckable, - textColorHoverCheckable, - textColorPressedCheckable, - textColorChecked, - colorCheckable, - colorHoverCheckable, - colorPressedCheckable, - colorChecked, - colorCheckedHover, - colorCheckedPressed, - closeBorderRadius, - fontWeightStrong, - [createKey("colorBordered", type)]: colorBordered, - [createKey("closeSize", size)]: closeSize, - [createKey("closeIconSize", size)]: closeIconSize, - [createKey("fontSize", size)]: fontSize, - [createKey("height", size)]: height, - [createKey("color", type)]: typedColor, - [createKey("textColor", type)]: typeTextColor, - [createKey("border", type)]: border, - [createKey("closeIconColor", type)]: closeIconColor, - [createKey("closeIconColorHover", type)]: closeIconColorHover, - [createKey("closeIconColorPressed", type)]: closeIconColorPressed, - [createKey("closeColorHover", type)]: closeColorHover, - [createKey("closeColorPressed", type)]: closeColorPressed - } - } = themeRef.value; - const closeMarginDiscrete = getMargin(closeMargin); - return { - "--n-font-weight-strong": fontWeightStrong, - "--n-avatar-size-override": `calc(${height} - 8px)`, - "--n-bezier": cubicBezierEaseInOut, - "--n-border-radius": borderRadius, - "--n-border": border, - "--n-close-icon-size": closeIconSize, - "--n-close-color-pressed": closeColorPressed, - "--n-close-color-hover": closeColorHover, - "--n-close-border-radius": closeBorderRadius, - "--n-close-icon-color": closeIconColor, - "--n-close-icon-color-hover": closeIconColorHover, - "--n-close-icon-color-pressed": closeIconColorPressed, - "--n-close-icon-color-disabled": closeIconColor, - "--n-close-margin-top": closeMarginDiscrete.top, - "--n-close-margin-right": closeMarginDiscrete.right, - "--n-close-margin-bottom": closeMarginDiscrete.bottom, - "--n-close-margin-left": closeMarginDiscrete.left, - "--n-close-size": closeSize, - "--n-color": color || (mergedBorderedRef.value ? colorBordered : typedColor), - "--n-color-checkable": colorCheckable, - "--n-color-checked": colorChecked, - "--n-color-checked-hover": colorCheckedHover, - "--n-color-checked-pressed": colorCheckedPressed, - "--n-color-hover-checkable": colorHoverCheckable, - "--n-color-pressed-checkable": colorPressedCheckable, - "--n-font-size": fontSize, - "--n-height": height, - "--n-opacity-disabled": opacityDisabled, - "--n-padding": padding, - "--n-text-color": textColor || typeTextColor, - "--n-text-color-checkable": textColorCheckable, - "--n-text-color-checked": textColorChecked, - "--n-text-color-hover-checkable": textColorHoverCheckable, - "--n-text-color-pressed-checkable": textColorPressedCheckable - }; - }); - const themeClassHandle = inlineThemeDisabled ? useThemeClass("tag", computed(() => { - let hash = ""; - const { - type, - size, - color: { - color, - textColor - } = {} - } = props; - hash += type[0]; - hash += size[0]; - if (color) { - hash += `a${color2Class(color)}`; - } - if (textColor) { - hash += `b${color2Class(textColor)}`; - } - if (mergedBorderedRef.value) { - hash += "c"; - } - return hash; - }), cssVarsRef, props) : void 0; - return Object.assign(Object.assign({}, tagPublicMethods), { - rtlEnabled: rtlEnabledRef, - mergedClsPrefix: mergedClsPrefixRef, - contentRef, - mergedBordered: mergedBorderedRef, - handleClick, - handleCloseClick, - cssVars: inlineThemeDisabled ? void 0 : cssVarsRef, - themeClass: themeClassHandle === null || themeClassHandle === void 0 ? void 0 : themeClassHandle.themeClass, - onRender: themeClassHandle === null || themeClassHandle === void 0 ? void 0 : themeClassHandle.onRender - }); - }, - render() { - var _a, _b; - const { - mergedClsPrefix, - rtlEnabled, - closable, - color: { - borderColor - } = {}, - round, - onRender, - $slots - } = this; - onRender === null || onRender === void 0 ? void 0 : onRender(); - const avatarNode = resolveWrappedSlot($slots.avatar, (children) => children && h("div", { - class: `${mergedClsPrefix}-tag__avatar` - }, children)); - const iconNode = resolveWrappedSlot($slots.icon, (children) => children && h("div", { - class: `${mergedClsPrefix}-tag__icon` - }, children)); - return h("div", { - class: [`${mergedClsPrefix}-tag`, this.themeClass, { - [`${mergedClsPrefix}-tag--rtl`]: rtlEnabled, - [`${mergedClsPrefix}-tag--strong`]: this.strong, - [`${mergedClsPrefix}-tag--disabled`]: this.disabled, - [`${mergedClsPrefix}-tag--checkable`]: this.checkable, - [`${mergedClsPrefix}-tag--checked`]: this.checkable && this.checked, - [`${mergedClsPrefix}-tag--round`]: round, - [`${mergedClsPrefix}-tag--avatar`]: avatarNode, - [`${mergedClsPrefix}-tag--icon`]: iconNode, - [`${mergedClsPrefix}-tag--closable`]: closable - }], - style: this.cssVars, - onClick: this.handleClick, - onMouseenter: this.onMouseenter, - onMouseleave: this.onMouseleave - }, iconNode || avatarNode, h("span", { - class: `${mergedClsPrefix}-tag__content`, - ref: "contentRef" - }, (_b = (_a = this.$slots).default) === null || _b === void 0 ? void 0 : _b.call(_a)), !this.checkable && closable ? h(NBaseClose, { - clsPrefix: mergedClsPrefix, - class: `${mergedClsPrefix}-tag__close`, - disabled: this.disabled, - onClick: this.handleCloseClick, - focusable: this.internalCloseFocusable, - round, - isButtonTag: this.internalCloseIsButtonTag, - absolute: true - }) : null, !this.checkable && this.mergedBordered ? h("div", { - class: `${mergedClsPrefix}-tag__border`, - style: { - borderColor - } - }) : null); - } -}); -export { - __unplugin_components_4 as _, - tagInjectionKey as t -}; diff --git a/out/renderer/assets/Tag-C0oC92WF.js.gz b/out/renderer/assets/Tag-C0oC92WF.js.gz deleted file mode 100644 index debcfbe..0000000 Binary files a/out/renderer/assets/Tag-C0oC92WF.js.gz and /dev/null differ diff --git a/out/renderer/assets/TitleBar-Bl1cFyS0.js b/out/renderer/assets/TitleBar-Bl1cFyS0.js deleted file mode 100644 index 93ebdd2..0000000 --- a/out/renderer/assets/TitleBar-Bl1cFyS0.js +++ /dev/null @@ -1,63 +0,0 @@ -import { as as inject, ce as dialogApiInjectionKey, bi as throwError, d as defineComponent, j as openBlock, c as createElementBlock, b as createBaseVNode, R as isElectron, _ as _export_sfc } from "./index-DKaFsuse.js"; -function useDialog() { - const dialog = inject(dialogApiInjectionKey, null); - if (dialog === null) { - throwError("use-dialog", "No outer founded."); - } - return dialog; -} -const _sfc_main = /* @__PURE__ */ defineComponent({ - __name: "TitleBar", - setup(__props) { - const dialog = useDialog(); - const minimize = () => { - if (!isElectron) { - return; - } - window.api.minimize(); - }; - const close = () => { - if (!isElectron) { - return; - } - dialog.warning({ - title: "提示", - content: "确定要退出吗?", - positiveText: "最小化", - negativeText: "关闭", - onPositiveClick: () => { - window.api.minimize(); - }, - onNegativeClick: () => { - window.api.close(); - } - }); - }; - const drag = (event) => { - if (!isElectron) { - return; - } - window.api.dragStart(event); - }; - return (_ctx, _cache) => { - return openBlock(), createElementBlock("div", { - id: "title-bar", - onMousedown: drag - }, [ - _cache[2] || (_cache[2] = createBaseVNode("div", { id: "title" }, "Alger Music", -1)), - createBaseVNode("div", { id: "buttons" }, [ - createBaseVNode("button", { onClick: minimize }, _cache[0] || (_cache[0] = [ - createBaseVNode("i", { class: "iconfont icon-minisize" }, null, -1) - ])), - createBaseVNode("button", { onClick: close }, _cache[1] || (_cache[1] = [ - createBaseVNode("i", { class: "iconfont icon-close" }, null, -1) - ])) - ]) - ], 32); - }; - } -}); -const TitleBar = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-6ad4ce60"]]); -export { - TitleBar as default -}; diff --git a/out/renderer/assets/TitleBar-Bl1cFyS0.js.gz b/out/renderer/assets/TitleBar-Bl1cFyS0.js.gz deleted file mode 100644 index dc21eaa..0000000 Binary files a/out/renderer/assets/TitleBar-Bl1cFyS0.js.gz and /dev/null differ diff --git a/out/renderer/assets/TitleBar-DxNBjVsT.css b/out/renderer/assets/TitleBar-DxNBjVsT.css deleted file mode 100644 index 6f68512..0000000 --- a/out/renderer/assets/TitleBar-DxNBjVsT.css +++ /dev/null @@ -1,37 +0,0 @@ -#title-bar[data-v-6ad4ce60] { - -webkit-app-region: drag; - position: relative; - display: flex; - -webkit-user-select: none; - -moz-user-select: none; - user-select: none; - justify-content: space-between; - padding-left: 1.5rem; - padding-right: 1.5rem; - padding-top: 0.5rem; - padding-bottom: 0.5rem; - --tw-text-opacity: 1; - color: rgb(0 0 0 / var(--tw-text-opacity, 1)); -}#title-bar[data-v-6ad4ce60]:is(.dark *) { - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity, 1)); -}#title-bar[data-v-6ad4ce60] { - z-index: 9999999; -} -#buttons[data-v-6ad4ce60] { - display: flex; - gap: 1rem; - -webkit-app-region: no-drag; -} -button[data-v-6ad4ce60] { - --tw-text-opacity: 1; - color: rgb(75 85 99 / var(--tw-text-opacity, 1)); -} -button[data-v-6ad4ce60]:hover { - --tw-text-opacity: 1; - color: rgb(34 197 94 / var(--tw-text-opacity, 1)); -} -button[data-v-6ad4ce60]:is(.dark *) { - --tw-text-opacity: 1; - color: rgb(156 163 175 / var(--tw-text-opacity, 1)); -} \ No newline at end of file diff --git a/out/renderer/assets/alipay-CcfmUela.png b/out/renderer/assets/alipay-CcfmUela.png deleted file mode 100644 index 1abda6c..0000000 Binary files a/out/renderer/assets/alipay-CcfmUela.png and /dev/null differ diff --git a/out/renderer/assets/home-BXGE9AqN.js b/out/renderer/assets/home-BXGE9AqN.js deleted file mode 100644 index dfbcc25..0000000 --- a/out/renderer/assets/home-BXGE9AqN.js +++ /dev/null @@ -1,31 +0,0 @@ -import { ad as request } from "./index-DKaFsuse.js"; -const getHotSinger = (params) => { - return request.get("/top/artists", { params }); -}; -const getSearchKeyword = () => { - return request.get("/search/default"); -}; -const getHotSearch = () => { - return request.get("/search/hot/detail"); -}; -const getPlaylistCategory = () => { - return request.get("/playlist/catlist"); -}; -const getRecommendMusic = (params) => { - return request.get("/personalized/newsong", { params }); -}; -const getDayRecommend = () => { - return request.get("/recommend/songs"); -}; -const getNewAlbum = () => { - return request.get("/album/newest"); -}; -export { - getNewAlbum as a, - getHotSinger as b, - getDayRecommend as c, - getRecommendMusic as d, - getHotSearch as e, - getSearchKeyword as f, - getPlaylistCategory as g -}; diff --git a/out/renderer/assets/icon-mGmYaNg4.png b/out/renderer/assets/icon-mGmYaNg4.png deleted file mode 100644 index 160f629..0000000 Binary files a/out/renderer/assets/icon-mGmYaNg4.png and /dev/null differ diff --git a/out/renderer/assets/iconfont-53c_NoX9.woff b/out/renderer/assets/iconfont-53c_NoX9.woff deleted file mode 100644 index 7323dcc..0000000 Binary files a/out/renderer/assets/iconfont-53c_NoX9.woff and /dev/null differ diff --git a/out/renderer/assets/iconfont-Cio8idH0.ttf b/out/renderer/assets/iconfont-Cio8idH0.ttf deleted file mode 100644 index cef8b1d..0000000 Binary files a/out/renderer/assets/iconfont-Cio8idH0.ttf and /dev/null differ diff --git a/out/renderer/assets/iconfont-DzQUHqRQ.woff2 b/out/renderer/assets/iconfont-DzQUHqRQ.woff2 deleted file mode 100644 index 6ffb140..0000000 Binary files a/out/renderer/assets/iconfont-DzQUHqRQ.woff2 and /dev/null differ diff --git a/out/renderer/assets/index-B-m4kL_6.css b/out/renderer/assets/index-B-m4kL_6.css deleted file mode 100644 index c9ea2bb..0000000 --- a/out/renderer/assets/index-B-m4kL_6.css +++ /dev/null @@ -1,43 +0,0 @@ -.favorite-page[data-v-2d1a7423] {display: flex;height: 100%;flex-direction: column;padding-top: 0.5rem;--tw-bg-opacity: 1;background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1)) -}.favorite-page[data-v-2d1a7423]:is(.dark *) {--tw-bg-opacity: 1;background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1)) -} -.favorite-page .favorite-header[data-v-2d1a7423] {display: flex;flex-shrink: 0;align-items: center;justify-content: space-between;padding-left: 1rem;padding-right: 1rem -} -.favorite-page .favorite-header h2[data-v-2d1a7423] {padding-bottom: 0.5rem;font-size: 1.25rem;line-height: 1.75rem;font-weight: 700;--tw-text-opacity: 1;color: rgb(17 24 39 / var(--tw-text-opacity, 1)) -} -.favorite-page .favorite-header h2[data-v-2d1a7423]:is(.dark *) {--tw-text-opacity: 1;color: rgb(255 255 255 / var(--tw-text-opacity, 1)) -} -.favorite-page .favorite-header .favorite-count[data-v-2d1a7423] {font-size: 0.875rem;line-height: 1.25rem;--tw-text-opacity: 1;color: rgb(107 114 128 / var(--tw-text-opacity, 1)) -} -.favorite-page .favorite-header .favorite-count[data-v-2d1a7423]:is(.dark *) {--tw-text-opacity: 1;color: rgb(156 163 175 / var(--tw-text-opacity, 1)) -} -.favorite-page .favorite-main[data-v-2d1a7423] {display: flex;min-height: 0px;flex-grow: 1;flex-direction: column -} -.favorite-page .favorite-main .favorite-content[data-v-2d1a7423] {min-height: 0px;flex-grow: 1 -} -.favorite-page .favorite-main .favorite-content .empty-tip[data-v-2d1a7423] {display: flex;height: 100%;align-items: center;justify-content: center;--tw-text-opacity: 1;color: rgb(107 114 128 / var(--tw-text-opacity, 1)) -} -.favorite-page .favorite-main .favorite-content .empty-tip[data-v-2d1a7423]:is(.dark *) {--tw-text-opacity: 1;color: rgb(156 163 175 / var(--tw-text-opacity, 1)) -} -.favorite-page .favorite-main .favorite-content .favorite-list[data-v-2d1a7423] > :not([hidden]) ~ :not([hidden]) {--tw-space-y-reverse: 0;margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom: calc(0.5rem * var(--tw-space-y-reverse)) -} -.favorite-page .favorite-main .favorite-content .favorite-list[data-v-2d1a7423] {padding-left: 1rem;padding-right: 1rem;padding-bottom: 1rem -} -.favorite-page .favorite-main .favorite-content .favorite-list-more[data-v-2d1a7423] {margin-top: 1rem -} -.favorite-page .favorite-main .favorite-content .favorite-list-more .n-button[data-v-2d1a7423] {--tw-text-opacity: 1;color: rgb(34 197 94 / var(--tw-text-opacity, 1)) -} -.favorite-page .favorite-main .favorite-content .favorite-list-more .n-button[data-v-2d1a7423]:hover {--tw-text-opacity: 1;color: rgb(22 163 74 / var(--tw-text-opacity, 1)) -} -.loading-wrapper[data-v-2d1a7423] {display: flex;align-items: center;justify-content: center;padding-top: 5rem;padding-bottom: 5rem -} -.no-more-tip[data-v-2d1a7423] {padding-top: 1rem;padding-bottom: 1rem;text-align: center;font-size: 0.875rem;line-height: 1.25rem;--tw-text-opacity: 1;color: rgb(107 114 128 / var(--tw-text-opacity, 1)) -} -.no-more-tip[data-v-2d1a7423]:is(.dark *) {--tw-text-opacity: 1;color: rgb(156 163 175 / var(--tw-text-opacity, 1)) -} -.mobile .favorite-page[data-v-2d1a7423] {padding: 1rem -} -.mobile .favorite-page .favorite-header[data-v-2d1a7423] {margin-bottom: 1rem -} -.mobile .favorite-page .favorite-header h2[data-v-2d1a7423] {font-size: 1.25rem;line-height: 1.75rem -} \ No newline at end of file diff --git a/out/renderer/assets/index-B-m4kL_6.css.gz b/out/renderer/assets/index-B-m4kL_6.css.gz deleted file mode 100644 index f823f02..0000000 Binary files a/out/renderer/assets/index-B-m4kL_6.css.gz and /dev/null differ diff --git a/out/renderer/assets/index-BCv4VDKm.js b/out/renderer/assets/index-BCv4VDKm.js deleted file mode 100644 index 3bf4984..0000000 --- a/out/renderer/assets/index-BCv4VDKm.js +++ /dev/null @@ -1,540 +0,0 @@ -import { p as cB, V as cNotM, m as c, W as cM, Y as cE, d as defineComponent, x as useConfig, Z as useStyle, $ as provide, F as useRtl, l as h, a0 as buttonGroupInjectionKey, r as ref, G as computed, E as watch, o as onMounted, a1 as onUnmounted, c as createElementBlock, b as createBaseVNode, e as createVNode, f as withCtx, t as toDisplayString, n as normalizeClass, a2 as normalizeStyle, a3 as Fragment, a4 as renderList, j as openBlock, T as createCommentVNode, B as Button, _ as _export_sfc } from "./index-DKaFsuse.js"; -const zero = "0!important"; -const n1 = "-1px!important"; -function createLeftBorderStyle(type) { - return cM(`${type}-type`, [c("& +", [cB("button", {}, [cM(`${type}-type`, [cE("border", { - borderLeftWidth: zero - }), cE("state-border", { - left: n1 - })])])])]); -} -function createTopBorderStyle(type) { - return cM(`${type}-type`, [c("& +", [cB("button", [cM(`${type}-type`, [cE("border", { - borderTopWidth: zero - }), cE("state-border", { - top: n1 - })])])])]); -} -const style = cB("button-group", ` - flex-wrap: nowrap; - display: inline-flex; - position: relative; -`, [cNotM("vertical", { - flexDirection: "row" -}, [cNotM("rtl", [cB("button", [c("&:first-child:not(:last-child)", ` - margin-right: ${zero}; - border-top-right-radius: ${zero}; - border-bottom-right-radius: ${zero}; - `), c("&:last-child:not(:first-child)", ` - margin-left: ${zero}; - border-top-left-radius: ${zero}; - border-bottom-left-radius: ${zero}; - `), c("&:not(:first-child):not(:last-child)", ` - margin-left: ${zero}; - margin-right: ${zero}; - border-radius: ${zero}; - `), createLeftBorderStyle("default"), cM("ghost", [createLeftBorderStyle("primary"), createLeftBorderStyle("info"), createLeftBorderStyle("success"), createLeftBorderStyle("warning"), createLeftBorderStyle("error")])])])]), cM("vertical", { - flexDirection: "column" -}, [cB("button", [c("&:first-child:not(:last-child)", ` - margin-bottom: ${zero}; - margin-left: ${zero}; - margin-right: ${zero}; - border-bottom-left-radius: ${zero}; - border-bottom-right-radius: ${zero}; - `), c("&:last-child:not(:first-child)", ` - margin-top: ${zero}; - margin-left: ${zero}; - margin-right: ${zero}; - border-top-left-radius: ${zero}; - border-top-right-radius: ${zero}; - `), c("&:not(:first-child):not(:last-child)", ` - margin: ${zero}; - border-radius: ${zero}; - `), createTopBorderStyle("default"), cM("ghost", [createTopBorderStyle("primary"), createTopBorderStyle("info"), createTopBorderStyle("success"), createTopBorderStyle("warning"), createTopBorderStyle("error")])])])]); -const buttonGroupProps = { - size: { - type: String, - default: void 0 - }, - vertical: Boolean -}; -const __unplugin_components_1 = defineComponent({ - name: "ButtonGroup", - props: buttonGroupProps, - setup(props) { - const { - mergedClsPrefixRef, - mergedRtlRef - } = useConfig(props); - useStyle("-button-group", style, mergedClsPrefixRef); - provide(buttonGroupInjectionKey, props); - const rtlEnabledRef = useRtl("ButtonGroup", mergedRtlRef, mergedClsPrefixRef); - return { - rtlEnabled: rtlEnabledRef, - mergedClsPrefix: mergedClsPrefixRef - }; - }, - render() { - const { - mergedClsPrefix - } = this; - return h("div", { - class: [`${mergedClsPrefix}-button-group`, this.rtlEnabled && `${mergedClsPrefix}-button-group--rtl`, this.vertical && `${mergedClsPrefix}-button-group--vertical`], - role: "group" - }, this.$slots); - } -}); -const _hoisted_1 = { class: "font-size-controls" }; -const _hoisted_2 = { class: "play-controls" }; -const _hoisted_3 = { class: "control-buttons" }; -const _hoisted_4 = { - key: 0, - class: "ri-sun-line" -}; -const _hoisted_5 = { - key: 1, - class: "ri-moon-line" -}; -const _hoisted_6 = { - key: 0, - class: "ri-lock-line" -}; -const _hoisted_7 = { - key: 1, - class: "ri-lock-unlock-line" -}; -const _hoisted_8 = { class: "lyric-scroll" }; -const _hoisted_9 = { - key: 1, - class: "lyric-empty" -}; -const fontSizeStep = 2; -const TIME_OFFSET = 400; -const _sfc_main = /* @__PURE__ */ defineComponent({ - ...{ - name: "Lyric" - }, - __name: "index", - setup(__props) { - const windowData = window; - const containerRef = ref(null); - const containerHeight = ref(0); - const lineHeight = ref(60); - const currentIndex = ref(0); - const fontSize = ref(24); - const animationFrameId = ref(null); - const lastUpdateTime = ref(performance.now()); - const staticData = ref({ - lrcArray: [], - lrcTimeArray: [], - allTime: 0, - playMusic: {} - }); - const dynamicData = ref({ - nowTime: 0, - startCurrentTime: 0, - nextTime: 0, - isPlay: true - }); - const lyricSetting = ref({ - ...localStorage.getItem("lyricData") ? JSON.parse(localStorage.getItem("lyricData") || "") : { - isTop: false, - theme: "dark", - isLock: false - } - }); - const isHovering = ref(false); - const showControls = computed(() => { - if (lyricSetting.value.isLock) { - return isHovering.value; - } - return true; - }); - const handleMouseEnter = () => { - if (lyricSetting.value.isLock) { - isHovering.value = true; - windowData.electron.ipcRenderer.send("set-ignore-mouse", true); - } else { - windowData.electron.ipcRenderer.send("set-ignore-mouse", false); - } - }; - const handleMouseLeave = () => { - if (!lyricSetting.value.isLock) return; - isHovering.value = false; - windowData.electron.ipcRenderer.send("set-ignore-mouse", false); - }; - watch( - () => lyricSetting.value.isLock, - (newLock) => { - if (newLock) { - isHovering.value = false; - } - } - ); - onMounted(() => { - if (lyricSetting.value.isLock) { - isHovering.value = false; - } - }); - onUnmounted(() => { - }); - const wrapperStyle = computed(() => { - if (!containerHeight.value) { - return { - transform: "translateY(0)", - transition: "none" - }; - } - const containerCenter = containerHeight.value / 2; - const currentLineTop = currentIndex.value * lineHeight.value + containerHeight.value * 0.2 + lineHeight.value; - const targetOffset = containerCenter - currentLineTop; - const contentHeight = staticData.value.lrcArray.length * lineHeight.value + containerHeight.value * 0.4; - const minOffset = -(contentHeight - containerHeight.value); - const maxOffset = 0; - const finalOffset = Math.min(maxOffset, Math.max(minOffset, targetOffset)); - return { - transform: `translateY(${finalOffset}px)`, - transition: "transform 0.3s cubic-bezier(0.4, 0, 0.2, 1)" - }; - }); - const lyricLineStyle = computed(() => ({ - height: `${lineHeight.value}px` - })); - const updateContainerHeight = () => { - if (!containerRef.value) return; - containerHeight.value = containerRef.value.clientHeight; - const baseLineHeight = fontSize.value * 2.5; - const maxAllowedHeight = containerHeight.value / 3; - lineHeight.value = Math.min(maxAllowedHeight, Math.max(40, baseLineHeight)); - }; - const handleFontSizeChange = async () => { - saveFontSize(); - updateContainerHeight(); - }; - const increaseFontSize = async () => { - if (fontSize.value < 48) { - fontSize.value += fontSizeStep; - await handleFontSizeChange(); - } - }; - const decreaseFontSize = async () => { - if (fontSize.value > 12) { - fontSize.value -= fontSizeStep; - await handleFontSizeChange(); - } - }; - const saveFontSize = () => { - localStorage.setItem("lyricFontSize", fontSize.value.toString()); - }; - onMounted(() => { - const resizeObserver = new ResizeObserver(() => { - updateContainerHeight(); - }); - if (containerRef.value) { - resizeObserver.observe(containerRef.value); - } - onUnmounted(() => { - resizeObserver.disconnect(); - }); - }); - const actualTime = ref(0); - const currentProgress = computed(() => { - const { startCurrentTime, nextTime } = dynamicData.value; - if (!startCurrentTime || !nextTime) return 0; - const duration = nextTime - startCurrentTime; - const elapsed = actualTime.value - startCurrentTime; - return Math.min(Math.max(elapsed / duration, 0), 1); - }); - const getLyricStyle = (index2) => { - if (index2 !== currentIndex.value) return {}; - const progress = currentProgress.value * 100; - return { - background: `linear-gradient(to right, var(--highlight-color) ${progress}%, var(--text-color) ${progress}%)`, - WebkitBackgroundClip: "text", - WebkitTextFillColor: "transparent", - transition: "all 0.1s linear" - }; - }; - const updateProgress = () => { - if (!dynamicData.value.isPlay) { - if (animationFrameId.value) { - cancelAnimationFrame(animationFrameId.value); - animationFrameId.value = null; - } - return; - } - const timeDiff = (performance.now() - lastUpdateTime.value) / 1e3; - actualTime.value = dynamicData.value.nowTime + timeDiff + TIME_OFFSET / 1e3; - animationFrameId.value = requestAnimationFrame(updateProgress); - }; - watch( - () => dynamicData.value, - (newData) => { - lastUpdateTime.value = performance.now(); - actualTime.value = newData.nowTime + TIME_OFFSET / 1e3; - if (newData.isPlay && !animationFrameId.value) { - updateProgress(); - } - }, - { deep: true } - ); - watch( - () => dynamicData.value.isPlay, - (isPlaying) => { - if (isPlaying) { - lastUpdateTime.value = performance.now(); - updateProgress(); - } else if (animationFrameId.value) { - cancelAnimationFrame(animationFrameId.value); - animationFrameId.value = null; - } - } - ); - const handleDataUpdate = (parsedData) => { - if (!parsedData) { - console.error("Invalid update data received:", parsedData); - return; - } - staticData.value = { - lrcArray: parsedData.lrcArray || [], - lrcTimeArray: parsedData.lrcTimeArray || [], - allTime: parsedData.allTime || 0, - playMusic: parsedData.playMusic || {} - }; - dynamicData.value = { - nowTime: parsedData.nowTime || 0, - startCurrentTime: parsedData.startCurrentTime || 0, - nextTime: parsedData.nextTime || 0, - isPlay: parsedData.isPlay - }; - if (typeof parsedData.nowIndex === "number") { - currentIndex.value = parsedData.nowIndex; - } - }; - onMounted(() => { - const savedFontSize = localStorage.getItem("lyricFontSize"); - if (savedFontSize) { - fontSize.value = Number(savedFontSize); - lineHeight.value = fontSize.value * 2.5; - } - updateContainerHeight(); - window.addEventListener("resize", updateContainerHeight); - windowData.electron.ipcRenderer.on("receive-lyric", (_, data) => { - try { - const parsedData = JSON.parse(data); - handleDataUpdate(parsedData); - } catch (error) { - console.error("Error parsing lyric data:", error); - } - }); - }); - onUnmounted(() => { - window.removeEventListener("resize", updateContainerHeight); - }); - const checkTheme = () => { - if (lyricSetting.value.theme === "light") { - lyricSetting.value.theme = "dark"; - } else { - lyricSetting.value.theme = "light"; - } - }; - const handleLock = () => { - lyricSetting.value.isLock = !lyricSetting.value.isLock; - windowData.electron.ipcRenderer.send("set-ignore-mouse", lyricSetting.value.isLock); - }; - const handleClose = () => { - windowData.electron.ipcRenderer.send("close-lyric"); - }; - watch( - () => lyricSetting.value, - (newValue) => { - localStorage.setItem("lyricData", JSON.stringify(newValue)); - }, - { deep: true } - ); - const isDragging = ref(false); - const startPosition = ref({ x: 0, y: 0 }); - const handleMouseDown = (e) => { - if (lyricSetting.value.isLock || e.target.closest(".control-buttons") || e.target.closest(".font-size-controls")) { - return; - } - if (e.button !== 0) return; - isDragging.value = true; - startPosition.value = { x: e.screenX, y: e.screenY }; - const handleMouseMove = (e2) => { - if (!isDragging.value) return; - const deltaX = e2.screenX - startPosition.value.x; - const deltaY = e2.screenY - startPosition.value.y; - windowData.electron.ipcRenderer.send("lyric-drag-move", { deltaX, deltaY }); - startPosition.value = { x: e2.screenX, y: e2.screenY }; - }; - const handleMouseUp = () => { - if (!isDragging.value) return; - isDragging.value = false; - document.removeEventListener("mousemove", handleMouseMove); - document.removeEventListener("mouseup", handleMouseUp); - }; - document.addEventListener("mousemove", handleMouseMove); - document.addEventListener("mouseup", handleMouseUp); - }; - onUnmounted(() => { - isDragging.value = false; - }); - onMounted(() => { - const lyricLock = document.getElementById("lyric-lock"); - if (lyricLock) { - lyricLock.onmouseenter = () => { - if (lyricSetting.value.isLock) { - windowData.electron.ipcRenderer.send("set-ignore-mouse", false); - } - }; - lyricLock.onmouseleave = () => { - if (lyricSetting.value.isLock) { - windowData.electron.ipcRenderer.send("set-ignore-mouse", true); - } - }; - } - }); - const handlePlayPause = () => { - windowData.electron.ipcRenderer.send("control-back", "playpause"); - }; - const handlePrev = () => { - windowData.electron.ipcRenderer.send("control-back", "prev"); - }; - const handleNext = () => { - windowData.electron.ipcRenderer.send("control-back", "next"); - }; - return (_ctx, _cache) => { - const _component_n_button = Button; - const _component_n_button_group = __unplugin_components_1; - return openBlock(), createElementBlock("div", { - class: normalizeClass(["lyric-window", [lyricSetting.value.theme, { lyric_lock: lyricSetting.value.isLock }]]), - onMousedown: handleMouseDown, - onMouseenter: handleMouseEnter, - onMouseleave: handleMouseLeave - }, [ - _cache[5] || (_cache[5] = createBaseVNode("div", { class: "drag-overlay" }, null, -1)), - createBaseVNode("div", { - class: normalizeClass(["control-bar", { "control-bar-show": showControls.value }]) - }, [ - createBaseVNode("div", _hoisted_1, [ - createVNode(_component_n_button_group, null, { - default: withCtx(() => [ - createVNode(_component_n_button, { - quaternary: "", - size: "small", - disabled: fontSize.value <= 12, - onClick: decreaseFontSize - }, { - default: withCtx(() => _cache[0] || (_cache[0] = [ - createBaseVNode("i", { class: "ri-subtract-line" }, null, -1) - ])), - _: 1 - }, 8, ["disabled"]), - createVNode(_component_n_button, { - quaternary: "", - size: "small", - disabled: fontSize.value >= 48, - onClick: increaseFontSize - }, { - default: withCtx(() => _cache[1] || (_cache[1] = [ - createBaseVNode("i", { class: "ri-add-line" }, null, -1) - ])), - _: 1 - }, 8, ["disabled"]) - ]), - _: 1 - }), - createBaseVNode("div", null, toDisplayString(staticData.value.playMusic.name), 1) - ]), - createBaseVNode("div", _hoisted_2, [ - createBaseVNode("div", { - class: "control-button", - onClick: handlePrev - }, _cache[2] || (_cache[2] = [ - createBaseVNode("i", { class: "ri-skip-back-fill" }, null, -1) - ])), - createBaseVNode("div", { - class: "control-button play-button", - onClick: handlePlayPause - }, [ - createBaseVNode("i", { - class: normalizeClass(dynamicData.value.isPlay ? "ri-pause-fill" : "ri-play-fill") - }, null, 2) - ]), - createBaseVNode("div", { - class: "control-button", - onClick: handleNext - }, _cache[3] || (_cache[3] = [ - createBaseVNode("i", { class: "ri-skip-forward-fill" }, null, -1) - ])) - ]), - createBaseVNode("div", _hoisted_3, [ - createBaseVNode("div", { - class: "control-button", - onClick: checkTheme - }, [ - lyricSetting.value.theme === "light" ? (openBlock(), createElementBlock("i", _hoisted_4)) : (openBlock(), createElementBlock("i", _hoisted_5)) - ]), - createBaseVNode("div", { - id: "lyric-lock", - class: "control-button", - onClick: handleLock - }, [ - lyricSetting.value.isLock ? (openBlock(), createElementBlock("i", _hoisted_6)) : (openBlock(), createElementBlock("i", _hoisted_7)) - ]), - createBaseVNode("div", { - class: "control-button", - onClick: handleClose - }, _cache[4] || (_cache[4] = [ - createBaseVNode("i", { class: "ri-close-line" }, null, -1) - ])) - ]) - ], 2), - createBaseVNode("div", { - ref_key: "containerRef", - ref: containerRef, - class: "lyric-container" - }, [ - createBaseVNode("div", _hoisted_8, [ - createBaseVNode("div", { - class: "lyric-wrapper", - style: normalizeStyle(wrapperStyle.value) - }, [ - staticData.value.lrcArray?.length > 0 ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(staticData.value.lrcArray, (line, index2) => { - return openBlock(), createElementBlock("div", { - key: index2, - class: normalizeClass(["lyric-line", { - "lyric-line-current": index2 === currentIndex.value, - "lyric-line-passed": index2 < currentIndex.value, - "lyric-line-next": index2 === currentIndex.value + 1 - }]), - style: normalizeStyle(lyricLineStyle.value) - }, [ - createBaseVNode("div", { - class: "lyric-text", - style: normalizeStyle({ fontSize: `${fontSize.value}px` }) - }, [ - createBaseVNode("span", { - class: "lyric-text-inner", - style: normalizeStyle(getLyricStyle(index2)) - }, toDisplayString(line.text || ""), 5) - ], 4), - line.trText ? (openBlock(), createElementBlock("div", { - key: 0, - class: "lyric-translation", - style: normalizeStyle({ fontSize: `${fontSize.value * 0.6}px` }) - }, toDisplayString(line.trText), 5)) : createCommentVNode("", true) - ], 6); - }), 128)) : (openBlock(), createElementBlock("div", _hoisted_9, "无歌词")) - ], 4) - ]) - ], 512) - ], 34); - }; - } -}); -const index = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-4abaac34"]]); -export { - index as default -}; diff --git a/out/renderer/assets/index-BCv4VDKm.js.gz b/out/renderer/assets/index-BCv4VDKm.js.gz deleted file mode 100644 index 5ecef4a..0000000 Binary files a/out/renderer/assets/index-BCv4VDKm.js.gz and /dev/null differ diff --git a/out/renderer/assets/index-BE7j41Na.css b/out/renderer/assets/index-BE7j41Na.css deleted file mode 100644 index 9bce8ff..0000000 --- a/out/renderer/assets/index-BE7j41Na.css +++ /dev/null @@ -1,203 +0,0 @@ - -body { - background-color: transparent !important; -} -.lyric-window[data-v-4abaac34] { - width: 100vw; - height: 100vh; - position: relative; - overflow: hidden; - background: transparent; - -webkit-user-select: none; - -moz-user-select: none; - user-select: none; - transition: background-color 0.2s ease; - cursor: default; -} -.lyric-window[data-v-4abaac34]:hover { - background: rgba(0, 0, 0, 0.5); -} -.lyric-window:hover .control-bar-show[data-v-4abaac34] { - opacity: 1; - visibility: visible; -} -.lyric-window[data-v-4abaac34]:active { - cursor: grabbing; -} -.lyric-window.dark[data-v-4abaac34] { - --text-color: #ffffff; - --text-secondary: rgba(255, 255, 255, 0.6); - --highlight-color: #1db954; - --control-bg: rgba(124, 124, 124, 0.3); -} -.lyric-window.light[data-v-4abaac34] { - --text-color: #333333; - --text-secondary: rgba(51, 51, 51, 0.6); - --highlight-color: #1db954; - --control-bg: rgba(255, 255, 255, 0.3); -} -.control-bar[data-v-4abaac34] { - position: absolute; - top: 10px; - left: 0; - right: 0; - height: 80px; - display: flex; - justify-content: space-between; - align-items: start; - padding: 0 20px; - opacity: 0; - visibility: hidden; - transition: opacity 0.2s ease, visibility 0.2s ease; - z-index: 100; -} -.control-bar .font-size-controls[data-v-4abaac34] { - -webkit-app-region: no-drag; - color: var(--text-color); - display: flex; - align-items: center; - gap: 16px; -} -.control-bar .play-controls[data-v-4abaac34] { - position: absolute; - top: 0px; - left: 50%; - transform: translateX(-50%); - display: flex; - align-items: center; - gap: 16px; - -webkit-app-region: no-drag; -} -.control-bar .play-controls .play-button[data-v-4abaac34] { - width: 36px; - height: 36px; -} -.control-bar .play-controls .play-button i[data-v-4abaac34] { - font-size: 24px; -} -.control-bar .control-buttons[data-v-4abaac34] { - -webkit-app-region: no-drag; -} -.control-buttons[data-v-4abaac34] { - display: flex; - gap: 16px; - -webkit-app-region: no-drag; -} -.control-button[data-v-4abaac34] { - width: 36px; - height: 36px; - display: flex; - align-items: center; - justify-content: center; - cursor: pointer; - border-radius: 8px; - color: var(--text-color); - transition: all 0.2s ease; -} -.control-button[data-v-4abaac34]:hover { - background: var(--control-bg); -} -.control-button i[data-v-4abaac34] { - font-size: 20px; - text-shadow: 0 0 10px rgba(0, 0, 0, 0.3); -} -.control-button i.active[data-v-4abaac34] { - color: var(--highlight-color); -} -.lyric-container[data-v-4abaac34] { - position: absolute; - top: 80px; - left: 0; - right: 0; - bottom: 0; - overflow: hidden; - z-index: 100; -} -.lyric-scroll[data-v-4abaac34] { - height: 100%; - overflow: hidden; - display: flex; - flex-direction: column; - justify-content: flex-start; - align-items: center; - -webkit-mask-image: linear-gradient(to bottom, transparent 0%, black 20%, black 80%, transparent 100%); - mask-image: linear-gradient(to bottom, transparent 0%, black 20%, black 80%, transparent 100%); -} -.lyric-wrapper[data-v-4abaac34] { - will-change: transform; - padding: 20vh 0; - transform-origin: center center; - transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1); -} -.lyric-line[data-v-4abaac34] { - padding: 4px 20px; - text-align: center; - transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; -} -.lyric-line.lyric-line-current[data-v-4abaac34] { - transform: scale(1.05); - opacity: 1; -} -.lyric-line.lyric-line-passed[data-v-4abaac34] { - opacity: 0.6; -} -.lyric-text[data-v-4abaac34] { - font-weight: 600; - margin-bottom: 2px; - color: var(--text-color); - white-space: pre-wrap; - word-break: break-all; - text-shadow: 0 0 10px rgba(0, 0, 0, 0.3); - transition: all 0.2s ease; - line-height: 1.4; -} -.lyric-translation[data-v-4abaac34] { - color: var(--text-secondary); - white-space: pre-wrap; - word-break: break-all; - text-shadow: 0 0 10px rgba(0, 0, 0, 0.3); - transition: font-size 0.2s ease; - line-height: 1.4; -} -.lyric-empty[data-v-4abaac34] { - text-align: center; - color: var(--text-secondary); - font-size: 16px; - padding: 20px; -} -body[data-v-4abaac34] { - background-color: transparent !important; - margin: 0; - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; -} -.lyric-content[data-v-4abaac34] { - transition: font-size 0.2s ease; -} -.lyric-line-current[data-v-4abaac34] { - opacity: 1; -} -.lyric_lock .control-bar .control-buttons .control-button[data-v-4abaac34]:not(:has(.ri-lock-line)):not(:has(.ri-lock-unlock-line)) { - display: none; -} -.lyric_lock .control-bar .font-size-controls[data-v-4abaac34] { - display: none; -} -.lyric_lock .control-bar .play-controls[data-v-4abaac34] { - display: none; -} -.lyric_lock[data-v-4abaac34] { - background: transparent; -} -.lyric_lock[data-v-4abaac34]:hover { - background: transparent; -} -.lyric_lock #lyric-lock[data-v-4abaac34] { - position: absolute; - top: 0; - right: 72px; - background: var(--control-bg); -} \ No newline at end of file diff --git a/out/renderer/assets/index-BE7j41Na.css.gz b/out/renderer/assets/index-BE7j41Na.css.gz deleted file mode 100644 index 74e0ed9..0000000 Binary files a/out/renderer/assets/index-BE7j41Na.css.gz and /dev/null differ diff --git a/out/renderer/assets/index-BPmJoRDi.js b/out/renderer/assets/index-BPmJoRDi.js deleted file mode 100644 index cb3acc0..0000000 --- a/out/renderer/assets/index-BPmJoRDi.js +++ /dev/null @@ -1,203 +0,0 @@ -import { ad as request, d as defineComponent, r as ref, G as computed, aq as onActivated, c as createElementBlock, n as normalizeClass, u as unref, a2 as normalizeStyle, b as createBaseVNode, t as toDisplayString, e as createVNode, f as withCtx, T as createCommentVNode, w as withDirectives, S as Scrollbar, ab as resolveDirective, g as useStore, h as useRouter, j as openBlock, s as setAnimationClass, a7 as getImgUrl, a3 as Fragment, a4 as renderList, U as PlayBottom, ac as isMobile, a5 as setAnimationDelay, _ as _export_sfc } from "./index-DKaFsuse.js"; -import { M as MusicList, a as getListDetail } from "./MusicList-s-QHu-iA.js"; -import { S as SongItem } from "./SongItem-CoswpGn6.js"; -import { _ as __unplugin_components_2 } from "./Avatar-rQ2og-6c.js"; -import { N as NImage } from "./Image-DXClIklC.js"; -import "./Drawer-BEJ8Ydua.js"; -import "./Ellipsis-D4R5dIX2.js"; -import "./Tag-C0oC92WF.js"; -import "./use-locale-DLWAOXez.js"; -function getUserDetail(uid) { - return request.get("/user/detail", { params: { uid } }); -} -function getUserPlaylist(uid) { - return request.get("/user/playlist", { params: { uid } }); -} -function getUserRecord(uid, type = 0) { - return request.get("/user/record", { params: { uid, type } }); -} -const _hoisted_1 = { class: "user-page" }; -const _hoisted_2 = { class: "page" }; -const _hoisted_3 = { class: "user-name" }; -const _hoisted_4 = { class: "user-info" }; -const _hoisted_5 = { class: "user-info-list" }; -const _hoisted_6 = { class: "user-info-item" }; -const _hoisted_7 = { class: "label" }; -const _hoisted_8 = { class: "user-info-item" }; -const _hoisted_9 = { class: "label" }; -const _hoisted_10 = { class: "user-info-item" }; -const _hoisted_11 = { class: "label" }; -const _hoisted_12 = { class: "uesr-signature" }; -const _hoisted_13 = ["onClick"]; -const _hoisted_14 = { class: "play-list-item-info" }; -const _hoisted_15 = { class: "play-list-item-name" }; -const _hoisted_16 = { class: "play-list-item-count" }; -const _hoisted_17 = { class: "record-list" }; -const _hoisted_18 = { class: "play-count" }; -const _sfc_main = /* @__PURE__ */ defineComponent({ - ...{ - name: "User" - }, - __name: "index", - setup(__props) { - const store = useStore(); - const router = useRouter(); - const userDetail = ref(); - const playList = ref([]); - const recordList = ref(); - const infoLoading = ref(false); - const user = computed(() => store.state.user); - const loadPage = async () => { - if (!user.value) { - router.push("/login"); - return; - } - infoLoading.value = true; - const { data: userData } = await getUserDetail(user.value.userId); - userDetail.value = userData; - const { data: playlistData } = await getUserPlaylist(user.value.userId); - playList.value = playlistData.playlist; - const { data: recordData } = await getUserRecord(user.value.userId); - recordList.value = recordData.allData.map((item) => ({ - ...item, - ...item.song, - picUrl: item.song.al.picUrl - })); - infoLoading.value = false; - }; - onActivated(() => { - if (!user.value) { - router.push("/login"); - } else { - loadPage(); - } - }); - const isShowList = ref(false); - const list = ref(); - const listLoading = ref(false); - const showPlaylist = async (id, name) => { - isShowList.value = true; - listLoading.value = true; - list.value = { - name - }; - const { data } = await getListDetail(id); - list.value = data.playlist; - listLoading.value = false; - }; - const handlePlay = () => { - const tracks = recordList.value || []; - store.commit("setPlayList", tracks); - }; - return (_ctx, _cache) => { - const _component_n_avatar = __unplugin_components_2; - const _component_n_image = NImage; - const _component_n_scrollbar = Scrollbar; - const _directive_loading = resolveDirective("loading"); - return openBlock(), createElementBlock("div", _hoisted_1, [ - userDetail.value ? (openBlock(), createElementBlock("div", { - key: 0, - class: normalizeClass(["left", unref(setAnimationClass)("animate__fadeInLeft")]), - style: normalizeStyle({ backgroundImage: `url(${unref(getImgUrl)(user.value.backgroundUrl)})` }) - }, [ - createBaseVNode("div", _hoisted_2, [ - createBaseVNode("div", _hoisted_3, toDisplayString(user.value.nickname), 1), - createBaseVNode("div", _hoisted_4, [ - createVNode(_component_n_avatar, { - round: "", - size: 50, - src: unref(getImgUrl)(user.value.avatarUrl, "50y50") - }, null, 8, ["src"]), - createBaseVNode("div", _hoisted_5, [ - createBaseVNode("div", _hoisted_6, [ - createBaseVNode("div", _hoisted_7, toDisplayString(userDetail.value.profile.followeds), 1), - _cache[1] || (_cache[1] = createBaseVNode("div", null, "粉丝", -1)) - ]), - createBaseVNode("div", _hoisted_8, [ - createBaseVNode("div", _hoisted_9, toDisplayString(userDetail.value.profile.follows), 1), - _cache[2] || (_cache[2] = createBaseVNode("div", null, "关注", -1)) - ]), - createBaseVNode("div", _hoisted_10, [ - createBaseVNode("div", _hoisted_11, toDisplayString(userDetail.value.level), 1), - _cache[3] || (_cache[3] = createBaseVNode("div", null, "等级", -1)) - ]) - ]) - ]), - createBaseVNode("div", _hoisted_12, toDisplayString(userDetail.value.profile.signature), 1), - createBaseVNode("div", { - class: normalizeClass(["play-list", unref(setAnimationClass)("animate__fadeInLeft")]) - }, [ - _cache[4] || (_cache[4] = createBaseVNode("div", { class: "title" }, "创建的歌单", -1)), - createVNode(_component_n_scrollbar, null, { - default: withCtx(() => [ - (openBlock(true), createElementBlock(Fragment, null, renderList(playList.value, (item, index2) => { - return openBlock(), createElementBlock("div", { - key: index2, - class: "play-list-item", - onClick: ($event) => showPlaylist(item.id, item.name) - }, [ - createVNode(_component_n_image, { - src: unref(getImgUrl)(item.coverImgUrl, "50y50"), - class: "play-list-item-img", - lazy: "", - "preview-disabled": "" - }, null, 8, ["src"]), - createBaseVNode("div", _hoisted_14, [ - createBaseVNode("div", _hoisted_15, toDisplayString(item.name), 1), - createBaseVNode("div", _hoisted_16, toDisplayString(item.trackCount) + "首,播放" + toDisplayString(item.playCount) + "次 ", 1) - ]) - ], 8, _hoisted_13); - }), 128)), - createVNode(PlayBottom) - ]), - _: 1 - }) - ], 2) - ]) - ], 6)) : createCommentVNode("", true), - !unref(isMobile) ? withDirectives((openBlock(), createElementBlock("div", { - key: 1, - class: normalizeClass(["right", unref(setAnimationClass)("animate__fadeInRight")]) - }, [ - _cache[5] || (_cache[5] = createBaseVNode("div", { class: "title" }, "听歌排行", -1)), - createBaseVNode("div", _hoisted_17, [ - createVNode(_component_n_scrollbar, null, { - default: withCtx(() => [ - (openBlock(true), createElementBlock(Fragment, null, renderList(recordList.value, (item, index2) => { - return openBlock(), createElementBlock("div", { - key: item.id, - class: normalizeClass(["record-item", unref(setAnimationClass)("animate__bounceInUp")]), - style: normalizeStyle(unref(setAnimationDelay)(index2, 25)) - }, [ - createVNode(SongItem, { - class: "song-item", - item, - onPlay: handlePlay - }, null, 8, ["item"]), - createBaseVNode("div", _hoisted_18, toDisplayString(item.playCount) + "次", 1) - ], 6); - }), 128)), - createVNode(PlayBottom) - ]), - _: 1 - }) - ]) - ], 2)), [ - [_directive_loading, infoLoading.value] - ]) : createCommentVNode("", true), - createVNode(MusicList, { - show: isShowList.value, - "onUpdate:show": _cache[0] || (_cache[0] = ($event) => isShowList.value = $event), - name: list.value?.name || "", - "song-list": list.value?.tracks || [], - "list-info": list.value, - loading: listLoading.value - }, null, 8, ["show", "name", "song-list", "list-info", "loading"]) - ]); - }; - } -}); -const index = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-be63ae6f"]]); -export { - index as default -}; diff --git a/out/renderer/assets/index-BPmJoRDi.js.gz b/out/renderer/assets/index-BPmJoRDi.js.gz deleted file mode 100644 index a2be49e..0000000 Binary files a/out/renderer/assets/index-BPmJoRDi.js.gz and /dev/null differ diff --git a/out/renderer/assets/index-Bc5fdT5j.js b/out/renderer/assets/index-Bc5fdT5j.js deleted file mode 100644 index fe3f94f..0000000 --- a/out/renderer/assets/index-Bc5fdT5j.js +++ /dev/null @@ -1,233 +0,0 @@ -import { d as defineComponent, r as ref, G as computed, o as onMounted, E as watch, c as createElementBlock, b as createBaseVNode, e as createVNode, f as withCtx, u as unref, i as isRef, af as useRoute, S as Scrollbar, a5 as setAnimationDelay, ab as resolveDirective, j as openBlock, ah as withModifiers, a3 as Fragment, a4 as renderList, n as normalizeClass, s as setAnimationClass, a2 as normalizeStyle, t as toDisplayString, w as withDirectives, a7 as getImgUrl, ai as formatNumber, T as createCommentVNode, aj as __unplugin_components_0, _ as _export_sfc } from "./index-DKaFsuse.js"; -import { g as getPlaylistCategory } from "./home-BXGE9AqN.js"; -import { M as MusicList, b as getListByCat, a as getListDetail } from "./MusicList-s-QHu-iA.js"; -import { N as NImage } from "./Image-DXClIklC.js"; -import "./SongItem-CoswpGn6.js"; -import "./Ellipsis-D4R5dIX2.js"; -import "./Drawer-BEJ8Ydua.js"; -import "./Avatar-rQ2og-6c.js"; -import "./Tag-C0oC92WF.js"; -import "./use-locale-DLWAOXez.js"; -const _hoisted_1 = { class: "list-page" }; -const _hoisted_2 = { class: "play-list-type" }; -const _hoisted_3 = ["onClick"]; -const _hoisted_4 = { class: "recommend-list" }; -const _hoisted_5 = ["onClick"]; -const _hoisted_6 = { class: "recommend-item-img" }; -const _hoisted_7 = { class: "top" }; -const _hoisted_8 = { class: "play-count" }; -const _hoisted_9 = { class: "recommend-item-title" }; -const _hoisted_10 = { - key: 0, - class: "loading-more" -}; -const _hoisted_11 = { - key: 1, - class: "no-more" -}; -const TOTAL_ITEMS = 42; -const _sfc_main = /* @__PURE__ */ defineComponent({ - ...{ - name: "List" - }, - __name: "index", - setup(__props) { - const recommendList = ref([]); - const showMusic = ref(false); - const page = ref(0); - const hasMore = ref(true); - const isLoadingMore = ref(false); - const getItemAnimationDelay = (index2) => { - const currentPageIndex = index2 % TOTAL_ITEMS; - return setAnimationDelay(currentPageIndex, 30); - }; - const recommendItem = ref(); - const listDetail = ref(); - const listLoading = ref(true); - const selectRecommendItem = async (item) => { - listLoading.value = true; - recommendItem.value = null; - listDetail.value = null; - showMusic.value = true; - recommendItem.value = item; - const { data } = await getListDetail(item.id); - listDetail.value = data; - listLoading.value = false; - }; - const route = useRoute(); - const listTitle = ref(route.query.type || "歌单列表"); - const loading = ref(false); - const loadList = async (type, isLoadMore = false) => { - if (!hasMore.value && isLoadMore) return; - if (isLoadMore) { - isLoadingMore.value = true; - } else { - loading.value = true; - page.value = 0; - recommendList.value = []; - } - try { - const params = { - cat: type === "每日推荐" ? "" : type, - limit: TOTAL_ITEMS, - offset: page.value * TOTAL_ITEMS - }; - const { data } = await getListByCat(params); - if (isLoadMore) { - recommendList.value.push(...data.playlists); - } else { - recommendList.value = data.playlists; - } - hasMore.value = data.more; - page.value++; - } catch (error) { - console.error("加载歌单列表失败:", error); - } finally { - loading.value = false; - isLoadingMore.value = false; - } - }; - const handleScroll = (e) => { - const { scrollTop, scrollHeight, clientHeight } = e.target; - if (scrollTop + clientHeight >= scrollHeight - 100 && !isLoadingMore.value && hasMore.value) { - loadList(route.query.type, true); - } - }; - const playlistCategory = ref(); - const currentType = ref(route.query.type || "每日推荐"); - const getAnimationDelay = computed(() => { - return (index2) => setAnimationDelay(index2, 30); - }); - const loadPlaylistCategory = async () => { - const { data } = await getPlaylistCategory(); - playlistCategory.value = { - ...data, - sub: [ - { - name: "每日推荐", - category: 0 - }, - ...data.sub - ] - }; - }; - const handleClickPlaylistType = (type) => { - currentType.value = type; - listTitle.value = type; - loading.value = true; - loadList(type); - }; - const scrollbarRef = ref(); - const handleWheel = (e) => { - const scrollbar = scrollbarRef.value; - if (scrollbar) { - const delta = e.deltaY || e.detail; - scrollbar.scrollBy({ left: delta }); - } - }; - onMounted(() => { - loadPlaylistCategory(); - currentType.value = route.query.type || currentType.value; - loadList(currentType.value); - }); - watch( - () => route.query, - async (newParams) => { - if (newParams.type) { - recommendList.value = []; - listTitle.value = newParams.type || "歌单列表"; - currentType.value = newParams.type; - loading.value = true; - loadList(newParams.type); - } - } - ); - return (_ctx, _cache) => { - const _component_n_scrollbar = Scrollbar; - const _component_n_image = NImage; - const _component_n_spin = __unplugin_components_0; - const _directive_loading = resolveDirective("loading"); - return openBlock(), createElementBlock("div", _hoisted_1, [ - createBaseVNode("div", _hoisted_2, [ - createVNode(_component_n_scrollbar, { - ref_key: "scrollbarRef", - ref: scrollbarRef, - "x-scrollable": "" - }, { - default: withCtx(() => [ - createBaseVNode("div", { - class: "categories-wrapper", - onWheel: withModifiers(handleWheel, ["prevent"]) - }, [ - (openBlock(true), createElementBlock(Fragment, null, renderList(unref(playlistCategory)?.sub, (item, index2) => { - return openBlock(), createElementBlock("span", { - key: item.name, - class: normalizeClass(["play-list-type-item", [unref(setAnimationClass)("animate__bounceIn"), { active: unref(currentType) === item.name }]]), - style: normalizeStyle(unref(getAnimationDelay)(index2)), - onClick: ($event) => handleClickPlaylistType(item.name) - }, toDisplayString(item.name), 15, _hoisted_3); - }), 128)) - ], 32) - ]), - _: 1 - }, 512) - ]), - createVNode(_component_n_scrollbar, { - class: "recommend", - size: 100, - onScroll: handleScroll - }, { - default: withCtx(() => [ - withDirectives((openBlock(), createElementBlock("div", _hoisted_4, [ - (openBlock(true), createElementBlock(Fragment, null, renderList(unref(recommendList), (item, index2) => { - return openBlock(), createElementBlock("div", { - key: item.id, - class: normalizeClass(["recommend-item", unref(setAnimationClass)("animate__bounceIn")]), - style: normalizeStyle(getItemAnimationDelay(index2)), - onClick: withModifiers(($event) => selectRecommendItem(item), ["stop"]) - }, [ - createBaseVNode("div", _hoisted_6, [ - createVNode(_component_n_image, { - class: "recommend-item-img-img", - src: unref(getImgUrl)(item.picUrl || item.coverImgUrl, "200y200"), - width: "200", - height: "200", - lazy: "", - "preview-disabled": "" - }, null, 8, ["src"]), - createBaseVNode("div", _hoisted_7, [ - createBaseVNode("div", _hoisted_8, toDisplayString(unref(formatNumber)(item.playCount)), 1), - _cache[2] || (_cache[2] = createBaseVNode("i", { class: "iconfont icon-videofill" }, null, -1)) - ]) - ]), - createBaseVNode("div", _hoisted_9, toDisplayString(item.name), 1) - ], 14, _hoisted_5); - }), 128)) - ])), [ - [_directive_loading, unref(loading)] - ]), - unref(isLoadingMore) ? (openBlock(), createElementBlock("div", _hoisted_10, [ - createVNode(_component_n_spin, { size: "small" }), - _cache[3] || (_cache[3] = createBaseVNode("span", { class: "ml-2" }, "加载中...", -1)) - ])) : createCommentVNode("", true), - !unref(hasMore) && unref(recommendList).length > 0 ? (openBlock(), createElementBlock("div", _hoisted_11, "没有更多了")) : createCommentVNode("", true) - ]), - _: 1 - }), - createVNode(MusicList, { - show: unref(showMusic), - "onUpdate:show": _cache[0] || (_cache[0] = ($event) => isRef(showMusic) ? showMusic.value = $event : null), - loading: unref(listLoading), - "onUpdate:loading": _cache[1] || (_cache[1] = ($event) => isRef(listLoading) ? listLoading.value = $event : null), - name: unref(recommendItem)?.name || "", - "song-list": unref(listDetail)?.playlist.tracks || [], - "list-info": unref(listDetail)?.playlist - }, null, 8, ["show", "loading", "name", "song-list", "list-info"]) - ]); - }; - } -}); -const index = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-f9f1189c"]]); -export { - index as default -}; diff --git a/out/renderer/assets/index-Bc5fdT5j.js.gz b/out/renderer/assets/index-Bc5fdT5j.js.gz deleted file mode 100644 index 954327f..0000000 Binary files a/out/renderer/assets/index-Bc5fdT5j.js.gz and /dev/null differ diff --git a/out/renderer/assets/index-BlaUC8oz.css b/out/renderer/assets/index-BlaUC8oz.css deleted file mode 100644 index 79d9ff1..0000000 --- a/out/renderer/assets/index-BlaUC8oz.css +++ /dev/null @@ -1,336 +0,0 @@ -.title[data-v-686a7f41] { - margin-bottom: 1rem; - font-size: 1.125rem; - line-height: 1.75rem; - font-weight: 700; - --tw-text-opacity: 1; - color: rgb(17 24 39 / var(--tw-text-opacity, 1)); -} -.title[data-v-686a7f41]:is(.dark *) { - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity, 1)); -} -.play-list-type[data-v-686a7f41] { - width: 250px; - margin-right: 1rem; -} -.play-list-type-item[data-v-686a7f41], .play-list-type-showall[data-v-686a7f41] { - --tw-bg-opacity: 1; - background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1)); - --tw-text-opacity: 1; - color: rgb(17 24 39 / var(--tw-text-opacity, 1)); -} -.play-list-type-item[data-v-686a7f41]:is(.dark *), .play-list-type-showall[data-v-686a7f41]:is(.dark *) { - --tw-bg-opacity: 1; - background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1)); - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity, 1)); -} -.play-list-type-item[data-v-686a7f41], .play-list-type-showall[data-v-686a7f41] { - margin-right: 0.75rem; - margin-bottom: 0.75rem; - display: inline-block; - cursor: pointer; - border-radius: 0.75rem; - border-width: 1px; - --tw-border-opacity: 1; - border-color: rgb(229 231 235 / var(--tw-border-opacity, 1)); - padding-top: 0.5rem; - padding-bottom: 0.5rem; - padding-left: 0.75rem; - padding-right: 0.75rem; - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter; - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter; - transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - transition-duration: 150ms; -} -.play-list-type-item[data-v-686a7f41]:hover, .play-list-type-showall[data-v-686a7f41]:hover { - --tw-bg-opacity: 1; - background-color: rgb(22 163 74 / var(--tw-bg-opacity, 1)); - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity, 1)); -} -.play-list-type-item[data-v-686a7f41]:is(.dark *), .play-list-type-showall[data-v-686a7f41]:is(.dark *) { - --tw-border-opacity: 1; - border-color: rgb(55 65 81 / var(--tw-border-opacity, 1)); -} -.play-list-type-showall[data-v-686a7f41] { - display: block; - text-align: center; -} -.mobile .play-list-type[data-v-686a7f41] { - margin-left: 0px; - margin-right: 0px; - width: 100%; -}.recommend-album[data-v-1df7dbee] { - margin-left: 1.25rem; - margin-right: 1.25rem; - flex: 1 1 0%; -} -.recommend-album .title[data-v-1df7dbee] { - margin-bottom: 1rem; - font-size: 1.125rem; - line-height: 1.75rem; - font-weight: 700; - --tw-text-opacity: 1; - color: rgb(17 24 39 / var(--tw-text-opacity, 1)); -} -.recommend-album .title[data-v-1df7dbee]:is(.dark *) { - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity, 1)); -} -.recommend-album .recommend-album-list[data-v-1df7dbee] { - display: grid; - grid-template-columns: repeat(2, minmax(0, 1fr)); - grid-template-rows: repeat(3, minmax(0, 1fr)); - gap: 0.5rem; -} -.recommend-album .recommend-album-list-item[data-v-1df7dbee] { - position: relative; - overflow: hidden; - border-radius: 0.75rem; -} -.recommend-album .recommend-album-list-item-img[data-v-1df7dbee] { - height: 100%; - width: 100%; - border-radius: 0.75rem; - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter; - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter; - transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - transition-duration: 150ms; -} -.recommend-album .recommend-album-list-item:hover img[data-v-1df7dbee] { - filter: brightness(50%); -} -.recommend-album .recommend-album-list-item-content[data-v-1df7dbee] { - position: absolute; - top: 0px; - left: 0px; - z-index: 10; - height: 100%; - width: 100%; - background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1)); - --tw-bg-opacity: 0.6; - padding: 1rem; - font-size: 1.25rem; - line-height: 1.75rem; - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity, 1)); - opacity: 0; - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter; - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter; - transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - transition-duration: 150ms; -} -.recommend-album .recommend-album-list-item-content[data-v-1df7dbee]:is(.dark *) { - background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1)); - --tw-bg-opacity: 0.6; -} -.recommend-album .recommend-album-list-item-content[data-v-1df7dbee]:hover { - opacity: 1; -}.recommend-singer-list[data-v-f8da161d] { - display: flex; - height: 280px; -} -.recommend-singer-item[data-v-f8da161d] { - margin-right: 1.25rem; - display: flex; - height: 100%; - flex: 1 1 0%; - flex-direction: column; - justify-content: space-between; - overflow: hidden; - border-radius: 1.5rem; - padding: 1.25rem; -} -.recommend-singer-item-bg[data-v-f8da161d] { - position: absolute; - top: 0px; - left: 0px; - z-index: 0; - height: 100%; - width: 100%; - border-radius: 1.5rem; - --tw-bg-opacity: 1; - background-color: rgb(17 24 39 / var(--tw-bg-opacity, 1)); - background-size: cover; - background-position: center; - background-repeat: no-repeat; -} -.recommend-singer-item-bg[data-v-f8da161d]:is(.dark *) { - --tw-bg-opacity: 1; - background-color: rgb(31 41 55 / var(--tw-bg-opacity, 1)); -} -.recommend-singer-item-bg[data-v-f8da161d] { - filter: brightness(60%); -} -.recommend-singer-item-info[data-v-f8da161d] { - display: flex; - align-items: center; - padding: 0.5rem; -} -.recommend-singer-item-info-play[data-v-f8da161d] { - display: flex; - height: 3rem; - width: 3rem; - cursor: pointer; - align-items: center; - justify-content: center; - border-radius: 9999px; - --tw-bg-opacity: 1; - background-color: rgb(34 197 94 / var(--tw-bg-opacity, 1)); - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity, 1)); -} -.recommend-singer-item-info-play[data-v-f8da161d]:hover { - --tw-bg-opacity: 1; - background-color: rgb(22 163 74 / var(--tw-bg-opacity, 1)); -} -.recommend-singer-item-info-name[data-v-f8da161d] { - --tw-text-opacity: 1; - color: rgb(243 244 246 / var(--tw-text-opacity, 1)); -} -.recommend-singer-item-info-name[data-v-f8da161d]:is(.dark *) { - --tw-text-opacity: 1; - color: rgb(243 244 246 / var(--tw-text-opacity, 1)); -} -.recommend-singer-item-count[data-v-f8da161d] { - --tw-text-opacity: 1; - color: rgb(243 244 246 / var(--tw-text-opacity, 1)); -} -.recommend-singer-item-count[data-v-f8da161d]:is(.dark *) { - --tw-text-opacity: 1; - color: rgb(243 244 246 / var(--tw-text-opacity, 1)); -} -.mobile .recommend-singer-list[data-v-f8da161d] { - height: 180px; - margin-left: 1rem; -} -.mobile .recommend-singer-item[data-v-f8da161d] { - border-radius: 0.75rem; - padding: 1rem; -} -.mobile .recommend-singer-item-bg[data-v-f8da161d] { - border-radius: 0.75rem; -}.title[data-v-ae2da107] { - margin-bottom: 1rem; - font-size: 1.125rem; - line-height: 1.75rem; - font-weight: 700; - --tw-text-opacity: 1; - color: rgb(17 24 39 / var(--tw-text-opacity, 1)); -} -.title[data-v-ae2da107]:is(.dark *) { - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity, 1)); -} -.recommend-music[data-v-ae2da107] { - flex: 1 1 auto; -} -.recommend-music .text-ellipsis[data-v-ae2da107] { - width: 100%; -} -.recommend-music-list[data-v-ae2da107] { - width: 100%; - border-radius: 1.5rem; - border-width: 1px; - --tw-border-opacity: 1; - border-color: rgb(229 231 235 / var(--tw-border-opacity, 1)); - --tw-bg-opacity: 1; - background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1)); - padding: 0.5rem; -} -.recommend-music-list[data-v-ae2da107]:is(.dark *) { - --tw-border-opacity: 1; - border-color: rgb(55 65 81 / var(--tw-border-opacity, 1)); - --tw-bg-opacity: 1; - background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1)); -}.main-page[data-v-b0ca1b97] { - - height: 100%; - - width: 100%; - - overflow: hidden; - - --tw-bg-opacity: 1; - - background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1)) -} -.main-page[data-v-b0ca1b97]:is(.dark *) { - - --tw-bg-opacity: 1; - - background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1)) -} -.main-content[data-v-b0ca1b97] { - - margin-top: 1.5rem; - - margin-bottom: 7rem; - - display: flex -} -.mobile .main-content[data-v-b0ca1b97] { - - margin-left: 1rem; - - margin-right: 1rem; - - flex-direction: column -} -.mobile[data-v-b0ca1b97] .favorite-page { - - margin-left: 1rem; - - margin-right: 1rem; - - height: 100%; - - padding: 0px -} -[data-v-b0ca1b97] .favorite-page { - - margin-left: 1rem; - - margin-right: 1rem; - - height: 300px; - - padding: 0px -} -[data-v-b0ca1b97] .favorite-page .favorite-header { - - margin-bottom: 0px !important; - - padding-left: 0px !important; - - padding-right: 0px !important -} -[data-v-b0ca1b97] .favorite-page .favorite-header h2 { - - font-size: 1.125rem; - - line-height: 1.75rem; - - font-weight: 700; - - --tw-text-opacity: 1; - - color: rgb(17 24 39 / var(--tw-text-opacity, 1)) -} -[data-v-b0ca1b97] .favorite-page .favorite-header h2:is(.dark *) { - - --tw-text-opacity: 1; - - color: rgb(255 255 255 / var(--tw-text-opacity, 1)) -} -[data-v-b0ca1b97] .favorite-page .favorite-list { - - padding-left: 0px !important; - - padding-right: 0px !important -} \ No newline at end of file diff --git a/out/renderer/assets/index-BlaUC8oz.css.gz b/out/renderer/assets/index-BlaUC8oz.css.gz deleted file mode 100644 index 2b686f4..0000000 Binary files a/out/renderer/assets/index-BlaUC8oz.css.gz and /dev/null differ diff --git a/out/renderer/assets/index-BmgzcEyo.css b/out/renderer/assets/index-BmgzcEyo.css deleted file mode 100644 index eed51fc..0000000 --- a/out/renderer/assets/index-BmgzcEyo.css +++ /dev/null @@ -1,44 +0,0 @@ -.history-page[data-v-7e434221] {height: 100%;width: 100%;padding-top: 0.5rem;--tw-bg-opacity: 1;background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1)) -}.history-page[data-v-7e434221]:is(.dark *) {--tw-bg-opacity: 1;background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1)) -} -.history-page .title[data-v-7e434221] {padding-right: 1rem;padding-left: 1rem;padding-bottom: 0.5rem;font-size: 1.25rem;line-height: 1.75rem;font-weight: 700;--tw-text-opacity: 1;color: rgb(17 24 39 / var(--tw-text-opacity, 1)) -} -.history-page .title[data-v-7e434221]:is(.dark *) {--tw-text-opacity: 1;color: rgb(255 255 255 / var(--tw-text-opacity, 1)) -} -.history-page .history-list-content[data-v-7e434221] {margin-top: 0.5rem;padding-left: 1rem;padding-right: 1rem;padding-bottom: 7rem -} -.history-page .history-list-content .history-item[data-v-7e434221] {display: flex;align-items: center;justify-content: space-between -} -.history-page .history-list-content .history-item-content[data-v-7e434221] {flex: 1 1 0% -} -.history-page .history-list-content .history-item-count[data-v-7e434221] {padding-left: 1rem;padding-right: 1rem;text-align: center;font-size: 1.125rem;line-height: 1.75rem;--tw-text-opacity: 1;color: rgb(75 85 99 / var(--tw-text-opacity, 1)) -} -.history-page .history-list-content .history-item-count[data-v-7e434221]:is(.dark *) {--tw-text-opacity: 1;color: rgb(156 163 175 / var(--tw-text-opacity, 1)) -} -.history-page .history-list-content .history-item-delete[data-v-7e434221] {display: flex;height: 2rem;width: 2rem;cursor: pointer;align-items: center;justify-content: center;border-radius: 9999px;border-width: 2px;--tw-border-opacity: 1;border-color: rgb(156 163 175 / var(--tw-border-opacity, 1)) -} -.history-page .history-list-content .history-item-delete[data-v-7e434221]:is(.dark *) {--tw-border-opacity: 1;border-color: rgb(75 85 99 / var(--tw-border-opacity, 1)) -} -.history-page .history-list-content .history-item-delete[data-v-7e434221] {--tw-text-opacity: 1;color: rgb(75 85 99 / var(--tw-text-opacity, 1)) -} -.history-page .history-list-content .history-item-delete[data-v-7e434221]:is(.dark *) {--tw-text-opacity: 1;color: rgb(156 163 175 / var(--tw-text-opacity, 1)) -} -.history-page .history-list-content .history-item-delete[data-v-7e434221]:hover {--tw-border-opacity: 1;border-color: rgb(239 68 68 / var(--tw-border-opacity, 1));--tw-text-opacity: 1;color: rgb(239 68 68 / var(--tw-text-opacity, 1)) -} -.loading-wrapper[data-v-7e434221] {display: flex;align-items: center;justify-content: center;padding-top: 2rem;padding-bottom: 2rem -} -.no-more-tip[data-v-7e434221] {padding-top: 1rem;padding-bottom: 1rem;text-align: center;font-size: 0.875rem;line-height: 1.25rem;--tw-text-opacity: 1;color: rgb(107 114 128 / var(--tw-text-opacity, 1)) -} -.no-more-tip[data-v-7e434221]:is(.dark *) {--tw-text-opacity: 1;color: rgb(156 163 175 / var(--tw-text-opacity, 1)) -} -.flex-item[data-v-36d023b3] { - flex: 1 1 0%; - overflow: hidden; - border-radius: 1rem; - --tw-bg-opacity: 1; - background-color: rgb(248 249 250 / var(--tw-bg-opacity, 1)) -} -.flex-item[data-v-36d023b3]:is(.dark *) { - --tw-bg-opacity: 1; - background-color: rgb(22 22 22 / var(--tw-bg-opacity, 1)) -} diff --git a/out/renderer/assets/index-BmgzcEyo.css.gz b/out/renderer/assets/index-BmgzcEyo.css.gz deleted file mode 100644 index 28756f6..0000000 Binary files a/out/renderer/assets/index-BmgzcEyo.css.gz and /dev/null differ diff --git a/out/renderer/assets/index-C-VCusx9.js b/out/renderer/assets/index-C-VCusx9.js deleted file mode 100644 index 56bc1ac..0000000 --- a/out/renderer/assets/index-C-VCusx9.js +++ /dev/null @@ -1,276 +0,0 @@ -import { ad as request, d as defineComponent, r as ref, g as useStore, j as openBlock, c as createElementBlock, b as createBaseVNode, e as createVNode, u as unref, a7 as getImgUrl, T as createCommentVNode, t as toDisplayString, O as createBlock, i as isRef, n as normalizeClass, ae as audioService, _ as _export_sfc, G as computed, o as onMounted, E as watch, f as withCtx, af as useRoute, ag as useDateFormat, ab as resolveDirective, ac as isMobile, a3 as Fragment, a4 as renderList, s as setAnimationClass, a2 as normalizeStyle, a5 as setAnimationDelay, ah as withModifiers, k as createTextVNode, w as withDirectives } from "./index-DKaFsuse.js"; -import { e as getHotSearch } from "./home-BXGE9AqN.js"; -import { S as SongItem } from "./SongItem-CoswpGn6.js"; -import { M as MusicList, g as getAlbum, a as getListDetail } from "./MusicList-s-QHu-iA.js"; -import { M as MvPlayer } from "./MvPlayer-I4IDK1xL.js"; -import { N as NImage } from "./Image-DXClIklC.js"; -import { _ as __unplugin_components_1 } from "./Layout-CvYBg1vI.js"; -import "./Ellipsis-D4R5dIX2.js"; -import "./Drawer-BEJ8Ydua.js"; -import "./Avatar-rQ2og-6c.js"; -import "./Tag-C0oC92WF.js"; -import "./Icon-DucaliTK.js"; -import "./Slider-BA6NituQ.js"; -import "./use-locale-DLWAOXez.js"; -const getSearch = (params) => { - return request.get("/cloudsearch", { - params - }); -}; -const _hoisted_1$1 = { class: "search-item-img" }; -const _hoisted_2$1 = { - key: 0, - class: "play" -}; -const _hoisted_3$1 = { class: "search-item-info" }; -const _hoisted_4$1 = { class: "search-item-name" }; -const _hoisted_5$1 = { class: "search-item-artist" }; -const _sfc_main$1 = /* @__PURE__ */ defineComponent({ - __name: "SearchItem", - props: { - item: {} - }, - setup(__props) { - const props = __props; - const songList = ref([]); - const showPop = ref(false); - const listInfo = ref(null); - const getCurrentMv = () => { - return { - id: props.item.id, - name: props.item.name - }; - }; - const store = useStore(); - const handleClick = async () => { - listInfo.value = null; - if (props.item.type === "专辑") { - showPop.value = true; - const res = await getAlbum(props.item.id); - songList.value = res.data.songs.map((song) => { - song.al.picUrl = song.al.picUrl || props.item.picUrl; - return song; - }); - listInfo.value = { - ...res.data.album, - creator: { - avatarUrl: res.data.album.artist.img1v1Url, - nickname: `${res.data.album.artist.name} - ${res.data.album.company}` - }, - description: res.data.album.description - }; - } - if (props.item.type === "playlist") { - showPop.value = true; - const res = await getListDetail(props.item.id); - songList.value = res.data.playlist.tracks; - listInfo.value = res.data.playlist; - } - if (props.item.type === "mv") { - store.commit("setIsPlay", false); - store.commit("setPlayMusic", false); - audioService.getCurrentSound()?.pause(); - showPop.value = true; - } - }; - return (_ctx, _cache) => { - const _component_n_image = NImage; - return openBlock(), createElementBlock("div", { - class: normalizeClass(["search-item", _ctx.item.type]), - onClick: handleClick - }, [ - createBaseVNode("div", _hoisted_1$1, [ - createVNode(_component_n_image, { - src: unref(getImgUrl)(_ctx.item.picUrl, _ctx.item.type === "mv" ? "320y180" : "100y100"), - lazy: "", - "preview-disabled": "" - }, null, 8, ["src"]), - _ctx.item.type === "mv" ? (openBlock(), createElementBlock("div", _hoisted_2$1, _cache[2] || (_cache[2] = [ - createBaseVNode("i", { class: "iconfont icon icon-play" }, null, -1) - ]))) : createCommentVNode("", true) - ]), - createBaseVNode("div", _hoisted_3$1, [ - createBaseVNode("p", _hoisted_4$1, toDisplayString(_ctx.item.name), 1), - createBaseVNode("p", _hoisted_5$1, toDisplayString(_ctx.item.desc), 1) - ]), - ["专辑", "playlist"].includes(_ctx.item.type) ? (openBlock(), createBlock(MusicList, { - key: 0, - show: unref(showPop), - "onUpdate:show": _cache[0] || (_cache[0] = ($event) => isRef(showPop) ? showPop.value = $event : null), - name: _ctx.item.name, - "song-list": unref(songList), - "list-info": unref(listInfo), - cover: false - }, null, 8, ["show", "name", "song-list", "list-info"])) : createCommentVNode("", true), - _ctx.item.type === "mv" ? (openBlock(), createBlock(MvPlayer, { - key: 1, - show: unref(showPop), - "onUpdate:show": _cache[1] || (_cache[1] = ($event) => isRef(showPop) ? showPop.value = $event : null), - "current-mv": getCurrentMv(), - "no-list": "" - }, null, 8, ["show", "current-mv"])) : createCommentVNode("", true) - ], 2); - }; - } -}); -const SearchItem = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-3449f610"]]); -const _hoisted_1 = { class: "search-page" }; -const _hoisted_2 = { class: "hot-search-list" }; -const _hoisted_3 = ["onClick"]; -const _hoisted_4 = { class: "title" }; -const _hoisted_5 = { class: "search-list-box" }; -const _sfc_main = /* @__PURE__ */ defineComponent({ - ...{ - name: "Search" - }, - __name: "index", - setup(__props) { - const route = useRoute(); - const store = useStore(); - const searchDetail = ref(); - const searchType = computed(() => store.state.searchType); - const searchDetailLoading = ref(false); - const hotSearchData = ref(); - const loadHotSearch = async () => { - const { data } = await getHotSearch(); - hotSearchData.value = data; - }; - onMounted(() => { - loadHotSearch(); - loadSearch(route.query.keyword); - }); - const hotKeyword = ref(route.query.keyword || "搜索列表"); - watch( - () => store.state.searchValue, - (value) => { - loadSearch(value); - } - ); - const dateFormat = (time) => useDateFormat(time, "YYYY.MM.DD").value; - const loadSearch = async (keywords, type = null) => { - hotKeyword.value = keywords; - searchDetail.value = void 0; - if (!keywords) return; - searchDetailLoading.value = true; - const { data } = await getSearch({ keywords, type: type || searchType.value }); - const songs = data.result.songs || []; - const albums = data.result.albums || []; - const mvs = (data.result.mvs || []).map((item) => ({ - ...item, - picUrl: item.cover, - playCount: item.playCount, - desc: item.artists.map((artist) => artist.name).join("/"), - type: "mv" - })); - const playlists = (data.result.playlists || []).map((item) => ({ - ...item, - picUrl: item.coverImgUrl, - playCount: item.playCount, - desc: item.creator.nickname, - type: "playlist" - })); - songs.forEach((item) => { - item.picUrl = item.al.picUrl; - item.artists = item.ar; - }); - albums.forEach((item) => { - item.desc = `${item.artist.name} ${item.company} ${dateFormat(item.publishTime)}`; - }); - searchDetail.value = { - songs, - albums, - mvs, - playlists - }; - searchDetailLoading.value = false; - }; - watch( - () => route.path, - async (path) => { - if (path === "/search") { - store.state.searchValue = route.query.keyword; - } - } - ); - const handlePlay = () => { - const tracks = searchDetail.value?.songs || []; - store.commit("setPlayList", tracks); - }; - return (_ctx, _cache) => { - const _component_n_layout = __unplugin_components_1; - const _directive_loading = resolveDirective("loading"); - return openBlock(), createElementBlock("div", _hoisted_1, [ - (unref(isMobile) ? !searchDetail.value : true) ? (openBlock(), createBlock(_component_n_layout, { - key: 0, - class: normalizeClass(["hot-search", unref(setAnimationClass)("animate__fadeInDown")]), - "native-scrollbar": false - }, { - default: withCtx(() => [ - _cache[0] || (_cache[0] = createBaseVNode("div", { class: "title" }, "热搜列表", -1)), - createBaseVNode("div", _hoisted_2, [ - (openBlock(true), createElementBlock(Fragment, null, renderList(hotSearchData.value?.data, (item, index2) => { - return openBlock(), createElementBlock("div", { - key: index2, - class: normalizeClass([unref(setAnimationClass)("animate__bounceInLeft"), "hot-search-item"]), - style: normalizeStyle(unref(setAnimationDelay)(index2, 10)), - onClick: withModifiers(($event) => loadSearch(item.searchWord, 1), ["stop"]) - }, [ - createBaseVNode("span", { - class: normalizeClass(["hot-search-item-count", { "hot-search-item-count-3": index2 < 3 }]) - }, toDisplayString(index2 + 1), 3), - createTextVNode(" " + toDisplayString(item.searchWord), 1) - ], 14, _hoisted_3); - }), 128)) - ]) - ]), - _: 1 - }, 8, ["class"])) : createCommentVNode("", true), - (unref(isMobile) ? searchDetail.value : true) ? (openBlock(), createBlock(_component_n_layout, { - key: 1, - class: normalizeClass(["search-list", unref(setAnimationClass)("animate__fadeInUp")]), - "native-scrollbar": false - }, { - default: withCtx(() => [ - createBaseVNode("div", _hoisted_4, toDisplayString(hotKeyword.value), 1), - withDirectives((openBlock(), createElementBlock("div", _hoisted_5, [ - searchDetail.value ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [ - (openBlock(true), createElementBlock(Fragment, null, renderList(searchDetail.value?.songs, (item, index2) => { - return openBlock(), createElementBlock("div", { - key: item.id, - class: normalizeClass(unref(setAnimationClass)("animate__bounceInRight")), - style: normalizeStyle(unref(setAnimationDelay)(index2, 50)) - }, [ - createVNode(SongItem, { - item, - onPlay: handlePlay - }, null, 8, ["item"]) - ], 6); - }), 128)), - (openBlock(true), createElementBlock(Fragment, null, renderList(searchDetail.value, (list, key) => { - return openBlock(), createElementBlock(Fragment, null, [ - key.toString() !== "songs" ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(list, (item, index2) => { - return openBlock(), createElementBlock("div", { - key: item.id, - class: normalizeClass(unref(setAnimationClass)("animate__bounceInRight")), - style: normalizeStyle(unref(setAnimationDelay)(index2, 50)) - }, [ - createVNode(SearchItem, { item }, null, 8, ["item"]) - ], 6); - }), 128)) : createCommentVNode("", true) - ], 64); - }), 256)) - ], 64)) : createCommentVNode("", true) - ])), [ - [_directive_loading, searchDetailLoading.value] - ]) - ]), - _: 1 - }, 8, ["class"])) : createCommentVNode("", true) - ]); - }; - } -}); -const index = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-254ebbc1"]]); -export { - index as default -}; diff --git a/out/renderer/assets/index-C-VCusx9.js.gz b/out/renderer/assets/index-C-VCusx9.js.gz deleted file mode 100644 index 49050e5..0000000 Binary files a/out/renderer/assets/index-C-VCusx9.js.gz and /dev/null differ diff --git a/out/renderer/assets/index-COH3Oisr.css b/out/renderer/assets/index-COH3Oisr.css deleted file mode 100644 index d389a75..0000000 --- a/out/renderer/assets/index-COH3Oisr.css +++ /dev/null @@ -1,197 +0,0 @@ -.user-page[data-v-be63ae6f] { - display: flex; - height: 100%; -} -.user-page .left[data-v-be63ae6f] { - max-width: 600px; - position: relative; - height: 100%; - flex: 1 1 0%; - overflow: hidden; - border-radius: 1rem; - background-repeat: no-repeat; - --tw-bg-opacity: 1; - background-color: rgb(17 24 39 / var(--tw-bg-opacity, 1)); -} -.user-page .left[data-v-be63ae6f]:is(.dark *) { - --tw-bg-opacity: 1; - background-color: rgb(31 41 55 / var(--tw-bg-opacity, 1)); -} -.user-page .left .page[data-v-be63ae6f] { - z-index: 10; - display: flex; - height: 100%; - width: 100%; - flex-direction: column; - padding: 1rem; - background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1)); - --tw-bg-opacity: 0.4; -} -.user-page .left .title[data-v-be63ae6f] { - font-size: 1.125rem; - line-height: 1.75rem; - font-weight: 700; - --tw-text-opacity: 1; - color: rgb(17 24 39 / var(--tw-text-opacity, 1)); -} -.user-page .left .title[data-v-be63ae6f]:is(.dark *) { - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity, 1)); -} -.user-page .left .user-name[data-v-be63ae6f] { - margin-bottom: 1rem; - font-size: 1.25rem; - line-height: 1.75rem; - font-weight: 700; - color: rgb(255 255 255 / var(--tw-text-opacity, 1)); - --tw-text-opacity: 0.7; -} -.user-page .left .uesr-signature[data-v-be63ae6f] { - margin-top: 1rem; - color: rgb(255 255 255 / var(--tw-text-opacity, 1)); - --tw-text-opacity: 0.7; -} -.user-page .left .user-info[data-v-be63ae6f] { - display: flex; - align-items: center; -} -.user-page .left .user-info-list[data-v-be63ae6f] { - display: flex; - width: 40%; - justify-content: space-around; - text-align: center; - color: rgb(255 255 255 / var(--tw-text-opacity, 1)); - --tw-text-opacity: 0.7; -} -.user-page .left .user-info-list .label[data-v-be63ae6f] { - font-size: 1.25rem; - line-height: 1.75rem; - font-weight: 700; - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity, 1)); -} -.user-page .right[data-v-be63ae6f] { - margin-left: 1rem; - height: 100%; - flex: 1 1 0%; - overflow: hidden; -} -.user-page .right .record-list[data-v-be63ae6f] { - border-radius: 1rem; - --tw-bg-opacity: 1; - background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1)); -} -.user-page .right .record-list[data-v-be63ae6f]:is(.dark *) { - --tw-bg-opacity: 1; - background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1)); -} -.user-page .right .record-list[data-v-be63ae6f] { - height: calc(100% - 3.75rem); -} -.user-page .right .record-list .record-item[data-v-be63ae6f] { - display: flex; - align-items: center; - padding-left: 1rem; - padding-right: 1rem; -} -.user-page .right .record-list .song-item[data-v-be63ae6f] { - flex: 1 1 0%; -} -.user-page .right .record-list .play-count[data-v-be63ae6f] { - margin-left: 1rem; - --tw-text-opacity: 1; - color: rgb(75 85 99 / var(--tw-text-opacity, 1)); -} -.user-page .right .record-list .play-count[data-v-be63ae6f]:is(.dark *) { - --tw-text-opacity: 1; - color: rgb(156 163 175 / var(--tw-text-opacity, 1)); -} -.user-page .right .title[data-v-be63ae6f] { - margin: 1rem; - font-size: 1.25rem; - line-height: 1.75rem; - font-weight: 700; - --tw-text-opacity: 1; - color: rgb(17 24 39 / var(--tw-text-opacity, 1)); -} -.user-page .right .title[data-v-be63ae6f]:is(.dark *) { - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity, 1)); -} -.play-list[data-v-be63ae6f] { - margin-top: 1rem; - flex: 1 1 0%; - overflow: hidden; - border-radius: 0.75rem; - padding-top: 1rem; - padding-bottom: 1rem; - padding-left: 0.5rem; - padding-right: 0.5rem; - --tw-bg-opacity: 1; - background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1)); -} -.play-list[data-v-be63ae6f]:is(.dark *) { - --tw-bg-opacity: 1; - background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1)); -} -.play-list-title[data-v-be63ae6f] { - font-size: 1.125rem; - line-height: 1.75rem; - --tw-text-opacity: 1; - color: rgb(17 24 39 / var(--tw-text-opacity, 1)); -} -.play-list-title[data-v-be63ae6f]:is(.dark *) { - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity, 1)); -} -.play-list-item[data-v-be63ae6f] { - display: flex; - cursor: pointer; - align-items: center; - border-radius: 0.75rem; - padding-left: 0.5rem; - padding-right: 0.5rem; - padding-top: 0.25rem; - padding-bottom: 0.25rem; - transition-property: all; - transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - transition-duration: 200ms; -} -.play-list-item[data-v-be63ae6f]:hover { - --tw-bg-opacity: 1; - background-color: rgb(233 236 239 / var(--tw-bg-opacity, 1)); -} -.play-list-item[data-v-be63ae6f]:hover:is(.dark *) { - --tw-bg-opacity: 1; - background-color: rgb(45 45 45 / var(--tw-bg-opacity, 1)); -} -.play-list-item-img[data-v-be63ae6f] { - width: 60px; - height: 60px; - border-radius: 0.75rem; -} -.play-list-item-info[data-v-be63ae6f] { - margin-left: 0.5rem; -} -.play-list-item-name[data-v-be63ae6f] { - font-size: 1rem; - line-height: 1.5rem; - --tw-text-opacity: 1; - color: rgb(17 24 39 / var(--tw-text-opacity, 1)); -} -.play-list-item-name[data-v-be63ae6f]:is(.dark *) { - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity, 1)); -} -.play-list-item-count[data-v-be63ae6f] { - --tw-text-opacity: 1; - color: rgb(107 114 128 / var(--tw-text-opacity, 1)); -} -.play-list-item-count[data-v-be63ae6f]:is(.dark *) { - --tw-text-opacity: 1; - color: rgb(156 163 175 / var(--tw-text-opacity, 1)); -} -.mobile .user-page[data-v-be63ae6f] { - padding-left: 1rem; - padding-right: 1rem; -} \ No newline at end of file diff --git a/out/renderer/assets/index-COH3Oisr.css.gz b/out/renderer/assets/index-COH3Oisr.css.gz deleted file mode 100644 index 32dffea..0000000 Binary files a/out/renderer/assets/index-COH3Oisr.css.gz and /dev/null differ diff --git a/out/renderer/assets/index-ChDcb7c6.css b/out/renderer/assets/index-ChDcb7c6.css deleted file mode 100644 index 8006188..0000000 --- a/out/renderer/assets/index-ChDcb7c6.css +++ /dev/null @@ -1,7332 +0,0 @@ -@charset "UTF-8";@font-face { - font-family: 'iconfont'; /* Project id 2685283 */ - src: - url('./iconfont-DzQUHqRQ.woff2?t=1703643214551') format('woff2'), - url('./iconfont-53c_NoX9.woff?t=1703643214551') format('woff'), - url('./iconfont-Cio8idH0.ttf?t=1703643214551') format('truetype'); -} - -.iconfont { - font-family: 'iconfont' !important; - font-size: 16px; - font-style: normal; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -.icon-list:before { - content: '\e603'; -} - -.icon-maxsize:before { - content: '\e692'; -} - -.icon-close:before { - content: '\e616'; -} - -.icon-minisize:before { - content: '\e602'; -} - -.icon-shuaxin:before { - content: '\e627'; -} - -.icon-icon_error:before { - content: '\e615'; -} - -.icon-a-3User:before { - content: '\e601'; -} - -.icon-Chat:before { - content: '\e605'; -} - -.icon-Category:before { - content: '\e606'; -} - -.icon-Document:before { - content: '\e607'; -} - -.icon-Heart:before { - content: '\e608'; -} - -.icon-Hide:before { - content: '\e609'; -} - -.icon-Home:before { - content: '\e60a'; -} - -.icon-a-Image2:before { - content: '\e60b'; -} - -.icon-Profile:before { - content: '\e60c'; -} - -.icon-Search:before { - content: '\e60d'; -} - -.icon-Paper:before { - content: '\e60e'; -} - -.icon-Play:before { - content: '\e60f'; -} - -.icon-Setting:before { - content: '\e610'; -} - -.icon-a-TicketStar:before { - content: '\e611'; -} - -.icon-a-VolumeOff:before { - content: '\e612'; -} - -.icon-a-VolumeUp:before { - content: '\e613'; -} - -.icon-a-VolumeDown:before { - content: '\e614'; -} - -.icon-stop:before { - content: '\e600'; -} - -.icon-next:before { - content: '\e6a9'; -} - -.icon-prev:before { - content: '\e6ac'; -} - -.icon-play:before { - content: '\e6aa'; -} - -.icon-xiasanjiaoxing:before { - content: '\e642'; -} - -.icon-videofill:before { - content: '\e7c7'; -} - -.icon-favorfill:before { - content: '\e64b'; -} - -.icon-favor:before { - content: '\e64c'; -} - -.icon-loading:before { - content: '\e64f'; -} - -.icon-search:before { - content: '\e65c'; -} - -.icon-likefill:before { - content: '\e668'; -} - -.icon-like:before { - content: '\e669'; -} - -.icon-notificationfill:before { - content: '\e66a'; -} - -.icon-notification:before { - content: '\e66b'; -} - -.icon-evaluate:before { - content: '\e672'; -} - -.icon-homefill:before { - content: '\e6bb'; -} - -.icon-link:before { - content: '\e6bf'; -} - -.icon-roundaddfill:before { - content: '\e6d8'; -} - -.icon-roundadd:before { - content: '\e6d9'; -} - -.icon-add:before { - content: '\e6da'; -} - -.icon-appreciatefill:before { - content: '\e6e3'; -} - -.icon-forwardfill:before { - content: '\e6ea'; -} - -.icon-voicefill:before { - content: '\e6f0'; -} - -.icon-wefill:before { - content: '\e6f4'; -} - -.icon-keyboard:before { - content: '\e71b'; -} - -.icon-picfill:before { - content: '\e72c'; -} - -.icon-markfill:before { - content: '\e730'; -} - -.icon-presentfill:before { - content: '\e732'; -} - -.icon-peoplefill:before { - content: '\e735'; -} - -.icon-read:before { - content: '\e742'; -} - -.icon-backwardfill:before { - content: '\e74d'; -} - -.icon-playfill:before { - content: '\e74f'; -} - -.icon-all:before { - content: '\e755'; -} - -.icon-hotfill:before { - content: '\e757'; -} - -.icon-recordfill:before { - content: '\e7a4'; -} - -.icon-full:before { - content: '\e7bc'; -} - -.icon-favor_fill_light:before { - content: '\e7ec'; -} - -.icon-round_favor_fill:before { - content: '\e80a'; -} - -.icon-round_location_fill:before { - content: '\e80b'; -} - -.icon-round_like_fill:before { - content: '\e80c'; -} - -.icon-round_people_fill:before { - content: '\e80d'; -} - -.icon-round_skin_fill:before { - content: '\e80e'; -} - -.icon-broadcast_fill:before { - content: '\e81d'; -} - -.icon-card_fill:before { - content: '\e81f'; -} - /*! - * animate.css - https://animate.style/ - * Version - 4.1.1 - * Licensed under the MIT license - http://opensource.org/licenses/MIT - * - * Copyright (c) 2020 Animate.css - */ -:root { - --animate-duration: 1s; - --animate-delay: 1s; - --animate-repeat: 1; -} -.animate__animated { - animation-duration: 1s; - animation-duration: var(--animate-duration); - animation-fill-mode: both; -} -.animate__animated.animate__infinite { - animation-iteration-count: infinite; -} -.animate__animated.animate__repeat-1 { - animation-iteration-count: 1; - animation-iteration-count: var(--animate-repeat); -} -.animate__animated.animate__repeat-2 { - animation-iteration-count: 2; - animation-iteration-count: calc(var(--animate-repeat) * 2); -} -.animate__animated.animate__repeat-3 { - animation-iteration-count: 3; - animation-iteration-count: calc(var(--animate-repeat) * 3); -} -.animate__animated.animate__delay-1s { - animation-delay: 1s; - animation-delay: var(--animate-delay); -} -.animate__animated.animate__delay-2s { - animation-delay: 2s; - animation-delay: calc(var(--animate-delay) * 2); -} -.animate__animated.animate__delay-3s { - animation-delay: 3s; - animation-delay: calc(var(--animate-delay) * 3); -} -.animate__animated.animate__delay-4s { - animation-delay: 4s; - animation-delay: calc(var(--animate-delay) * 4); -} -.animate__animated.animate__delay-5s { - animation-delay: 5s; - animation-delay: calc(var(--animate-delay) * 5); -} -.animate__animated.animate__faster { - animation-duration: 0.5s; - animation-duration: calc(var(--animate-duration) / 2); -} -.animate__animated.animate__fast { - animation-duration: 0.8s; - animation-duration: calc(var(--animate-duration) * 0.8); -} -.animate__animated.animate__slow { - animation-duration: 2s; - animation-duration: calc(var(--animate-duration) * 2); -} -.animate__animated.animate__slower { - animation-duration: 3s; - animation-duration: calc(var(--animate-duration) * 3); -} -@media (prefers-reduced-motion: reduce), print { - .animate__animated { - animation-duration: 1ms !important; - transition-duration: 1ms !important; - animation-iteration-count: 1 !important; - } - .animate__animated[class*='Out'] { - opacity: 0; - } -} -@keyframes bounce { - 0%, - 20%, - 53%, - to { - animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); - transform: translateZ(0); - } - 40%, - 43% { - animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); - transform: translate3d(0, -30px, 0) scaleY(1.1); - } - 70% { - animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); - transform: translate3d(0, -15px, 0) scaleY(1.05); - } - 80% { - transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); - transform: translateZ(0) scaleY(0.95); - } - 90% { - transform: translate3d(0, -4px, 0) scaleY(1.02); - } -} -.animate__bounce { - animation-name: bounce; - transform-origin: center bottom; -} -@keyframes flash { - 0%, - 50%, - to { - opacity: 1; - } - 25%, - 75% { - opacity: 0; - } -} -.animate__flash { - animation-name: flash; -} -@keyframes pulse { - 0% { - transform: scaleX(1); - } - 50% { - transform: scale3d(1.05, 1.05, 1.05); - } - to { - transform: scaleX(1); - } -} -.animate__pulse { - animation-name: pulse; - animation-timing-function: ease-in-out; -} -@keyframes rubberBand { - 0% { - transform: scaleX(1); - } - 30% { - transform: scale3d(1.25, 0.75, 1); - } - 40% { - transform: scale3d(0.75, 1.25, 1); - } - 50% { - transform: scale3d(1.15, 0.85, 1); - } - 65% { - transform: scale3d(0.95, 1.05, 1); - } - 75% { - transform: scale3d(1.05, 0.95, 1); - } - to { - transform: scaleX(1); - } -} -.animate__rubberBand { - animation-name: rubberBand; -} -@keyframes shakeX { - 0%, - to { - transform: translateZ(0); - } - 10%, - 30%, - 50%, - 70%, - 90% { - transform: translate3d(-10px, 0, 0); - } - 20%, - 40%, - 60%, - 80% { - transform: translate3d(10px, 0, 0); - } -} -.animate__shakeX { - animation-name: shakeX; -} -@keyframes shakeY { - 0%, - to { - transform: translateZ(0); - } - 10%, - 30%, - 50%, - 70%, - 90% { - transform: translate3d(0, -10px, 0); - } - 20%, - 40%, - 60%, - 80% { - transform: translate3d(0, 10px, 0); - } -} -.animate__shakeY { - animation-name: shakeY; -} -@keyframes headShake { - 0% { - transform: translateX(0); - } - 6.5% { - transform: translateX(-6px) rotateY(-9deg); - } - 18.5% { - transform: translateX(5px) rotateY(7deg); - } - 31.5% { - transform: translateX(-3px) rotateY(-5deg); - } - 43.5% { - transform: translateX(2px) rotateY(3deg); - } - 50% { - transform: translateX(0); - } -} -.animate__headShake { - animation-timing-function: ease-in-out; - animation-name: headShake; -} -@keyframes swing { - 20% { - transform: rotate(15deg); - } - 40% { - transform: rotate(-10deg); - } - 60% { - transform: rotate(5deg); - } - 80% { - transform: rotate(-5deg); - } - to { - transform: rotate(0deg); - } -} -.animate__swing { - transform-origin: top center; - animation-name: swing; -} -@keyframes tada { - 0% { - transform: scaleX(1); - } - 10%, - 20% { - transform: scale3d(0.9, 0.9, 0.9) rotate(-3deg); - } - 30%, - 50%, - 70%, - 90% { - transform: scale3d(1.1, 1.1, 1.1) rotate(3deg); - } - 40%, - 60%, - 80% { - transform: scale3d(1.1, 1.1, 1.1) rotate(-3deg); - } - to { - transform: scaleX(1); - } -} -.animate__tada { - animation-name: tada; -} -@keyframes wobble { - 0% { - transform: translateZ(0); - } - 15% { - transform: translate3d(-25%, 0, 0) rotate(-5deg); - } - 30% { - transform: translate3d(20%, 0, 0) rotate(3deg); - } - 45% { - transform: translate3d(-15%, 0, 0) rotate(-3deg); - } - 60% { - transform: translate3d(10%, 0, 0) rotate(2deg); - } - 75% { - transform: translate3d(-5%, 0, 0) rotate(-1deg); - } - to { - transform: translateZ(0); - } -} -.animate__wobble { - animation-name: wobble; -} -@keyframes jello { - 0%, - 11.1%, - to { - transform: translateZ(0); - } - 22.2% { - transform: skewX(-12.5deg) skewY(-12.5deg); - } - 33.3% { - transform: skewX(6.25deg) skewY(6.25deg); - } - 44.4% { - transform: skewX(-3.125deg) skewY(-3.125deg); - } - 55.5% { - transform: skewX(1.5625deg) skewY(1.5625deg); - } - 66.6% { - transform: skewX(-0.78125deg) skewY(-0.78125deg); - } - 77.7% { - transform: skewX(0.390625deg) skewY(0.390625deg); - } - 88.8% { - transform: skewX(-0.1953125deg) skewY(-0.1953125deg); - } -} -.animate__jello { - animation-name: jello; - transform-origin: center; -} -@keyframes heartBeat { - 0% { - transform: scale(1); - } - 14% { - transform: scale(1.3); - } - 28% { - transform: scale(1); - } - 42% { - transform: scale(1.3); - } - 70% { - transform: scale(1); - } -} -.animate__heartBeat { - animation-name: heartBeat; - animation-duration: 1.3s; - animation-duration: calc(var(--animate-duration) * 1.3); - animation-timing-function: ease-in-out; -} -@keyframes backInDown { - 0% { - transform: translateY(-1200px) scale(0.7); - opacity: 0.7; - } - 80% { - transform: translateY(0) scale(0.7); - opacity: 0.7; - } - to { - transform: scale(1); - opacity: 1; - } -} -.animate__backInDown { - animation-name: backInDown; -} -@keyframes backInLeft { - 0% { - transform: translateX(-2000px) scale(0.7); - opacity: 0.7; - } - 80% { - transform: translateX(0) scale(0.7); - opacity: 0.7; - } - to { - transform: scale(1); - opacity: 1; - } -} -.animate__backInLeft { - animation-name: backInLeft; -} -@keyframes backInRight { - 0% { - transform: translateX(2000px) scale(0.7); - opacity: 0.7; - } - 80% { - transform: translateX(0) scale(0.7); - opacity: 0.7; - } - to { - transform: scale(1); - opacity: 1; - } -} -.animate__backInRight { - animation-name: backInRight; -} -@keyframes backInUp { - 0% { - transform: translateY(1200px) scale(0.7); - opacity: 0.7; - } - 80% { - transform: translateY(0) scale(0.7); - opacity: 0.7; - } - to { - transform: scale(1); - opacity: 1; - } -} -.animate__backInUp { - animation-name: backInUp; -} -@keyframes backOutDown { - 0% { - transform: scale(1); - opacity: 1; - } - 20% { - transform: translateY(0) scale(0.7); - opacity: 0.7; - } - to { - transform: translateY(700px) scale(0.7); - opacity: 0.7; - } -} -.animate__backOutDown { - animation-name: backOutDown; -} -@keyframes backOutLeft { - 0% { - transform: scale(1); - opacity: 1; - } - 20% { - transform: translateX(0) scale(0.7); - opacity: 0.7; - } - to { - transform: translateX(-2000px) scale(0.7); - opacity: 0.7; - } -} -.animate__backOutLeft { - animation-name: backOutLeft; -} -@keyframes backOutRight { - 0% { - transform: scale(1); - opacity: 1; - } - 20% { - transform: translateX(0) scale(0.7); - opacity: 0.7; - } - to { - transform: translateX(2000px) scale(0.7); - opacity: 0.7; - } -} -.animate__backOutRight { - animation-name: backOutRight; -} -@keyframes backOutUp { - 0% { - transform: scale(1); - opacity: 1; - } - 20% { - transform: translateY(0) scale(0.7); - opacity: 0.7; - } - to { - transform: translateY(-700px) scale(0.7); - opacity: 0.7; - } -} -.animate__backOutUp { - animation-name: backOutUp; -} -@keyframes bounceIn { - 0%, - 20%, - 40%, - 60%, - 80%, - to { - animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); - } - 0% { - opacity: 0; - transform: scale3d(0.3, 0.3, 0.3); - } - 20% { - transform: scale3d(1.1, 1.1, 1.1); - } - 40% { - transform: scale3d(0.9, 0.9, 0.9); - } - 60% { - opacity: 1; - transform: scale3d(1.03, 1.03, 1.03); - } - 80% { - transform: scale3d(0.97, 0.97, 0.97); - } - to { - opacity: 1; - transform: scaleX(1); - } -} -.animate__bounceIn { - animation-duration: 0.75s; - animation-duration: calc(var(--animate-duration) * 0.75); - animation-name: bounceIn; -} -@keyframes bounceInDown { - 0%, - 60%, - 75%, - 90%, - to { - animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); - } - 0% { - opacity: 0; - transform: translate3d(0, -3000px, 0) scaleY(3); - } - 60% { - opacity: 1; - transform: translate3d(0, 25px, 0) scaleY(0.9); - } - 75% { - transform: translate3d(0, -10px, 0) scaleY(0.95); - } - 90% { - transform: translate3d(0, 5px, 0) scaleY(0.985); - } - to { - transform: translateZ(0); - } -} -.animate__bounceInDown { - animation-name: bounceInDown; -} -@keyframes bounceInLeft { - 0%, - 60%, - 75%, - 90%, - to { - animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); - } - 0% { - opacity: 0; - transform: translate3d(-3000px, 0, 0) scaleX(3); - } - 60% { - opacity: 1; - transform: translate3d(25px, 0, 0) scaleX(1); - } - 75% { - transform: translate3d(-10px, 0, 0) scaleX(0.98); - } - 90% { - transform: translate3d(5px, 0, 0) scaleX(0.995); - } - to { - transform: translateZ(0); - } -} -.animate__bounceInLeft { - animation-name: bounceInLeft; -} -@keyframes bounceInRight { - 0%, - 60%, - 75%, - 90%, - to { - animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); - } - 0% { - opacity: 0; - transform: translate3d(3000px, 0, 0) scaleX(3); - } - 60% { - opacity: 1; - transform: translate3d(-25px, 0, 0) scaleX(1); - } - 75% { - transform: translate3d(10px, 0, 0) scaleX(0.98); - } - 90% { - transform: translate3d(-5px, 0, 0) scaleX(0.995); - } - to { - transform: translateZ(0); - } -} -.animate__bounceInRight { - animation-name: bounceInRight; -} -@keyframes bounceInUp { - 0%, - 60%, - 75%, - 90%, - to { - animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); - } - 0% { - opacity: 0; - transform: translate3d(0, 3000px, 0) scaleY(5); - } - 60% { - opacity: 1; - transform: translate3d(0, -20px, 0) scaleY(0.9); - } - 75% { - transform: translate3d(0, 10px, 0) scaleY(0.95); - } - 90% { - transform: translate3d(0, -5px, 0) scaleY(0.985); - } - to { - transform: translateZ(0); - } -} -.animate__bounceInUp { - animation-name: bounceInUp; -} -@keyframes bounceOut { - 20% { - transform: scale3d(0.9, 0.9, 0.9); - } - 50%, - 55% { - opacity: 1; - transform: scale3d(1.1, 1.1, 1.1); - } - to { - opacity: 0; - transform: scale3d(0.3, 0.3, 0.3); - } -} -.animate__bounceOut { - animation-duration: 0.75s; - animation-duration: calc(var(--animate-duration) * 0.75); - animation-name: bounceOut; -} -@keyframes bounceOutDown { - 20% { - transform: translate3d(0, 10px, 0) scaleY(0.985); - } - 40%, - 45% { - opacity: 1; - transform: translate3d(0, -20px, 0) scaleY(0.9); - } - to { - opacity: 0; - transform: translate3d(0, 2000px, 0) scaleY(3); - } -} -.animate__bounceOutDown { - animation-name: bounceOutDown; -} -@keyframes bounceOutLeft { - 20% { - opacity: 1; - transform: translate3d(20px, 0, 0) scaleX(0.9); - } - to { - opacity: 0; - transform: translate3d(-2000px, 0, 0) scaleX(2); - } -} -.animate__bounceOutLeft { - animation-name: bounceOutLeft; -} -@keyframes bounceOutRight { - 20% { - opacity: 1; - transform: translate3d(-20px, 0, 0) scaleX(0.9); - } - to { - opacity: 0; - transform: translate3d(2000px, 0, 0) scaleX(2); - } -} -.animate__bounceOutRight { - animation-name: bounceOutRight; -} -@keyframes bounceOutUp { - 20% { - transform: translate3d(0, -10px, 0) scaleY(0.985); - } - 40%, - 45% { - opacity: 1; - transform: translate3d(0, 20px, 0) scaleY(0.9); - } - to { - opacity: 0; - transform: translate3d(0, -2000px, 0) scaleY(3); - } -} -.animate__bounceOutUp { - animation-name: bounceOutUp; -} -@keyframes fadeIn { - 0% { - opacity: 0; - } - to { - opacity: 1; - } -} -.animate__fadeIn { - animation-name: fadeIn; -} -@keyframes fadeInDown { - 0% { - opacity: 0; - transform: translate3d(0, -100%, 0); - } - to { - opacity: 1; - transform: translateZ(0); - } -} -.animate__fadeInDown { - animation-name: fadeInDown; -} -@keyframes fadeInDownBig { - 0% { - opacity: 0; - transform: translate3d(0, -2000px, 0); - } - to { - opacity: 1; - transform: translateZ(0); - } -} -.animate__fadeInDownBig { - animation-name: fadeInDownBig; -} -@keyframes fadeInLeft { - 0% { - opacity: 0; - transform: translate3d(-100%, 0, 0); - } - to { - opacity: 1; - transform: translateZ(0); - } -} -.animate__fadeInLeft { - animation-name: fadeInLeft; -} -@keyframes fadeInLeftBig { - 0% { - opacity: 0; - transform: translate3d(-2000px, 0, 0); - } - to { - opacity: 1; - transform: translateZ(0); - } -} -.animate__fadeInLeftBig { - animation-name: fadeInLeftBig; -} -@keyframes fadeInRight { - 0% { - opacity: 0; - transform: translate3d(100%, 0, 0); - } - to { - opacity: 1; - transform: translateZ(0); - } -} -.animate__fadeInRight { - animation-name: fadeInRight; -} -@keyframes fadeInRightBig { - 0% { - opacity: 0; - transform: translate3d(2000px, 0, 0); - } - to { - opacity: 1; - transform: translateZ(0); - } -} -.animate__fadeInRightBig { - animation-name: fadeInRightBig; -} -@keyframes fadeInUp { - 0% { - opacity: 0; - transform: translate3d(0, 100%, 0); - } - to { - opacity: 1; - transform: translateZ(0); - } -} -.animate__fadeInUp { - animation-name: fadeInUp; -} -@keyframes fadeInUpBig { - 0% { - opacity: 0; - transform: translate3d(0, 2000px, 0); - } - to { - opacity: 1; - transform: translateZ(0); - } -} -.animate__fadeInUpBig { - animation-name: fadeInUpBig; -} -@keyframes fadeInTopLeft { - 0% { - opacity: 0; - transform: translate3d(-100%, -100%, 0); - } - to { - opacity: 1; - transform: translateZ(0); - } -} -.animate__fadeInTopLeft { - animation-name: fadeInTopLeft; -} -@keyframes fadeInTopRight { - 0% { - opacity: 0; - transform: translate3d(100%, -100%, 0); - } - to { - opacity: 1; - transform: translateZ(0); - } -} -.animate__fadeInTopRight { - animation-name: fadeInTopRight; -} -@keyframes fadeInBottomLeft { - 0% { - opacity: 0; - transform: translate3d(-100%, 100%, 0); - } - to { - opacity: 1; - transform: translateZ(0); - } -} -.animate__fadeInBottomLeft { - animation-name: fadeInBottomLeft; -} -@keyframes fadeInBottomRight { - 0% { - opacity: 0; - transform: translate3d(100%, 100%, 0); - } - to { - opacity: 1; - transform: translateZ(0); - } -} -.animate__fadeInBottomRight { - animation-name: fadeInBottomRight; -} -@keyframes fadeOut { - 0% { - opacity: 1; - } - to { - opacity: 0; - } -} -.animate__fadeOut { - animation-name: fadeOut; -} -@keyframes fadeOutDown { - 0% { - opacity: 1; - } - to { - opacity: 0; - transform: translate3d(0, 100%, 0); - } -} -.animate__fadeOutDown { - animation-name: fadeOutDown; -} -@keyframes fadeOutDownBig { - 0% { - opacity: 1; - } - to { - opacity: 0; - transform: translate3d(0, 2000px, 0); - } -} -.animate__fadeOutDownBig { - animation-name: fadeOutDownBig; -} -@keyframes fadeOutLeft { - 0% { - opacity: 1; - } - to { - opacity: 0; - transform: translate3d(-100%, 0, 0); - } -} -.animate__fadeOutLeft { - animation-name: fadeOutLeft; -} -@keyframes fadeOutLeftBig { - 0% { - opacity: 1; - } - to { - opacity: 0; - transform: translate3d(-2000px, 0, 0); - } -} -.animate__fadeOutLeftBig { - animation-name: fadeOutLeftBig; -} -@keyframes fadeOutRight { - 0% { - opacity: 1; - } - to { - opacity: 0; - transform: translate3d(100%, 0, 0); - } -} -.animate__fadeOutRight { - animation-name: fadeOutRight; -} -@keyframes fadeOutRightBig { - 0% { - opacity: 1; - } - to { - opacity: 0; - transform: translate3d(2000px, 0, 0); - } -} -.animate__fadeOutRightBig { - animation-name: fadeOutRightBig; -} -@keyframes fadeOutUp { - 0% { - opacity: 1; - } - to { - opacity: 0; - transform: translate3d(0, -100%, 0); - } -} -.animate__fadeOutUp { - animation-name: fadeOutUp; -} -@keyframes fadeOutUpBig { - 0% { - opacity: 1; - } - to { - opacity: 0; - transform: translate3d(0, -2000px, 0); - } -} -.animate__fadeOutUpBig { - animation-name: fadeOutUpBig; -} -@keyframes fadeOutTopLeft { - 0% { - opacity: 1; - transform: translateZ(0); - } - to { - opacity: 0; - transform: translate3d(-100%, -100%, 0); - } -} -.animate__fadeOutTopLeft { - animation-name: fadeOutTopLeft; -} -@keyframes fadeOutTopRight { - 0% { - opacity: 1; - transform: translateZ(0); - } - to { - opacity: 0; - transform: translate3d(100%, -100%, 0); - } -} -.animate__fadeOutTopRight { - animation-name: fadeOutTopRight; -} -@keyframes fadeOutBottomRight { - 0% { - opacity: 1; - transform: translateZ(0); - } - to { - opacity: 0; - transform: translate3d(100%, 100%, 0); - } -} -.animate__fadeOutBottomRight { - animation-name: fadeOutBottomRight; -} -@keyframes fadeOutBottomLeft { - 0% { - opacity: 1; - transform: translateZ(0); - } - to { - opacity: 0; - transform: translate3d(-100%, 100%, 0); - } -} -.animate__fadeOutBottomLeft { - animation-name: fadeOutBottomLeft; -} -@keyframes flip { - 0% { - transform: perspective(400px) scaleX(1) translateZ(0) rotateY(-1turn); - animation-timing-function: ease-out; - } - 40% { - transform: perspective(400px) scaleX(1) translateZ(150px) rotateY(-190deg); - animation-timing-function: ease-out; - } - 50% { - transform: perspective(400px) scaleX(1) translateZ(150px) rotateY(-170deg); - animation-timing-function: ease-in; - } - 80% { - transform: perspective(400px) scale3d(0.95, 0.95, 0.95) translateZ(0) rotateY(0deg); - animation-timing-function: ease-in; - } - to { - transform: perspective(400px) scaleX(1) translateZ(0) rotateY(0deg); - animation-timing-function: ease-in; - } -} -.animate__animated.animate__flip { - backface-visibility: visible; - animation-name: flip; -} -@keyframes flipInX { - 0% { - transform: perspective(400px) rotateX(90deg); - animation-timing-function: ease-in; - opacity: 0; - } - 40% { - transform: perspective(400px) rotateX(-20deg); - animation-timing-function: ease-in; - } - 60% { - transform: perspective(400px) rotateX(10deg); - opacity: 1; - } - 80% { - transform: perspective(400px) rotateX(-5deg); - } - to { - transform: perspective(400px); - } -} -.animate__flipInX { - backface-visibility: visible !important; - animation-name: flipInX; -} -@keyframes flipInY { - 0% { - transform: perspective(400px) rotateY(90deg); - animation-timing-function: ease-in; - opacity: 0; - } - 40% { - transform: perspective(400px) rotateY(-20deg); - animation-timing-function: ease-in; - } - 60% { - transform: perspective(400px) rotateY(10deg); - opacity: 1; - } - 80% { - transform: perspective(400px) rotateY(-5deg); - } - to { - transform: perspective(400px); - } -} -.animate__flipInY { - backface-visibility: visible !important; - animation-name: flipInY; -} -@keyframes flipOutX { - 0% { - transform: perspective(400px); - } - 30% { - transform: perspective(400px) rotateX(-20deg); - opacity: 1; - } - to { - transform: perspective(400px) rotateX(90deg); - opacity: 0; - } -} -.animate__flipOutX { - animation-duration: 0.75s; - animation-duration: calc(var(--animate-duration) * 0.75); - animation-name: flipOutX; - backface-visibility: visible !important; -} -@keyframes flipOutY { - 0% { - transform: perspective(400px); - } - 30% { - transform: perspective(400px) rotateY(-15deg); - opacity: 1; - } - to { - transform: perspective(400px) rotateY(90deg); - opacity: 0; - } -} -.animate__flipOutY { - animation-duration: 0.75s; - animation-duration: calc(var(--animate-duration) * 0.75); - backface-visibility: visible !important; - animation-name: flipOutY; -} -@keyframes lightSpeedInRight { - 0% { - transform: translate3d(100%, 0, 0) skewX(-30deg); - opacity: 0; - } - 60% { - transform: skewX(20deg); - opacity: 1; - } - 80% { - transform: skewX(-5deg); - } - to { - transform: translateZ(0); - } -} -.animate__lightSpeedInRight { - animation-name: lightSpeedInRight; - animation-timing-function: ease-out; -} -@keyframes lightSpeedInLeft { - 0% { - transform: translate3d(-100%, 0, 0) skewX(30deg); - opacity: 0; - } - 60% { - transform: skewX(-20deg); - opacity: 1; - } - 80% { - transform: skewX(5deg); - } - to { - transform: translateZ(0); - } -} -.animate__lightSpeedInLeft { - animation-name: lightSpeedInLeft; - animation-timing-function: ease-out; -} -@keyframes lightSpeedOutRight { - 0% { - opacity: 1; - } - to { - transform: translate3d(100%, 0, 0) skewX(30deg); - opacity: 0; - } -} -.animate__lightSpeedOutRight { - animation-name: lightSpeedOutRight; - animation-timing-function: ease-in; -} -@keyframes lightSpeedOutLeft { - 0% { - opacity: 1; - } - to { - transform: translate3d(-100%, 0, 0) skewX(-30deg); - opacity: 0; - } -} -.animate__lightSpeedOutLeft { - animation-name: lightSpeedOutLeft; - animation-timing-function: ease-in; -} -@keyframes rotateIn { - 0% { - transform: rotate(-200deg); - opacity: 0; - } - to { - transform: translateZ(0); - opacity: 1; - } -} -.animate__rotateIn { - animation-name: rotateIn; - transform-origin: center; -} -@keyframes rotateInDownLeft { - 0% { - transform: rotate(-45deg); - opacity: 0; - } - to { - transform: translateZ(0); - opacity: 1; - } -} -.animate__rotateInDownLeft { - animation-name: rotateInDownLeft; - transform-origin: left bottom; -} -@keyframes rotateInDownRight { - 0% { - transform: rotate(45deg); - opacity: 0; - } - to { - transform: translateZ(0); - opacity: 1; - } -} -.animate__rotateInDownRight { - animation-name: rotateInDownRight; - transform-origin: right bottom; -} -@keyframes rotateInUpLeft { - 0% { - transform: rotate(45deg); - opacity: 0; - } - to { - transform: translateZ(0); - opacity: 1; - } -} -.animate__rotateInUpLeft { - animation-name: rotateInUpLeft; - transform-origin: left bottom; -} -@keyframes rotateInUpRight { - 0% { - transform: rotate(-90deg); - opacity: 0; - } - to { - transform: translateZ(0); - opacity: 1; - } -} -.animate__rotateInUpRight { - animation-name: rotateInUpRight; - transform-origin: right bottom; -} -@keyframes rotateOut { - 0% { - opacity: 1; - } - to { - transform: rotate(200deg); - opacity: 0; - } -} -.animate__rotateOut { - animation-name: rotateOut; - transform-origin: center; -} -@keyframes rotateOutDownLeft { - 0% { - opacity: 1; - } - to { - transform: rotate(45deg); - opacity: 0; - } -} -.animate__rotateOutDownLeft { - animation-name: rotateOutDownLeft; - transform-origin: left bottom; -} -@keyframes rotateOutDownRight { - 0% { - opacity: 1; - } - to { - transform: rotate(-45deg); - opacity: 0; - } -} -.animate__rotateOutDownRight { - animation-name: rotateOutDownRight; - transform-origin: right bottom; -} -@keyframes rotateOutUpLeft { - 0% { - opacity: 1; - } - to { - transform: rotate(-45deg); - opacity: 0; - } -} -.animate__rotateOutUpLeft { - animation-name: rotateOutUpLeft; - transform-origin: left bottom; -} -@keyframes rotateOutUpRight { - 0% { - opacity: 1; - } - to { - transform: rotate(90deg); - opacity: 0; - } -} -.animate__rotateOutUpRight { - animation-name: rotateOutUpRight; - transform-origin: right bottom; -} -@keyframes hinge { - 0% { - animation-timing-function: ease-in-out; - } - 20%, - 60% { - transform: rotate(80deg); - animation-timing-function: ease-in-out; - } - 40%, - 80% { - transform: rotate(60deg); - animation-timing-function: ease-in-out; - opacity: 1; - } - to { - transform: translate3d(0, 700px, 0); - opacity: 0; - } -} -.animate__hinge { - animation-duration: 2s; - animation-duration: calc(var(--animate-duration) * 2); - animation-name: hinge; - transform-origin: top left; -} -@keyframes jackInTheBox { - 0% { - opacity: 0; - transform: scale(0.1) rotate(30deg); - transform-origin: center bottom; - } - 50% { - transform: rotate(-10deg); - } - 70% { - transform: rotate(3deg); - } - to { - opacity: 1; - transform: scale(1); - } -} -.animate__jackInTheBox { - animation-name: jackInTheBox; -} -@keyframes rollIn { - 0% { - opacity: 0; - transform: translate3d(-100%, 0, 0) rotate(-120deg); - } - to { - opacity: 1; - transform: translateZ(0); - } -} -.animate__rollIn { - animation-name: rollIn; -} -@keyframes rollOut { - 0% { - opacity: 1; - } - to { - opacity: 0; - transform: translate3d(100%, 0, 0) rotate(120deg); - } -} -.animate__rollOut { - animation-name: rollOut; -} -@keyframes zoomIn { - 0% { - opacity: 0; - transform: scale3d(0.3, 0.3, 0.3); - } - 50% { - opacity: 1; - } -} -.animate__zoomIn { - animation-name: zoomIn; -} -@keyframes zoomInDown { - 0% { - opacity: 0; - transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0); - animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); - } - 60% { - opacity: 1; - transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); - animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); - } -} -.animate__zoomInDown { - animation-name: zoomInDown; -} -@keyframes zoomInLeft { - 0% { - opacity: 0; - transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0); - animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); - } - 60% { - opacity: 1; - transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0); - animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); - } -} -.animate__zoomInLeft { - animation-name: zoomInLeft; -} -@keyframes zoomInRight { - 0% { - opacity: 0; - transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0); - animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); - } - 60% { - opacity: 1; - transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0); - animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); - } -} -.animate__zoomInRight { - animation-name: zoomInRight; -} -@keyframes zoomInUp { - 0% { - opacity: 0; - transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0); - animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); - } - 60% { - opacity: 1; - transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); - animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); - } -} -.animate__zoomInUp { - animation-name: zoomInUp; -} -@keyframes zoomOut { - 0% { - opacity: 1; - } - 50% { - opacity: 0; - transform: scale3d(0.3, 0.3, 0.3); - } - to { - opacity: 0; - } -} -.animate__zoomOut { - animation-name: zoomOut; -} -@keyframes zoomOutDown { - 40% { - opacity: 1; - transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); - animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); - } - to { - opacity: 0; - transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0); - animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); - } -} -.animate__zoomOutDown { - animation-name: zoomOutDown; - transform-origin: center bottom; -} -@keyframes zoomOutLeft { - 40% { - opacity: 1; - transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0); - } - to { - opacity: 0; - transform: scale(0.1) translate3d(-2000px, 0, 0); - } -} -.animate__zoomOutLeft { - animation-name: zoomOutLeft; - transform-origin: left center; -} -@keyframes zoomOutRight { - 40% { - opacity: 1; - transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0); - } - to { - opacity: 0; - transform: scale(0.1) translate3d(2000px, 0, 0); - } -} -.animate__zoomOutRight { - animation-name: zoomOutRight; - transform-origin: right center; -} -@keyframes zoomOutUp { - 40% { - opacity: 1; - transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); - animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); - } - to { - opacity: 0; - transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0); - animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); - } -} -.animate__zoomOutUp { - animation-name: zoomOutUp; - transform-origin: center bottom; -} -@keyframes slideInDown { - 0% { - transform: translate3d(0, -100%, 0); - visibility: visible; - } - to { - transform: translateZ(0); - } -} -.animate__slideInDown { - animation-name: slideInDown; -} -@keyframes slideInLeft { - 0% { - transform: translate3d(-100%, 0, 0); - visibility: visible; - } - to { - transform: translateZ(0); - } -} -.animate__slideInLeft { - animation-name: slideInLeft; -} -@keyframes slideInRight { - 0% { - transform: translate3d(100%, 0, 0); - visibility: visible; - } - to { - transform: translateZ(0); - } -} -.animate__slideInRight { - animation-name: slideInRight; -} -@keyframes slideInUp { - 0% { - transform: translate3d(0, 100%, 0); - visibility: visible; - } - to { - transform: translateZ(0); - } -} -.animate__slideInUp { - animation-name: slideInUp; -} -@keyframes slideOutDown { - 0% { - transform: translateZ(0); - } - to { - visibility: hidden; - transform: translate3d(0, 100%, 0); - } -} -.animate__slideOutDown { - animation-name: slideOutDown; -} -@keyframes slideOutLeft { - 0% { - transform: translateZ(0); - } - to { - visibility: hidden; - transform: translate3d(-100%, 0, 0); - } -} -.animate__slideOutLeft { - animation-name: slideOutLeft; -} -@keyframes slideOutRight { - 0% { - transform: translateZ(0); - } - to { - visibility: hidden; - transform: translate3d(100%, 0, 0); - } -} -.animate__slideOutRight { - animation-name: slideOutRight; -} -@keyframes slideOutUp { - 0% { - transform: translateZ(0); - } - to { - visibility: hidden; - transform: translate3d(0, -100%, 0); - } -} -.animate__slideOutUp { - animation-name: slideOutUp; -} -body { - /* background-color: #000; */ -} - -.n-popover:has(.music-play) { - border-radius: 1.5rem !important; -} -@font-face { - font-family: "v-sans"; - font-weight: 400; - src: url("./LatoLatin-Regular-Dmlz1U0B.woff2"); -} - -@font-face { - font-family: "v-sans"; - font-weight: 600; - src: url("./LatoLatin-Semibold-Dbk81p2D.woff2"); -}@font-face { - font-family: "v-mono"; - font-weight: 400; - src: url("./FiraCode-Regular-CRwVj4V2.woff2"); -}/* ./src/index.css */ - -/*! @import */ - -*, ::before, ::after { - --tw-border-spacing-x: 0; - --tw-border-spacing-y: 0; - --tw-translate-x: 0; - --tw-translate-y: 0; - --tw-rotate: 0; - --tw-skew-x: 0; - --tw-skew-y: 0; - --tw-scale-x: 1; - --tw-scale-y: 1; - --tw-pan-x: ; - --tw-pan-y: ; - --tw-pinch-zoom: ; - --tw-scroll-snap-strictness: proximity; - --tw-gradient-from-position: ; - --tw-gradient-via-position: ; - --tw-gradient-to-position: ; - --tw-ordinal: ; - --tw-slashed-zero: ; - --tw-numeric-figure: ; - --tw-numeric-spacing: ; - --tw-numeric-fraction: ; - --tw-ring-inset: ; - --tw-ring-offset-width: 0px; - --tw-ring-offset-color: #fff; - --tw-ring-color: rgb(59 130 246 / 0.5); - --tw-ring-offset-shadow: 0 0 #0000; - --tw-ring-shadow: 0 0 #0000; - --tw-shadow: 0 0 #0000; - --tw-shadow-colored: 0 0 #0000; - --tw-blur: ; - --tw-brightness: ; - --tw-contrast: ; - --tw-grayscale: ; - --tw-hue-rotate: ; - --tw-invert: ; - --tw-saturate: ; - --tw-sepia: ; - --tw-drop-shadow: ; - --tw-backdrop-blur: ; - --tw-backdrop-brightness: ; - --tw-backdrop-contrast: ; - --tw-backdrop-grayscale: ; - --tw-backdrop-hue-rotate: ; - --tw-backdrop-invert: ; - --tw-backdrop-opacity: ; - --tw-backdrop-saturate: ; - --tw-backdrop-sepia: ; - --tw-contain-size: ; - --tw-contain-layout: ; - --tw-contain-paint: ; - --tw-contain-style: ; -} - -::backdrop { - --tw-border-spacing-x: 0; - --tw-border-spacing-y: 0; - --tw-translate-x: 0; - --tw-translate-y: 0; - --tw-rotate: 0; - --tw-skew-x: 0; - --tw-skew-y: 0; - --tw-scale-x: 1; - --tw-scale-y: 1; - --tw-pan-x: ; - --tw-pan-y: ; - --tw-pinch-zoom: ; - --tw-scroll-snap-strictness: proximity; - --tw-gradient-from-position: ; - --tw-gradient-via-position: ; - --tw-gradient-to-position: ; - --tw-ordinal: ; - --tw-slashed-zero: ; - --tw-numeric-figure: ; - --tw-numeric-spacing: ; - --tw-numeric-fraction: ; - --tw-ring-inset: ; - --tw-ring-offset-width: 0px; - --tw-ring-offset-color: #fff; - --tw-ring-color: rgb(59 130 246 / 0.5); - --tw-ring-offset-shadow: 0 0 #0000; - --tw-ring-shadow: 0 0 #0000; - --tw-shadow: 0 0 #0000; - --tw-shadow-colored: 0 0 #0000; - --tw-blur: ; - --tw-brightness: ; - --tw-contrast: ; - --tw-grayscale: ; - --tw-hue-rotate: ; - --tw-invert: ; - --tw-saturate: ; - --tw-sepia: ; - --tw-drop-shadow: ; - --tw-backdrop-blur: ; - --tw-backdrop-brightness: ; - --tw-backdrop-contrast: ; - --tw-backdrop-grayscale: ; - --tw-backdrop-hue-rotate: ; - --tw-backdrop-invert: ; - --tw-backdrop-opacity: ; - --tw-backdrop-saturate: ; - --tw-backdrop-sepia: ; - --tw-contain-size: ; - --tw-contain-layout: ; - --tw-contain-paint: ; - --tw-contain-style: ; -} - -/* ! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com */ - -/* -1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4) -2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116) -*/ - -*, -::before, -::after { - box-sizing: border-box; /* 1 */ - border-width: 0; /* 2 */ - border-style: solid; /* 2 */ - border-color: #e5e7eb; /* 2 */ -} - -::before, -::after { - --tw-content: ''; -} - -/* -1. Use a consistent sensible line-height in all browsers. -2. Prevent adjustments of font size after orientation changes in iOS. -3. Use a more readable tab size. -4. Use the user's configured `sans` font-family by default. -5. Use the user's configured `sans` font-feature-settings by default. -6. Use the user's configured `sans` font-variation-settings by default. -7. Disable tap highlights on iOS -*/ - -html, -:host { - line-height: 1.5; /* 1 */ - -webkit-text-size-adjust: 100%; /* 2 */ - -moz-tab-size: 4; /* 3 */ - -o-tab-size: 4; - tab-size: 4; /* 3 */ - font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; /* 4 */ - font-feature-settings: normal; /* 5 */ - font-variation-settings: normal; /* 6 */ - -webkit-tap-highlight-color: transparent; /* 7 */ -} - -/* -1. Remove the margin in all browsers. -2. Inherit line-height from `html` so users can set them as a class directly on the `html` element. -*/ - -body { - margin: 0; /* 1 */ - line-height: inherit; /* 2 */ -} - -/* -1. Add the correct height in Firefox. -2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655) -3. Ensure horizontal rules are visible by default. -*/ - -hr { - height: 0; /* 1 */ - color: inherit; /* 2 */ - border-top-width: 1px; /* 3 */ -} - -/* -Add the correct text decoration in Chrome, Edge, and Safari. -*/ - -abbr:where([title]) { - -webkit-text-decoration: underline dotted; - text-decoration: underline dotted; -} - -/* -Remove the default font size and weight for headings. -*/ - -h1, -h2, -h3, -h4, -h5, -h6 { - font-size: inherit; - font-weight: inherit; -} - -/* -Reset links to optimize for opt-in styling instead of opt-out. -*/ - -a { - color: inherit; - text-decoration: inherit; -} - -/* -Add the correct font weight in Edge and Safari. -*/ - -b, -strong { - font-weight: bolder; -} - -/* -1. Use the user's configured `mono` font-family by default. -2. Use the user's configured `mono` font-feature-settings by default. -3. Use the user's configured `mono` font-variation-settings by default. -4. Correct the odd `em` font sizing in all browsers. -*/ - -code, -kbd, -samp, -pre { - font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; /* 1 */ - font-feature-settings: normal; /* 2 */ - font-variation-settings: normal; /* 3 */ - font-size: 1em; /* 4 */ -} - -/* -Add the correct font size in all browsers. -*/ - -small { - font-size: 80%; -} - -/* -Prevent `sub` and `sup` elements from affecting the line height in all browsers. -*/ - -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; -} - -sub { - bottom: -0.25em; -} - -sup { - top: -0.5em; -} - -/* -1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297) -2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016) -3. Remove gaps between table borders by default. -*/ - -table { - text-indent: 0; /* 1 */ - border-color: inherit; /* 2 */ - border-collapse: collapse; /* 3 */ -} - -/* -1. Change the font styles in all browsers. -2. Remove the margin in Firefox and Safari. -3. Remove default padding in all browsers. -*/ - -button, -input, -optgroup, -select, -textarea { - font-family: inherit; /* 1 */ - font-feature-settings: inherit; /* 1 */ - font-variation-settings: inherit; /* 1 */ - font-size: 100%; /* 1 */ - font-weight: inherit; /* 1 */ - line-height: inherit; /* 1 */ - letter-spacing: inherit; /* 1 */ - color: inherit; /* 1 */ - margin: 0; /* 2 */ - padding: 0; /* 3 */ -} - -/* -Remove the inheritance of text transform in Edge and Firefox. -*/ - -button, -select { - text-transform: none; -} - -/* -1. Correct the inability to style clickable types in iOS and Safari. -2. Remove default button styles. -*/ - -button, -input:where([type='button']), -input:where([type='reset']), -input:where([type='submit']) { - -webkit-appearance: button; /* 1 */ - background-color: transparent; /* 2 */ - background-image: none; /* 2 */ -} - -/* -Use the modern Firefox focus style for all focusable elements. -*/ - -:-moz-focusring { - outline: auto; -} - -/* -Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737) -*/ - -:-moz-ui-invalid { - box-shadow: none; -} - -/* -Add the correct vertical alignment in Chrome and Firefox. -*/ - -progress { - vertical-align: baseline; -} - -/* -Correct the cursor style of increment and decrement buttons in Safari. -*/ - -::-webkit-inner-spin-button, -::-webkit-outer-spin-button { - height: auto; -} - -/* -1. Correct the odd appearance in Chrome and Safari. -2. Correct the outline style in Safari. -*/ - -[type='search'] { - -webkit-appearance: textfield; /* 1 */ - outline-offset: -2px; /* 2 */ -} - -/* -Remove the inner padding in Chrome and Safari on macOS. -*/ - -::-webkit-search-decoration { - -webkit-appearance: none; -} - -/* -1. Correct the inability to style clickable types in iOS and Safari. -2. Change font properties to `inherit` in Safari. -*/ - -::-webkit-file-upload-button { - -webkit-appearance: button; /* 1 */ - font: inherit; /* 2 */ -} - -/* -Add the correct display in Chrome and Safari. -*/ - -summary { - display: list-item; -} - -/* -Removes the default spacing and border for appropriate elements. -*/ - -blockquote, -dl, -dd, -h1, -h2, -h3, -h4, -h5, -h6, -hr, -figure, -p, -pre { - margin: 0; -} - -fieldset { - margin: 0; - padding: 0; -} - -legend { - padding: 0; -} - -ol, -ul, -menu { - list-style: none; - margin: 0; - padding: 0; -} - -/* -Reset default styling for dialogs. -*/ - -dialog { - padding: 0; -} - -/* -Prevent resizing textareas horizontally by default. -*/ - -textarea { - resize: vertical; -} - -/* -1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300) -2. Set the default placeholder color to the user's configured gray 400 color. -*/ - -input::-moz-placeholder, textarea::-moz-placeholder { - opacity: 1; /* 1 */ - color: #9ca3af; /* 2 */ -} - -input::placeholder, -textarea::placeholder { - opacity: 1; /* 1 */ - color: #9ca3af; /* 2 */ -} - -/* -Set the default cursor for buttons. -*/ - -button, -[role="button"] { - cursor: pointer; -} - -/* -Make sure disabled buttons don't get the pointer cursor. -*/ - -:disabled { - cursor: default; -} - -/* -1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14) -2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210) - This can trigger a poorly considered lint error in some tools but is included by design. -*/ - -img, -svg, -video, -canvas, -audio, -iframe, -embed, -object { - display: block; /* 1 */ - vertical-align: middle; /* 2 */ -} - -/* -Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14) -*/ - -img, -video { - max-width: 100%; - height: auto; -} - -/* Make elements with the HTML hidden attribute stay hidden by default */ - -[hidden]:where(:not([hidden="until-found"])) { - display: none; -} - -.container { - width: 100%; -} - -@media (min-width: 640px) { - - .container { - max-width: 640px; - } -} - -@media (min-width: 768px) { - - .container { - max-width: 768px; - } -} - -@media (min-width: 1024px) { - - .container { - max-width: 1024px; - } -} - -@media (min-width: 1280px) { - - .container { - max-width: 1280px; - } -} - -@media (min-width: 1536px) { - - .container { - max-width: 1536px; - } -} - -.visible { - visibility: visible; -} - -.invisible { - visibility: hidden; -} - -.fixed { - position: fixed; -} - -.absolute { - position: absolute; -} - -.relative { - position: relative; -} - -.inset-0 { - inset: 0px; -} - -.bottom-0 { - bottom: 0px; -} - -.bottom-\[30px\] { - bottom: 30px; -} - -.left-0 { - left: 0px; -} - -.left-1\/2 { - left: 50%; -} - -.left-2 { - left: 0.5rem; -} - -.right-0 { - right: 0px; -} - -.right-2 { - right: 0.5rem; -} - -.right-4 { - right: 1rem; -} - -.top-0 { - top: 0px; -} - -.top-1\/2 { - top: 50%; -} - -.top-2 { - top: 0.5rem; -} - -.top-4 { - top: 1rem; -} - -.z-10 { - z-index: 10; -} - -.mx-0 { - margin-left: 0px; - margin-right: 0px; -} - -.mx-2 { - margin-left: 0.5rem; - margin-right: 0.5rem; -} - -.mx-4 { - margin-left: 1rem; - margin-right: 1rem; -} - -.mx-6 { - margin-left: 1.5rem; - margin-right: 1.5rem; -} - -.my-2 { - margin-top: 0.5rem; - margin-bottom: 0.5rem; -} - -.my-4 { - margin-top: 1rem; - margin-bottom: 1rem; -} - -.mb-0 { - margin-bottom: 0px; -} - -.mb-2 { - margin-bottom: 0.5rem; -} - -.mb-3 { - margin-bottom: 0.75rem; -} - -.mb-4 { - margin-bottom: 1rem; -} - -.mb-6 { - margin-bottom: 1.5rem; -} - -.ml-1 { - margin-left: 0.25rem; -} - -.ml-2 { - margin-left: 0.5rem; -} - -.ml-3 { - margin-left: 0.75rem; -} - -.ml-4 { - margin-left: 1rem; -} - -.ml-auto { - margin-left: auto; -} - -.mr-0 { - margin-right: 0px; -} - -.mr-1 { - margin-right: 0.25rem; -} - -.mr-16 { - margin-right: 4rem; -} - -.mr-2 { - margin-right: 0.5rem; -} - -.mr-3 { - margin-right: 0.75rem; -} - -.mr-4 { - margin-right: 1rem; -} - -.mr-5 { - margin-right: 1.25rem; -} - -.mr-6 { - margin-right: 1.5rem; -} - -.mt-1 { - margin-top: 0.25rem; -} - -.mt-10 { - margin-top: 2.5rem; -} - -.mt-2 { - margin-top: 0.5rem; -} - -.mt-4 { - margin-top: 1rem; -} - -.mt-40 { - margin-top: 10rem; -} - -.mt-6 { - margin-top: 1.5rem; -} - -.box-border { - box-sizing: border-box; -} - -.block { - display: block; -} - -.inline-block { - display: inline-block; -} - -.flex { - display: flex; -} - -.inline-flex { - display: inline-flex; -} - -.table { - display: table; -} - -.grid { - display: grid; -} - -.hidden { - display: none; -} - -.aspect-square { - aspect-ratio: 1 / 1; -} - -.h-1 { - height: 0.25rem; -} - -.h-10 { - height: 2.5rem; -} - -.h-12 { - height: 3rem; -} - -.h-14 { - height: 3.5rem; -} - -.h-20 { - height: 5rem; -} - -.h-24 { - height: 6rem; -} - -.h-32 { - height: 8rem; -} - -.h-7 { - height: 1.75rem; -} - -.h-8 { - height: 2rem; -} - -.h-9 { - height: 2.25rem; -} - -.h-\[100px\] { - height: 100px; -} - -.h-\[180px\] { - height: 180px; -} - -.h-\[300px\] { - height: 300px; -} - -.h-\[calc\(100\%-60px\)\] { - height: calc(100% - 60px); -} - -.h-full { - height: 100%; -} - -.h-screen { - height: 100vh; -} - -.min-h-0 { - min-height: 0px; -} - -.min-h-\[250px\] { - min-height: 250px; -} - -.min-h-\[calc\(80vh-60px\)\] { - min-height: calc(80vh - 60px); -} - -.w-10 { - width: 2.5rem; -} - -.w-12 { - width: 3rem; -} - -.w-14 { - width: 3.5rem; -} - -.w-2\/5 { - width: 40%; -} - -.w-20 { - width: 5rem; -} - -.w-24 { - width: 6rem; -} - -.w-32 { - width: 8rem; -} - -.w-40 { - width: 10rem; -} - -.w-7 { - width: 1.75rem; -} - -.w-8 { - width: 2rem; -} - -.w-9 { - width: 2.25rem; -} - -.w-\[100px\] { - width: 100px; -} - -.w-\[160px\] { - width: 160px; -} - -.w-\[200px\] { - width: 200px; -} - -.w-\[25\%\] { - width: 25%; -} - -.w-full { - width: 100%; -} - -.w-screen { - width: 100vw; -} - -.min-w-0 { - min-width: 0px; -} - -.min-w-\[280px\] { - min-width: 280px; -} - -.min-w-\[60px\] { - min-width: 60px; -} - -.max-w-\[45\%\] { - max-width: 45%; -} - -.flex-1 { - flex: 1 1 0%; -} - -.flex-shrink-0 { - flex-shrink: 0; -} - -.flex-grow { - flex-grow: 1; -} - -.-translate-x-1\/2 { - --tw-translate-x: -50%; - transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); -} - -.-translate-y-1\/2 { - --tw-translate-y: -50%; - transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); -} - -.scale-105 { - --tw-scale-x: 1.05; - --tw-scale-y: 1.05; - transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); -} - -.scale-150 { - --tw-scale-x: 1.5; - --tw-scale-y: 1.5; - transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); -} - -.transform { - transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); -} - -.cursor-none { - cursor: none; -} - -.cursor-pointer { - cursor: pointer; -} - -.select-none { - -webkit-user-select: none; - -moz-user-select: none; - user-select: none; -} - -.resize { - resize: both; -} - -.list-inside { - list-style-position: inside; -} - -.list-decimal { - list-style-type: decimal; -} - -.list-disc { - list-style-type: disc; -} - -.grid-cols-2 { - grid-template-columns: repeat(2, minmax(0, 1fr)); -} - -.grid-rows-3 { - grid-template-rows: repeat(3, minmax(0, 1fr)); -} - -.flex-col { - flex-direction: column; -} - -.items-center { - align-items: center; -} - -.justify-center { - justify-content: center; -} - -.justify-between { - justify-content: space-between; -} - -.justify-around { - justify-content: space-around; -} - -.gap-10 { - gap: 2.5rem; -} - -.gap-2 { - gap: 0.5rem; -} - -.gap-3 { - gap: 0.75rem; -} - -.gap-4 { - gap: 1rem; -} - -.gap-x-8 { - -moz-column-gap: 2rem; - column-gap: 2rem; -} - -.gap-y-6 { - row-gap: 1.5rem; -} - -.space-y-2 > :not([hidden]) ~ :not([hidden]) { - --tw-space-y-reverse: 0; - margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse))); - margin-bottom: calc(0.5rem * var(--tw-space-y-reverse)); -} - -.overflow-hidden { - overflow: hidden; -} - -.overflow-x-auto { - overflow-x: auto; -} - -.text-ellipsis { - text-overflow: ellipsis; -} - -.rounded { - border-radius: 0.25rem; -} - -.rounded-2xl { - border-radius: 1rem; -} - -.rounded-3xl { - border-radius: 1.5rem; -} - -.rounded-full { - border-radius: 9999px; -} - -.rounded-lg { - border-radius: 0.5rem; -} - -.rounded-xl { - border-radius: 0.75rem; -} - -.rounded-b-none { - border-bottom-right-radius: 0px; - border-bottom-left-radius: 0px; -} - -.border { - border-width: 1px; -} - -.border-2 { - border-width: 2px; -} - -.border-b { - border-bottom-width: 1px; -} - -.border-l-4 { - border-left-width: 4px; -} - -.border-t { - border-top-width: 1px; -} - -.border-gray-100 { - --tw-border-opacity: 1; - border-color: rgb(243 244 246 / var(--tw-border-opacity, 1)); -} - -.border-gray-200 { - --tw-border-opacity: 1; - border-color: rgb(229 231 235 / var(--tw-border-opacity, 1)); -} - -.border-gray-400 { - --tw-border-opacity: 1; - border-color: rgb(156 163 175 / var(--tw-border-opacity, 1)); -} - -.border-green-500 { - --tw-border-opacity: 1; - border-color: rgb(34 197 94 / var(--tw-border-opacity, 1)); -} - -.bg-black { - --tw-bg-opacity: 1; - background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1)); -} - -.bg-gray-100 { - --tw-bg-opacity: 1; - background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1)); -} - -.bg-gray-300 { - --tw-bg-opacity: 1; - background-color: rgb(209 213 219 / var(--tw-bg-opacity, 1)); -} - -.bg-gray-50 { - --tw-bg-opacity: 1; - background-color: rgb(249 250 251 / var(--tw-bg-opacity, 1)); -} - -.bg-gray-500 { - --tw-bg-opacity: 1; - background-color: rgb(107 114 128 / var(--tw-bg-opacity, 1)); -} - -.bg-gray-800 { - --tw-bg-opacity: 1; - background-color: rgb(31 41 55 / var(--tw-bg-opacity, 1)); -} - -.bg-gray-900 { - --tw-bg-opacity: 1; - background-color: rgb(17 24 39 / var(--tw-bg-opacity, 1)); -} - -.bg-green-50 { - --tw-bg-opacity: 1; - background-color: rgb(240 253 244 / var(--tw-bg-opacity, 1)); -} - -.bg-green-500 { - --tw-bg-opacity: 1; - background-color: rgb(34 197 94 / var(--tw-bg-opacity, 1)); -} - -.bg-green-600 { - --tw-bg-opacity: 1; - background-color: rgb(22 163 74 / var(--tw-bg-opacity, 1)); -} - -.bg-light { - --tw-bg-opacity: 1; - background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1)); -} - -.bg-light-100 { - --tw-bg-opacity: 1; - background-color: rgb(248 249 250 / var(--tw-bg-opacity, 1)); -} - -.bg-transparent { - background-color: transparent; -} - -.bg-opacity-10 { - --tw-bg-opacity: 0.1; -} - -.bg-opacity-20 { - --tw-bg-opacity: 0.2; -} - -.bg-opacity-50 { - --tw-bg-opacity: 0.5; -} - -.bg-opacity-60 { - --tw-bg-opacity: 0.6; -} - -.bg-opacity-75 { - --tw-bg-opacity: 0.75; -} - -.bg-opacity-90 { - --tw-bg-opacity: 0.9; -} - -.bg-cover { - background-size: cover; -} - -.bg-center { - background-position: center; -} - -.bg-no-repeat { - background-repeat: no-repeat; -} - -.object-contain { - -o-object-fit: contain; - object-fit: contain; -} - -.object-cover { - -o-object-fit: cover; - object-fit: cover; -} - -.p-0 { - padding: 0px; -} - -.p-2 { - padding: 0.5rem; -} - -.p-20 { - padding: 5rem; -} - -.p-3 { - padding: 0.75rem; -} - -.p-4 { - padding: 1rem; -} - -.p-5 { - padding: 1.25rem; -} - -.p-6 { - padding: 1.5rem; -} - -.px-0 { - padding-left: 0px; - padding-right: 0px; -} - -.px-1\.5 { - padding-left: 0.375rem; - padding-right: 0.375rem; -} - -.px-2 { - padding-left: 0.5rem; - padding-right: 0.5rem; -} - -.px-24 { - padding-left: 6rem; - padding-right: 6rem; -} - -.px-3 { - padding-left: 0.75rem; - padding-right: 0.75rem; -} - -.px-4 { - padding-left: 1rem; - padding-right: 1rem; -} - -.px-6 { - padding-left: 1.5rem; - padding-right: 1.5rem; -} - -.px-8 { - padding-left: 2rem; - padding-right: 2rem; -} - -.py-0\.5 { - padding-top: 0.125rem; - padding-bottom: 0.125rem; -} - -.py-1 { - padding-top: 0.25rem; - padding-bottom: 0.25rem; -} - -.py-2 { - padding-top: 0.5rem; - padding-bottom: 0.5rem; -} - -.py-3 { - padding-top: 0.75rem; - padding-bottom: 0.75rem; -} - -.py-4 { - padding-top: 1rem; - padding-bottom: 1rem; -} - -.pb-1 { - padding-bottom: 0.25rem; -} - -.pb-2 { - padding-bottom: 0.5rem; -} - -.pb-20 { - padding-bottom: 5rem; -} - -.pb-28 { - padding-bottom: 7rem; -} - -.pb-4 { - padding-bottom: 1rem; -} - -.pl-4 { - padding-left: 1rem; -} - -.pr-0 { - padding-right: 0px; -} - -.pr-3 { - padding-right: 0.75rem; -} - -.pr-8 { - padding-right: 2rem; -} - -.pt-2 { - padding-top: 0.5rem; -} - -.pt-6 { - padding-top: 1.5rem; -} - -.pt-8 { - padding-top: 2rem; -} - -.text-center { - text-align: center; -} - -.text-2xl { - font-size: 1.5rem; - line-height: 2rem; -} - -.text-3xl { - font-size: 1.875rem; - line-height: 2.25rem; -} - -.text-4xl { - font-size: 2.25rem; - line-height: 2.5rem; -} - -.text-5xl { - font-size: 3rem; - line-height: 1; -} - -.text-base { - font-size: 1rem; - line-height: 1.5rem; -} - -.text-lg { - font-size: 1.125rem; - line-height: 1.75rem; -} - -.text-sm { - font-size: 0.875rem; - line-height: 1.25rem; -} - -.text-xl { - font-size: 1.25rem; - line-height: 1.75rem; -} - -.text-xs { - font-size: 0.75rem; - line-height: 1rem; -} - -.font-bold { - font-weight: 700; -} - -.font-medium { - font-weight: 500; -} - -.leading-relaxed { - line-height: 1.625; -} - -.text-dark { - --tw-text-opacity: 1; - color: rgb(0 0 0 / var(--tw-text-opacity, 1)); -} - -.text-gray-100 { - --tw-text-opacity: 1; - color: rgb(243 244 246 / var(--tw-text-opacity, 1)); -} - -.text-gray-200 { - --tw-text-opacity: 1; - color: rgb(229 231 235 / var(--tw-text-opacity, 1)); -} - -.text-gray-300 { - --tw-text-opacity: 1; - color: rgb(209 213 219 / var(--tw-text-opacity, 1)); -} - -.text-gray-400 { - --tw-text-opacity: 1; - color: rgb(156 163 175 / var(--tw-text-opacity, 1)); -} - -.text-gray-500 { - --tw-text-opacity: 1; - color: rgb(107 114 128 / var(--tw-text-opacity, 1)); -} - -.text-gray-600 { - --tw-text-opacity: 1; - color: rgb(75 85 99 / var(--tw-text-opacity, 1)); -} - -.text-gray-700 { - --tw-text-opacity: 1; - color: rgb(55 65 81 / var(--tw-text-opacity, 1)); -} - -.text-gray-800 { - --tw-text-opacity: 1; - color: rgb(31 41 55 / var(--tw-text-opacity, 1)); -} - -.text-gray-900 { - --tw-text-opacity: 1; - color: rgb(17 24 39 / var(--tw-text-opacity, 1)); -} - -.text-green-500 { - --tw-text-opacity: 1; - color: rgb(34 197 94 / var(--tw-text-opacity, 1)); -} - -.text-red-500 { - --tw-text-opacity: 1; - color: rgb(239 68 68 / var(--tw-text-opacity, 1)); -} - -.text-white { - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity, 1)); -} - -.placeholder-gray-500::-moz-placeholder { - --tw-placeholder-opacity: 1; - color: rgb(107 114 128 / var(--tw-placeholder-opacity, 1)); -} - -.placeholder-gray-500::placeholder { - --tw-placeholder-opacity: 1; - color: rgb(107 114 128 / var(--tw-placeholder-opacity, 1)); -} - -.opacity-0 { - opacity: 0; -} - -.opacity-100 { - opacity: 1; -} - -.shadow-2xl { - --tw-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25); - --tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color); - box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); -} - -.shadow-lg { - --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1); - --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color); - box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); -} - -.blur { - --tw-blur: blur(8px); - filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); -} - -.filter { - filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); -} - -.backdrop-filter { - -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia); - backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia); -} - -.transition { - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter; - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter; - transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - transition-duration: 150ms; -} - -.transition-all { - transition-property: all; - transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - transition-duration: 150ms; -} - -.transition-colors { - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke; - transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - transition-duration: 150ms; -} - -.transition-opacity { - transition-property: opacity; - transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - transition-duration: 150ms; -} - -.duration-200 { - transition-duration: 200ms; -} - -.duration-300 { - transition-duration: 300ms; -} - -.duration-500 { - transition-duration: 500ms; -} - -.ease-in-out { - transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); -} - -.n-image img { - background-color: #111111; - width: 100%; -} - -.n-slider-handle-indicator--top { - margin-bottom: 0px !important; - background-color: transparent !important; - padding-left: 0.5rem !important; - padding-right: 0.5rem !important; - padding-top: 0.25rem !important; - padding-bottom: 0.25rem !important; - font-size: 1.5rem !important; - line-height: 2rem !important; - color: #000000dd !important; - --tw-shadow: 0 0 #0000 !important; - --tw-shadow-colored: 0 0 #0000 !important; - box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow) !important; -} - -.n-slider-handle-indicator--top:is(.dark *) { - color: #ffffffdd !important; -} - -.text-el { - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; -} - -.theme-dark { - --bg-color: #000; - --text-color: #fff; - --bg-color-100: #161616; - --bg-color-200: #2d2d2d; - --bg-color-300: #3d3d3d; - --text-color: #f8f9fa; - --text-color-100: #e9ecef; - --text-color-200: #dee2e6; - --text-color-300: #dde0e3; - --primary-color: #22c55e; -} - -.theme-light { - --bg-color: #fff; - --bg-color-100: #f8f9fa; - --bg-color-200: #e9ecef; - --bg-color-300: #dee2e6; - --text-color: #000; - --text-color-100: #161616; - --text-color-200: #2d2d2d; - --text-color-300: #3d3d3d; - --primary-color: #22c55e; -} - -.theme-gray { - --bg-color: #f8f9fa; - --bg-color-100: #e9ecef; - --bg-color-200: #dee2e6; - --bg-color-300: #dde0e3; - --text-color: #000; - --text-color-100: #161616; - --text-color-200: #2d2d2d; - --text-color-300: #3d3d3d; - --primary-color: #22c55e; -} - -.hover\:-translate-y-0\.5:hover { - --tw-translate-y: -0.125rem; - transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); -} - -.hover\:scale-110:hover { - --tw-scale-x: 1.1; - --tw-scale-y: 1.1; - transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); -} - -.hover\:border-gray-400:hover { - --tw-border-opacity: 1; - border-color: rgb(156 163 175 / var(--tw-border-opacity, 1)); -} - -.hover\:border-red-500:hover { - --tw-border-opacity: 1; - border-color: rgb(239 68 68 / var(--tw-border-opacity, 1)); -} - -.hover\:bg-gray-100:hover { - --tw-bg-opacity: 1; - background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1)); -} - -.hover\:bg-green-600:hover { - --tw-bg-opacity: 1; - background-color: rgb(22 163 74 / var(--tw-bg-opacity, 1)); -} - -.hover\:bg-green-700:hover { - --tw-bg-opacity: 1; - background-color: rgb(21 128 61 / var(--tw-bg-opacity, 1)); -} - -.hover\:bg-green-950:hover { - --tw-bg-opacity: 1; - background-color: rgb(5 46 22 / var(--tw-bg-opacity, 1)); -} - -.hover\:bg-light-200:hover { - --tw-bg-opacity: 1; - background-color: rgb(233 236 239 / var(--tw-bg-opacity, 1)); -} - -.hover\:text-gray-600:hover { - --tw-text-opacity: 1; - color: rgb(75 85 99 / var(--tw-text-opacity, 1)); -} - -.hover\:text-gray-800:hover { - --tw-text-opacity: 1; - color: rgb(31 41 55 / var(--tw-text-opacity, 1)); -} - -.hover\:text-green-500:hover { - --tw-text-opacity: 1; - color: rgb(34 197 94 / var(--tw-text-opacity, 1)); -} - -.hover\:text-green-600:hover { - --tw-text-opacity: 1; - color: rgb(22 163 74 / var(--tw-text-opacity, 1)); -} - -.hover\:text-red-600:hover { - --tw-text-opacity: 1; - color: rgb(220 38 38 / var(--tw-text-opacity, 1)); -} - -.hover\:text-white:hover { - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity, 1)); -} - -.dark\:border-gray-600:is(.dark *) { - --tw-border-opacity: 1; - border-color: rgb(75 85 99 / var(--tw-border-opacity, 1)); -} - -.dark\:border-gray-700:is(.dark *) { - --tw-border-opacity: 1; - border-color: rgb(55 65 81 / var(--tw-border-opacity, 1)); -} - -.dark\:border-gray-800:is(.dark *) { - --tw-border-opacity: 1; - border-color: rgb(31 41 55 / var(--tw-border-opacity, 1)); -} - -.dark\:bg-black:is(.dark *) { - --tw-bg-opacity: 1; - background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1)); -} - -.dark\:bg-dark:is(.dark *) { - --tw-bg-opacity: 1; - background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1)); -} - -.dark\:bg-dark-100:is(.dark *) { - --tw-bg-opacity: 1; - background-color: rgb(22 22 22 / var(--tw-bg-opacity, 1)); -} - -.dark\:bg-dark-300:is(.dark *) { - --tw-bg-opacity: 1; - background-color: rgb(61 61 61 / var(--tw-bg-opacity, 1)); -} - -.dark\:bg-gray-700:is(.dark *) { - --tw-bg-opacity: 1; - background-color: rgb(55 65 81 / var(--tw-bg-opacity, 1)); -} - -.dark\:bg-gray-800:is(.dark *) { - --tw-bg-opacity: 1; - background-color: rgb(31 41 55 / var(--tw-bg-opacity, 1)); -} - -.dark\:bg-opacity-20:is(.dark *) { - --tw-bg-opacity: 0.2; -} - -.dark\:bg-opacity-60:is(.dark *) { - --tw-bg-opacity: 0.6; -} - -.dark\:bg-opacity-75:is(.dark *) { - --tw-bg-opacity: 0.75; -} - -.dark\:text-gray-100:is(.dark *) { - --tw-text-opacity: 1; - color: rgb(243 244 246 / var(--tw-text-opacity, 1)); -} - -.dark\:text-gray-200:is(.dark *) { - --tw-text-opacity: 1; - color: rgb(229 231 235 / var(--tw-text-opacity, 1)); -} - -.dark\:text-gray-400:is(.dark *) { - --tw-text-opacity: 1; - color: rgb(156 163 175 / var(--tw-text-opacity, 1)); -} - -.dark\:text-white:is(.dark *) { - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity, 1)); -} - -.dark\:hover\:bg-gray-800:hover:is(.dark *) { - --tw-bg-opacity: 1; - background-color: rgb(31 41 55 / var(--tw-bg-opacity, 1)); -} - -.dark\:hover\:text-gray-400:hover:is(.dark *) { - --tw-text-opacity: 1; - color: rgb(156 163 175 / var(--tw-text-opacity, 1)); -} - -.hover\:dark\:text-white:is(.dark *):hover { - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity, 1)); -} -/* -* Remix Icon v4.6.0 -* https://remixicon.com -* https://github.com/Remix-Design/RemixIcon -* -* Copyright RemixIcon.com -* Released under the Apache License Version 2.0 -* -* Date: 2024-12-17 -*/ -@font-face { - font-family: "remixicon"; - src: url('./remixicon-BVJ9S1ev.eot?t=1734404658139'); /* IE9*/ - src: url('./remixicon-BVJ9S1ev.eot?t=1734404658139#iefix') format('embedded-opentype'), - url("./remixicon-BVvFtaex.woff2?t=1734404658139") format("woff2"), - url("./remixicon-BBpe-Xu7.woff?t=1734404658139") format("woff"), - url('./remixicon-CfJD46dY.ttf?t=1734404658139') format('truetype'), - url('./remixicon-C2wQ2gtc.svg?t=1734404658139#remixicon') format('svg'); /* iOS 4.1- */ - font-display: swap; -} - -[class^="ri-"], [class*=" ri-"] { - font-family: 'remixicon' !important; - font-style: normal; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -.ri-lg { font-size: 1.3333em; line-height: 0.75em; vertical-align: -.0667em; } -.ri-xl { font-size: 1.5em; line-height: 0.6666em; vertical-align: -.075em; } -.ri-xxs { font-size: .5em; } -.ri-xs { font-size: .75em; } -.ri-sm { font-size: .875em } -.ri-1x { font-size: 1em; } -.ri-2x { font-size: 2em; } -.ri-3x { font-size: 3em; } -.ri-4x { font-size: 4em; } -.ri-5x { font-size: 5em; } -.ri-6x { font-size: 6em; } -.ri-7x { font-size: 7em; } -.ri-8x { font-size: 8em; } -.ri-9x { font-size: 9em; } -.ri-10x { font-size: 10em; } -.ri-fw { text-align: center; width: 1.25em; } - -.ri-24-hours-fill:before { content: "\ea01"; } -.ri-24-hours-line:before { content: "\ea02"; } -.ri-4k-fill:before { content: "\ea03"; } -.ri-4k-line:before { content: "\ea04"; } -.ri-a-b:before { content: "\ea05"; } -.ri-account-box-fill:before { content: "\ea06"; } -.ri-account-box-line:before { content: "\ea07"; } -.ri-account-circle-fill:before { content: "\ea08"; } -.ri-account-circle-line:before { content: "\ea09"; } -.ri-account-pin-box-fill:before { content: "\ea0a"; } -.ri-account-pin-box-line:before { content: "\ea0b"; } -.ri-account-pin-circle-fill:before { content: "\ea0c"; } -.ri-account-pin-circle-line:before { content: "\ea0d"; } -.ri-add-box-fill:before { content: "\ea0e"; } -.ri-add-box-line:before { content: "\ea0f"; } -.ri-add-circle-fill:before { content: "\ea10"; } -.ri-add-circle-line:before { content: "\ea11"; } -.ri-add-fill:before { content: "\ea12"; } -.ri-add-line:before { content: "\ea13"; } -.ri-admin-fill:before { content: "\ea14"; } -.ri-admin-line:before { content: "\ea15"; } -.ri-advertisement-fill:before { content: "\ea16"; } -.ri-advertisement-line:before { content: "\ea17"; } -.ri-airplay-fill:before { content: "\ea18"; } -.ri-airplay-line:before { content: "\ea19"; } -.ri-alarm-fill:before { content: "\ea1a"; } -.ri-alarm-line:before { content: "\ea1b"; } -.ri-alarm-warning-fill:before { content: "\ea1c"; } -.ri-alarm-warning-line:before { content: "\ea1d"; } -.ri-album-fill:before { content: "\ea1e"; } -.ri-album-line:before { content: "\ea1f"; } -.ri-alert-fill:before { content: "\ea20"; } -.ri-alert-line:before { content: "\ea21"; } -.ri-aliens-fill:before { content: "\ea22"; } -.ri-aliens-line:before { content: "\ea23"; } -.ri-align-bottom:before { content: "\ea24"; } -.ri-align-center:before { content: "\ea25"; } -.ri-align-justify:before { content: "\ea26"; } -.ri-align-left:before { content: "\ea27"; } -.ri-align-right:before { content: "\ea28"; } -.ri-align-top:before { content: "\ea29"; } -.ri-align-vertically:before { content: "\ea2a"; } -.ri-alipay-fill:before { content: "\ea2b"; } -.ri-alipay-line:before { content: "\ea2c"; } -.ri-amazon-fill:before { content: "\ea2d"; } -.ri-amazon-line:before { content: "\ea2e"; } -.ri-anchor-fill:before { content: "\ea2f"; } -.ri-anchor-line:before { content: "\ea30"; } -.ri-ancient-gate-fill:before { content: "\ea31"; } -.ri-ancient-gate-line:before { content: "\ea32"; } -.ri-ancient-pavilion-fill:before { content: "\ea33"; } -.ri-ancient-pavilion-line:before { content: "\ea34"; } -.ri-android-fill:before { content: "\ea35"; } -.ri-android-line:before { content: "\ea36"; } -.ri-angularjs-fill:before { content: "\ea37"; } -.ri-angularjs-line:before { content: "\ea38"; } -.ri-anticlockwise-2-fill:before { content: "\ea39"; } -.ri-anticlockwise-2-line:before { content: "\ea3a"; } -.ri-anticlockwise-fill:before { content: "\ea3b"; } -.ri-anticlockwise-line:before { content: "\ea3c"; } -.ri-app-store-fill:before { content: "\ea3d"; } -.ri-app-store-line:before { content: "\ea3e"; } -.ri-apple-fill:before { content: "\ea3f"; } -.ri-apple-line:before { content: "\ea40"; } -.ri-apps-2-fill:before { content: "\ea41"; } -.ri-apps-2-line:before { content: "\ea42"; } -.ri-apps-fill:before { content: "\ea43"; } -.ri-apps-line:before { content: "\ea44"; } -.ri-archive-drawer-fill:before { content: "\ea45"; } -.ri-archive-drawer-line:before { content: "\ea46"; } -.ri-archive-fill:before { content: "\ea47"; } -.ri-archive-line:before { content: "\ea48"; } -.ri-arrow-down-circle-fill:before { content: "\ea49"; } -.ri-arrow-down-circle-line:before { content: "\ea4a"; } -.ri-arrow-down-fill:before { content: "\ea4b"; } -.ri-arrow-down-line:before { content: "\ea4c"; } -.ri-arrow-down-s-fill:before { content: "\ea4d"; } -.ri-arrow-down-s-line:before { content: "\ea4e"; } -.ri-arrow-drop-down-fill:before { content: "\ea4f"; } -.ri-arrow-drop-down-line:before { content: "\ea50"; } -.ri-arrow-drop-left-fill:before { content: "\ea51"; } -.ri-arrow-drop-left-line:before { content: "\ea52"; } -.ri-arrow-drop-right-fill:before { content: "\ea53"; } -.ri-arrow-drop-right-line:before { content: "\ea54"; } -.ri-arrow-drop-up-fill:before { content: "\ea55"; } -.ri-arrow-drop-up-line:before { content: "\ea56"; } -.ri-arrow-go-back-fill:before { content: "\ea57"; } -.ri-arrow-go-back-line:before { content: "\ea58"; } -.ri-arrow-go-forward-fill:before { content: "\ea59"; } -.ri-arrow-go-forward-line:before { content: "\ea5a"; } -.ri-arrow-left-circle-fill:before { content: "\ea5b"; } -.ri-arrow-left-circle-line:before { content: "\ea5c"; } -.ri-arrow-left-down-fill:before { content: "\ea5d"; } -.ri-arrow-left-down-line:before { content: "\ea5e"; } -.ri-arrow-left-fill:before { content: "\ea5f"; } -.ri-arrow-left-line:before { content: "\ea60"; } -.ri-arrow-left-right-fill:before { content: "\ea61"; } -.ri-arrow-left-right-line:before { content: "\ea62"; } -.ri-arrow-left-s-fill:before { content: "\ea63"; } -.ri-arrow-left-s-line:before { content: "\ea64"; } -.ri-arrow-left-up-fill:before { content: "\ea65"; } -.ri-arrow-left-up-line:before { content: "\ea66"; } -.ri-arrow-right-circle-fill:before { content: "\ea67"; } -.ri-arrow-right-circle-line:before { content: "\ea68"; } -.ri-arrow-right-down-fill:before { content: "\ea69"; } -.ri-arrow-right-down-line:before { content: "\ea6a"; } -.ri-arrow-right-fill:before { content: "\ea6b"; } -.ri-arrow-right-line:before { content: "\ea6c"; } -.ri-arrow-right-s-fill:before { content: "\ea6d"; } -.ri-arrow-right-s-line:before { content: "\ea6e"; } -.ri-arrow-right-up-fill:before { content: "\ea6f"; } -.ri-arrow-right-up-line:before { content: "\ea70"; } -.ri-arrow-up-circle-fill:before { content: "\ea71"; } -.ri-arrow-up-circle-line:before { content: "\ea72"; } -.ri-arrow-up-down-fill:before { content: "\ea73"; } -.ri-arrow-up-down-line:before { content: "\ea74"; } -.ri-arrow-up-fill:before { content: "\ea75"; } -.ri-arrow-up-line:before { content: "\ea76"; } -.ri-arrow-up-s-fill:before { content: "\ea77"; } -.ri-arrow-up-s-line:before { content: "\ea78"; } -.ri-artboard-2-fill:before { content: "\ea79"; } -.ri-artboard-2-line:before { content: "\ea7a"; } -.ri-artboard-fill:before { content: "\ea7b"; } -.ri-artboard-line:before { content: "\ea7c"; } -.ri-article-fill:before { content: "\ea7d"; } -.ri-article-line:before { content: "\ea7e"; } -.ri-aspect-ratio-fill:before { content: "\ea7f"; } -.ri-aspect-ratio-line:before { content: "\ea80"; } -.ri-asterisk:before { content: "\ea81"; } -.ri-at-fill:before { content: "\ea82"; } -.ri-at-line:before { content: "\ea83"; } -.ri-attachment-2:before { content: "\ea84"; } -.ri-attachment-fill:before { content: "\ea85"; } -.ri-attachment-line:before { content: "\ea86"; } -.ri-auction-fill:before { content: "\ea87"; } -.ri-auction-line:before { content: "\ea88"; } -.ri-award-fill:before { content: "\ea89"; } -.ri-award-line:before { content: "\ea8a"; } -.ri-baidu-fill:before { content: "\ea8b"; } -.ri-baidu-line:before { content: "\ea8c"; } -.ri-ball-pen-fill:before { content: "\ea8d"; } -.ri-ball-pen-line:before { content: "\ea8e"; } -.ri-bank-card-2-fill:before { content: "\ea8f"; } -.ri-bank-card-2-line:before { content: "\ea90"; } -.ri-bank-card-fill:before { content: "\ea91"; } -.ri-bank-card-line:before { content: "\ea92"; } -.ri-bank-fill:before { content: "\ea93"; } -.ri-bank-line:before { content: "\ea94"; } -.ri-bar-chart-2-fill:before { content: "\ea95"; } -.ri-bar-chart-2-line:before { content: "\ea96"; } -.ri-bar-chart-box-fill:before { content: "\ea97"; } -.ri-bar-chart-box-line:before { content: "\ea98"; } -.ri-bar-chart-fill:before { content: "\ea99"; } -.ri-bar-chart-grouped-fill:before { content: "\ea9a"; } -.ri-bar-chart-grouped-line:before { content: "\ea9b"; } -.ri-bar-chart-horizontal-fill:before { content: "\ea9c"; } -.ri-bar-chart-horizontal-line:before { content: "\ea9d"; } -.ri-bar-chart-line:before { content: "\ea9e"; } -.ri-barcode-box-fill:before { content: "\ea9f"; } -.ri-barcode-box-line:before { content: "\eaa0"; } -.ri-barcode-fill:before { content: "\eaa1"; } -.ri-barcode-line:before { content: "\eaa2"; } -.ri-barricade-fill:before { content: "\eaa3"; } -.ri-barricade-line:before { content: "\eaa4"; } -.ri-base-station-fill:before { content: "\eaa5"; } -.ri-base-station-line:before { content: "\eaa6"; } -.ri-basketball-fill:before { content: "\eaa7"; } -.ri-basketball-line:before { content: "\eaa8"; } -.ri-battery-2-charge-fill:before { content: "\eaa9"; } -.ri-battery-2-charge-line:before { content: "\eaaa"; } -.ri-battery-2-fill:before { content: "\eaab"; } -.ri-battery-2-line:before { content: "\eaac"; } -.ri-battery-charge-fill:before { content: "\eaad"; } -.ri-battery-charge-line:before { content: "\eaae"; } -.ri-battery-fill:before { content: "\eaaf"; } -.ri-battery-line:before { content: "\eab0"; } -.ri-battery-low-fill:before { content: "\eab1"; } -.ri-battery-low-line:before { content: "\eab2"; } -.ri-battery-saver-fill:before { content: "\eab3"; } -.ri-battery-saver-line:before { content: "\eab4"; } -.ri-battery-share-fill:before { content: "\eab5"; } -.ri-battery-share-line:before { content: "\eab6"; } -.ri-bear-smile-fill:before { content: "\eab7"; } -.ri-bear-smile-line:before { content: "\eab8"; } -.ri-behance-fill:before { content: "\eab9"; } -.ri-behance-line:before { content: "\eaba"; } -.ri-bell-fill:before { content: "\eabb"; } -.ri-bell-line:before { content: "\eabc"; } -.ri-bike-fill:before { content: "\eabd"; } -.ri-bike-line:before { content: "\eabe"; } -.ri-bilibili-fill:before { content: "\eabf"; } -.ri-bilibili-line:before { content: "\eac0"; } -.ri-bill-fill:before { content: "\eac1"; } -.ri-bill-line:before { content: "\eac2"; } -.ri-billiards-fill:before { content: "\eac3"; } -.ri-billiards-line:before { content: "\eac4"; } -.ri-bit-coin-fill:before { content: "\eac5"; } -.ri-bit-coin-line:before { content: "\eac6"; } -.ri-blaze-fill:before { content: "\eac7"; } -.ri-blaze-line:before { content: "\eac8"; } -.ri-bluetooth-connect-fill:before { content: "\eac9"; } -.ri-bluetooth-connect-line:before { content: "\eaca"; } -.ri-bluetooth-fill:before { content: "\eacb"; } -.ri-bluetooth-line:before { content: "\eacc"; } -.ri-blur-off-fill:before { content: "\eacd"; } -.ri-blur-off-line:before { content: "\eace"; } -.ri-body-scan-fill:before { content: "\eacf"; } -.ri-body-scan-line:before { content: "\ead0"; } -.ri-bold:before { content: "\ead1"; } -.ri-book-2-fill:before { content: "\ead2"; } -.ri-book-2-line:before { content: "\ead3"; } -.ri-book-3-fill:before { content: "\ead4"; } -.ri-book-3-line:before { content: "\ead5"; } -.ri-book-fill:before { content: "\ead6"; } -.ri-book-line:before { content: "\ead7"; } -.ri-book-marked-fill:before { content: "\ead8"; } -.ri-book-marked-line:before { content: "\ead9"; } -.ri-book-open-fill:before { content: "\eada"; } -.ri-book-open-line:before { content: "\eadb"; } -.ri-book-read-fill:before { content: "\eadc"; } -.ri-book-read-line:before { content: "\eadd"; } -.ri-booklet-fill:before { content: "\eade"; } -.ri-booklet-line:before { content: "\eadf"; } -.ri-bookmark-2-fill:before { content: "\eae0"; } -.ri-bookmark-2-line:before { content: "\eae1"; } -.ri-bookmark-3-fill:before { content: "\eae2"; } -.ri-bookmark-3-line:before { content: "\eae3"; } -.ri-bookmark-fill:before { content: "\eae4"; } -.ri-bookmark-line:before { content: "\eae5"; } -.ri-boxing-fill:before { content: "\eae6"; } -.ri-boxing-line:before { content: "\eae7"; } -.ri-braces-fill:before { content: "\eae8"; } -.ri-braces-line:before { content: "\eae9"; } -.ri-brackets-fill:before { content: "\eaea"; } -.ri-brackets-line:before { content: "\eaeb"; } -.ri-briefcase-2-fill:before { content: "\eaec"; } -.ri-briefcase-2-line:before { content: "\eaed"; } -.ri-briefcase-3-fill:before { content: "\eaee"; } -.ri-briefcase-3-line:before { content: "\eaef"; } -.ri-briefcase-4-fill:before { content: "\eaf0"; } -.ri-briefcase-4-line:before { content: "\eaf1"; } -.ri-briefcase-5-fill:before { content: "\eaf2"; } -.ri-briefcase-5-line:before { content: "\eaf3"; } -.ri-briefcase-fill:before { content: "\eaf4"; } -.ri-briefcase-line:before { content: "\eaf5"; } -.ri-bring-forward:before { content: "\eaf6"; } -.ri-bring-to-front:before { content: "\eaf7"; } -.ri-broadcast-fill:before { content: "\eaf8"; } -.ri-broadcast-line:before { content: "\eaf9"; } -.ri-brush-2-fill:before { content: "\eafa"; } -.ri-brush-2-line:before { content: "\eafb"; } -.ri-brush-3-fill:before { content: "\eafc"; } -.ri-brush-3-line:before { content: "\eafd"; } -.ri-brush-4-fill:before { content: "\eafe"; } -.ri-brush-4-line:before { content: "\eaff"; } -.ri-brush-fill:before { content: "\eb00"; } -.ri-brush-line:before { content: "\eb01"; } -.ri-bubble-chart-fill:before { content: "\eb02"; } -.ri-bubble-chart-line:before { content: "\eb03"; } -.ri-bug-2-fill:before { content: "\eb04"; } -.ri-bug-2-line:before { content: "\eb05"; } -.ri-bug-fill:before { content: "\eb06"; } -.ri-bug-line:before { content: "\eb07"; } -.ri-building-2-fill:before { content: "\eb08"; } -.ri-building-2-line:before { content: "\eb09"; } -.ri-building-3-fill:before { content: "\eb0a"; } -.ri-building-3-line:before { content: "\eb0b"; } -.ri-building-4-fill:before { content: "\eb0c"; } -.ri-building-4-line:before { content: "\eb0d"; } -.ri-building-fill:before { content: "\eb0e"; } -.ri-building-line:before { content: "\eb0f"; } -.ri-bus-2-fill:before { content: "\eb10"; } -.ri-bus-2-line:before { content: "\eb11"; } -.ri-bus-fill:before { content: "\eb12"; } -.ri-bus-line:before { content: "\eb13"; } -.ri-bus-wifi-fill:before { content: "\eb14"; } -.ri-bus-wifi-line:before { content: "\eb15"; } -.ri-cactus-fill:before { content: "\eb16"; } -.ri-cactus-line:before { content: "\eb17"; } -.ri-cake-2-fill:before { content: "\eb18"; } -.ri-cake-2-line:before { content: "\eb19"; } -.ri-cake-3-fill:before { content: "\eb1a"; } -.ri-cake-3-line:before { content: "\eb1b"; } -.ri-cake-fill:before { content: "\eb1c"; } -.ri-cake-line:before { content: "\eb1d"; } -.ri-calculator-fill:before { content: "\eb1e"; } -.ri-calculator-line:before { content: "\eb1f"; } -.ri-calendar-2-fill:before { content: "\eb20"; } -.ri-calendar-2-line:before { content: "\eb21"; } -.ri-calendar-check-fill:before { content: "\eb22"; } -.ri-calendar-check-line:before { content: "\eb23"; } -.ri-calendar-event-fill:before { content: "\eb24"; } -.ri-calendar-event-line:before { content: "\eb25"; } -.ri-calendar-fill:before { content: "\eb26"; } -.ri-calendar-line:before { content: "\eb27"; } -.ri-calendar-todo-fill:before { content: "\eb28"; } -.ri-calendar-todo-line:before { content: "\eb29"; } -.ri-camera-2-fill:before { content: "\eb2a"; } -.ri-camera-2-line:before { content: "\eb2b"; } -.ri-camera-3-fill:before { content: "\eb2c"; } -.ri-camera-3-line:before { content: "\eb2d"; } -.ri-camera-fill:before { content: "\eb2e"; } -.ri-camera-lens-fill:before { content: "\eb2f"; } -.ri-camera-lens-line:before { content: "\eb30"; } -.ri-camera-line:before { content: "\eb31"; } -.ri-camera-off-fill:before { content: "\eb32"; } -.ri-camera-off-line:before { content: "\eb33"; } -.ri-camera-switch-fill:before { content: "\eb34"; } -.ri-camera-switch-line:before { content: "\eb35"; } -.ri-capsule-fill:before { content: "\eb36"; } -.ri-capsule-line:before { content: "\eb37"; } -.ri-car-fill:before { content: "\eb38"; } -.ri-car-line:before { content: "\eb39"; } -.ri-car-washing-fill:before { content: "\eb3a"; } -.ri-car-washing-line:before { content: "\eb3b"; } -.ri-caravan-fill:before { content: "\eb3c"; } -.ri-caravan-line:before { content: "\eb3d"; } -.ri-cast-fill:before { content: "\eb3e"; } -.ri-cast-line:before { content: "\eb3f"; } -.ri-cellphone-fill:before { content: "\eb40"; } -.ri-cellphone-line:before { content: "\eb41"; } -.ri-celsius-fill:before { content: "\eb42"; } -.ri-celsius-line:before { content: "\eb43"; } -.ri-centos-fill:before { content: "\eb44"; } -.ri-centos-line:before { content: "\eb45"; } -.ri-character-recognition-fill:before { content: "\eb46"; } -.ri-character-recognition-line:before { content: "\eb47"; } -.ri-charging-pile-2-fill:before { content: "\eb48"; } -.ri-charging-pile-2-line:before { content: "\eb49"; } -.ri-charging-pile-fill:before { content: "\eb4a"; } -.ri-charging-pile-line:before { content: "\eb4b"; } -.ri-chat-1-fill:before { content: "\eb4c"; } -.ri-chat-1-line:before { content: "\eb4d"; } -.ri-chat-2-fill:before { content: "\eb4e"; } -.ri-chat-2-line:before { content: "\eb4f"; } -.ri-chat-3-fill:before { content: "\eb50"; } -.ri-chat-3-line:before { content: "\eb51"; } -.ri-chat-4-fill:before { content: "\eb52"; } -.ri-chat-4-line:before { content: "\eb53"; } -.ri-chat-check-fill:before { content: "\eb54"; } -.ri-chat-check-line:before { content: "\eb55"; } -.ri-chat-delete-fill:before { content: "\eb56"; } -.ri-chat-delete-line:before { content: "\eb57"; } -.ri-chat-download-fill:before { content: "\eb58"; } -.ri-chat-download-line:before { content: "\eb59"; } -.ri-chat-follow-up-fill:before { content: "\eb5a"; } -.ri-chat-follow-up-line:before { content: "\eb5b"; } -.ri-chat-forward-fill:before { content: "\eb5c"; } -.ri-chat-forward-line:before { content: "\eb5d"; } -.ri-chat-heart-fill:before { content: "\eb5e"; } -.ri-chat-heart-line:before { content: "\eb5f"; } -.ri-chat-history-fill:before { content: "\eb60"; } -.ri-chat-history-line:before { content: "\eb61"; } -.ri-chat-new-fill:before { content: "\eb62"; } -.ri-chat-new-line:before { content: "\eb63"; } -.ri-chat-off-fill:before { content: "\eb64"; } -.ri-chat-off-line:before { content: "\eb65"; } -.ri-chat-poll-fill:before { content: "\eb66"; } -.ri-chat-poll-line:before { content: "\eb67"; } -.ri-chat-private-fill:before { content: "\eb68"; } -.ri-chat-private-line:before { content: "\eb69"; } -.ri-chat-quote-fill:before { content: "\eb6a"; } -.ri-chat-quote-line:before { content: "\eb6b"; } -.ri-chat-settings-fill:before { content: "\eb6c"; } -.ri-chat-settings-line:before { content: "\eb6d"; } -.ri-chat-smile-2-fill:before { content: "\eb6e"; } -.ri-chat-smile-2-line:before { content: "\eb6f"; } -.ri-chat-smile-3-fill:before { content: "\eb70"; } -.ri-chat-smile-3-line:before { content: "\eb71"; } -.ri-chat-smile-fill:before { content: "\eb72"; } -.ri-chat-smile-line:before { content: "\eb73"; } -.ri-chat-upload-fill:before { content: "\eb74"; } -.ri-chat-upload-line:before { content: "\eb75"; } -.ri-chat-voice-fill:before { content: "\eb76"; } -.ri-chat-voice-line:before { content: "\eb77"; } -.ri-check-double-fill:before { content: "\eb78"; } -.ri-check-double-line:before { content: "\eb79"; } -.ri-check-fill:before { content: "\eb7a"; } -.ri-check-line:before { content: "\eb7b"; } -.ri-checkbox-blank-circle-fill:before { content: "\eb7c"; } -.ri-checkbox-blank-circle-line:before { content: "\eb7d"; } -.ri-checkbox-blank-fill:before { content: "\eb7e"; } -.ri-checkbox-blank-line:before { content: "\eb7f"; } -.ri-checkbox-circle-fill:before { content: "\eb80"; } -.ri-checkbox-circle-line:before { content: "\eb81"; } -.ri-checkbox-fill:before { content: "\eb82"; } -.ri-checkbox-indeterminate-fill:before { content: "\eb83"; } -.ri-checkbox-indeterminate-line:before { content: "\eb84"; } -.ri-checkbox-line:before { content: "\eb85"; } -.ri-checkbox-multiple-blank-fill:before { content: "\eb86"; } -.ri-checkbox-multiple-blank-line:before { content: "\eb87"; } -.ri-checkbox-multiple-fill:before { content: "\eb88"; } -.ri-checkbox-multiple-line:before { content: "\eb89"; } -.ri-china-railway-fill:before { content: "\eb8a"; } -.ri-china-railway-line:before { content: "\eb8b"; } -.ri-chrome-fill:before { content: "\eb8c"; } -.ri-chrome-line:before { content: "\eb8d"; } -.ri-clapperboard-fill:before { content: "\eb8e"; } -.ri-clapperboard-line:before { content: "\eb8f"; } -.ri-clipboard-fill:before { content: "\eb90"; } -.ri-clipboard-line:before { content: "\eb91"; } -.ri-clockwise-2-fill:before { content: "\eb92"; } -.ri-clockwise-2-line:before { content: "\eb93"; } -.ri-clockwise-fill:before { content: "\eb94"; } -.ri-clockwise-line:before { content: "\eb95"; } -.ri-close-circle-fill:before { content: "\eb96"; } -.ri-close-circle-line:before { content: "\eb97"; } -.ri-close-fill:before { content: "\eb98"; } -.ri-close-line:before { content: "\eb99"; } -.ri-closed-captioning-fill:before { content: "\eb9a"; } -.ri-closed-captioning-line:before { content: "\eb9b"; } -.ri-cloud-fill:before { content: "\eb9c"; } -.ri-cloud-line:before { content: "\eb9d"; } -.ri-cloud-off-fill:before { content: "\eb9e"; } -.ri-cloud-off-line:before { content: "\eb9f"; } -.ri-cloud-windy-fill:before { content: "\eba0"; } -.ri-cloud-windy-line:before { content: "\eba1"; } -.ri-cloudy-2-fill:before { content: "\eba2"; } -.ri-cloudy-2-line:before { content: "\eba3"; } -.ri-cloudy-fill:before { content: "\eba4"; } -.ri-cloudy-line:before { content: "\eba5"; } -.ri-code-box-fill:before { content: "\eba6"; } -.ri-code-box-line:before { content: "\eba7"; } -.ri-code-fill:before { content: "\eba8"; } -.ri-code-line:before { content: "\eba9"; } -.ri-code-s-fill:before { content: "\ebaa"; } -.ri-code-s-line:before { content: "\ebab"; } -.ri-code-s-slash-fill:before { content: "\ebac"; } -.ri-code-s-slash-line:before { content: "\ebad"; } -.ri-code-view:before { content: "\ebae"; } -.ri-codepen-fill:before { content: "\ebaf"; } -.ri-codepen-line:before { content: "\ebb0"; } -.ri-coin-fill:before { content: "\ebb1"; } -.ri-coin-line:before { content: "\ebb2"; } -.ri-coins-fill:before { content: "\ebb3"; } -.ri-coins-line:before { content: "\ebb4"; } -.ri-collage-fill:before { content: "\ebb5"; } -.ri-collage-line:before { content: "\ebb6"; } -.ri-command-fill:before { content: "\ebb7"; } -.ri-command-line:before { content: "\ebb8"; } -.ri-community-fill:before { content: "\ebb9"; } -.ri-community-line:before { content: "\ebba"; } -.ri-compass-2-fill:before { content: "\ebbb"; } -.ri-compass-2-line:before { content: "\ebbc"; } -.ri-compass-3-fill:before { content: "\ebbd"; } -.ri-compass-3-line:before { content: "\ebbe"; } -.ri-compass-4-fill:before { content: "\ebbf"; } -.ri-compass-4-line:before { content: "\ebc0"; } -.ri-compass-discover-fill:before { content: "\ebc1"; } -.ri-compass-discover-line:before { content: "\ebc2"; } -.ri-compass-fill:before { content: "\ebc3"; } -.ri-compass-line:before { content: "\ebc4"; } -.ri-compasses-2-fill:before { content: "\ebc5"; } -.ri-compasses-2-line:before { content: "\ebc6"; } -.ri-compasses-fill:before { content: "\ebc7"; } -.ri-compasses-line:before { content: "\ebc8"; } -.ri-computer-fill:before { content: "\ebc9"; } -.ri-computer-line:before { content: "\ebca"; } -.ri-contacts-book-2-fill:before { content: "\ebcb"; } -.ri-contacts-book-2-line:before { content: "\ebcc"; } -.ri-contacts-book-fill:before { content: "\ebcd"; } -.ri-contacts-book-line:before { content: "\ebce"; } -.ri-contacts-book-upload-fill:before { content: "\ebcf"; } -.ri-contacts-book-upload-line:before { content: "\ebd0"; } -.ri-contacts-fill:before { content: "\ebd1"; } -.ri-contacts-line:before { content: "\ebd2"; } -.ri-contrast-2-fill:before { content: "\ebd3"; } -.ri-contrast-2-line:before { content: "\ebd4"; } -.ri-contrast-drop-2-fill:before { content: "\ebd5"; } -.ri-contrast-drop-2-line:before { content: "\ebd6"; } -.ri-contrast-drop-fill:before { content: "\ebd7"; } -.ri-contrast-drop-line:before { content: "\ebd8"; } -.ri-contrast-fill:before { content: "\ebd9"; } -.ri-contrast-line:before { content: "\ebda"; } -.ri-copper-coin-fill:before { content: "\ebdb"; } -.ri-copper-coin-line:before { content: "\ebdc"; } -.ri-copper-diamond-fill:before { content: "\ebdd"; } -.ri-copper-diamond-line:before { content: "\ebde"; } -.ri-copyleft-fill:before { content: "\ebdf"; } -.ri-copyleft-line:before { content: "\ebe0"; } -.ri-copyright-fill:before { content: "\ebe1"; } -.ri-copyright-line:before { content: "\ebe2"; } -.ri-coreos-fill:before { content: "\ebe3"; } -.ri-coreos-line:before { content: "\ebe4"; } -.ri-coupon-2-fill:before { content: "\ebe5"; } -.ri-coupon-2-line:before { content: "\ebe6"; } -.ri-coupon-3-fill:before { content: "\ebe7"; } -.ri-coupon-3-line:before { content: "\ebe8"; } -.ri-coupon-4-fill:before { content: "\ebe9"; } -.ri-coupon-4-line:before { content: "\ebea"; } -.ri-coupon-5-fill:before { content: "\ebeb"; } -.ri-coupon-5-line:before { content: "\ebec"; } -.ri-coupon-fill:before { content: "\ebed"; } -.ri-coupon-line:before { content: "\ebee"; } -.ri-cpu-fill:before { content: "\ebef"; } -.ri-cpu-line:before { content: "\ebf0"; } -.ri-creative-commons-by-fill:before { content: "\ebf1"; } -.ri-creative-commons-by-line:before { content: "\ebf2"; } -.ri-creative-commons-fill:before { content: "\ebf3"; } -.ri-creative-commons-line:before { content: "\ebf4"; } -.ri-creative-commons-nc-fill:before { content: "\ebf5"; } -.ri-creative-commons-nc-line:before { content: "\ebf6"; } -.ri-creative-commons-nd-fill:before { content: "\ebf7"; } -.ri-creative-commons-nd-line:before { content: "\ebf8"; } -.ri-creative-commons-sa-fill:before { content: "\ebf9"; } -.ri-creative-commons-sa-line:before { content: "\ebfa"; } -.ri-creative-commons-zero-fill:before { content: "\ebfb"; } -.ri-creative-commons-zero-line:before { content: "\ebfc"; } -.ri-criminal-fill:before { content: "\ebfd"; } -.ri-criminal-line:before { content: "\ebfe"; } -.ri-crop-2-fill:before { content: "\ebff"; } -.ri-crop-2-line:before { content: "\ec00"; } -.ri-crop-fill:before { content: "\ec01"; } -.ri-crop-line:before { content: "\ec02"; } -.ri-css3-fill:before { content: "\ec03"; } -.ri-css3-line:before { content: "\ec04"; } -.ri-cup-fill:before { content: "\ec05"; } -.ri-cup-line:before { content: "\ec06"; } -.ri-currency-fill:before { content: "\ec07"; } -.ri-currency-line:before { content: "\ec08"; } -.ri-cursor-fill:before { content: "\ec09"; } -.ri-cursor-line:before { content: "\ec0a"; } -.ri-customer-service-2-fill:before { content: "\ec0b"; } -.ri-customer-service-2-line:before { content: "\ec0c"; } -.ri-customer-service-fill:before { content: "\ec0d"; } -.ri-customer-service-line:before { content: "\ec0e"; } -.ri-dashboard-2-fill:before { content: "\ec0f"; } -.ri-dashboard-2-line:before { content: "\ec10"; } -.ri-dashboard-3-fill:before { content: "\ec11"; } -.ri-dashboard-3-line:before { content: "\ec12"; } -.ri-dashboard-fill:before { content: "\ec13"; } -.ri-dashboard-line:before { content: "\ec14"; } -.ri-database-2-fill:before { content: "\ec15"; } -.ri-database-2-line:before { content: "\ec16"; } -.ri-database-fill:before { content: "\ec17"; } -.ri-database-line:before { content: "\ec18"; } -.ri-delete-back-2-fill:before { content: "\ec19"; } -.ri-delete-back-2-line:before { content: "\ec1a"; } -.ri-delete-back-fill:before { content: "\ec1b"; } -.ri-delete-back-line:before { content: "\ec1c"; } -.ri-delete-bin-2-fill:before { content: "\ec1d"; } -.ri-delete-bin-2-line:before { content: "\ec1e"; } -.ri-delete-bin-3-fill:before { content: "\ec1f"; } -.ri-delete-bin-3-line:before { content: "\ec20"; } -.ri-delete-bin-4-fill:before { content: "\ec21"; } -.ri-delete-bin-4-line:before { content: "\ec22"; } -.ri-delete-bin-5-fill:before { content: "\ec23"; } -.ri-delete-bin-5-line:before { content: "\ec24"; } -.ri-delete-bin-6-fill:before { content: "\ec25"; } -.ri-delete-bin-6-line:before { content: "\ec26"; } -.ri-delete-bin-7-fill:before { content: "\ec27"; } -.ri-delete-bin-7-line:before { content: "\ec28"; } -.ri-delete-bin-fill:before { content: "\ec29"; } -.ri-delete-bin-line:before { content: "\ec2a"; } -.ri-delete-column:before { content: "\ec2b"; } -.ri-delete-row:before { content: "\ec2c"; } -.ri-device-fill:before { content: "\ec2d"; } -.ri-device-line:before { content: "\ec2e"; } -.ri-device-recover-fill:before { content: "\ec2f"; } -.ri-device-recover-line:before { content: "\ec30"; } -.ri-dingding-fill:before { content: "\ec31"; } -.ri-dingding-line:before { content: "\ec32"; } -.ri-direction-fill:before { content: "\ec33"; } -.ri-direction-line:before { content: "\ec34"; } -.ri-disc-fill:before { content: "\ec35"; } -.ri-disc-line:before { content: "\ec36"; } -.ri-discord-fill:before { content: "\ec37"; } -.ri-discord-line:before { content: "\ec38"; } -.ri-discuss-fill:before { content: "\ec39"; } -.ri-discuss-line:before { content: "\ec3a"; } -.ri-dislike-fill:before { content: "\ec3b"; } -.ri-dislike-line:before { content: "\ec3c"; } -.ri-disqus-fill:before { content: "\ec3d"; } -.ri-disqus-line:before { content: "\ec3e"; } -.ri-divide-fill:before { content: "\ec3f"; } -.ri-divide-line:before { content: "\ec40"; } -.ri-donut-chart-fill:before { content: "\ec41"; } -.ri-donut-chart-line:before { content: "\ec42"; } -.ri-door-closed-fill:before { content: "\ec43"; } -.ri-door-closed-line:before { content: "\ec44"; } -.ri-door-fill:before { content: "\ec45"; } -.ri-door-line:before { content: "\ec46"; } -.ri-door-lock-box-fill:before { content: "\ec47"; } -.ri-door-lock-box-line:before { content: "\ec48"; } -.ri-door-lock-fill:before { content: "\ec49"; } -.ri-door-lock-line:before { content: "\ec4a"; } -.ri-door-open-fill:before { content: "\ec4b"; } -.ri-door-open-line:before { content: "\ec4c"; } -.ri-dossier-fill:before { content: "\ec4d"; } -.ri-dossier-line:before { content: "\ec4e"; } -.ri-douban-fill:before { content: "\ec4f"; } -.ri-douban-line:before { content: "\ec50"; } -.ri-double-quotes-l:before { content: "\ec51"; } -.ri-double-quotes-r:before { content: "\ec52"; } -.ri-download-2-fill:before { content: "\ec53"; } -.ri-download-2-line:before { content: "\ec54"; } -.ri-download-cloud-2-fill:before { content: "\ec55"; } -.ri-download-cloud-2-line:before { content: "\ec56"; } -.ri-download-cloud-fill:before { content: "\ec57"; } -.ri-download-cloud-line:before { content: "\ec58"; } -.ri-download-fill:before { content: "\ec59"; } -.ri-download-line:before { content: "\ec5a"; } -.ri-draft-fill:before { content: "\ec5b"; } -.ri-draft-line:before { content: "\ec5c"; } -.ri-drag-drop-fill:before { content: "\ec5d"; } -.ri-drag-drop-line:before { content: "\ec5e"; } -.ri-drag-move-2-fill:before { content: "\ec5f"; } -.ri-drag-move-2-line:before { content: "\ec60"; } -.ri-drag-move-fill:before { content: "\ec61"; } -.ri-drag-move-line:before { content: "\ec62"; } -.ri-dribbble-fill:before { content: "\ec63"; } -.ri-dribbble-line:before { content: "\ec64"; } -.ri-drive-fill:before { content: "\ec65"; } -.ri-drive-line:before { content: "\ec66"; } -.ri-drizzle-fill:before { content: "\ec67"; } -.ri-drizzle-line:before { content: "\ec68"; } -.ri-drop-fill:before { content: "\ec69"; } -.ri-drop-line:before { content: "\ec6a"; } -.ri-dropbox-fill:before { content: "\ec6b"; } -.ri-dropbox-line:before { content: "\ec6c"; } -.ri-dual-sim-1-fill:before { content: "\ec6d"; } -.ri-dual-sim-1-line:before { content: "\ec6e"; } -.ri-dual-sim-2-fill:before { content: "\ec6f"; } -.ri-dual-sim-2-line:before { content: "\ec70"; } -.ri-dv-fill:before { content: "\ec71"; } -.ri-dv-line:before { content: "\ec72"; } -.ri-dvd-fill:before { content: "\ec73"; } -.ri-dvd-line:before { content: "\ec74"; } -.ri-e-bike-2-fill:before { content: "\ec75"; } -.ri-e-bike-2-line:before { content: "\ec76"; } -.ri-e-bike-fill:before { content: "\ec77"; } -.ri-e-bike-line:before { content: "\ec78"; } -.ri-earth-fill:before { content: "\ec79"; } -.ri-earth-line:before { content: "\ec7a"; } -.ri-earthquake-fill:before { content: "\ec7b"; } -.ri-earthquake-line:before { content: "\ec7c"; } -.ri-edge-fill:before { content: "\ec7d"; } -.ri-edge-line:before { content: "\ec7e"; } -.ri-edit-2-fill:before { content: "\ec7f"; } -.ri-edit-2-line:before { content: "\ec80"; } -.ri-edit-box-fill:before { content: "\ec81"; } -.ri-edit-box-line:before { content: "\ec82"; } -.ri-edit-circle-fill:before { content: "\ec83"; } -.ri-edit-circle-line:before { content: "\ec84"; } -.ri-edit-fill:before { content: "\ec85"; } -.ri-edit-line:before { content: "\ec86"; } -.ri-eject-fill:before { content: "\ec87"; } -.ri-eject-line:before { content: "\ec88"; } -.ri-emotion-2-fill:before { content: "\ec89"; } -.ri-emotion-2-line:before { content: "\ec8a"; } -.ri-emotion-fill:before { content: "\ec8b"; } -.ri-emotion-happy-fill:before { content: "\ec8c"; } -.ri-emotion-happy-line:before { content: "\ec8d"; } -.ri-emotion-laugh-fill:before { content: "\ec8e"; } -.ri-emotion-laugh-line:before { content: "\ec8f"; } -.ri-emotion-line:before { content: "\ec90"; } -.ri-emotion-normal-fill:before { content: "\ec91"; } -.ri-emotion-normal-line:before { content: "\ec92"; } -.ri-emotion-sad-fill:before { content: "\ec93"; } -.ri-emotion-sad-line:before { content: "\ec94"; } -.ri-emotion-unhappy-fill:before { content: "\ec95"; } -.ri-emotion-unhappy-line:before { content: "\ec96"; } -.ri-empathize-fill:before { content: "\ec97"; } -.ri-empathize-line:before { content: "\ec98"; } -.ri-emphasis-cn:before { content: "\ec99"; } -.ri-emphasis:before { content: "\ec9a"; } -.ri-english-input:before { content: "\ec9b"; } -.ri-equalizer-fill:before { content: "\ec9c"; } -.ri-equalizer-line:before { content: "\ec9d"; } -.ri-eraser-fill:before { content: "\ec9e"; } -.ri-eraser-line:before { content: "\ec9f"; } -.ri-error-warning-fill:before { content: "\eca0"; } -.ri-error-warning-line:before { content: "\eca1"; } -.ri-evernote-fill:before { content: "\eca2"; } -.ri-evernote-line:before { content: "\eca3"; } -.ri-exchange-box-fill:before { content: "\eca4"; } -.ri-exchange-box-line:before { content: "\eca5"; } -.ri-exchange-cny-fill:before { content: "\eca6"; } -.ri-exchange-cny-line:before { content: "\eca7"; } -.ri-exchange-dollar-fill:before { content: "\eca8"; } -.ri-exchange-dollar-line:before { content: "\eca9"; } -.ri-exchange-fill:before { content: "\ecaa"; } -.ri-exchange-funds-fill:before { content: "\ecab"; } -.ri-exchange-funds-line:before { content: "\ecac"; } -.ri-exchange-line:before { content: "\ecad"; } -.ri-external-link-fill:before { content: "\ecae"; } -.ri-external-link-line:before { content: "\ecaf"; } -.ri-eye-2-fill:before { content: "\ecb0"; } -.ri-eye-2-line:before { content: "\ecb1"; } -.ri-eye-close-fill:before { content: "\ecb2"; } -.ri-eye-close-line:before { content: "\ecb3"; } -.ri-eye-fill:before { content: "\ecb4"; } -.ri-eye-line:before { content: "\ecb5"; } -.ri-eye-off-fill:before { content: "\ecb6"; } -.ri-eye-off-line:before { content: "\ecb7"; } -.ri-facebook-box-fill:before { content: "\ecb8"; } -.ri-facebook-box-line:before { content: "\ecb9"; } -.ri-facebook-circle-fill:before { content: "\ecba"; } -.ri-facebook-circle-line:before { content: "\ecbb"; } -.ri-facebook-fill:before { content: "\ecbc"; } -.ri-facebook-line:before { content: "\ecbd"; } -.ri-fahrenheit-fill:before { content: "\ecbe"; } -.ri-fahrenheit-line:before { content: "\ecbf"; } -.ri-feedback-fill:before { content: "\ecc0"; } -.ri-feedback-line:before { content: "\ecc1"; } -.ri-file-2-fill:before { content: "\ecc2"; } -.ri-file-2-line:before { content: "\ecc3"; } -.ri-file-3-fill:before { content: "\ecc4"; } -.ri-file-3-line:before { content: "\ecc5"; } -.ri-file-4-fill:before { content: "\ecc6"; } -.ri-file-4-line:before { content: "\ecc7"; } -.ri-file-add-fill:before { content: "\ecc8"; } -.ri-file-add-line:before { content: "\ecc9"; } -.ri-file-chart-2-fill:before { content: "\ecca"; } -.ri-file-chart-2-line:before { content: "\eccb"; } -.ri-file-chart-fill:before { content: "\eccc"; } -.ri-file-chart-line:before { content: "\eccd"; } -.ri-file-cloud-fill:before { content: "\ecce"; } -.ri-file-cloud-line:before { content: "\eccf"; } -.ri-file-code-fill:before { content: "\ecd0"; } -.ri-file-code-line:before { content: "\ecd1"; } -.ri-file-copy-2-fill:before { content: "\ecd2"; } -.ri-file-copy-2-line:before { content: "\ecd3"; } -.ri-file-copy-fill:before { content: "\ecd4"; } -.ri-file-copy-line:before { content: "\ecd5"; } -.ri-file-damage-fill:before { content: "\ecd6"; } -.ri-file-damage-line:before { content: "\ecd7"; } -.ri-file-download-fill:before { content: "\ecd8"; } -.ri-file-download-line:before { content: "\ecd9"; } -.ri-file-edit-fill:before { content: "\ecda"; } -.ri-file-edit-line:before { content: "\ecdb"; } -.ri-file-excel-2-fill:before { content: "\ecdc"; } -.ri-file-excel-2-line:before { content: "\ecdd"; } -.ri-file-excel-fill:before { content: "\ecde"; } -.ri-file-excel-line:before { content: "\ecdf"; } -.ri-file-fill:before { content: "\ece0"; } -.ri-file-forbid-fill:before { content: "\ece1"; } -.ri-file-forbid-line:before { content: "\ece2"; } -.ri-file-gif-fill:before { content: "\ece3"; } -.ri-file-gif-line:before { content: "\ece4"; } -.ri-file-history-fill:before { content: "\ece5"; } -.ri-file-history-line:before { content: "\ece6"; } -.ri-file-hwp-fill:before { content: "\ece7"; } -.ri-file-hwp-line:before { content: "\ece8"; } -.ri-file-info-fill:before { content: "\ece9"; } -.ri-file-info-line:before { content: "\ecea"; } -.ri-file-line:before { content: "\eceb"; } -.ri-file-list-2-fill:before { content: "\ecec"; } -.ri-file-list-2-line:before { content: "\eced"; } -.ri-file-list-3-fill:before { content: "\ecee"; } -.ri-file-list-3-line:before { content: "\ecef"; } -.ri-file-list-fill:before { content: "\ecf0"; } -.ri-file-list-line:before { content: "\ecf1"; } -.ri-file-lock-fill:before { content: "\ecf2"; } -.ri-file-lock-line:before { content: "\ecf3"; } -.ri-file-marked-fill:before { content: "\ecf4"; } -.ri-file-marked-line:before { content: "\ecf5"; } -.ri-file-music-fill:before { content: "\ecf6"; } -.ri-file-music-line:before { content: "\ecf7"; } -.ri-file-paper-2-fill:before { content: "\ecf8"; } -.ri-file-paper-2-line:before { content: "\ecf9"; } -.ri-file-paper-fill:before { content: "\ecfa"; } -.ri-file-paper-line:before { content: "\ecfb"; } -.ri-file-pdf-fill:before { content: "\ecfc"; } -.ri-file-pdf-line:before { content: "\ecfd"; } -.ri-file-ppt-2-fill:before { content: "\ecfe"; } -.ri-file-ppt-2-line:before { content: "\ecff"; } -.ri-file-ppt-fill:before { content: "\ed00"; } -.ri-file-ppt-line:before { content: "\ed01"; } -.ri-file-reduce-fill:before { content: "\ed02"; } -.ri-file-reduce-line:before { content: "\ed03"; } -.ri-file-search-fill:before { content: "\ed04"; } -.ri-file-search-line:before { content: "\ed05"; } -.ri-file-settings-fill:before { content: "\ed06"; } -.ri-file-settings-line:before { content: "\ed07"; } -.ri-file-shield-2-fill:before { content: "\ed08"; } -.ri-file-shield-2-line:before { content: "\ed09"; } -.ri-file-shield-fill:before { content: "\ed0a"; } -.ri-file-shield-line:before { content: "\ed0b"; } -.ri-file-shred-fill:before { content: "\ed0c"; } -.ri-file-shred-line:before { content: "\ed0d"; } -.ri-file-text-fill:before { content: "\ed0e"; } -.ri-file-text-line:before { content: "\ed0f"; } -.ri-file-transfer-fill:before { content: "\ed10"; } -.ri-file-transfer-line:before { content: "\ed11"; } -.ri-file-unknow-fill:before { content: "\ed12"; } -.ri-file-unknow-line:before { content: "\ed13"; } -.ri-file-upload-fill:before { content: "\ed14"; } -.ri-file-upload-line:before { content: "\ed15"; } -.ri-file-user-fill:before { content: "\ed16"; } -.ri-file-user-line:before { content: "\ed17"; } -.ri-file-warning-fill:before { content: "\ed18"; } -.ri-file-warning-line:before { content: "\ed19"; } -.ri-file-word-2-fill:before { content: "\ed1a"; } -.ri-file-word-2-line:before { content: "\ed1b"; } -.ri-file-word-fill:before { content: "\ed1c"; } -.ri-file-word-line:before { content: "\ed1d"; } -.ri-file-zip-fill:before { content: "\ed1e"; } -.ri-file-zip-line:before { content: "\ed1f"; } -.ri-film-fill:before { content: "\ed20"; } -.ri-film-line:before { content: "\ed21"; } -.ri-filter-2-fill:before { content: "\ed22"; } -.ri-filter-2-line:before { content: "\ed23"; } -.ri-filter-3-fill:before { content: "\ed24"; } -.ri-filter-3-line:before { content: "\ed25"; } -.ri-filter-fill:before { content: "\ed26"; } -.ri-filter-line:before { content: "\ed27"; } -.ri-filter-off-fill:before { content: "\ed28"; } -.ri-filter-off-line:before { content: "\ed29"; } -.ri-find-replace-fill:before { content: "\ed2a"; } -.ri-find-replace-line:before { content: "\ed2b"; } -.ri-finder-fill:before { content: "\ed2c"; } -.ri-finder-line:before { content: "\ed2d"; } -.ri-fingerprint-2-fill:before { content: "\ed2e"; } -.ri-fingerprint-2-line:before { content: "\ed2f"; } -.ri-fingerprint-fill:before { content: "\ed30"; } -.ri-fingerprint-line:before { content: "\ed31"; } -.ri-fire-fill:before { content: "\ed32"; } -.ri-fire-line:before { content: "\ed33"; } -.ri-firefox-fill:before { content: "\ed34"; } -.ri-firefox-line:before { content: "\ed35"; } -.ri-first-aid-kit-fill:before { content: "\ed36"; } -.ri-first-aid-kit-line:before { content: "\ed37"; } -.ri-flag-2-fill:before { content: "\ed38"; } -.ri-flag-2-line:before { content: "\ed39"; } -.ri-flag-fill:before { content: "\ed3a"; } -.ri-flag-line:before { content: "\ed3b"; } -.ri-flashlight-fill:before { content: "\ed3c"; } -.ri-flashlight-line:before { content: "\ed3d"; } -.ri-flask-fill:before { content: "\ed3e"; } -.ri-flask-line:before { content: "\ed3f"; } -.ri-flight-land-fill:before { content: "\ed40"; } -.ri-flight-land-line:before { content: "\ed41"; } -.ri-flight-takeoff-fill:before { content: "\ed42"; } -.ri-flight-takeoff-line:before { content: "\ed43"; } -.ri-flood-fill:before { content: "\ed44"; } -.ri-flood-line:before { content: "\ed45"; } -.ri-flow-chart:before { content: "\ed46"; } -.ri-flutter-fill:before { content: "\ed47"; } -.ri-flutter-line:before { content: "\ed48"; } -.ri-focus-2-fill:before { content: "\ed49"; } -.ri-focus-2-line:before { content: "\ed4a"; } -.ri-focus-3-fill:before { content: "\ed4b"; } -.ri-focus-3-line:before { content: "\ed4c"; } -.ri-focus-fill:before { content: "\ed4d"; } -.ri-focus-line:before { content: "\ed4e"; } -.ri-foggy-fill:before { content: "\ed4f"; } -.ri-foggy-line:before { content: "\ed50"; } -.ri-folder-2-fill:before { content: "\ed51"; } -.ri-folder-2-line:before { content: "\ed52"; } -.ri-folder-3-fill:before { content: "\ed53"; } -.ri-folder-3-line:before { content: "\ed54"; } -.ri-folder-4-fill:before { content: "\ed55"; } -.ri-folder-4-line:before { content: "\ed56"; } -.ri-folder-5-fill:before { content: "\ed57"; } -.ri-folder-5-line:before { content: "\ed58"; } -.ri-folder-add-fill:before { content: "\ed59"; } -.ri-folder-add-line:before { content: "\ed5a"; } -.ri-folder-chart-2-fill:before { content: "\ed5b"; } -.ri-folder-chart-2-line:before { content: "\ed5c"; } -.ri-folder-chart-fill:before { content: "\ed5d"; } -.ri-folder-chart-line:before { content: "\ed5e"; } -.ri-folder-download-fill:before { content: "\ed5f"; } -.ri-folder-download-line:before { content: "\ed60"; } -.ri-folder-fill:before { content: "\ed61"; } -.ri-folder-forbid-fill:before { content: "\ed62"; } -.ri-folder-forbid-line:before { content: "\ed63"; } -.ri-folder-history-fill:before { content: "\ed64"; } -.ri-folder-history-line:before { content: "\ed65"; } -.ri-folder-info-fill:before { content: "\ed66"; } -.ri-folder-info-line:before { content: "\ed67"; } -.ri-folder-keyhole-fill:before { content: "\ed68"; } -.ri-folder-keyhole-line:before { content: "\ed69"; } -.ri-folder-line:before { content: "\ed6a"; } -.ri-folder-lock-fill:before { content: "\ed6b"; } -.ri-folder-lock-line:before { content: "\ed6c"; } -.ri-folder-music-fill:before { content: "\ed6d"; } -.ri-folder-music-line:before { content: "\ed6e"; } -.ri-folder-open-fill:before { content: "\ed6f"; } -.ri-folder-open-line:before { content: "\ed70"; } -.ri-folder-received-fill:before { content: "\ed71"; } -.ri-folder-received-line:before { content: "\ed72"; } -.ri-folder-reduce-fill:before { content: "\ed73"; } -.ri-folder-reduce-line:before { content: "\ed74"; } -.ri-folder-settings-fill:before { content: "\ed75"; } -.ri-folder-settings-line:before { content: "\ed76"; } -.ri-folder-shared-fill:before { content: "\ed77"; } -.ri-folder-shared-line:before { content: "\ed78"; } -.ri-folder-shield-2-fill:before { content: "\ed79"; } -.ri-folder-shield-2-line:before { content: "\ed7a"; } -.ri-folder-shield-fill:before { content: "\ed7b"; } -.ri-folder-shield-line:before { content: "\ed7c"; } -.ri-folder-transfer-fill:before { content: "\ed7d"; } -.ri-folder-transfer-line:before { content: "\ed7e"; } -.ri-folder-unknow-fill:before { content: "\ed7f"; } -.ri-folder-unknow-line:before { content: "\ed80"; } -.ri-folder-upload-fill:before { content: "\ed81"; } -.ri-folder-upload-line:before { content: "\ed82"; } -.ri-folder-user-fill:before { content: "\ed83"; } -.ri-folder-user-line:before { content: "\ed84"; } -.ri-folder-warning-fill:before { content: "\ed85"; } -.ri-folder-warning-line:before { content: "\ed86"; } -.ri-folder-zip-fill:before { content: "\ed87"; } -.ri-folder-zip-line:before { content: "\ed88"; } -.ri-folders-fill:before { content: "\ed89"; } -.ri-folders-line:before { content: "\ed8a"; } -.ri-font-color:before { content: "\ed8b"; } -.ri-font-size-2:before { content: "\ed8c"; } -.ri-font-size:before { content: "\ed8d"; } -.ri-football-fill:before { content: "\ed8e"; } -.ri-football-line:before { content: "\ed8f"; } -.ri-footprint-fill:before { content: "\ed90"; } -.ri-footprint-line:before { content: "\ed91"; } -.ri-forbid-2-fill:before { content: "\ed92"; } -.ri-forbid-2-line:before { content: "\ed93"; } -.ri-forbid-fill:before { content: "\ed94"; } -.ri-forbid-line:before { content: "\ed95"; } -.ri-format-clear:before { content: "\ed96"; } -.ri-fridge-fill:before { content: "\ed97"; } -.ri-fridge-line:before { content: "\ed98"; } -.ri-fullscreen-exit-fill:before { content: "\ed99"; } -.ri-fullscreen-exit-line:before { content: "\ed9a"; } -.ri-fullscreen-fill:before { content: "\ed9b"; } -.ri-fullscreen-line:before { content: "\ed9c"; } -.ri-function-fill:before { content: "\ed9d"; } -.ri-function-line:before { content: "\ed9e"; } -.ri-functions:before { content: "\ed9f"; } -.ri-funds-box-fill:before { content: "\eda0"; } -.ri-funds-box-line:before { content: "\eda1"; } -.ri-funds-fill:before { content: "\eda2"; } -.ri-funds-line:before { content: "\eda3"; } -.ri-gallery-fill:before { content: "\eda4"; } -.ri-gallery-line:before { content: "\eda5"; } -.ri-gallery-upload-fill:before { content: "\eda6"; } -.ri-gallery-upload-line:before { content: "\eda7"; } -.ri-game-fill:before { content: "\eda8"; } -.ri-game-line:before { content: "\eda9"; } -.ri-gamepad-fill:before { content: "\edaa"; } -.ri-gamepad-line:before { content: "\edab"; } -.ri-gas-station-fill:before { content: "\edac"; } -.ri-gas-station-line:before { content: "\edad"; } -.ri-gatsby-fill:before { content: "\edae"; } -.ri-gatsby-line:before { content: "\edaf"; } -.ri-genderless-fill:before { content: "\edb0"; } -.ri-genderless-line:before { content: "\edb1"; } -.ri-ghost-2-fill:before { content: "\edb2"; } -.ri-ghost-2-line:before { content: "\edb3"; } -.ri-ghost-fill:before { content: "\edb4"; } -.ri-ghost-line:before { content: "\edb5"; } -.ri-ghost-smile-fill:before { content: "\edb6"; } -.ri-ghost-smile-line:before { content: "\edb7"; } -.ri-gift-2-fill:before { content: "\edb8"; } -.ri-gift-2-line:before { content: "\edb9"; } -.ri-gift-fill:before { content: "\edba"; } -.ri-gift-line:before { content: "\edbb"; } -.ri-git-branch-fill:before { content: "\edbc"; } -.ri-git-branch-line:before { content: "\edbd"; } -.ri-git-commit-fill:before { content: "\edbe"; } -.ri-git-commit-line:before { content: "\edbf"; } -.ri-git-merge-fill:before { content: "\edc0"; } -.ri-git-merge-line:before { content: "\edc1"; } -.ri-git-pull-request-fill:before { content: "\edc2"; } -.ri-git-pull-request-line:before { content: "\edc3"; } -.ri-git-repository-commits-fill:before { content: "\edc4"; } -.ri-git-repository-commits-line:before { content: "\edc5"; } -.ri-git-repository-fill:before { content: "\edc6"; } -.ri-git-repository-line:before { content: "\edc7"; } -.ri-git-repository-private-fill:before { content: "\edc8"; } -.ri-git-repository-private-line:before { content: "\edc9"; } -.ri-github-fill:before { content: "\edca"; } -.ri-github-line:before { content: "\edcb"; } -.ri-gitlab-fill:before { content: "\edcc"; } -.ri-gitlab-line:before { content: "\edcd"; } -.ri-global-fill:before { content: "\edce"; } -.ri-global-line:before { content: "\edcf"; } -.ri-globe-fill:before { content: "\edd0"; } -.ri-globe-line:before { content: "\edd1"; } -.ri-goblet-fill:before { content: "\edd2"; } -.ri-goblet-line:before { content: "\edd3"; } -.ri-google-fill:before { content: "\edd4"; } -.ri-google-line:before { content: "\edd5"; } -.ri-google-play-fill:before { content: "\edd6"; } -.ri-google-play-line:before { content: "\edd7"; } -.ri-government-fill:before { content: "\edd8"; } -.ri-government-line:before { content: "\edd9"; } -.ri-gps-fill:before { content: "\edda"; } -.ri-gps-line:before { content: "\eddb"; } -.ri-gradienter-fill:before { content: "\eddc"; } -.ri-gradienter-line:before { content: "\eddd"; } -.ri-grid-fill:before { content: "\edde"; } -.ri-grid-line:before { content: "\eddf"; } -.ri-group-2-fill:before { content: "\ede0"; } -.ri-group-2-line:before { content: "\ede1"; } -.ri-group-fill:before { content: "\ede2"; } -.ri-group-line:before { content: "\ede3"; } -.ri-guide-fill:before { content: "\ede4"; } -.ri-guide-line:before { content: "\ede5"; } -.ri-h-1:before { content: "\ede6"; } -.ri-h-2:before { content: "\ede7"; } -.ri-h-3:before { content: "\ede8"; } -.ri-h-4:before { content: "\ede9"; } -.ri-h-5:before { content: "\edea"; } -.ri-h-6:before { content: "\edeb"; } -.ri-hail-fill:before { content: "\edec"; } -.ri-hail-line:before { content: "\eded"; } -.ri-hammer-fill:before { content: "\edee"; } -.ri-hammer-line:before { content: "\edef"; } -.ri-hand-coin-fill:before { content: "\edf0"; } -.ri-hand-coin-line:before { content: "\edf1"; } -.ri-hand-heart-fill:before { content: "\edf2"; } -.ri-hand-heart-line:before { content: "\edf3"; } -.ri-hand-sanitizer-fill:before { content: "\edf4"; } -.ri-hand-sanitizer-line:before { content: "\edf5"; } -.ri-handbag-fill:before { content: "\edf6"; } -.ri-handbag-line:before { content: "\edf7"; } -.ri-hard-drive-2-fill:before { content: "\edf8"; } -.ri-hard-drive-2-line:before { content: "\edf9"; } -.ri-hard-drive-fill:before { content: "\edfa"; } -.ri-hard-drive-line:before { content: "\edfb"; } -.ri-hashtag:before { content: "\edfc"; } -.ri-haze-2-fill:before { content: "\edfd"; } -.ri-haze-2-line:before { content: "\edfe"; } -.ri-haze-fill:before { content: "\edff"; } -.ri-haze-line:before { content: "\ee00"; } -.ri-hd-fill:before { content: "\ee01"; } -.ri-hd-line:before { content: "\ee02"; } -.ri-heading:before { content: "\ee03"; } -.ri-headphone-fill:before { content: "\ee04"; } -.ri-headphone-line:before { content: "\ee05"; } -.ri-health-book-fill:before { content: "\ee06"; } -.ri-health-book-line:before { content: "\ee07"; } -.ri-heart-2-fill:before { content: "\ee08"; } -.ri-heart-2-line:before { content: "\ee09"; } -.ri-heart-3-fill:before { content: "\ee0a"; } -.ri-heart-3-line:before { content: "\ee0b"; } -.ri-heart-add-fill:before { content: "\ee0c"; } -.ri-heart-add-line:before { content: "\ee0d"; } -.ri-heart-fill:before { content: "\ee0e"; } -.ri-heart-line:before { content: "\ee0f"; } -.ri-heart-pulse-fill:before { content: "\ee10"; } -.ri-heart-pulse-line:before { content: "\ee11"; } -.ri-hearts-fill:before { content: "\ee12"; } -.ri-hearts-line:before { content: "\ee13"; } -.ri-heavy-showers-fill:before { content: "\ee14"; } -.ri-heavy-showers-line:before { content: "\ee15"; } -.ri-history-fill:before { content: "\ee16"; } -.ri-history-line:before { content: "\ee17"; } -.ri-home-2-fill:before { content: "\ee18"; } -.ri-home-2-line:before { content: "\ee19"; } -.ri-home-3-fill:before { content: "\ee1a"; } -.ri-home-3-line:before { content: "\ee1b"; } -.ri-home-4-fill:before { content: "\ee1c"; } -.ri-home-4-line:before { content: "\ee1d"; } -.ri-home-5-fill:before { content: "\ee1e"; } -.ri-home-5-line:before { content: "\ee1f"; } -.ri-home-6-fill:before { content: "\ee20"; } -.ri-home-6-line:before { content: "\ee21"; } -.ri-home-7-fill:before { content: "\ee22"; } -.ri-home-7-line:before { content: "\ee23"; } -.ri-home-8-fill:before { content: "\ee24"; } -.ri-home-8-line:before { content: "\ee25"; } -.ri-home-fill:before { content: "\ee26"; } -.ri-home-gear-fill:before { content: "\ee27"; } -.ri-home-gear-line:before { content: "\ee28"; } -.ri-home-heart-fill:before { content: "\ee29"; } -.ri-home-heart-line:before { content: "\ee2a"; } -.ri-home-line:before { content: "\ee2b"; } -.ri-home-smile-2-fill:before { content: "\ee2c"; } -.ri-home-smile-2-line:before { content: "\ee2d"; } -.ri-home-smile-fill:before { content: "\ee2e"; } -.ri-home-smile-line:before { content: "\ee2f"; } -.ri-home-wifi-fill:before { content: "\ee30"; } -.ri-home-wifi-line:before { content: "\ee31"; } -.ri-honor-of-kings-fill:before { content: "\ee32"; } -.ri-honor-of-kings-line:before { content: "\ee33"; } -.ri-honour-fill:before { content: "\ee34"; } -.ri-honour-line:before { content: "\ee35"; } -.ri-hospital-fill:before { content: "\ee36"; } -.ri-hospital-line:before { content: "\ee37"; } -.ri-hotel-bed-fill:before { content: "\ee38"; } -.ri-hotel-bed-line:before { content: "\ee39"; } -.ri-hotel-fill:before { content: "\ee3a"; } -.ri-hotel-line:before { content: "\ee3b"; } -.ri-hotspot-fill:before { content: "\ee3c"; } -.ri-hotspot-line:before { content: "\ee3d"; } -.ri-hq-fill:before { content: "\ee3e"; } -.ri-hq-line:before { content: "\ee3f"; } -.ri-html5-fill:before { content: "\ee40"; } -.ri-html5-line:before { content: "\ee41"; } -.ri-ie-fill:before { content: "\ee42"; } -.ri-ie-line:before { content: "\ee43"; } -.ri-image-2-fill:before { content: "\ee44"; } -.ri-image-2-line:before { content: "\ee45"; } -.ri-image-add-fill:before { content: "\ee46"; } -.ri-image-add-line:before { content: "\ee47"; } -.ri-image-edit-fill:before { content: "\ee48"; } -.ri-image-edit-line:before { content: "\ee49"; } -.ri-image-fill:before { content: "\ee4a"; } -.ri-image-line:before { content: "\ee4b"; } -.ri-inbox-archive-fill:before { content: "\ee4c"; } -.ri-inbox-archive-line:before { content: "\ee4d"; } -.ri-inbox-fill:before { content: "\ee4e"; } -.ri-inbox-line:before { content: "\ee4f"; } -.ri-inbox-unarchive-fill:before { content: "\ee50"; } -.ri-inbox-unarchive-line:before { content: "\ee51"; } -.ri-increase-decrease-fill:before { content: "\ee52"; } -.ri-increase-decrease-line:before { content: "\ee53"; } -.ri-indent-decrease:before { content: "\ee54"; } -.ri-indent-increase:before { content: "\ee55"; } -.ri-indeterminate-circle-fill:before { content: "\ee56"; } -.ri-indeterminate-circle-line:before { content: "\ee57"; } -.ri-information-fill:before { content: "\ee58"; } -.ri-information-line:before { content: "\ee59"; } -.ri-infrared-thermometer-fill:before { content: "\ee5a"; } -.ri-infrared-thermometer-line:before { content: "\ee5b"; } -.ri-ink-bottle-fill:before { content: "\ee5c"; } -.ri-ink-bottle-line:before { content: "\ee5d"; } -.ri-input-cursor-move:before { content: "\ee5e"; } -.ri-input-method-fill:before { content: "\ee5f"; } -.ri-input-method-line:before { content: "\ee60"; } -.ri-insert-column-left:before { content: "\ee61"; } -.ri-insert-column-right:before { content: "\ee62"; } -.ri-insert-row-bottom:before { content: "\ee63"; } -.ri-insert-row-top:before { content: "\ee64"; } -.ri-instagram-fill:before { content: "\ee65"; } -.ri-instagram-line:before { content: "\ee66"; } -.ri-install-fill:before { content: "\ee67"; } -.ri-install-line:before { content: "\ee68"; } -.ri-invision-fill:before { content: "\ee69"; } -.ri-invision-line:before { content: "\ee6a"; } -.ri-italic:before { content: "\ee6b"; } -.ri-kakao-talk-fill:before { content: "\ee6c"; } -.ri-kakao-talk-line:before { content: "\ee6d"; } -.ri-key-2-fill:before { content: "\ee6e"; } -.ri-key-2-line:before { content: "\ee6f"; } -.ri-key-fill:before { content: "\ee70"; } -.ri-key-line:before { content: "\ee71"; } -.ri-keyboard-box-fill:before { content: "\ee72"; } -.ri-keyboard-box-line:before { content: "\ee73"; } -.ri-keyboard-fill:before { content: "\ee74"; } -.ri-keyboard-line:before { content: "\ee75"; } -.ri-keynote-fill:before { content: "\ee76"; } -.ri-keynote-line:before { content: "\ee77"; } -.ri-knife-blood-fill:before { content: "\ee78"; } -.ri-knife-blood-line:before { content: "\ee79"; } -.ri-knife-fill:before { content: "\ee7a"; } -.ri-knife-line:before { content: "\ee7b"; } -.ri-landscape-fill:before { content: "\ee7c"; } -.ri-landscape-line:before { content: "\ee7d"; } -.ri-layout-2-fill:before { content: "\ee7e"; } -.ri-layout-2-line:before { content: "\ee7f"; } -.ri-layout-3-fill:before { content: "\ee80"; } -.ri-layout-3-line:before { content: "\ee81"; } -.ri-layout-4-fill:before { content: "\ee82"; } -.ri-layout-4-line:before { content: "\ee83"; } -.ri-layout-5-fill:before { content: "\ee84"; } -.ri-layout-5-line:before { content: "\ee85"; } -.ri-layout-6-fill:before { content: "\ee86"; } -.ri-layout-6-line:before { content: "\ee87"; } -.ri-layout-bottom-2-fill:before { content: "\ee88"; } -.ri-layout-bottom-2-line:before { content: "\ee89"; } -.ri-layout-bottom-fill:before { content: "\ee8a"; } -.ri-layout-bottom-line:before { content: "\ee8b"; } -.ri-layout-column-fill:before { content: "\ee8c"; } -.ri-layout-column-line:before { content: "\ee8d"; } -.ri-layout-fill:before { content: "\ee8e"; } -.ri-layout-grid-fill:before { content: "\ee8f"; } -.ri-layout-grid-line:before { content: "\ee90"; } -.ri-layout-left-2-fill:before { content: "\ee91"; } -.ri-layout-left-2-line:before { content: "\ee92"; } -.ri-layout-left-fill:before { content: "\ee93"; } -.ri-layout-left-line:before { content: "\ee94"; } -.ri-layout-line:before { content: "\ee95"; } -.ri-layout-masonry-fill:before { content: "\ee96"; } -.ri-layout-masonry-line:before { content: "\ee97"; } -.ri-layout-right-2-fill:before { content: "\ee98"; } -.ri-layout-right-2-line:before { content: "\ee99"; } -.ri-layout-right-fill:before { content: "\ee9a"; } -.ri-layout-right-line:before { content: "\ee9b"; } -.ri-layout-row-fill:before { content: "\ee9c"; } -.ri-layout-row-line:before { content: "\ee9d"; } -.ri-layout-top-2-fill:before { content: "\ee9e"; } -.ri-layout-top-2-line:before { content: "\ee9f"; } -.ri-layout-top-fill:before { content: "\eea0"; } -.ri-layout-top-line:before { content: "\eea1"; } -.ri-leaf-fill:before { content: "\eea2"; } -.ri-leaf-line:before { content: "\eea3"; } -.ri-lifebuoy-fill:before { content: "\eea4"; } -.ri-lifebuoy-line:before { content: "\eea5"; } -.ri-lightbulb-fill:before { content: "\eea6"; } -.ri-lightbulb-flash-fill:before { content: "\eea7"; } -.ri-lightbulb-flash-line:before { content: "\eea8"; } -.ri-lightbulb-line:before { content: "\eea9"; } -.ri-line-chart-fill:before { content: "\eeaa"; } -.ri-line-chart-line:before { content: "\eeab"; } -.ri-line-fill:before { content: "\eeac"; } -.ri-line-height:before { content: "\eead"; } -.ri-line-line:before { content: "\eeae"; } -.ri-link-m:before { content: "\eeaf"; } -.ri-link-unlink-m:before { content: "\eeb0"; } -.ri-link-unlink:before { content: "\eeb1"; } -.ri-link:before { content: "\eeb2"; } -.ri-linkedin-box-fill:before { content: "\eeb3"; } -.ri-linkedin-box-line:before { content: "\eeb4"; } -.ri-linkedin-fill:before { content: "\eeb5"; } -.ri-linkedin-line:before { content: "\eeb6"; } -.ri-links-fill:before { content: "\eeb7"; } -.ri-links-line:before { content: "\eeb8"; } -.ri-list-check-2:before { content: "\eeb9"; } -.ri-list-check:before { content: "\eeba"; } -.ri-list-ordered:before { content: "\eebb"; } -.ri-list-settings-fill:before { content: "\eebc"; } -.ri-list-settings-line:before { content: "\eebd"; } -.ri-list-unordered:before { content: "\eebe"; } -.ri-live-fill:before { content: "\eebf"; } -.ri-live-line:before { content: "\eec0"; } -.ri-loader-2-fill:before { content: "\eec1"; } -.ri-loader-2-line:before { content: "\eec2"; } -.ri-loader-3-fill:before { content: "\eec3"; } -.ri-loader-3-line:before { content: "\eec4"; } -.ri-loader-4-fill:before { content: "\eec5"; } -.ri-loader-4-line:before { content: "\eec6"; } -.ri-loader-5-fill:before { content: "\eec7"; } -.ri-loader-5-line:before { content: "\eec8"; } -.ri-loader-fill:before { content: "\eec9"; } -.ri-loader-line:before { content: "\eeca"; } -.ri-lock-2-fill:before { content: "\eecb"; } -.ri-lock-2-line:before { content: "\eecc"; } -.ri-lock-fill:before { content: "\eecd"; } -.ri-lock-line:before { content: "\eece"; } -.ri-lock-password-fill:before { content: "\eecf"; } -.ri-lock-password-line:before { content: "\eed0"; } -.ri-lock-unlock-fill:before { content: "\eed1"; } -.ri-lock-unlock-line:before { content: "\eed2"; } -.ri-login-box-fill:before { content: "\eed3"; } -.ri-login-box-line:before { content: "\eed4"; } -.ri-login-circle-fill:before { content: "\eed5"; } -.ri-login-circle-line:before { content: "\eed6"; } -.ri-logout-box-fill:before { content: "\eed7"; } -.ri-logout-box-line:before { content: "\eed8"; } -.ri-logout-box-r-fill:before { content: "\eed9"; } -.ri-logout-box-r-line:before { content: "\eeda"; } -.ri-logout-circle-fill:before { content: "\eedb"; } -.ri-logout-circle-line:before { content: "\eedc"; } -.ri-logout-circle-r-fill:before { content: "\eedd"; } -.ri-logout-circle-r-line:before { content: "\eede"; } -.ri-luggage-cart-fill:before { content: "\eedf"; } -.ri-luggage-cart-line:before { content: "\eee0"; } -.ri-luggage-deposit-fill:before { content: "\eee1"; } -.ri-luggage-deposit-line:before { content: "\eee2"; } -.ri-lungs-fill:before { content: "\eee3"; } -.ri-lungs-line:before { content: "\eee4"; } -.ri-mac-fill:before { content: "\eee5"; } -.ri-mac-line:before { content: "\eee6"; } -.ri-macbook-fill:before { content: "\eee7"; } -.ri-macbook-line:before { content: "\eee8"; } -.ri-magic-fill:before { content: "\eee9"; } -.ri-magic-line:before { content: "\eeea"; } -.ri-mail-add-fill:before { content: "\eeeb"; } -.ri-mail-add-line:before { content: "\eeec"; } -.ri-mail-check-fill:before { content: "\eeed"; } -.ri-mail-check-line:before { content: "\eeee"; } -.ri-mail-close-fill:before { content: "\eeef"; } -.ri-mail-close-line:before { content: "\eef0"; } -.ri-mail-download-fill:before { content: "\eef1"; } -.ri-mail-download-line:before { content: "\eef2"; } -.ri-mail-fill:before { content: "\eef3"; } -.ri-mail-forbid-fill:before { content: "\eef4"; } -.ri-mail-forbid-line:before { content: "\eef5"; } -.ri-mail-line:before { content: "\eef6"; } -.ri-mail-lock-fill:before { content: "\eef7"; } -.ri-mail-lock-line:before { content: "\eef8"; } -.ri-mail-open-fill:before { content: "\eef9"; } -.ri-mail-open-line:before { content: "\eefa"; } -.ri-mail-send-fill:before { content: "\eefb"; } -.ri-mail-send-line:before { content: "\eefc"; } -.ri-mail-settings-fill:before { content: "\eefd"; } -.ri-mail-settings-line:before { content: "\eefe"; } -.ri-mail-star-fill:before { content: "\eeff"; } -.ri-mail-star-line:before { content: "\ef00"; } -.ri-mail-unread-fill:before { content: "\ef01"; } -.ri-mail-unread-line:before { content: "\ef02"; } -.ri-mail-volume-fill:before { content: "\ef03"; } -.ri-mail-volume-line:before { content: "\ef04"; } -.ri-map-2-fill:before { content: "\ef05"; } -.ri-map-2-line:before { content: "\ef06"; } -.ri-map-fill:before { content: "\ef07"; } -.ri-map-line:before { content: "\ef08"; } -.ri-map-pin-2-fill:before { content: "\ef09"; } -.ri-map-pin-2-line:before { content: "\ef0a"; } -.ri-map-pin-3-fill:before { content: "\ef0b"; } -.ri-map-pin-3-line:before { content: "\ef0c"; } -.ri-map-pin-4-fill:before { content: "\ef0d"; } -.ri-map-pin-4-line:before { content: "\ef0e"; } -.ri-map-pin-5-fill:before { content: "\ef0f"; } -.ri-map-pin-5-line:before { content: "\ef10"; } -.ri-map-pin-add-fill:before { content: "\ef11"; } -.ri-map-pin-add-line:before { content: "\ef12"; } -.ri-map-pin-fill:before { content: "\ef13"; } -.ri-map-pin-line:before { content: "\ef14"; } -.ri-map-pin-range-fill:before { content: "\ef15"; } -.ri-map-pin-range-line:before { content: "\ef16"; } -.ri-map-pin-time-fill:before { content: "\ef17"; } -.ri-map-pin-time-line:before { content: "\ef18"; } -.ri-map-pin-user-fill:before { content: "\ef19"; } -.ri-map-pin-user-line:before { content: "\ef1a"; } -.ri-mark-pen-fill:before { content: "\ef1b"; } -.ri-mark-pen-line:before { content: "\ef1c"; } -.ri-markdown-fill:before { content: "\ef1d"; } -.ri-markdown-line:before { content: "\ef1e"; } -.ri-markup-fill:before { content: "\ef1f"; } -.ri-markup-line:before { content: "\ef20"; } -.ri-mastercard-fill:before { content: "\ef21"; } -.ri-mastercard-line:before { content: "\ef22"; } -.ri-mastodon-fill:before { content: "\ef23"; } -.ri-mastodon-line:before { content: "\ef24"; } -.ri-medal-2-fill:before { content: "\ef25"; } -.ri-medal-2-line:before { content: "\ef26"; } -.ri-medal-fill:before { content: "\ef27"; } -.ri-medal-line:before { content: "\ef28"; } -.ri-medicine-bottle-fill:before { content: "\ef29"; } -.ri-medicine-bottle-line:before { content: "\ef2a"; } -.ri-medium-fill:before { content: "\ef2b"; } -.ri-medium-line:before { content: "\ef2c"; } -.ri-men-fill:before { content: "\ef2d"; } -.ri-men-line:before { content: "\ef2e"; } -.ri-mental-health-fill:before { content: "\ef2f"; } -.ri-mental-health-line:before { content: "\ef30"; } -.ri-menu-2-fill:before { content: "\ef31"; } -.ri-menu-2-line:before { content: "\ef32"; } -.ri-menu-3-fill:before { content: "\ef33"; } -.ri-menu-3-line:before { content: "\ef34"; } -.ri-menu-4-fill:before { content: "\ef35"; } -.ri-menu-4-line:before { content: "\ef36"; } -.ri-menu-5-fill:before { content: "\ef37"; } -.ri-menu-5-line:before { content: "\ef38"; } -.ri-menu-add-fill:before { content: "\ef39"; } -.ri-menu-add-line:before { content: "\ef3a"; } -.ri-menu-fill:before { content: "\ef3b"; } -.ri-menu-fold-fill:before { content: "\ef3c"; } -.ri-menu-fold-line:before { content: "\ef3d"; } -.ri-menu-line:before { content: "\ef3e"; } -.ri-menu-unfold-fill:before { content: "\ef3f"; } -.ri-menu-unfold-line:before { content: "\ef40"; } -.ri-merge-cells-horizontal:before { content: "\ef41"; } -.ri-merge-cells-vertical:before { content: "\ef42"; } -.ri-message-2-fill:before { content: "\ef43"; } -.ri-message-2-line:before { content: "\ef44"; } -.ri-message-3-fill:before { content: "\ef45"; } -.ri-message-3-line:before { content: "\ef46"; } -.ri-message-fill:before { content: "\ef47"; } -.ri-message-line:before { content: "\ef48"; } -.ri-messenger-fill:before { content: "\ef49"; } -.ri-messenger-line:before { content: "\ef4a"; } -.ri-meteor-fill:before { content: "\ef4b"; } -.ri-meteor-line:before { content: "\ef4c"; } -.ri-mic-2-fill:before { content: "\ef4d"; } -.ri-mic-2-line:before { content: "\ef4e"; } -.ri-mic-fill:before { content: "\ef4f"; } -.ri-mic-line:before { content: "\ef50"; } -.ri-mic-off-fill:before { content: "\ef51"; } -.ri-mic-off-line:before { content: "\ef52"; } -.ri-mickey-fill:before { content: "\ef53"; } -.ri-mickey-line:before { content: "\ef54"; } -.ri-microscope-fill:before { content: "\ef55"; } -.ri-microscope-line:before { content: "\ef56"; } -.ri-microsoft-fill:before { content: "\ef57"; } -.ri-microsoft-line:before { content: "\ef58"; } -.ri-mind-map:before { content: "\ef59"; } -.ri-mini-program-fill:before { content: "\ef5a"; } -.ri-mini-program-line:before { content: "\ef5b"; } -.ri-mist-fill:before { content: "\ef5c"; } -.ri-mist-line:before { content: "\ef5d"; } -.ri-money-cny-box-fill:before { content: "\ef5e"; } -.ri-money-cny-box-line:before { content: "\ef5f"; } -.ri-money-cny-circle-fill:before { content: "\ef60"; } -.ri-money-cny-circle-line:before { content: "\ef61"; } -.ri-money-dollar-box-fill:before { content: "\ef62"; } -.ri-money-dollar-box-line:before { content: "\ef63"; } -.ri-money-dollar-circle-fill:before { content: "\ef64"; } -.ri-money-dollar-circle-line:before { content: "\ef65"; } -.ri-money-euro-box-fill:before { content: "\ef66"; } -.ri-money-euro-box-line:before { content: "\ef67"; } -.ri-money-euro-circle-fill:before { content: "\ef68"; } -.ri-money-euro-circle-line:before { content: "\ef69"; } -.ri-money-pound-box-fill:before { content: "\ef6a"; } -.ri-money-pound-box-line:before { content: "\ef6b"; } -.ri-money-pound-circle-fill:before { content: "\ef6c"; } -.ri-money-pound-circle-line:before { content: "\ef6d"; } -.ri-moon-clear-fill:before { content: "\ef6e"; } -.ri-moon-clear-line:before { content: "\ef6f"; } -.ri-moon-cloudy-fill:before { content: "\ef70"; } -.ri-moon-cloudy-line:before { content: "\ef71"; } -.ri-moon-fill:before { content: "\ef72"; } -.ri-moon-foggy-fill:before { content: "\ef73"; } -.ri-moon-foggy-line:before { content: "\ef74"; } -.ri-moon-line:before { content: "\ef75"; } -.ri-more-2-fill:before { content: "\ef76"; } -.ri-more-2-line:before { content: "\ef77"; } -.ri-more-fill:before { content: "\ef78"; } -.ri-more-line:before { content: "\ef79"; } -.ri-motorbike-fill:before { content: "\ef7a"; } -.ri-motorbike-line:before { content: "\ef7b"; } -.ri-mouse-fill:before { content: "\ef7c"; } -.ri-mouse-line:before { content: "\ef7d"; } -.ri-movie-2-fill:before { content: "\ef7e"; } -.ri-movie-2-line:before { content: "\ef7f"; } -.ri-movie-fill:before { content: "\ef80"; } -.ri-movie-line:before { content: "\ef81"; } -.ri-music-2-fill:before { content: "\ef82"; } -.ri-music-2-line:before { content: "\ef83"; } -.ri-music-fill:before { content: "\ef84"; } -.ri-music-line:before { content: "\ef85"; } -.ri-mv-fill:before { content: "\ef86"; } -.ri-mv-line:before { content: "\ef87"; } -.ri-navigation-fill:before { content: "\ef88"; } -.ri-navigation-line:before { content: "\ef89"; } -.ri-netease-cloud-music-fill:before { content: "\ef8a"; } -.ri-netease-cloud-music-line:before { content: "\ef8b"; } -.ri-netflix-fill:before { content: "\ef8c"; } -.ri-netflix-line:before { content: "\ef8d"; } -.ri-newspaper-fill:before { content: "\ef8e"; } -.ri-newspaper-line:before { content: "\ef8f"; } -.ri-node-tree:before { content: "\ef90"; } -.ri-notification-2-fill:before { content: "\ef91"; } -.ri-notification-2-line:before { content: "\ef92"; } -.ri-notification-3-fill:before { content: "\ef93"; } -.ri-notification-3-line:before { content: "\ef94"; } -.ri-notification-4-fill:before { content: "\ef95"; } -.ri-notification-4-line:before { content: "\ef96"; } -.ri-notification-badge-fill:before { content: "\ef97"; } -.ri-notification-badge-line:before { content: "\ef98"; } -.ri-notification-fill:before { content: "\ef99"; } -.ri-notification-line:before { content: "\ef9a"; } -.ri-notification-off-fill:before { content: "\ef9b"; } -.ri-notification-off-line:before { content: "\ef9c"; } -.ri-npmjs-fill:before { content: "\ef9d"; } -.ri-npmjs-line:before { content: "\ef9e"; } -.ri-number-0:before { content: "\ef9f"; } -.ri-number-1:before { content: "\efa0"; } -.ri-number-2:before { content: "\efa1"; } -.ri-number-3:before { content: "\efa2"; } -.ri-number-4:before { content: "\efa3"; } -.ri-number-5:before { content: "\efa4"; } -.ri-number-6:before { content: "\efa5"; } -.ri-number-7:before { content: "\efa6"; } -.ri-number-8:before { content: "\efa7"; } -.ri-number-9:before { content: "\efa8"; } -.ri-numbers-fill:before { content: "\efa9"; } -.ri-numbers-line:before { content: "\efaa"; } -.ri-nurse-fill:before { content: "\efab"; } -.ri-nurse-line:before { content: "\efac"; } -.ri-oil-fill:before { content: "\efad"; } -.ri-oil-line:before { content: "\efae"; } -.ri-omega:before { content: "\efaf"; } -.ri-open-arm-fill:before { content: "\efb0"; } -.ri-open-arm-line:before { content: "\efb1"; } -.ri-open-source-fill:before { content: "\efb2"; } -.ri-open-source-line:before { content: "\efb3"; } -.ri-opera-fill:before { content: "\efb4"; } -.ri-opera-line:before { content: "\efb5"; } -.ri-order-play-fill:before { content: "\efb6"; } -.ri-order-play-line:before { content: "\efb7"; } -.ri-organization-chart:before { content: "\efb8"; } -.ri-outlet-2-fill:before { content: "\efb9"; } -.ri-outlet-2-line:before { content: "\efba"; } -.ri-outlet-fill:before { content: "\efbb"; } -.ri-outlet-line:before { content: "\efbc"; } -.ri-page-separator:before { content: "\efbd"; } -.ri-pages-fill:before { content: "\efbe"; } -.ri-pages-line:before { content: "\efbf"; } -.ri-paint-brush-fill:before { content: "\efc0"; } -.ri-paint-brush-line:before { content: "\efc1"; } -.ri-paint-fill:before { content: "\efc2"; } -.ri-paint-line:before { content: "\efc3"; } -.ri-palette-fill:before { content: "\efc4"; } -.ri-palette-line:before { content: "\efc5"; } -.ri-pantone-fill:before { content: "\efc6"; } -.ri-pantone-line:before { content: "\efc7"; } -.ri-paragraph:before { content: "\efc8"; } -.ri-parent-fill:before { content: "\efc9"; } -.ri-parent-line:before { content: "\efca"; } -.ri-parentheses-fill:before { content: "\efcb"; } -.ri-parentheses-line:before { content: "\efcc"; } -.ri-parking-box-fill:before { content: "\efcd"; } -.ri-parking-box-line:before { content: "\efce"; } -.ri-parking-fill:before { content: "\efcf"; } -.ri-parking-line:before { content: "\efd0"; } -.ri-passport-fill:before { content: "\efd1"; } -.ri-passport-line:before { content: "\efd2"; } -.ri-patreon-fill:before { content: "\efd3"; } -.ri-patreon-line:before { content: "\efd4"; } -.ri-pause-circle-fill:before { content: "\efd5"; } -.ri-pause-circle-line:before { content: "\efd6"; } -.ri-pause-fill:before { content: "\efd7"; } -.ri-pause-line:before { content: "\efd8"; } -.ri-pause-mini-fill:before { content: "\efd9"; } -.ri-pause-mini-line:before { content: "\efda"; } -.ri-paypal-fill:before { content: "\efdb"; } -.ri-paypal-line:before { content: "\efdc"; } -.ri-pen-nib-fill:before { content: "\efdd"; } -.ri-pen-nib-line:before { content: "\efde"; } -.ri-pencil-fill:before { content: "\efdf"; } -.ri-pencil-line:before { content: "\efe0"; } -.ri-pencil-ruler-2-fill:before { content: "\efe1"; } -.ri-pencil-ruler-2-line:before { content: "\efe2"; } -.ri-pencil-ruler-fill:before { content: "\efe3"; } -.ri-pencil-ruler-line:before { content: "\efe4"; } -.ri-percent-fill:before { content: "\efe5"; } -.ri-percent-line:before { content: "\efe6"; } -.ri-phone-camera-fill:before { content: "\efe7"; } -.ri-phone-camera-line:before { content: "\efe8"; } -.ri-phone-fill:before { content: "\efe9"; } -.ri-phone-find-fill:before { content: "\efea"; } -.ri-phone-find-line:before { content: "\efeb"; } -.ri-phone-line:before { content: "\efec"; } -.ri-phone-lock-fill:before { content: "\efed"; } -.ri-phone-lock-line:before { content: "\efee"; } -.ri-picture-in-picture-2-fill:before { content: "\efef"; } -.ri-picture-in-picture-2-line:before { content: "\eff0"; } -.ri-picture-in-picture-exit-fill:before { content: "\eff1"; } -.ri-picture-in-picture-exit-line:before { content: "\eff2"; } -.ri-picture-in-picture-fill:before { content: "\eff3"; } -.ri-picture-in-picture-line:before { content: "\eff4"; } -.ri-pie-chart-2-fill:before { content: "\eff5"; } -.ri-pie-chart-2-line:before { content: "\eff6"; } -.ri-pie-chart-box-fill:before { content: "\eff7"; } -.ri-pie-chart-box-line:before { content: "\eff8"; } -.ri-pie-chart-fill:before { content: "\eff9"; } -.ri-pie-chart-line:before { content: "\effa"; } -.ri-pin-distance-fill:before { content: "\effb"; } -.ri-pin-distance-line:before { content: "\effc"; } -.ri-ping-pong-fill:before { content: "\effd"; } -.ri-ping-pong-line:before { content: "\effe"; } -.ri-pinterest-fill:before { content: "\efff"; } -.ri-pinterest-line:before { content: "\f000"; } -.ri-pinyin-input:before { content: "\f001"; } -.ri-pixelfed-fill:before { content: "\f002"; } -.ri-pixelfed-line:before { content: "\f003"; } -.ri-plane-fill:before { content: "\f004"; } -.ri-plane-line:before { content: "\f005"; } -.ri-plant-fill:before { content: "\f006"; } -.ri-plant-line:before { content: "\f007"; } -.ri-play-circle-fill:before { content: "\f008"; } -.ri-play-circle-line:before { content: "\f009"; } -.ri-play-fill:before { content: "\f00a"; } -.ri-play-line:before { content: "\f00b"; } -.ri-play-list-2-fill:before { content: "\f00c"; } -.ri-play-list-2-line:before { content: "\f00d"; } -.ri-play-list-add-fill:before { content: "\f00e"; } -.ri-play-list-add-line:before { content: "\f00f"; } -.ri-play-list-fill:before { content: "\f010"; } -.ri-play-list-line:before { content: "\f011"; } -.ri-play-mini-fill:before { content: "\f012"; } -.ri-play-mini-line:before { content: "\f013"; } -.ri-playstation-fill:before { content: "\f014"; } -.ri-playstation-line:before { content: "\f015"; } -.ri-plug-2-fill:before { content: "\f016"; } -.ri-plug-2-line:before { content: "\f017"; } -.ri-plug-fill:before { content: "\f018"; } -.ri-plug-line:before { content: "\f019"; } -.ri-polaroid-2-fill:before { content: "\f01a"; } -.ri-polaroid-2-line:before { content: "\f01b"; } -.ri-polaroid-fill:before { content: "\f01c"; } -.ri-polaroid-line:before { content: "\f01d"; } -.ri-police-car-fill:before { content: "\f01e"; } -.ri-police-car-line:before { content: "\f01f"; } -.ri-price-tag-2-fill:before { content: "\f020"; } -.ri-price-tag-2-line:before { content: "\f021"; } -.ri-price-tag-3-fill:before { content: "\f022"; } -.ri-price-tag-3-line:before { content: "\f023"; } -.ri-price-tag-fill:before { content: "\f024"; } -.ri-price-tag-line:before { content: "\f025"; } -.ri-printer-cloud-fill:before { content: "\f026"; } -.ri-printer-cloud-line:before { content: "\f027"; } -.ri-printer-fill:before { content: "\f028"; } -.ri-printer-line:before { content: "\f029"; } -.ri-product-hunt-fill:before { content: "\f02a"; } -.ri-product-hunt-line:before { content: "\f02b"; } -.ri-profile-fill:before { content: "\f02c"; } -.ri-profile-line:before { content: "\f02d"; } -.ri-projector-2-fill:before { content: "\f02e"; } -.ri-projector-2-line:before { content: "\f02f"; } -.ri-projector-fill:before { content: "\f030"; } -.ri-projector-line:before { content: "\f031"; } -.ri-psychotherapy-fill:before { content: "\f032"; } -.ri-psychotherapy-line:before { content: "\f033"; } -.ri-pulse-fill:before { content: "\f034"; } -.ri-pulse-line:before { content: "\f035"; } -.ri-pushpin-2-fill:before { content: "\f036"; } -.ri-pushpin-2-line:before { content: "\f037"; } -.ri-pushpin-fill:before { content: "\f038"; } -.ri-pushpin-line:before { content: "\f039"; } -.ri-qq-fill:before { content: "\f03a"; } -.ri-qq-line:before { content: "\f03b"; } -.ri-qr-code-fill:before { content: "\f03c"; } -.ri-qr-code-line:before { content: "\f03d"; } -.ri-qr-scan-2-fill:before { content: "\f03e"; } -.ri-qr-scan-2-line:before { content: "\f03f"; } -.ri-qr-scan-fill:before { content: "\f040"; } -.ri-qr-scan-line:before { content: "\f041"; } -.ri-question-answer-fill:before { content: "\f042"; } -.ri-question-answer-line:before { content: "\f043"; } -.ri-question-fill:before { content: "\f044"; } -.ri-question-line:before { content: "\f045"; } -.ri-question-mark:before { content: "\f046"; } -.ri-questionnaire-fill:before { content: "\f047"; } -.ri-questionnaire-line:before { content: "\f048"; } -.ri-quill-pen-fill:before { content: "\f049"; } -.ri-quill-pen-line:before { content: "\f04a"; } -.ri-radar-fill:before { content: "\f04b"; } -.ri-radar-line:before { content: "\f04c"; } -.ri-radio-2-fill:before { content: "\f04d"; } -.ri-radio-2-line:before { content: "\f04e"; } -.ri-radio-button-fill:before { content: "\f04f"; } -.ri-radio-button-line:before { content: "\f050"; } -.ri-radio-fill:before { content: "\f051"; } -.ri-radio-line:before { content: "\f052"; } -.ri-rainbow-fill:before { content: "\f053"; } -.ri-rainbow-line:before { content: "\f054"; } -.ri-rainy-fill:before { content: "\f055"; } -.ri-rainy-line:before { content: "\f056"; } -.ri-reactjs-fill:before { content: "\f057"; } -.ri-reactjs-line:before { content: "\f058"; } -.ri-record-circle-fill:before { content: "\f059"; } -.ri-record-circle-line:before { content: "\f05a"; } -.ri-record-mail-fill:before { content: "\f05b"; } -.ri-record-mail-line:before { content: "\f05c"; } -.ri-recycle-fill:before { content: "\f05d"; } -.ri-recycle-line:before { content: "\f05e"; } -.ri-red-packet-fill:before { content: "\f05f"; } -.ri-red-packet-line:before { content: "\f060"; } -.ri-reddit-fill:before { content: "\f061"; } -.ri-reddit-line:before { content: "\f062"; } -.ri-refresh-fill:before { content: "\f063"; } -.ri-refresh-line:before { content: "\f064"; } -.ri-refund-2-fill:before { content: "\f065"; } -.ri-refund-2-line:before { content: "\f066"; } -.ri-refund-fill:before { content: "\f067"; } -.ri-refund-line:before { content: "\f068"; } -.ri-registered-fill:before { content: "\f069"; } -.ri-registered-line:before { content: "\f06a"; } -.ri-remixicon-fill:before { content: "\f06b"; } -.ri-remixicon-line:before { content: "\f06c"; } -.ri-remote-control-2-fill:before { content: "\f06d"; } -.ri-remote-control-2-line:before { content: "\f06e"; } -.ri-remote-control-fill:before { content: "\f06f"; } -.ri-remote-control-line:before { content: "\f070"; } -.ri-repeat-2-fill:before { content: "\f071"; } -.ri-repeat-2-line:before { content: "\f072"; } -.ri-repeat-fill:before { content: "\f073"; } -.ri-repeat-line:before { content: "\f074"; } -.ri-repeat-one-fill:before { content: "\f075"; } -.ri-repeat-one-line:before { content: "\f076"; } -.ri-reply-all-fill:before { content: "\f077"; } -.ri-reply-all-line:before { content: "\f078"; } -.ri-reply-fill:before { content: "\f079"; } -.ri-reply-line:before { content: "\f07a"; } -.ri-reserved-fill:before { content: "\f07b"; } -.ri-reserved-line:before { content: "\f07c"; } -.ri-rest-time-fill:before { content: "\f07d"; } -.ri-rest-time-line:before { content: "\f07e"; } -.ri-restart-fill:before { content: "\f07f"; } -.ri-restart-line:before { content: "\f080"; } -.ri-restaurant-2-fill:before { content: "\f081"; } -.ri-restaurant-2-line:before { content: "\f082"; } -.ri-restaurant-fill:before { content: "\f083"; } -.ri-restaurant-line:before { content: "\f084"; } -.ri-rewind-fill:before { content: "\f085"; } -.ri-rewind-line:before { content: "\f086"; } -.ri-rewind-mini-fill:before { content: "\f087"; } -.ri-rewind-mini-line:before { content: "\f088"; } -.ri-rhythm-fill:before { content: "\f089"; } -.ri-rhythm-line:before { content: "\f08a"; } -.ri-riding-fill:before { content: "\f08b"; } -.ri-riding-line:before { content: "\f08c"; } -.ri-road-map-fill:before { content: "\f08d"; } -.ri-road-map-line:before { content: "\f08e"; } -.ri-roadster-fill:before { content: "\f08f"; } -.ri-roadster-line:before { content: "\f090"; } -.ri-robot-fill:before { content: "\f091"; } -.ri-robot-line:before { content: "\f092"; } -.ri-rocket-2-fill:before { content: "\f093"; } -.ri-rocket-2-line:before { content: "\f094"; } -.ri-rocket-fill:before { content: "\f095"; } -.ri-rocket-line:before { content: "\f096"; } -.ri-rotate-lock-fill:before { content: "\f097"; } -.ri-rotate-lock-line:before { content: "\f098"; } -.ri-rounded-corner:before { content: "\f099"; } -.ri-route-fill:before { content: "\f09a"; } -.ri-route-line:before { content: "\f09b"; } -.ri-router-fill:before { content: "\f09c"; } -.ri-router-line:before { content: "\f09d"; } -.ri-rss-fill:before { content: "\f09e"; } -.ri-rss-line:before { content: "\f09f"; } -.ri-ruler-2-fill:before { content: "\f0a0"; } -.ri-ruler-2-line:before { content: "\f0a1"; } -.ri-ruler-fill:before { content: "\f0a2"; } -.ri-ruler-line:before { content: "\f0a3"; } -.ri-run-fill:before { content: "\f0a4"; } -.ri-run-line:before { content: "\f0a5"; } -.ri-safari-fill:before { content: "\f0a6"; } -.ri-safari-line:before { content: "\f0a7"; } -.ri-safe-2-fill:before { content: "\f0a8"; } -.ri-safe-2-line:before { content: "\f0a9"; } -.ri-safe-fill:before { content: "\f0aa"; } -.ri-safe-line:before { content: "\f0ab"; } -.ri-sailboat-fill:before { content: "\f0ac"; } -.ri-sailboat-line:before { content: "\f0ad"; } -.ri-save-2-fill:before { content: "\f0ae"; } -.ri-save-2-line:before { content: "\f0af"; } -.ri-save-3-fill:before { content: "\f0b0"; } -.ri-save-3-line:before { content: "\f0b1"; } -.ri-save-fill:before { content: "\f0b2"; } -.ri-save-line:before { content: "\f0b3"; } -.ri-scales-2-fill:before { content: "\f0b4"; } -.ri-scales-2-line:before { content: "\f0b5"; } -.ri-scales-3-fill:before { content: "\f0b6"; } -.ri-scales-3-line:before { content: "\f0b7"; } -.ri-scales-fill:before { content: "\f0b8"; } -.ri-scales-line:before { content: "\f0b9"; } -.ri-scan-2-fill:before { content: "\f0ba"; } -.ri-scan-2-line:before { content: "\f0bb"; } -.ri-scan-fill:before { content: "\f0bc"; } -.ri-scan-line:before { content: "\f0bd"; } -.ri-scissors-2-fill:before { content: "\f0be"; } -.ri-scissors-2-line:before { content: "\f0bf"; } -.ri-scissors-cut-fill:before { content: "\f0c0"; } -.ri-scissors-cut-line:before { content: "\f0c1"; } -.ri-scissors-fill:before { content: "\f0c2"; } -.ri-scissors-line:before { content: "\f0c3"; } -.ri-screenshot-2-fill:before { content: "\f0c4"; } -.ri-screenshot-2-line:before { content: "\f0c5"; } -.ri-screenshot-fill:before { content: "\f0c6"; } -.ri-screenshot-line:before { content: "\f0c7"; } -.ri-sd-card-fill:before { content: "\f0c8"; } -.ri-sd-card-line:before { content: "\f0c9"; } -.ri-sd-card-mini-fill:before { content: "\f0ca"; } -.ri-sd-card-mini-line:before { content: "\f0cb"; } -.ri-search-2-fill:before { content: "\f0cc"; } -.ri-search-2-line:before { content: "\f0cd"; } -.ri-search-eye-fill:before { content: "\f0ce"; } -.ri-search-eye-line:before { content: "\f0cf"; } -.ri-search-fill:before { content: "\f0d0"; } -.ri-search-line:before { content: "\f0d1"; } -.ri-secure-payment-fill:before { content: "\f0d2"; } -.ri-secure-payment-line:before { content: "\f0d3"; } -.ri-seedling-fill:before { content: "\f0d4"; } -.ri-seedling-line:before { content: "\f0d5"; } -.ri-send-backward:before { content: "\f0d6"; } -.ri-send-plane-2-fill:before { content: "\f0d7"; } -.ri-send-plane-2-line:before { content: "\f0d8"; } -.ri-send-plane-fill:before { content: "\f0d9"; } -.ri-send-plane-line:before { content: "\f0da"; } -.ri-send-to-back:before { content: "\f0db"; } -.ri-sensor-fill:before { content: "\f0dc"; } -.ri-sensor-line:before { content: "\f0dd"; } -.ri-separator:before { content: "\f0de"; } -.ri-server-fill:before { content: "\f0df"; } -.ri-server-line:before { content: "\f0e0"; } -.ri-service-fill:before { content: "\f0e1"; } -.ri-service-line:before { content: "\f0e2"; } -.ri-settings-2-fill:before { content: "\f0e3"; } -.ri-settings-2-line:before { content: "\f0e4"; } -.ri-settings-3-fill:before { content: "\f0e5"; } -.ri-settings-3-line:before { content: "\f0e6"; } -.ri-settings-4-fill:before { content: "\f0e7"; } -.ri-settings-4-line:before { content: "\f0e8"; } -.ri-settings-5-fill:before { content: "\f0e9"; } -.ri-settings-5-line:before { content: "\f0ea"; } -.ri-settings-6-fill:before { content: "\f0eb"; } -.ri-settings-6-line:before { content: "\f0ec"; } -.ri-settings-fill:before { content: "\f0ed"; } -.ri-settings-line:before { content: "\f0ee"; } -.ri-shape-2-fill:before { content: "\f0ef"; } -.ri-shape-2-line:before { content: "\f0f0"; } -.ri-shape-fill:before { content: "\f0f1"; } -.ri-shape-line:before { content: "\f0f2"; } -.ri-share-box-fill:before { content: "\f0f3"; } -.ri-share-box-line:before { content: "\f0f4"; } -.ri-share-circle-fill:before { content: "\f0f5"; } -.ri-share-circle-line:before { content: "\f0f6"; } -.ri-share-fill:before { content: "\f0f7"; } -.ri-share-forward-2-fill:before { content: "\f0f8"; } -.ri-share-forward-2-line:before { content: "\f0f9"; } -.ri-share-forward-box-fill:before { content: "\f0fa"; } -.ri-share-forward-box-line:before { content: "\f0fb"; } -.ri-share-forward-fill:before { content: "\f0fc"; } -.ri-share-forward-line:before { content: "\f0fd"; } -.ri-share-line:before { content: "\f0fe"; } -.ri-shield-check-fill:before { content: "\f0ff"; } -.ri-shield-check-line:before { content: "\f100"; } -.ri-shield-cross-fill:before { content: "\f101"; } -.ri-shield-cross-line:before { content: "\f102"; } -.ri-shield-fill:before { content: "\f103"; } -.ri-shield-flash-fill:before { content: "\f104"; } -.ri-shield-flash-line:before { content: "\f105"; } -.ri-shield-keyhole-fill:before { content: "\f106"; } -.ri-shield-keyhole-line:before { content: "\f107"; } -.ri-shield-line:before { content: "\f108"; } -.ri-shield-star-fill:before { content: "\f109"; } -.ri-shield-star-line:before { content: "\f10a"; } -.ri-shield-user-fill:before { content: "\f10b"; } -.ri-shield-user-line:before { content: "\f10c"; } -.ri-ship-2-fill:before { content: "\f10d"; } -.ri-ship-2-line:before { content: "\f10e"; } -.ri-ship-fill:before { content: "\f10f"; } -.ri-ship-line:before { content: "\f110"; } -.ri-shirt-fill:before { content: "\f111"; } -.ri-shirt-line:before { content: "\f112"; } -.ri-shopping-bag-2-fill:before { content: "\f113"; } -.ri-shopping-bag-2-line:before { content: "\f114"; } -.ri-shopping-bag-3-fill:before { content: "\f115"; } -.ri-shopping-bag-3-line:before { content: "\f116"; } -.ri-shopping-bag-fill:before { content: "\f117"; } -.ri-shopping-bag-line:before { content: "\f118"; } -.ri-shopping-basket-2-fill:before { content: "\f119"; } -.ri-shopping-basket-2-line:before { content: "\f11a"; } -.ri-shopping-basket-fill:before { content: "\f11b"; } -.ri-shopping-basket-line:before { content: "\f11c"; } -.ri-shopping-cart-2-fill:before { content: "\f11d"; } -.ri-shopping-cart-2-line:before { content: "\f11e"; } -.ri-shopping-cart-fill:before { content: "\f11f"; } -.ri-shopping-cart-line:before { content: "\f120"; } -.ri-showers-fill:before { content: "\f121"; } -.ri-showers-line:before { content: "\f122"; } -.ri-shuffle-fill:before { content: "\f123"; } -.ri-shuffle-line:before { content: "\f124"; } -.ri-shut-down-fill:before { content: "\f125"; } -.ri-shut-down-line:before { content: "\f126"; } -.ri-side-bar-fill:before { content: "\f127"; } -.ri-side-bar-line:before { content: "\f128"; } -.ri-signal-tower-fill:before { content: "\f129"; } -.ri-signal-tower-line:before { content: "\f12a"; } -.ri-signal-wifi-1-fill:before { content: "\f12b"; } -.ri-signal-wifi-1-line:before { content: "\f12c"; } -.ri-signal-wifi-2-fill:before { content: "\f12d"; } -.ri-signal-wifi-2-line:before { content: "\f12e"; } -.ri-signal-wifi-3-fill:before { content: "\f12f"; } -.ri-signal-wifi-3-line:before { content: "\f130"; } -.ri-signal-wifi-error-fill:before { content: "\f131"; } -.ri-signal-wifi-error-line:before { content: "\f132"; } -.ri-signal-wifi-fill:before { content: "\f133"; } -.ri-signal-wifi-line:before { content: "\f134"; } -.ri-signal-wifi-off-fill:before { content: "\f135"; } -.ri-signal-wifi-off-line:before { content: "\f136"; } -.ri-sim-card-2-fill:before { content: "\f137"; } -.ri-sim-card-2-line:before { content: "\f138"; } -.ri-sim-card-fill:before { content: "\f139"; } -.ri-sim-card-line:before { content: "\f13a"; } -.ri-single-quotes-l:before { content: "\f13b"; } -.ri-single-quotes-r:before { content: "\f13c"; } -.ri-sip-fill:before { content: "\f13d"; } -.ri-sip-line:before { content: "\f13e"; } -.ri-skip-back-fill:before { content: "\f13f"; } -.ri-skip-back-line:before { content: "\f140"; } -.ri-skip-back-mini-fill:before { content: "\f141"; } -.ri-skip-back-mini-line:before { content: "\f142"; } -.ri-skip-forward-fill:before { content: "\f143"; } -.ri-skip-forward-line:before { content: "\f144"; } -.ri-skip-forward-mini-fill:before { content: "\f145"; } -.ri-skip-forward-mini-line:before { content: "\f146"; } -.ri-skull-2-fill:before { content: "\f147"; } -.ri-skull-2-line:before { content: "\f148"; } -.ri-skull-fill:before { content: "\f149"; } -.ri-skull-line:before { content: "\f14a"; } -.ri-skype-fill:before { content: "\f14b"; } -.ri-skype-line:before { content: "\f14c"; } -.ri-slack-fill:before { content: "\f14d"; } -.ri-slack-line:before { content: "\f14e"; } -.ri-slice-fill:before { content: "\f14f"; } -.ri-slice-line:before { content: "\f150"; } -.ri-slideshow-2-fill:before { content: "\f151"; } -.ri-slideshow-2-line:before { content: "\f152"; } -.ri-slideshow-3-fill:before { content: "\f153"; } -.ri-slideshow-3-line:before { content: "\f154"; } -.ri-slideshow-4-fill:before { content: "\f155"; } -.ri-slideshow-4-line:before { content: "\f156"; } -.ri-slideshow-fill:before { content: "\f157"; } -.ri-slideshow-line:before { content: "\f158"; } -.ri-smartphone-fill:before { content: "\f159"; } -.ri-smartphone-line:before { content: "\f15a"; } -.ri-snapchat-fill:before { content: "\f15b"; } -.ri-snapchat-line:before { content: "\f15c"; } -.ri-snowy-fill:before { content: "\f15d"; } -.ri-snowy-line:before { content: "\f15e"; } -.ri-sort-asc:before { content: "\f15f"; } -.ri-sort-desc:before { content: "\f160"; } -.ri-sound-module-fill:before { content: "\f161"; } -.ri-sound-module-line:before { content: "\f162"; } -.ri-soundcloud-fill:before { content: "\f163"; } -.ri-soundcloud-line:before { content: "\f164"; } -.ri-space-ship-fill:before { content: "\f165"; } -.ri-space-ship-line:before { content: "\f166"; } -.ri-space:before { content: "\f167"; } -.ri-spam-2-fill:before { content: "\f168"; } -.ri-spam-2-line:before { content: "\f169"; } -.ri-spam-3-fill:before { content: "\f16a"; } -.ri-spam-3-line:before { content: "\f16b"; } -.ri-spam-fill:before { content: "\f16c"; } -.ri-spam-line:before { content: "\f16d"; } -.ri-speaker-2-fill:before { content: "\f16e"; } -.ri-speaker-2-line:before { content: "\f16f"; } -.ri-speaker-3-fill:before { content: "\f170"; } -.ri-speaker-3-line:before { content: "\f171"; } -.ri-speaker-fill:before { content: "\f172"; } -.ri-speaker-line:before { content: "\f173"; } -.ri-spectrum-fill:before { content: "\f174"; } -.ri-spectrum-line:before { content: "\f175"; } -.ri-speed-fill:before { content: "\f176"; } -.ri-speed-line:before { content: "\f177"; } -.ri-speed-mini-fill:before { content: "\f178"; } -.ri-speed-mini-line:before { content: "\f179"; } -.ri-split-cells-horizontal:before { content: "\f17a"; } -.ri-split-cells-vertical:before { content: "\f17b"; } -.ri-spotify-fill:before { content: "\f17c"; } -.ri-spotify-line:before { content: "\f17d"; } -.ri-spy-fill:before { content: "\f17e"; } -.ri-spy-line:before { content: "\f17f"; } -.ri-stack-fill:before { content: "\f180"; } -.ri-stack-line:before { content: "\f181"; } -.ri-stack-overflow-fill:before { content: "\f182"; } -.ri-stack-overflow-line:before { content: "\f183"; } -.ri-stackshare-fill:before { content: "\f184"; } -.ri-stackshare-line:before { content: "\f185"; } -.ri-star-fill:before { content: "\f186"; } -.ri-star-half-fill:before { content: "\f187"; } -.ri-star-half-line:before { content: "\f188"; } -.ri-star-half-s-fill:before { content: "\f189"; } -.ri-star-half-s-line:before { content: "\f18a"; } -.ri-star-line:before { content: "\f18b"; } -.ri-star-s-fill:before { content: "\f18c"; } -.ri-star-s-line:before { content: "\f18d"; } -.ri-star-smile-fill:before { content: "\f18e"; } -.ri-star-smile-line:before { content: "\f18f"; } -.ri-steam-fill:before { content: "\f190"; } -.ri-steam-line:before { content: "\f191"; } -.ri-steering-2-fill:before { content: "\f192"; } -.ri-steering-2-line:before { content: "\f193"; } -.ri-steering-fill:before { content: "\f194"; } -.ri-steering-line:before { content: "\f195"; } -.ri-stethoscope-fill:before { content: "\f196"; } -.ri-stethoscope-line:before { content: "\f197"; } -.ri-sticky-note-2-fill:before { content: "\f198"; } -.ri-sticky-note-2-line:before { content: "\f199"; } -.ri-sticky-note-fill:before { content: "\f19a"; } -.ri-sticky-note-line:before { content: "\f19b"; } -.ri-stock-fill:before { content: "\f19c"; } -.ri-stock-line:before { content: "\f19d"; } -.ri-stop-circle-fill:before { content: "\f19e"; } -.ri-stop-circle-line:before { content: "\f19f"; } -.ri-stop-fill:before { content: "\f1a0"; } -.ri-stop-line:before { content: "\f1a1"; } -.ri-stop-mini-fill:before { content: "\f1a2"; } -.ri-stop-mini-line:before { content: "\f1a3"; } -.ri-store-2-fill:before { content: "\f1a4"; } -.ri-store-2-line:before { content: "\f1a5"; } -.ri-store-3-fill:before { content: "\f1a6"; } -.ri-store-3-line:before { content: "\f1a7"; } -.ri-store-fill:before { content: "\f1a8"; } -.ri-store-line:before { content: "\f1a9"; } -.ri-strikethrough-2:before { content: "\f1aa"; } -.ri-strikethrough:before { content: "\f1ab"; } -.ri-subscript-2:before { content: "\f1ac"; } -.ri-subscript:before { content: "\f1ad"; } -.ri-subtract-fill:before { content: "\f1ae"; } -.ri-subtract-line:before { content: "\f1af"; } -.ri-subway-fill:before { content: "\f1b0"; } -.ri-subway-line:before { content: "\f1b1"; } -.ri-subway-wifi-fill:before { content: "\f1b2"; } -.ri-subway-wifi-line:before { content: "\f1b3"; } -.ri-suitcase-2-fill:before { content: "\f1b4"; } -.ri-suitcase-2-line:before { content: "\f1b5"; } -.ri-suitcase-3-fill:before { content: "\f1b6"; } -.ri-suitcase-3-line:before { content: "\f1b7"; } -.ri-suitcase-fill:before { content: "\f1b8"; } -.ri-suitcase-line:before { content: "\f1b9"; } -.ri-sun-cloudy-fill:before { content: "\f1ba"; } -.ri-sun-cloudy-line:before { content: "\f1bb"; } -.ri-sun-fill:before { content: "\f1bc"; } -.ri-sun-foggy-fill:before { content: "\f1bd"; } -.ri-sun-foggy-line:before { content: "\f1be"; } -.ri-sun-line:before { content: "\f1bf"; } -.ri-superscript-2:before { content: "\f1c0"; } -.ri-superscript:before { content: "\f1c1"; } -.ri-surgical-mask-fill:before { content: "\f1c2"; } -.ri-surgical-mask-line:before { content: "\f1c3"; } -.ri-surround-sound-fill:before { content: "\f1c4"; } -.ri-surround-sound-line:before { content: "\f1c5"; } -.ri-survey-fill:before { content: "\f1c6"; } -.ri-survey-line:before { content: "\f1c7"; } -.ri-swap-box-fill:before { content: "\f1c8"; } -.ri-swap-box-line:before { content: "\f1c9"; } -.ri-swap-fill:before { content: "\f1ca"; } -.ri-swap-line:before { content: "\f1cb"; } -.ri-switch-fill:before { content: "\f1cc"; } -.ri-switch-line:before { content: "\f1cd"; } -.ri-sword-fill:before { content: "\f1ce"; } -.ri-sword-line:before { content: "\f1cf"; } -.ri-syringe-fill:before { content: "\f1d0"; } -.ri-syringe-line:before { content: "\f1d1"; } -.ri-t-box-fill:before { content: "\f1d2"; } -.ri-t-box-line:before { content: "\f1d3"; } -.ri-t-shirt-2-fill:before { content: "\f1d4"; } -.ri-t-shirt-2-line:before { content: "\f1d5"; } -.ri-t-shirt-air-fill:before { content: "\f1d6"; } -.ri-t-shirt-air-line:before { content: "\f1d7"; } -.ri-t-shirt-fill:before { content: "\f1d8"; } -.ri-t-shirt-line:before { content: "\f1d9"; } -.ri-table-2:before { content: "\f1da"; } -.ri-table-alt-fill:before { content: "\f1db"; } -.ri-table-alt-line:before { content: "\f1dc"; } -.ri-table-fill:before { content: "\f1dd"; } -.ri-table-line:before { content: "\f1de"; } -.ri-tablet-fill:before { content: "\f1df"; } -.ri-tablet-line:before { content: "\f1e0"; } -.ri-takeaway-fill:before { content: "\f1e1"; } -.ri-takeaway-line:before { content: "\f1e2"; } -.ri-taobao-fill:before { content: "\f1e3"; } -.ri-taobao-line:before { content: "\f1e4"; } -.ri-tape-fill:before { content: "\f1e5"; } -.ri-tape-line:before { content: "\f1e6"; } -.ri-task-fill:before { content: "\f1e7"; } -.ri-task-line:before { content: "\f1e8"; } -.ri-taxi-fill:before { content: "\f1e9"; } -.ri-taxi-line:before { content: "\f1ea"; } -.ri-taxi-wifi-fill:before { content: "\f1eb"; } -.ri-taxi-wifi-line:before { content: "\f1ec"; } -.ri-team-fill:before { content: "\f1ed"; } -.ri-team-line:before { content: "\f1ee"; } -.ri-telegram-fill:before { content: "\f1ef"; } -.ri-telegram-line:before { content: "\f1f0"; } -.ri-temp-cold-fill:before { content: "\f1f1"; } -.ri-temp-cold-line:before { content: "\f1f2"; } -.ri-temp-hot-fill:before { content: "\f1f3"; } -.ri-temp-hot-line:before { content: "\f1f4"; } -.ri-terminal-box-fill:before { content: "\f1f5"; } -.ri-terminal-box-line:before { content: "\f1f6"; } -.ri-terminal-fill:before { content: "\f1f7"; } -.ri-terminal-line:before { content: "\f1f8"; } -.ri-terminal-window-fill:before { content: "\f1f9"; } -.ri-terminal-window-line:before { content: "\f1fa"; } -.ri-test-tube-fill:before { content: "\f1fb"; } -.ri-test-tube-line:before { content: "\f1fc"; } -.ri-text-direction-l:before { content: "\f1fd"; } -.ri-text-direction-r:before { content: "\f1fe"; } -.ri-text-spacing:before { content: "\f1ff"; } -.ri-text-wrap:before { content: "\f200"; } -.ri-text:before { content: "\f201"; } -.ri-thermometer-fill:before { content: "\f202"; } -.ri-thermometer-line:before { content: "\f203"; } -.ri-thumb-down-fill:before { content: "\f204"; } -.ri-thumb-down-line:before { content: "\f205"; } -.ri-thumb-up-fill:before { content: "\f206"; } -.ri-thumb-up-line:before { content: "\f207"; } -.ri-thunderstorms-fill:before { content: "\f208"; } -.ri-thunderstorms-line:before { content: "\f209"; } -.ri-ticket-2-fill:before { content: "\f20a"; } -.ri-ticket-2-line:before { content: "\f20b"; } -.ri-ticket-fill:before { content: "\f20c"; } -.ri-ticket-line:before { content: "\f20d"; } -.ri-time-fill:before { content: "\f20e"; } -.ri-time-line:before { content: "\f20f"; } -.ri-timer-2-fill:before { content: "\f210"; } -.ri-timer-2-line:before { content: "\f211"; } -.ri-timer-fill:before { content: "\f212"; } -.ri-timer-flash-fill:before { content: "\f213"; } -.ri-timer-flash-line:before { content: "\f214"; } -.ri-timer-line:before { content: "\f215"; } -.ri-todo-fill:before { content: "\f216"; } -.ri-todo-line:before { content: "\f217"; } -.ri-toggle-fill:before { content: "\f218"; } -.ri-toggle-line:before { content: "\f219"; } -.ri-tools-fill:before { content: "\f21a"; } -.ri-tools-line:before { content: "\f21b"; } -.ri-tornado-fill:before { content: "\f21c"; } -.ri-tornado-line:before { content: "\f21d"; } -.ri-trademark-fill:before { content: "\f21e"; } -.ri-trademark-line:before { content: "\f21f"; } -.ri-traffic-light-fill:before { content: "\f220"; } -.ri-traffic-light-line:before { content: "\f221"; } -.ri-train-fill:before { content: "\f222"; } -.ri-train-line:before { content: "\f223"; } -.ri-train-wifi-fill:before { content: "\f224"; } -.ri-train-wifi-line:before { content: "\f225"; } -.ri-translate-2:before { content: "\f226"; } -.ri-translate:before { content: "\f227"; } -.ri-travesti-fill:before { content: "\f228"; } -.ri-travesti-line:before { content: "\f229"; } -.ri-treasure-map-fill:before { content: "\f22a"; } -.ri-treasure-map-line:before { content: "\f22b"; } -.ri-trello-fill:before { content: "\f22c"; } -.ri-trello-line:before { content: "\f22d"; } -.ri-trophy-fill:before { content: "\f22e"; } -.ri-trophy-line:before { content: "\f22f"; } -.ri-truck-fill:before { content: "\f230"; } -.ri-truck-line:before { content: "\f231"; } -.ri-tumblr-fill:before { content: "\f232"; } -.ri-tumblr-line:before { content: "\f233"; } -.ri-tv-2-fill:before { content: "\f234"; } -.ri-tv-2-line:before { content: "\f235"; } -.ri-tv-fill:before { content: "\f236"; } -.ri-tv-line:before { content: "\f237"; } -.ri-twitch-fill:before { content: "\f238"; } -.ri-twitch-line:before { content: "\f239"; } -.ri-twitter-fill:before { content: "\f23a"; } -.ri-twitter-line:before { content: "\f23b"; } -.ri-typhoon-fill:before { content: "\f23c"; } -.ri-typhoon-line:before { content: "\f23d"; } -.ri-u-disk-fill:before { content: "\f23e"; } -.ri-u-disk-line:before { content: "\f23f"; } -.ri-ubuntu-fill:before { content: "\f240"; } -.ri-ubuntu-line:before { content: "\f241"; } -.ri-umbrella-fill:before { content: "\f242"; } -.ri-umbrella-line:before { content: "\f243"; } -.ri-underline:before { content: "\f244"; } -.ri-uninstall-fill:before { content: "\f245"; } -.ri-uninstall-line:before { content: "\f246"; } -.ri-unsplash-fill:before { content: "\f247"; } -.ri-unsplash-line:before { content: "\f248"; } -.ri-upload-2-fill:before { content: "\f249"; } -.ri-upload-2-line:before { content: "\f24a"; } -.ri-upload-cloud-2-fill:before { content: "\f24b"; } -.ri-upload-cloud-2-line:before { content: "\f24c"; } -.ri-upload-cloud-fill:before { content: "\f24d"; } -.ri-upload-cloud-line:before { content: "\f24e"; } -.ri-upload-fill:before { content: "\f24f"; } -.ri-upload-line:before { content: "\f250"; } -.ri-usb-fill:before { content: "\f251"; } -.ri-usb-line:before { content: "\f252"; } -.ri-user-2-fill:before { content: "\f253"; } -.ri-user-2-line:before { content: "\f254"; } -.ri-user-3-fill:before { content: "\f255"; } -.ri-user-3-line:before { content: "\f256"; } -.ri-user-4-fill:before { content: "\f257"; } -.ri-user-4-line:before { content: "\f258"; } -.ri-user-5-fill:before { content: "\f259"; } -.ri-user-5-line:before { content: "\f25a"; } -.ri-user-6-fill:before { content: "\f25b"; } -.ri-user-6-line:before { content: "\f25c"; } -.ri-user-add-fill:before { content: "\f25d"; } -.ri-user-add-line:before { content: "\f25e"; } -.ri-user-fill:before { content: "\f25f"; } -.ri-user-follow-fill:before { content: "\f260"; } -.ri-user-follow-line:before { content: "\f261"; } -.ri-user-heart-fill:before { content: "\f262"; } -.ri-user-heart-line:before { content: "\f263"; } -.ri-user-line:before { content: "\f264"; } -.ri-user-location-fill:before { content: "\f265"; } -.ri-user-location-line:before { content: "\f266"; } -.ri-user-received-2-fill:before { content: "\f267"; } -.ri-user-received-2-line:before { content: "\f268"; } -.ri-user-received-fill:before { content: "\f269"; } -.ri-user-received-line:before { content: "\f26a"; } -.ri-user-search-fill:before { content: "\f26b"; } -.ri-user-search-line:before { content: "\f26c"; } -.ri-user-settings-fill:before { content: "\f26d"; } -.ri-user-settings-line:before { content: "\f26e"; } -.ri-user-shared-2-fill:before { content: "\f26f"; } -.ri-user-shared-2-line:before { content: "\f270"; } -.ri-user-shared-fill:before { content: "\f271"; } -.ri-user-shared-line:before { content: "\f272"; } -.ri-user-smile-fill:before { content: "\f273"; } -.ri-user-smile-line:before { content: "\f274"; } -.ri-user-star-fill:before { content: "\f275"; } -.ri-user-star-line:before { content: "\f276"; } -.ri-user-unfollow-fill:before { content: "\f277"; } -.ri-user-unfollow-line:before { content: "\f278"; } -.ri-user-voice-fill:before { content: "\f279"; } -.ri-user-voice-line:before { content: "\f27a"; } -.ri-video-add-fill:before { content: "\f27b"; } -.ri-video-add-line:before { content: "\f27c"; } -.ri-video-chat-fill:before { content: "\f27d"; } -.ri-video-chat-line:before { content: "\f27e"; } -.ri-video-download-fill:before { content: "\f27f"; } -.ri-video-download-line:before { content: "\f280"; } -.ri-video-fill:before { content: "\f281"; } -.ri-video-line:before { content: "\f282"; } -.ri-video-upload-fill:before { content: "\f283"; } -.ri-video-upload-line:before { content: "\f284"; } -.ri-vidicon-2-fill:before { content: "\f285"; } -.ri-vidicon-2-line:before { content: "\f286"; } -.ri-vidicon-fill:before { content: "\f287"; } -.ri-vidicon-line:before { content: "\f288"; } -.ri-vimeo-fill:before { content: "\f289"; } -.ri-vimeo-line:before { content: "\f28a"; } -.ri-vip-crown-2-fill:before { content: "\f28b"; } -.ri-vip-crown-2-line:before { content: "\f28c"; } -.ri-vip-crown-fill:before { content: "\f28d"; } -.ri-vip-crown-line:before { content: "\f28e"; } -.ri-vip-diamond-fill:before { content: "\f28f"; } -.ri-vip-diamond-line:before { content: "\f290"; } -.ri-vip-fill:before { content: "\f291"; } -.ri-vip-line:before { content: "\f292"; } -.ri-virus-fill:before { content: "\f293"; } -.ri-virus-line:before { content: "\f294"; } -.ri-visa-fill:before { content: "\f295"; } -.ri-visa-line:before { content: "\f296"; } -.ri-voice-recognition-fill:before { content: "\f297"; } -.ri-voice-recognition-line:before { content: "\f298"; } -.ri-voiceprint-fill:before { content: "\f299"; } -.ri-voiceprint-line:before { content: "\f29a"; } -.ri-volume-down-fill:before { content: "\f29b"; } -.ri-volume-down-line:before { content: "\f29c"; } -.ri-volume-mute-fill:before { content: "\f29d"; } -.ri-volume-mute-line:before { content: "\f29e"; } -.ri-volume-off-vibrate-fill:before { content: "\f29f"; } -.ri-volume-off-vibrate-line:before { content: "\f2a0"; } -.ri-volume-up-fill:before { content: "\f2a1"; } -.ri-volume-up-line:before { content: "\f2a2"; } -.ri-volume-vibrate-fill:before { content: "\f2a3"; } -.ri-volume-vibrate-line:before { content: "\f2a4"; } -.ri-vuejs-fill:before { content: "\f2a5"; } -.ri-vuejs-line:before { content: "\f2a6"; } -.ri-walk-fill:before { content: "\f2a7"; } -.ri-walk-line:before { content: "\f2a8"; } -.ri-wallet-2-fill:before { content: "\f2a9"; } -.ri-wallet-2-line:before { content: "\f2aa"; } -.ri-wallet-3-fill:before { content: "\f2ab"; } -.ri-wallet-3-line:before { content: "\f2ac"; } -.ri-wallet-fill:before { content: "\f2ad"; } -.ri-wallet-line:before { content: "\f2ae"; } -.ri-water-flash-fill:before { content: "\f2af"; } -.ri-water-flash-line:before { content: "\f2b0"; } -.ri-webcam-fill:before { content: "\f2b1"; } -.ri-webcam-line:before { content: "\f2b2"; } -.ri-wechat-2-fill:before { content: "\f2b3"; } -.ri-wechat-2-line:before { content: "\f2b4"; } -.ri-wechat-fill:before { content: "\f2b5"; } -.ri-wechat-line:before { content: "\f2b6"; } -.ri-wechat-pay-fill:before { content: "\f2b7"; } -.ri-wechat-pay-line:before { content: "\f2b8"; } -.ri-weibo-fill:before { content: "\f2b9"; } -.ri-weibo-line:before { content: "\f2ba"; } -.ri-whatsapp-fill:before { content: "\f2bb"; } -.ri-whatsapp-line:before { content: "\f2bc"; } -.ri-wheelchair-fill:before { content: "\f2bd"; } -.ri-wheelchair-line:before { content: "\f2be"; } -.ri-wifi-fill:before { content: "\f2bf"; } -.ri-wifi-line:before { content: "\f2c0"; } -.ri-wifi-off-fill:before { content: "\f2c1"; } -.ri-wifi-off-line:before { content: "\f2c2"; } -.ri-window-2-fill:before { content: "\f2c3"; } -.ri-window-2-line:before { content: "\f2c4"; } -.ri-window-fill:before { content: "\f2c5"; } -.ri-window-line:before { content: "\f2c6"; } -.ri-windows-fill:before { content: "\f2c7"; } -.ri-windows-line:before { content: "\f2c8"; } -.ri-windy-fill:before { content: "\f2c9"; } -.ri-windy-line:before { content: "\f2ca"; } -.ri-wireless-charging-fill:before { content: "\f2cb"; } -.ri-wireless-charging-line:before { content: "\f2cc"; } -.ri-women-fill:before { content: "\f2cd"; } -.ri-women-line:before { content: "\f2ce"; } -.ri-wubi-input:before { content: "\f2cf"; } -.ri-xbox-fill:before { content: "\f2d0"; } -.ri-xbox-line:before { content: "\f2d1"; } -.ri-xing-fill:before { content: "\f2d2"; } -.ri-xing-line:before { content: "\f2d3"; } -.ri-youtube-fill:before { content: "\f2d4"; } -.ri-youtube-line:before { content: "\f2d5"; } -.ri-zcool-fill:before { content: "\f2d6"; } -.ri-zcool-line:before { content: "\f2d7"; } -.ri-zhihu-fill:before { content: "\f2d8"; } -.ri-zhihu-line:before { content: "\f2d9"; } -.ri-zoom-in-fill:before { content: "\f2da"; } -.ri-zoom-in-line:before { content: "\f2db"; } -.ri-zoom-out-fill:before { content: "\f2dc"; } -.ri-zoom-out-line:before { content: "\f2dd"; } -.ri-zzz-fill:before { content: "\f2de"; } -.ri-zzz-line:before { content: "\f2df"; } -.ri-arrow-down-double-fill:before { content: "\f2e0"; } -.ri-arrow-down-double-line:before { content: "\f2e1"; } -.ri-arrow-left-double-fill:before { content: "\f2e2"; } -.ri-arrow-left-double-line:before { content: "\f2e3"; } -.ri-arrow-right-double-fill:before { content: "\f2e4"; } -.ri-arrow-right-double-line:before { content: "\f2e5"; } -.ri-arrow-turn-back-fill:before { content: "\f2e6"; } -.ri-arrow-turn-back-line:before { content: "\f2e7"; } -.ri-arrow-turn-forward-fill:before { content: "\f2e8"; } -.ri-arrow-turn-forward-line:before { content: "\f2e9"; } -.ri-arrow-up-double-fill:before { content: "\f2ea"; } -.ri-arrow-up-double-line:before { content: "\f2eb"; } -.ri-bard-fill:before { content: "\f2ec"; } -.ri-bard-line:before { content: "\f2ed"; } -.ri-bootstrap-fill:before { content: "\f2ee"; } -.ri-bootstrap-line:before { content: "\f2ef"; } -.ri-box-1-fill:before { content: "\f2f0"; } -.ri-box-1-line:before { content: "\f2f1"; } -.ri-box-2-fill:before { content: "\f2f2"; } -.ri-box-2-line:before { content: "\f2f3"; } -.ri-box-3-fill:before { content: "\f2f4"; } -.ri-box-3-line:before { content: "\f2f5"; } -.ri-brain-fill:before { content: "\f2f6"; } -.ri-brain-line:before { content: "\f2f7"; } -.ri-candle-fill:before { content: "\f2f8"; } -.ri-candle-line:before { content: "\f2f9"; } -.ri-cash-fill:before { content: "\f2fa"; } -.ri-cash-line:before { content: "\f2fb"; } -.ri-contract-left-fill:before { content: "\f2fc"; } -.ri-contract-left-line:before { content: "\f2fd"; } -.ri-contract-left-right-fill:before { content: "\f2fe"; } -.ri-contract-left-right-line:before { content: "\f2ff"; } -.ri-contract-right-fill:before { content: "\f300"; } -.ri-contract-right-line:before { content: "\f301"; } -.ri-contract-up-down-fill:before { content: "\f302"; } -.ri-contract-up-down-line:before { content: "\f303"; } -.ri-copilot-fill:before { content: "\f304"; } -.ri-copilot-line:before { content: "\f305"; } -.ri-corner-down-left-fill:before { content: "\f306"; } -.ri-corner-down-left-line:before { content: "\f307"; } -.ri-corner-down-right-fill:before { content: "\f308"; } -.ri-corner-down-right-line:before { content: "\f309"; } -.ri-corner-left-down-fill:before { content: "\f30a"; } -.ri-corner-left-down-line:before { content: "\f30b"; } -.ri-corner-left-up-fill:before { content: "\f30c"; } -.ri-corner-left-up-line:before { content: "\f30d"; } -.ri-corner-right-down-fill:before { content: "\f30e"; } -.ri-corner-right-down-line:before { content: "\f30f"; } -.ri-corner-right-up-fill:before { content: "\f310"; } -.ri-corner-right-up-line:before { content: "\f311"; } -.ri-corner-up-left-double-fill:before { content: "\f312"; } -.ri-corner-up-left-double-line:before { content: "\f313"; } -.ri-corner-up-left-fill:before { content: "\f314"; } -.ri-corner-up-left-line:before { content: "\f315"; } -.ri-corner-up-right-double-fill:before { content: "\f316"; } -.ri-corner-up-right-double-line:before { content: "\f317"; } -.ri-corner-up-right-fill:before { content: "\f318"; } -.ri-corner-up-right-line:before { content: "\f319"; } -.ri-cross-fill:before { content: "\f31a"; } -.ri-cross-line:before { content: "\f31b"; } -.ri-edge-new-fill:before { content: "\f31c"; } -.ri-edge-new-line:before { content: "\f31d"; } -.ri-equal-fill:before { content: "\f31e"; } -.ri-equal-line:before { content: "\f31f"; } -.ri-expand-left-fill:before { content: "\f320"; } -.ri-expand-left-line:before { content: "\f321"; } -.ri-expand-left-right-fill:before { content: "\f322"; } -.ri-expand-left-right-line:before { content: "\f323"; } -.ri-expand-right-fill:before { content: "\f324"; } -.ri-expand-right-line:before { content: "\f325"; } -.ri-expand-up-down-fill:before { content: "\f326"; } -.ri-expand-up-down-line:before { content: "\f327"; } -.ri-flickr-fill:before { content: "\f328"; } -.ri-flickr-line:before { content: "\f329"; } -.ri-forward-10-fill:before { content: "\f32a"; } -.ri-forward-10-line:before { content: "\f32b"; } -.ri-forward-15-fill:before { content: "\f32c"; } -.ri-forward-15-line:before { content: "\f32d"; } -.ri-forward-30-fill:before { content: "\f32e"; } -.ri-forward-30-line:before { content: "\f32f"; } -.ri-forward-5-fill:before { content: "\f330"; } -.ri-forward-5-line:before { content: "\f331"; } -.ri-graduation-cap-fill:before { content: "\f332"; } -.ri-graduation-cap-line:before { content: "\f333"; } -.ri-home-office-fill:before { content: "\f334"; } -.ri-home-office-line:before { content: "\f335"; } -.ri-hourglass-2-fill:before { content: "\f336"; } -.ri-hourglass-2-line:before { content: "\f337"; } -.ri-hourglass-fill:before { content: "\f338"; } -.ri-hourglass-line:before { content: "\f339"; } -.ri-javascript-fill:before { content: "\f33a"; } -.ri-javascript-line:before { content: "\f33b"; } -.ri-loop-left-fill:before { content: "\f33c"; } -.ri-loop-left-line:before { content: "\f33d"; } -.ri-loop-right-fill:before { content: "\f33e"; } -.ri-loop-right-line:before { content: "\f33f"; } -.ri-memories-fill:before { content: "\f340"; } -.ri-memories-line:before { content: "\f341"; } -.ri-meta-fill:before { content: "\f342"; } -.ri-meta-line:before { content: "\f343"; } -.ri-microsoft-loop-fill:before { content: "\f344"; } -.ri-microsoft-loop-line:before { content: "\f345"; } -.ri-nft-fill:before { content: "\f346"; } -.ri-nft-line:before { content: "\f347"; } -.ri-notion-fill:before { content: "\f348"; } -.ri-notion-line:before { content: "\f349"; } -.ri-openai-fill:before { content: "\f34a"; } -.ri-openai-line:before { content: "\f34b"; } -.ri-overline:before { content: "\f34c"; } -.ri-p2p-fill:before { content: "\f34d"; } -.ri-p2p-line:before { content: "\f34e"; } -.ri-presentation-fill:before { content: "\f34f"; } -.ri-presentation-line:before { content: "\f350"; } -.ri-replay-10-fill:before { content: "\f351"; } -.ri-replay-10-line:before { content: "\f352"; } -.ri-replay-15-fill:before { content: "\f353"; } -.ri-replay-15-line:before { content: "\f354"; } -.ri-replay-30-fill:before { content: "\f355"; } -.ri-replay-30-line:before { content: "\f356"; } -.ri-replay-5-fill:before { content: "\f357"; } -.ri-replay-5-line:before { content: "\f358"; } -.ri-school-fill:before { content: "\f359"; } -.ri-school-line:before { content: "\f35a"; } -.ri-shining-2-fill:before { content: "\f35b"; } -.ri-shining-2-line:before { content: "\f35c"; } -.ri-shining-fill:before { content: "\f35d"; } -.ri-shining-line:before { content: "\f35e"; } -.ri-sketching:before { content: "\f35f"; } -.ri-skip-down-fill:before { content: "\f360"; } -.ri-skip-down-line:before { content: "\f361"; } -.ri-skip-left-fill:before { content: "\f362"; } -.ri-skip-left-line:before { content: "\f363"; } -.ri-skip-right-fill:before { content: "\f364"; } -.ri-skip-right-line:before { content: "\f365"; } -.ri-skip-up-fill:before { content: "\f366"; } -.ri-skip-up-line:before { content: "\f367"; } -.ri-slow-down-fill:before { content: "\f368"; } -.ri-slow-down-line:before { content: "\f369"; } -.ri-sparkling-2-fill:before { content: "\f36a"; } -.ri-sparkling-2-line:before { content: "\f36b"; } -.ri-sparkling-fill:before { content: "\f36c"; } -.ri-sparkling-line:before { content: "\f36d"; } -.ri-speak-fill:before { content: "\f36e"; } -.ri-speak-line:before { content: "\f36f"; } -.ri-speed-up-fill:before { content: "\f370"; } -.ri-speed-up-line:before { content: "\f371"; } -.ri-tiktok-fill:before { content: "\f372"; } -.ri-tiktok-line:before { content: "\f373"; } -.ri-token-swap-fill:before { content: "\f374"; } -.ri-token-swap-line:before { content: "\f375"; } -.ri-unpin-fill:before { content: "\f376"; } -.ri-unpin-line:before { content: "\f377"; } -.ri-wechat-channels-fill:before { content: "\f378"; } -.ri-wechat-channels-line:before { content: "\f379"; } -.ri-wordpress-fill:before { content: "\f37a"; } -.ri-wordpress-line:before { content: "\f37b"; } -.ri-blender-fill:before { content: "\f37c"; } -.ri-blender-line:before { content: "\f37d"; } -.ri-emoji-sticker-fill:before { content: "\f37e"; } -.ri-emoji-sticker-line:before { content: "\f37f"; } -.ri-git-close-pull-request-fill:before { content: "\f380"; } -.ri-git-close-pull-request-line:before { content: "\f381"; } -.ri-instance-fill:before { content: "\f382"; } -.ri-instance-line:before { content: "\f383"; } -.ri-megaphone-fill:before { content: "\f384"; } -.ri-megaphone-line:before { content: "\f385"; } -.ri-pass-expired-fill:before { content: "\f386"; } -.ri-pass-expired-line:before { content: "\f387"; } -.ri-pass-pending-fill:before { content: "\f388"; } -.ri-pass-pending-line:before { content: "\f389"; } -.ri-pass-valid-fill:before { content: "\f38a"; } -.ri-pass-valid-line:before { content: "\f38b"; } -.ri-ai-generate:before { content: "\f38c"; } -.ri-calendar-close-fill:before { content: "\f38d"; } -.ri-calendar-close-line:before { content: "\f38e"; } -.ri-draggable:before { content: "\f38f"; } -.ri-font-family:before { content: "\f390"; } -.ri-font-mono:before { content: "\f391"; } -.ri-font-sans-serif:before { content: "\f392"; } -.ri-font-sans:before { content: "\f393"; } -.ri-hard-drive-3-fill:before { content: "\f394"; } -.ri-hard-drive-3-line:before { content: "\f395"; } -.ri-kick-fill:before { content: "\f396"; } -.ri-kick-line:before { content: "\f397"; } -.ri-list-check-3:before { content: "\f398"; } -.ri-list-indefinite:before { content: "\f399"; } -.ri-list-ordered-2:before { content: "\f39a"; } -.ri-list-radio:before { content: "\f39b"; } -.ri-openbase-fill:before { content: "\f39c"; } -.ri-openbase-line:before { content: "\f39d"; } -.ri-planet-fill:before { content: "\f39e"; } -.ri-planet-line:before { content: "\f39f"; } -.ri-prohibited-fill:before { content: "\f3a0"; } -.ri-prohibited-line:before { content: "\f3a1"; } -.ri-quote-text:before { content: "\f3a2"; } -.ri-seo-fill:before { content: "\f3a3"; } -.ri-seo-line:before { content: "\f3a4"; } -.ri-slash-commands:before { content: "\f3a5"; } -.ri-archive-2-fill:before { content: "\f3a6"; } -.ri-archive-2-line:before { content: "\f3a7"; } -.ri-inbox-2-fill:before { content: "\f3a8"; } -.ri-inbox-2-line:before { content: "\f3a9"; } -.ri-shake-hands-fill:before { content: "\f3aa"; } -.ri-shake-hands-line:before { content: "\f3ab"; } -.ri-supabase-fill:before { content: "\f3ac"; } -.ri-supabase-line:before { content: "\f3ad"; } -.ri-water-percent-fill:before { content: "\f3ae"; } -.ri-water-percent-line:before { content: "\f3af"; } -.ri-yuque-fill:before { content: "\f3b0"; } -.ri-yuque-line:before { content: "\f3b1"; } -.ri-crosshair-2-fill:before { content: "\f3b2"; } -.ri-crosshair-2-line:before { content: "\f3b3"; } -.ri-crosshair-fill:before { content: "\f3b4"; } -.ri-crosshair-line:before { content: "\f3b5"; } -.ri-file-close-fill:before { content: "\f3b6"; } -.ri-file-close-line:before { content: "\f3b7"; } -.ri-infinity-fill:before { content: "\f3b8"; } -.ri-infinity-line:before { content: "\f3b9"; } -.ri-rfid-fill:before { content: "\f3ba"; } -.ri-rfid-line:before { content: "\f3bb"; } -.ri-slash-commands-2:before { content: "\f3bc"; } -.ri-user-forbid-fill:before { content: "\f3bd"; } -.ri-user-forbid-line:before { content: "\f3be"; } -.ri-beer-fill:before { content: "\f3bf"; } -.ri-beer-line:before { content: "\f3c0"; } -.ri-circle-fill:before { content: "\f3c1"; } -.ri-circle-line:before { content: "\f3c2"; } -.ri-dropdown-list:before { content: "\f3c3"; } -.ri-file-image-fill:before { content: "\f3c4"; } -.ri-file-image-line:before { content: "\f3c5"; } -.ri-file-pdf-2-fill:before { content: "\f3c6"; } -.ri-file-pdf-2-line:before { content: "\f3c7"; } -.ri-file-video-fill:before { content: "\f3c8"; } -.ri-file-video-line:before { content: "\f3c9"; } -.ri-folder-image-fill:before { content: "\f3ca"; } -.ri-folder-image-line:before { content: "\f3cb"; } -.ri-folder-video-fill:before { content: "\f3cc"; } -.ri-folder-video-line:before { content: "\f3cd"; } -.ri-hexagon-fill:before { content: "\f3ce"; } -.ri-hexagon-line:before { content: "\f3cf"; } -.ri-menu-search-fill:before { content: "\f3d0"; } -.ri-menu-search-line:before { content: "\f3d1"; } -.ri-octagon-fill:before { content: "\f3d2"; } -.ri-octagon-line:before { content: "\f3d3"; } -.ri-pentagon-fill:before { content: "\f3d4"; } -.ri-pentagon-line:before { content: "\f3d5"; } -.ri-rectangle-fill:before { content: "\f3d6"; } -.ri-rectangle-line:before { content: "\f3d7"; } -.ri-robot-2-fill:before { content: "\f3d8"; } -.ri-robot-2-line:before { content: "\f3d9"; } -.ri-shapes-fill:before { content: "\f3da"; } -.ri-shapes-line:before { content: "\f3db"; } -.ri-square-fill:before { content: "\f3dc"; } -.ri-square-line:before { content: "\f3dd"; } -.ri-tent-fill:before { content: "\f3de"; } -.ri-tent-line:before { content: "\f3df"; } -.ri-threads-fill:before { content: "\f3e0"; } -.ri-threads-line:before { content: "\f3e1"; } -.ri-tree-fill:before { content: "\f3e2"; } -.ri-tree-line:before { content: "\f3e3"; } -.ri-triangle-fill:before { content: "\f3e4"; } -.ri-triangle-line:before { content: "\f3e5"; } -.ri-twitter-x-fill:before { content: "\f3e6"; } -.ri-twitter-x-line:before { content: "\f3e7"; } -.ri-verified-badge-fill:before { content: "\f3e8"; } -.ri-verified-badge-line:before { content: "\f3e9"; } -.ri-armchair-fill:before { content: "\f3ea"; } -.ri-armchair-line:before { content: "\f3eb"; } -.ri-bnb-fill:before { content: "\f3ec"; } -.ri-bnb-line:before { content: "\f3ed"; } -.ri-bread-fill:before { content: "\f3ee"; } -.ri-bread-line:before { content: "\f3ef"; } -.ri-btc-fill:before { content: "\f3f0"; } -.ri-btc-line:before { content: "\f3f1"; } -.ri-calendar-schedule-fill:before { content: "\f3f2"; } -.ri-calendar-schedule-line:before { content: "\f3f3"; } -.ri-dice-1-fill:before { content: "\f3f4"; } -.ri-dice-1-line:before { content: "\f3f5"; } -.ri-dice-2-fill:before { content: "\f3f6"; } -.ri-dice-2-line:before { content: "\f3f7"; } -.ri-dice-3-fill:before { content: "\f3f8"; } -.ri-dice-3-line:before { content: "\f3f9"; } -.ri-dice-4-fill:before { content: "\f3fa"; } -.ri-dice-4-line:before { content: "\f3fb"; } -.ri-dice-5-fill:before { content: "\f3fc"; } -.ri-dice-5-line:before { content: "\f3fd"; } -.ri-dice-6-fill:before { content: "\f3fe"; } -.ri-dice-6-line:before { content: "\f3ff"; } -.ri-dice-fill:before { content: "\f400"; } -.ri-dice-line:before { content: "\f401"; } -.ri-drinks-fill:before { content: "\f402"; } -.ri-drinks-line:before { content: "\f403"; } -.ri-equalizer-2-fill:before { content: "\f404"; } -.ri-equalizer-2-line:before { content: "\f405"; } -.ri-equalizer-3-fill:before { content: "\f406"; } -.ri-equalizer-3-line:before { content: "\f407"; } -.ri-eth-fill:before { content: "\f408"; } -.ri-eth-line:before { content: "\f409"; } -.ri-flower-fill:before { content: "\f40a"; } -.ri-flower-line:before { content: "\f40b"; } -.ri-glasses-2-fill:before { content: "\f40c"; } -.ri-glasses-2-line:before { content: "\f40d"; } -.ri-glasses-fill:before { content: "\f40e"; } -.ri-glasses-line:before { content: "\f40f"; } -.ri-goggles-fill:before { content: "\f410"; } -.ri-goggles-line:before { content: "\f411"; } -.ri-image-circle-fill:before { content: "\f412"; } -.ri-image-circle-line:before { content: "\f413"; } -.ri-info-i:before { content: "\f414"; } -.ri-money-rupee-circle-fill:before { content: "\f415"; } -.ri-money-rupee-circle-line:before { content: "\f416"; } -.ri-news-fill:before { content: "\f417"; } -.ri-news-line:before { content: "\f418"; } -.ri-robot-3-fill:before { content: "\f419"; } -.ri-robot-3-line:before { content: "\f41a"; } -.ri-share-2-fill:before { content: "\f41b"; } -.ri-share-2-line:before { content: "\f41c"; } -.ri-sofa-fill:before { content: "\f41d"; } -.ri-sofa-line:before { content: "\f41e"; } -.ri-svelte-fill:before { content: "\f41f"; } -.ri-svelte-line:before { content: "\f420"; } -.ri-vk-fill:before { content: "\f421"; } -.ri-vk-line:before { content: "\f422"; } -.ri-xrp-fill:before { content: "\f423"; } -.ri-xrp-line:before { content: "\f424"; } -.ri-xtz-fill:before { content: "\f425"; } -.ri-xtz-line:before { content: "\f426"; } -.ri-archive-stack-fill:before { content: "\f427"; } -.ri-archive-stack-line:before { content: "\f428"; } -.ri-bowl-fill:before { content: "\f429"; } -.ri-bowl-line:before { content: "\f42a"; } -.ri-calendar-view:before { content: "\f42b"; } -.ri-carousel-view:before { content: "\f42c"; } -.ri-code-block:before { content: "\f42d"; } -.ri-color-filter-fill:before { content: "\f42e"; } -.ri-color-filter-line:before { content: "\f42f"; } -.ri-contacts-book-3-fill:before { content: "\f430"; } -.ri-contacts-book-3-line:before { content: "\f431"; } -.ri-contract-fill:before { content: "\f432"; } -.ri-contract-line:before { content: "\f433"; } -.ri-drinks-2-fill:before { content: "\f434"; } -.ri-drinks-2-line:before { content: "\f435"; } -.ri-export-fill:before { content: "\f436"; } -.ri-export-line:before { content: "\f437"; } -.ri-file-check-fill:before { content: "\f438"; } -.ri-file-check-line:before { content: "\f439"; } -.ri-focus-mode:before { content: "\f43a"; } -.ri-folder-6-fill:before { content: "\f43b"; } -.ri-folder-6-line:before { content: "\f43c"; } -.ri-folder-check-fill:before { content: "\f43d"; } -.ri-folder-check-line:before { content: "\f43e"; } -.ri-folder-close-fill:before { content: "\f43f"; } -.ri-folder-close-line:before { content: "\f440"; } -.ri-folder-cloud-fill:before { content: "\f441"; } -.ri-folder-cloud-line:before { content: "\f442"; } -.ri-gallery-view-2:before { content: "\f443"; } -.ri-gallery-view:before { content: "\f444"; } -.ri-hand:before { content: "\f445"; } -.ri-import-fill:before { content: "\f446"; } -.ri-import-line:before { content: "\f447"; } -.ri-information-2-fill:before { content: "\f448"; } -.ri-information-2-line:before { content: "\f449"; } -.ri-kanban-view-2:before { content: "\f44a"; } -.ri-kanban-view:before { content: "\f44b"; } -.ri-list-view:before { content: "\f44c"; } -.ri-lock-star-fill:before { content: "\f44d"; } -.ri-lock-star-line:before { content: "\f44e"; } -.ri-puzzle-2-fill:before { content: "\f44f"; } -.ri-puzzle-2-line:before { content: "\f450"; } -.ri-puzzle-fill:before { content: "\f451"; } -.ri-puzzle-line:before { content: "\f452"; } -.ri-ram-2-fill:before { content: "\f453"; } -.ri-ram-2-line:before { content: "\f454"; } -.ri-ram-fill:before { content: "\f455"; } -.ri-ram-line:before { content: "\f456"; } -.ri-receipt-fill:before { content: "\f457"; } -.ri-receipt-line:before { content: "\f458"; } -.ri-shadow-fill:before { content: "\f459"; } -.ri-shadow-line:before { content: "\f45a"; } -.ri-sidebar-fold-fill:before { content: "\f45b"; } -.ri-sidebar-fold-line:before { content: "\f45c"; } -.ri-sidebar-unfold-fill:before { content: "\f45d"; } -.ri-sidebar-unfold-line:before { content: "\f45e"; } -.ri-slideshow-view:before { content: "\f45f"; } -.ri-sort-alphabet-asc:before { content: "\f460"; } -.ri-sort-alphabet-desc:before { content: "\f461"; } -.ri-sort-number-asc:before { content: "\f462"; } -.ri-sort-number-desc:before { content: "\f463"; } -.ri-stacked-view:before { content: "\f464"; } -.ri-sticky-note-add-fill:before { content: "\f465"; } -.ri-sticky-note-add-line:before { content: "\f466"; } -.ri-swap-2-fill:before { content: "\f467"; } -.ri-swap-2-line:before { content: "\f468"; } -.ri-swap-3-fill:before { content: "\f469"; } -.ri-swap-3-line:before { content: "\f46a"; } -.ri-table-3:before { content: "\f46b"; } -.ri-table-view:before { content: "\f46c"; } -.ri-text-block:before { content: "\f46d"; } -.ri-text-snippet:before { content: "\f46e"; } -.ri-timeline-view:before { content: "\f46f"; } -.ri-blogger-fill:before { content: "\f470"; } -.ri-blogger-line:before { content: "\f471"; } -.ri-chat-thread-fill:before { content: "\f472"; } -.ri-chat-thread-line:before { content: "\f473"; } -.ri-discount-percent-fill:before { content: "\f474"; } -.ri-discount-percent-line:before { content: "\f475"; } -.ri-exchange-2-fill:before { content: "\f476"; } -.ri-exchange-2-line:before { content: "\f477"; } -.ri-git-fork-fill:before { content: "\f478"; } -.ri-git-fork-line:before { content: "\f479"; } -.ri-input-field:before { content: "\f47a"; } -.ri-progress-1-fill:before { content: "\f47b"; } -.ri-progress-1-line:before { content: "\f47c"; } -.ri-progress-2-fill:before { content: "\f47d"; } -.ri-progress-2-line:before { content: "\f47e"; } -.ri-progress-3-fill:before { content: "\f47f"; } -.ri-progress-3-line:before { content: "\f480"; } -.ri-progress-4-fill:before { content: "\f481"; } -.ri-progress-4-line:before { content: "\f482"; } -.ri-progress-5-fill:before { content: "\f483"; } -.ri-progress-5-line:before { content: "\f484"; } -.ri-progress-6-fill:before { content: "\f485"; } -.ri-progress-6-line:before { content: "\f486"; } -.ri-progress-7-fill:before { content: "\f487"; } -.ri-progress-7-line:before { content: "\f488"; } -.ri-progress-8-fill:before { content: "\f489"; } -.ri-progress-8-line:before { content: "\f48a"; } -.ri-remix-run-fill:before { content: "\f48b"; } -.ri-remix-run-line:before { content: "\f48c"; } -.ri-signpost-fill:before { content: "\f48d"; } -.ri-signpost-line:before { content: "\f48e"; } -.ri-time-zone-fill:before { content: "\f48f"; } -.ri-time-zone-line:before { content: "\f490"; } -.ri-arrow-down-wide-fill:before { content: "\f491"; } -.ri-arrow-down-wide-line:before { content: "\f492"; } -.ri-arrow-left-wide-fill:before { content: "\f493"; } -.ri-arrow-left-wide-line:before { content: "\f494"; } -.ri-arrow-right-wide-fill:before { content: "\f495"; } -.ri-arrow-right-wide-line:before { content: "\f496"; } -.ri-arrow-up-wide-fill:before { content: "\f497"; } -.ri-arrow-up-wide-line:before { content: "\f498"; } -.ri-bluesky-fill:before { content: "\f499"; } -.ri-bluesky-line:before { content: "\f49a"; } -.ri-expand-height-fill:before { content: "\f49b"; } -.ri-expand-height-line:before { content: "\f49c"; } -.ri-expand-width-fill:before { content: "\f49d"; } -.ri-expand-width-line:before { content: "\f49e"; } -.ri-forward-end-fill:before { content: "\f49f"; } -.ri-forward-end-line:before { content: "\f4a0"; } -.ri-forward-end-mini-fill:before { content: "\f4a1"; } -.ri-forward-end-mini-line:before { content: "\f4a2"; } -.ri-friendica-fill:before { content: "\f4a3"; } -.ri-friendica-line:before { content: "\f4a4"; } -.ri-git-pr-draft-fill:before { content: "\f4a5"; } -.ri-git-pr-draft-line:before { content: "\f4a6"; } -.ri-play-reverse-fill:before { content: "\f4a7"; } -.ri-play-reverse-line:before { content: "\f4a8"; } -.ri-play-reverse-mini-fill:before { content: "\f4a9"; } -.ri-play-reverse-mini-line:before { content: "\f4aa"; } -.ri-rewind-start-fill:before { content: "\f4ab"; } -.ri-rewind-start-line:before { content: "\f4ac"; } -.ri-rewind-start-mini-fill:before { content: "\f4ad"; } -.ri-rewind-start-mini-line:before { content: "\f4ae"; } -.ri-scroll-to-bottom-fill:before { content: "\f4af"; } -.ri-scroll-to-bottom-line:before { content: "\f4b0"; } -.ri-add-large-fill:before { content: "\f4b1"; } -.ri-add-large-line:before { content: "\f4b2"; } -.ri-aed-electrodes-fill:before { content: "\f4b3"; } -.ri-aed-electrodes-line:before { content: "\f4b4"; } -.ri-aed-fill:before { content: "\f4b5"; } -.ri-aed-line:before { content: "\f4b6"; } -.ri-alibaba-cloud-fill:before { content: "\f4b7"; } -.ri-alibaba-cloud-line:before { content: "\f4b8"; } -.ri-align-item-bottom-fill:before { content: "\f4b9"; } -.ri-align-item-bottom-line:before { content: "\f4ba"; } -.ri-align-item-horizontal-center-fill:before { content: "\f4bb"; } -.ri-align-item-horizontal-center-line:before { content: "\f4bc"; } -.ri-align-item-left-fill:before { content: "\f4bd"; } -.ri-align-item-left-line:before { content: "\f4be"; } -.ri-align-item-right-fill:before { content: "\f4bf"; } -.ri-align-item-right-line:before { content: "\f4c0"; } -.ri-align-item-top-fill:before { content: "\f4c1"; } -.ri-align-item-top-line:before { content: "\f4c2"; } -.ri-align-item-vertical-center-fill:before { content: "\f4c3"; } -.ri-align-item-vertical-center-line:before { content: "\f4c4"; } -.ri-apps-2-add-fill:before { content: "\f4c5"; } -.ri-apps-2-add-line:before { content: "\f4c6"; } -.ri-close-large-fill:before { content: "\f4c7"; } -.ri-close-large-line:before { content: "\f4c8"; } -.ri-collapse-diagonal-2-fill:before { content: "\f4c9"; } -.ri-collapse-diagonal-2-line:before { content: "\f4ca"; } -.ri-collapse-diagonal-fill:before { content: "\f4cb"; } -.ri-collapse-diagonal-line:before { content: "\f4cc"; } -.ri-dashboard-horizontal-fill:before { content: "\f4cd"; } -.ri-dashboard-horizontal-line:before { content: "\f4ce"; } -.ri-expand-diagonal-2-fill:before { content: "\f4cf"; } -.ri-expand-diagonal-2-line:before { content: "\f4d0"; } -.ri-expand-diagonal-fill:before { content: "\f4d1"; } -.ri-expand-diagonal-line:before { content: "\f4d2"; } -.ri-firebase-fill:before { content: "\f4d3"; } -.ri-firebase-line:before { content: "\f4d4"; } -.ri-flip-horizontal-2-fill:before { content: "\f4d5"; } -.ri-flip-horizontal-2-line:before { content: "\f4d6"; } -.ri-flip-horizontal-fill:before { content: "\f4d7"; } -.ri-flip-horizontal-line:before { content: "\f4d8"; } -.ri-flip-vertical-2-fill:before { content: "\f4d9"; } -.ri-flip-vertical-2-line:before { content: "\f4da"; } -.ri-flip-vertical-fill:before { content: "\f4db"; } -.ri-flip-vertical-line:before { content: "\f4dc"; } -.ri-formula:before { content: "\f4dd"; } -.ri-function-add-fill:before { content: "\f4de"; } -.ri-function-add-line:before { content: "\f4df"; } -.ri-goblet-2-fill:before { content: "\f4e0"; } -.ri-goblet-2-line:before { content: "\f4e1"; } -.ri-golf-ball-fill:before { content: "\f4e2"; } -.ri-golf-ball-line:before { content: "\f4e3"; } -.ri-group-3-fill:before { content: "\f4e4"; } -.ri-group-3-line:before { content: "\f4e5"; } -.ri-heart-add-2-fill:before { content: "\f4e6"; } -.ri-heart-add-2-line:before { content: "\f4e7"; } -.ri-id-card-fill:before { content: "\f4e8"; } -.ri-id-card-line:before { content: "\f4e9"; } -.ri-information-off-fill:before { content: "\f4ea"; } -.ri-information-off-line:before { content: "\f4eb"; } -.ri-java-fill:before { content: "\f4ec"; } -.ri-java-line:before { content: "\f4ed"; } -.ri-layout-grid-2-fill:before { content: "\f4ee"; } -.ri-layout-grid-2-line:before { content: "\f4ef"; } -.ri-layout-horizontal-fill:before { content: "\f4f0"; } -.ri-layout-horizontal-line:before { content: "\f4f1"; } -.ri-layout-vertical-fill:before { content: "\f4f2"; } -.ri-layout-vertical-line:before { content: "\f4f3"; } -.ri-menu-fold-2-fill:before { content: "\f4f4"; } -.ri-menu-fold-2-line:before { content: "\f4f5"; } -.ri-menu-fold-3-fill:before { content: "\f4f6"; } -.ri-menu-fold-3-line:before { content: "\f4f7"; } -.ri-menu-fold-4-fill:before { content: "\f4f8"; } -.ri-menu-fold-4-line:before { content: "\f4f9"; } -.ri-menu-unfold-2-fill:before { content: "\f4fa"; } -.ri-menu-unfold-2-line:before { content: "\f4fb"; } -.ri-menu-unfold-3-fill:before { content: "\f4fc"; } -.ri-menu-unfold-3-line:before { content: "\f4fd"; } -.ri-menu-unfold-4-fill:before { content: "\f4fe"; } -.ri-menu-unfold-4-line:before { content: "\f4ff"; } -.ri-mobile-download-fill:before { content: "\f500"; } -.ri-mobile-download-line:before { content: "\f501"; } -.ri-nextjs-fill:before { content: "\f502"; } -.ri-nextjs-line:before { content: "\f503"; } -.ri-nodejs-fill:before { content: "\f504"; } -.ri-nodejs-line:before { content: "\f505"; } -.ri-pause-large-fill:before { content: "\f506"; } -.ri-pause-large-line:before { content: "\f507"; } -.ri-play-large-fill:before { content: "\f508"; } -.ri-play-large-line:before { content: "\f509"; } -.ri-play-reverse-large-fill:before { content: "\f50a"; } -.ri-play-reverse-large-line:before { content: "\f50b"; } -.ri-police-badge-fill:before { content: "\f50c"; } -.ri-police-badge-line:before { content: "\f50d"; } -.ri-prohibited-2-fill:before { content: "\f50e"; } -.ri-prohibited-2-line:before { content: "\f50f"; } -.ri-shopping-bag-4-fill:before { content: "\f510"; } -.ri-shopping-bag-4-line:before { content: "\f511"; } -.ri-snowflake-fill:before { content: "\f512"; } -.ri-snowflake-line:before { content: "\f513"; } -.ri-square-root:before { content: "\f514"; } -.ri-stop-large-fill:before { content: "\f515"; } -.ri-stop-large-line:before { content: "\f516"; } -.ri-tailwind-css-fill:before { content: "\f517"; } -.ri-tailwind-css-line:before { content: "\f518"; } -.ri-tooth-fill:before { content: "\f519"; } -.ri-tooth-line:before { content: "\f51a"; } -.ri-video-off-fill:before { content: "\f51b"; } -.ri-video-off-line:before { content: "\f51c"; } -.ri-video-on-fill:before { content: "\f51d"; } -.ri-video-on-line:before { content: "\f51e"; } -.ri-webhook-fill:before { content: "\f51f"; } -.ri-webhook-line:before { content: "\f520"; } -.ri-weight-fill:before { content: "\f521"; } -.ri-weight-line:before { content: "\f522"; } -.ri-book-shelf-fill:before { content: "\f523"; } -.ri-book-shelf-line:before { content: "\f524"; } -.ri-brain-2-fill:before { content: "\f525"; } -.ri-brain-2-line:before { content: "\f526"; } -.ri-chat-search-fill:before { content: "\f527"; } -.ri-chat-search-line:before { content: "\f528"; } -.ri-chat-unread-fill:before { content: "\f529"; } -.ri-chat-unread-line:before { content: "\f52a"; } -.ri-collapse-horizontal-fill:before { content: "\f52b"; } -.ri-collapse-horizontal-line:before { content: "\f52c"; } -.ri-collapse-vertical-fill:before { content: "\f52d"; } -.ri-collapse-vertical-line:before { content: "\f52e"; } -.ri-dna-fill:before { content: "\f52f"; } -.ri-dna-line:before { content: "\f530"; } -.ri-dropper-fill:before { content: "\f531"; } -.ri-dropper-line:before { content: "\f532"; } -.ri-expand-diagonal-s-2-fill:before { content: "\f533"; } -.ri-expand-diagonal-s-2-line:before { content: "\f534"; } -.ri-expand-diagonal-s-fill:before { content: "\f535"; } -.ri-expand-diagonal-s-line:before { content: "\f536"; } -.ri-expand-horizontal-fill:before { content: "\f537"; } -.ri-expand-horizontal-line:before { content: "\f538"; } -.ri-expand-horizontal-s-fill:before { content: "\f539"; } -.ri-expand-horizontal-s-line:before { content: "\f53a"; } -.ri-expand-vertical-fill:before { content: "\f53b"; } -.ri-expand-vertical-line:before { content: "\f53c"; } -.ri-expand-vertical-s-fill:before { content: "\f53d"; } -.ri-expand-vertical-s-line:before { content: "\f53e"; } -.ri-gemini-fill:before { content: "\f53f"; } -.ri-gemini-line:before { content: "\f540"; } -.ri-reset-left-fill:before { content: "\f541"; } -.ri-reset-left-line:before { content: "\f542"; } -.ri-reset-right-fill:before { content: "\f543"; } -.ri-reset-right-line:before { content: "\f544"; } -.ri-stairs-fill:before { content: "\f545"; } -.ri-stairs-line:before { content: "\f546"; } -.ri-telegram-2-fill:before { content: "\f547"; } -.ri-telegram-2-line:before { content: "\f548"; } -.ri-triangular-flag-fill:before { content: "\f549"; } -.ri-triangular-flag-line:before { content: "\f54a"; } -.ri-user-minus-fill:before { content: "\f54b"; } -.ri-user-minus-line:before { content: "\f54c"; } -.ri-account-box-2-fill:before { content: "\f54d"; } -.ri-account-box-2-line:before { content: "\f54e"; } -.ri-account-circle-2-fill:before { content: "\f54f"; } -.ri-account-circle-2-line:before { content: "\f550"; } -.ri-alarm-snooze-fill:before { content: "\f551"; } -.ri-alarm-snooze-line:before { content: "\f552"; } -.ri-arrow-down-box-fill:before { content: "\f553"; } -.ri-arrow-down-box-line:before { content: "\f554"; } -.ri-arrow-left-box-fill:before { content: "\f555"; } -.ri-arrow-left-box-line:before { content: "\f556"; } -.ri-arrow-left-down-box-fill:before { content: "\f557"; } -.ri-arrow-left-down-box-line:before { content: "\f558"; } -.ri-arrow-left-up-box-fill:before { content: "\f559"; } -.ri-arrow-left-up-box-line:before { content: "\f55a"; } -.ri-arrow-right-box-fill:before { content: "\f55b"; } -.ri-arrow-right-box-line:before { content: "\f55c"; } -.ri-arrow-right-down-box-fill:before { content: "\f55d"; } -.ri-arrow-right-down-box-line:before { content: "\f55e"; } -.ri-arrow-right-up-box-fill:before { content: "\f55f"; } -.ri-arrow-right-up-box-line:before { content: "\f560"; } -.ri-arrow-up-box-fill:before { content: "\f561"; } -.ri-arrow-up-box-line:before { content: "\f562"; } -.ri-bar-chart-box-ai-fill:before { content: "\f563"; } -.ri-bar-chart-box-ai-line:before { content: "\f564"; } -.ri-brush-ai-fill:before { content: "\f565"; } -.ri-brush-ai-line:before { content: "\f566"; } -.ri-camera-ai-fill:before { content: "\f567"; } -.ri-camera-ai-line:before { content: "\f568"; } -.ri-chat-ai-fill:before { content: "\f569"; } -.ri-chat-ai-line:before { content: "\f56a"; } -.ri-chat-smile-ai-fill:before { content: "\f56b"; } -.ri-chat-smile-ai-line:before { content: "\f56c"; } -.ri-chat-voice-ai-fill:before { content: "\f56d"; } -.ri-chat-voice-ai-line:before { content: "\f56e"; } -.ri-code-ai-fill:before { content: "\f56f"; } -.ri-code-ai-line:before { content: "\f570"; } -.ri-color-filter-ai-fill:before { content: "\f571"; } -.ri-color-filter-ai-line:before { content: "\f572"; } -.ri-custom-size:before { content: "\f573"; } -.ri-fediverse-fill:before { content: "\f574"; } -.ri-fediverse-line:before { content: "\f575"; } -.ri-flag-off-fill:before { content: "\f576"; } -.ri-flag-off-line:before { content: "\f577"; } -.ri-home-9-fill:before { content: "\f578"; } -.ri-home-9-line:before { content: "\f579"; } -.ri-image-ai-fill:before { content: "\f57a"; } -.ri-image-ai-line:before { content: "\f57b"; } -.ri-image-circle-ai-fill:before { content: "\f57c"; } -.ri-image-circle-ai-line:before { content: "\f57d"; } -.ri-info-card-fill:before { content: "\f57e"; } -.ri-info-card-line:before { content: "\f57f"; } -.ri-landscape-ai-fill:before { content: "\f580"; } -.ri-landscape-ai-line:before { content: "\f581"; } -.ri-letter-spacing-2:before { content: "\f582"; } -.ri-line-height-2:before { content: "\f583"; } -.ri-mail-ai-fill:before { content: "\f584"; } -.ri-mail-ai-line:before { content: "\f585"; } -.ri-mic-2-ai-fill:before { content: "\f586"; } -.ri-mic-2-ai-line:before { content: "\f587"; } -.ri-mic-ai-fill:before { content: "\f588"; } -.ri-mic-ai-line:before { content: "\f589"; } -.ri-movie-ai-fill:before { content: "\f58a"; } -.ri-movie-ai-line:before { content: "\f58b"; } -.ri-music-ai-fill:before { content: "\f58c"; } -.ri-music-ai-line:before { content: "\f58d"; } -.ri-notification-snooze-fill:before { content: "\f58e"; } -.ri-notification-snooze-line:before { content: "\f58f"; } -.ri-php-fill:before { content: "\f590"; } -.ri-php-line:before { content: "\f591"; } -.ri-pix-fill:before { content: "\f592"; } -.ri-pix-line:before { content: "\f593"; } -.ri-pulse-ai-fill:before { content: "\f594"; } -.ri-pulse-ai-line:before { content: "\f595"; } -.ri-quill-pen-ai-fill:before { content: "\f596"; } -.ri-quill-pen-ai-line:before { content: "\f597"; } -.ri-speak-ai-fill:before { content: "\f598"; } -.ri-speak-ai-line:before { content: "\f599"; } -.ri-star-off-fill:before { content: "\f59a"; } -.ri-star-off-line:before { content: "\f59b"; } -.ri-translate-ai-2:before { content: "\f59c"; } -.ri-translate-ai:before { content: "\f59d"; } -.ri-user-community-fill:before { content: "\f59e"; } -.ri-user-community-line:before { content: "\f59f"; } -.ri-vercel-fill:before { content: "\f5a0"; } -.ri-vercel-line:before { content: "\f5a1"; } -.ri-video-ai-fill:before { content: "\f5a2"; } -.ri-video-ai-line:before { content: "\f5a3"; } -.ri-video-on-ai-fill:before { content: "\f5a4"; } -.ri-video-on-ai-line:before { content: "\f5a5"; } -.ri-voice-ai-fill:before { content: "\f5a6"; } -.ri-voice-ai-line:before { content: "\f5a7"; } -.ri-ai-generate-2:before { content: "\f5a8"; } -.ri-ai-generate-text:before { content: "\f5a9"; } -.ri-anthropic-fill:before { content: "\f5aa"; } -.ri-anthropic-line:before { content: "\f5ab"; } -.ri-apps-2-ai-fill:before { content: "\f5ac"; } -.ri-apps-2-ai-line:before { content: "\f5ad"; } -.ri-camera-lens-ai-fill:before { content: "\f5ae"; } -.ri-camera-lens-ai-line:before { content: "\f5af"; } -.ri-clapperboard-ai-fill:before { content: "\f5b0"; } -.ri-clapperboard-ai-line:before { content: "\f5b1"; } -.ri-claude-fill:before { content: "\f5b2"; } -.ri-claude-line:before { content: "\f5b3"; } -.ri-closed-captioning-ai-fill:before { content: "\f5b4"; } -.ri-closed-captioning-ai-line:before { content: "\f5b5"; } -.ri-dvd-ai-fill:before { content: "\f5b6"; } -.ri-dvd-ai-line:before { content: "\f5b7"; } -.ri-film-ai-fill:before { content: "\f5b8"; } -.ri-film-ai-line:before { content: "\f5b9"; } -.ri-font-size-ai:before { content: "\f5ba"; } -.ri-mixtral-fill:before { content: "\f5bb"; } -.ri-mixtral-line:before { content: "\f5bc"; } -.ri-movie-2-ai-fill:before { content: "\f5bd"; } -.ri-movie-2-ai-line:before { content: "\f5be"; } -.ri-mv-ai-fill:before { content: "\f5bf"; } -.ri-mv-ai-line:before { content: "\f5c0"; } -.ri-perplexity-fill:before { content: "\f5c1"; } -.ri-perplexity-line:before { content: "\f5c2"; } -.ri-poker-clubs-fill:before { content: "\f5c3"; } -.ri-poker-clubs-line:before { content: "\f5c4"; } -.ri-poker-diamonds-fill:before { content: "\f5c5"; } -.ri-poker-diamonds-line:before { content: "\f5c6"; } -.ri-poker-hearts-fill:before { content: "\f5c7"; } -.ri-poker-hearts-line:before { content: "\f5c8"; } -.ri-poker-spades-fill:before { content: "\f5c9"; } -.ri-poker-spades-line:before { content: "\f5ca"; } -.ri-safe-3-fill:before { content: "\f5cb"; } -.ri-safe-3-line:before { content: "\f5cc"; } -.ri-accessibility-fill:before { content: "\f5cd"; } -.ri-accessibility-line:before { content: "\f5ce"; } -.ri-alarm-add-fill:before { content: "\f5cf"; } -.ri-alarm-add-line:before { content: "\f5d0"; } -.ri-arrow-down-long-fill:before { content: "\f5d1"; } -.ri-arrow-down-long-line:before { content: "\f5d2"; } -.ri-arrow-left-down-long-fill:before { content: "\f5d3"; } -.ri-arrow-left-down-long-line:before { content: "\f5d4"; } -.ri-arrow-left-long-fill:before { content: "\f5d5"; } -.ri-arrow-left-long-line:before { content: "\f5d6"; } -.ri-arrow-left-up-long-fill:before { content: "\f5d7"; } -.ri-arrow-left-up-long-line:before { content: "\f5d8"; } -.ri-arrow-right-down-long-fill:before { content: "\f5d9"; } -.ri-arrow-right-down-long-line:before { content: "\f5da"; } -.ri-arrow-right-long-fill:before { content: "\f5db"; } -.ri-arrow-right-long-line:before { content: "\f5dc"; } -.ri-arrow-right-up-long-fill:before { content: "\f5dd"; } -.ri-arrow-right-up-long-line:before { content: "\f5de"; } -.ri-arrow-up-long-fill:before { content: "\f5df"; } -.ri-arrow-up-long-line:before { content: "\f5e0"; } -.ri-chess-fill:before { content: "\f5e1"; } -.ri-chess-line:before { content: "\f5e2"; } -.ri-diamond-fill:before { content: "\f5e3"; } -.ri-diamond-line:before { content: "\f5e4"; } -.ri-diamond-ring-fill:before { content: "\f5e5"; } -.ri-diamond-ring-line:before { content: "\f5e6"; } -.ri-figma-fill:before { content: "\f5e7"; } -.ri-figma-line:before { content: "\f5e8"; } -.ri-firefox-browser-fill:before { content: "\f5e9"; } -.ri-firefox-browser-line:before { content: "\f5ea"; } -.ri-jewelry-fill:before { content: "\f5eb"; } -.ri-jewelry-line:before { content: "\f5ec"; } -.ri-multi-image-fill:before { content: "\f5ed"; } -.ri-multi-image-line:before { content: "\f5ee"; } -.ri-no-credit-card-fill:before { content: "\f5ef"; } -.ri-no-credit-card-line:before { content: "\f5f0"; } -.ri-service-bell-fill:before { content: "\f5f1"; } -.ri-service-bell-line:before { content: "\f5f2"; } - -.install-app-modal[data-v-40e226b5] .n-modal { - max-width: 24rem -} -.install-app-modal .modal-content[data-v-40e226b5] { - padding: 1rem; - padding-bottom: 0px -} -.install-app-modal .modal-content .modal-header[data-v-40e226b5] { - margin-bottom: 1.5rem; - display: flex; - align-items: center -} -.install-app-modal .modal-content .modal-header .app-icon[data-v-40e226b5] { - margin-right: 1rem; - height: 5rem; - width: 5rem; - overflow: hidden; - border-radius: 1rem -} -.install-app-modal .modal-content .modal-header .app-icon img[data-v-40e226b5] { - height: 100%; - width: 100%; - -o-object-fit: cover; - object-fit: cover -} -.install-app-modal .modal-content .modal-header .app-info[data-v-40e226b5] { - flex: 1 1 0% -} -.install-app-modal .modal-content .modal-header .app-info .app-name[data-v-40e226b5] { - margin-bottom: 0.25rem; - font-size: 1.25rem; - line-height: 1.75rem; - font-weight: 700 -} -.install-app-modal .modal-content .modal-header .app-info .app-desc[data-v-40e226b5] { - font-size: 0.875rem; - line-height: 1.25rem; - --tw-text-opacity: 1; - color: rgb(156 163 175 / var(--tw-text-opacity, 1)) -} -.install-app-modal .modal-content .modal-actions[data-v-40e226b5] { - margin-top: 1rem; - display: flex; - gap: 0.75rem -} -.install-app-modal .modal-content .modal-actions .n-button[data-v-40e226b5] { - flex: 1 1 0% -} -.install-app-modal .modal-content .modal-actions .cancel-btn[data-v-40e226b5] { - border-style: none; - --tw-bg-opacity: 1; - background-color: rgb(31 41 55 / var(--tw-bg-opacity, 1)); - --tw-text-opacity: 1; - color: rgb(209 213 219 / var(--tw-text-opacity, 1)) -} -.install-app-modal .modal-content .modal-actions .cancel-btn[data-v-40e226b5]:hover { - --tw-bg-opacity: 1; - background-color: rgb(55 65 81 / var(--tw-bg-opacity, 1)) -} -.install-app-modal .modal-content .modal-actions .install-btn[data-v-40e226b5] { - border-style: none; - --tw-bg-opacity: 1; - background-color: rgb(22 163 74 / var(--tw-bg-opacity, 1)) -} -.install-app-modal .modal-content .modal-actions .install-btn[data-v-40e226b5]:hover { - --tw-bg-opacity: 1; - background-color: rgb(34 197 94 / var(--tw-bg-opacity, 1)) -}.bottom[data-v-7497922f] { - height: 7rem -}.update-app-modal[data-v-f3abdbb7] .n-modal { - max-width: 56rem -} -.update-app-modal .modal-content[data-v-f3abdbb7] { - padding: 1.5rem; - padding-bottom: 1rem -} -.update-app-modal .modal-content .modal-header[data-v-f3abdbb7] { - margin-bottom: 1.5rem; - display: flex; - align-items: center -} -.update-app-modal .modal-content .modal-header .app-icon[data-v-f3abdbb7] { - margin-right: 1.5rem; - height: 6rem; - width: 6rem; - overflow: hidden; - border-radius: 1rem -} -.update-app-modal .modal-content .modal-header .app-icon img[data-v-f3abdbb7] { - height: 100%; - width: 100%; - -o-object-fit: cover; - object-fit: cover -} -.update-app-modal .modal-content .modal-header .app-info[data-v-f3abdbb7] { - flex: 1 1 0% -} -.update-app-modal .modal-content .modal-header .app-info .app-name[data-v-f3abdbb7] { - margin-bottom: 0.5rem; - font-size: 1.5rem; - line-height: 2rem; - font-weight: 700 -} -.update-app-modal .modal-content .modal-header .app-info .app-desc[data-v-f3abdbb7] { - font-size: 1rem; - line-height: 1.5rem; - --tw-text-opacity: 1; - color: rgb(156 163 175 / var(--tw-text-opacity, 1)) -} -.update-app-modal .modal-content .update-info[data-v-f3abdbb7] { - margin-bottom: 1.5rem; - border-radius: 0.5rem; - --tw-bg-opacity: 1; - background-color: rgb(249 250 251 / var(--tw-bg-opacity, 1)) -} -.update-app-modal .modal-content .update-info[data-v-f3abdbb7]:is(.dark *) { - --tw-bg-opacity: 1; - background-color: rgb(31 41 55 / var(--tw-bg-opacity, 1)) -} -.update-app-modal .modal-content .update-info .update-title[data-v-f3abdbb7] { - padding: 1rem; - padding-bottom: 0.5rem; - font-size: 1rem; - line-height: 1.5rem; - font-weight: 500 -} -.update-app-modal .modal-content .update-info .update-body[data-v-f3abdbb7] { - padding: 1rem; - padding-top: 0.5rem; - --tw-text-opacity: 1; - color: rgb(75 85 99 / var(--tw-text-opacity, 1)) -} -.update-app-modal .modal-content .update-info .update-body[data-v-f3abdbb7]:is(.dark *) { - --tw-text-opacity: 1; - color: rgb(209 213 219 / var(--tw-text-opacity, 1)) -} -.update-app-modal .modal-content .update-info .update-body[data-v-f3abdbb7] h1 { - margin-bottom: 0.75rem; - font-size: 1.25rem; - line-height: 1.75rem; - font-weight: 700 -} -.update-app-modal .modal-content .update-info .update-body[data-v-f3abdbb7] h2 { - margin-bottom: 0.75rem; - font-size: 1.125rem; - line-height: 1.75rem; - font-weight: 700 -} -.update-app-modal .modal-content .update-info .update-body[data-v-f3abdbb7] h3 { - margin-bottom: 0.5rem; - font-size: 1rem; - line-height: 1.5rem; - font-weight: 700 -} -.update-app-modal .modal-content .update-info .update-body[data-v-f3abdbb7] p { - margin-bottom: 0.75rem; - line-height: 1.625 -} -.update-app-modal .modal-content .update-info .update-body[data-v-f3abdbb7] ul { - margin-bottom: 0.75rem; - list-style-position: inside; - list-style-type: disc -} -.update-app-modal .modal-content .update-info .update-body[data-v-f3abdbb7] ol { - margin-bottom: 0.75rem; - list-style-position: inside; - list-style-type: decimal -} -.update-app-modal .modal-content .update-info .update-body[data-v-f3abdbb7] li { - margin-bottom: 0.5rem; - line-height: 1.625 -} -.update-app-modal .modal-content .update-info .update-body[data-v-f3abdbb7] code { - border-radius: 0.25rem; - --tw-bg-opacity: 1; - background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1)); - padding-left: 0.375rem; - padding-right: 0.375rem; - padding-top: 0.125rem; - padding-bottom: 0.125rem; - --tw-text-opacity: 1; - color: rgb(31 41 55 / var(--tw-text-opacity, 1)) -} -.update-app-modal .modal-content .update-info .update-body[data-v-f3abdbb7] code:is(.dark *) { - --tw-bg-opacity: 1; - background-color: rgb(55 65 81 / var(--tw-bg-opacity, 1)); - --tw-text-opacity: 1; - color: rgb(229 231 235 / var(--tw-text-opacity, 1)) -} -.update-app-modal .modal-content .update-info .update-body[data-v-f3abdbb7] pre { - margin-bottom: 0.75rem; - overflow-x: auto; - border-radius: 0.25rem; - --tw-bg-opacity: 1; - background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1)); - padding: 0.75rem -} -.update-app-modal .modal-content .update-info .update-body[data-v-f3abdbb7] pre:is(.dark *) { - --tw-bg-opacity: 1; - background-color: rgb(55 65 81 / var(--tw-bg-opacity, 1)) -} -.update-app-modal .modal-content .update-info .update-body[data-v-f3abdbb7] pre code { - background-color: transparent; - padding: 0px -} -.update-app-modal .modal-content .update-info .update-body[data-v-f3abdbb7] blockquote { - margin-bottom: 0.75rem; - border-left-width: 4px; - --tw-border-opacity: 1; - border-color: rgb(229 231 235 / var(--tw-border-opacity, 1)); - padding-left: 1rem -} -.update-app-modal .modal-content .update-info .update-body[data-v-f3abdbb7] blockquote:is(.dark *) { - --tw-border-opacity: 1; - border-color: rgb(75 85 99 / var(--tw-border-opacity, 1)) -} -.update-app-modal .modal-content .update-info .update-body[data-v-f3abdbb7] a { - --tw-text-opacity: 1; - color: rgb(34 197 94 / var(--tw-text-opacity, 1)) -} -.update-app-modal .modal-content .update-info .update-body[data-v-f3abdbb7] a:hover { - --tw-text-opacity: 1; - color: rgb(22 163 74 / var(--tw-text-opacity, 1)) -} -.update-app-modal .modal-content .update-info .update-body[data-v-f3abdbb7] a:hover:is(.dark *) { - --tw-text-opacity: 1; - color: rgb(74 222 128 / var(--tw-text-opacity, 1)) -} -.update-app-modal .modal-content .update-info .update-body[data-v-f3abdbb7] hr { - margin-top: 1rem; - margin-bottom: 1rem; - --tw-border-opacity: 1; - border-color: rgb(229 231 235 / var(--tw-border-opacity, 1)) -} -.update-app-modal .modal-content .update-info .update-body[data-v-f3abdbb7] hr:is(.dark *) { - --tw-border-opacity: 1; - border-color: rgb(75 85 99 / var(--tw-border-opacity, 1)) -} -.update-app-modal .modal-content .update-info .update-body[data-v-f3abdbb7] table { - margin-bottom: 0.75rem; - width: 100% -} -.update-app-modal .modal-content .update-info .update-body[data-v-f3abdbb7] table th, .update-app-modal .modal-content .update-info .update-body[data-v-f3abdbb7] table td { - border-width: 1px; - --tw-border-opacity: 1; - border-color: rgb(229 231 235 / var(--tw-border-opacity, 1)); - padding-left: 0.75rem; - padding-right: 0.75rem; - padding-top: 0.5rem; - padding-bottom: 0.5rem -} -.update-app-modal .modal-content .update-info .update-body[data-v-f3abdbb7] table th:is(.dark *), .update-app-modal .modal-content .update-info .update-body[data-v-f3abdbb7] table td:is(.dark *) { - --tw-border-opacity: 1; - border-color: rgb(75 85 99 / var(--tw-border-opacity, 1)) -} -.update-app-modal .modal-content .update-info .update-body[data-v-f3abdbb7] table th { - --tw-bg-opacity: 1; - background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1)) -} -.update-app-modal .modal-content .update-info .update-body[data-v-f3abdbb7] table th:is(.dark *) { - --tw-bg-opacity: 1; - background-color: rgb(55 65 81 / var(--tw-bg-opacity, 1)) -} -.update-app-modal .modal-content .modal-actions[data-v-f3abdbb7] { - margin-top: 1.5rem; - display: flex; - gap: 1rem -} -.update-app-modal .modal-content .modal-actions .n-button[data-v-f3abdbb7] { - flex: 1 1 0%; - padding-top: 0.5rem; - padding-bottom: 0.5rem; - font-size: 1rem; - line-height: 1.5rem -} -.update-app-modal .modal-content .modal-actions .cancel-btn[data-v-f3abdbb7] { - border-style: none; - --tw-bg-opacity: 1; - background-color: rgb(31 41 55 / var(--tw-bg-opacity, 1)); - --tw-text-opacity: 1; - color: rgb(209 213 219 / var(--tw-text-opacity, 1)) -} -.update-app-modal .modal-content .modal-actions .cancel-btn[data-v-f3abdbb7]:hover { - --tw-bg-opacity: 1; - background-color: rgb(55 65 81 / var(--tw-bg-opacity, 1)) -} -.update-app-modal .modal-content .modal-actions .update-btn[data-v-f3abdbb7] { - border-style: none; - --tw-bg-opacity: 1; - background-color: rgb(22 163 74 / var(--tw-bg-opacity, 1)) -} -.update-app-modal .modal-content .modal-actions .update-btn[data-v-f3abdbb7]:hover { - --tw-bg-opacity: 1; - background-color: rgb(34 197 94 / var(--tw-bg-opacity, 1)) -}.layout-page[data-v-f03a9852] { - height: 100vh; - width: 100vw; - overflow: hidden; - --tw-bg-opacity: 1; - background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1)); -} -.layout-page[data-v-f03a9852]:is(.dark *) { - --tw-bg-opacity: 1; - background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1)); -} -.layout-main[data-v-f03a9852] { - position: relative; - height: 100%; - width: 100%; - --tw-text-opacity: 1; - color: rgb(17 24 39 / var(--tw-text-opacity, 1)); -} -.layout-main[data-v-f03a9852]:is(.dark *) { - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity, 1)); -} -.layout-main-page[data-v-f03a9852] { - display: flex; - height: 100%; -} -.menu[data-v-f03a9852] { - height: 100%; -} -.main[data-v-f03a9852] { - display: flex; - flex: 1 1 0%; - flex-direction: column; - overflow: hidden; -} -.main-content[data-v-f03a9852] { - flex: 1 1 0%; - overflow: hidden; -} -.main-page[data-v-f03a9852] { - height: 100%; -} -.mobile .main-content[data-v-f03a9852] { - height: calc(100vh - 146px); - overflow: auto; - display: block; - flex: none; -}.app-container[data-v-49a312c0] { - height: 100%; - width: 100%; - -webkit-user-select: none; - -moz-user-select: none; - user-select: none; -} -.mobile .text-base[data-v-49a312c0] { - font-size: 14px !important; -} -.html[data-v-49a312c0]:has(.mobile) { - font-size: 14px; -}.loading-box[data-v-d776f97a] { - position: absolute; - left: 0; - top: 0; - right: 0; - bottom: 0; - width: 100%; - height: 100%; - overflow: hidden; - z-index: 9999; -} -.loading-box .mask[data-v-d776f97a] { - width: 100%; - height: 100%; - background-color: rgb(248 249 250 / var(--tw-bg-opacity, 1)); - --tw-bg-opacity: 0.5; -} -.loading-box .mask[data-v-d776f97a]:is(.dark *) { - background-color: rgb(22 22 22 / var(--tw-bg-opacity, 1)); - --tw-bg-opacity: 0.5; -} -.loading-box .loading-content-box[data-v-d776f97a] { - position: absolute; - left: 0; - top: 0; - right: 0; - bottom: 0; - width: 100%; - height: 100%; - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; -} -.loading-box .tip[data-v-d776f97a] { - font-size: 14px; - margin-top: 8px; -} \ No newline at end of file diff --git a/out/renderer/assets/index-ChDcb7c6.css.gz b/out/renderer/assets/index-ChDcb7c6.css.gz deleted file mode 100644 index 9f35491..0000000 Binary files a/out/renderer/assets/index-ChDcb7c6.css.gz and /dev/null differ diff --git a/out/renderer/assets/index-CzpNk4J5.css b/out/renderer/assets/index-CzpNk4J5.css deleted file mode 100644 index d9e01e1..0000000 --- a/out/renderer/assets/index-CzpNk4J5.css +++ /dev/null @@ -1,172 +0,0 @@ -.search-item[data-v-3449f610] { - display: flex; - cursor: pointer; - align-items: center; - border-radius: 1.5rem; - padding: 0.75rem; - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter; - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter; - transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - transition-duration: 150ms; -}.search-item[data-v-3449f610]:hover { - --tw-bg-opacity: 1; - background-color: rgb(233 236 239 / var(--tw-bg-opacity, 1)); -}.search-item[data-v-3449f610]:hover:is(.dark *) { - --tw-bg-opacity: 1; - background-color: rgb(31 41 55 / var(--tw-bg-opacity, 1)); -}.search-item[data-v-3449f610] { - margin: 0 10px; -} -.search-item .search-item-img[data-v-3449f610] { - margin-right: 1rem; - height: 3rem; - width: 3rem; - overflow: hidden; - border-radius: 1rem; -} -.search-item .search-item-info[data-v-3449f610] { - flex: 1 1 0%; - overflow: hidden; -} -.search-item .search-item-info-name[data-v-3449f610] { - text-align: center; - font-size: 0.875rem; - line-height: 1.25rem; - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity, 1)); -} -.search-item .search-item-info-artist[data-v-3449f610] { - text-align: center; - font-size: 0.75rem; - line-height: 1rem; - --tw-text-opacity: 1; - color: rgb(156 163 175 / var(--tw-text-opacity, 1)); -} -.mv:hover .play[data-v-3449f610] { - opacity: 0.6; -} -.mv .search-item-img[data-v-3449f610] { - width: 160px; - height: 90px; - position: relative; - border-radius: 0.5rem; -} -.mv .play[data-v-3449f610] { - position: absolute; - top: 50%; - left: 50%; - --tw-translate-x: -50%; - --tw-translate-y: -50%; - transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); - opacity: 0; - transition-property: opacity; - transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - transition-duration: 150ms; -} -.mv .play .icon[data-v-3449f610] { - font-size: 3rem; - line-height: 1; - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity, 1)); -}.search-page[data-v-254ebbc1] { - display: flex; - height: 100%; -} -.hot-search[data-v-254ebbc1] { - margin-right: 1rem; - flex: 1 1 0%; - overflow: hidden; - border-radius: 0.75rem; - --tw-bg-opacity: 1; - background-color: rgb(248 249 250 / var(--tw-bg-opacity, 1)); -} -.hot-search[data-v-254ebbc1]:is(.dark *) { - --tw-bg-opacity: 1; - background-color: rgb(22 22 22 / var(--tw-bg-opacity, 1)); -} -.hot-search[data-v-254ebbc1] { - animation-duration: 0.2s; - min-width: 400px; - height: 100%; -} -.hot-search-list[data-v-254ebbc1] { - padding-bottom: 7rem; -} -.hot-search-item[data-v-254ebbc1] { - cursor: pointer; - border-radius: 0.75rem; - padding-left: 1rem; - padding-right: 1rem; - padding-top: 0.75rem; - padding-bottom: 0.75rem; - font-size: 1.125rem; - line-height: 1.75rem; - --tw-text-opacity: 1; - color: rgb(17 24 39 / var(--tw-text-opacity, 1)); -} -.hot-search-item[data-v-254ebbc1]:is(.dark *) { - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity, 1)); -} -.hot-search-item[data-v-254ebbc1] { - transition: all 0.3s ease; -} -.hot-search-item[data-v-254ebbc1]:hover { - --tw-bg-opacity: 1; - background-color: rgb(248 249 250 / var(--tw-bg-opacity, 1)); -} -.hot-search-item[data-v-254ebbc1]:hover:is(.dark *) { - --tw-bg-opacity: 1; - background-color: rgb(45 45 45 / var(--tw-bg-opacity, 1)); -} -.hot-search-item-count[data-v-254ebbc1] { - margin-left: 0.75rem; - display: inline-block; - width: 2rem; - --tw-text-opacity: 1; - color: rgb(34 197 94 / var(--tw-text-opacity, 1)); -} -.hot-search-item-count-3[data-v-254ebbc1] { - margin-left: 0.75rem; - display: inline-block; - width: 2rem; - font-weight: 700; - --tw-text-opacity: 1; - color: rgb(239 68 68 / var(--tw-text-opacity, 1)); -} -.search-list[data-v-254ebbc1] { - flex: 1 1 0%; - border-radius: 0.75rem; - --tw-bg-opacity: 1; - background-color: rgb(248 249 250 / var(--tw-bg-opacity, 1)); -} -.search-list[data-v-254ebbc1]:is(.dark *) { - --tw-bg-opacity: 1; - background-color: rgb(22 22 22 / var(--tw-bg-opacity, 1)); -} -.search-list[data-v-254ebbc1] { - height: 100%; -} -.search-list-box[data-v-254ebbc1] { - padding-bottom: 7rem; -} -.title[data-v-254ebbc1] { - margin-top: 0.5rem; - margin-bottom: 0.5rem; - margin-left: 1rem; - margin-right: 1rem; - font-size: 1.25rem; - line-height: 1.75rem; - font-weight: 700; - --tw-text-opacity: 1; - color: rgb(17 24 39 / var(--tw-text-opacity, 1)); -} -.title[data-v-254ebbc1]:is(.dark *) { - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity, 1)); -} -.mobile .hot-search[data-v-254ebbc1] { - margin-right: 0px; - width: 100%; -} \ No newline at end of file diff --git a/out/renderer/assets/index-CzpNk4J5.css.gz b/out/renderer/assets/index-CzpNk4J5.css.gz deleted file mode 100644 index b428f7d..0000000 Binary files a/out/renderer/assets/index-CzpNk4J5.css.gz and /dev/null differ diff --git a/out/renderer/assets/index-DKaFsuse.js b/out/renderer/assets/index-DKaFsuse.js deleted file mode 100644 index 8a78114..0000000 --- a/out/renderer/assets/index-DKaFsuse.js +++ /dev/null @@ -1,34584 +0,0 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./index-DSilVM87.js","./home-BXGE9AqN.js","./MusicList-s-QHu-iA.js","./SongItem-CoswpGn6.js","./Image-DXClIklC.js","./use-locale-DLWAOXez.js","./Ellipsis-D4R5dIX2.js","./SongItem-Bw5Qa7XV.css","./Drawer-BEJ8Ydua.js","./Avatar-rQ2og-6c.js","./Tag-C0oC92WF.js","./MusicList-NCsRWE81.css","./index-JJypdZPY.js","./index-B-m4kL_6.css","./index-BlaUC8oz.css","./index-C-VCusx9.js","./MvPlayer-I4IDK1xL.js","./Icon-DucaliTK.js","./Slider-BA6NituQ.js","./MvPlayer-BPFZslTY.css","./Layout-CvYBg1vI.js","./index-CzpNk4J5.css","./index-Bc5fdT5j.js","./index-s6QFASec.css","./index-SvIREzLs.js","./index-b8HibJP6.css","./index-DhLgZEXT.js","./index-BmgzcEyo.css","./index-BPmJoRDi.js","./index-COH3Oisr.css","./index-RCxsGzpS.js","./Switch-D3Z_Vg3u.js","./index-DVDStqOk.css","./AppMenu-CbDXL_JE.js","./AppMenu-iZYnVe2B.css","./PlayBar-BNzUvTGp.js","./PlayBar-Ct36doNR.css","./SearchBar-Cx7zzS9t.js","./login-BsPxQYi6.js","./SearchBar-CIYxJjXH.css","./TitleBar-Bl1cFyS0.js","./TitleBar-DxNBjVsT.css","./index-Dn0J0Jmw.js","./index-DcmHQdN6.css","./index-BCv4VDKm.js","./index-BE7j41Na.css"])))=>i.map(i=>d[i]); -/** -* @vue/shared v3.5.13 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/ -/*! #__NO_SIDE_EFFECTS__ */ -// @__NO_SIDE_EFFECTS__ -function makeMap(str) { - const map = /* @__PURE__ */ Object.create(null); - for (const key of str.split(",")) map[key] = 1; - return (val) => val in map; -} -const EMPTY_OBJ = {}; -const EMPTY_ARR = []; -const NOOP = () => { -}; -const NO = () => false; -const isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter -(key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97); -const isModelListener = (key) => key.startsWith("onUpdate:"); -const extend$1 = Object.assign; -const remove = (arr, el) => { - const i = arr.indexOf(el); - if (i > -1) { - arr.splice(i, 1); - } -}; -const hasOwnProperty$b = Object.prototype.hasOwnProperty; -const hasOwn = (val, key) => hasOwnProperty$b.call(val, key); -const isArray$3 = Array.isArray; -const isMap = (val) => toTypeString(val) === "[object Map]"; -const isSet = (val) => toTypeString(val) === "[object Set]"; -const isRegExp$1 = (val) => toTypeString(val) === "[object RegExp]"; -const isFunction$2 = (val) => typeof val === "function"; -const isString$1 = (val) => typeof val === "string"; -const isSymbol$1 = (val) => typeof val === "symbol"; -const isObject$4 = (val) => val !== null && typeof val === "object"; -const isPromise$1 = (val) => { - return (isObject$4(val) || isFunction$2(val)) && isFunction$2(val.then) && isFunction$2(val.catch); -}; -const objectToString$1 = Object.prototype.toString; -const toTypeString = (value) => objectToString$1.call(value); -const toRawType = (value) => { - return toTypeString(value).slice(8, -1); -}; -const isPlainObject$2 = (val) => toTypeString(val) === "[object Object]"; -const isIntegerKey = (key) => isString$1(key) && key !== "NaN" && key[0] !== "-" && "" + parseInt(key, 10) === key; -const isReservedProp = /* @__PURE__ */ makeMap( - // the leading comma is intentional so empty string "" is also included - ",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted" -); -const cacheStringFunction = (fn) => { - const cache2 = /* @__PURE__ */ Object.create(null); - return (str) => { - const hit = cache2[str]; - return hit || (cache2[str] = fn(str)); - }; -}; -const camelizeRE = /-(\w)/g; -const camelize = cacheStringFunction( - (str) => { - return str.replace(camelizeRE, (_, c2) => c2 ? c2.toUpperCase() : ""); - } -); -const hyphenateRE = /\B([A-Z])/g; -const hyphenate = cacheStringFunction( - (str) => str.replace(hyphenateRE, "-$1").toLowerCase() -); -const capitalize = cacheStringFunction((str) => { - return str.charAt(0).toUpperCase() + str.slice(1); -}); -const toHandlerKey = cacheStringFunction( - (str) => { - const s = str ? `on${capitalize(str)}` : ``; - return s; - } -); -const hasChanged = (value, oldValue) => !Object.is(value, oldValue); -const invokeArrayFns = (fns, ...arg) => { - for (let i = 0; i < fns.length; i++) { - fns[i](...arg); - } -}; -const def$1 = (obj, key, value, writable = false) => { - Object.defineProperty(obj, key, { - configurable: true, - enumerable: false, - writable, - value - }); -}; -const looseToNumber = (val) => { - const n = parseFloat(val); - return isNaN(n) ? val : n; -}; -const toNumber = (val) => { - const n = isString$1(val) ? Number(val) : NaN; - return isNaN(n) ? val : n; -}; -let _globalThis; -const getGlobalThis = () => { - return _globalThis || (_globalThis = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : {}); -}; -function normalizeStyle(value) { - if (isArray$3(value)) { - const res = {}; - for (let i = 0; i < value.length; i++) { - const item = value[i]; - const normalized = isString$1(item) ? parseStringStyle(item) : normalizeStyle(item); - if (normalized) { - for (const key in normalized) { - res[key] = normalized[key]; - } - } - } - return res; - } else if (isString$1(value) || isObject$4(value)) { - return value; - } -} -const listDelimiterRE = /;(?![^(]*\))/g; -const propertyDelimiterRE = /:([^]+)/; -const styleCommentRE = /\/\*[^]*?\*\//g; -function parseStringStyle(cssText) { - const ret = {}; - cssText.replace(styleCommentRE, "").split(listDelimiterRE).forEach((item) => { - if (item) { - const tmp = item.split(propertyDelimiterRE); - tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim()); - } - }); - return ret; -} -function normalizeClass(value) { - let res = ""; - if (isString$1(value)) { - res = value; - } else if (isArray$3(value)) { - for (let i = 0; i < value.length; i++) { - const normalized = normalizeClass(value[i]); - if (normalized) { - res += normalized + " "; - } - } - } else if (isObject$4(value)) { - for (const name2 in value) { - if (value[name2]) { - res += name2 + " "; - } - } - } - return res.trim(); -} -const specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`; -const isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs); -function includeBooleanAttr(value) { - return !!value || value === ""; -} -const isRef$1 = (val) => { - return !!(val && val["__v_isRef"] === true); -}; -const toDisplayString = (val) => { - return isString$1(val) ? val : val == null ? "" : isArray$3(val) || isObject$4(val) && (val.toString === objectToString$1 || !isFunction$2(val.toString)) ? isRef$1(val) ? toDisplayString(val.value) : JSON.stringify(val, replacer, 2) : String(val); -}; -const replacer = (_key, val) => { - if (isRef$1(val)) { - return replacer(_key, val.value); - } else if (isMap(val)) { - return { - [`Map(${val.size})`]: [...val.entries()].reduce( - (entries, [key, val2], i) => { - entries[stringifySymbol(key, i) + " =>"] = val2; - return entries; - }, - {} - ) - }; - } else if (isSet(val)) { - return { - [`Set(${val.size})`]: [...val.values()].map((v) => stringifySymbol(v)) - }; - } else if (isSymbol$1(val)) { - return stringifySymbol(val); - } else if (isObject$4(val) && !isArray$3(val) && !isPlainObject$2(val)) { - return String(val); - } - return val; -}; -const stringifySymbol = (v, i = "") => { - var _a; - return ( - // Symbol.description in es2019+ so we need to cast here to pass - // the lib: es2016 check - isSymbol$1(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v - ); -}; -/** -* @vue/reactivity v3.5.13 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/ -let activeEffectScope; -class EffectScope { - constructor(detached = false) { - this.detached = detached; - this._active = true; - this.effects = []; - this.cleanups = []; - this._isPaused = false; - this.parent = activeEffectScope; - if (!detached && activeEffectScope) { - this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push( - this - ) - 1; - } - } - get active() { - return this._active; - } - pause() { - if (this._active) { - this._isPaused = true; - let i, l; - if (this.scopes) { - for (i = 0, l = this.scopes.length; i < l; i++) { - this.scopes[i].pause(); - } - } - for (i = 0, l = this.effects.length; i < l; i++) { - this.effects[i].pause(); - } - } - } - /** - * Resumes the effect scope, including all child scopes and effects. - */ - resume() { - if (this._active) { - if (this._isPaused) { - this._isPaused = false; - let i, l; - if (this.scopes) { - for (i = 0, l = this.scopes.length; i < l; i++) { - this.scopes[i].resume(); - } - } - for (i = 0, l = this.effects.length; i < l; i++) { - this.effects[i].resume(); - } - } - } - } - run(fn) { - if (this._active) { - const currentEffectScope = activeEffectScope; - try { - activeEffectScope = this; - return fn(); - } finally { - activeEffectScope = currentEffectScope; - } - } - } - /** - * This should only be called on non-detached scopes - * @internal - */ - on() { - activeEffectScope = this; - } - /** - * This should only be called on non-detached scopes - * @internal - */ - off() { - activeEffectScope = this.parent; - } - stop(fromParent) { - if (this._active) { - this._active = false; - let i, l; - for (i = 0, l = this.effects.length; i < l; i++) { - this.effects[i].stop(); - } - this.effects.length = 0; - for (i = 0, l = this.cleanups.length; i < l; i++) { - this.cleanups[i](); - } - this.cleanups.length = 0; - if (this.scopes) { - for (i = 0, l = this.scopes.length; i < l; i++) { - this.scopes[i].stop(true); - } - this.scopes.length = 0; - } - if (!this.detached && this.parent && !fromParent) { - const last = this.parent.scopes.pop(); - if (last && last !== this) { - this.parent.scopes[this.index] = last; - last.index = this.index; - } - } - this.parent = void 0; - } - } -} -function effectScope(detached) { - return new EffectScope(detached); -} -function getCurrentScope() { - return activeEffectScope; -} -function onScopeDispose(fn, failSilently = false) { - if (activeEffectScope) { - activeEffectScope.cleanups.push(fn); - } -} -let activeSub; -const pausedQueueEffects = /* @__PURE__ */ new WeakSet(); -class ReactiveEffect { - constructor(fn) { - this.fn = fn; - this.deps = void 0; - this.depsTail = void 0; - this.flags = 1 | 4; - this.next = void 0; - this.cleanup = void 0; - this.scheduler = void 0; - if (activeEffectScope && activeEffectScope.active) { - activeEffectScope.effects.push(this); - } - } - pause() { - this.flags |= 64; - } - resume() { - if (this.flags & 64) { - this.flags &= ~64; - if (pausedQueueEffects.has(this)) { - pausedQueueEffects.delete(this); - this.trigger(); - } - } - } - /** - * @internal - */ - notify() { - if (this.flags & 2 && !(this.flags & 32)) { - return; - } - if (!(this.flags & 8)) { - batch(this); - } - } - run() { - if (!(this.flags & 1)) { - return this.fn(); - } - this.flags |= 2; - cleanupEffect(this); - prepareDeps(this); - const prevEffect = activeSub; - const prevShouldTrack = shouldTrack; - activeSub = this; - shouldTrack = true; - try { - return this.fn(); - } finally { - cleanupDeps(this); - activeSub = prevEffect; - shouldTrack = prevShouldTrack; - this.flags &= ~2; - } - } - stop() { - if (this.flags & 1) { - for (let link2 = this.deps; link2; link2 = link2.nextDep) { - removeSub(link2); - } - this.deps = this.depsTail = void 0; - cleanupEffect(this); - this.onStop && this.onStop(); - this.flags &= ~1; - } - } - trigger() { - if (this.flags & 64) { - pausedQueueEffects.add(this); - } else if (this.scheduler) { - this.scheduler(); - } else { - this.runIfDirty(); - } - } - /** - * @internal - */ - runIfDirty() { - if (isDirty(this)) { - this.run(); - } - } - get dirty() { - return isDirty(this); - } -} -let batchDepth = 0; -let batchedSub; -let batchedComputed; -function batch(sub, isComputed = false) { - sub.flags |= 8; - if (isComputed) { - sub.next = batchedComputed; - batchedComputed = sub; - return; - } - sub.next = batchedSub; - batchedSub = sub; -} -function startBatch() { - batchDepth++; -} -function endBatch() { - if (--batchDepth > 0) { - return; - } - if (batchedComputed) { - let e = batchedComputed; - batchedComputed = void 0; - while (e) { - const next = e.next; - e.next = void 0; - e.flags &= ~8; - e = next; - } - } - let error; - while (batchedSub) { - let e = batchedSub; - batchedSub = void 0; - while (e) { - const next = e.next; - e.next = void 0; - e.flags &= ~8; - if (e.flags & 1) { - try { - ; - e.trigger(); - } catch (err) { - if (!error) error = err; - } - } - e = next; - } - } - if (error) throw error; -} -function prepareDeps(sub) { - for (let link2 = sub.deps; link2; link2 = link2.nextDep) { - link2.version = -1; - link2.prevActiveLink = link2.dep.activeLink; - link2.dep.activeLink = link2; - } -} -function cleanupDeps(sub) { - let head; - let tail = sub.depsTail; - let link2 = tail; - while (link2) { - const prev = link2.prevDep; - if (link2.version === -1) { - if (link2 === tail) tail = prev; - removeSub(link2); - removeDep(link2); - } else { - head = link2; - } - link2.dep.activeLink = link2.prevActiveLink; - link2.prevActiveLink = void 0; - link2 = prev; - } - sub.deps = head; - sub.depsTail = tail; -} -function isDirty(sub) { - for (let link2 = sub.deps; link2; link2 = link2.nextDep) { - if (link2.dep.version !== link2.version || link2.dep.computed && (refreshComputed(link2.dep.computed) || link2.dep.version !== link2.version)) { - return true; - } - } - if (sub._dirty) { - return true; - } - return false; -} -function refreshComputed(computed2) { - if (computed2.flags & 4 && !(computed2.flags & 16)) { - return; - } - computed2.flags &= ~16; - if (computed2.globalVersion === globalVersion) { - return; - } - computed2.globalVersion = globalVersion; - const dep = computed2.dep; - computed2.flags |= 2; - if (dep.version > 0 && !computed2.isSSR && computed2.deps && !isDirty(computed2)) { - computed2.flags &= ~2; - return; - } - const prevSub = activeSub; - const prevShouldTrack = shouldTrack; - activeSub = computed2; - shouldTrack = true; - try { - prepareDeps(computed2); - const value = computed2.fn(computed2._value); - if (dep.version === 0 || hasChanged(value, computed2._value)) { - computed2._value = value; - dep.version++; - } - } catch (err) { - dep.version++; - throw err; - } finally { - activeSub = prevSub; - shouldTrack = prevShouldTrack; - cleanupDeps(computed2); - computed2.flags &= ~2; - } -} -function removeSub(link2, soft = false) { - const { dep, prevSub, nextSub } = link2; - if (prevSub) { - prevSub.nextSub = nextSub; - link2.prevSub = void 0; - } - if (nextSub) { - nextSub.prevSub = prevSub; - link2.nextSub = void 0; - } - if (dep.subs === link2) { - dep.subs = prevSub; - if (!prevSub && dep.computed) { - dep.computed.flags &= ~4; - for (let l = dep.computed.deps; l; l = l.nextDep) { - removeSub(l, true); - } - } - } - if (!soft && !--dep.sc && dep.map) { - dep.map.delete(dep.key); - } -} -function removeDep(link2) { - const { prevDep, nextDep } = link2; - if (prevDep) { - prevDep.nextDep = nextDep; - link2.prevDep = void 0; - } - if (nextDep) { - nextDep.prevDep = prevDep; - link2.nextDep = void 0; - } -} -let shouldTrack = true; -const trackStack = []; -function pauseTracking() { - trackStack.push(shouldTrack); - shouldTrack = false; -} -function resetTracking() { - const last = trackStack.pop(); - shouldTrack = last === void 0 ? true : last; -} -function cleanupEffect(e) { - const { cleanup } = e; - e.cleanup = void 0; - if (cleanup) { - const prevSub = activeSub; - activeSub = void 0; - try { - cleanup(); - } finally { - activeSub = prevSub; - } - } -} -let globalVersion = 0; -class Link { - constructor(sub, dep) { - this.sub = sub; - this.dep = dep; - this.version = dep.version; - this.nextDep = this.prevDep = this.nextSub = this.prevSub = this.prevActiveLink = void 0; - } -} -class Dep { - constructor(computed2) { - this.computed = computed2; - this.version = 0; - this.activeLink = void 0; - this.subs = void 0; - this.map = void 0; - this.key = void 0; - this.sc = 0; - } - track(debugInfo) { - if (!activeSub || !shouldTrack || activeSub === this.computed) { - return; - } - let link2 = this.activeLink; - if (link2 === void 0 || link2.sub !== activeSub) { - link2 = this.activeLink = new Link(activeSub, this); - if (!activeSub.deps) { - activeSub.deps = activeSub.depsTail = link2; - } else { - link2.prevDep = activeSub.depsTail; - activeSub.depsTail.nextDep = link2; - activeSub.depsTail = link2; - } - addSub(link2); - } else if (link2.version === -1) { - link2.version = this.version; - if (link2.nextDep) { - const next = link2.nextDep; - next.prevDep = link2.prevDep; - if (link2.prevDep) { - link2.prevDep.nextDep = next; - } - link2.prevDep = activeSub.depsTail; - link2.nextDep = void 0; - activeSub.depsTail.nextDep = link2; - activeSub.depsTail = link2; - if (activeSub.deps === link2) { - activeSub.deps = next; - } - } - } - return link2; - } - trigger(debugInfo) { - this.version++; - globalVersion++; - this.notify(debugInfo); - } - notify(debugInfo) { - startBatch(); - try { - if (false) ; - for (let link2 = this.subs; link2; link2 = link2.prevSub) { - if (link2.sub.notify()) { - ; - link2.sub.dep.notify(); - } - } - } finally { - endBatch(); - } - } -} -function addSub(link2) { - link2.dep.sc++; - if (link2.sub.flags & 4) { - const computed2 = link2.dep.computed; - if (computed2 && !link2.dep.subs) { - computed2.flags |= 4 | 16; - for (let l = computed2.deps; l; l = l.nextDep) { - addSub(l); - } - } - const currentTail = link2.dep.subs; - if (currentTail !== link2) { - link2.prevSub = currentTail; - if (currentTail) currentTail.nextSub = link2; - } - link2.dep.subs = link2; - } -} -const targetMap = /* @__PURE__ */ new WeakMap(); -const ITERATE_KEY = Symbol( - "" -); -const MAP_KEY_ITERATE_KEY = Symbol( - "" -); -const ARRAY_ITERATE_KEY = Symbol( - "" -); -function track(target, type, key) { - if (shouldTrack && activeSub) { - let depsMap = targetMap.get(target); - if (!depsMap) { - targetMap.set(target, depsMap = /* @__PURE__ */ new Map()); - } - let dep = depsMap.get(key); - if (!dep) { - depsMap.set(key, dep = new Dep()); - dep.map = depsMap; - dep.key = key; - } - { - dep.track(); - } - } -} -function trigger$1(target, type, key, newValue, oldValue, oldTarget) { - const depsMap = targetMap.get(target); - if (!depsMap) { - globalVersion++; - return; - } - const run = (dep) => { - if (dep) { - { - dep.trigger(); - } - } - }; - startBatch(); - if (type === "clear") { - depsMap.forEach(run); - } else { - const targetIsArray = isArray$3(target); - const isArrayIndex = targetIsArray && isIntegerKey(key); - if (targetIsArray && key === "length") { - const newLength = Number(newValue); - depsMap.forEach((dep, key2) => { - if (key2 === "length" || key2 === ARRAY_ITERATE_KEY || !isSymbol$1(key2) && key2 >= newLength) { - run(dep); - } - }); - } else { - if (key !== void 0 || depsMap.has(void 0)) { - run(depsMap.get(key)); - } - if (isArrayIndex) { - run(depsMap.get(ARRAY_ITERATE_KEY)); - } - switch (type) { - case "add": - if (!targetIsArray) { - run(depsMap.get(ITERATE_KEY)); - if (isMap(target)) { - run(depsMap.get(MAP_KEY_ITERATE_KEY)); - } - } else if (isArrayIndex) { - run(depsMap.get("length")); - } - break; - case "delete": - if (!targetIsArray) { - run(depsMap.get(ITERATE_KEY)); - if (isMap(target)) { - run(depsMap.get(MAP_KEY_ITERATE_KEY)); - } - } - break; - case "set": - if (isMap(target)) { - run(depsMap.get(ITERATE_KEY)); - } - break; - } - } - } - endBatch(); -} -function getDepFromReactive(object, key) { - const depMap = targetMap.get(object); - return depMap && depMap.get(key); -} -function reactiveReadArray(array) { - const raw = toRaw(array); - if (raw === array) return raw; - track(raw, "iterate", ARRAY_ITERATE_KEY); - return isShallow(array) ? raw : raw.map(toReactive); -} -function shallowReadArray(arr) { - track(arr = toRaw(arr), "iterate", ARRAY_ITERATE_KEY); - return arr; -} -const arrayInstrumentations = { - __proto__: null, - [Symbol.iterator]() { - return iterator(this, Symbol.iterator, toReactive); - }, - concat(...args) { - return reactiveReadArray(this).concat( - ...args.map((x) => isArray$3(x) ? reactiveReadArray(x) : x) - ); - }, - entries() { - return iterator(this, "entries", (value) => { - value[1] = toReactive(value[1]); - return value; - }); - }, - every(fn, thisArg) { - return apply$1(this, "every", fn, thisArg, void 0, arguments); - }, - filter(fn, thisArg) { - return apply$1(this, "filter", fn, thisArg, (v) => v.map(toReactive), arguments); - }, - find(fn, thisArg) { - return apply$1(this, "find", fn, thisArg, toReactive, arguments); - }, - findIndex(fn, thisArg) { - return apply$1(this, "findIndex", fn, thisArg, void 0, arguments); - }, - findLast(fn, thisArg) { - return apply$1(this, "findLast", fn, thisArg, toReactive, arguments); - }, - findLastIndex(fn, thisArg) { - return apply$1(this, "findLastIndex", fn, thisArg, void 0, arguments); - }, - // flat, flatMap could benefit from ARRAY_ITERATE but are not straight-forward to implement - forEach(fn, thisArg) { - return apply$1(this, "forEach", fn, thisArg, void 0, arguments); - }, - includes(...args) { - return searchProxy(this, "includes", args); - }, - indexOf(...args) { - return searchProxy(this, "indexOf", args); - }, - join(separator) { - return reactiveReadArray(this).join(separator); - }, - // keys() iterator only reads `length`, no optimisation required - lastIndexOf(...args) { - return searchProxy(this, "lastIndexOf", args); - }, - map(fn, thisArg) { - return apply$1(this, "map", fn, thisArg, void 0, arguments); - }, - pop() { - return noTracking(this, "pop"); - }, - push(...args) { - return noTracking(this, "push", args); - }, - reduce(fn, ...args) { - return reduce(this, "reduce", fn, args); - }, - reduceRight(fn, ...args) { - return reduce(this, "reduceRight", fn, args); - }, - shift() { - return noTracking(this, "shift"); - }, - // slice could use ARRAY_ITERATE but also seems to beg for range tracking - some(fn, thisArg) { - return apply$1(this, "some", fn, thisArg, void 0, arguments); - }, - splice(...args) { - return noTracking(this, "splice", args); - }, - toReversed() { - return reactiveReadArray(this).toReversed(); - }, - toSorted(comparer) { - return reactiveReadArray(this).toSorted(comparer); - }, - toSpliced(...args) { - return reactiveReadArray(this).toSpliced(...args); - }, - unshift(...args) { - return noTracking(this, "unshift", args); - }, - values() { - return iterator(this, "values", toReactive); - } -}; -function iterator(self2, method, wrapValue) { - const arr = shallowReadArray(self2); - const iter = arr[method](); - if (arr !== self2 && !isShallow(self2)) { - iter._next = iter.next; - iter.next = () => { - const result = iter._next(); - if (result.value) { - result.value = wrapValue(result.value); - } - return result; - }; - } - return iter; -} -const arrayProto$1 = Array.prototype; -function apply$1(self2, method, fn, thisArg, wrappedRetFn, args) { - const arr = shallowReadArray(self2); - const needsWrap = arr !== self2 && !isShallow(self2); - const methodFn = arr[method]; - if (methodFn !== arrayProto$1[method]) { - const result2 = methodFn.apply(self2, args); - return needsWrap ? toReactive(result2) : result2; - } - let wrappedFn = fn; - if (arr !== self2) { - if (needsWrap) { - wrappedFn = function(item, index) { - return fn.call(this, toReactive(item), index, self2); - }; - } else if (fn.length > 2) { - wrappedFn = function(item, index) { - return fn.call(this, item, index, self2); - }; - } - } - const result = methodFn.call(arr, wrappedFn, thisArg); - return needsWrap && wrappedRetFn ? wrappedRetFn(result) : result; -} -function reduce(self2, method, fn, args) { - const arr = shallowReadArray(self2); - let wrappedFn = fn; - if (arr !== self2) { - if (!isShallow(self2)) { - wrappedFn = function(acc, item, index) { - return fn.call(this, acc, toReactive(item), index, self2); - }; - } else if (fn.length > 3) { - wrappedFn = function(acc, item, index) { - return fn.call(this, acc, item, index, self2); - }; - } - } - return arr[method](wrappedFn, ...args); -} -function searchProxy(self2, method, args) { - const arr = toRaw(self2); - track(arr, "iterate", ARRAY_ITERATE_KEY); - const res = arr[method](...args); - if ((res === -1 || res === false) && isProxy(args[0])) { - args[0] = toRaw(args[0]); - return arr[method](...args); - } - return res; -} -function noTracking(self2, method, args = []) { - pauseTracking(); - startBatch(); - const res = toRaw(self2)[method].apply(self2, args); - endBatch(); - resetTracking(); - return res; -} -const isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`); -const builtInSymbols = new Set( - /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== "arguments" && key !== "caller").map((key) => Symbol[key]).filter(isSymbol$1) -); -function hasOwnProperty$a(key) { - if (!isSymbol$1(key)) key = String(key); - const obj = toRaw(this); - track(obj, "has", key); - return obj.hasOwnProperty(key); -} -class BaseReactiveHandler { - constructor(_isReadonly = false, _isShallow = false) { - this._isReadonly = _isReadonly; - this._isShallow = _isShallow; - } - get(target, key, receiver) { - if (key === "__v_skip") return target["__v_skip"]; - const isReadonly2 = this._isReadonly, isShallow2 = this._isShallow; - if (key === "__v_isReactive") { - return !isReadonly2; - } else if (key === "__v_isReadonly") { - return isReadonly2; - } else if (key === "__v_isShallow") { - return isShallow2; - } else if (key === "__v_raw") { - if (receiver === (isReadonly2 ? isShallow2 ? shallowReadonlyMap : readonlyMap : isShallow2 ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype - // this means the receiver is a user proxy of the reactive proxy - Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) { - return target; - } - return; - } - const targetIsArray = isArray$3(target); - if (!isReadonly2) { - let fn; - if (targetIsArray && (fn = arrayInstrumentations[key])) { - return fn; - } - if (key === "hasOwnProperty") { - return hasOwnProperty$a; - } - } - const res = Reflect.get( - target, - key, - // if this is a proxy wrapping a ref, return methods using the raw ref - // as receiver so that we don't have to call `toRaw` on the ref in all - // its class methods - isRef(target) ? target : receiver - ); - if (isSymbol$1(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) { - return res; - } - if (!isReadonly2) { - track(target, "get", key); - } - if (isShallow2) { - return res; - } - if (isRef(res)) { - return targetIsArray && isIntegerKey(key) ? res : res.value; - } - if (isObject$4(res)) { - return isReadonly2 ? readonly(res) : reactive(res); - } - return res; - } -} -class MutableReactiveHandler extends BaseReactiveHandler { - constructor(isShallow2 = false) { - super(false, isShallow2); - } - set(target, key, value, receiver) { - let oldValue = target[key]; - if (!this._isShallow) { - const isOldValueReadonly = isReadonly(oldValue); - if (!isShallow(value) && !isReadonly(value)) { - oldValue = toRaw(oldValue); - value = toRaw(value); - } - if (!isArray$3(target) && isRef(oldValue) && !isRef(value)) { - if (isOldValueReadonly) { - return false; - } else { - oldValue.value = value; - return true; - } - } - } - const hadKey = isArray$3(target) && isIntegerKey(key) ? Number(key) < target.length : hasOwn(target, key); - const result = Reflect.set( - target, - key, - value, - isRef(target) ? target : receiver - ); - if (target === toRaw(receiver)) { - if (!hadKey) { - trigger$1(target, "add", key, value); - } else if (hasChanged(value, oldValue)) { - trigger$1(target, "set", key, value); - } - } - return result; - } - deleteProperty(target, key) { - const hadKey = hasOwn(target, key); - target[key]; - const result = Reflect.deleteProperty(target, key); - if (result && hadKey) { - trigger$1(target, "delete", key, void 0); - } - return result; - } - has(target, key) { - const result = Reflect.has(target, key); - if (!isSymbol$1(key) || !builtInSymbols.has(key)) { - track(target, "has", key); - } - return result; - } - ownKeys(target) { - track( - target, - "iterate", - isArray$3(target) ? "length" : ITERATE_KEY - ); - return Reflect.ownKeys(target); - } -} -class ReadonlyReactiveHandler extends BaseReactiveHandler { - constructor(isShallow2 = false) { - super(true, isShallow2); - } - set(target, key) { - return true; - } - deleteProperty(target, key) { - return true; - } -} -const mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler(); -const readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(); -const shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(true); -const shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true); -const toShallow = (value) => value; -const getProto = (v) => Reflect.getPrototypeOf(v); -function createIterableMethod(method, isReadonly2, isShallow2) { - return function(...args) { - const target = this["__v_raw"]; - const rawTarget = toRaw(target); - const targetIsMap = isMap(rawTarget); - const isPair = method === "entries" || method === Symbol.iterator && targetIsMap; - const isKeyOnly = method === "keys" && targetIsMap; - const innerIterator = target[method](...args); - const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive; - !isReadonly2 && track( - rawTarget, - "iterate", - isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY - ); - return { - // iterator protocol - next() { - const { value, done } = innerIterator.next(); - return done ? { value, done } : { - value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value), - done - }; - }, - // iterable protocol - [Symbol.iterator]() { - return this; - } - }; - }; -} -function createReadonlyMethod(type) { - return function(...args) { - return type === "delete" ? false : type === "clear" ? void 0 : this; - }; -} -function createInstrumentations(readonly2, shallow) { - const instrumentations = { - get(key) { - const target = this["__v_raw"]; - const rawTarget = toRaw(target); - const rawKey = toRaw(key); - if (!readonly2) { - if (hasChanged(key, rawKey)) { - track(rawTarget, "get", key); - } - track(rawTarget, "get", rawKey); - } - const { has } = getProto(rawTarget); - const wrap = shallow ? toShallow : readonly2 ? toReadonly : toReactive; - if (has.call(rawTarget, key)) { - return wrap(target.get(key)); - } else if (has.call(rawTarget, rawKey)) { - return wrap(target.get(rawKey)); - } else if (target !== rawTarget) { - target.get(key); - } - }, - get size() { - const target = this["__v_raw"]; - !readonly2 && track(toRaw(target), "iterate", ITERATE_KEY); - return Reflect.get(target, "size", target); - }, - has(key) { - const target = this["__v_raw"]; - const rawTarget = toRaw(target); - const rawKey = toRaw(key); - if (!readonly2) { - if (hasChanged(key, rawKey)) { - track(rawTarget, "has", key); - } - track(rawTarget, "has", rawKey); - } - return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey); - }, - forEach(callback, thisArg) { - const observed = this; - const target = observed["__v_raw"]; - const rawTarget = toRaw(target); - const wrap = shallow ? toShallow : readonly2 ? toReadonly : toReactive; - !readonly2 && track(rawTarget, "iterate", ITERATE_KEY); - return target.forEach((value, key) => { - return callback.call(thisArg, wrap(value), wrap(key), observed); - }); - } - }; - extend$1( - instrumentations, - readonly2 ? { - add: createReadonlyMethod("add"), - set: createReadonlyMethod("set"), - delete: createReadonlyMethod("delete"), - clear: createReadonlyMethod("clear") - } : { - add(value) { - if (!shallow && !isShallow(value) && !isReadonly(value)) { - value = toRaw(value); - } - const target = toRaw(this); - const proto = getProto(target); - const hadKey = proto.has.call(target, value); - if (!hadKey) { - target.add(value); - trigger$1(target, "add", value, value); - } - return this; - }, - set(key, value) { - if (!shallow && !isShallow(value) && !isReadonly(value)) { - value = toRaw(value); - } - const target = toRaw(this); - const { has, get: get2 } = getProto(target); - let hadKey = has.call(target, key); - if (!hadKey) { - key = toRaw(key); - hadKey = has.call(target, key); - } - const oldValue = get2.call(target, key); - target.set(key, value); - if (!hadKey) { - trigger$1(target, "add", key, value); - } else if (hasChanged(value, oldValue)) { - trigger$1(target, "set", key, value); - } - return this; - }, - delete(key) { - const target = toRaw(this); - const { has, get: get2 } = getProto(target); - let hadKey = has.call(target, key); - if (!hadKey) { - key = toRaw(key); - hadKey = has.call(target, key); - } - get2 ? get2.call(target, key) : void 0; - const result = target.delete(key); - if (hadKey) { - trigger$1(target, "delete", key, void 0); - } - return result; - }, - clear() { - const target = toRaw(this); - const hadItems = target.size !== 0; - const result = target.clear(); - if (hadItems) { - trigger$1( - target, - "clear", - void 0, - void 0 - ); - } - return result; - } - } - ); - const iteratorMethods = [ - "keys", - "values", - "entries", - Symbol.iterator - ]; - iteratorMethods.forEach((method) => { - instrumentations[method] = createIterableMethod(method, readonly2, shallow); - }); - return instrumentations; -} -function createInstrumentationGetter(isReadonly2, shallow) { - const instrumentations = createInstrumentations(isReadonly2, shallow); - return (target, key, receiver) => { - if (key === "__v_isReactive") { - return !isReadonly2; - } else if (key === "__v_isReadonly") { - return isReadonly2; - } else if (key === "__v_raw") { - return target; - } - return Reflect.get( - hasOwn(instrumentations, key) && key in target ? instrumentations : target, - key, - receiver - ); - }; -} -const mutableCollectionHandlers = { - get: /* @__PURE__ */ createInstrumentationGetter(false, false) -}; -const shallowCollectionHandlers = { - get: /* @__PURE__ */ createInstrumentationGetter(false, true) -}; -const readonlyCollectionHandlers = { - get: /* @__PURE__ */ createInstrumentationGetter(true, false) -}; -const shallowReadonlyCollectionHandlers = { - get: /* @__PURE__ */ createInstrumentationGetter(true, true) -}; -const reactiveMap = /* @__PURE__ */ new WeakMap(); -const shallowReactiveMap = /* @__PURE__ */ new WeakMap(); -const readonlyMap = /* @__PURE__ */ new WeakMap(); -const shallowReadonlyMap = /* @__PURE__ */ new WeakMap(); -function targetTypeMap(rawType) { - switch (rawType) { - case "Object": - case "Array": - return 1; - case "Map": - case "Set": - case "WeakMap": - case "WeakSet": - return 2; - default: - return 0; - } -} -function getTargetType(value) { - return value["__v_skip"] || !Object.isExtensible(value) ? 0 : targetTypeMap(toRawType(value)); -} -function reactive(target) { - if (isReadonly(target)) { - return target; - } - return createReactiveObject( - target, - false, - mutableHandlers, - mutableCollectionHandlers, - reactiveMap - ); -} -function shallowReactive(target) { - return createReactiveObject( - target, - false, - shallowReactiveHandlers, - shallowCollectionHandlers, - shallowReactiveMap - ); -} -function readonly(target) { - return createReactiveObject( - target, - true, - readonlyHandlers, - readonlyCollectionHandlers, - readonlyMap - ); -} -function shallowReadonly(target) { - return createReactiveObject( - target, - true, - shallowReadonlyHandlers, - shallowReadonlyCollectionHandlers, - shallowReadonlyMap - ); -} -function createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) { - if (!isObject$4(target)) { - return target; - } - if (target["__v_raw"] && !(isReadonly2 && target["__v_isReactive"])) { - return target; - } - const existingProxy = proxyMap.get(target); - if (existingProxy) { - return existingProxy; - } - const targetType = getTargetType(target); - if (targetType === 0) { - return target; - } - const proxy = new Proxy( - target, - targetType === 2 ? collectionHandlers : baseHandlers - ); - proxyMap.set(target, proxy); - return proxy; -} -function isReactive(value) { - if (isReadonly(value)) { - return isReactive(value["__v_raw"]); - } - return !!(value && value["__v_isReactive"]); -} -function isReadonly(value) { - return !!(value && value["__v_isReadonly"]); -} -function isShallow(value) { - return !!(value && value["__v_isShallow"]); -} -function isProxy(value) { - return value ? !!value["__v_raw"] : false; -} -function toRaw(observed) { - const raw = observed && observed["__v_raw"]; - return raw ? toRaw(raw) : observed; -} -function markRaw(value) { - if (!hasOwn(value, "__v_skip") && Object.isExtensible(value)) { - def$1(value, "__v_skip", true); - } - return value; -} -const toReactive = (value) => isObject$4(value) ? reactive(value) : value; -const toReadonly = (value) => isObject$4(value) ? readonly(value) : value; -function isRef(r) { - return r ? r["__v_isRef"] === true : false; -} -function ref(value) { - return createRef(value, false); -} -function shallowRef(value) { - return createRef(value, true); -} -function createRef(rawValue, shallow) { - if (isRef(rawValue)) { - return rawValue; - } - return new RefImpl(rawValue, shallow); -} -class RefImpl { - constructor(value, isShallow2) { - this.dep = new Dep(); - this["__v_isRef"] = true; - this["__v_isShallow"] = false; - this._rawValue = isShallow2 ? value : toRaw(value); - this._value = isShallow2 ? value : toReactive(value); - this["__v_isShallow"] = isShallow2; - } - get value() { - { - this.dep.track(); - } - return this._value; - } - set value(newValue) { - const oldValue = this._rawValue; - const useDirectValue = this["__v_isShallow"] || isShallow(newValue) || isReadonly(newValue); - newValue = useDirectValue ? newValue : toRaw(newValue); - if (hasChanged(newValue, oldValue)) { - this._rawValue = newValue; - this._value = useDirectValue ? newValue : toReactive(newValue); - { - this.dep.trigger(); - } - } - } -} -function unref(ref2) { - return isRef(ref2) ? ref2.value : ref2; -} -const shallowUnwrapHandlers = { - get: (target, key, receiver) => key === "__v_raw" ? target : unref(Reflect.get(target, key, receiver)), - set: (target, key, value, receiver) => { - const oldValue = target[key]; - if (isRef(oldValue) && !isRef(value)) { - oldValue.value = value; - return true; - } else { - return Reflect.set(target, key, value, receiver); - } - } -}; -function proxyRefs(objectWithRefs) { - return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers); -} -class ObjectRefImpl { - constructor(_object, _key, _defaultValue) { - this._object = _object; - this._key = _key; - this._defaultValue = _defaultValue; - this["__v_isRef"] = true; - this._value = void 0; - } - get value() { - const val = this._object[this._key]; - return this._value = val === void 0 ? this._defaultValue : val; - } - set value(newVal) { - this._object[this._key] = newVal; - } - get dep() { - return getDepFromReactive(toRaw(this._object), this._key); - } -} -class GetterRefImpl { - constructor(_getter) { - this._getter = _getter; - this["__v_isRef"] = true; - this["__v_isReadonly"] = true; - this._value = void 0; - } - get value() { - return this._value = this._getter(); - } -} -function toRef(source, key, defaultValue) { - if (isRef(source)) { - return source; - } else if (isFunction$2(source)) { - return new GetterRefImpl(source); - } else if (isObject$4(source) && arguments.length > 1) { - return propertyToRef(source, key, defaultValue); - } else { - return ref(source); - } -} -function propertyToRef(source, key, defaultValue) { - const val = source[key]; - return isRef(val) ? val : new ObjectRefImpl(source, key, defaultValue); -} -class ComputedRefImpl { - constructor(fn, setter, isSSR) { - this.fn = fn; - this.setter = setter; - this._value = void 0; - this.dep = new Dep(this); - this.__v_isRef = true; - this.deps = void 0; - this.depsTail = void 0; - this.flags = 16; - this.globalVersion = globalVersion - 1; - this.next = void 0; - this.effect = this; - this["__v_isReadonly"] = !setter; - this.isSSR = isSSR; - } - /** - * @internal - */ - notify() { - this.flags |= 16; - if (!(this.flags & 8) && // avoid infinite self recursion - activeSub !== this) { - batch(this, true); - return true; - } - } - get value() { - const link2 = this.dep.track(); - refreshComputed(this); - if (link2) { - link2.version = this.dep.version; - } - return this._value; - } - set value(newValue) { - if (this.setter) { - this.setter(newValue); - } - } -} -function computed$1(getterOrOptions, debugOptions, isSSR = false) { - let getter; - let setter; - if (isFunction$2(getterOrOptions)) { - getter = getterOrOptions; - } else { - getter = getterOrOptions.get; - setter = getterOrOptions.set; - } - const cRef = new ComputedRefImpl(getter, setter, isSSR); - return cRef; -} -const INITIAL_WATCHER_VALUE = {}; -const cleanupMap = /* @__PURE__ */ new WeakMap(); -let activeWatcher = void 0; -function onWatcherCleanup(cleanupFn, failSilently = false, owner = activeWatcher) { - if (owner) { - let cleanups = cleanupMap.get(owner); - if (!cleanups) cleanupMap.set(owner, cleanups = []); - cleanups.push(cleanupFn); - } -} -function watch$1(source, cb, options = EMPTY_OBJ) { - const { immediate, deep, once, scheduler: scheduler2, augmentJob, call: call2 } = options; - const reactiveGetter = (source2) => { - if (deep) return source2; - if (isShallow(source2) || deep === false || deep === 0) - return traverse(source2, 1); - return traverse(source2); - }; - let effect2; - let getter; - let cleanup; - let boundCleanup; - let forceTrigger = false; - let isMultiSource = false; - if (isRef(source)) { - getter = () => source.value; - forceTrigger = isShallow(source); - } else if (isReactive(source)) { - getter = () => reactiveGetter(source); - forceTrigger = true; - } else if (isArray$3(source)) { - isMultiSource = true; - forceTrigger = source.some((s) => isReactive(s) || isShallow(s)); - getter = () => source.map((s) => { - if (isRef(s)) { - return s.value; - } else if (isReactive(s)) { - return reactiveGetter(s); - } else if (isFunction$2(s)) { - return call2 ? call2(s, 2) : s(); - } else ; - }); - } else if (isFunction$2(source)) { - if (cb) { - getter = call2 ? () => call2(source, 2) : source; - } else { - getter = () => { - if (cleanup) { - pauseTracking(); - try { - cleanup(); - } finally { - resetTracking(); - } - } - const currentEffect = activeWatcher; - activeWatcher = effect2; - try { - return call2 ? call2(source, 3, [boundCleanup]) : source(boundCleanup); - } finally { - activeWatcher = currentEffect; - } - }; - } - } else { - getter = NOOP; - } - if (cb && deep) { - const baseGetter = getter; - const depth = deep === true ? Infinity : deep; - getter = () => traverse(baseGetter(), depth); - } - const scope = getCurrentScope(); - const watchHandle = () => { - effect2.stop(); - if (scope && scope.active) { - remove(scope.effects, effect2); - } - }; - if (once && cb) { - const _cb = cb; - cb = (...args) => { - _cb(...args); - watchHandle(); - }; - } - let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE; - const job = (immediateFirstRun) => { - if (!(effect2.flags & 1) || !effect2.dirty && !immediateFirstRun) { - return; - } - if (cb) { - const newValue = effect2.run(); - if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue))) { - if (cleanup) { - cleanup(); - } - const currentWatcher = activeWatcher; - activeWatcher = effect2; - try { - const args = [ - newValue, - // pass undefined as the old value when it's changed for the first time - oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue, - boundCleanup - ]; - call2 ? call2(cb, 3, args) : ( - // @ts-expect-error - cb(...args) - ); - oldValue = newValue; - } finally { - activeWatcher = currentWatcher; - } - } - } else { - effect2.run(); - } - }; - if (augmentJob) { - augmentJob(job); - } - effect2 = new ReactiveEffect(getter); - effect2.scheduler = scheduler2 ? () => scheduler2(job, false) : job; - boundCleanup = (fn) => onWatcherCleanup(fn, false, effect2); - cleanup = effect2.onStop = () => { - const cleanups = cleanupMap.get(effect2); - if (cleanups) { - if (call2) { - call2(cleanups, 4); - } else { - for (const cleanup2 of cleanups) cleanup2(); - } - cleanupMap.delete(effect2); - } - }; - if (cb) { - if (immediate) { - job(true); - } else { - oldValue = effect2.run(); - } - } else if (scheduler2) { - scheduler2(job.bind(null, true), true); - } else { - effect2.run(); - } - watchHandle.pause = effect2.pause.bind(effect2); - watchHandle.resume = effect2.resume.bind(effect2); - watchHandle.stop = watchHandle; - return watchHandle; -} -function traverse(value, depth = Infinity, seen2) { - if (depth <= 0 || !isObject$4(value) || value["__v_skip"]) { - return value; - } - seen2 = seen2 || /* @__PURE__ */ new Set(); - if (seen2.has(value)) { - return value; - } - seen2.add(value); - depth--; - if (isRef(value)) { - traverse(value.value, depth, seen2); - } else if (isArray$3(value)) { - for (let i = 0; i < value.length; i++) { - traverse(value[i], depth, seen2); - } - } else if (isSet(value) || isMap(value)) { - value.forEach((v) => { - traverse(v, depth, seen2); - }); - } else if (isPlainObject$2(value)) { - for (const key in value) { - traverse(value[key], depth, seen2); - } - for (const key of Object.getOwnPropertySymbols(value)) { - if (Object.prototype.propertyIsEnumerable.call(value, key)) { - traverse(value[key], depth, seen2); - } - } - } - return value; -} -/** -* @vue/runtime-core v3.5.13 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/ -const stack$1 = []; -let isWarning = false; -function warn$1$1(msg2, ...args) { - if (isWarning) return; - isWarning = true; - pauseTracking(); - const instance = stack$1.length ? stack$1[stack$1.length - 1].component : null; - const appWarnHandler = instance && instance.appContext.config.warnHandler; - const trace = getComponentTrace(); - if (appWarnHandler) { - callWithErrorHandling( - appWarnHandler, - instance, - 11, - [ - // eslint-disable-next-line no-restricted-syntax - msg2 + args.map((a) => { - var _a, _b; - return (_b = (_a = a.toString) == null ? void 0 : _a.call(a)) != null ? _b : JSON.stringify(a); - }).join(""), - instance && instance.proxy, - trace.map( - ({ vnode: vnode2 }) => `at <${formatComponentName(instance, vnode2.type)}>` - ).join("\n"), - trace - ] - ); - } else { - const warnArgs = [`[Vue warn]: ${msg2}`, ...args]; - if (trace.length && // avoid spamming console during tests - true) { - warnArgs.push(` -`, ...formatTrace(trace)); - } - console.warn(...warnArgs); - } - resetTracking(); - isWarning = false; -} -function getComponentTrace() { - let currentVNode = stack$1[stack$1.length - 1]; - if (!currentVNode) { - return []; - } - const normalizedStack = []; - while (currentVNode) { - const last = normalizedStack[0]; - if (last && last.vnode === currentVNode) { - last.recurseCount++; - } else { - normalizedStack.push({ - vnode: currentVNode, - recurseCount: 0 - }); - } - const parentInstance = currentVNode.component && currentVNode.component.parent; - currentVNode = parentInstance && parentInstance.vnode; - } - return normalizedStack; -} -function formatTrace(trace) { - const logs = []; - trace.forEach((entry, i) => { - logs.push(...i === 0 ? [] : [` -`], ...formatTraceEntry(entry)); - }); - return logs; -} -function formatTraceEntry({ vnode: vnode2, recurseCount }) { - const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``; - const isRoot = vnode2.component ? vnode2.component.parent == null : false; - const open = ` at <${formatComponentName( - vnode2.component, - vnode2.type, - isRoot - )}`; - const close = `>` + postfix; - return vnode2.props ? [open, ...formatProps(vnode2.props), close] : [open + close]; -} -function formatProps(props) { - const res = []; - const keys = Object.keys(props); - keys.slice(0, 3).forEach((key) => { - res.push(...formatProp(key, props[key])); - }); - if (keys.length > 3) { - res.push(` ...`); - } - return res; -} -function formatProp(key, value, raw) { - if (isString$1(value)) { - value = JSON.stringify(value); - return raw ? value : [`${key}=${value}`]; - } else if (typeof value === "number" || typeof value === "boolean" || value == null) { - return raw ? value : [`${key}=${value}`]; - } else if (isRef(value)) { - value = formatProp(key, toRaw(value.value), true); - return raw ? value : [`${key}=Ref<`, value, `>`]; - } else if (isFunction$2(value)) { - return [`${key}=fn${value.name ? `<${value.name}>` : ``}`]; - } else { - value = toRaw(value); - return raw ? value : [`${key}=`, value]; - } -} -function callWithErrorHandling(fn, instance, type, args) { - try { - return args ? fn(...args) : fn(); - } catch (err) { - handleError(err, instance, type); - } -} -function callWithAsyncErrorHandling(fn, instance, type, args) { - if (isFunction$2(fn)) { - const res = callWithErrorHandling(fn, instance, type, args); - if (res && isPromise$1(res)) { - res.catch((err) => { - handleError(err, instance, type); - }); - } - return res; - } - if (isArray$3(fn)) { - const values = []; - for (let i = 0; i < fn.length; i++) { - values.push(callWithAsyncErrorHandling(fn[i], instance, type, args)); - } - return values; - } -} -function handleError(err, instance, type, throwInDev = true) { - const contextVNode = instance ? instance.vnode : null; - const { errorHandler, throwUnhandledErrorInProduction } = instance && instance.appContext.config || EMPTY_OBJ; - if (instance) { - let cur = instance.parent; - const exposedInstance = instance.proxy; - const errorInfo = `https://vuejs.org/error-reference/#runtime-${type}`; - while (cur) { - const errorCapturedHooks = cur.ec; - if (errorCapturedHooks) { - for (let i = 0; i < errorCapturedHooks.length; i++) { - if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) { - return; - } - } - } - cur = cur.parent; - } - if (errorHandler) { - pauseTracking(); - callWithErrorHandling(errorHandler, null, 10, [ - err, - exposedInstance, - errorInfo - ]); - resetTracking(); - return; - } - } - logError(err, type, contextVNode, throwInDev, throwUnhandledErrorInProduction); -} -function logError(err, type, contextVNode, throwInDev = true, throwInProd = false) { - if (throwInProd) { - throw err; - } else { - console.error(err); - } -} -const queue = []; -let flushIndex = -1; -const pendingPostFlushCbs = []; -let activePostFlushCbs = null; -let postFlushIndex = 0; -const resolvedPromise = /* @__PURE__ */ Promise.resolve(); -let currentFlushPromise = null; -function nextTick(fn) { - const p2 = currentFlushPromise || resolvedPromise; - return fn ? p2.then(this ? fn.bind(this) : fn) : p2; -} -function findInsertionIndex$1(id) { - let start = flushIndex + 1; - let end = queue.length; - while (start < end) { - const middle = start + end >>> 1; - const middleJob = queue[middle]; - const middleJobId = getId(middleJob); - if (middleJobId < id || middleJobId === id && middleJob.flags & 2) { - start = middle + 1; - } else { - end = middle; - } - } - return start; -} -function queueJob(job) { - if (!(job.flags & 1)) { - const jobId = getId(job); - const lastJob = queue[queue.length - 1]; - if (!lastJob || // fast path when the job id is larger than the tail - !(job.flags & 2) && jobId >= getId(lastJob)) { - queue.push(job); - } else { - queue.splice(findInsertionIndex$1(jobId), 0, job); - } - job.flags |= 1; - queueFlush(); - } -} -function queueFlush() { - if (!currentFlushPromise) { - currentFlushPromise = resolvedPromise.then(flushJobs); - } -} -function queuePostFlushCb(cb) { - if (!isArray$3(cb)) { - if (activePostFlushCbs && cb.id === -1) { - activePostFlushCbs.splice(postFlushIndex + 1, 0, cb); - } else if (!(cb.flags & 1)) { - pendingPostFlushCbs.push(cb); - cb.flags |= 1; - } - } else { - pendingPostFlushCbs.push(...cb); - } - queueFlush(); -} -function flushPreFlushCbs(instance, seen2, i = flushIndex + 1) { - for (; i < queue.length; i++) { - const cb = queue[i]; - if (cb && cb.flags & 2) { - if (instance && cb.id !== instance.uid) { - continue; - } - queue.splice(i, 1); - i--; - if (cb.flags & 4) { - cb.flags &= ~1; - } - cb(); - if (!(cb.flags & 4)) { - cb.flags &= ~1; - } - } - } -} -function flushPostFlushCbs(seen2) { - if (pendingPostFlushCbs.length) { - const deduped = [...new Set(pendingPostFlushCbs)].sort( - (a, b) => getId(a) - getId(b) - ); - pendingPostFlushCbs.length = 0; - if (activePostFlushCbs) { - activePostFlushCbs.push(...deduped); - return; - } - activePostFlushCbs = deduped; - for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) { - const cb = activePostFlushCbs[postFlushIndex]; - if (cb.flags & 4) { - cb.flags &= ~1; - } - if (!(cb.flags & 8)) cb(); - cb.flags &= ~1; - } - activePostFlushCbs = null; - postFlushIndex = 0; - } -} -const getId = (job) => job.id == null ? job.flags & 2 ? -1 : Infinity : job.id; -function flushJobs(seen2) { - try { - for (flushIndex = 0; flushIndex < queue.length; flushIndex++) { - const job = queue[flushIndex]; - if (job && !(job.flags & 8)) { - if (false) ; - if (job.flags & 4) { - job.flags &= ~1; - } - callWithErrorHandling( - job, - job.i, - job.i ? 15 : 14 - ); - if (!(job.flags & 4)) { - job.flags &= ~1; - } - } - } - } finally { - for (; flushIndex < queue.length; flushIndex++) { - const job = queue[flushIndex]; - if (job) { - job.flags &= ~1; - } - } - flushIndex = -1; - queue.length = 0; - flushPostFlushCbs(); - currentFlushPromise = null; - if (queue.length || pendingPostFlushCbs.length) { - flushJobs(); - } - } -} -let currentRenderingInstance = null; -let currentScopeId = null; -function setCurrentRenderingInstance(instance) { - const prev = currentRenderingInstance; - currentRenderingInstance = instance; - currentScopeId = instance && instance.type.__scopeId || null; - return prev; -} -function withCtx(fn, ctx2 = currentRenderingInstance, isNonScopedSlot) { - if (!ctx2) return fn; - if (fn._n) { - return fn; - } - const renderFnWithContext = (...args) => { - if (renderFnWithContext._d) { - setBlockTracking(-1); - } - const prevInstance = setCurrentRenderingInstance(ctx2); - let res; - try { - res = fn(...args); - } finally { - setCurrentRenderingInstance(prevInstance); - if (renderFnWithContext._d) { - setBlockTracking(1); - } - } - return res; - }; - renderFnWithContext._n = true; - renderFnWithContext._c = true; - renderFnWithContext._d = true; - return renderFnWithContext; -} -function withDirectives(vnode2, directives2) { - if (currentRenderingInstance === null) { - return vnode2; - } - const instance = getComponentPublicInstance(currentRenderingInstance); - const bindings = vnode2.dirs || (vnode2.dirs = []); - for (let i = 0; i < directives2.length; i++) { - let [dir, value, arg, modifiers = EMPTY_OBJ] = directives2[i]; - if (dir) { - if (isFunction$2(dir)) { - dir = { - mounted: dir, - updated: dir - }; - } - if (dir.deep) { - traverse(value); - } - bindings.push({ - dir, - instance, - value, - oldValue: void 0, - arg, - modifiers - }); - } - } - return vnode2; -} -function invokeDirectiveHook(vnode2, prevVNode, instance, name2) { - const bindings = vnode2.dirs; - const oldBindings = prevVNode && prevVNode.dirs; - for (let i = 0; i < bindings.length; i++) { - const binding = bindings[i]; - if (oldBindings) { - binding.oldValue = oldBindings[i].value; - } - let hook = binding.dir[name2]; - if (hook) { - pauseTracking(); - callWithAsyncErrorHandling(hook, instance, 8, [ - vnode2.el, - binding, - vnode2, - prevVNode - ]); - resetTracking(); - } - } -} -const TeleportEndKey = Symbol("_vte"); -const isTeleport = (type) => type.__isTeleport; -const isTeleportDisabled = (props) => props && (props.disabled || props.disabled === ""); -const isTeleportDeferred = (props) => props && (props.defer || props.defer === ""); -const isTargetSVG = (target) => typeof SVGElement !== "undefined" && target instanceof SVGElement; -const isTargetMathML = (target) => typeof MathMLElement === "function" && target instanceof MathMLElement; -const resolveTarget = (props, select) => { - const targetSelector = props && props.to; - if (isString$1(targetSelector)) { - if (!select) { - return null; - } else { - const target = select(targetSelector); - return target; - } - } else { - return targetSelector; - } -}; -const TeleportImpl = { - name: "Teleport", - __isTeleport: true, - process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace2, slotScopeIds, optimized, internals) { - const { - mc: mountChildren, - pc: patchChildren, - pbc: patchBlockChildren, - o: { insert, querySelector, createText, createComment } - } = internals; - const disabled = isTeleportDisabled(n2.props); - let { shapeFlag, children, dynamicChildren } = n2; - if (n1 == null) { - const placeholder = n2.el = createText(""); - const mainAnchor = n2.anchor = createText(""); - insert(placeholder, container, anchor); - insert(mainAnchor, container, anchor); - const mount2 = (container2, anchor2) => { - if (shapeFlag & 16) { - if (parentComponent && parentComponent.isCE) { - parentComponent.ce._teleportTarget = container2; - } - mountChildren( - children, - container2, - anchor2, - parentComponent, - parentSuspense, - namespace2, - slotScopeIds, - optimized - ); - } - }; - const mountToTarget = () => { - const target = n2.target = resolveTarget(n2.props, querySelector); - const targetAnchor = prepareAnchor(target, n2, createText, insert); - if (target) { - if (namespace2 !== "svg" && isTargetSVG(target)) { - namespace2 = "svg"; - } else if (namespace2 !== "mathml" && isTargetMathML(target)) { - namespace2 = "mathml"; - } - if (!disabled) { - mount2(target, targetAnchor); - updateCssVars(n2, false); - } - } - }; - if (disabled) { - mount2(container, mainAnchor); - updateCssVars(n2, true); - } - if (isTeleportDeferred(n2.props)) { - queuePostRenderEffect(() => { - mountToTarget(); - n2.el.__isMounted = true; - }, parentSuspense); - } else { - mountToTarget(); - } - } else { - if (isTeleportDeferred(n2.props) && !n1.el.__isMounted) { - queuePostRenderEffect(() => { - TeleportImpl.process( - n1, - n2, - container, - anchor, - parentComponent, - parentSuspense, - namespace2, - slotScopeIds, - optimized, - internals - ); - delete n1.el.__isMounted; - }, parentSuspense); - return; - } - n2.el = n1.el; - n2.targetStart = n1.targetStart; - const mainAnchor = n2.anchor = n1.anchor; - const target = n2.target = n1.target; - const targetAnchor = n2.targetAnchor = n1.targetAnchor; - const wasDisabled = isTeleportDisabled(n1.props); - const currentContainer = wasDisabled ? container : target; - const currentAnchor = wasDisabled ? mainAnchor : targetAnchor; - if (namespace2 === "svg" || isTargetSVG(target)) { - namespace2 = "svg"; - } else if (namespace2 === "mathml" || isTargetMathML(target)) { - namespace2 = "mathml"; - } - if (dynamicChildren) { - patchBlockChildren( - n1.dynamicChildren, - dynamicChildren, - currentContainer, - parentComponent, - parentSuspense, - namespace2, - slotScopeIds - ); - traverseStaticChildren(n1, n2, true); - } else if (!optimized) { - patchChildren( - n1, - n2, - currentContainer, - currentAnchor, - parentComponent, - parentSuspense, - namespace2, - slotScopeIds, - false - ); - } - if (disabled) { - if (!wasDisabled) { - moveTeleport( - n2, - container, - mainAnchor, - internals, - 1 - ); - } else { - if (n2.props && n1.props && n2.props.to !== n1.props.to) { - n2.props.to = n1.props.to; - } - } - } else { - if ((n2.props && n2.props.to) !== (n1.props && n1.props.to)) { - const nextTarget = n2.target = resolveTarget( - n2.props, - querySelector - ); - if (nextTarget) { - moveTeleport( - n2, - nextTarget, - null, - internals, - 0 - ); - } - } else if (wasDisabled) { - moveTeleport( - n2, - target, - targetAnchor, - internals, - 1 - ); - } - } - updateCssVars(n2, disabled); - } - }, - remove(vnode2, parentComponent, parentSuspense, { um: unmount2, o: { remove: hostRemove } }, doRemove) { - const { - shapeFlag, - children, - anchor, - targetStart, - targetAnchor, - target, - props - } = vnode2; - if (target) { - hostRemove(targetStart); - hostRemove(targetAnchor); - } - doRemove && hostRemove(anchor); - if (shapeFlag & 16) { - const shouldRemove = doRemove || !isTeleportDisabled(props); - for (let i = 0; i < children.length; i++) { - const child = children[i]; - unmount2( - child, - parentComponent, - parentSuspense, - shouldRemove, - !!child.dynamicChildren - ); - } - } - }, - move: moveTeleport, - hydrate: hydrateTeleport -}; -function moveTeleport(vnode2, container, parentAnchor, { o: { insert }, m: move }, moveType = 2) { - if (moveType === 0) { - insert(vnode2.targetAnchor, container, parentAnchor); - } - const { el, anchor, shapeFlag, children, props } = vnode2; - const isReorder = moveType === 2; - if (isReorder) { - insert(el, container, parentAnchor); - } - if (!isReorder || isTeleportDisabled(props)) { - if (shapeFlag & 16) { - for (let i = 0; i < children.length; i++) { - move( - children[i], - container, - parentAnchor, - 2 - ); - } - } - } - if (isReorder) { - insert(anchor, container, parentAnchor); - } -} -function hydrateTeleport(node, vnode2, parentComponent, parentSuspense, slotScopeIds, optimized, { - o: { nextSibling, parentNode, querySelector, insert, createText } -}, hydrateChildren) { - const target = vnode2.target = resolveTarget( - vnode2.props, - querySelector - ); - if (target) { - const disabled = isTeleportDisabled(vnode2.props); - const targetNode = target._lpa || target.firstChild; - if (vnode2.shapeFlag & 16) { - if (disabled) { - vnode2.anchor = hydrateChildren( - nextSibling(node), - vnode2, - parentNode(node), - parentComponent, - parentSuspense, - slotScopeIds, - optimized - ); - vnode2.targetStart = targetNode; - vnode2.targetAnchor = targetNode && nextSibling(targetNode); - } else { - vnode2.anchor = nextSibling(node); - let targetAnchor = targetNode; - while (targetAnchor) { - if (targetAnchor && targetAnchor.nodeType === 8) { - if (targetAnchor.data === "teleport start anchor") { - vnode2.targetStart = targetAnchor; - } else if (targetAnchor.data === "teleport anchor") { - vnode2.targetAnchor = targetAnchor; - target._lpa = vnode2.targetAnchor && nextSibling(vnode2.targetAnchor); - break; - } - } - targetAnchor = nextSibling(targetAnchor); - } - if (!vnode2.targetAnchor) { - prepareAnchor(target, vnode2, createText, insert); - } - hydrateChildren( - targetNode && nextSibling(targetNode), - vnode2, - target, - parentComponent, - parentSuspense, - slotScopeIds, - optimized - ); - } - } - updateCssVars(vnode2, disabled); - } - return vnode2.anchor && nextSibling(vnode2.anchor); -} -const Teleport = TeleportImpl; -function updateCssVars(vnode2, isDisabled) { - const ctx2 = vnode2.ctx; - if (ctx2 && ctx2.ut) { - let node, anchor; - if (isDisabled) { - node = vnode2.el; - anchor = vnode2.anchor; - } else { - node = vnode2.targetStart; - anchor = vnode2.targetAnchor; - } - while (node && node !== anchor) { - if (node.nodeType === 1) node.setAttribute("data-v-owner", ctx2.uid); - node = node.nextSibling; - } - ctx2.ut(); - } -} -function prepareAnchor(target, vnode2, createText, insert) { - const targetStart = vnode2.targetStart = createText(""); - const targetAnchor = vnode2.targetAnchor = createText(""); - targetStart[TeleportEndKey] = targetAnchor; - if (target) { - insert(targetStart, target); - insert(targetAnchor, target); - } - return targetAnchor; -} -const leaveCbKey = Symbol("_leaveCb"); -const enterCbKey$1 = Symbol("_enterCb"); -function useTransitionState() { - const state2 = { - isMounted: false, - isLeaving: false, - isUnmounting: false, - leavingVNodes: /* @__PURE__ */ new Map() - }; - onMounted(() => { - state2.isMounted = true; - }); - onBeforeUnmount(() => { - state2.isUnmounting = true; - }); - return state2; -} -const TransitionHookValidator = [Function, Array]; -const BaseTransitionPropsValidators = { - mode: String, - appear: Boolean, - persisted: Boolean, - // enter - onBeforeEnter: TransitionHookValidator, - onEnter: TransitionHookValidator, - onAfterEnter: TransitionHookValidator, - onEnterCancelled: TransitionHookValidator, - // leave - onBeforeLeave: TransitionHookValidator, - onLeave: TransitionHookValidator, - onAfterLeave: TransitionHookValidator, - onLeaveCancelled: TransitionHookValidator, - // appear - onBeforeAppear: TransitionHookValidator, - onAppear: TransitionHookValidator, - onAfterAppear: TransitionHookValidator, - onAppearCancelled: TransitionHookValidator -}; -const recursiveGetSubtree = (instance) => { - const subTree = instance.subTree; - return subTree.component ? recursiveGetSubtree(subTree.component) : subTree; -}; -const BaseTransitionImpl = { - name: `BaseTransition`, - props: BaseTransitionPropsValidators, - setup(props, { slots }) { - const instance = getCurrentInstance(); - const state2 = useTransitionState(); - return () => { - const children = slots.default && getTransitionRawChildren(slots.default(), true); - if (!children || !children.length) { - return; - } - const child = findNonCommentChild(children); - const rawProps = toRaw(props); - const { mode } = rawProps; - if (state2.isLeaving) { - return emptyPlaceholder(child); - } - const innerChild = getInnerChild$1(child); - if (!innerChild) { - return emptyPlaceholder(child); - } - let enterHooks = resolveTransitionHooks( - innerChild, - rawProps, - state2, - instance, - // #11061, ensure enterHooks is fresh after clone - (hooks) => enterHooks = hooks - ); - if (innerChild.type !== Comment) { - setTransitionHooks(innerChild, enterHooks); - } - let oldInnerChild = instance.subTree && getInnerChild$1(instance.subTree); - if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(innerChild, oldInnerChild) && recursiveGetSubtree(instance).type !== Comment) { - let leavingHooks = resolveTransitionHooks( - oldInnerChild, - rawProps, - state2, - instance - ); - setTransitionHooks(oldInnerChild, leavingHooks); - if (mode === "out-in" && innerChild.type !== Comment) { - state2.isLeaving = true; - leavingHooks.afterLeave = () => { - state2.isLeaving = false; - if (!(instance.job.flags & 8)) { - instance.update(); - } - delete leavingHooks.afterLeave; - oldInnerChild = void 0; - }; - return emptyPlaceholder(child); - } else if (mode === "in-out" && innerChild.type !== Comment) { - leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => { - const leavingVNodesCache = getLeavingNodesForType( - state2, - oldInnerChild - ); - leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild; - el[leaveCbKey] = () => { - earlyRemove(); - el[leaveCbKey] = void 0; - delete enterHooks.delayedLeave; - oldInnerChild = void 0; - }; - enterHooks.delayedLeave = () => { - delayedLeave(); - delete enterHooks.delayedLeave; - oldInnerChild = void 0; - }; - }; - } else { - oldInnerChild = void 0; - } - } else if (oldInnerChild) { - oldInnerChild = void 0; - } - return child; - }; - } -}; -function findNonCommentChild(children) { - let child = children[0]; - if (children.length > 1) { - for (const c2 of children) { - if (c2.type !== Comment) { - child = c2; - break; - } - } - } - return child; -} -const BaseTransition = BaseTransitionImpl; -function getLeavingNodesForType(state2, vnode2) { - const { leavingVNodes } = state2; - let leavingVNodesCache = leavingVNodes.get(vnode2.type); - if (!leavingVNodesCache) { - leavingVNodesCache = /* @__PURE__ */ Object.create(null); - leavingVNodes.set(vnode2.type, leavingVNodesCache); - } - return leavingVNodesCache; -} -function resolveTransitionHooks(vnode2, props, state2, instance, postClone) { - const { - appear, - mode, - persisted = false, - onBeforeEnter, - onEnter, - onAfterEnter, - onEnterCancelled, - onBeforeLeave, - onLeave, - onAfterLeave, - onLeaveCancelled, - onBeforeAppear, - onAppear, - onAfterAppear, - onAppearCancelled - } = props; - const key = String(vnode2.key); - const leavingVNodesCache = getLeavingNodesForType(state2, vnode2); - const callHook2 = (hook, args) => { - hook && callWithAsyncErrorHandling( - hook, - instance, - 9, - args - ); - }; - const callAsyncHook = (hook, args) => { - const done = args[1]; - callHook2(hook, args); - if (isArray$3(hook)) { - if (hook.every((hook2) => hook2.length <= 1)) done(); - } else if (hook.length <= 1) { - done(); - } - }; - const hooks = { - mode, - persisted, - beforeEnter(el) { - let hook = onBeforeEnter; - if (!state2.isMounted) { - if (appear) { - hook = onBeforeAppear || onBeforeEnter; - } else { - return; - } - } - if (el[leaveCbKey]) { - el[leaveCbKey]( - true - /* cancelled */ - ); - } - const leavingVNode = leavingVNodesCache[key]; - if (leavingVNode && isSameVNodeType(vnode2, leavingVNode) && leavingVNode.el[leaveCbKey]) { - leavingVNode.el[leaveCbKey](); - } - callHook2(hook, [el]); - }, - enter(el) { - let hook = onEnter; - let afterHook = onAfterEnter; - let cancelHook = onEnterCancelled; - if (!state2.isMounted) { - if (appear) { - hook = onAppear || onEnter; - afterHook = onAfterAppear || onAfterEnter; - cancelHook = onAppearCancelled || onEnterCancelled; - } else { - return; - } - } - let called = false; - const done = el[enterCbKey$1] = (cancelled) => { - if (called) return; - called = true; - if (cancelled) { - callHook2(cancelHook, [el]); - } else { - callHook2(afterHook, [el]); - } - if (hooks.delayedLeave) { - hooks.delayedLeave(); - } - el[enterCbKey$1] = void 0; - }; - if (hook) { - callAsyncHook(hook, [el, done]); - } else { - done(); - } - }, - leave(el, remove2) { - const key2 = String(vnode2.key); - if (el[enterCbKey$1]) { - el[enterCbKey$1]( - true - /* cancelled */ - ); - } - if (state2.isUnmounting) { - return remove2(); - } - callHook2(onBeforeLeave, [el]); - let called = false; - const done = el[leaveCbKey] = (cancelled) => { - if (called) return; - called = true; - remove2(); - if (cancelled) { - callHook2(onLeaveCancelled, [el]); - } else { - callHook2(onAfterLeave, [el]); - } - el[leaveCbKey] = void 0; - if (leavingVNodesCache[key2] === vnode2) { - delete leavingVNodesCache[key2]; - } - }; - leavingVNodesCache[key2] = vnode2; - if (onLeave) { - callAsyncHook(onLeave, [el, done]); - } else { - done(); - } - }, - clone(vnode22) { - const hooks2 = resolveTransitionHooks( - vnode22, - props, - state2, - instance, - postClone - ); - if (postClone) postClone(hooks2); - return hooks2; - } - }; - return hooks; -} -function emptyPlaceholder(vnode2) { - if (isKeepAlive(vnode2)) { - vnode2 = cloneVNode(vnode2); - vnode2.children = null; - return vnode2; - } -} -function getInnerChild$1(vnode2) { - if (!isKeepAlive(vnode2)) { - if (isTeleport(vnode2.type) && vnode2.children) { - return findNonCommentChild(vnode2.children); - } - return vnode2; - } - const { shapeFlag, children } = vnode2; - if (children) { - if (shapeFlag & 16) { - return children[0]; - } - if (shapeFlag & 32 && isFunction$2(children.default)) { - return children.default(); - } - } -} -function setTransitionHooks(vnode2, hooks) { - if (vnode2.shapeFlag & 6 && vnode2.component) { - vnode2.transition = hooks; - setTransitionHooks(vnode2.component.subTree, hooks); - } else if (vnode2.shapeFlag & 128) { - vnode2.ssContent.transition = hooks.clone(vnode2.ssContent); - vnode2.ssFallback.transition = hooks.clone(vnode2.ssFallback); - } else { - vnode2.transition = hooks; - } -} -function getTransitionRawChildren(children, keepComment = false, parentKey) { - let ret = []; - let keyedFragmentCount = 0; - for (let i = 0; i < children.length; i++) { - let child = children[i]; - const key = parentKey == null ? child.key : String(parentKey) + String(child.key != null ? child.key : i); - if (child.type === Fragment) { - if (child.patchFlag & 128) keyedFragmentCount++; - ret = ret.concat( - getTransitionRawChildren(child.children, keepComment, key) - ); - } else if (keepComment || child.type !== Comment) { - ret.push(key != null ? cloneVNode(child, { key }) : child); - } - } - if (keyedFragmentCount > 1) { - for (let i = 0; i < ret.length; i++) { - ret[i].patchFlag = -2; - } - } - return ret; -} -/*! #__NO_SIDE_EFFECTS__ */ -// @__NO_SIDE_EFFECTS__ -function defineComponent(options, extraOptions) { - return isFunction$2(options) ? ( - // #8236: extend call and options.name access are considered side-effects - // by Rollup, so we have to wrap it in a pure-annotated IIFE. - /* @__PURE__ */ (() => extend$1({ name: options.name }, extraOptions, { setup: options }))() - ) : options; -} -function markAsyncBoundary(instance) { - instance.ids = [instance.ids[0] + instance.ids[2]++ + "-", 0, 0]; -} -function useTemplateRef(key) { - const i = getCurrentInstance(); - const r = shallowRef(null); - if (i) { - const refs = i.refs === EMPTY_OBJ ? i.refs = {} : i.refs; - { - Object.defineProperty(refs, key, { - enumerable: true, - get: () => r.value, - set: (val) => r.value = val - }); - } - } - const ret = r; - return ret; -} -function setRef(rawRef, oldRawRef, parentSuspense, vnode2, isUnmount = false) { - if (isArray$3(rawRef)) { - rawRef.forEach( - (r, i) => setRef( - r, - oldRawRef && (isArray$3(oldRawRef) ? oldRawRef[i] : oldRawRef), - parentSuspense, - vnode2, - isUnmount - ) - ); - return; - } - if (isAsyncWrapper(vnode2) && !isUnmount) { - if (vnode2.shapeFlag & 512 && vnode2.type.__asyncResolved && vnode2.component.subTree.component) { - setRef(rawRef, oldRawRef, parentSuspense, vnode2.component.subTree); - } - return; - } - const refValue = vnode2.shapeFlag & 4 ? getComponentPublicInstance(vnode2.component) : vnode2.el; - const value = isUnmount ? null : refValue; - const { i: owner, r: ref3 } = rawRef; - const oldRef = oldRawRef && oldRawRef.r; - const refs = owner.refs === EMPTY_OBJ ? owner.refs = {} : owner.refs; - const setupState = owner.setupState; - const rawSetupState = toRaw(setupState); - const canSetSetupRef = setupState === EMPTY_OBJ ? () => false : (key) => { - return hasOwn(rawSetupState, key); - }; - if (oldRef != null && oldRef !== ref3) { - if (isString$1(oldRef)) { - refs[oldRef] = null; - if (canSetSetupRef(oldRef)) { - setupState[oldRef] = null; - } - } else if (isRef(oldRef)) { - oldRef.value = null; - } - } - if (isFunction$2(ref3)) { - callWithErrorHandling(ref3, owner, 12, [value, refs]); - } else { - const _isString = isString$1(ref3); - const _isRef = isRef(ref3); - if (_isString || _isRef) { - const doSet = () => { - if (rawRef.f) { - const existing = _isString ? canSetSetupRef(ref3) ? setupState[ref3] : refs[ref3] : ref3.value; - if (isUnmount) { - isArray$3(existing) && remove(existing, refValue); - } else { - if (!isArray$3(existing)) { - if (_isString) { - refs[ref3] = [refValue]; - if (canSetSetupRef(ref3)) { - setupState[ref3] = refs[ref3]; - } - } else { - ref3.value = [refValue]; - if (rawRef.k) refs[rawRef.k] = ref3.value; - } - } else if (!existing.includes(refValue)) { - existing.push(refValue); - } - } - } else if (_isString) { - refs[ref3] = value; - if (canSetSetupRef(ref3)) { - setupState[ref3] = value; - } - } else if (_isRef) { - ref3.value = value; - if (rawRef.k) refs[rawRef.k] = value; - } else ; - }; - if (value) { - doSet.id = -1; - queuePostRenderEffect(doSet, parentSuspense); - } else { - doSet(); - } - } - } -} -const isComment = (node) => node.nodeType === 8; -getGlobalThis().requestIdleCallback || ((cb) => setTimeout(cb, 1)); -getGlobalThis().cancelIdleCallback || ((id) => clearTimeout(id)); -function forEachElement(node, cb) { - if (isComment(node) && node.data === "[") { - let depth = 1; - let next = node.nextSibling; - while (next) { - if (next.nodeType === 1) { - const result = cb(next); - if (result === false) { - break; - } - } else if (isComment(next)) { - if (next.data === "]") { - if (--depth === 0) break; - } else if (next.data === "[") { - depth++; - } - } - next = next.nextSibling; - } - } else { - cb(node); - } -} -const isAsyncWrapper = (i) => !!i.type.__asyncLoader; -/*! #__NO_SIDE_EFFECTS__ */ -// @__NO_SIDE_EFFECTS__ -function defineAsyncComponent(source) { - if (isFunction$2(source)) { - source = { loader: source }; - } - const { - loader, - loadingComponent, - errorComponent, - delay = 200, - hydrate: hydrateStrategy, - timeout, - // undefined = never times out - suspensible = true, - onError: userOnError - } = source; - let pendingRequest = null; - let resolvedComp; - let retries = 0; - const retry = () => { - retries++; - pendingRequest = null; - return load(); - }; - const load = () => { - let thisRequest; - return pendingRequest || (thisRequest = pendingRequest = loader().catch((err) => { - err = err instanceof Error ? err : new Error(String(err)); - if (userOnError) { - return new Promise((resolve2, reject) => { - const userRetry = () => resolve2(retry()); - const userFail = () => reject(err); - userOnError(err, userRetry, userFail, retries + 1); - }); - } else { - throw err; - } - }).then((comp) => { - if (thisRequest !== pendingRequest && pendingRequest) { - return pendingRequest; - } - if (comp && (comp.__esModule || comp[Symbol.toStringTag] === "Module")) { - comp = comp.default; - } - resolvedComp = comp; - return comp; - })); - }; - return /* @__PURE__ */ defineComponent({ - name: "AsyncComponentWrapper", - __asyncLoader: load, - __asyncHydrate(el, instance, hydrate) { - const doHydrate = hydrateStrategy ? () => { - const teardown = hydrateStrategy( - hydrate, - (cb) => forEachElement(el, cb) - ); - if (teardown) { - (instance.bum || (instance.bum = [])).push(teardown); - } - } : hydrate; - if (resolvedComp) { - doHydrate(); - } else { - load().then(() => !instance.isUnmounted && doHydrate()); - } - }, - get __asyncResolved() { - return resolvedComp; - }, - setup() { - const instance = currentInstance; - markAsyncBoundary(instance); - if (resolvedComp) { - return () => createInnerComp(resolvedComp, instance); - } - const onError = (err) => { - pendingRequest = null; - handleError( - err, - instance, - 13, - !errorComponent - ); - }; - if (suspensible && instance.suspense || isInSSRComponentSetup) { - return load().then((comp) => { - return () => createInnerComp(comp, instance); - }).catch((err) => { - onError(err); - return () => errorComponent ? createVNode(errorComponent, { - error: err - }) : null; - }); - } - const loaded = ref(false); - const error = ref(); - const delayed = ref(!!delay); - if (delay) { - setTimeout(() => { - delayed.value = false; - }, delay); - } - if (timeout != null) { - setTimeout(() => { - if (!loaded.value && !error.value) { - const err = new Error( - `Async component timed out after ${timeout}ms.` - ); - onError(err); - error.value = err; - } - }, timeout); - } - load().then(() => { - loaded.value = true; - if (instance.parent && isKeepAlive(instance.parent.vnode)) { - instance.parent.update(); - } - }).catch((err) => { - onError(err); - error.value = err; - }); - return () => { - if (loaded.value && resolvedComp) { - return createInnerComp(resolvedComp, instance); - } else if (error.value && errorComponent) { - return createVNode(errorComponent, { - error: error.value - }); - } else if (loadingComponent && !delayed.value) { - return createVNode(loadingComponent); - } - }; - } - }); -} -function createInnerComp(comp, parent) { - const { ref: ref22, props, children, ce } = parent.vnode; - const vnode2 = createVNode(comp, props, children); - vnode2.ref = ref22; - vnode2.ce = ce; - delete parent.vnode.ce; - return vnode2; -} -const isKeepAlive = (vnode2) => vnode2.type.__isKeepAlive; -const KeepAliveImpl = { - name: `KeepAlive`, - // Marker for special handling inside the renderer. We are not using a === - // check directly on KeepAlive in the renderer, because importing it directly - // would prevent it from being tree-shaken. - __isKeepAlive: true, - props: { - include: [String, RegExp, Array], - exclude: [String, RegExp, Array], - max: [String, Number] - }, - setup(props, { slots }) { - const instance = getCurrentInstance(); - const sharedContext = instance.ctx; - if (!sharedContext.renderer) { - return () => { - const children = slots.default && slots.default(); - return children && children.length === 1 ? children[0] : children; - }; - } - const cache2 = /* @__PURE__ */ new Map(); - const keys = /* @__PURE__ */ new Set(); - let current = null; - const parentSuspense = instance.suspense; - const { - renderer: { - p: patch, - m: move, - um: _unmount, - o: { createElement: createElement2 } - } - } = sharedContext; - const storageContainer = createElement2("div"); - sharedContext.activate = (vnode2, container, anchor, namespace2, optimized) => { - const instance2 = vnode2.component; - move(vnode2, container, anchor, 0, parentSuspense); - patch( - instance2.vnode, - vnode2, - container, - anchor, - instance2, - parentSuspense, - namespace2, - vnode2.slotScopeIds, - optimized - ); - queuePostRenderEffect(() => { - instance2.isDeactivated = false; - if (instance2.a) { - invokeArrayFns(instance2.a); - } - const vnodeHook = vnode2.props && vnode2.props.onVnodeMounted; - if (vnodeHook) { - invokeVNodeHook(vnodeHook, instance2.parent, vnode2); - } - }, parentSuspense); - }; - sharedContext.deactivate = (vnode2) => { - const instance2 = vnode2.component; - invalidateMount(instance2.m); - invalidateMount(instance2.a); - move(vnode2, storageContainer, null, 1, parentSuspense); - queuePostRenderEffect(() => { - if (instance2.da) { - invokeArrayFns(instance2.da); - } - const vnodeHook = vnode2.props && vnode2.props.onVnodeUnmounted; - if (vnodeHook) { - invokeVNodeHook(vnodeHook, instance2.parent, vnode2); - } - instance2.isDeactivated = true; - }, parentSuspense); - }; - function unmount2(vnode2) { - resetShapeFlag(vnode2); - _unmount(vnode2, instance, parentSuspense, true); - } - function pruneCache(filter2) { - cache2.forEach((vnode2, key) => { - const name2 = getComponentName(vnode2.type); - if (name2 && !filter2(name2)) { - pruneCacheEntry(key); - } - }); - } - function pruneCacheEntry(key) { - const cached = cache2.get(key); - if (cached && (!current || !isSameVNodeType(cached, current))) { - unmount2(cached); - } else if (current) { - resetShapeFlag(current); - } - cache2.delete(key); - keys.delete(key); - } - watch( - () => [props.include, props.exclude], - ([include, exclude]) => { - include && pruneCache((name2) => matches(include, name2)); - exclude && pruneCache((name2) => !matches(exclude, name2)); - }, - // prune post-render after `current` has been updated - { flush: "post", deep: true } - ); - let pendingCacheKey = null; - const cacheSubtree = () => { - if (pendingCacheKey != null) { - if (isSuspense(instance.subTree.type)) { - queuePostRenderEffect(() => { - cache2.set(pendingCacheKey, getInnerChild(instance.subTree)); - }, instance.subTree.suspense); - } else { - cache2.set(pendingCacheKey, getInnerChild(instance.subTree)); - } - } - }; - onMounted(cacheSubtree); - onUpdated(cacheSubtree); - onBeforeUnmount(() => { - cache2.forEach((cached) => { - const { subTree, suspense } = instance; - const vnode2 = getInnerChild(subTree); - if (cached.type === vnode2.type && cached.key === vnode2.key) { - resetShapeFlag(vnode2); - const da = vnode2.component.da; - da && queuePostRenderEffect(da, suspense); - return; - } - unmount2(cached); - }); - }); - return () => { - pendingCacheKey = null; - if (!slots.default) { - return current = null; - } - const children = slots.default(); - const rawVNode = children[0]; - if (children.length > 1) { - current = null; - return children; - } else if (!isVNode(rawVNode) || !(rawVNode.shapeFlag & 4) && !(rawVNode.shapeFlag & 128)) { - current = null; - return rawVNode; - } - let vnode2 = getInnerChild(rawVNode); - if (vnode2.type === Comment) { - current = null; - return vnode2; - } - const comp = vnode2.type; - const name2 = getComponentName( - isAsyncWrapper(vnode2) ? vnode2.type.__asyncResolved || {} : comp - ); - const { include, exclude, max } = props; - if (include && (!name2 || !matches(include, name2)) || exclude && name2 && matches(exclude, name2)) { - vnode2.shapeFlag &= ~256; - current = vnode2; - return rawVNode; - } - const key = vnode2.key == null ? comp : vnode2.key; - const cachedVNode = cache2.get(key); - if (vnode2.el) { - vnode2 = cloneVNode(vnode2); - if (rawVNode.shapeFlag & 128) { - rawVNode.ssContent = vnode2; - } - } - pendingCacheKey = key; - if (cachedVNode) { - vnode2.el = cachedVNode.el; - vnode2.component = cachedVNode.component; - if (vnode2.transition) { - setTransitionHooks(vnode2, vnode2.transition); - } - vnode2.shapeFlag |= 512; - keys.delete(key); - keys.add(key); - } else { - keys.add(key); - if (max && keys.size > parseInt(max, 10)) { - pruneCacheEntry(keys.values().next().value); - } - } - vnode2.shapeFlag |= 256; - current = vnode2; - return isSuspense(rawVNode.type) ? rawVNode : vnode2; - }; - } -}; -const KeepAlive = KeepAliveImpl; -function matches(pattern, name2) { - if (isArray$3(pattern)) { - return pattern.some((p2) => matches(p2, name2)); - } else if (isString$1(pattern)) { - return pattern.split(",").includes(name2); - } else if (isRegExp$1(pattern)) { - pattern.lastIndex = 0; - return pattern.test(name2); - } - return false; -} -function onActivated(hook, target) { - registerKeepAliveHook(hook, "a", target); -} -function onDeactivated(hook, target) { - registerKeepAliveHook(hook, "da", target); -} -function registerKeepAliveHook(hook, type, target = currentInstance) { - const wrappedHook = hook.__wdc || (hook.__wdc = () => { - let current = target; - while (current) { - if (current.isDeactivated) { - return; - } - current = current.parent; - } - return hook(); - }); - injectHook(type, wrappedHook, target); - if (target) { - let current = target.parent; - while (current && current.parent) { - if (isKeepAlive(current.parent.vnode)) { - injectToKeepAliveRoot(wrappedHook, type, target, current); - } - current = current.parent; - } - } -} -function injectToKeepAliveRoot(hook, type, target, keepAliveRoot) { - const injected = injectHook( - type, - hook, - keepAliveRoot, - true - /* prepend */ - ); - onUnmounted(() => { - remove(keepAliveRoot[type], injected); - }, target); -} -function resetShapeFlag(vnode2) { - vnode2.shapeFlag &= ~256; - vnode2.shapeFlag &= ~512; -} -function getInnerChild(vnode2) { - return vnode2.shapeFlag & 128 ? vnode2.ssContent : vnode2; -} -function injectHook(type, hook, target = currentInstance, prepend = false) { - if (target) { - const hooks = target[type] || (target[type] = []); - const wrappedHook = hook.__weh || (hook.__weh = (...args) => { - pauseTracking(); - const reset = setCurrentInstance(target); - const res = callWithAsyncErrorHandling(hook, target, type, args); - reset(); - resetTracking(); - return res; - }); - if (prepend) { - hooks.unshift(wrappedHook); - } else { - hooks.push(wrappedHook); - } - return wrappedHook; - } -} -const createHook = (lifecycle) => (hook, target = currentInstance) => { - if (!isInSSRComponentSetup || lifecycle === "sp") { - injectHook(lifecycle, (...args) => hook(...args), target); - } -}; -const onBeforeMount = createHook("bm"); -const onMounted = createHook("m"); -const onBeforeUpdate = createHook( - "bu" -); -const onUpdated = createHook("u"); -const onBeforeUnmount = createHook( - "bum" -); -const onUnmounted = createHook("um"); -const onServerPrefetch = createHook( - "sp" -); -const onRenderTriggered = createHook("rtg"); -const onRenderTracked = createHook("rtc"); -function onErrorCaptured(hook, target = currentInstance) { - injectHook("ec", hook, target); -} -const COMPONENTS = "components"; -const DIRECTIVES = "directives"; -function resolveComponent(name2, maybeSelfReference) { - return resolveAsset(COMPONENTS, name2, true, maybeSelfReference) || name2; -} -const NULL_DYNAMIC_COMPONENT = Symbol.for("v-ndc"); -function resolveDynamicComponent(component) { - if (isString$1(component)) { - return resolveAsset(COMPONENTS, component, false) || component; - } else { - return component || NULL_DYNAMIC_COMPONENT; - } -} -function resolveDirective(name2) { - return resolveAsset(DIRECTIVES, name2); -} -function resolveAsset(type, name2, warnMissing = true, maybeSelfReference = false) { - const instance = currentRenderingInstance || currentInstance; - if (instance) { - const Component = instance.type; - if (type === COMPONENTS) { - const selfName = getComponentName( - Component, - false - ); - if (selfName && (selfName === name2 || selfName === camelize(name2) || selfName === capitalize(camelize(name2)))) { - return Component; - } - } - const res = ( - // local registration - // check instance[type] first which is resolved for options API - resolve(instance[type] || Component[type], name2) || // global registration - resolve(instance.appContext[type], name2) - ); - if (!res && maybeSelfReference) { - return Component; - } - return res; - } -} -function resolve(registry, name2) { - return registry && (registry[name2] || registry[camelize(name2)] || registry[capitalize(camelize(name2))]); -} -function renderList(source, renderItem, cache2, index) { - let ret; - const cached = cache2; - const sourceIsArray = isArray$3(source); - if (sourceIsArray || isString$1(source)) { - const sourceIsReactiveArray = sourceIsArray && isReactive(source); - let needsWrap = false; - if (sourceIsReactiveArray) { - needsWrap = !isShallow(source); - source = shallowReadArray(source); - } - ret = new Array(source.length); - for (let i = 0, l = source.length; i < l; i++) { - ret[i] = renderItem( - needsWrap ? toReactive(source[i]) : source[i], - i, - void 0, - cached - ); - } - } else if (typeof source === "number") { - ret = new Array(source); - for (let i = 0; i < source; i++) { - ret[i] = renderItem(i + 1, i, void 0, cached); - } - } else if (isObject$4(source)) { - if (source[Symbol.iterator]) { - ret = Array.from( - source, - (item, i) => renderItem(item, i, void 0, cached) - ); - } else { - const keys = Object.keys(source); - ret = new Array(keys.length); - for (let i = 0, l = keys.length; i < l; i++) { - const key = keys[i]; - ret[i] = renderItem(source[key], key, i, cached); - } - } - } else { - ret = []; - } - return ret; -} -function renderSlot(slots, name2, props = {}, fallback, noSlotted) { - if (currentRenderingInstance.ce || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.ce) { - return openBlock(), createBlock( - Fragment, - null, - [createVNode("slot", props, fallback && fallback())], - 64 - ); - } - let slot = slots[name2]; - if (slot && slot._c) { - slot._d = false; - } - openBlock(); - const validSlotContent = slot && ensureValidVNode$1(slot(props)); - const slotKey = props.key || // slot content array of a dynamic conditional slot may have a branch - // key attached in the `createSlots` helper, respect that - validSlotContent && validSlotContent.key; - const rendered = createBlock( - Fragment, - { - key: (slotKey && !isSymbol$1(slotKey) ? slotKey : `_${name2}`) + // #7256 force differentiate fallback content from actual content - (!validSlotContent && fallback ? "_fb" : "") - }, - validSlotContent || (fallback ? fallback() : []), - validSlotContent && slots._ === 1 ? 64 : -2 - ); - if (rendered.scopeId) { - rendered.slotScopeIds = [rendered.scopeId + "-s"]; - } - if (slot && slot._c) { - slot._d = true; - } - return rendered; -} -function ensureValidVNode$1(vnodes) { - return vnodes.some((child) => { - if (!isVNode(child)) return true; - if (child.type === Comment) return false; - if (child.type === Fragment && !ensureValidVNode$1(child.children)) - return false; - return true; - }) ? vnodes : null; -} -const getPublicInstance = (i) => { - if (!i) return null; - if (isStatefulComponent(i)) return getComponentPublicInstance(i); - return getPublicInstance(i.parent); -}; -const publicPropertiesMap = ( - // Move PURE marker to new line to workaround compiler discarding it - // due to type annotation - /* @__PURE__ */ extend$1(/* @__PURE__ */ Object.create(null), { - $: (i) => i, - $el: (i) => i.vnode.el, - $data: (i) => i.data, - $props: (i) => i.props, - $attrs: (i) => i.attrs, - $slots: (i) => i.slots, - $refs: (i) => i.refs, - $parent: (i) => getPublicInstance(i.parent), - $root: (i) => getPublicInstance(i.root), - $host: (i) => i.ce, - $emit: (i) => i.emit, - $options: (i) => resolveMergedOptions(i), - $forceUpdate: (i) => i.f || (i.f = () => { - queueJob(i.update); - }), - $nextTick: (i) => i.n || (i.n = nextTick.bind(i.proxy)), - $watch: (i) => instanceWatch.bind(i) - }) -); -const hasSetupBinding = (state2, key) => state2 !== EMPTY_OBJ && !state2.__isScriptSetup && hasOwn(state2, key); -const PublicInstanceProxyHandlers = { - get({ _: instance }, key) { - if (key === "__v_skip") { - return true; - } - const { ctx: ctx2, setupState, data, props, accessCache, type, appContext } = instance; - let normalizedProps; - if (key[0] !== "$") { - const n = accessCache[key]; - if (n !== void 0) { - switch (n) { - case 1: - return setupState[key]; - case 2: - return data[key]; - case 4: - return ctx2[key]; - case 3: - return props[key]; - } - } else if (hasSetupBinding(setupState, key)) { - accessCache[key] = 1; - return setupState[key]; - } else if (data !== EMPTY_OBJ && hasOwn(data, key)) { - accessCache[key] = 2; - return data[key]; - } else if ( - // only cache other properties when instance has declared (thus stable) - // props - (normalizedProps = instance.propsOptions[0]) && hasOwn(normalizedProps, key) - ) { - accessCache[key] = 3; - return props[key]; - } else if (ctx2 !== EMPTY_OBJ && hasOwn(ctx2, key)) { - accessCache[key] = 4; - return ctx2[key]; - } else if (shouldCacheAccess) { - accessCache[key] = 0; - } - } - const publicGetter = publicPropertiesMap[key]; - let cssModule, globalProperties; - if (publicGetter) { - if (key === "$attrs") { - track(instance.attrs, "get", ""); - } - return publicGetter(instance); - } else if ( - // css module (injected by vue-loader) - (cssModule = type.__cssModules) && (cssModule = cssModule[key]) - ) { - return cssModule; - } else if (ctx2 !== EMPTY_OBJ && hasOwn(ctx2, key)) { - accessCache[key] = 4; - return ctx2[key]; - } else if ( - // global properties - globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key) - ) { - { - return globalProperties[key]; - } - } else ; - }, - set({ _: instance }, key, value) { - const { data, setupState, ctx: ctx2 } = instance; - if (hasSetupBinding(setupState, key)) { - setupState[key] = value; - return true; - } else if (data !== EMPTY_OBJ && hasOwn(data, key)) { - data[key] = value; - return true; - } else if (hasOwn(instance.props, key)) { - return false; - } - if (key[0] === "$" && key.slice(1) in instance) { - return false; - } else { - { - ctx2[key] = value; - } - } - return true; - }, - has({ - _: { data, setupState, accessCache, ctx: ctx2, appContext, propsOptions } - }, key) { - let normalizedProps; - return !!accessCache[key] || data !== EMPTY_OBJ && hasOwn(data, key) || hasSetupBinding(setupState, key) || (normalizedProps = propsOptions[0]) && hasOwn(normalizedProps, key) || hasOwn(ctx2, key) || hasOwn(publicPropertiesMap, key) || hasOwn(appContext.config.globalProperties, key); - }, - defineProperty(target, key, descriptor) { - if (descriptor.get != null) { - target._.accessCache[key] = 0; - } else if (hasOwn(descriptor, "value")) { - this.set(target, key, descriptor.value, null); - } - return Reflect.defineProperty(target, key, descriptor); - } -}; -function normalizePropsOrEmits(props) { - return isArray$3(props) ? props.reduce( - (normalized, p2) => (normalized[p2] = null, normalized), - {} - ) : props; -} -let shouldCacheAccess = true; -function applyOptions(instance) { - const options = resolveMergedOptions(instance); - const publicThis = instance.proxy; - const ctx2 = instance.ctx; - shouldCacheAccess = false; - if (options.beforeCreate) { - callHook$1(options.beforeCreate, instance, "bc"); - } - const { - // state - data: dataOptions, - computed: computedOptions, - methods, - watch: watchOptions, - provide: provideOptions, - inject: injectOptions, - // lifecycle - created, - beforeMount, - mounted, - beforeUpdate, - updated, - activated, - deactivated, - beforeDestroy, - beforeUnmount, - destroyed, - unmounted, - render: render2, - renderTracked, - renderTriggered, - errorCaptured, - serverPrefetch, - // public API - expose, - inheritAttrs, - // assets - components, - directives: directives2, - filters - } = options; - const checkDuplicateProperties = null; - if (injectOptions) { - resolveInjections(injectOptions, ctx2, checkDuplicateProperties); - } - if (methods) { - for (const key in methods) { - const methodHandler = methods[key]; - if (isFunction$2(methodHandler)) { - { - ctx2[key] = methodHandler.bind(publicThis); - } - } - } - } - if (dataOptions) { - const data = dataOptions.call(publicThis, publicThis); - if (!isObject$4(data)) ; - else { - instance.data = reactive(data); - } - } - shouldCacheAccess = true; - if (computedOptions) { - for (const key in computedOptions) { - const opt = computedOptions[key]; - const get2 = isFunction$2(opt) ? opt.bind(publicThis, publicThis) : isFunction$2(opt.get) ? opt.get.bind(publicThis, publicThis) : NOOP; - const set = !isFunction$2(opt) && isFunction$2(opt.set) ? opt.set.bind(publicThis) : NOOP; - const c2 = computed({ - get: get2, - set - }); - Object.defineProperty(ctx2, key, { - enumerable: true, - configurable: true, - get: () => c2.value, - set: (v) => c2.value = v - }); - } - } - if (watchOptions) { - for (const key in watchOptions) { - createWatcher(watchOptions[key], ctx2, publicThis, key); - } - } - if (provideOptions) { - const provides = isFunction$2(provideOptions) ? provideOptions.call(publicThis) : provideOptions; - Reflect.ownKeys(provides).forEach((key) => { - provide(key, provides[key]); - }); - } - if (created) { - callHook$1(created, instance, "c"); - } - function registerLifecycleHook(register2, hook) { - if (isArray$3(hook)) { - hook.forEach((_hook) => register2(_hook.bind(publicThis))); - } else if (hook) { - register2(hook.bind(publicThis)); - } - } - registerLifecycleHook(onBeforeMount, beforeMount); - registerLifecycleHook(onMounted, mounted); - registerLifecycleHook(onBeforeUpdate, beforeUpdate); - registerLifecycleHook(onUpdated, updated); - registerLifecycleHook(onActivated, activated); - registerLifecycleHook(onDeactivated, deactivated); - registerLifecycleHook(onErrorCaptured, errorCaptured); - registerLifecycleHook(onRenderTracked, renderTracked); - registerLifecycleHook(onRenderTriggered, renderTriggered); - registerLifecycleHook(onBeforeUnmount, beforeUnmount); - registerLifecycleHook(onUnmounted, unmounted); - registerLifecycleHook(onServerPrefetch, serverPrefetch); - if (isArray$3(expose)) { - if (expose.length) { - const exposed = instance.exposed || (instance.exposed = {}); - expose.forEach((key) => { - Object.defineProperty(exposed, key, { - get: () => publicThis[key], - set: (val) => publicThis[key] = val - }); - }); - } else if (!instance.exposed) { - instance.exposed = {}; - } - } - if (render2 && instance.render === NOOP) { - instance.render = render2; - } - if (inheritAttrs != null) { - instance.inheritAttrs = inheritAttrs; - } - if (components) instance.components = components; - if (directives2) instance.directives = directives2; - if (serverPrefetch) { - markAsyncBoundary(instance); - } -} -function resolveInjections(injectOptions, ctx2, checkDuplicateProperties = NOOP) { - if (isArray$3(injectOptions)) { - injectOptions = normalizeInject(injectOptions); - } - for (const key in injectOptions) { - const opt = injectOptions[key]; - let injected; - if (isObject$4(opt)) { - if ("default" in opt) { - injected = inject( - opt.from || key, - opt.default, - true - ); - } else { - injected = inject(opt.from || key); - } - } else { - injected = inject(opt); - } - if (isRef(injected)) { - Object.defineProperty(ctx2, key, { - enumerable: true, - configurable: true, - get: () => injected.value, - set: (v) => injected.value = v - }); - } else { - ctx2[key] = injected; - } - } -} -function callHook$1(hook, instance, type) { - callWithAsyncErrorHandling( - isArray$3(hook) ? hook.map((h2) => h2.bind(instance.proxy)) : hook.bind(instance.proxy), - instance, - type - ); -} -function createWatcher(raw, ctx2, publicThis, key) { - let getter = key.includes(".") ? createPathGetter(publicThis, key) : () => publicThis[key]; - if (isString$1(raw)) { - const handler = ctx2[raw]; - if (isFunction$2(handler)) { - { - watch(getter, handler); - } - } - } else if (isFunction$2(raw)) { - { - watch(getter, raw.bind(publicThis)); - } - } else if (isObject$4(raw)) { - if (isArray$3(raw)) { - raw.forEach((r) => createWatcher(r, ctx2, publicThis, key)); - } else { - const handler = isFunction$2(raw.handler) ? raw.handler.bind(publicThis) : ctx2[raw.handler]; - if (isFunction$2(handler)) { - watch(getter, handler, raw); - } - } - } else ; -} -function resolveMergedOptions(instance) { - const base2 = instance.type; - const { mixins, extends: extendsOptions } = base2; - const { - mixins: globalMixins, - optionsCache: cache2, - config: { optionMergeStrategies } - } = instance.appContext; - const cached = cache2.get(base2); - let resolved; - if (cached) { - resolved = cached; - } else if (!globalMixins.length && !mixins && !extendsOptions) { - { - resolved = base2; - } - } else { - resolved = {}; - if (globalMixins.length) { - globalMixins.forEach( - (m) => mergeOptions$1(resolved, m, optionMergeStrategies, true) - ); - } - mergeOptions$1(resolved, base2, optionMergeStrategies); - } - if (isObject$4(base2)) { - cache2.set(base2, resolved); - } - return resolved; -} -function mergeOptions$1(to, from, strats, asMixin = false) { - const { mixins, extends: extendsOptions } = from; - if (extendsOptions) { - mergeOptions$1(to, extendsOptions, strats, true); - } - if (mixins) { - mixins.forEach( - (m) => mergeOptions$1(to, m, strats, true) - ); - } - for (const key in from) { - if (asMixin && key === "expose") ; - else { - const strat = internalOptionMergeStrats[key] || strats && strats[key]; - to[key] = strat ? strat(to[key], from[key]) : from[key]; - } - } - return to; -} -const internalOptionMergeStrats = { - data: mergeDataFn, - props: mergeEmitsOrPropsOptions, - emits: mergeEmitsOrPropsOptions, - // objects - methods: mergeObjectOptions, - computed: mergeObjectOptions, - // lifecycle - beforeCreate: mergeAsArray, - created: mergeAsArray, - beforeMount: mergeAsArray, - mounted: mergeAsArray, - beforeUpdate: mergeAsArray, - updated: mergeAsArray, - beforeDestroy: mergeAsArray, - beforeUnmount: mergeAsArray, - destroyed: mergeAsArray, - unmounted: mergeAsArray, - activated: mergeAsArray, - deactivated: mergeAsArray, - errorCaptured: mergeAsArray, - serverPrefetch: mergeAsArray, - // assets - components: mergeObjectOptions, - directives: mergeObjectOptions, - // watch - watch: mergeWatchOptions, - // provide / inject - provide: mergeDataFn, - inject: mergeInject -}; -function mergeDataFn(to, from) { - if (!from) { - return to; - } - if (!to) { - return from; - } - return function mergedDataFn() { - return extend$1( - isFunction$2(to) ? to.call(this, this) : to, - isFunction$2(from) ? from.call(this, this) : from - ); - }; -} -function mergeInject(to, from) { - return mergeObjectOptions(normalizeInject(to), normalizeInject(from)); -} -function normalizeInject(raw) { - if (isArray$3(raw)) { - const res = {}; - for (let i = 0; i < raw.length; i++) { - res[raw[i]] = raw[i]; - } - return res; - } - return raw; -} -function mergeAsArray(to, from) { - return to ? [...new Set([].concat(to, from))] : from; -} -function mergeObjectOptions(to, from) { - return to ? extend$1(/* @__PURE__ */ Object.create(null), to, from) : from; -} -function mergeEmitsOrPropsOptions(to, from) { - if (to) { - if (isArray$3(to) && isArray$3(from)) { - return [.../* @__PURE__ */ new Set([...to, ...from])]; - } - return extend$1( - /* @__PURE__ */ Object.create(null), - normalizePropsOrEmits(to), - normalizePropsOrEmits(from != null ? from : {}) - ); - } else { - return from; - } -} -function mergeWatchOptions(to, from) { - if (!to) return from; - if (!from) return to; - const merged = extend$1(/* @__PURE__ */ Object.create(null), to); - for (const key in from) { - merged[key] = mergeAsArray(to[key], from[key]); - } - return merged; -} -function createAppContext() { - return { - app: null, - config: { - isNativeTag: NO, - performance: false, - globalProperties: {}, - optionMergeStrategies: {}, - errorHandler: void 0, - warnHandler: void 0, - compilerOptions: {} - }, - mixins: [], - components: {}, - directives: {}, - provides: /* @__PURE__ */ Object.create(null), - optionsCache: /* @__PURE__ */ new WeakMap(), - propsCache: /* @__PURE__ */ new WeakMap(), - emitsCache: /* @__PURE__ */ new WeakMap() - }; -} -let uid$1 = 0; -function createAppAPI(render2, hydrate) { - return function createApp2(rootComponent, rootProps = null) { - if (!isFunction$2(rootComponent)) { - rootComponent = extend$1({}, rootComponent); - } - if (rootProps != null && !isObject$4(rootProps)) { - rootProps = null; - } - const context = createAppContext(); - const installedPlugins = /* @__PURE__ */ new WeakSet(); - const pluginCleanupFns = []; - let isMounted2 = false; - const app2 = context.app = { - _uid: uid$1++, - _component: rootComponent, - _props: rootProps, - _container: null, - _context: context, - _instance: null, - version: version$1, - get config() { - return context.config; - }, - set config(v) { - }, - use(plugin2, ...options) { - if (installedPlugins.has(plugin2)) ; - else if (plugin2 && isFunction$2(plugin2.install)) { - installedPlugins.add(plugin2); - plugin2.install(app2, ...options); - } else if (isFunction$2(plugin2)) { - installedPlugins.add(plugin2); - plugin2(app2, ...options); - } else ; - return app2; - }, - mixin(mixin) { - { - if (!context.mixins.includes(mixin)) { - context.mixins.push(mixin); - } - } - return app2; - }, - component(name2, component) { - if (!component) { - return context.components[name2]; - } - context.components[name2] = component; - return app2; - }, - directive(name2, directive) { - if (!directive) { - return context.directives[name2]; - } - context.directives[name2] = directive; - return app2; - }, - mount(rootContainer, isHydrate, namespace2) { - if (!isMounted2) { - const vnode2 = app2._ceVNode || createVNode(rootComponent, rootProps); - vnode2.appContext = context; - if (namespace2 === true) { - namespace2 = "svg"; - } else if (namespace2 === false) { - namespace2 = void 0; - } - { - render2(vnode2, rootContainer, namespace2); - } - isMounted2 = true; - app2._container = rootContainer; - rootContainer.__vue_app__ = app2; - return getComponentPublicInstance(vnode2.component); - } - }, - onUnmount(cleanupFn) { - pluginCleanupFns.push(cleanupFn); - }, - unmount() { - if (isMounted2) { - callWithAsyncErrorHandling( - pluginCleanupFns, - app2._instance, - 16 - ); - render2(null, app2._container); - delete app2._container.__vue_app__; - } - }, - provide(key, value) { - context.provides[key] = value; - return app2; - }, - runWithContext(fn) { - const lastApp = currentApp; - currentApp = app2; - try { - return fn(); - } finally { - currentApp = lastApp; - } - } - }; - return app2; - }; -} -let currentApp = null; -function provide(key, value) { - if (!currentInstance) ; - else { - let provides = currentInstance.provides; - const parentProvides = currentInstance.parent && currentInstance.parent.provides; - if (parentProvides === provides) { - provides = currentInstance.provides = Object.create(parentProvides); - } - provides[key] = value; - } -} -function inject(key, defaultValue, treatDefaultAsFactory = false) { - const instance = currentInstance || currentRenderingInstance; - if (instance || currentApp) { - const provides = currentApp ? currentApp._context.provides : instance ? instance.parent == null ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides : void 0; - if (provides && key in provides) { - return provides[key]; - } else if (arguments.length > 1) { - return treatDefaultAsFactory && isFunction$2(defaultValue) ? defaultValue.call(instance && instance.proxy) : defaultValue; - } else ; - } -} -const internalObjectProto = {}; -const createInternalObject = () => Object.create(internalObjectProto); -const isInternalObject = (obj) => Object.getPrototypeOf(obj) === internalObjectProto; -function initProps(instance, rawProps, isStateful, isSSR = false) { - const props = {}; - const attrs = createInternalObject(); - instance.propsDefaults = /* @__PURE__ */ Object.create(null); - setFullProps(instance, rawProps, props, attrs); - for (const key in instance.propsOptions[0]) { - if (!(key in props)) { - props[key] = void 0; - } - } - if (isStateful) { - instance.props = isSSR ? props : shallowReactive(props); - } else { - if (!instance.type.props) { - instance.props = attrs; - } else { - instance.props = props; - } - } - instance.attrs = attrs; -} -function updateProps(instance, rawProps, rawPrevProps, optimized) { - const { - props, - attrs, - vnode: { patchFlag } - } = instance; - const rawCurrentProps = toRaw(props); - const [options] = instance.propsOptions; - let hasAttrsChanged = false; - if ( - // always force full diff in dev - // - #1942 if hmr is enabled with sfc component - // - vite#872 non-sfc component used by sfc component - (optimized || patchFlag > 0) && !(patchFlag & 16) - ) { - if (patchFlag & 8) { - const propsToUpdate = instance.vnode.dynamicProps; - for (let i = 0; i < propsToUpdate.length; i++) { - let key = propsToUpdate[i]; - if (isEmitListener(instance.emitsOptions, key)) { - continue; - } - const value = rawProps[key]; - if (options) { - if (hasOwn(attrs, key)) { - if (value !== attrs[key]) { - attrs[key] = value; - hasAttrsChanged = true; - } - } else { - const camelizedKey = camelize(key); - props[camelizedKey] = resolvePropValue( - options, - rawCurrentProps, - camelizedKey, - value, - instance, - false - ); - } - } else { - if (value !== attrs[key]) { - attrs[key] = value; - hasAttrsChanged = true; - } - } - } - } - } else { - if (setFullProps(instance, rawProps, props, attrs)) { - hasAttrsChanged = true; - } - let kebabKey; - for (const key in rawCurrentProps) { - if (!rawProps || // for camelCase - !hasOwn(rawProps, key) && // it's possible the original props was passed in as kebab-case - // and converted to camelCase (#955) - ((kebabKey = hyphenate(key)) === key || !hasOwn(rawProps, kebabKey))) { - if (options) { - if (rawPrevProps && // for camelCase - (rawPrevProps[key] !== void 0 || // for kebab-case - rawPrevProps[kebabKey] !== void 0)) { - props[key] = resolvePropValue( - options, - rawCurrentProps, - key, - void 0, - instance, - true - ); - } - } else { - delete props[key]; - } - } - } - if (attrs !== rawCurrentProps) { - for (const key in attrs) { - if (!rawProps || !hasOwn(rawProps, key) && true) { - delete attrs[key]; - hasAttrsChanged = true; - } - } - } - } - if (hasAttrsChanged) { - trigger$1(instance.attrs, "set", ""); - } -} -function setFullProps(instance, rawProps, props, attrs) { - const [options, needCastKeys] = instance.propsOptions; - let hasAttrsChanged = false; - let rawCastValues; - if (rawProps) { - for (let key in rawProps) { - if (isReservedProp(key)) { - continue; - } - const value = rawProps[key]; - let camelKey; - if (options && hasOwn(options, camelKey = camelize(key))) { - if (!needCastKeys || !needCastKeys.includes(camelKey)) { - props[camelKey] = value; - } else { - (rawCastValues || (rawCastValues = {}))[camelKey] = value; - } - } else if (!isEmitListener(instance.emitsOptions, key)) { - if (!(key in attrs) || value !== attrs[key]) { - attrs[key] = value; - hasAttrsChanged = true; - } - } - } - } - if (needCastKeys) { - const rawCurrentProps = toRaw(props); - const castValues = rawCastValues || EMPTY_OBJ; - for (let i = 0; i < needCastKeys.length; i++) { - const key = needCastKeys[i]; - props[key] = resolvePropValue( - options, - rawCurrentProps, - key, - castValues[key], - instance, - !hasOwn(castValues, key) - ); - } - } - return hasAttrsChanged; -} -function resolvePropValue(options, props, key, value, instance, isAbsent) { - const opt = options[key]; - if (opt != null) { - const hasDefault = hasOwn(opt, "default"); - if (hasDefault && value === void 0) { - const defaultValue = opt.default; - if (opt.type !== Function && !opt.skipFactory && isFunction$2(defaultValue)) { - const { propsDefaults } = instance; - if (key in propsDefaults) { - value = propsDefaults[key]; - } else { - const reset = setCurrentInstance(instance); - value = propsDefaults[key] = defaultValue.call( - null, - props - ); - reset(); - } - } else { - value = defaultValue; - } - if (instance.ce) { - instance.ce._setProp(key, value); - } - } - if (opt[ - 0 - /* shouldCast */ - ]) { - if (isAbsent && !hasDefault) { - value = false; - } else if (opt[ - 1 - /* shouldCastTrue */ - ] && (value === "" || value === hyphenate(key))) { - value = true; - } - } - } - return value; -} -const mixinPropsCache = /* @__PURE__ */ new WeakMap(); -function normalizePropsOptions(comp, appContext, asMixin = false) { - const cache2 = asMixin ? mixinPropsCache : appContext.propsCache; - const cached = cache2.get(comp); - if (cached) { - return cached; - } - const raw = comp.props; - const normalized = {}; - const needCastKeys = []; - let hasExtends = false; - if (!isFunction$2(comp)) { - const extendProps = (raw2) => { - hasExtends = true; - const [props, keys] = normalizePropsOptions(raw2, appContext, true); - extend$1(normalized, props); - if (keys) needCastKeys.push(...keys); - }; - if (!asMixin && appContext.mixins.length) { - appContext.mixins.forEach(extendProps); - } - if (comp.extends) { - extendProps(comp.extends); - } - if (comp.mixins) { - comp.mixins.forEach(extendProps); - } - } - if (!raw && !hasExtends) { - if (isObject$4(comp)) { - cache2.set(comp, EMPTY_ARR); - } - return EMPTY_ARR; - } - if (isArray$3(raw)) { - for (let i = 0; i < raw.length; i++) { - const normalizedKey = camelize(raw[i]); - if (validatePropName(normalizedKey)) { - normalized[normalizedKey] = EMPTY_OBJ; - } - } - } else if (raw) { - for (const key in raw) { - const normalizedKey = camelize(key); - if (validatePropName(normalizedKey)) { - const opt = raw[key]; - const prop = normalized[normalizedKey] = isArray$3(opt) || isFunction$2(opt) ? { type: opt } : extend$1({}, opt); - const propType = prop.type; - let shouldCast = false; - let shouldCastTrue = true; - if (isArray$3(propType)) { - for (let index = 0; index < propType.length; ++index) { - const type = propType[index]; - const typeName = isFunction$2(type) && type.name; - if (typeName === "Boolean") { - shouldCast = true; - break; - } else if (typeName === "String") { - shouldCastTrue = false; - } - } - } else { - shouldCast = isFunction$2(propType) && propType.name === "Boolean"; - } - prop[ - 0 - /* shouldCast */ - ] = shouldCast; - prop[ - 1 - /* shouldCastTrue */ - ] = shouldCastTrue; - if (shouldCast || hasOwn(prop, "default")) { - needCastKeys.push(normalizedKey); - } - } - } - } - const res = [normalized, needCastKeys]; - if (isObject$4(comp)) { - cache2.set(comp, res); - } - return res; -} -function validatePropName(key) { - if (key[0] !== "$" && !isReservedProp(key)) { - return true; - } - return false; -} -const isInternalKey = (key) => key[0] === "_" || key === "$stable"; -const normalizeSlotValue = (value) => isArray$3(value) ? value.map(normalizeVNode) : [normalizeVNode(value)]; -const normalizeSlot$1 = (key, rawSlot, ctx2) => { - if (rawSlot._n) { - return rawSlot; - } - const normalized = withCtx((...args) => { - if (false) ; - return normalizeSlotValue(rawSlot(...args)); - }, ctx2); - normalized._c = false; - return normalized; -}; -const normalizeObjectSlots = (rawSlots, slots, instance) => { - const ctx2 = rawSlots._ctx; - for (const key in rawSlots) { - if (isInternalKey(key)) continue; - const value = rawSlots[key]; - if (isFunction$2(value)) { - slots[key] = normalizeSlot$1(key, value, ctx2); - } else if (value != null) { - const normalized = normalizeSlotValue(value); - slots[key] = () => normalized; - } - } -}; -const normalizeVNodeSlots = (instance, children) => { - const normalized = normalizeSlotValue(children); - instance.slots.default = () => normalized; -}; -const assignSlots = (slots, children, optimized) => { - for (const key in children) { - if (optimized || key !== "_") { - slots[key] = children[key]; - } - } -}; -const initSlots = (instance, children, optimized) => { - const slots = instance.slots = createInternalObject(); - if (instance.vnode.shapeFlag & 32) { - const type = children._; - if (type) { - assignSlots(slots, children, optimized); - if (optimized) { - def$1(slots, "_", type, true); - } - } else { - normalizeObjectSlots(children, slots); - } - } else if (children) { - normalizeVNodeSlots(instance, children); - } -}; -const updateSlots = (instance, children, optimized) => { - const { vnode: vnode2, slots } = instance; - let needDeletionCheck = true; - let deletionComparisonTarget = EMPTY_OBJ; - if (vnode2.shapeFlag & 32) { - const type = children._; - if (type) { - if (optimized && type === 1) { - needDeletionCheck = false; - } else { - assignSlots(slots, children, optimized); - } - } else { - needDeletionCheck = !children.$stable; - normalizeObjectSlots(children, slots); - } - deletionComparisonTarget = children; - } else if (children) { - normalizeVNodeSlots(instance, children); - deletionComparisonTarget = { default: 1 }; - } - if (needDeletionCheck) { - for (const key in slots) { - if (!isInternalKey(key) && deletionComparisonTarget[key] == null) { - delete slots[key]; - } - } - } -}; -const queuePostRenderEffect = queueEffectWithSuspense; -function createRenderer(options) { - return baseCreateRenderer(options); -} -function baseCreateRenderer(options, createHydrationFns) { - const target = getGlobalThis(); - target.__VUE__ = true; - const { - insert: hostInsert, - remove: hostRemove, - patchProp: hostPatchProp, - createElement: hostCreateElement, - createText: hostCreateText, - createComment: hostCreateComment, - setText: hostSetText, - setElementText: hostSetElementText, - parentNode: hostParentNode, - nextSibling: hostNextSibling, - setScopeId: hostSetScopeId = NOOP, - insertStaticContent: hostInsertStaticContent - } = options; - const patch = (n1, n2, container, anchor = null, parentComponent = null, parentSuspense = null, namespace2 = void 0, slotScopeIds = null, optimized = !!n2.dynamicChildren) => { - if (n1 === n2) { - return; - } - if (n1 && !isSameVNodeType(n1, n2)) { - anchor = getNextHostNode(n1); - unmount2(n1, parentComponent, parentSuspense, true); - n1 = null; - } - if (n2.patchFlag === -2) { - optimized = false; - n2.dynamicChildren = null; - } - const { type, ref: ref3, shapeFlag } = n2; - switch (type) { - case Text: - processText(n1, n2, container, anchor); - break; - case Comment: - processCommentNode(n1, n2, container, anchor); - break; - case Static: - if (n1 == null) { - mountStaticNode(n2, container, anchor, namespace2); - } - break; - case Fragment: - processFragment( - n1, - n2, - container, - anchor, - parentComponent, - parentSuspense, - namespace2, - slotScopeIds, - optimized - ); - break; - default: - if (shapeFlag & 1) { - processElement( - n1, - n2, - container, - anchor, - parentComponent, - parentSuspense, - namespace2, - slotScopeIds, - optimized - ); - } else if (shapeFlag & 6) { - processComponent( - n1, - n2, - container, - anchor, - parentComponent, - parentSuspense, - namespace2, - slotScopeIds, - optimized - ); - } else if (shapeFlag & 64) { - type.process( - n1, - n2, - container, - anchor, - parentComponent, - parentSuspense, - namespace2, - slotScopeIds, - optimized, - internals - ); - } else if (shapeFlag & 128) { - type.process( - n1, - n2, - container, - anchor, - parentComponent, - parentSuspense, - namespace2, - slotScopeIds, - optimized, - internals - ); - } else ; - } - if (ref3 != null && parentComponent) { - setRef(ref3, n1 && n1.ref, parentSuspense, n2 || n1, !n2); - } - }; - const processText = (n1, n2, container, anchor) => { - if (n1 == null) { - hostInsert( - n2.el = hostCreateText(n2.children), - container, - anchor - ); - } else { - const el = n2.el = n1.el; - if (n2.children !== n1.children) { - hostSetText(el, n2.children); - } - } - }; - const processCommentNode = (n1, n2, container, anchor) => { - if (n1 == null) { - hostInsert( - n2.el = hostCreateComment(n2.children || ""), - container, - anchor - ); - } else { - n2.el = n1.el; - } - }; - const mountStaticNode = (n2, container, anchor, namespace2) => { - [n2.el, n2.anchor] = hostInsertStaticContent( - n2.children, - container, - anchor, - namespace2, - n2.el, - n2.anchor - ); - }; - const moveStaticNode = ({ el, anchor }, container, nextSibling) => { - let next; - while (el && el !== anchor) { - next = hostNextSibling(el); - hostInsert(el, container, nextSibling); - el = next; - } - hostInsert(anchor, container, nextSibling); - }; - const removeStaticNode = ({ el, anchor }) => { - let next; - while (el && el !== anchor) { - next = hostNextSibling(el); - hostRemove(el); - el = next; - } - hostRemove(anchor); - }; - const processElement = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace2, slotScopeIds, optimized) => { - if (n2.type === "svg") { - namespace2 = "svg"; - } else if (n2.type === "math") { - namespace2 = "mathml"; - } - if (n1 == null) { - mountElement( - n2, - container, - anchor, - parentComponent, - parentSuspense, - namespace2, - slotScopeIds, - optimized - ); - } else { - patchElement( - n1, - n2, - parentComponent, - parentSuspense, - namespace2, - slotScopeIds, - optimized - ); - } - }; - const mountElement = (vnode2, container, anchor, parentComponent, parentSuspense, namespace2, slotScopeIds, optimized) => { - let el; - let vnodeHook; - const { props, shapeFlag, transition, dirs } = vnode2; - el = vnode2.el = hostCreateElement( - vnode2.type, - namespace2, - props && props.is, - props - ); - if (shapeFlag & 8) { - hostSetElementText(el, vnode2.children); - } else if (shapeFlag & 16) { - mountChildren( - vnode2.children, - el, - null, - parentComponent, - parentSuspense, - resolveChildrenNamespace(vnode2, namespace2), - slotScopeIds, - optimized - ); - } - if (dirs) { - invokeDirectiveHook(vnode2, null, parentComponent, "created"); - } - setScopeId(el, vnode2, vnode2.scopeId, slotScopeIds, parentComponent); - if (props) { - for (const key in props) { - if (key !== "value" && !isReservedProp(key)) { - hostPatchProp(el, key, null, props[key], namespace2, parentComponent); - } - } - if ("value" in props) { - hostPatchProp(el, "value", null, props.value, namespace2); - } - if (vnodeHook = props.onVnodeBeforeMount) { - invokeVNodeHook(vnodeHook, parentComponent, vnode2); - } - } - if (dirs) { - invokeDirectiveHook(vnode2, null, parentComponent, "beforeMount"); - } - const needCallTransitionHooks = needTransition(parentSuspense, transition); - if (needCallTransitionHooks) { - transition.beforeEnter(el); - } - hostInsert(el, container, anchor); - if ((vnodeHook = props && props.onVnodeMounted) || needCallTransitionHooks || dirs) { - queuePostRenderEffect(() => { - vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode2); - needCallTransitionHooks && transition.enter(el); - dirs && invokeDirectiveHook(vnode2, null, parentComponent, "mounted"); - }, parentSuspense); - } - }; - const setScopeId = (el, vnode2, scopeId, slotScopeIds, parentComponent) => { - if (scopeId) { - hostSetScopeId(el, scopeId); - } - if (slotScopeIds) { - for (let i = 0; i < slotScopeIds.length; i++) { - hostSetScopeId(el, slotScopeIds[i]); - } - } - if (parentComponent) { - let subTree = parentComponent.subTree; - if (vnode2 === subTree || isSuspense(subTree.type) && (subTree.ssContent === vnode2 || subTree.ssFallback === vnode2)) { - const parentVNode = parentComponent.vnode; - setScopeId( - el, - parentVNode, - parentVNode.scopeId, - parentVNode.slotScopeIds, - parentComponent.parent - ); - } - } - }; - const mountChildren = (children, container, anchor, parentComponent, parentSuspense, namespace2, slotScopeIds, optimized, start = 0) => { - for (let i = start; i < children.length; i++) { - const child = children[i] = optimized ? cloneIfMounted(children[i]) : normalizeVNode(children[i]); - patch( - null, - child, - container, - anchor, - parentComponent, - parentSuspense, - namespace2, - slotScopeIds, - optimized - ); - } - }; - const patchElement = (n1, n2, parentComponent, parentSuspense, namespace2, slotScopeIds, optimized) => { - const el = n2.el = n1.el; - let { patchFlag, dynamicChildren, dirs } = n2; - patchFlag |= n1.patchFlag & 16; - const oldProps = n1.props || EMPTY_OBJ; - const newProps = n2.props || EMPTY_OBJ; - let vnodeHook; - parentComponent && toggleRecurse(parentComponent, false); - if (vnodeHook = newProps.onVnodeBeforeUpdate) { - invokeVNodeHook(vnodeHook, parentComponent, n2, n1); - } - if (dirs) { - invokeDirectiveHook(n2, n1, parentComponent, "beforeUpdate"); - } - parentComponent && toggleRecurse(parentComponent, true); - if (oldProps.innerHTML && newProps.innerHTML == null || oldProps.textContent && newProps.textContent == null) { - hostSetElementText(el, ""); - } - if (dynamicChildren) { - patchBlockChildren( - n1.dynamicChildren, - dynamicChildren, - el, - parentComponent, - parentSuspense, - resolveChildrenNamespace(n2, namespace2), - slotScopeIds - ); - } else if (!optimized) { - patchChildren( - n1, - n2, - el, - null, - parentComponent, - parentSuspense, - resolveChildrenNamespace(n2, namespace2), - slotScopeIds, - false - ); - } - if (patchFlag > 0) { - if (patchFlag & 16) { - patchProps(el, oldProps, newProps, parentComponent, namespace2); - } else { - if (patchFlag & 2) { - if (oldProps.class !== newProps.class) { - hostPatchProp(el, "class", null, newProps.class, namespace2); - } - } - if (patchFlag & 4) { - hostPatchProp(el, "style", oldProps.style, newProps.style, namespace2); - } - if (patchFlag & 8) { - const propsToUpdate = n2.dynamicProps; - for (let i = 0; i < propsToUpdate.length; i++) { - const key = propsToUpdate[i]; - const prev = oldProps[key]; - const next = newProps[key]; - if (next !== prev || key === "value") { - hostPatchProp(el, key, prev, next, namespace2, parentComponent); - } - } - } - } - if (patchFlag & 1) { - if (n1.children !== n2.children) { - hostSetElementText(el, n2.children); - } - } - } else if (!optimized && dynamicChildren == null) { - patchProps(el, oldProps, newProps, parentComponent, namespace2); - } - if ((vnodeHook = newProps.onVnodeUpdated) || dirs) { - queuePostRenderEffect(() => { - vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, n2, n1); - dirs && invokeDirectiveHook(n2, n1, parentComponent, "updated"); - }, parentSuspense); - } - }; - const patchBlockChildren = (oldChildren, newChildren, fallbackContainer, parentComponent, parentSuspense, namespace2, slotScopeIds) => { - for (let i = 0; i < newChildren.length; i++) { - const oldVNode = oldChildren[i]; - const newVNode = newChildren[i]; - const container = ( - // oldVNode may be an errored async setup() component inside Suspense - // which will not have a mounted element - oldVNode.el && // - In the case of a Fragment, we need to provide the actual parent - // of the Fragment itself so it can move its children. - (oldVNode.type === Fragment || // - In the case of different nodes, there is going to be a replacement - // which also requires the correct parent container - !isSameVNodeType(oldVNode, newVNode) || // - In the case of a component, it could contain anything. - oldVNode.shapeFlag & (6 | 64)) ? hostParentNode(oldVNode.el) : ( - // In other cases, the parent container is not actually used so we - // just pass the block element here to avoid a DOM parentNode call. - fallbackContainer - ) - ); - patch( - oldVNode, - newVNode, - container, - null, - parentComponent, - parentSuspense, - namespace2, - slotScopeIds, - true - ); - } - }; - const patchProps = (el, oldProps, newProps, parentComponent, namespace2) => { - if (oldProps !== newProps) { - if (oldProps !== EMPTY_OBJ) { - for (const key in oldProps) { - if (!isReservedProp(key) && !(key in newProps)) { - hostPatchProp( - el, - key, - oldProps[key], - null, - namespace2, - parentComponent - ); - } - } - } - for (const key in newProps) { - if (isReservedProp(key)) continue; - const next = newProps[key]; - const prev = oldProps[key]; - if (next !== prev && key !== "value") { - hostPatchProp(el, key, prev, next, namespace2, parentComponent); - } - } - if ("value" in newProps) { - hostPatchProp(el, "value", oldProps.value, newProps.value, namespace2); - } - } - }; - const processFragment = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace2, slotScopeIds, optimized) => { - const fragmentStartAnchor = n2.el = n1 ? n1.el : hostCreateText(""); - const fragmentEndAnchor = n2.anchor = n1 ? n1.anchor : hostCreateText(""); - let { patchFlag, dynamicChildren, slotScopeIds: fragmentSlotScopeIds } = n2; - if (fragmentSlotScopeIds) { - slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds; - } - if (n1 == null) { - hostInsert(fragmentStartAnchor, container, anchor); - hostInsert(fragmentEndAnchor, container, anchor); - mountChildren( - // #10007 - // such fragment like `<>` will be compiled into - // a fragment which doesn't have a children. - // In this case fallback to an empty array - n2.children || [], - container, - fragmentEndAnchor, - parentComponent, - parentSuspense, - namespace2, - slotScopeIds, - optimized - ); - } else { - if (patchFlag > 0 && patchFlag & 64 && dynamicChildren && // #2715 the previous fragment could've been a BAILed one as a result - // of renderSlot() with no valid children - n1.dynamicChildren) { - patchBlockChildren( - n1.dynamicChildren, - dynamicChildren, - container, - parentComponent, - parentSuspense, - namespace2, - slotScopeIds - ); - if ( - // #2080 if the stable fragment has a key, it's a