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/vue-draggable

v0.0.4

Published

Draggable component for VueJS

Downloads

22

Readme

Draggable

Draggable component for VueJS 2+ which implements @dragndrop/draggable component.

Design & API Documentation

Installation

npm install @dragndrop/vue-draggable

Usage

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

Typescript support

Component has its declarations (*.d.ts) for Typescript available.

Registration

import {VueDraggable} from '@dragndrop/vue-draggable';

Vue.component('VueDraggable', VueDraggable);

Registration as plugin

import Vue from 'vue';
import VueDraggable from '@dragndrop/vue-draggable';

Vue.use(VueDraggable);

Simple example

<template>
    <VueDraggable 
        :data="dataTransfer"
        :avatar="avatar"
        @onDrag="onDrag"
    >
        <div>Example element</div>
    </VueDraggable>
</template>
<script>
    export default {
        data() {
            return {
                dataTransfer: 'example data',
                avatar: new Avatar.clone(),
            }
        },
        methods: {
            onDrag(event) {
                console.log(event.dragInfo.data); // 'example data'
            }
        }
    }
</script>

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.

Events

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

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

Props

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

Methods

Method Signature | Description --- | --- abort() => void | Aborts current dragging destroy() => void | Clean up method. Is used on beforeDestroy hook.