CH-J Toolsspráva serverů přes SSH
Menu
Vydané zdroje

CH-J Tools

Procházejte adresáře a soubory konkrétního vydání aplikace.

Stáhnout zdroje ZIP
CH-J / Server Manager 406 souborů
core-20261024T135205Z-7c487d719de2 Přidáno: · Sestaveno:
navIcons.js Přidáno: Datum není evidováno 2,4 KB · 58 řádků
Kód Stáhnout soubor
1"use strict";
3// One source of navigation icons for every sidebar mode (full/compact/split) and the minimized-plugin taskbar.
4// Keys are stable IDs (core view names, "plugin:<id>"), never translated labels, so icons do not depend on the
5// language. Unknown or catalog plugins get the neutral "puzzle" icon.
6(function (root) {
7 const ICON_BY_KEY = Object.freeze({
8 overview: "layout-dashboard",
9 terminal: "terminal",
10 profiles: "server",
11 updates: "refresh-cw",
12 plugins: "blocks",
13 diagnostics: "activity",
14 settings: "settings",
15 "plugin:chj.hash-checksum": "hash",
16 "plugin:chj.disks": "hard-drive",
17 "plugin:chj.file-manager": "folder-open",
18 "plugin:chj.key-generator": "key-round",
19 "plugin:chj.log-viewer": "scroll-text",
20 "plugin:chj.nginx-manager": "network",
21 "plugin:chj.system-monitor": "chart-no-axes-combined",
22 "plugin:chj.users": "users"
23 });
24 const FALLBACK = "puzzle";
25 const SVG_NS = "http://www.w3.org/2000/svg";
27 function iconName(key) {
28 return ICON_BY_KEY[String(key || "")] || FALLBACK;
29 }
31 // Builds the SVG from vendored element nodes (createElementNS, no markup parsing). Sizing comes from CSS
32 // (.nav-icon), the viewBox keeps the 24-unit Lucide grid so strokes stay sharp at any size.
33 function createIcon(key, className = "nav-icon") {
34 const icons = root.chjLucideIcons || {};
35 const name = icons[iconName(key)] ? iconName(key) : FALLBACK;
36 const svg = document.createElementNS(SVG_NS, "svg");
37 svg.setAttribute("class", className);
38 svg.setAttribute("viewBox", "0 0 24 24");
39 svg.setAttribute("fill", "none");
40 svg.setAttribute("stroke", "currentColor");
41 svg.setAttribute("stroke-width", "2");
42 svg.setAttribute("stroke-linecap", "round");
43 svg.setAttribute("stroke-linejoin", "round");
44 svg.setAttribute("aria-hidden", "true");
45 svg.setAttribute("focusable", "false");
46 svg.dataset.icon = name;
47 for (const [tag, attributes] of icons[name] || []) {
48 const element = document.createElementNS(SVG_NS, tag);
49 for (const [attribute, value] of Object.entries(attributes)) element.setAttribute(attribute, value);
50 svg.append(element);
51 }
52 return svg;
53 }
55 const exported = Object.freeze({ ICON_BY_KEY, FALLBACK, iconName, createIcon });
56 if (typeof module === "object" && module.exports) module.exports = exported;
57 else root.chjNavIcons = exported;
58})(typeof window === "object" ? window : globalThis);
SHA-2566799926af7c5f9417561f8d374ecf6e12674cd1b1cbe2b714d46827571797e8a

CH-J Proprietary Software License 1.14 · Zdroje jsou zveřejněny pod CH-J Proprietary Software License 1.14. Jejich dostupnost nemění licenční podmínky ani neposkytuje další oprávnění.

SHA-256 archivu476ed8aef0f1e96a5acdf223127b6692acdf4492eeaf5d0816b6e2a634fbbda6
Soubory