⚡ Hrenpack JS

TypeScript библиотека утилит с типами
Полная документация TypeScript библиотеки Hrenpack JS Включает строгую типизацию, современные классы и улучшенные Web Components.
🔧 auto.ts
Автоматические утилиты и константы
stylesRoot: CSSStyleDeclaration
Глобальная константа с вычисленными стилями корневого элемента
🏗️ classes.ts
Основные классы TypeScript
ClickableLinksFactory
Фабрика для преобразования URL в кликабельные ссылки
Методы:
• clickableLinks(element) - создает ссылки
• clickToCopyLinks(element) - создает элементы для копирования
• generatedElements - получает созданные элементы
GETParamsManager
Менеджер GET-параметров URL с поддержкой типов
Методы:
• get(key, defaultValue) - получает параметр с приведением типа
• set(key, value) - устанавливает параметр
• delete(key) - удаляет параметр
• all() - получает все параметры
• clear() - очищает все параметры
💾 compiler.ts
Утилиты для работы с файлами и данными
downloadTextAsFile(filename: string, text: string)
Скачивает текст как файл с указанным именем
🍪 cookie.ts
Работа с cookies с TypeScript типами
getCookie(name: string): NullStr
Получает значение cookie по имени
setCookie(name: string, value: string, days: NullNum, path: string)
Устанавливает cookie с настройками срока и пути
hasCookie(name: string): boolean
Проверяет существование cookie
🚫 exceptions.ts
Пользовательские исключения TypeScript
NotAuthorizedError
Исключение для случаев отсутствия авторизации
🔍 get_element_types.ts
Утилиты для поиска элементов с типами
button_submit(parent: HTMLElement): HTMLButtonElement | null
Находит кнопку submit в указанном родителе
🌐 html.ts
Утилиты для работы с HTML и DOM с TypeScript
togglePassword(passwordInput: HTMLInputElement)
Переключает видимость пароля
isTextWrapped(element: HTMLElement): boolean
Проверяет, переносится ли текст в элементе
notArrayEmpty(array: any[]): boolean
Проверяет, что массив не пустой
element_toHTMLText(element: HTMLElement): string
Конвертирует элемент в HTML-строку
element_to_div(element: HTMLElement): HTMLDivElement
Создает div с копией элемента
password_format(shownPasswordHTML: string, hiddenPasswordHTML: string)
Добавляет функциональность показа/скрытия пароля ко всем формам
escapeHTML(html: string): string
Экранирует HTML-символы
strFormat(template: string, ...args: any[]): string
Форматирование строк с подстановкой
elementToHyperlink(element: HTMLElement, href: string, cursorPointer: boolean, preventDefault: boolean)
Преобразует элемент в гиперссылку
⌨️ input.ts
Утилиты для работы с полями ввода с типами
getInputCursorPosition(input: HTMLInputElement): number
Получает позицию курсора в поле ввода
copyInputToClipboard(input: HTMLInputElement)
Копирует содержимое поля ввода в буфер обмена
clearInput_and_addLastSymbol(input: HTMLInputElement)
Очищает поле ввода, оставляя только последний символ
getInputLabel(input: HTMLInputElement): HTMLLabelElement
Получает label, связанный с input
🔗 link.ts
Утилиты для работы с ресурсами
loadCSS(href: string)
Динамически загружает CSS файл
🔔 notifications.ts
Утилиты для уведомлений с типами
pushNotification(title: string, body: string, icon: NullStr)
Показывает системное уведомление
HyperTextNotification
Класс для создания кастомных HTML-уведомлений
Метод: show(message: string, timeout: number) - отображает уведомление
🎨 styles.ts
Утилиты для работы со стилями с типами
input_type_fc(input: HTMLInputElement): boolean
Проверяет, подходит ли input для form-control
input_form_control(form: HTMLFormElement)
Добавляет класс form-control ко всем подходящим элементам формы
input_form_control_unline(form: HTMLFormElement)
Добавляет класс form-control-unline к элементам формы
intToPixel(number: NumStr): string
Конвертирует число в строку с px
💻 system.ts
Системные утилиты с типами
getSystemTheme(): NullStr
Определяет системную тему (dark/light)
copyTextToClipboard(text: string)
Копирует текст в буфер обмена
redirectBackOrClose(default_url: string)
Возвращает назад или закрывает вкладку
🏷️ tags.ts
Кастомные HTML элементы с TypeScript
AbbreviatedNumber
Элемент для сокращенных чисел с переключением
Атрибуты: lang, use_comma
События: click - переключает формат
StepElement
Элемент шага для step-by-step навигации
Атрибуты: active, completed
Свойства: index, status
Методы: reset()
Stepbar
Контейнер для step-by-step навигации
Атрибуты: current
Свойства: currentStep
Методы: автоматическое обновление шагов
HTMLFile
Элемент для включения HTML файлов с поддержкой скриптов
Атрибуты: src
Свойства: src, content, loaded
Методы: reload()
ClickToCopy
Элемент для копирования текста по клику
Атрибуты: text, notified
События: click - копирует текст и показывает уведомление
📊 types.ts
Пользовательские TypeScript типы
Типы
Базовые типы для всей библиотеки
Типы:
• NullStr = string | null
• NullNum = number | null
• Dict = {[key: string]: any}
• StringDict = {[key: string]: string}
• NumStr = number | string
🌐 url.ts
Утилиты для работы с URL с типами
isAbsoluteUrl(url: string): boolean
Проверяет, является ли URL абсолютным
📋 arraywork.ts
Функции для работы с массивами
arrayIsEmpty(arr: any[]): boolean
Проверяет, пуст ли массив
arraysIsEqual(array1: any[], array2: any[], strict: boolean = true): boolean
Проверяет, равны ли массивы
🆔 uuid.ts
Генерация уникальных идентификаторов
generateUUIDv4(): string
Генерирует UUID версии 4

🎯 Основные возможности Hrenpack TypeScript

Строгая типизация: Полная поддержка TypeScript с типами для всех функций

Современные классы: ООП подход с инкапсуляцией и наследованием

Web Components: Кастомные элементы с TypeScript и Shadow DOM

Улучшенная безопасность: Валидация типов и обработка ошибок

Step-by-step навигация: Типизированные компоненты для многошаговых процессов

Управление состоянием: Менеджеры параметров и состояний с типами

Автодополнение: Полная поддержка IDE и автодополнения

Совместимость: Полная совместимость с JavaScript версией

🔗 Использование кастомных элементов

<ab-num>: <ab-num lang="ru" use_comma>1234567</ab-num>

<step-bar>: <step-bar current="2"><sb-element>Шаг 1</sb-element></step-bar>

<include-html>: <include-html src="/component.html"></include-html>

<click-to-copy>: <click-to-copy text="Скопировано!">Текст для копирования</click-to-copy>