| 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
 | | import Emitter from '../../mixins/emitter'; |  | import handleEscapeMixin from './handleEscapeMixin'; |  | import {getTouches} from './utils'; |  | import { on, off } from '../../utils/dom'; |  |   |  | export default { |  |     mixins: [Emitter, handleEscapeMixin], |  |   |  |     props: { |  |         focused: { |  |             type: Boolean, |  |             default: false, |  |         }, |  |         value: { |  |             type: Object, |  |             default: undefined, |  |         }, |  |     }, |  |   |  |     beforeDestroy() { |  |         this.unbindEventListeners(); |  |     }, |  |   |  |     created() { |  |         if (this.focused) { |  |             setTimeout(() => this.$el.focus(), 1); |  |         } |  |     }, |  |   |  |     methods: { |  |         handleLeft(e) { |  |             this.handleSlide(e, this.left, 'left'); |  |         }, |  |         handleRight(e) { |  |             this.handleSlide(e, this.right, 'right'); |  |         }, |  |         handleUp(e) { |  |             this.handleSlide(e, this.up, 'up'); |  |         }, |  |         handleDown(e) { |  |             this.handleSlide(e, this.down, 'down'); |  |         }, |  |         handleMouseDown(e) { |  |             this.dispatch('ColorPicker', 'on-dragging', true); |  |             this.handleChange(e, true); |  |             // window.addEventListener('mousemove', this.handleChange, false); |  |             // window.addEventListener('mouseup', this.handleMouseUp, false); |  |             on(window, 'mousemove', this.handleChange); |  |             on(window, 'mouseup', this.handleMouseUp); |  |         }, |  |         handleMouseUp() { |  |             this.unbindEventListeners(); |  |         }, |  |         unbindEventListeners() { |  |             // window.removeEventListener('mousemove', this.handleChange); |  |             // window.removeEventListener('mouseup', this.handleMouseUp); |  |             off(window, 'mousemove', this.handleChange); |  |             off(window, 'mouseup', this.handleMouseUp); |  |             // This timeout is required so that the click handler for click-outside |  |             // has the chance to run before the mouseup removes the dragging flag. |  |             setTimeout(() => this.dispatch('ColorPicker', 'on-dragging', false), 1); |  |         }, |  |         getLeft(e) { |  |             const {container} = this.$refs; |  |             const xOffset = container.getBoundingClientRect().left + window.pageXOffset; |  |             const pageX = e.pageX || getTouches(e, 'PageX'); |  |   |  |             return pageX - xOffset; |  |         }, |  |         getTop(e) { |  |             const {container} = this.$refs; |  |             const yOffset = container.getBoundingClientRect().top + window.pageYOffset; |  |             const pageY = e.pageY || getTouches(e, 'PageY'); |  |   |  |             return pageY - yOffset; |  |         }, |  |     }, |  | }; | 
 |