À propos du projet

Draggable est une bibliothèque JavaScript qui offre un contrôle total sur le comportement de glisser-déposer en abstraisant les événements natifs du navigateur dans une API complète. Elle est conçue pour créer des expériences de glisser-déposer personnalisées et comprend des modules supplémentaires : Sortable, Droppable et Swappable. Draggable gère lui-même le travail lourd — création de miroirs, émission d'événements, gestion des événements de capteurs et rendu des éléments déplaçables — tandis que les modules supplémentaires s'appuient dessus pour offrir des fonctionnalités de tri, de dépôt et d'échange. Les principales fonctionnalités incluent la prise en charge des événements natifs de glisser, de souris, tactiles et de Force Touch ; l'extensibilité via des hooks de cycle de vie d'événements et des capteurs personnalisés ; et une cible prioritaire ES6. La bibliothèque est disponible via npm, yarn ou CDN, avec des builds ESM et UMD. Elle inclut des définitions TypeScript et est compatible avec les dernières versions de Chrome, Firefox, Opera, Safari et Edge. Draggable est livré avec plusieurs plugins : Collidable, ResizeMirror, Snappable, SwapAnimation et SortAnimation, qui améliorent le comportement de glissement. Les capteurs incluent DragSensor, ForceTouchSensor, MouseSensor et TouchSensor. La documentation est organisée dans les répertoires sources, couvrant les événements, les plugins et les modules. Remarque : la bibliothèque n'est plus maintenue par ses auteurs d'origine chez Shopify, mais la maintenance a été confiée à de nouveaux collaborateurs, et ils recherchent toujours d'autres mainteneurs. Les contributions sont les bienvenues, et il existe des ressources connexes comme les shims Ember CLI. Le projet est sous copyright de Shopify (2018-présent).