@atlaskit/pragmatic-drag-and-drop 1.1.9 → 1.1.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/CHANGELOG.md +433 -419
  2. package/dist/cjs/ledger/lifecycle-manager.js +15 -3
  3. package/dist/es2019/ledger/lifecycle-manager.js +15 -3
  4. package/dist/esm/ledger/lifecycle-manager.js +15 -3
  5. package/dist/types/ledger/dispatch-consumer-event.d.ts +1 -1
  6. package/dist/types/ledger/lifecycle-manager.d.ts +1 -1
  7. package/dist/types/ledger/usage-ledger.d.ts +1 -1
  8. package/dist/types/make-adapter/make-adapter.d.ts +1 -1
  9. package/dist/types/make-adapter/make-drop-target.d.ts +1 -1
  10. package/dist/types/make-adapter/make-monitor.d.ts +1 -1
  11. package/dist/types/public-utils/combine.d.ts +1 -1
  12. package/dist/types/public-utils/element/custom-native-drag-preview/preserve-offset-on-source.d.ts +1 -1
  13. package/dist/types/public-utils/element/custom-native-drag-preview/set-custom-native-drag-preview.d.ts +1 -1
  14. package/dist/types/public-utils/external/file.d.ts +1 -1
  15. package/dist/types/public-utils/external/html.d.ts +1 -1
  16. package/dist/types/public-utils/external/some.d.ts +1 -1
  17. package/dist/types/public-utils/external/text.d.ts +1 -1
  18. package/dist/types/public-utils/external/url.d.ts +1 -1
  19. package/dist/types/util/add-attribute.d.ts +1 -1
  20. package/dist/types/util/get-input.d.ts +1 -1
  21. package/dist/types-ts4.5/ledger/dispatch-consumer-event.d.ts +1 -1
  22. package/dist/types-ts4.5/ledger/lifecycle-manager.d.ts +1 -1
  23. package/dist/types-ts4.5/ledger/usage-ledger.d.ts +1 -1
  24. package/dist/types-ts4.5/make-adapter/make-adapter.d.ts +1 -1
  25. package/dist/types-ts4.5/make-adapter/make-drop-target.d.ts +1 -1
  26. package/dist/types-ts4.5/make-adapter/make-monitor.d.ts +1 -1
  27. package/dist/types-ts4.5/public-utils/combine.d.ts +1 -1
  28. package/dist/types-ts4.5/public-utils/element/custom-native-drag-preview/preserve-offset-on-source.d.ts +1 -1
  29. package/dist/types-ts4.5/public-utils/element/custom-native-drag-preview/set-custom-native-drag-preview.d.ts +1 -1
  30. package/dist/types-ts4.5/public-utils/external/file.d.ts +1 -1
  31. package/dist/types-ts4.5/public-utils/external/html.d.ts +1 -1
  32. package/dist/types-ts4.5/public-utils/external/some.d.ts +1 -1
  33. package/dist/types-ts4.5/public-utils/external/text.d.ts +1 -1
  34. package/dist/types-ts4.5/public-utils/external/url.d.ts +1 -1
  35. package/dist/types-ts4.5/util/add-attribute.d.ts +1 -1
  36. package/dist/types-ts4.5/util/get-input.d.ts +1 -1
  37. package/package.json +2 -4
package/CHANGELOG.md CHANGED
@@ -1,674 +1,688 @@
1
1
  # @atlaskit/pragmatic-drag-and-drop
2
2
 
3
+ ## 1.1.10
4
+
5
+ ### Patch Changes
6
+
7
+ - [#105574](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/105574)
8
+ [`2f5d213b2613`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/2f5d213b2613) -
9
+ These fixes only impact situations were you have native drag and drop code in addition to
10
+ Pragmatic drag and drop running on your page.
11
+
12
+ - Fix: if a `"drop"` is caused by non Pragmatic drag and drop code on the page, then we will no
13
+ longer cancel the `"drop"` event.
14
+ - Fix: No longer exposing external adapter data (`source.items`) in `onDrop` if not dropping on a
15
+ Pragmatic drag and drop drop target. Previously, if some non Pragmatic drag and drop code
16
+ accepted a drop then `source.items` would be populated. Now all unsuccessful (or un managed)
17
+ drops are handled consistently.
18
+
3
19
  ## 1.1.9
4
20
 
5
21
  ### Patch Changes
6
22
 
7
- - [#100243](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/100243)
8
- [`1ba7a4e942d4`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/1ba7a4e942d4) -
9
- Fixing typos in dev time warnings
23
+ - [#100243](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/100243)
24
+ [`1ba7a4e942d4`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/1ba7a4e942d4) -
25
+ Fixing typos in dev time warnings
10
26
 
11
27
  ## 1.1.8
12
28
 
13
29
  ### Patch Changes
14
30
 
15
- - [#100196](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/100196)
16
- [`da322bbbe7f5`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/da322bbbe7f5) -
17
- Setting `sideEffects: true` in `package.json` as a few essential files in `core` have side
18
- effects. Unfortunately we require side effects to work around browser bugs and strangeness 😅.
31
+ - [#100196](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/100196)
32
+ [`da322bbbe7f5`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/da322bbbe7f5) -
33
+ Setting `sideEffects: true` in `package.json` as a few essential files in `core` have side
34
+ effects. Unfortunately we require side effects to work around browser bugs and strangeness 😅.
19
35
 
20
36
  ## 1.1.7
21
37
 
22
38
  ### Patch Changes
23
39
 
24
- - [#95385](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/95385)
25
- [`c8d2e32f5071`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/c8d2e32f5071) -
26
- Minor internal refactor of code concerning entering / leaving a window
40
+ - [#95385](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/95385)
41
+ [`c8d2e32f5071`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/c8d2e32f5071) -
42
+ Minor internal refactor of code concerning entering / leaving a window
27
43
 
28
44
  ## 1.1.6
29
45
 
30
46
  ### Patch Changes
31
47
 
32
- - [#94759](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/94759)
33
- [`140fc0d20c02`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/140fc0d20c02) -
34
- Fixing our Safari workaround in `setCustomNativeDragPreview()` for a
35
- [Safari drag preview bug](https://bugs.webkit.org/show_bug.cgi?id=266025) so that it works
36
- correctly for `react@18+` usage.
48
+ - [#94759](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/94759)
49
+ [`140fc0d20c02`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/140fc0d20c02) -
50
+ Fixing our Safari workaround in `setCustomNativeDragPreview()` for a
51
+ [Safari drag preview bug](https://bugs.webkit.org/show_bug.cgi?id=266025) so that it works
52
+ correctly for `react@18+` usage.
37
53
 
38
54
  ## 1.1.5
39
55
 
40
56
  ### Patch Changes
41
57
 
42
- - [#94316](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/94316)
43
- [`35fd5ed8e1d7`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/35fd5ed8e1d7) -
44
- Upgrading internal dependency `bind-event-listener` to `@^3.0.0`
58
+ - [#94316](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/94316)
59
+ [`35fd5ed8e1d7`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/35fd5ed8e1d7) -
60
+ Upgrading internal dependency `bind-event-listener` to `@^3.0.0`
45
61
 
46
62
  ## 1.1.4
47
63
 
48
64
  ### Patch Changes
49
65
 
50
- - [#94302](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/94302)
51
- [`66ca9d1d1602`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/66ca9d1d1602) -
52
- Improving jsdoc for the drop target `canDrop` function
66
+ - [#94302](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/94302)
67
+ [`66ca9d1d1602`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/66ca9d1d1602) -
68
+ Improving jsdoc for the drop target `canDrop` function
53
69
 
54
70
  ## 1.1.3
55
71
 
56
72
  ### Patch Changes
57
73
 
58
- - [#84398](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/84398)
59
- [`77694db987fc`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/77694db987fc) -
60
- Public release of Pragmatic drag and drop documentation
74
+ - [#84398](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/84398)
75
+ [`77694db987fc`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/77694db987fc) -
76
+ Public release of Pragmatic drag and drop documentation
61
77
 
62
78
  ## 1.1.2
63
79
 
64
80
  ### Patch Changes
65
81
 
66
- - [#84047](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/84047)
67
- [`72a86ac4a940`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/72a86ac4a940) -
68
- Removing experimental `DropData` from `onDrop()`. Exposing the native `dropEffect` turned out to
69
- problematic, as you will always get a `"none"` drop effect if dropping externally if the
70
- original `draggable` was removed (a native `"dragend"` event is targetted at the original
71
- draggable). This made the weak signal of `dropEffect` for even weaker and more problematic. In
72
- order to not create footguns for folks, we have decided to remove this experimental API for now.
73
- We can explore adding the API back in the future if folks think it would be valuable.
82
+ - [#84047](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/84047)
83
+ [`72a86ac4a940`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/72a86ac4a940) -
84
+ Removing experimental `DropData` from `onDrop()`. Exposing the native `dropEffect` turned out to
85
+ problematic, as you will always get a `"none"` drop effect if dropping externally if the original
86
+ `draggable` was removed (a native `"dragend"` event is targetted at the original draggable). This
87
+ made the weak signal of `dropEffect` for even weaker and more problematic. In order to not create
88
+ footguns for folks, we have decided to remove this experimental API for now. We can explore adding
89
+ the API back in the future if folks think it would be valuable.
74
90
 
75
91
  ## 1.1.1
76
92
 
77
93
  ### Patch Changes
78
94
 
79
- - [#83702](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/83702)
80
- [`4d9e25ab4eaa`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/4d9e25ab4eaa) -
81
- Updating the descriptions of Pragmatic drag and drop packages, so they each provide a consistent
82
- description to various consumers, and so they are consistently formed amongst each other.
95
+ - [#83702](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/83702)
96
+ [`4d9e25ab4eaa`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/4d9e25ab4eaa) -
97
+ Updating the descriptions of Pragmatic drag and drop packages, so they each provide a consistent
98
+ description to various consumers, and so they are consistently formed amongst each other.
83
99
 
84
- - `package.json` `description`
85
- - `README.md`
86
- - Website documentation
100
+ - `package.json` `description`
101
+ - `README.md`
102
+ - Website documentation
87
103
 
88
104
  ## 1.1.0
89
105
 
90
106
  ### Minor Changes
91
107
 
92
- - [#82653](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/82653)
93
- [`136d8da5542d`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/136d8da5542d) -
94
- _Experimental_: Adding additional information to `onDrop()` events to expose what the final
95
- `dropEffect` was for a drag operation (_now removed_)
108
+ - [#82653](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/82653)
109
+ [`136d8da5542d`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/136d8da5542d) -
110
+ _Experimental_: Adding additional information to `onDrop()` events to expose what the final
111
+ `dropEffect` was for a drag operation (_now removed_)
96
112
 
97
- Fixing a bug where `preventUnhandled.start()` would prevent unhandled drag operations forever.
98
- It now only prevents unhandled drag operations for the current drag operation.
99
- `preventUnhandled.stop()` is now optional, as `preventUnhandled.start()` now tidies up itself.
100
- You can still leverage `preventUnhandled.stop()` to stop preventing unhandled drag operations
101
- during a drag.
113
+ Fixing a bug where `preventUnhandled.start()` would prevent unhandled drag operations forever. It
114
+ now only prevents unhandled drag operations for the current drag operation.
115
+ `preventUnhandled.stop()` is now optional, as `preventUnhandled.start()` now tidies up itself. You
116
+ can still leverage `preventUnhandled.stop()` to stop preventing unhandled drag operations during a
117
+ drag.
102
118
 
103
- Tightening the `getDropEffect()` function on drop targets slightly so that `"none"` cannot be
104
- provided. Using `"none"` as the drop effect would break the expected behaviour for nested drop
105
- targets.
119
+ Tightening the `getDropEffect()` function on drop targets slightly so that `"none"` cannot be
120
+ provided. Using `"none"` as the drop effect would break the expected behaviour for nested drop
121
+ targets.
106
122
 
107
123
  ## 1.0.2
108
124
 
109
125
  ### Patch Changes
110
126
 
111
- - [#83116](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/83116)
112
- [`8d4e99057fe0`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/8d4e99057fe0) -
113
- Upgrade Typescript from `4.9.5` to `5.4.2`
127
+ - [#83116](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/83116)
128
+ [`8d4e99057fe0`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/8d4e99057fe0) -
129
+ Upgrade Typescript from `4.9.5` to `5.4.2`
114
130
 
115
131
  ## 1.0.1
116
132
 
117
133
  ### Patch Changes
118
134
 
119
- - [#76476](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/76476)
120
- [`35148e092790`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/35148e092790) -
121
- Adding warning for test environments to let people know if DragEvents have not been setup
122
- correctly.
135
+ - [#76476](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/76476)
136
+ [`35148e092790`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/35148e092790) -
137
+ Adding warning for test environments to let people know if DragEvents have not been setup
138
+ correctly.
123
139
 
124
140
  ## 1.0.0
125
141
 
126
142
  ### Major Changes
127
143
 
128
- - [#70616](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/70616)
129
- [`42e57ea65fee`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/42e57ea65fee) -
130
- This is our first `major` release (`1.0`) for all Pragmatic drag and drop packages.
144
+ - [#70616](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/70616)
145
+ [`42e57ea65fee`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/42e57ea65fee) -
146
+ This is our first `major` release (`1.0`) for all Pragmatic drag and drop packages.
131
147
 
132
- For a detailed explanation of these changes, and how to upgrade (automatically) to `1.0` please
133
- see our
134
- [1.0 upgrade guide](http://atlassian.design/components/pragmatic-drag-and-drop/core-package/upgrade-guides/upgrade-guide-for-1.0)
148
+ For a detailed explanation of these changes, and how to upgrade (automatically) to `1.0` please
149
+ see our
150
+ [1.0 upgrade guide](http://atlassian.design/components/pragmatic-drag-and-drop/core-package/upgrade-guides/upgrade-guide-for-1.0)
135
151
 
136
152
  ## 0.25.0
137
153
 
138
154
  ### Minor Changes
139
155
 
140
- - [#59458](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/59458)
141
- [`7d6a69cfa61c`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/7d6a69cfa61c) -
142
- Adding workaround for Safari bug.
156
+ - [#59458](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/59458)
157
+ [`7d6a69cfa61c`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/7d6a69cfa61c) -
158
+ Adding workaround for Safari bug.
143
159
 
144
- In Safari (and iOS) if the element used for generating a native drag preview has opacity
145
- applied, then the native drag preview can include elements underneath the drag preview element.
160
+ In Safari (and iOS) if the element used for generating a native drag preview has opacity applied,
161
+ then the native drag preview can include elements underneath the drag preview element.
146
162
 
147
- Pragmatic drag and drop now includes a workaround for this Safari bug.
163
+ Pragmatic drag and drop now includes a workaround for this Safari bug.
148
164
 
149
165
  ## 0.24.0
150
166
 
151
167
  ### Minor Changes
152
168
 
153
- - [#39935](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/39935)
154
- [`03b91562fec`](https://bitbucket.org/atlassian/atlassian-frontend/commits/03b91562fec) -
155
- Exposing `AllDragTypes` type. This was previously an internal type, but it provided helpful to
156
- expose for our new auto scroller. `AllDragTypes` is helpful if you need a function to work with
157
- either `element` or `file` drag operations.
169
+ - [#39935](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/39935)
170
+ [`03b91562fec`](https://bitbucket.org/atlassian/atlassian-frontend/commits/03b91562fec) - Exposing
171
+ `AllDragTypes` type. This was previously an internal type, but it provided helpful to expose for
172
+ our new auto scroller. `AllDragTypes` is helpful if you need a function to work with either
173
+ `element` or `file` drag operations.
158
174
 
159
175
  ## 0.23.0
160
176
 
161
177
  ### Minor Changes
162
178
 
163
- - [#38713](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/38713)
164
- [`3da89e29dfc`](https://bitbucket.org/atlassian/atlassian-frontend/commits/3da89e29dfc) - We
165
- have renamed and tweaked the recently added `setCustomNativeDragPreview` `getOffset` utility
166
- `preserveOffsetFromPointer` to be a bit easier to understand what it is doing.
167
-
168
- ```diff
169
- - import { preserveOffsetFromPointer } from '@atlaskit/pragmatic-drag-and-drop/util/preserve-offset-from-pointer';
170
- + import { preserveOffsetOnSource } from '@atlaskit/pragmatic-drag-and-drop/util/preserve-offset-on-source';
171
-
172
- draggable({
173
- element: myElement,
174
- onGenerateDragPreview: ({ nativeSetDragImage, location, source }) => {
175
- setCustomNativeDragPreview({
176
- - getOffset: preserveOffsetFromPointer({
177
- + 'preserveOffsetOnSource' is a more accurate description of what is being achieved
178
- + getOffset: preserveOffsetOnSource({
179
- - sourceElement: source.element,
180
- + // no longer including 'source' in argument name
181
- + // as it is implied by the function name
182
- + element: source.element,
183
- input: location.current.input,
184
- }),
185
- render: function render({ container }) {
186
- /* ... */
187
- },
188
- nativeSetDragImage,
189
- });
190
- },
191
- });
192
- ```
179
+ - [#38713](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/38713)
180
+ [`3da89e29dfc`](https://bitbucket.org/atlassian/atlassian-frontend/commits/3da89e29dfc) - We have
181
+ renamed and tweaked the recently added `setCustomNativeDragPreview` `getOffset` utility
182
+ `preserveOffsetFromPointer` to be a bit easier to understand what it is doing.
183
+
184
+ ```diff
185
+ - import { preserveOffsetFromPointer } from '@atlaskit/pragmatic-drag-and-drop/util/preserve-offset-from-pointer';
186
+ + import { preserveOffsetOnSource } from '@atlaskit/pragmatic-drag-and-drop/util/preserve-offset-on-source';
187
+
188
+ draggable({
189
+ element: myElement,
190
+ onGenerateDragPreview: ({ nativeSetDragImage, location, source }) => {
191
+ setCustomNativeDragPreview({
192
+ - getOffset: preserveOffsetFromPointer({
193
+ + 'preserveOffsetOnSource' is a more accurate description of what is being achieved
194
+ + getOffset: preserveOffsetOnSource({
195
+ - sourceElement: source.element,
196
+ + // no longer including 'source' in argument name
197
+ + // as it is implied by the function name
198
+ + element: source.element,
199
+ input: location.current.input,
200
+ }),
201
+ render: function render({ container }) {
202
+ /* ... */
203
+ },
204
+ nativeSetDragImage,
205
+ });
206
+ },
207
+ });
208
+ ```
193
209
 
194
210
  ## 0.22.0
195
211
 
196
212
  ### Minor Changes
197
213
 
198
- - [#38397](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/38397)
199
- [`d644a68ddf6`](https://bitbucket.org/atlassian/atlassian-frontend/commits/d644a68ddf6) - Added
200
- a new `setCustomNativeDragPreview` `getOffset` utility: `preserveOffsetFromPointer`.
201
- `preserveOffsetFromPointer` mimics the default behaviour for non custom drag previews when
202
- starting a drag: the initial cursor position offset is preserved for a seamless drag and drop
203
- experience.
204
-
205
- ```ts
206
- import { setCustomNativeDragPreview } from '@atlaskit/pragmatic-drag-and-drop/util/set-custom-native-drag-preview';
207
- import { preserveOffsetFromPointer } from '@atlaskit/pragmatic-drag-and-drop/util/preserve-offset-from-pointer';
208
-
209
- draggable({
210
- element: myElement,
211
- onGenerateDragPreview: ({ nativeSetDragImage, location, source }) => {
212
- setCustomNativeDragPreview({
213
- getOffset: preserveOffsetFromPointer({
214
- sourceElement: source.element,
215
- input: location.current.input,
216
- }),
217
- render: function render({ container }) {
218
- /* ... */
219
- },
220
- nativeSetDragImage,
221
- });
222
- },
223
- });
224
- ```
214
+ - [#38397](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/38397)
215
+ [`d644a68ddf6`](https://bitbucket.org/atlassian/atlassian-frontend/commits/d644a68ddf6) - Added a
216
+ new `setCustomNativeDragPreview` `getOffset` utility: `preserveOffsetFromPointer`.
217
+ `preserveOffsetFromPointer` mimics the default behaviour for non custom drag previews when
218
+ starting a drag: the initial cursor position offset is preserved for a seamless drag and drop
219
+ experience.
220
+
221
+ ```ts
222
+ import { setCustomNativeDragPreview } from '@atlaskit/pragmatic-drag-and-drop/util/set-custom-native-drag-preview';
223
+ import { preserveOffsetFromPointer } from '@atlaskit/pragmatic-drag-and-drop/util/preserve-offset-from-pointer';
224
+
225
+ draggable({
226
+ element: myElement,
227
+ onGenerateDragPreview: ({ nativeSetDragImage, location, source }) => {
228
+ setCustomNativeDragPreview({
229
+ getOffset: preserveOffsetFromPointer({
230
+ sourceElement: source.element,
231
+ input: location.current.input,
232
+ }),
233
+ render: function render({ container }) {
234
+ /* ... */
235
+ },
236
+ nativeSetDragImage,
237
+ });
238
+ },
239
+ });
240
+ ```
225
241
 
226
242
  ## 0.21.0
227
243
 
228
244
  ### Minor Changes
229
245
 
230
- - [#38525](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/38525)
231
- [`de7463c7096`](https://bitbucket.org/atlassian/atlassian-frontend/commits/de7463c7096) -
232
- Exposing some additional TypeScript types. These can be helpful when creating helper packages.
246
+ - [#38525](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/38525)
247
+ [`de7463c7096`](https://bitbucket.org/atlassian/atlassian-frontend/commits/de7463c7096) - Exposing
248
+ some additional TypeScript types. These can be helpful when creating helper packages.
233
249
 
234
- ```ts
235
- import type {
236
- // These types are not needed for consumers
237
- // They are mostly helpful for other packages
238
- AllDragTypes,
239
- MonitorArgs,
240
- BaseEventPayload,
241
- } from '@atlaskit/pragmatic-drag-and-drop/types';
242
- ```
250
+ ```ts
251
+ import type {
252
+ // These types are not needed for consumers
253
+ // They are mostly helpful for other packages
254
+ AllDragTypes,
255
+ MonitorArgs,
256
+ BaseEventPayload,
257
+ } from '@atlaskit/pragmatic-drag-and-drop/types';
258
+ ```
243
259
 
244
- - `AllDragTypes`: representation of all entities types in the system (eg element and file)
245
- - `MonitorArgs<DragType extends AllDragTypes>`: the arguments that can be passed to a monitor
246
- - `BaseEventPayload<DragType extends AllDragTypes>`: the shared properties in all events
260
+ - `AllDragTypes`: representation of all entities types in the system (eg element and file)
261
+ - `MonitorArgs<DragType extends AllDragTypes>`: the arguments that can be passed to a monitor
262
+ - `BaseEventPayload<DragType extends AllDragTypes>`: the shared properties in all events
247
263
 
248
264
  ## 0.20.0
249
265
 
250
266
  ### Minor Changes
251
267
 
252
- - [#38453](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/38453)
253
- [`554a6d8cc34`](https://bitbucket.org/atlassian/atlassian-frontend/commits/554a6d8cc34) - ###
254
- Stickiness algorithm improvement
268
+ - [#38453](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/38453)
269
+ [`554a6d8cc34`](https://bitbucket.org/atlassian/atlassian-frontend/commits/554a6d8cc34) - ###
270
+ Stickiness algorithm improvement
255
271
 
256
- We have made some improvements to the drop target stickiness algorithm to allow sticky drop
257
- targets that are no longer dragged over to cancel their stickiness.
272
+ We have made some improvements to the drop target stickiness algorithm to allow sticky drop
273
+ targets that are no longer dragged over to cancel their stickiness.
258
274
 
259
- Stickiness is no longer maintained when a sticky drop target states it cannot be dropped on
275
+ Stickiness is no longer maintained when a sticky drop target states it cannot be dropped on
260
276
 
261
- > Scenario: `[A(sticky)]` → `[]` + `A:canDrop()` returns `false` Result: `[]`
277
+ > Scenario: `[A(sticky)]` → `[]` + `A:canDrop()` returns `false` Result: `[]`
262
278
 
263
- Stickiness is no longer maintained when a sticky drop start states it is no longer sticky
279
+ Stickiness is no longer maintained when a sticky drop start states it is no longer sticky
264
280
 
265
- > Scenario: `[A(sticky)]` → `[]` + `A:getIsSticky()` returns `false` Result: `[]`
281
+ > Scenario: `[A(sticky)]` → `[]` + `A:getIsSticky()` returns `false` Result: `[]`
266
282
 
267
- Stickiness is no longer maintained when a sticky drop start is unmounted
283
+ Stickiness is no longer maintained when a sticky drop start is unmounted
268
284
 
269
- > Scenario: `[A(sticky)]` → `[]` + `A` is unmounted Result: `[]`
285
+ > Scenario: `[A(sticky)]` → `[]` + `A` is unmounted Result: `[]`
270
286
 
271
- To help facilitate this change:
287
+ To help facilitate this change:
272
288
 
273
- - `getIsSticky()` is now only called when an _drop target_ is a potential candidate for
274
- stickiness (previously it was called repeatedly)
275
- - `getIsSticky()` and `canDrop()` are called on _drop targets_ that are no longer being
276
- dragged over, but are candidates for stickiness
289
+ - `getIsSticky()` is now only called when an _drop target_ is a potential candidate for stickiness
290
+ (previously it was called repeatedly)
291
+ - `getIsSticky()` and `canDrop()` are called on _drop targets_ that are no longer being dragged
292
+ over, but are candidates for stickiness
277
293
 
278
- ### Change to `DropTargetRecord` `type`
294
+ ### Change to `DropTargetRecord` `type`
279
295
 
280
- Previously, the `DropTargetRecord` type had a property called `sticky` which would represent
281
- whether the _drop target_ was registering itself as sticky via `getIsSticky()`. Knowing `sticky`
282
- is not overly helpful given that we now regularly recompute stickiness and a _drop target_ can
283
- change disable stickiness after it is applied.
296
+ Previously, the `DropTargetRecord` type had a property called `sticky` which would represent
297
+ whether the _drop target_ was registering itself as sticky via `getIsSticky()`. Knowing `sticky`
298
+ is not overly helpful given that we now regularly recompute stickiness and a _drop target_ can
299
+ change disable stickiness after it is applied.
284
300
 
285
- What is helpful, is knowing whether a _drop target_ is active _because_ of stickiness. So we
286
- have removed `sticky` and added `isActiveDueToStickiness` to the `DropTargetRecord` type.
301
+ What is helpful, is knowing whether a _drop target_ is active _because_ of stickiness. So we have
302
+ removed `sticky` and added `isActiveDueToStickiness` to the `DropTargetRecord` type.
287
303
 
288
- ```diff
289
- type DropTargetRecord = {
290
- element: Element;
291
- data: Record<string | symbol, unknown>;
292
- dropEffect: DataTransfer['dropEffect'];
293
- - sticky: boolean;
294
- + isActiveDueToStickiness: boolean;
295
- };
296
- ```
304
+ ```diff
305
+ type DropTargetRecord = {
306
+ element: Element;
307
+ data: Record<string | symbol, unknown>;
308
+ dropEffect: DataTransfer['dropEffect'];
309
+ - sticky: boolean;
310
+ + isActiveDueToStickiness: boolean;
311
+ };
312
+ ```
297
313
 
298
314
  ## 0.19.0
299
315
 
300
316
  ### Minor Changes
301
317
 
302
- - [#35574](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/35574)
303
- [`8c301a251e4`](https://bitbucket.org/atlassian/atlassian-frontend/commits/8c301a251e4) - We
304
- have changed the API of `setCustomNativeDragPreview()` to allow increased control and slightly
305
- lower bundles as well.
306
-
307
- We have removed the `placement` argument, and replaced it with `getOffset()`.
308
-
309
- ```diff
310
- - placement: { type: 'center' } | { type: 'offset-from-pointer'; x: CSSValue; y: CSSValue };
311
- + getOffset: (args: { container: HTMLElement }) => {x: number, y: number}
312
- ```
313
-
314
- `getOffset()` allows unlimited control over how to place the custom native drag preview relative
315
- to the users pointer. Please see our updated documentation for detailed information about the
316
- new `getOffset()` API. Our new `getOffset()` approach means that we also no longer need to bake
317
- in all `placement` options into the bundle - consumers now only pay for what they use!
318
-
319
- `placement: { type: 'offset-from-pointer' }` has been replaced by `offsetFromPointer()`
320
-
321
- ```diff
322
- import { setCustomNativeDragPreview } from '@atlaskit/pragmatic-drag-and-drop/util/set-custom-native-drag-preview';
323
- + import { offsetFromPointer } from '@atlaskit/pragmatic-drag-and-drop/util/offset-from-pointer;
324
-
325
- draggable({
326
- element: myElement,
327
- onGenerateDragPreview: ({ nativeSetDragImage }) => {
328
- setCustomNativeDragPreview({
329
- - placement: { type: 'offset-from-pointer', x: '16px', y: '8px' }
330
- + getOffset: offsetFromPointer({x: '16px', y: '8px'}),
331
- render: function render({ container }) {
332
- ReactDOM.render(<Preview item={item} />, container);
333
- return function cleanup() {
334
- ReactDOM.unmountComponentAtNode(container);
335
- };
336
- },
337
- nativeSetDragImage,
338
- });
339
- },
340
- });
341
- ```
342
-
343
- `placement: { type: 'center' }` has been replaced by `centerUnderPointer()`
344
-
345
- ```diff
346
- import { setCustomNativeDragPreview } from '@atlaskit/pragmatic-drag-and-drop/util/set-custom-native-drag-preview';
347
- + import { centerUnderPointer } from '@atlaskit/pragmatic-drag-and-drop/util/center-under-pointer-pointer;
348
-
349
- draggable({
350
- element: myElement,
351
- onGenerateDragPreview: ({ nativeSetDragImage }) => {
352
- setCustomNativeDragPreview({
353
- - placement: { type: 'center' }
354
- + getOffset: centerUnderPointer,
355
- render: function render({ container }) {
356
- ReactDOM.render(<Preview item={item} />, container);
357
- return function cleanup() {
358
- ReactDOM.unmountComponentAtNode(container);
359
- };
360
- },
361
- nativeSetDragImage,
362
- });
363
- },
364
- });
365
- ```
318
+ - [#35574](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/35574)
319
+ [`8c301a251e4`](https://bitbucket.org/atlassian/atlassian-frontend/commits/8c301a251e4) - We have
320
+ changed the API of `setCustomNativeDragPreview()` to allow increased control and slightly lower
321
+ bundles as well.
322
+
323
+ We have removed the `placement` argument, and replaced it with `getOffset()`.
324
+
325
+ ```diff
326
+ - placement: { type: 'center' } | { type: 'offset-from-pointer'; x: CSSValue; y: CSSValue };
327
+ + getOffset: (args: { container: HTMLElement }) => {x: number, y: number}
328
+ ```
329
+
330
+ `getOffset()` allows unlimited control over how to place the custom native drag preview relative
331
+ to the users pointer. Please see our updated documentation for detailed information about the new
332
+ `getOffset()` API. Our new `getOffset()` approach means that we also no longer need to bake in all
333
+ `placement` options into the bundle - consumers now only pay for what they use!
334
+
335
+ `placement: { type: 'offset-from-pointer' }` has been replaced by `offsetFromPointer()`
336
+
337
+ ```diff
338
+ import { setCustomNativeDragPreview } from '@atlaskit/pragmatic-drag-and-drop/util/set-custom-native-drag-preview';
339
+ + import { offsetFromPointer } from '@atlaskit/pragmatic-drag-and-drop/util/offset-from-pointer;
340
+
341
+ draggable({
342
+ element: myElement,
343
+ onGenerateDragPreview: ({ nativeSetDragImage }) => {
344
+ setCustomNativeDragPreview({
345
+ - placement: { type: 'offset-from-pointer', x: '16px', y: '8px' }
346
+ + getOffset: offsetFromPointer({x: '16px', y: '8px'}),
347
+ render: function render({ container }) {
348
+ ReactDOM.render(<Preview item={item} />, container);
349
+ return function cleanup() {
350
+ ReactDOM.unmountComponentAtNode(container);
351
+ };
352
+ },
353
+ nativeSetDragImage,
354
+ });
355
+ },
356
+ });
357
+ ```
358
+
359
+ `placement: { type: 'center' }` has been replaced by `centerUnderPointer()`
360
+
361
+ ```diff
362
+ import { setCustomNativeDragPreview } from '@atlaskit/pragmatic-drag-and-drop/util/set-custom-native-drag-preview';
363
+ + import { centerUnderPointer } from '@atlaskit/pragmatic-drag-and-drop/util/center-under-pointer-pointer;
364
+
365
+ draggable({
366
+ element: myElement,
367
+ onGenerateDragPreview: ({ nativeSetDragImage }) => {
368
+ setCustomNativeDragPreview({
369
+ - placement: { type: 'center' }
370
+ + getOffset: centerUnderPointer,
371
+ render: function render({ container }) {
372
+ ReactDOM.render(<Preview item={item} />, container);
373
+ return function cleanup() {
374
+ ReactDOM.unmountComponentAtNode(container);
375
+ };
376
+ },
377
+ nativeSetDragImage,
378
+ });
379
+ },
380
+ });
381
+ ```
366
382
 
367
383
  ## 0.18.2
368
384
 
369
385
  ### Patch Changes
370
386
 
371
- - [#33793](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/33793)
372
- [`9d00501a414`](https://bitbucket.org/atlassian/atlassian-frontend/commits/9d00501a414) - Ensure
373
- legacy types are published for TS 4.5-4.8
387
+ - [#33793](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/33793)
388
+ [`9d00501a414`](https://bitbucket.org/atlassian/atlassian-frontend/commits/9d00501a414) - Ensure
389
+ legacy types are published for TS 4.5-4.8
374
390
 
375
391
  ## 0.18.1
376
392
 
377
393
  ### Patch Changes
378
394
 
379
- - [#33649](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/33649)
380
- [`41fae2c6f68`](https://bitbucket.org/atlassian/atlassian-frontend/commits/41fae2c6f68) -
381
- Upgrade Typescript from `4.5.5` to `4.9.5`
395
+ - [#33649](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/33649)
396
+ [`41fae2c6f68`](https://bitbucket.org/atlassian/atlassian-frontend/commits/41fae2c6f68) - Upgrade
397
+ Typescript from `4.5.5` to `4.9.5`
382
398
 
383
399
  ## 0.18.0
384
400
 
385
401
  ### Minor Changes
386
402
 
387
- - [#33344](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/33344)
388
- [`9fd8556db17`](https://bitbucket.org/atlassian/atlassian-frontend/commits/9fd8556db17) -
389
- Internal folder name structure change
403
+ - [#33344](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/33344)
404
+ [`9fd8556db17`](https://bitbucket.org/atlassian/atlassian-frontend/commits/9fd8556db17) - Internal
405
+ folder name structure change
390
406
 
391
407
  ## 0.17.0
392
408
 
393
409
  ### Minor Changes
394
410
 
395
- - [#33262](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/33262)
396
- [`34ed7b2ec63`](https://bitbucket.org/atlassian/atlassian-frontend/commits/34ed7b2ec63) - We
397
- have changed the name of our drag and drop packages to align on the single name of "Pragmatic
398
- drag and drop"
411
+ - [#33262](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/33262)
412
+ [`34ed7b2ec63`](https://bitbucket.org/atlassian/atlassian-frontend/commits/34ed7b2ec63) - We have
413
+ changed the name of our drag and drop packages to align on the single name of "Pragmatic drag and
414
+ drop"
399
415
 
400
- ```diff
401
- - @atlaskit/drag-and-drop
402
- + @atlaskit/pragmatic-drag-and-drop
416
+ ```diff
417
+ - @atlaskit/drag-and-drop
418
+ + @atlaskit/pragmatic-drag-and-drop
403
419
 
404
- - @atlaskit/drag-and-drop-autoscroll
405
- + @atlaskit/pragmatic-drag-and-drop-autoscroll
420
+ - @atlaskit/drag-and-drop-autoscroll
421
+ + @atlaskit/pragmatic-drag-and-drop-autoscroll
406
422
 
407
- - @atlaskit/drag-and-drop-hitbox
408
- + @atlaskit/pragmatic-drag-and-drop-hitbox
423
+ - @atlaskit/drag-and-drop-hitbox
424
+ + @atlaskit/pragmatic-drag-and-drop-hitbox
409
425
 
410
- - @atlaskit/drag-and-drop-indicator
411
- + @atlaskit/pragmatic-drag-and-drop-react-indicator
412
- # Note: `react` was added to this package name as our indicator package is designed for usage with `react`.
426
+ - @atlaskit/drag-and-drop-indicator
427
+ + @atlaskit/pragmatic-drag-and-drop-react-indicator
428
+ # Note: `react` was added to this package name as our indicator package is designed for usage with `react`.
413
429
 
414
- - @atlaskit/drag-and-drop-live-region
415
- + @atlaskit/pragmatic-drag-and-drop-live-region
430
+ - @atlaskit/drag-and-drop-live-region
431
+ + @atlaskit/pragmatic-drag-and-drop-live-region
416
432
 
417
- - @atlaskit/drag-and-drop-react-beautiful-dnd-migration
418
- + @atlaskit/pragmatic-drag-and-drop-react-beautiful-dnd-migration
433
+ - @atlaskit/drag-and-drop-react-beautiful-dnd-migration
434
+ + @atlaskit/pragmatic-drag-and-drop-react-beautiful-dnd-migration
419
435
 
420
- - @atlaskit/drag-and-drop-docs
421
- + @atlaskit/pragmatic-drag-and-drop-docs
422
- ```
436
+ - @atlaskit/drag-and-drop-docs
437
+ + @atlaskit/pragmatic-drag-and-drop-docs
438
+ ```
423
439
 
424
- The new `@atlaskit/pragmatic-drag-and-drop*` packages will start their initial versions from
425
- where the ``@atlaskit/drag-and-drop*` packages left off. Doing this will make it easier to look
426
- back on changelogs and see how the packages have progressed.
440
+ The new `@atlaskit/pragmatic-drag-and-drop*` packages will start their initial versions from where
441
+ the ``@atlaskit/drag-and-drop*` packages left off. Doing this will make it easier to look back on
442
+ changelogs and see how the packages have progressed.
427
443
 
428
444
  ## 0.16.0
429
445
 
430
446
  ### Minor Changes
431
447
 
432
- - [#33258](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/33258)
433
- [`56507598609`](https://bitbucket.org/atlassian/atlassian-frontend/commits/56507598609) - Skip
434
- minor dependency bump
448
+ - [#33258](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/33258)
449
+ [`56507598609`](https://bitbucket.org/atlassian/atlassian-frontend/commits/56507598609) - Skip
450
+ minor dependency bump
435
451
 
436
452
  ## 0.15.1
437
453
 
438
454
  ### Patch Changes
439
455
 
440
- - [#32424](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/32424)
441
- [`2e01c9c74b5`](https://bitbucket.org/atlassian/atlassian-frontend/commits/2e01c9c74b5) - DUMMY
442
- remove before merging to master; dupe adf-schema via adf-utils
456
+ - [#32424](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/32424)
457
+ [`2e01c9c74b5`](https://bitbucket.org/atlassian/atlassian-frontend/commits/2e01c9c74b5) - DUMMY
458
+ remove before merging to master; dupe adf-schema via adf-utils
443
459
 
444
460
  ## 0.15.0
445
461
 
446
462
  ### Minor Changes
447
463
 
448
- - [#31909](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/31909)
449
- [`ed028658f13`](https://bitbucket.org/atlassian/atlassian-frontend/commits/ed028658f13) - Minor
450
- internal refactor and adding additional tests
464
+ - [#31909](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/31909)
465
+ [`ed028658f13`](https://bitbucket.org/atlassian/atlassian-frontend/commits/ed028658f13) - Minor
466
+ internal refactor and adding additional tests
451
467
 
452
468
  ## 0.14.0
453
469
 
454
470
  ### Minor Changes
455
471
 
456
- - [#31794](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/31794)
457
- [`eab6d26451d`](https://bitbucket.org/atlassian/atlassian-frontend/commits/eab6d26451d) -
458
- Improving the resilience of our workaround for a
459
- [Browser bug](https://bugs.chromium.org/p/chromium/issues/detail?id=410328) where after a drag
460
- finishes, an unrelated element can be entered into.
461
- - [`ba7ea570aee`](https://bitbucket.org/atlassian/atlassian-frontend/commits/ba7ea570aee) - > Both
462
- of these changes should not impact most consumers as they are targeted at edge cases.
463
-
464
- - **Fix**: We no longer extract user input (eg `clientX`) from native `"dragleave"` events due
465
- to a
466
- [Bug with Chrome we discovered](https://bugs.chromium.org/p/chromium/issues/detail?id=1429937).
467
- Due to this bug, it was possible for `location.current.input` to be incorrectly set in
468
- `onDropTargetChange` and `onDrop` when a user was cancelling a drag or dropping or no drop
469
- targets.
470
-
471
- - **Fix**: `location.previous.dropTargets` _should_ always point to the
472
- `location.current.dropTargets` value from the previous event (exception:
473
- `onGenerateDragPreview` and `onDragStart` have the same `location.previous` and
474
- `location.current` values). Previously, the `location.previous.dropTargets` value did not
475
- match the last events `location.current.dropTargets` value in `onDrop`. `onDrop()` would
476
- incorrectly use the `location.current` and `location.previous` values from the last event
477
- rather than creating a new `location.current` entry. Now, `onDrop()`,
478
- `location.previous.dropTargets` points to the `location.current.dropTargets` from the last
479
- event (same as all other events) and `location.current.dropTargets` points to what the
480
- previous drop target was as well (no change)
472
+ - [#31794](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/31794)
473
+ [`eab6d26451d`](https://bitbucket.org/atlassian/atlassian-frontend/commits/eab6d26451d) -
474
+ Improving the resilience of our workaround for a
475
+ [Browser bug](https://bugs.chromium.org/p/chromium/issues/detail?id=410328) where after a drag
476
+ finishes, an unrelated element can be entered into.
477
+ - [`ba7ea570aee`](https://bitbucket.org/atlassian/atlassian-frontend/commits/ba7ea570aee) - > Both
478
+ of these changes should not impact most consumers as they are targeted at edge cases.
479
+
480
+ - **Fix**: We no longer extract user input (eg `clientX`) from native `"dragleave"` events due to
481
+ a
482
+ [Bug with Chrome we discovered](https://bugs.chromium.org/p/chromium/issues/detail?id=1429937).
483
+ Due to this bug, it was possible for `location.current.input` to be incorrectly set in
484
+ `onDropTargetChange` and `onDrop` when a user was cancelling a drag or dropping or no drop
485
+ targets.
486
+
487
+ - **Fix**: `location.previous.dropTargets` _should_ always point to the
488
+ `location.current.dropTargets` value from the previous event (exception: `onGenerateDragPreview`
489
+ and `onDragStart` have the same `location.previous` and `location.current` values). Previously,
490
+ the `location.previous.dropTargets` value did not match the last events
491
+ `location.current.dropTargets` value in `onDrop`. `onDrop()` would incorrectly use the
492
+ `location.current` and `location.previous` values from the last event rather than creating a new
493
+ `location.current` entry. Now, `onDrop()`, `location.previous.dropTargets` points to the
494
+ `location.current.dropTargets` from the last event (same as all other events) and
495
+ `location.current.dropTargets` points to what the previous drop target was as well (no change)
481
496
 
482
497
  ## 0.13.0
483
498
 
484
499
  ### Minor Changes
485
500
 
486
- - [#30879](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/30879)
487
- [`2582df26509`](https://bitbucket.org/atlassian/atlassian-frontend/commits/2582df26509) - Fixing
488
- a browser bug where after a drag finishes, a unrelated element can be entered into by the
489
- browser
501
+ - [#30879](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/30879)
502
+ [`2582df26509`](https://bitbucket.org/atlassian/atlassian-frontend/commits/2582df26509) - Fixing a
503
+ browser bug where after a drag finishes, a unrelated element can be entered into by the browser
490
504
 
491
- - [Visual explanation of bug](https://twitter.com/alexandereardon/status/1633614212873465856)
492
- - [Chrome bug](https://bugs.chromium.org/p/chromium/issues/detail?id=410328)
505
+ - [Visual explanation of bug](https://twitter.com/alexandereardon/status/1633614212873465856)
506
+ - [Chrome bug](https://bugs.chromium.org/p/chromium/issues/detail?id=410328)
493
507
 
494
508
  ## 0.12.0
495
509
 
496
510
  ### Minor Changes
497
511
 
498
- - [#30953](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/30953)
499
- [`90901f5bbe0`](https://bitbucket.org/atlassian/atlassian-frontend/commits/90901f5bbe0) -
500
- Replace default entry point of `undefined` with `{}`.
512
+ - [#30953](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/30953)
513
+ [`90901f5bbe0`](https://bitbucket.org/atlassian/atlassian-frontend/commits/90901f5bbe0) - Replace
514
+ default entry point of `undefined` with `{}`.
501
515
 
502
- > **NOTE:** Importing from the default entry point isn't supported. _Please use individual entry
503
- > points in order to always obtain minimum kbs._
516
+ > **NOTE:** Importing from the default entry point isn't supported. _Please use individual entry
517
+ > points in order to always obtain minimum kbs._
504
518
 
505
519
  ## 0.11.0
506
520
 
507
521
  ### Minor Changes
508
522
 
509
- - [#30668](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/30668)
510
- [`1ecbb19d450`](https://bitbucket.org/atlassian/atlassian-frontend/commits/1ecbb19d450) - Adding
511
- a new function to make creating _custom_ native drag previews safe and easy:
512
- `setCustomNativeDragPreview`
513
-
514
- ```tsx
515
- import { setCustomNativeDragPreview } from '@atlaskit/drag-and-drop/util/set-custom-native-drag-preview';
516
-
517
- draggable({
518
- element: myElement,
519
- onGenerateDragPreview: ({ nativeSetDragImage }) => {
520
- setCustomNativeDragPreview({
521
- render: function render({ container }) {
522
- ReactDOM.render(<Preview item={item} />, container);
523
- return function cleanup() {
524
- ReactDOM.unmountComponentAtNode(container);
525
- };
526
- },
527
- nativeSetDragImage,
528
- });
529
- },
530
- });
531
- ```
532
-
533
- Please see our element adapter documentation for more detailed usage information
523
+ - [#30668](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/30668)
524
+ [`1ecbb19d450`](https://bitbucket.org/atlassian/atlassian-frontend/commits/1ecbb19d450) - Adding a
525
+ new function to make creating _custom_ native drag previews safe and easy:
526
+ `setCustomNativeDragPreview`
527
+
528
+ ```tsx
529
+ import { setCustomNativeDragPreview } from '@atlaskit/drag-and-drop/util/set-custom-native-drag-preview';
530
+
531
+ draggable({
532
+ element: myElement,
533
+ onGenerateDragPreview: ({ nativeSetDragImage }) => {
534
+ setCustomNativeDragPreview({
535
+ render: function render({ container }) {
536
+ ReactDOM.render(<Preview item={item} />, container);
537
+ return function cleanup() {
538
+ ReactDOM.unmountComponentAtNode(container);
539
+ };
540
+ },
541
+ nativeSetDragImage,
542
+ });
543
+ },
544
+ });
545
+ ```
546
+
547
+ Please see our element adapter documentation for more detailed usage information
534
548
 
535
549
  ## 0.10.0
536
550
 
537
551
  ### Minor Changes
538
552
 
539
- - [#29951](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/29951)
540
- [`9c0975e2fab`](https://bitbucket.org/atlassian/atlassian-frontend/commits/9c0975e2fab) - Bug
541
- fix: A _monitor_ should not be called after it is removed. Previously, if a _monitor_
542
- (monitor 1) removed another _monitor_ (monitor 2) for the same event, then the second monitor
543
- (monitor 2) would still be called. This has been fixed
544
-
545
- ```ts
546
- const cleanupMonitor1 = monitorForElements({
547
- onDragStart: () => {
548
- cleanupMonitor2();
549
- },
550
- });
551
- const cleanupMonitor2 = monitorForElements({
552
- // Previously this `onDragStart` would have been called during `onDragStart` even though it was unbound by the first monitor
553
- onDragStart: () => {},
554
- });
555
- ```
553
+ - [#29951](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/29951)
554
+ [`9c0975e2fab`](https://bitbucket.org/atlassian/atlassian-frontend/commits/9c0975e2fab) - Bug fix:
555
+ A _monitor_ should not be called after it is removed. Previously, if a _monitor_ (monitor 1)
556
+ removed another _monitor_ (monitor 2) for the same event, then the second monitor (monitor 2)
557
+ would still be called. This has been fixed
558
+
559
+ ```ts
560
+ const cleanupMonitor1 = monitorForElements({
561
+ onDragStart: () => {
562
+ cleanupMonitor2();
563
+ },
564
+ });
565
+ const cleanupMonitor2 = monitorForElements({
566
+ // Previously this `onDragStart` would have been called during `onDragStart` even though it was unbound by the first monitor
567
+ onDragStart: () => {},
568
+ });
569
+ ```
556
570
 
557
571
  ## 0.9.0
558
572
 
559
573
  ### Minor Changes
560
574
 
561
- - [#29651](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/29651)
562
- [`03e0aa5ae85`](https://bitbucket.org/atlassian/atlassian-frontend/commits/03e0aa5ae85) -
563
- `@atlaskit/drag-and-drop` adds event listeners to the `window` during a drag operation. These
564
- drag operation event listeners were [`bubble` phase event listeners](https://domevents.dev/),
565
- but they are now `capture` phase event listeners to be more resliant against external code
566
- (incorrectly) stopping events.
575
+ - [#29651](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/29651)
576
+ [`03e0aa5ae85`](https://bitbucket.org/atlassian/atlassian-frontend/commits/03e0aa5ae85) -
577
+ `@atlaskit/drag-and-drop` adds event listeners to the `window` during a drag operation. These drag
578
+ operation event listeners were [`bubble` phase event listeners](https://domevents.dev/), but they
579
+ are now `capture` phase event listeners to be more resliant against external code (incorrectly)
580
+ stopping events.
567
581
 
568
- This does not impact the ability of a consumer to have their own `draggable`s on a page not
569
- controlled by `@atlaskit/drag-and-drop`
582
+ This does not impact the ability of a consumer to have their own `draggable`s on a page not
583
+ controlled by `@atlaskit/drag-and-drop`
570
584
 
571
585
  ## 0.8.1
572
586
 
573
587
  ### Patch Changes
574
588
 
575
- - [#28324](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/28324)
576
- [`6455cf006b3`](https://bitbucket.org/atlassian/atlassian-frontend/commits/6455cf006b3) - Builds
577
- for this package now pass through a tokens babel plugin, removing runtime invocations of the
578
- tokens() function and improving performance.
589
+ - [#28324](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/28324)
590
+ [`6455cf006b3`](https://bitbucket.org/atlassian/atlassian-frontend/commits/6455cf006b3) - Builds
591
+ for this package now pass through a tokens babel plugin, removing runtime invocations of the
592
+ tokens() function and improving performance.
579
593
 
580
594
  ## 0.8.0
581
595
 
582
596
  ### Minor Changes
583
597
 
584
- - [#26317](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/26317)
585
- [`1e3f9743e57`](https://bitbucket.org/atlassian/atlassian-frontend/commits/1e3f9743e57) - A
586
- _monitor_ that is added during an event (eg `onDragStart`) will no longer be called for the
587
- current event. This is to prevent the accidental creation of infinite loops. This behaviour
588
- matches native [`EventTargets`](https://developer.mozilla.org/en-US/docs/Web/API/EventTarget)
589
- where an event listener cannot add another event listener during an active event to the same
590
- event target in the same event phase.
598
+ - [#26317](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/26317)
599
+ [`1e3f9743e57`](https://bitbucket.org/atlassian/atlassian-frontend/commits/1e3f9743e57) - A
600
+ _monitor_ that is added during an event (eg `onDragStart`) will no longer be called for the
601
+ current event. This is to prevent the accidental creation of infinite loops. This behaviour
602
+ matches native [`EventTargets`](https://developer.mozilla.org/en-US/docs/Web/API/EventTarget)
603
+ where an event listener cannot add another event listener during an active event to the same event
604
+ target in the same event phase.
591
605
 
592
606
  ## 0.7.1
593
607
 
594
608
  ### Patch Changes
595
609
 
596
- - [#24874](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/24874)
597
- [`8cc2f888c83`](https://bitbucket.org/atlassian/atlassian-frontend/commits/8cc2f888c83) -
598
- Upgrade Typescript from `4.3.5` to `4.5.5`
610
+ - [#24874](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/24874)
611
+ [`8cc2f888c83`](https://bitbucket.org/atlassian/atlassian-frontend/commits/8cc2f888c83) - Upgrade
612
+ Typescript from `4.3.5` to `4.5.5`
599
613
 
600
614
  ## 0.7.0
601
615
 
602
616
  ### Minor Changes
603
617
 
604
- - [#25428](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/25428)
605
- [`f2a7931d609`](https://bitbucket.org/atlassian/atlassian-frontend/commits/f2a7931d609) - Adding
606
- jsdoc to DragLocation type for better autocomplete
618
+ - [#25428](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/25428)
619
+ [`f2a7931d609`](https://bitbucket.org/atlassian/atlassian-frontend/commits/f2a7931d609) - Adding
620
+ jsdoc to DragLocation type for better autocomplete
607
621
 
608
622
  ## 0.6.0
609
623
 
610
624
  ### Minor Changes
611
625
 
612
- - [#25002](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/25002)
613
- [`0f755214ee7`](https://bitbucket.org/atlassian/atlassian-frontend/commits/0f755214ee7) -
614
- Internal folder renaming. No API impact
626
+ - [#25002](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/25002)
627
+ [`0f755214ee7`](https://bitbucket.org/atlassian/atlassian-frontend/commits/0f755214ee7) - Internal
628
+ folder renaming. No API impact
615
629
 
616
630
  ## 0.5.0
617
631
 
618
632
  ### Minor Changes
619
633
 
620
- - [#25007](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/25007)
621
- [`17950433a70`](https://bitbucket.org/atlassian/atlassian-frontend/commits/17950433a70) -
622
- Touching package to release re-release previous version. The previous (now deprecated) version
623
- did not have it's entry points built correctly
634
+ - [#25007](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/25007)
635
+ [`17950433a70`](https://bitbucket.org/atlassian/atlassian-frontend/commits/17950433a70) - Touching
636
+ package to release re-release previous version. The previous (now deprecated) version did not have
637
+ it's entry points built correctly
624
638
 
625
639
  ## 0.4.0
626
640
 
627
641
  ### Minor Changes
628
642
 
629
- - [#24861](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/24861)
630
- [`4d739042b04`](https://bitbucket.org/atlassian/atlassian-frontend/commits/4d739042b04) -
631
- Improving jsdoc auto complete information for `GetFeedbackArgs`
643
+ - [#24861](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/24861)
644
+ [`4d739042b04`](https://bitbucket.org/atlassian/atlassian-frontend/commits/4d739042b04) -
645
+ Improving jsdoc auto complete information for `GetFeedbackArgs`
632
646
 
633
647
  ## 0.3.0
634
648
 
635
649
  ### Minor Changes
636
650
 
637
- - [#24810](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/24810)
638
- [`52403a2c11f`](https://bitbucket.org/atlassian/atlassian-frontend/commits/52403a2c11f) - Adding
639
- a `canMonitor()` function to _monitors_ to allow a _monitor_ to conditionally apply to a drag
640
- operation.
651
+ - [#24810](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/24810)
652
+ [`52403a2c11f`](https://bitbucket.org/atlassian/atlassian-frontend/commits/52403a2c11f) - Adding a
653
+ `canMonitor()` function to _monitors_ to allow a _monitor_ to conditionally apply to a drag
654
+ operation.
641
655
 
642
- ```ts
643
- monitorForElements({
644
- canMonitor: ({ source }) => source.data.type === 'card',
645
- onDragStart: () => console.log('I will only be activated when dragging a card!'),
646
- });
647
- ```
656
+ ```ts
657
+ monitorForElements({
658
+ canMonitor: ({ source }) => source.data.type === 'card',
659
+ onDragStart: () => console.log('I will only be activated when dragging a card!'),
660
+ });
661
+ ```
648
662
 
649
663
  ## 0.2.0
650
664
 
651
665
  ### Minor Changes
652
666
 
653
- - [#24613](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/24613)
654
- [`1cf9e484b4b`](https://bitbucket.org/atlassian/atlassian-frontend/commits/1cf9e484b4b) - We
655
- have improved our naming consistency across our drag and drop packages.
667
+ - [#24613](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/24613)
668
+ [`1cf9e484b4b`](https://bitbucket.org/atlassian/atlassian-frontend/commits/1cf9e484b4b) - We have
669
+ improved our naming consistency across our drag and drop packages.
656
670
 
657
- - `@atlaskit/drag-and-drop/util/cancel-unhandled` has been renamed to
658
- `@atlaskit/drag-and-drop/addon/cancel-unhandled`
671
+ - `@atlaskit/drag-and-drop/util/cancel-unhandled` has been renamed to
672
+ `@atlaskit/drag-and-drop/addon/cancel-unhandled`
659
673
 
660
674
  ## 0.1.0
661
675
 
662
676
  ### Minor Changes
663
677
 
664
- - [#24532](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/24532)
665
- [`73427c38077`](https://bitbucket.org/atlassian/atlassian-frontend/commits/73427c38077) -
666
- Initial release of `@atlaskit/drag-and-drop` packages 🎉
678
+ - [#24532](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/24532)
679
+ [`73427c38077`](https://bitbucket.org/atlassian/atlassian-frontend/commits/73427c38077) - Initial
680
+ release of `@atlaskit/drag-and-drop` packages 🎉
667
681
 
668
682
  ## 0.0.1
669
683
 
670
684
  ### Patch Changes
671
685
 
672
- - [#24492](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/24492)
673
- [`8d4228767b0`](https://bitbucket.org/atlassian/atlassian-frontend/commits/8d4228767b0) -
674
- Upgrade Typescript from `4.2.4` to `4.3.5`.
686
+ - [#24492](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/24492)
687
+ [`8d4228767b0`](https://bitbucket.org/atlassian/atlassian-frontend/commits/8d4228767b0) - Upgrade
688
+ Typescript from `4.2.4` to `4.3.5`.