custom-electron-titlebar 3.2.6 → 3.2.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 (239) hide show
  1. package/.github/FUNDING.yml +1 -0
  2. package/README.md +15 -24
  3. package/_config.yml +1 -0
  4. package/{lib → build}/browser/browser.d.ts +0 -0
  5. package/{lib → build}/browser/browser.js +0 -0
  6. package/{lib → build}/browser/browser.js.map +0 -0
  7. package/{lib → build}/browser/event.d.ts +0 -0
  8. package/{lib → build}/browser/event.js +2 -1
  9. package/{lib → build}/browser/event.js.map +1 -1
  10. package/{lib → build}/browser/iframe.d.ts +0 -0
  11. package/{lib → build}/browser/iframe.js +0 -0
  12. package/{lib → build}/browser/iframe.js.map +0 -0
  13. package/{lib → build}/browser/keyboardEvent.d.ts +0 -0
  14. package/{lib → build}/browser/keyboardEvent.js +0 -0
  15. package/{lib → build}/browser/keyboardEvent.js.map +0 -0
  16. package/{lib → build}/browser/mouseEvent.d.ts +0 -0
  17. package/{lib → build}/browser/mouseEvent.js +0 -0
  18. package/{lib → build}/browser/mouseEvent.js.map +0 -0
  19. package/{lib → build}/common/arrays.d.ts +0 -0
  20. package/{lib → build}/common/arrays.js +0 -0
  21. package/{lib → build}/common/arrays.js.map +0 -0
  22. package/{lib → build}/common/async.d.ts +0 -0
  23. package/{lib → build}/common/async.js +0 -0
  24. package/{lib → build}/common/async.js.map +0 -0
  25. package/{lib → build}/common/charCode.d.ts +0 -0
  26. package/{lib → build}/common/charCode.js +0 -0
  27. package/{lib → build}/common/charCode.js.map +0 -0
  28. package/{lib → build}/common/color.d.ts +0 -0
  29. package/{lib → build}/common/color.js +0 -0
  30. package/{lib → build}/common/color.js.map +0 -0
  31. package/{lib → build}/common/dom.d.ts +0 -0
  32. package/{lib → build}/common/dom.js +16 -14
  33. package/build/common/dom.js.map +1 -0
  34. package/{lib → build}/common/event.d.ts +0 -0
  35. package/{lib → build}/common/event.js +1 -1
  36. package/build/common/event.js.map +1 -0
  37. package/{lib → build}/common/iterator.d.ts +0 -0
  38. package/{lib → build}/common/iterator.js +0 -0
  39. package/{lib → build}/common/iterator.js.map +0 -0
  40. package/{lib → build}/common/keyCodes.d.ts +0 -0
  41. package/{lib → build}/common/keyCodes.js +0 -0
  42. package/{lib → build}/common/keyCodes.js.map +0 -0
  43. package/{lib → build}/common/lifecycle.d.ts +0 -0
  44. package/{lib → build}/common/lifecycle.js +0 -0
  45. package/{lib → build}/common/lifecycle.js.map +0 -0
  46. package/{lib → build}/common/linkedList.d.ts +0 -0
  47. package/{lib → build}/common/linkedList.js +0 -0
  48. package/{lib → build}/common/linkedList.js.map +0 -0
  49. package/{lib → build}/common/platform.d.ts +0 -0
  50. package/{lib → build}/common/platform.js +0 -0
  51. package/{lib → build}/common/platform.js.map +0 -0
  52. package/{lib → build}/index.d.ts +0 -0
  53. package/{lib → build}/index.js +0 -0
  54. package/{lib → build}/index.js.map +0 -0
  55. package/{lib → build}/menu/menu.d.ts +0 -0
  56. package/{lib → build}/menu/menu.js +38 -38
  57. package/build/menu/menu.js.map +1 -0
  58. package/{lib → build}/menu/menuitem.d.ts +10 -2
  59. package/{lib → build}/menu/menuitem.js +70 -34
  60. package/build/menu/menuitem.js.map +1 -0
  61. package/{lib → build}/menubar.d.ts +0 -0
  62. package/{lib → build}/menubar.js +29 -30
  63. package/build/menubar.js.map +1 -0
  64. package/{lib → build}/themebar.d.ts +0 -0
  65. package/{lib → build}/themebar.js +2 -2
  66. package/build/themebar.js.map +1 -0
  67. package/{lib → build}/titlebar.d.ts +0 -0
  68. package/{lib → build}/titlebar.js +61 -58
  69. package/build/titlebar.js.map +1 -0
  70. package/package.json +13 -7
  71. package/lib/common/dom.js.map +0 -1
  72. package/lib/common/enableNativeMenuCommands.d.ts +0 -1
  73. package/lib/common/enableNativeMenuCommands.js +0 -32
  74. package/lib/common/enableNativeMenuCommands.js.map +0 -1
  75. package/lib/common/event.js.map +0 -1
  76. package/lib/main.d.ts +0 -1
  77. package/lib/main.js +0 -14
  78. package/lib/main.js.map +0 -1
  79. package/lib/menu/menu.js.map +0 -1
  80. package/lib/menu/menuitem.js.map +0 -1
  81. package/lib/menubar.js.map +0 -1
  82. package/lib/themebar.js.map +0 -1
  83. package/lib/titlebar.js.map +0 -1
  84. package/lib/vs/base/browser/browser.js +0 -150
  85. package/lib/vs/base/browser/canIUse.js +0 -58
  86. package/lib/vs/base/browser/codicons.js +0 -37
  87. package/lib/vs/base/browser/contextmenu.js +0 -9
  88. package/lib/vs/base/browser/dnd.js +0 -113
  89. package/lib/vs/base/browser/dom.js +0 -1417
  90. package/lib/vs/base/browser/event.js +0 -36
  91. package/lib/vs/base/browser/fastDomNode.js +0 -265
  92. package/lib/vs/base/browser/formattedTextRenderer.js +0 -248
  93. package/lib/vs/base/browser/globalMouseMoveMonitor.js +0 -137
  94. package/lib/vs/base/browser/history.js +0 -9
  95. package/lib/vs/base/browser/iframe.js +0 -126
  96. package/lib/vs/base/browser/keyboardEvent.js +0 -599
  97. package/lib/vs/base/browser/mouseEvent.js +0 -155
  98. package/lib/vs/base/browser/touch.js +0 -315
  99. package/lib/vs/base/browser/ui/actionbar/actionViewItems.js +0 -397
  100. package/lib/vs/base/browser/ui/actionbar/actionbar.js +0 -583
  101. package/lib/vs/base/browser/ui/checkbox/checkbox.js +0 -251
  102. package/lib/vs/base/browser/ui/codicons/codiconLabel.js +0 -31
  103. package/lib/vs/base/browser/ui/codicons/codiconStyles.js +0 -47
  104. package/lib/vs/base/browser/ui/contextview/contextview.js +0 -367
  105. package/lib/vs/base/browser/ui/dropdown/dropdown.js +0 -256
  106. package/lib/vs/base/browser/ui/dropdown/dropdownActionViewItem.js +0 -120
  107. package/lib/vs/base/browser/ui/keybindingLabel/keybindingLabel.js +0 -118
  108. package/lib/vs/base/browser/ui/list/list.js +0 -54
  109. package/lib/vs/base/browser/ui/list/listPaging.js +0 -322
  110. package/lib/vs/base/browser/ui/list/listView.js +0 -1388
  111. package/lib/vs/base/browser/ui/list/listWidget.js +0 -1709
  112. package/lib/vs/base/browser/ui/list/rangeMap.js +0 -223
  113. package/lib/vs/base/browser/ui/list/rowCache.js +0 -113
  114. package/lib/vs/base/browser/ui/list/splice.js +0 -23
  115. package/lib/vs/base/browser/ui/menu/menu.js +0 -1371
  116. package/lib/vs/base/browser/ui/menu/menubar.js +0 -1139
  117. package/lib/vs/base/browser/ui/scrollbar/abstractScrollbar.js +0 -278
  118. package/lib/vs/base/browser/ui/scrollbar/horizontalScrollbar.js +0 -115
  119. package/lib/vs/base/browser/ui/scrollbar/scrollableElement.js +0 -646
  120. package/lib/vs/base/browser/ui/scrollbar/scrollableElementOptions.js +0 -9
  121. package/lib/vs/base/browser/ui/scrollbar/scrollbarArrow.js +0 -106
  122. package/lib/vs/base/browser/ui/scrollbar/scrollbarState.js +0 -184
  123. package/lib/vs/base/browser/ui/scrollbar/scrollbarVisibilityController.js +0 -116
  124. package/lib/vs/base/browser/ui/scrollbar/verticalScrollbar.js +0 -114
  125. package/lib/vs/base/browser/ui/selectBox/selectBox.js +0 -85
  126. package/lib/vs/base/browser/ui/selectBox/selectBoxCustom.js +0 -985
  127. package/lib/vs/base/browser/ui/selectBox/selectBoxNative.js +0 -188
  128. package/lib/vs/base/browser/ui/toolbar/toolbar.js +0 -206
  129. package/lib/vs/base/browser/ui/widget.js +0 -69
  130. package/lib/vs/base/common/actions.js +0 -224
  131. package/lib/vs/base/common/amd.js +0 -31
  132. package/lib/vs/base/common/arrays.js +0 -641
  133. package/lib/vs/base/common/assert.js +0 -21
  134. package/lib/vs/base/common/async.js +0 -966
  135. package/lib/vs/base/common/buffer.js +0 -250
  136. package/lib/vs/base/common/cache.js +0 -40
  137. package/lib/vs/base/common/cancellation.js +0 -146
  138. package/lib/vs/base/common/charCode.js +0 -9
  139. package/lib/vs/base/common/codicon.js +0 -136
  140. package/lib/vs/base/common/codicons.js +0 -1378
  141. package/lib/vs/base/common/collections.js +0 -133
  142. package/lib/vs/base/common/color.js +0 -716
  143. package/lib/vs/base/common/comparers.js +0 -280
  144. package/lib/vs/base/common/console.js +0 -142
  145. package/lib/vs/base/common/date.js +0 -113
  146. package/lib/vs/base/common/decorators.js +0 -169
  147. package/lib/vs/base/common/errorMessage.js +0 -93
  148. package/lib/vs/base/common/errors.js +0 -213
  149. package/lib/vs/base/common/errorsWithActions.js +0 -28
  150. package/lib/vs/base/common/event.js +0 -873
  151. package/lib/vs/base/common/extpath.js +0 -401
  152. package/lib/vs/base/common/filters.js +0 -948
  153. package/lib/vs/base/common/functional.js +0 -28
  154. package/lib/vs/base/common/fuzzyScorer.js +0 -811
  155. package/lib/vs/base/common/glob.js +0 -696
  156. package/lib/vs/base/common/hash.js +0 -359
  157. package/lib/vs/base/common/history.js +0 -116
  158. package/lib/vs/base/common/htmlContent.js +0 -162
  159. package/lib/vs/base/common/idGenerator.js +0 -25
  160. package/lib/vs/base/common/iterator.js +0 -118
  161. package/lib/vs/base/common/json.js +0 -1624
  162. package/lib/vs/base/common/jsonEdit.js +0 -272
  163. package/lib/vs/base/common/jsonErrorMessages.js +0 -69
  164. package/lib/vs/base/common/jsonFormatter.js +0 -316
  165. package/lib/vs/base/common/jsonSchema.js +0 -9
  166. package/lib/vs/base/common/keyCodes.js +0 -591
  167. package/lib/vs/base/common/keybindingLabels.js +0 -231
  168. package/lib/vs/base/common/keybindingParser.js +0 -142
  169. package/lib/vs/base/common/labels.js +0 -430
  170. package/lib/vs/base/common/lazy.js +0 -71
  171. package/lib/vs/base/common/lifecycle.js +0 -308
  172. package/lib/vs/base/common/linkedList.js +0 -152
  173. package/lib/vs/base/common/linkedText.js +0 -73
  174. package/lib/vs/base/common/map.js +0 -1108
  175. package/lib/vs/base/common/marshalling.js +0 -80
  176. package/lib/vs/base/common/mime.js +0 -321
  177. package/lib/vs/base/common/navigator.js +0 -50
  178. package/lib/vs/base/common/network.js +0 -160
  179. package/lib/vs/base/common/normalization.js +0 -78
  180. package/lib/vs/base/common/numbers.js +0 -55
  181. package/lib/vs/base/common/objects.js +0 -268
  182. package/lib/vs/base/common/paging.js +0 -190
  183. package/lib/vs/base/common/parsers.js +0 -78
  184. package/lib/vs/base/common/path.js +0 -1550
  185. package/lib/vs/base/common/platform.js +0 -245
  186. package/lib/vs/base/common/process.js +0 -52
  187. package/lib/vs/base/common/processes.js +0 -32
  188. package/lib/vs/base/common/range.js +0 -79
  189. package/lib/vs/base/common/resourceTree.js +0 -185
  190. package/lib/vs/base/common/resources.js +0 -421
  191. package/lib/vs/base/common/scanCode.js +0 -1472
  192. package/lib/vs/base/common/scrollable.js +0 -397
  193. package/lib/vs/base/common/search.js +0 -55
  194. package/lib/vs/base/common/sequence.js +0 -64
  195. package/lib/vs/base/common/severity.js +0 -55
  196. package/lib/vs/base/common/skipList.js +0 -234
  197. package/lib/vs/base/common/stopwatch.js +0 -45
  198. package/lib/vs/base/common/stream.js +0 -418
  199. package/lib/vs/base/common/strings.js +0 -1283
  200. package/lib/vs/base/common/styler.js +0 -9
  201. package/lib/vs/base/common/types.js +0 -296
  202. package/lib/vs/base/common/uint.js +0 -46
  203. package/lib/vs/base/common/uri.js +0 -756
  204. package/lib/vs/base/common/uriIpc.js +0 -154
  205. package/lib/vs/base/common/uuid.js +0 -70
  206. package/lib/vs/nls.mock.js +0 -31
  207. package/lib/vs/platform/actions/browser/menuEntryActionViewItem.js +0 -342
  208. package/lib/vs/platform/actions/common/actions.js +0 -456
  209. package/lib/vs/platform/actions/common/menuService.js +0 -194
  210. package/lib/vs/platform/clipboard/browser/clipboardService.js +0 -99
  211. package/lib/vs/platform/clipboard/common/clipboardService.js +0 -14
  212. package/lib/vs/platform/contextkey/common/contextkey.js +0 -1210
  213. package/lib/vs/platform/contextkey/common/contextkeys.js +0 -23
  214. package/lib/vs/platform/contextview/browser/contextView.js +0 -15
  215. package/lib/vs/platform/contextview/browser/contextViewService.js +0 -96
  216. package/lib/vs/platform/environment/common/argv.js +0 -9
  217. package/lib/vs/platform/environment/common/environment.js +0 -15
  218. package/lib/vs/platform/instantiation/common/descriptors.js +0 -25
  219. package/lib/vs/platform/instantiation/common/extensions.js +0 -26
  220. package/lib/vs/platform/instantiation/common/graph.js +0 -93
  221. package/lib/vs/platform/instantiation/common/instantiation.js +0 -84
  222. package/lib/vs/platform/instantiation/common/instantiationService.js +0 -361
  223. package/lib/vs/platform/instantiation/common/serviceCollection.js +0 -39
  224. package/lib/vs/platform/keybinding/common/baseResolvedKeybinding.js +0 -73
  225. package/lib/vs/platform/keybinding/common/keybinding.js +0 -14
  226. package/lib/vs/platform/keybinding/common/keybindingResolver.js +0 -391
  227. package/lib/vs/platform/keybinding/common/keybindingsRegistry.js +0 -229
  228. package/lib/vs/platform/keybinding/common/resolvedKeybindingItem.js +0 -47
  229. package/lib/vs/platform/keybinding/common/usLayoutResolvedKeybinding.js +0 -160
  230. package/lib/vs/platform/layout/browser/layoutService.js +0 -14
  231. package/lib/vs/platform/menubar/common/menubar.js +0 -34
  232. package/lib/vs/platform/registry/common/platform.js +0 -38
  233. package/lib/vs/platform/theme/browser/checkbox.js +0 -32
  234. package/lib/vs/platform/theme/common/colorRegistry.js +0 -1154
  235. package/lib/vs/platform/theme/common/styler.js +0 -290
  236. package/lib/vs/platform/theme/common/theme.js +0 -21
  237. package/lib/vs/platform/theme/common/themeService.js +0 -176
  238. package/lib/vs/platform/theme/common/tokenClassificationRegistry.js +0 -540
  239. package/lib/vs/platform/theme/test/common/testThemeService.js +0 -98
@@ -1,646 +0,0 @@
1
- "use strict";
2
- /*---------------------------------------------------------------------------------------------
3
- * Copyright (c) Microsoft Corporation. All rights reserved.
4
- * Licensed under the MIT License. See License.txt in the project root for license information.
5
- *--------------------------------------------------------------------------------------------*/
6
-
7
- Object.defineProperty(exports, "__esModule", {
8
- value: true
9
- });
10
- exports.DomScrollableElement = exports.SmoothScrollableElement = exports.ScrollableElement = exports.AbstractScrollableElement = exports.MouseWheelClassifier = void 0;
11
-
12
- require("../../../../css!./media/scrollbars");
13
-
14
- const dom = require("../../dom");
15
-
16
- const fastDomNode_1 = require("../../fastDomNode");
17
-
18
- const mouseEvent_1 = require("../../mouseEvent");
19
-
20
- const horizontalScrollbar_1 = require("./horizontalScrollbar");
21
-
22
- const verticalScrollbar_1 = require("./verticalScrollbar");
23
-
24
- const widget_1 = require("../widget");
25
-
26
- const async_1 = require("../../../common/async");
27
-
28
- const event_1 = require("../../../common/event");
29
-
30
- const lifecycle_1 = require("../../../common/lifecycle");
31
-
32
- const platform = require("../../../common/platform");
33
-
34
- const scrollable_1 = require("../../../common/scrollable");
35
-
36
- const browser_1 = require("../../browser");
37
-
38
- const HIDE_TIMEOUT = 500;
39
- const SCROLL_WHEEL_SENSITIVITY = 50;
40
- const SCROLL_WHEEL_SMOOTH_SCROLL_ENABLED = true;
41
-
42
- class MouseWheelClassifierItem {
43
- constructor(timestamp, deltaX, deltaY) {
44
- this.timestamp = timestamp;
45
- this.deltaX = deltaX;
46
- this.deltaY = deltaY;
47
- this.score = 0;
48
- }
49
-
50
- }
51
-
52
- class MouseWheelClassifier {
53
- constructor() {
54
- this._capacity = 5;
55
- this._memory = [];
56
- this._front = -1;
57
- this._rear = -1;
58
- }
59
-
60
- isPhysicalMouseWheel() {
61
- if (this._front === -1 && this._rear === -1) {
62
- // no elements
63
- return false;
64
- } // 0.5 * last + 0.25 * 2nd last + 0.125 * 3rd last + ...
65
-
66
-
67
- let remainingInfluence = 1;
68
- let score = 0;
69
- let iteration = 1;
70
- let index = this._rear;
71
-
72
- do {
73
- const influence = index === this._front ? remainingInfluence : Math.pow(2, -iteration);
74
- remainingInfluence -= influence;
75
- score += this._memory[index].score * influence;
76
-
77
- if (index === this._front) {
78
- break;
79
- }
80
-
81
- index = (this._capacity + index - 1) % this._capacity;
82
- iteration++;
83
- } while (true);
84
-
85
- return score <= 0.5;
86
- }
87
-
88
- accept(timestamp, deltaX, deltaY) {
89
- const item = new MouseWheelClassifierItem(timestamp, deltaX, deltaY);
90
- item.score = this._computeScore(item);
91
-
92
- if (this._front === -1 && this._rear === -1) {
93
- this._memory[0] = item;
94
- this._front = 0;
95
- this._rear = 0;
96
- } else {
97
- this._rear = (this._rear + 1) % this._capacity;
98
-
99
- if (this._rear === this._front) {
100
- // Drop oldest
101
- this._front = (this._front + 1) % this._capacity;
102
- }
103
-
104
- this._memory[this._rear] = item;
105
- }
106
- }
107
- /**
108
- * A score between 0 and 1 for `item`.
109
- * - a score towards 0 indicates that the source appears to be a physical mouse wheel
110
- * - a score towards 1 indicates that the source appears to be a touchpad or magic mouse, etc.
111
- */
112
-
113
-
114
- _computeScore(item) {
115
- if (Math.abs(item.deltaX) > 0 && Math.abs(item.deltaY) > 0) {
116
- // both axes exercised => definitely not a physical mouse wheel
117
- return 1;
118
- }
119
-
120
- let score = 0.5;
121
- const prev = this._front === -1 && this._rear === -1 ? null : this._memory[this._rear];
122
-
123
- if (prev) {// const deltaT = item.timestamp - prev.timestamp;
124
- // if (deltaT < 1000 / 30) {
125
- // // sooner than X times per second => indicator that this is not a physical mouse wheel
126
- // score += 0.25;
127
- // }
128
- // if (item.deltaX === prev.deltaX && item.deltaY === prev.deltaY) {
129
- // // equal amplitude => indicator that this is a physical mouse wheel
130
- // score -= 0.25;
131
- // }
132
- }
133
-
134
- if (!this._isAlmostInt(item.deltaX) || !this._isAlmostInt(item.deltaY)) {
135
- // non-integer deltas => indicator that this is not a physical mouse wheel
136
- score += 0.25;
137
- }
138
-
139
- return Math.min(Math.max(score, 0), 1);
140
- }
141
-
142
- _isAlmostInt(value) {
143
- const delta = Math.abs(Math.round(value) - value);
144
- return delta < 0.01;
145
- }
146
-
147
- }
148
-
149
- exports.MouseWheelClassifier = MouseWheelClassifier;
150
- MouseWheelClassifier.INSTANCE = new MouseWheelClassifier();
151
-
152
- class AbstractScrollableElement extends widget_1.Widget {
153
- constructor(element, options, scrollable) {
154
- super();
155
- this._onScroll = this._register(new event_1.Emitter());
156
- this.onScroll = this._onScroll.event;
157
- this._onWillScroll = this._register(new event_1.Emitter());
158
- this.onWillScroll = this._onWillScroll.event;
159
- element.style.overflow = 'hidden';
160
- this._options = resolveOptions(options);
161
- this._scrollable = scrollable;
162
-
163
- this._register(this._scrollable.onScroll(e => {
164
- this._onWillScroll.fire(e);
165
-
166
- this._onDidScroll(e);
167
-
168
- this._onScroll.fire(e);
169
- }));
170
-
171
- let scrollbarHost = {
172
- onMouseWheel: mouseWheelEvent => this._onMouseWheel(mouseWheelEvent),
173
- onDragStart: () => this._onDragStart(),
174
- onDragEnd: () => this._onDragEnd()
175
- };
176
- this._verticalScrollbar = this._register(new verticalScrollbar_1.VerticalScrollbar(this._scrollable, this._options, scrollbarHost));
177
- this._horizontalScrollbar = this._register(new horizontalScrollbar_1.HorizontalScrollbar(this._scrollable, this._options, scrollbarHost));
178
- this._domNode = document.createElement('div');
179
- this._domNode.className = 'monaco-scrollable-element ' + this._options.className;
180
-
181
- this._domNode.setAttribute('role', 'presentation');
182
-
183
- this._domNode.style.position = 'relative';
184
- this._domNode.style.overflow = 'hidden';
185
-
186
- this._domNode.appendChild(element);
187
-
188
- this._domNode.appendChild(this._horizontalScrollbar.domNode.domNode);
189
-
190
- this._domNode.appendChild(this._verticalScrollbar.domNode.domNode);
191
-
192
- if (this._options.useShadows) {
193
- this._leftShadowDomNode = fastDomNode_1.createFastDomNode(document.createElement('div'));
194
-
195
- this._leftShadowDomNode.setClassName('shadow');
196
-
197
- this._domNode.appendChild(this._leftShadowDomNode.domNode);
198
-
199
- this._topShadowDomNode = fastDomNode_1.createFastDomNode(document.createElement('div'));
200
-
201
- this._topShadowDomNode.setClassName('shadow');
202
-
203
- this._domNode.appendChild(this._topShadowDomNode.domNode);
204
-
205
- this._topLeftShadowDomNode = fastDomNode_1.createFastDomNode(document.createElement('div'));
206
-
207
- this._topLeftShadowDomNode.setClassName('shadow top-left-corner');
208
-
209
- this._domNode.appendChild(this._topLeftShadowDomNode.domNode);
210
- } else {
211
- this._leftShadowDomNode = null;
212
- this._topShadowDomNode = null;
213
- this._topLeftShadowDomNode = null;
214
- }
215
-
216
- this._listenOnDomNode = this._options.listenOnDomNode || this._domNode;
217
- this._mouseWheelToDispose = [];
218
-
219
- this._setListeningToMouseWheel(this._options.handleMouseWheel);
220
-
221
- this.onmouseover(this._listenOnDomNode, e => this._onMouseOver(e));
222
- this.onnonbubblingmouseout(this._listenOnDomNode, e => this._onMouseOut(e));
223
- this._hideTimeout = this._register(new async_1.TimeoutTimer());
224
- this._isDragging = false;
225
- this._mouseIsOver = false;
226
- this._shouldRender = true;
227
- this._revealOnScroll = true;
228
- }
229
-
230
- dispose() {
231
- this._mouseWheelToDispose = lifecycle_1.dispose(this._mouseWheelToDispose);
232
- super.dispose();
233
- }
234
- /**
235
- * Get the generated 'scrollable' dom node
236
- */
237
-
238
-
239
- getDomNode() {
240
- return this._domNode;
241
- }
242
-
243
- getOverviewRulerLayoutInfo() {
244
- return {
245
- parent: this._domNode,
246
- insertBefore: this._verticalScrollbar.domNode.domNode
247
- };
248
- }
249
- /**
250
- * Delegate a mouse down event to the vertical scrollbar.
251
- * This is to help with clicking somewhere else and having the scrollbar react.
252
- */
253
-
254
-
255
- delegateVerticalScrollbarMouseDown(browserEvent) {
256
- this._verticalScrollbar.delegateMouseDown(browserEvent);
257
- }
258
-
259
- getScrollDimensions() {
260
- return this._scrollable.getScrollDimensions();
261
- }
262
-
263
- setScrollDimensions(dimensions) {
264
- this._scrollable.setScrollDimensions(dimensions, false);
265
- }
266
- /**
267
- * Update the class name of the scrollable element.
268
- */
269
-
270
-
271
- updateClassName(newClassName) {
272
- this._options.className = newClassName; // Defaults are different on Macs
273
-
274
- if (platform.isMacintosh) {
275
- this._options.className += ' mac';
276
- }
277
-
278
- this._domNode.className = 'monaco-scrollable-element ' + this._options.className;
279
- }
280
- /**
281
- * Update configuration options for the scrollbar.
282
- * Really this is Editor.IEditorScrollbarOptions, but base shouldn't
283
- * depend on Editor.
284
- */
285
-
286
-
287
- updateOptions(newOptions) {
288
- if (typeof newOptions.handleMouseWheel !== 'undefined') {
289
- this._options.handleMouseWheel = newOptions.handleMouseWheel;
290
-
291
- this._setListeningToMouseWheel(this._options.handleMouseWheel);
292
- }
293
-
294
- if (typeof newOptions.mouseWheelScrollSensitivity !== 'undefined') {
295
- this._options.mouseWheelScrollSensitivity = newOptions.mouseWheelScrollSensitivity;
296
- }
297
-
298
- if (typeof newOptions.fastScrollSensitivity !== 'undefined') {
299
- this._options.fastScrollSensitivity = newOptions.fastScrollSensitivity;
300
- }
301
-
302
- if (typeof newOptions.scrollPredominantAxis !== 'undefined') {
303
- this._options.scrollPredominantAxis = newOptions.scrollPredominantAxis;
304
- }
305
-
306
- if (typeof newOptions.horizontalScrollbarSize !== 'undefined') {
307
- this._horizontalScrollbar.updateScrollbarSize(newOptions.horizontalScrollbarSize);
308
- }
309
-
310
- if (!this._options.lazyRender) {
311
- this._render();
312
- }
313
- }
314
-
315
- setRevealOnScroll(value) {
316
- this._revealOnScroll = value;
317
- }
318
-
319
- triggerScrollFromMouseWheelEvent(browserEvent) {
320
- this._onMouseWheel(new mouseEvent_1.StandardWheelEvent(browserEvent));
321
- } // -------------------- mouse wheel scrolling --------------------
322
-
323
-
324
- _setListeningToMouseWheel(shouldListen) {
325
- let isListening = this._mouseWheelToDispose.length > 0;
326
-
327
- if (isListening === shouldListen) {
328
- // No change
329
- return;
330
- } // Stop listening (if necessary)
331
-
332
-
333
- this._mouseWheelToDispose = lifecycle_1.dispose(this._mouseWheelToDispose); // Start listening (if necessary)
334
-
335
- if (shouldListen) {
336
- let onMouseWheel = browserEvent => {
337
- this._onMouseWheel(new mouseEvent_1.StandardWheelEvent(browserEvent));
338
- };
339
-
340
- this._mouseWheelToDispose.push(dom.addDisposableListener(this._listenOnDomNode, dom.EventType.MOUSE_WHEEL, onMouseWheel, {
341
- passive: false
342
- }));
343
- }
344
- }
345
-
346
- _onMouseWheel(e) {
347
- const classifier = MouseWheelClassifier.INSTANCE;
348
-
349
- if (SCROLL_WHEEL_SMOOTH_SCROLL_ENABLED) {
350
- const osZoomFactor = window.devicePixelRatio / browser_1.getZoomFactor();
351
-
352
- if (platform.isWindows || platform.isLinux) {
353
- // On Windows and Linux, the incoming delta events are multiplied with the OS zoom factor.
354
- // The OS zoom factor can be reverse engineered by using the device pixel ratio and the configured zoom factor into account.
355
- classifier.accept(Date.now(), e.deltaX / osZoomFactor, e.deltaY / osZoomFactor);
356
- } else {
357
- classifier.accept(Date.now(), e.deltaX, e.deltaY);
358
- }
359
- } // console.log(`${Date.now()}, ${e.deltaY}, ${e.deltaX}`);
360
-
361
-
362
- if (e.deltaY || e.deltaX) {
363
- let deltaY = e.deltaY * this._options.mouseWheelScrollSensitivity;
364
- let deltaX = e.deltaX * this._options.mouseWheelScrollSensitivity;
365
-
366
- if (this._options.scrollPredominantAxis) {
367
- if (Math.abs(deltaY) >= Math.abs(deltaX)) {
368
- deltaX = 0;
369
- } else {
370
- deltaY = 0;
371
- }
372
- }
373
-
374
- if (this._options.flipAxes) {
375
- [deltaY, deltaX] = [deltaX, deltaY];
376
- } // Convert vertical scrolling to horizontal if shift is held, this
377
- // is handled at a higher level on Mac
378
-
379
-
380
- const shiftConvert = !platform.isMacintosh && e.browserEvent && e.browserEvent.shiftKey;
381
-
382
- if ((this._options.scrollYToX || shiftConvert) && !deltaX) {
383
- deltaX = deltaY;
384
- deltaY = 0;
385
- }
386
-
387
- if (e.browserEvent && e.browserEvent.altKey) {
388
- // fastScrolling
389
- deltaX = deltaX * this._options.fastScrollSensitivity;
390
- deltaY = deltaY * this._options.fastScrollSensitivity;
391
- }
392
-
393
- const futureScrollPosition = this._scrollable.getFutureScrollPosition();
394
-
395
- let desiredScrollPosition = {};
396
-
397
- if (deltaY) {
398
- const desiredScrollTop = futureScrollPosition.scrollTop - SCROLL_WHEEL_SENSITIVITY * deltaY;
399
-
400
- this._verticalScrollbar.writeScrollPosition(desiredScrollPosition, desiredScrollTop);
401
- }
402
-
403
- if (deltaX) {
404
- const desiredScrollLeft = futureScrollPosition.scrollLeft - SCROLL_WHEEL_SENSITIVITY * deltaX;
405
-
406
- this._horizontalScrollbar.writeScrollPosition(desiredScrollPosition, desiredScrollLeft);
407
- } // Check that we are scrolling towards a location which is valid
408
-
409
-
410
- desiredScrollPosition = this._scrollable.validateScrollPosition(desiredScrollPosition);
411
-
412
- if (futureScrollPosition.scrollLeft !== desiredScrollPosition.scrollLeft || futureScrollPosition.scrollTop !== desiredScrollPosition.scrollTop) {
413
- const canPerformSmoothScroll = SCROLL_WHEEL_SMOOTH_SCROLL_ENABLED && this._options.mouseWheelSmoothScroll && classifier.isPhysicalMouseWheel();
414
-
415
- if (canPerformSmoothScroll) {
416
- this._scrollable.setScrollPositionSmooth(desiredScrollPosition);
417
- } else {
418
- this._scrollable.setScrollPositionNow(desiredScrollPosition);
419
- }
420
-
421
- this._shouldRender = true;
422
- }
423
- }
424
-
425
- if (this._options.alwaysConsumeMouseWheel || this._shouldRender) {
426
- e.preventDefault();
427
- e.stopPropagation();
428
- }
429
- }
430
-
431
- _onDidScroll(e) {
432
- this._shouldRender = this._horizontalScrollbar.onDidScroll(e) || this._shouldRender;
433
- this._shouldRender = this._verticalScrollbar.onDidScroll(e) || this._shouldRender;
434
-
435
- if (this._options.useShadows) {
436
- this._shouldRender = true;
437
- }
438
-
439
- if (this._revealOnScroll) {
440
- this._reveal();
441
- }
442
-
443
- if (!this._options.lazyRender) {
444
- this._render();
445
- }
446
- }
447
- /**
448
- * Render / mutate the DOM now.
449
- * Should be used together with the ctor option `lazyRender`.
450
- */
451
-
452
-
453
- renderNow() {
454
- if (!this._options.lazyRender) {
455
- throw new Error('Please use `lazyRender` together with `renderNow`!');
456
- }
457
-
458
- this._render();
459
- }
460
-
461
- _render() {
462
- if (!this._shouldRender) {
463
- return;
464
- }
465
-
466
- this._shouldRender = false;
467
-
468
- this._horizontalScrollbar.render();
469
-
470
- this._verticalScrollbar.render();
471
-
472
- if (this._options.useShadows) {
473
- const scrollState = this._scrollable.getCurrentScrollPosition();
474
-
475
- let enableTop = scrollState.scrollTop > 0;
476
- let enableLeft = scrollState.scrollLeft > 0;
477
-
478
- this._leftShadowDomNode.setClassName('shadow' + (enableLeft ? ' left' : ''));
479
-
480
- this._topShadowDomNode.setClassName('shadow' + (enableTop ? ' top' : ''));
481
-
482
- this._topLeftShadowDomNode.setClassName('shadow top-left-corner' + (enableTop ? ' top' : '') + (enableLeft ? ' left' : ''));
483
- }
484
- } // -------------------- fade in / fade out --------------------
485
-
486
-
487
- _onDragStart() {
488
- this._isDragging = true;
489
-
490
- this._reveal();
491
- }
492
-
493
- _onDragEnd() {
494
- this._isDragging = false;
495
-
496
- this._hide();
497
- }
498
-
499
- _onMouseOut(e) {
500
- this._mouseIsOver = false;
501
-
502
- this._hide();
503
- }
504
-
505
- _onMouseOver(e) {
506
- this._mouseIsOver = true;
507
-
508
- this._reveal();
509
- }
510
-
511
- _reveal() {
512
- this._verticalScrollbar.beginReveal();
513
-
514
- this._horizontalScrollbar.beginReveal();
515
-
516
- this._scheduleHide();
517
- }
518
-
519
- _hide() {
520
- if (!this._mouseIsOver && !this._isDragging) {
521
- this._verticalScrollbar.beginHide();
522
-
523
- this._horizontalScrollbar.beginHide();
524
- }
525
- }
526
-
527
- _scheduleHide() {
528
- if (!this._mouseIsOver && !this._isDragging) {
529
- this._hideTimeout.cancelAndSet(() => this._hide(), HIDE_TIMEOUT);
530
- }
531
- }
532
-
533
- }
534
-
535
- exports.AbstractScrollableElement = AbstractScrollableElement;
536
-
537
- class ScrollableElement extends AbstractScrollableElement {
538
- constructor(element, options) {
539
- options = options || {};
540
- options.mouseWheelSmoothScroll = false;
541
- const scrollable = new scrollable_1.Scrollable(0, callback => dom.scheduleAtNextAnimationFrame(callback));
542
- super(element, options, scrollable);
543
-
544
- this._register(scrollable);
545
- }
546
-
547
- setScrollPosition(update) {
548
- this._scrollable.setScrollPositionNow(update);
549
- }
550
-
551
- getScrollPosition() {
552
- return this._scrollable.getCurrentScrollPosition();
553
- }
554
-
555
- }
556
-
557
- exports.ScrollableElement = ScrollableElement;
558
-
559
- class SmoothScrollableElement extends AbstractScrollableElement {
560
- constructor(element, options, scrollable) {
561
- super(element, options, scrollable);
562
- }
563
-
564
- setScrollPosition(update) {
565
- this._scrollable.setScrollPositionNow(update);
566
- }
567
-
568
- getScrollPosition() {
569
- return this._scrollable.getCurrentScrollPosition();
570
- }
571
-
572
- }
573
-
574
- exports.SmoothScrollableElement = SmoothScrollableElement;
575
-
576
- class DomScrollableElement extends ScrollableElement {
577
- constructor(element, options) {
578
- super(element, options);
579
- this._element = element;
580
- this.onScroll(e => {
581
- if (e.scrollTopChanged) {
582
- this._element.scrollTop = e.scrollTop;
583
- }
584
-
585
- if (e.scrollLeftChanged) {
586
- this._element.scrollLeft = e.scrollLeft;
587
- }
588
- });
589
- this.scanDomNode();
590
- }
591
-
592
- scanDomNode() {
593
- // width, scrollLeft, scrollWidth, height, scrollTop, scrollHeight
594
- this.setScrollDimensions({
595
- width: this._element.clientWidth,
596
- scrollWidth: this._element.scrollWidth,
597
- height: this._element.clientHeight,
598
- scrollHeight: this._element.scrollHeight
599
- });
600
- this.setScrollPosition({
601
- scrollLeft: this._element.scrollLeft,
602
- scrollTop: this._element.scrollTop
603
- });
604
- }
605
-
606
- }
607
-
608
- exports.DomScrollableElement = DomScrollableElement;
609
-
610
- function resolveOptions(opts) {
611
- let result = {
612
- lazyRender: typeof opts.lazyRender !== 'undefined' ? opts.lazyRender : false,
613
- className: typeof opts.className !== 'undefined' ? opts.className : '',
614
- useShadows: typeof opts.useShadows !== 'undefined' ? opts.useShadows : true,
615
- handleMouseWheel: typeof opts.handleMouseWheel !== 'undefined' ? opts.handleMouseWheel : true,
616
- flipAxes: typeof opts.flipAxes !== 'undefined' ? opts.flipAxes : false,
617
- alwaysConsumeMouseWheel: typeof opts.alwaysConsumeMouseWheel !== 'undefined' ? opts.alwaysConsumeMouseWheel : false,
618
- scrollYToX: typeof opts.scrollYToX !== 'undefined' ? opts.scrollYToX : false,
619
- mouseWheelScrollSensitivity: typeof opts.mouseWheelScrollSensitivity !== 'undefined' ? opts.mouseWheelScrollSensitivity : 1,
620
- fastScrollSensitivity: typeof opts.fastScrollSensitivity !== 'undefined' ? opts.fastScrollSensitivity : 5,
621
- scrollPredominantAxis: typeof opts.scrollPredominantAxis !== 'undefined' ? opts.scrollPredominantAxis : true,
622
- mouseWheelSmoothScroll: typeof opts.mouseWheelSmoothScroll !== 'undefined' ? opts.mouseWheelSmoothScroll : true,
623
- arrowSize: typeof opts.arrowSize !== 'undefined' ? opts.arrowSize : 11,
624
- listenOnDomNode: typeof opts.listenOnDomNode !== 'undefined' ? opts.listenOnDomNode : null,
625
- horizontal: typeof opts.horizontal !== 'undefined' ? opts.horizontal : 1
626
- /* Auto */
627
- ,
628
- horizontalScrollbarSize: typeof opts.horizontalScrollbarSize !== 'undefined' ? opts.horizontalScrollbarSize : 10,
629
- horizontalSliderSize: typeof opts.horizontalSliderSize !== 'undefined' ? opts.horizontalSliderSize : 0,
630
- horizontalHasArrows: typeof opts.horizontalHasArrows !== 'undefined' ? opts.horizontalHasArrows : false,
631
- vertical: typeof opts.vertical !== 'undefined' ? opts.vertical : 1
632
- /* Auto */
633
- ,
634
- verticalScrollbarSize: typeof opts.verticalScrollbarSize !== 'undefined' ? opts.verticalScrollbarSize : 10,
635
- verticalHasArrows: typeof opts.verticalHasArrows !== 'undefined' ? opts.verticalHasArrows : false,
636
- verticalSliderSize: typeof opts.verticalSliderSize !== 'undefined' ? opts.verticalSliderSize : 0
637
- };
638
- result.horizontalSliderSize = typeof opts.horizontalSliderSize !== 'undefined' ? opts.horizontalSliderSize : result.horizontalScrollbarSize;
639
- result.verticalSliderSize = typeof opts.verticalSliderSize !== 'undefined' ? opts.verticalSliderSize : result.verticalScrollbarSize; // Defaults are different on Macs
640
-
641
- if (platform.isMacintosh) {
642
- result.className += ' mac';
643
- }
644
-
645
- return result;
646
- }
@@ -1,9 +0,0 @@
1
- "use strict";
2
- /*---------------------------------------------------------------------------------------------
3
- * Copyright (c) Microsoft Corporation. All rights reserved.
4
- * Licensed under the MIT License. See License.txt in the project root for license information.
5
- *--------------------------------------------------------------------------------------------*/
6
-
7
- Object.defineProperty(exports, "__esModule", {
8
- value: true
9
- });