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

germanium-vue-dnd

v1.0.0

Published

= Drag and Drop for Vue

Downloads

5

Readme

= Drag and Drop for Vue

Usage:

[source,html]

The events are prefixed with dnd_, so for example dragstart is now dnd_dragstart. The reason is that all the event setup should be handled by v-dnd, and not by the user.

== Drop

v-dnd:drop sets the current element as a drop zone element. Elements can now be drag and dropped into this element.

=== Drop Callbacks

Each callback has the following arguments: data, nativeEvent, index. The index is computed only when the list modifier is applied.

Drop allows the following callbacks, with the most important ones the v-dnd:drop to configure the action to be performed when a drop is done, and @dnd_dragover to configure if a drop is accepted or not.

  • v-dnd:drop - the action invoked when a drop is performed.
  • @dnd_dragover - this one can be used to validate the drop. If it returns anything (i.e. not undefined) its value is considered. This can be used to validate if the drop is permitted or not.S
  • @dnd_dragenter - callback called whenever a drop target enters our component
  • @dnd_dragleave - callback called when a drop target leaves our component

=== css Drop Modifier

Having the css modifier permits automatically changing the CSS classes of the drop target.

  • dnd-drop-target - always added to the target
  • dnd-drop-hover - added when the user hovers the drop zone, removed when it doesn't hover anymore
  • dnd-drop-rejected - @dnd_dragover returned false so the drop is not possible.

If the item is a list, on each child node the following classes could be added:

  • dnd-drop-index-h-before
  • dnd-drop-index-h-after
  • dnd-drop-index-before
  • dnd-drop-index-after

=== list Drop Modifier

Consider the items in the drop zone as part of a vertical list. Depending on the position of the mouse in relation to the child elements it computes an index that will be passed as the last argument.

=== hlist Drop Modifier

Same as list, but the list is horizontal.

== Drag

v-dnd:drag sets the given element as a draggable item. Itself points to either a function to retrieve the data, either the data itself.

=== Drag Callbacks

  • v-dnd:drag - data to drag and drop
  • @dnd_drag - called every few millis
  • @dnd_dragend - when the dragging stopped.

=== css Drag Modifier

Having the css modifiers enables the dnd-drag-active class on the element whenever it's being dragged.

== Handle

v-dnd:handle permits specifying an internal node as the handle for dragging. It will implicitly set the draggable to its parent v-dnd:drag to false, and set it to true only when the mouse is inside the handle.

=== css Handle Modifier

The css modifier adds the dnd-drag-handle class on the handle.