JSPM

  • Created
  • Published
  • Downloads 114065
  • Score
    100M100P100Q169493F
  • License MIT

Drag and drop for angular 6.0+

Package Exports

  • angular-draggable-droppable

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (angular-draggable-droppable) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

angular 20.0+ drag and drop

Sponsorship Build Status codecov npm version Twitter Follow

Demo

https://mattlewis92.github.io/angular-draggable-droppable/

Table of contents

About

Observable powered drag and drop for angular 20.0+

Installation

Install through npm:

npm install angular-draggable-droppable

Then use it in your app like so:

import { Component, NgModule } from '@angular/core';
import { DraggableDirective, DroppableDirective } from 'angular-draggable-droppable';

@Component({
  selector: 'demo-app',
  imports: [DraggableDirective, DroppableDirective],
  template: `
    <div mwlDraggable (dragEnd)="dragEnd($event)">Drag me!</div>
    <div mwlDroppable (drop)="this.droppedData = $event.dropData">
      <span [hidden]="droppedData">Drop here</span>
      <span [hidden]="!droppedData">Item dropped here with data: "{{ droppedData }}"!</span>
    </div>
  `,
})
class DemoApp {
  droppedData: string;

  dragEnd(event) {
    console.log('Element was dragged', event);
  }
}

Note: if draggable elements are inside a scrollable element then you will need to add mwlDraggableScrollContainer as an attribute to the scrollable container.

You may also find it useful to view the demo source.

Documentation

All documentation is auto-generated from the source and can be viewed here: https://mattlewis92.github.io/angular-draggable-droppable/docs/

Alternatives

I wrote this library because I needed drag and drop whilst snapping to a grid. If you don't need this feature then I recommend checking out one of these other awesome drag and drop libraries:

Development

Prepare your environment

  • Install Node.js (>=24.5.0)
  • Install pnpm: corepack enable
  • Install local dev dependencies: pnpm install while current directory is this repo

Development server

Run pnpm start to start a development server on port 8000 with auto reload + tests.

Testing

Run pnpm test to run tests once or pnpm test:watch to continually run tests.

Release

pnpm release

License

MIT