# 4.6.0 Ghost busters
- improved dynamic containers recognition
- improved addContainers, removeContainers methods
- improved example of nested containers
- fixing gulp tasks

# 4.5.1 Grinch
- fixed npm audit vulnerabilities #173

# 4.5.0 Wind River
- with "copy:'events'" option dragular clone element including event handlers binded on element (request #165)
- added helpers methods into drake for easier dynamic add/removal of containers of drake initialised earlier

# 4.4.6 Ghost in the shell
- isContainer docs augmentation
- fixed bug in getTargetCtx
- fixed #161 previous target context used if the last before drop was not accepted target

# 4.4.5 Target
- fixes #154 - both scopes should be notified about events (source and also target scope)
- adding main gulp tasks to standard npm tasks, to get better orented quickly
- renamed CHANGELOG and README to UPPERCASE so they can be more easily to find visually

# 4.4.4 Don't Knock Twice
- throwing error if trying same container to register twice
- new example of nested ng-repeats combined with custom directive

# 4.4.3 Spy Kids
- fixed #148 - model not updated on spill

# 4.4.2 The Model
- fixed #138 - dynamic model via directive doesn't work properly

# 4.4.1 Dark places
- fixed #136 - Items can be moved to the end of container even if options.accepts returns false

# 4.4.0 Accepted
- isContainerAccepts - acceptation function for isContainer containers
- some docs improvements
- fixed #132 - not working isContainer with models

# 4.3.4 Home alone
- merged forgotten changes from master PRs

# 4.3.3 The Gods Must Be Crazy
- fixed #131 drags mixed with scrolling (caused by chrome update)
- fixed #129 drag stucks on no-container release
- fixed #128 canBeAccepted did not work in combination with isContainer
- added options object as second argument to onInit (requested in #65)

# 4.3.2 War of the Worlds
- fixed #120 isContainer example not working

# 4.3.1 Robin Hood
- fixed dynamic (function) `options.containersModel` for target containers models

# 4.3.0 Hitman
- added new options for `options.containersModel`, it accepts also string from now

# 4.2.5 Di-strict 9
- fixing #108 - Webpack and strict mode

# 4.2.4 Trolls
- fixed #87 - problem in example "NestedNgRepeat", input field doesnt work

# 4.2.3 The lost explorer
- fixed #107 - IE dragging issue, drag did not start

# 4.2.2 The Drop
- fixed #104 - drop index undefined in dragulardrop event listeners

# 4.2.1 Skyfall
- fixed #102
- transit class added after mirror rendering #101
- original DOM events passed as new parameter to angular listeners #97

# 4.2.0 Bad Moms
- UMD compatible #79
- options.onInit, on init callback function, closes #65
- Fixed examples #83 (Filtered model in nested ng-repeat)

# 4.1.0 Dora
- IE bug fixes #68
- compileItemOnDrop fixes #71

# 4.0.1 John Whick
- possibility to use it as a CommonJS module #62
- jQuery enviroment fixes #63

# 4.0.0 Uprising

- **[Braking change!]** options object reference is now live, so can be changed on the fly with instant effect, this feature can be disabled by 'options.copyOptions = true' flag so dragular then make copy of options object. It also means than provided options object will be extended with default value where option property is undefined.
- **[Braking change!]** flag 'options.ignoreInputTextSelection' default value is 'true'! Meaning that selecting text in input elements is not considered as drag, now by default!
- all boolean type options can be functions returning boolean
- options.containersModel can be function returning model
- new directive attribute dragular-name-space for better readability of views
- new options flag `options.dynamicModelAttribute`, if true dragular will react on model changes
- new options flag `options.dontCopyModel`, dont make copy of model when coping item (#61)

### Changes merged from dragula 3.6.3
- Fixed an issue that prevented `dragular` from execution early in the document load life-cycle
- Fixed issues in touch-enabled browsers such as Windows Phone 10

# 3.4.0 StarWars
- support filtered ng-repeats
- the 'shared' object is truly shared between service instances as it was originally intended
- many code refactors for better readability (to be continued..)
- event names can be now customized for each drake

# 3.3.1 Dwarf
- fix touches

# 3.3.0 Xmas fever
- some code refactors
- introducing codeclimate
- Sending target index on dragulardrop event
- Fix css property typo
- Fix for applyAsync typo and multiple executions of startBecauseMouseMoved
- Touchstart and Touchend Support

### Changes merged from dragula 3.6.0
- Introduced support for `contentEditable` DOM attribute
- Switched from `.parentElement` to `.parentNode` avoiding bugs when hovering over `<svg>` elements
- Fixed a bug where mobile devices wouldn't be able to drag elements

# 3.2.0 Ladybugs
- Fix for applyAsync typo and multiple executions of startBecauseMouseMoved #45

### Changes merged from dragula 3.5.2:
- Fixed a bug where `<select>` inputs couldn't be focused
- Fixed a bug when determining the mouse button being pressed
- Fixed a bug when determining the element behind the mouse cursor when `ignoreInputTextSelection` was enabled
- Added a feature where users are able to select text ranges with their mouse in inputs within a dragular container
- Fixed a bug where text in inputs inside containers assigned to `dragula` couldn't be selected
- Fixed a bug where `out` would be emitted with an `undefined` container
- Fixed a fringe bug [(#207)](https://github.com/bevacqua/dragula/pull/207) where the click handler wouldn't work
- Fixed a bug where `drop` events would sometimes not receive the current sibling

# 3.1.0 Brotherhood

- added `dragular-model` atribute as new optional way of provideng model when using dragular directive
- fixed gh-pages missed prefixes in Events example

### Changes merged from dragula 3.3.0:
- You can now use `options.copySortSource` to enable sorting in `copy`-source containers
- The `options.moves` callback now receives a fourth parameter, the `sibling` found after `el`

# 3.0.2 fix

- Fixed drop event firing before models updated

# 3.0.1 fix

- Fixed shared.item undefined in grab fn in some cases

# 3.0.0 Interdragular

- **[Braking change!]** scope events are renamed (drop => dragulardrop, shadow => dragularshadow, etc..)
- **[Braking change!]** options.accepts is splited into two methods options.accepts applied with target container options and options.canBeAccepted applied with source container options
- if options.isContainer is used model can be provided via function options.isContainerModel(containerElm)
- **[Braking change!]** removed dragOverClasses (dragOver events can be used instead);
- share containers between instances, so no need to nameSpace if containers are initialised separately (CAUTION: in case of nested containers you need to use nameSpace for each group/level_of_nesting)
- example with containers which has different options each
- **[Braking change!]** Now all non-nameSpaced continers are in same domain
- **[Braking change!]** Models are not updated until drag ends
- css selectors supportet in service `containers` parameter
- removed npm workflow

### Changes merged from dragula 3.1.0:
- You can now set `options.copy` to a method. It'll be invoked once per drag to ask whether the element being dragged should be treated as a copy or not
- Fixed a bug where starting a drag programatically while an element was being dragged resulted in an exception
- Fixed a bug where `mousedown` would be prevented and focusing draggable inputs wouldn't be possible
- Fixed a historical bug, where click on anchors would be ignored within dragula containers in mobile
- Fixed a bug where events wouldn't be gracefully removed if drake were destroyed during a drag event
- Now emits dragend after out to preserve consistency (because drag is emitted before over)
- Fixed another old bug where attempting to remove elements using removeOnSpill on mobile would fail
- Fixed a bug in mobile, caused by 3.0.0, where scrolling would be impossible
- Fixed a bug where dragging would cause text selection in IE8
- **[Braking change!]** Removed addContainer method, which was previously deprecated
- **[Braking change!]** Removed removeContainer method, which was previously deprecated
- **[Braking change!]** Removed delay option in favor of using mousemove
- Drag events now start on the first occurrence of a mousemove event
- If mousemove never fires, then the drag machinery won't start, either
- Changed default value for invalid, now always returns false by default
- Added mirrorContainer option to determine where the mirror gets appended to (defaults to document.body)

# 2.1.3 hotfix

- fixing makeArray internal function which causes reversed arrays and so unexpected behaviour

# 2.1.2 Damn

- fixing release (unminidied files had still 2.1.0 version)

# 2.1.1 patch

- fixing drake.destroy()

# 2.1.0 Elder Scrolls

- fixed scrolling while drag #14
- added new events fired on elements behind cursor while dragging (dragularenter, dragularleave), could be used to add/remove classes
- added new scope event 'release' when mouse button is released whatever ending it has (drop, cancel, revert..)

# 2.0.1 Lightning

- fixed forgoten lint errors

# 2.0.0 Aloha

- ngRepeat can be synced with provided model
- gulp workflow (thanks to @alferov)
- gh-pages refactored
- Fixed a bug where `shadow` would trigger multiple times while dragging an element over the same spot
- Fixed a bug where adding and removing classes might've caused issues on elements that had foreign CSS classes
- Added an argument to `cloned` event that specifies the kind of clone. Possible values include `mirror` and `copy` at the moment
- Added `over` event that fires whenever an element is dragged over a container _(or whenever a drag event starts)_
- Added `out` event that fires whenever an element is dragged out of a container _(or whenever a drag event ends)_
- Fixed a bug caused in `2.0.6` where anything would be regarded as a `drake` container
- Fixed a bug where `isContainer` would be called with a `el=null` in some situations
- Set `gu-transit` after a drag event has fully started
- Fixed a bug where using `.cancel` would throw an exception
- Fixed a bug where dragging a copy back to origin after hovering over another container would still result in a copy being made if you never spilled the item
- Deprecated addContainer method
- Deprecated removeContainer method
- Exposed dragula.containers collection
- Introduced dynamic isContainer method
- Can now omit containers argument to dragula(containers, options)
- Can now pass containers as an option
- Differentiate between drag and click using delay option
- Ability to specify which event targets are invalid drag triggers

# 1.3.2 Buggydown

- mousedown handlers moved from document to containers, due to bugs in namespacing-multiple-instances enviroment

# 1.3.1 Fix6

- fixes #6

# 1.3.0 Dragula203

- changes of dragula 2.0.3 against 1.6.1 implemented
- usage description augmented (#5)

# 1.2.1 Damn build

- forgot to build.. sorry

# 1.2.0 Directive

- feat(directive): accept options as JSON string
- fix(directive): minify-safe syntax added to directive, closes #3

# 1.1.0 tadaaa

- started correctly using Semantic Versioning 2.0.0 http://semver.org/
- avoiding angular.merge, so polyfill part was removed
- boundingBox (dragging element can me moved only in specific area)
- lockX/Y (dragging element can me moved only in specific direction)
- readded feature: automatic direction

# 1.0.3 nameSpaced containers

- allowing share of containers groups

# 1.0.2 customClasses

- custom classes via option.classes;

# 1.0.1 arraylike

- accepting arraylike objects as containers array;

# 1.0.0 IPO

- Initial Public Release (dragula 1.6.1, angular 1.4.1);
