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

@dragndrop/draggable

v0.1.6

Published

Draggable component

Downloads

266

Readme

Draggable

Draggable uses the JavaScript to provide draggable functionality to HTML elements.

Design & API Documentation

Installation

npm install @dragndrop/draggable

Usage

Draggable element can be used for different functionalities - from moving elements around to make sortable list or draggable grid elements.

CSS Classes (they can be changed)

CSS Class | Description --- | --- draggable--dragging | Sets this class to element when dragging draggable--occurring | Sets this class to body element when dragging

Shadow DOM

If you want to use dragndrop in Shadow DOM you need to add draggable--retarget attribute to your host element so events will be bubble through Shoadow DOM and recursive elementFromPoint() calls will work correctly.

Draggable

The Draggable JavaScript component allows for programmatic turn on / off the draggabillity to element.

const draggableElement = document.querySelector('.draggable');
const draggable = new Draggable(draggableElement);

You can also use attachTo() as an alias;

Draggable.attachTo(document.querySelector('.draggable'));

Events | Type | Data | Description --- | --- | --- | --- onDragStart | CustomEvent | {originalEvent, dragInfo, dropzoneElement} | Event dispatched when dragging starts onDrag | CustomEvent | {originalEvent, dragInfo, dropzoneElement} | Event dispatched when dragging onDragEnd | CustomEvent | {originalEvent, dragInfo, dropzoneElement} | Event dispatched when dragging ends

DragInfo | Type | Description --- | --- | --- draggableId | Number | Id of draggable element element | Element | Draggable element data | Type Generic | Data attached to draggable with data property startPosition | Point | Start position avatar | Avatar | Avatar attached to draggable with avatar property axis | Axis | Axis which dragging is handled 'horizontal', 'vertical' and 'both' position | Point | Current position of cursor shift | Point | Distance from start position to elements top-left corner

Property | Value Type | Description --- | --- | --- data | Generic Type | Data which is attached to draggable draggable | Boolean | Turn on / off draggable functionality avatar | Avatar | Element which is rendered when element is dragging axis | Axis ('both', 'horizontal', 'vertical') | Axis the dragging is available for handle | String | Selector on which dragging is available (children of element are included) cancel | String | Selectors on which draggins is not available (children of element are included) draggingClass | String | Class which is set on element when dragging (draggable--dragging default) draggingClassBody | String | Class which is set on body element when dragging (draggable--occurring default) minDragStartDistance | number | Min distance to start dragStart state (4 default) touchAction | String or null | Makes touch-action property set on element when drag is started (undefined default) customScroll | ((startPosition: Point, currentPosition: Point) => void) or boolean | Allows to specify customScroll behavior with function or when set with false prevents from custom scroll which is set by default

Method Signature | Description --- | --- abort() => void | Proxies to the foundation's abort method destroy() => void | Proxies to the foundation's destroy method

DraggableFoundation

Method Signature | Description --- | --- | abort() => void | Abort current draggable. | destroy() => void | Destroy all event listeners and clean up component.