Skip to content

Instantly share code, notes, and snippets.

View artemsites's full-sized avatar

Artem Kuznecov artemsites

View GitHub Profile
/**
* @version 17.09.2024
* @author info@artemsites.ru
* import { DateFormatterClass } from "/src/utils/DateFormatterClass.js"
*
* const dateFormatter = new DateFormatterClass('2024-03-28') // создаст экземпляр на указанную дату
* const dateFormatter = new DateFormatterClass() // создаст экземпляр на текущую дату
*/
export class DateFormatterClass {
constructor(dateString = new Date()) {
@artemsites
artemsites / regexp.js
Last active September 16, 2024 18:37
/**
* @version 16.09.2024
* import { getClearPhone } from "/src/utils/regexp.js"
*/
export function getClearPhone(str) {
return str.replace(/[^+0-9]/g, "")
}
<template>
<Teleport to="body">
<Transition>
<div v-if="isOpen" class="popup-overlay" @click="closePopup">
<div class="popup-content" @click.stop>
<button class="popup-close" @click="closePopup">
&times;
</button>
<slot></slot>
/**
* import { copyToClipboard } from "/src/utils/copyToClipboard.js"
*
* copyToClipboard("Этот текст будет скопирован в буфер обмена")
*/
export function copyToClipboard(text, callback) {
const textarea = document.createElement('textarea')
textarea.value = text
document.body.appendChild(textarea)

Отключить свайп

tns({ 
  swipeAngle: -1,            
})

Дерево — это структура данных, состоящая из узлов, где каждый узел содержит данные и ссылки на дочерние узлы. Деревья часто используются для представления иерархических данных.

Ниже приведен пример реализации дерева на JavaScript. В этом примере мы создадим простое дерево, где каждый узел может иметь несколько дочерних узлов.

Узел (Node)

Каждый узел содержит данные и массив дочерних узлов:

class TreeNode {

Связный список (или Linked List) — это структура данных, состоящая из узлов, где каждый узел содержит данные и ссылку на следующий узел в списке. Связные списки позволяют эффективно добавлять и удалять элементы, не требуя сдвига других элементов, как это происходит в массиве.

Узел (Node)

Каждый узел в связном списке содержит данные и ссылку на следующий узел:

class Node {
    public $data;
    public $next;

    public function __construct($data) {
        $this->data = $data;

Двунаправленный связный список (Double Linked List) — это структура данных, в которой каждый узел содержит ссылки на следующий и предыдущий узлы. Это позволяет легко перемещаться в обоих направлениях по списку.

Вот пример реализации двунаправленного связного списка на JavaScript:

Узел (Node)

Каждый узел содержит данные, ссылку на следующий узел и ссылку на предыдущий узел:

class Node {
import setCaretPosition from '/src/utils/setCaretPosition'
export default function(e) {
let pos = e.target.value.search(/.(?=[^\d]*$)/)
if (pos < 4) {
// !@note асинхронный обход бага vue-imask на safari 17.1 когда при первом фокусе на vue-imask он ставит курсор в конец инпута телефона
setTimeout(() => {
setCaretPosition(e.target, 4)
}, 1)
}