@apimediaru/driven-event
TypeScript icon, indicating that this package has built-in type declarations

1.0.2 • Public • Published

@apimediaru/driven-event

Обертка над объектом браузерного события. Добавляет возможность отслеживать вызов методов управления поведением по умолчанию и всплытия: stopPropagation, stopImmediatePropagation и preventDefault. Штатными средствами отследить возможно только preventDefault через свойство evt.defaultPrevented.

Используется в Dispatcher для управления возможностью обработки вложенных эффектов.

Установка

npm install @apimediaru/driven-event

API

createDrivenEvent(evt: Event): DrivenEvent

import { createDrivenEvent } from '@apimediaru/driven-event';

function compOne(event) {
  if (event.target.classList.has('js-stop')) {
    event.stopPropagation();
  }
}

function compTwo(event) {
  if (!event.isPropagationStopped()) {
    // Proceed
    console.log(event.customProperty);
  }
}

function someEventLogic(event) {
  event.preventDefault();
  compOne(event);
  compTwo(event);
}

document.addEventListener('click', (event) => {
  someEventLogic(createDrivenEvent(event));
});

Структура объекта события

type: string
Тип события

originalEvent: Event
Ссылка на оригинальное событие браузера

timeStamp?: number
Временная метка в милисекундах момента создания события

target
Ссылка на evt.target

currentTarget
Ссылка на evt.currentTarget

preventDefault(): void
Отменить действие бразуера по умолчанию

isDefaultPrevented(): boolean
Возвращает true если действие браузера по умолчанию было прекращено

stopPropagation(): void
Прекратить всплытие события

isPropagationStopped(): boolean
Возвращает true если всплытие было остановлено

stopImmediatePropagation: () => void
Останавливает цепочку вызова событий для последующих обработчиков DOM-элемента

isImmediatePropagationStopped(): boolean
Возвращает true если у экземпляра DrivenEvent был вызыван метод stopImmediatePropagation

simulate(): void
По умолчанию DrivenEvent полностью повторяет логику управления всплытием и действием браузера по умолчанию, однако это поведение можно отключить. Тогда фоном DrivenEvent не будет вызывать стандартные методы, но можно по прежнему отследить были ли вызываны функции у класса-обертки.

Readme

Keywords

none

Package Sidebar

Install

npm i @apimediaru/driven-event

Weekly Downloads

1

Version

1.0.2

License

MIT

Unpacked Size

7.57 kB

Total Files

5

Last publish

Collaborators

  • graandy
  • exileofaranei