Большое обновление GUI интерфейс - Добавлен фраемворr Walles - Удалена консольная версия - Проработан интерфейс и дизайн - Добавлено кеширование для быстрой реакции. - Сделан .ps1 сборщик для удобной сборки проекта. - Обновлён Readme
84 lines
2.4 KiB
JavaScript
84 lines
2.4 KiB
JavaScript
/* ============================================
|
||
DOM Utilities
|
||
Утилиты для работы с DOM
|
||
============================================ */
|
||
|
||
/**
|
||
* Получить элемент по ID
|
||
* @param {string} id - ID элемента
|
||
* @returns {HTMLElement|null}
|
||
*/
|
||
export function $(id) {
|
||
return document.getElementById(id);
|
||
}
|
||
|
||
/**
|
||
* Получить все элементы по селектору
|
||
* @param {string} selector - CSS селектор
|
||
* @param {HTMLElement} parent - Родительский элемент
|
||
* @returns {NodeList}
|
||
*/
|
||
export function $$(selector, parent = document) {
|
||
return parent.querySelectorAll(selector);
|
||
}
|
||
|
||
/**
|
||
* Показать элемент
|
||
* @param {HTMLElement|string} element - Элемент или ID
|
||
*/
|
||
export function show(element) {
|
||
const el = typeof element === 'string' ? $(element) : element;
|
||
if (el) el.style.display = 'block';
|
||
}
|
||
|
||
/**
|
||
* Скрыть элемент
|
||
* @param {HTMLElement|string} element - Элемент или ID
|
||
*/
|
||
export function hide(element) {
|
||
const el = typeof element === 'string' ? $(element) : element;
|
||
if (el) el.style.display = 'none';
|
||
}
|
||
|
||
/**
|
||
* Переключить видимость элемента
|
||
* @param {HTMLElement|string} element - Элемент или ID
|
||
*/
|
||
export function toggle(element) {
|
||
const el = typeof element === 'string' ? $(element) : element;
|
||
if (el) {
|
||
el.style.display = el.style.display === 'none' ? 'block' : 'none';
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Добавить класс
|
||
* @param {HTMLElement|string} element - Элемент или ID
|
||
* @param {string} className - Имя класса
|
||
*/
|
||
export function addClass(element, className) {
|
||
const el = typeof element === 'string' ? $(element) : element;
|
||
if (el) el.classList.add(className);
|
||
}
|
||
|
||
/**
|
||
* Удалить класс
|
||
* @param {HTMLElement|string} element - Элемент или ID
|
||
* @param {string} className - Имя класса
|
||
*/
|
||
export function removeClass(element, className) {
|
||
const el = typeof element === 'string' ? $(element) : element;
|
||
if (el) el.classList.remove(className);
|
||
}
|
||
|
||
/**
|
||
* Переключить класс
|
||
* @param {HTMLElement|string} element - Элемент или ID
|
||
* @param {string} className - Имя класса
|
||
*/
|
||
export function toggleClass(element, className) {
|
||
const el = typeof element === 'string' ? $(element) : element;
|
||
if (el) el.classList.toggle(className);
|
||
}
|
||
|