npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

event-bundle

v0.0.4

Published

JavaScript library for organizing and managing DOM events in named bundles.

Downloads

7

Readme

event-bundle

JavaScript library for organizing and managing DOM events in named bundles.

Take more control over events in your application by managing related events. For example, you could pause an entire group of events while the user is in a particular state where they no longer need those events.

This library is UMD wrapped so it can be used with or without a module loader such as requireJS.

Install

npm install --save event-bundle 

Note: If this library is exposed directly to the window, it operates under the global variable EventBundle. Keep in mind you may be in an environment that requires you explicitly expose it to the window (ex: webpack).

Example Usage

var EventBundle = require('event-bundle');

// store an EventBundle to a variable
var searchEvents = new EventBundle('search');

// add events to the bundle
searchEvents
    .add(window, 'keydown', someFunction)
    .add(searchInput, 'click', someOtherFunction);
    
// sometime later (for example when a modal opens)
searchEvents.pause();

// sometime later (for example when a modal closes)
searchEvents.resume();

Creating a new EventBundle

Create an individualized event bundle by using the EventBundle constructor. The new keyword is required to create a new bundle.

var bundle = new EventBundle('bundleName');

Adding an event

Added events are attached to the element. You can add as many events as you want to a bundle. If that exact event (same element, type, and callback) already exists on an element and belongs to another bundle, you will receive an error.

bundle.add(element, type, callback, options);

Removing an event

Removing events from the bundle also removes the event from the element.

bundle.remove(element, type, callback, options);

Pausing all events in a bundle

You can pause all of the events in bundle indefinitely. If events are added to a bundle while it is "paused", those new events will automatically be in the "paused" state.

bundle.pause();

Resuming all events in a bundle

bundle.resume();

Removing all events from a bundle

When removing all the events from the bundle, it also removes all of the events from their elements.

There are two ways to do this. You can call empty on an EventBundle instance, or use the static empty method.

Using the bundle instance:

bundle.empty();

Using the static empty method:

EventBundle.empty('bundleName');

A string is passed that is the name of a bundle.

Get an EventBundle instance

If you do not have the EventBundle instance currently available to you, you can get an EventBundle by name. The name of the bundle (as a string) is passed to the method.

EventBundle.get('bundleName');

Get an array of EventBundle names

This is a getter (not a function) on the EventBundle window object.

EventBundle.bundleNames;
// returns an array of bundle names (ex: ['search', 'modal'])