custom-electron-titlebar 4.2.0 → 4.2.1

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 (65) hide show
  1. package/dist/base/browser/browser.d.ts +26 -0
  2. package/dist/base/browser/browser.js +317 -0
  3. package/dist/base/browser/event.d.ts +12 -0
  4. package/dist/base/browser/event.js +215 -0
  5. package/dist/base/browser/keyboardEvent.d.ts +38 -0
  6. package/dist/base/browser/keyboardEvent.js +466 -0
  7. package/dist/base/browser/mouseEvent.d.ts +61 -0
  8. package/dist/base/browser/mouseEvent.js +327 -0
  9. package/dist/base/browser/touch.d.ts +39 -0
  10. package/dist/base/browser/touch.js +454 -0
  11. package/dist/base/common/arrays.d.ts +10 -0
  12. package/dist/base/common/arrays.js +210 -0
  13. package/dist/base/common/async.d.ts +35 -0
  14. package/dist/base/common/async.js +280 -0
  15. package/dist/base/common/charCode.d.ts +405 -0
  16. package/dist/base/common/charCode.js +9 -0
  17. package/dist/base/common/color.d.ts +159 -0
  18. package/dist/base/common/color.js +709 -0
  19. package/dist/base/common/decorators.d.ts +6 -0
  20. package/dist/base/common/decorators.js +300 -0
  21. package/dist/base/common/dom.d.ts +221 -0
  22. package/dist/base/common/dom.js +1478 -0
  23. package/dist/base/common/event.d.ts +213 -0
  24. package/dist/base/common/event.js +804 -0
  25. package/dist/base/common/iterator.d.ts +69 -0
  26. package/dist/base/common/iterator.js +381 -0
  27. package/dist/base/common/keyCodes.d.ts +478 -0
  28. package/dist/base/common/keyCodes.js +479 -0
  29. package/dist/base/common/lifecycle.d.ts +17 -0
  30. package/dist/base/common/lifecycle.js +258 -0
  31. package/dist/base/common/linkedList.d.ts +17 -0
  32. package/dist/base/common/linkedList.js +319 -0
  33. package/dist/base/common/platform.d.ts +33 -0
  34. package/dist/base/common/platform.js +302 -0
  35. package/dist/base/common/strings.d.ts +23 -0
  36. package/dist/base/common/strings.js +273 -0
  37. package/dist/consts.d.ts +49 -0
  38. package/dist/consts.js +303 -0
  39. package/dist/index.d.ts +3 -0
  40. package/dist/index.js +211 -0
  41. package/dist/main/attach-titlebar-to-window.d.ts +3 -0
  42. package/dist/main/attach-titlebar-to-window.js +207 -0
  43. package/dist/main/index.d.ts +3 -0
  44. package/dist/main/index.js +202 -0
  45. package/dist/main/setup-titlebar.d.ts +2 -0
  46. package/dist/main/setup-titlebar.js +242 -0
  47. package/dist/menubar/index.d.ts +86 -0
  48. package/dist/menubar/index.js +1118 -0
  49. package/dist/menubar/menu/index.d.ts +46 -0
  50. package/dist/menubar/menu/index.js +556 -0
  51. package/dist/menubar/menu/item.d.ts +67 -0
  52. package/dist/menubar/menu/item.js +575 -0
  53. package/dist/menubar/menu/separator.d.ts +11 -0
  54. package/dist/menubar/menu/separator.js +213 -0
  55. package/dist/menubar/menu/submenu.d.ts +32 -0
  56. package/dist/menubar/menu/submenu.js +372 -0
  57. package/dist/menubar/menubar-options.d.ts +55 -0
  58. package/dist/menubar/menubar-options.js +9 -0
  59. package/dist/titlebar/index.d.ts +99 -0
  60. package/dist/titlebar/index.js +663 -0
  61. package/dist/titlebar/options.d.ts +84 -0
  62. package/dist/titlebar/options.js +9 -0
  63. package/dist/titlebar/themebar.d.ts +20 -0
  64. package/dist/titlebar/themebar.js +267 -0
  65. package/package.json +1 -1
@@ -0,0 +1,454 @@
1
+ "use strict";
2
+
3
+ /*---------------------------------------------------------------------------------------------
4
+ * Copyright (c) Microsoft Corporation. All rights reserved.
5
+ * Licensed under the MIT License. See License.txt in the project root for license information.
6
+ *--------------------------------------------------------------------------------------------*/
7
+ var __createBinding = this && this.__createBinding || (Object.create ? function (o, m, k, k2) {
8
+ if (k2 === undefined) k2 = k;
9
+ var desc = Object.getOwnPropertyDescriptor(m, k);
10
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
11
+ desc = {
12
+ enumerable: true,
13
+ get: function () {
14
+ return m[k];
15
+ }
16
+ };
17
+ }
18
+ Object.defineProperty(o, k2, desc);
19
+ } : function (o, m, k, k2) {
20
+ if (k2 === undefined) k2 = k;
21
+ o[k2] = m[k];
22
+ });
23
+ var __setModuleDefault = this && this.__setModuleDefault || (Object.create ? function (o, v) {
24
+ Object.defineProperty(o, "default", {
25
+ enumerable: true,
26
+ value: v
27
+ });
28
+ } : function (o, v) {
29
+ o["default"] = v;
30
+ });
31
+ var __importStar = this && this.__importStar || function (mod) {
32
+ if (mod && mod.__esModule) return mod;
33
+ var result = {};
34
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) _get__("__createBinding")(result, mod, k);
35
+ _get__("__setModuleDefault")(result, mod);
36
+ return result;
37
+ };
38
+ Object.defineProperty(exports, "__esModule", {
39
+ value: true
40
+ });
41
+ exports.Gesture = exports.EventType = void 0;
42
+ const DomUtils = _get__("__importStar")(require("../common/dom"));
43
+ const arrays = _get__("__importStar")(require("../common/arrays"));
44
+ const lifecycle_1 = require("../common/lifecycle");
45
+ const linkedList_1 = require("../common/linkedList");
46
+ var EventType;
47
+ (function (EventType) {
48
+ EventType.Tap = '-monaco-gesturetap';
49
+ EventType.Change = '-monaco-gesturechange';
50
+ EventType.Start = '-monaco-gesturestart';
51
+ EventType.End = '-monaco-gesturesend';
52
+ EventType.Contextmenu = '-monaco-gesturecontextmenu';
53
+ })(_assign__("EventType", exports.EventType || (exports.EventType = {})));
54
+ class Gesture extends _get__("lifecycle_1").Disposable {
55
+ constructor() {
56
+ super();
57
+ this.dispatched = false;
58
+ this.targets = new (_get__("linkedList_1").LinkedList)();
59
+ this.ignoreTargets = new (_get__("linkedList_1").LinkedList)();
60
+ this.activeTouches = {};
61
+ this.handle = null;
62
+ this._lastSetTapCountTime = 0;
63
+ this._register(_get__("DomUtils").addDisposableListener(document, 'touchstart', e => this.onTouchStart(e), {
64
+ passive: false
65
+ }));
66
+ this._register(_get__("DomUtils").addDisposableListener(document, 'touchend', e => this.onTouchEnd(e)));
67
+ this._register(_get__("DomUtils").addDisposableListener(document, 'touchmove', e => this.onTouchMove(e), {
68
+ passive: false
69
+ }));
70
+ }
71
+ static addTarget(element) {
72
+ if (!_get__("Gesture").isTouchDevice()) {
73
+ return _get__("lifecycle_1").Disposable.None;
74
+ }
75
+ if (!_get__("Gesture").INSTANCE) {
76
+ _get__("Gesture").INSTANCE = new (_get__("Gesture"))();
77
+ }
78
+ const remove = _get__("Gesture").INSTANCE.targets.push(element);
79
+ return (0, _get__("lifecycle_1").toDisposable)(remove);
80
+ }
81
+ static ignoreTarget(element) {
82
+ if (!_get__("Gesture").isTouchDevice()) {
83
+ return _get__("lifecycle_1").Disposable.None;
84
+ }
85
+ if (!_get__("Gesture").INSTANCE) {
86
+ _get__("Gesture").INSTANCE = new (_get__("Gesture"))();
87
+ }
88
+ const remove = _get__("Gesture").INSTANCE.ignoreTargets.push(element);
89
+ return (0, _get__("lifecycle_1").toDisposable)(remove);
90
+ }
91
+ static isTouchDevice() {
92
+ // `'ontouchstart' in window` always evaluates to true with typescript's modern typings. This causes `window` to be
93
+ // `never` later in `window.navigator`. That's why we need the explicit `window as Window` cast
94
+ return 'ontouchstart' in window || navigator.maxTouchPoints > 0;
95
+ }
96
+ dispose() {
97
+ if (this.handle) {
98
+ this.handle.dispose();
99
+ this.handle = null;
100
+ }
101
+ super.dispose();
102
+ }
103
+ onTouchStart(e) {
104
+ const timestamp = Date.now(); // use Date.now() because on FF e.timeStamp is not epoch based.
105
+ if (this.handle) {
106
+ this.handle.dispose();
107
+ this.handle = null;
108
+ }
109
+ for (let i = 0, len = e.targetTouches.length; i < len; i++) {
110
+ const touch = e.targetTouches.item(i);
111
+ this.activeTouches[touch.identifier] = {
112
+ id: touch.identifier,
113
+ initialTarget: touch.target,
114
+ initialTimeStamp: timestamp,
115
+ initialPageX: touch.pageX,
116
+ initialPageY: touch.pageY,
117
+ rollingTimestamps: [timestamp],
118
+ rollingPageX: [touch.pageX],
119
+ rollingPageY: [touch.pageY]
120
+ };
121
+ const evt = this.newGestureEvent(_get__("EventType").Start, touch.target);
122
+ evt.pageX = touch.pageX;
123
+ evt.pageY = touch.pageY;
124
+ this.dispatchEvent(evt);
125
+ }
126
+ if (this.dispatched) {
127
+ e.preventDefault();
128
+ e.stopPropagation();
129
+ this.dispatched = false;
130
+ }
131
+ }
132
+ onTouchEnd(e) {
133
+ const timestamp = Date.now(); // use Date.now() because on FF e.timeStamp is not epoch based.
134
+ const activeTouchCount = Object.keys(this.activeTouches).length;
135
+ for (let i = 0, len = e.changedTouches.length; i < len; i++) {
136
+ const touch = e.changedTouches.item(i);
137
+ if (!this.activeTouches.hasOwnProperty(String(touch.identifier))) {
138
+ console.warn('move of an UNKNOWN touch', touch);
139
+ continue;
140
+ }
141
+ const data = this.activeTouches[touch.identifier],
142
+ holdTime = Date.now() - data.initialTimeStamp;
143
+ if (holdTime < _get__("Gesture").HOLD_DELAY && Math.abs(data.initialPageX - _get__("arrays").tail(data.rollingPageX)) < 30 && Math.abs(data.initialPageY - _get__("arrays").tail(data.rollingPageY)) < 30) {
144
+ const evt = this.newGestureEvent(_get__("EventType").Tap, data.initialTarget);
145
+ evt.pageX = _get__("arrays").tail(data.rollingPageX);
146
+ evt.pageY = _get__("arrays").tail(data.rollingPageY);
147
+ this.dispatchEvent(evt);
148
+ } else if (holdTime >= _get__("Gesture").HOLD_DELAY && Math.abs(data.initialPageX - _get__("arrays").tail(data.rollingPageX)) < 30 && Math.abs(data.initialPageY - _get__("arrays").tail(data.rollingPageY)) < 30) {
149
+ const evt = this.newGestureEvent(_get__("EventType").Contextmenu, data.initialTarget);
150
+ evt.pageX = _get__("arrays").tail(data.rollingPageX);
151
+ evt.pageY = _get__("arrays").tail(data.rollingPageY);
152
+ this.dispatchEvent(evt);
153
+ } else if (activeTouchCount === 1) {
154
+ const finalX = _get__("arrays").tail(data.rollingPageX);
155
+ const finalY = _get__("arrays").tail(data.rollingPageY);
156
+ const deltaT = _get__("arrays").tail(data.rollingTimestamps) - data.rollingTimestamps[0];
157
+ const deltaX = finalX - data.rollingPageX[0];
158
+ const deltaY = finalY - data.rollingPageY[0];
159
+ }
160
+ this.dispatchEvent(this.newGestureEvent(_get__("EventType").End, data.initialTarget));
161
+ // forget about this touch
162
+ delete this.activeTouches[touch.identifier];
163
+ }
164
+ if (this.dispatched) {
165
+ e.preventDefault();
166
+ e.stopPropagation();
167
+ this.dispatched = false;
168
+ }
169
+ }
170
+ newGestureEvent(type, initialTarget) {
171
+ const event = document.createEvent('CustomEvent');
172
+ event.initEvent(type, false, true);
173
+ event.initialTarget = initialTarget;
174
+ event.tapCount = 0;
175
+ return event;
176
+ }
177
+ dispatchEvent(event) {
178
+ if (event.type === _get__("EventType").Tap) {
179
+ const currentTime = new Date().getTime();
180
+ let setTapCount = 0;
181
+ if (currentTime - this._lastSetTapCountTime > _get__("Gesture").CLEAR_TAP_COUNT_TIME) {
182
+ setTapCount = 1;
183
+ } else {
184
+ setTapCount = 2;
185
+ }
186
+ this._lastSetTapCountTime = currentTime;
187
+ event.tapCount = setTapCount;
188
+ } else if (event.type === _get__("EventType").Change || event.type === _get__("EventType").Contextmenu) {
189
+ // tap is canceled by scrolling or context menu
190
+ this._lastSetTapCountTime = 0;
191
+ }
192
+ }
193
+ inertia(dispatchTo, t1, vX, dirX, x, vY, dirY, y) {
194
+ this.handle = _get__("DomUtils").scheduleAtNextAnimationFrame(() => {
195
+ const now = Date.now();
196
+ // velocity: old speed + accel_over_time
197
+ const deltaT = now - t1;
198
+ let delta_pos_x = 0,
199
+ delta_pos_y = 0;
200
+ let stopped = true;
201
+ vX += _get__("Gesture").SCROLL_FRICTION * deltaT;
202
+ vY += _get__("Gesture").SCROLL_FRICTION * deltaT;
203
+ if (vX > 0) {
204
+ stopped = false;
205
+ delta_pos_x = dirX * vX * deltaT;
206
+ }
207
+ if (vY > 0) {
208
+ stopped = false;
209
+ delta_pos_y = dirY * vY * deltaT;
210
+ }
211
+ // dispatch translation event
212
+ const evt = this.newGestureEvent(_get__("EventType").Change);
213
+ evt.translationX = delta_pos_x;
214
+ evt.translationY = delta_pos_y;
215
+ dispatchTo.forEach(d => d.dispatchEvent(evt));
216
+ if (!stopped) {
217
+ this.inertia(dispatchTo, now, vX, dirX, x + delta_pos_x, vY, dirY, y + delta_pos_y);
218
+ }
219
+ });
220
+ }
221
+ onTouchMove(e) {
222
+ const timestamp = Date.now(); // use Date.now() because on FF e.timeStamp is not epoch based.
223
+ for (let i = 0, len = e.changedTouches.length; i < len; i++) {
224
+ const touch = e.changedTouches.item(i);
225
+ if (!this.activeTouches.hasOwnProperty(String(touch.identifier))) {
226
+ console.warn('end of an UNKNOWN touch', touch);
227
+ continue;
228
+ }
229
+ const data = this.activeTouches[touch.identifier];
230
+ const evt = this.newGestureEvent(_get__("EventType").Change, data.initialTarget);
231
+ evt.translationX = touch.pageX - _get__("arrays").tail(data.rollingPageX);
232
+ evt.translationY = touch.pageY - _get__("arrays").tail(data.rollingPageY);
233
+ evt.pageX = touch.pageX;
234
+ evt.pageY = touch.pageY;
235
+ this.dispatchEvent(evt);
236
+ // only keep a few data points, to average the final speed
237
+ if (data.rollingPageX.length > 3) {
238
+ data.rollingPageX.shift();
239
+ data.rollingPageY.shift();
240
+ data.rollingTimestamps.shift();
241
+ }
242
+ data.rollingPageX.push(touch.pageX);
243
+ data.rollingPageY.push(touch.pageY);
244
+ data.rollingTimestamps.push(timestamp);
245
+ }
246
+ if (this.dispatched) {
247
+ e.preventDefault();
248
+ e.stopPropagation();
249
+ this.dispatched = false;
250
+ }
251
+ }
252
+ }
253
+ _get__("Gesture").SCROLL_FRICTION = -0.005;
254
+ _get__("Gesture").HOLD_DELAY = 700;
255
+ _get__("Gesture").CLEAR_TAP_COUNT_TIME = 400; // ms
256
+ exports.Gesture = _get__("Gesture");
257
+ function _getGlobalObject() {
258
+ try {
259
+ if (!!global) {
260
+ return global;
261
+ }
262
+ } catch (e) {
263
+ try {
264
+ if (!!window) {
265
+ return window;
266
+ }
267
+ } catch (e) {
268
+ return this;
269
+ }
270
+ }
271
+ }
272
+ ;
273
+ var _RewireModuleId__ = null;
274
+ function _getRewireModuleId__() {
275
+ if (_RewireModuleId__ === null) {
276
+ let globalVariable = _getGlobalObject();
277
+ if (!globalVariable.__$$GLOBAL_REWIRE_NEXT_MODULE_ID__) {
278
+ globalVariable.__$$GLOBAL_REWIRE_NEXT_MODULE_ID__ = 0;
279
+ }
280
+ _RewireModuleId__ = __$$GLOBAL_REWIRE_NEXT_MODULE_ID__++;
281
+ }
282
+ return _RewireModuleId__;
283
+ }
284
+ function _getRewireRegistry__() {
285
+ let theGlobalVariable = _getGlobalObject();
286
+ if (!theGlobalVariable.__$$GLOBAL_REWIRE_REGISTRY__) {
287
+ theGlobalVariable.__$$GLOBAL_REWIRE_REGISTRY__ = Object.create(null);
288
+ }
289
+ return theGlobalVariable.__$$GLOBAL_REWIRE_REGISTRY__;
290
+ }
291
+ function _getRewiredData__() {
292
+ let moduleId = _getRewireModuleId__();
293
+ let registry = _getRewireRegistry__();
294
+ let rewireData = registry[moduleId];
295
+ if (!rewireData) {
296
+ registry[moduleId] = Object.create(null);
297
+ rewireData = registry[moduleId];
298
+ }
299
+ return rewireData;
300
+ }
301
+ (function registerResetAll() {
302
+ let theGlobalVariable = _getGlobalObject();
303
+ if (!theGlobalVariable['__rewire_reset_all__']) {
304
+ theGlobalVariable['__rewire_reset_all__'] = function () {
305
+ theGlobalVariable.__$$GLOBAL_REWIRE_REGISTRY__ = Object.create(null);
306
+ };
307
+ }
308
+ })();
309
+ var INTENTIONAL_UNDEFINED = '__INTENTIONAL_UNDEFINED__';
310
+ let _RewireAPI__ = {};
311
+ (function () {
312
+ function addPropertyToAPIObject(name, value) {
313
+ Object.defineProperty(_RewireAPI__, name, {
314
+ value: value,
315
+ enumerable: false,
316
+ configurable: true
317
+ });
318
+ }
319
+ addPropertyToAPIObject('__get__', _get__);
320
+ addPropertyToAPIObject('__GetDependency__', _get__);
321
+ addPropertyToAPIObject('__Rewire__', _set__);
322
+ addPropertyToAPIObject('__set__', _set__);
323
+ addPropertyToAPIObject('__reset__', _reset__);
324
+ addPropertyToAPIObject('__ResetDependency__', _reset__);
325
+ addPropertyToAPIObject('__with__', _with__);
326
+ })();
327
+ function _get__(variableName) {
328
+ let rewireData = _getRewiredData__();
329
+ if (rewireData[variableName] === undefined) {
330
+ return _get_original__(variableName);
331
+ } else {
332
+ var value = rewireData[variableName];
333
+ if (value === INTENTIONAL_UNDEFINED) {
334
+ return undefined;
335
+ } else {
336
+ return value;
337
+ }
338
+ }
339
+ }
340
+ function _get_original__(variableName) {
341
+ switch (variableName) {
342
+ case "__createBinding":
343
+ return __createBinding;
344
+ case "__setModuleDefault":
345
+ return __setModuleDefault;
346
+ case "__importStar":
347
+ return __importStar;
348
+ case "EventType":
349
+ return EventType;
350
+ case "linkedList_1":
351
+ return linkedList_1;
352
+ case "DomUtils":
353
+ return DomUtils;
354
+ case "Gesture":
355
+ return Gesture;
356
+ case "lifecycle_1":
357
+ return lifecycle_1;
358
+ case "arrays":
359
+ return arrays;
360
+ }
361
+ return undefined;
362
+ }
363
+ function _assign__(variableName, value) {
364
+ let rewireData = _getRewiredData__();
365
+ if (rewireData[variableName] === undefined) {
366
+ return _set_original__(variableName, value);
367
+ } else {
368
+ return rewireData[variableName] = value;
369
+ }
370
+ }
371
+ function _set_original__(variableName, _value) {
372
+ switch (variableName) {
373
+ case "EventType":
374
+ return EventType = _value;
375
+ }
376
+ return undefined;
377
+ }
378
+ function _update_operation__(operation, variableName, prefix) {
379
+ var oldValue = _get__(variableName);
380
+ var newValue = operation === '++' ? oldValue + 1 : oldValue - 1;
381
+ _assign__(variableName, newValue);
382
+ return prefix ? newValue : oldValue;
383
+ }
384
+ function _set__(variableName, value) {
385
+ let rewireData = _getRewiredData__();
386
+ if (typeof variableName === 'object') {
387
+ Object.keys(variableName).forEach(function (name) {
388
+ rewireData[name] = variableName[name];
389
+ });
390
+ return function () {
391
+ Object.keys(variableName).forEach(function (name) {
392
+ _reset__(variableName);
393
+ });
394
+ };
395
+ } else {
396
+ if (value === undefined) {
397
+ rewireData[variableName] = INTENTIONAL_UNDEFINED;
398
+ } else {
399
+ rewireData[variableName] = value;
400
+ }
401
+ return function () {
402
+ _reset__(variableName);
403
+ };
404
+ }
405
+ }
406
+ function _reset__(variableName) {
407
+ let rewireData = _getRewiredData__();
408
+ delete rewireData[variableName];
409
+ if (Object.keys(rewireData).length == 0) {
410
+ delete _getRewireRegistry__()[_getRewireModuleId__];
411
+ }
412
+ ;
413
+ }
414
+ function _with__(object) {
415
+ let rewireData = _getRewiredData__();
416
+ var rewiredVariableNames = Object.keys(object);
417
+ var previousValues = {};
418
+ function reset() {
419
+ rewiredVariableNames.forEach(function (variableName) {
420
+ rewireData[variableName] = previousValues[variableName];
421
+ });
422
+ }
423
+ return function (callback) {
424
+ rewiredVariableNames.forEach(function (variableName) {
425
+ previousValues[variableName] = rewireData[variableName];
426
+ rewireData[variableName] = object[variableName];
427
+ });
428
+ let result = callback();
429
+ if (!!result && typeof result.then == 'function') {
430
+ result.then(reset).catch(reset);
431
+ } else {
432
+ reset();
433
+ }
434
+ return result;
435
+ };
436
+ }
437
+ let _typeOfOriginalExport = typeof module.exports;
438
+ function addNonEnumerableProperty(name, value) {
439
+ Object.defineProperty(module.exports, name, {
440
+ value: value,
441
+ enumerable: false,
442
+ configurable: true
443
+ });
444
+ }
445
+ if ((_typeOfOriginalExport === 'object' || _typeOfOriginalExport === 'function') && Object.isExtensible(module.exports)) {
446
+ addNonEnumerableProperty('__get__', _get__);
447
+ addNonEnumerableProperty('__GetDependency__', _get__);
448
+ addNonEnumerableProperty('__Rewire__', _set__);
449
+ addNonEnumerableProperty('__set__', _set__);
450
+ addNonEnumerableProperty('__reset__', _reset__);
451
+ addNonEnumerableProperty('__ResetDependency__', _reset__);
452
+ addNonEnumerableProperty('__with__', _with__);
453
+ addNonEnumerableProperty('__RewireAPI__', _RewireAPI__);
454
+ }
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Returns the last element of an array.
3
+ * @param array The array.
4
+ * @param n Which element from the end (default is zero).
5
+ */
6
+ export declare function tail<T>(array: ArrayLike<T>, n?: number): T;
7
+ /**
8
+ * @returns a new array with all falsy values removed. The original array IS NOT modified.
9
+ */
10
+ export declare function coalesce<T>(array: Array<T | undefined | null>): T[];
@@ -0,0 +1,210 @@
1
+ "use strict";
2
+
3
+ /* ---------------------------------------------------------------------------------------------
4
+ * Copyright (c) Microsoft Corporation. All rights reserved.
5
+ * Licensed under the MIT License. See License.txt in the project root for license information.
6
+ *-------------------------------------------------------------------------------------------- */
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.coalesce = exports.tail = void 0;
11
+ /**
12
+ * Returns the last element of an array.
13
+ * @param array The array.
14
+ * @param n Which element from the end (default is zero).
15
+ */
16
+ function tail(array, n = 0) {
17
+ return array[array.length - (1 + n)];
18
+ }
19
+ exports.tail = _get__("tail");
20
+ /**
21
+ * @returns a new array with all falsy values removed. The original array IS NOT modified.
22
+ */
23
+ function coalesce(array) {
24
+ if (!array) {
25
+ return array;
26
+ }
27
+ return array.filter(e => !!e);
28
+ }
29
+ exports.coalesce = _get__("coalesce");
30
+ function _getGlobalObject() {
31
+ try {
32
+ if (!!global) {
33
+ return global;
34
+ }
35
+ } catch (e) {
36
+ try {
37
+ if (!!window) {
38
+ return window;
39
+ }
40
+ } catch (e) {
41
+ return this;
42
+ }
43
+ }
44
+ }
45
+ ;
46
+ var _RewireModuleId__ = null;
47
+ function _getRewireModuleId__() {
48
+ if (_RewireModuleId__ === null) {
49
+ let globalVariable = _getGlobalObject();
50
+ if (!globalVariable.__$$GLOBAL_REWIRE_NEXT_MODULE_ID__) {
51
+ globalVariable.__$$GLOBAL_REWIRE_NEXT_MODULE_ID__ = 0;
52
+ }
53
+ _RewireModuleId__ = __$$GLOBAL_REWIRE_NEXT_MODULE_ID__++;
54
+ }
55
+ return _RewireModuleId__;
56
+ }
57
+ function _getRewireRegistry__() {
58
+ let theGlobalVariable = _getGlobalObject();
59
+ if (!theGlobalVariable.__$$GLOBAL_REWIRE_REGISTRY__) {
60
+ theGlobalVariable.__$$GLOBAL_REWIRE_REGISTRY__ = Object.create(null);
61
+ }
62
+ return theGlobalVariable.__$$GLOBAL_REWIRE_REGISTRY__;
63
+ }
64
+ function _getRewiredData__() {
65
+ let moduleId = _getRewireModuleId__();
66
+ let registry = _getRewireRegistry__();
67
+ let rewireData = registry[moduleId];
68
+ if (!rewireData) {
69
+ registry[moduleId] = Object.create(null);
70
+ rewireData = registry[moduleId];
71
+ }
72
+ return rewireData;
73
+ }
74
+ (function registerResetAll() {
75
+ let theGlobalVariable = _getGlobalObject();
76
+ if (!theGlobalVariable['__rewire_reset_all__']) {
77
+ theGlobalVariable['__rewire_reset_all__'] = function () {
78
+ theGlobalVariable.__$$GLOBAL_REWIRE_REGISTRY__ = Object.create(null);
79
+ };
80
+ }
81
+ })();
82
+ var INTENTIONAL_UNDEFINED = '__INTENTIONAL_UNDEFINED__';
83
+ let _RewireAPI__ = {};
84
+ (function () {
85
+ function addPropertyToAPIObject(name, value) {
86
+ Object.defineProperty(_RewireAPI__, name, {
87
+ value: value,
88
+ enumerable: false,
89
+ configurable: true
90
+ });
91
+ }
92
+ addPropertyToAPIObject('__get__', _get__);
93
+ addPropertyToAPIObject('__GetDependency__', _get__);
94
+ addPropertyToAPIObject('__Rewire__', _set__);
95
+ addPropertyToAPIObject('__set__', _set__);
96
+ addPropertyToAPIObject('__reset__', _reset__);
97
+ addPropertyToAPIObject('__ResetDependency__', _reset__);
98
+ addPropertyToAPIObject('__with__', _with__);
99
+ })();
100
+ function _get__(variableName) {
101
+ let rewireData = _getRewiredData__();
102
+ if (rewireData[variableName] === undefined) {
103
+ return _get_original__(variableName);
104
+ } else {
105
+ var value = rewireData[variableName];
106
+ if (value === INTENTIONAL_UNDEFINED) {
107
+ return undefined;
108
+ } else {
109
+ return value;
110
+ }
111
+ }
112
+ }
113
+ function _get_original__(variableName) {
114
+ switch (variableName) {
115
+ case "tail":
116
+ return tail;
117
+ case "coalesce":
118
+ return coalesce;
119
+ }
120
+ return undefined;
121
+ }
122
+ function _assign__(variableName, value) {
123
+ let rewireData = _getRewiredData__();
124
+ if (rewireData[variableName] === undefined) {
125
+ return _set_original__(variableName, value);
126
+ } else {
127
+ return rewireData[variableName] = value;
128
+ }
129
+ }
130
+ function _set_original__(variableName, _value) {
131
+ switch (variableName) {}
132
+ return undefined;
133
+ }
134
+ function _update_operation__(operation, variableName, prefix) {
135
+ var oldValue = _get__(variableName);
136
+ var newValue = operation === '++' ? oldValue + 1 : oldValue - 1;
137
+ _assign__(variableName, newValue);
138
+ return prefix ? newValue : oldValue;
139
+ }
140
+ function _set__(variableName, value) {
141
+ let rewireData = _getRewiredData__();
142
+ if (typeof variableName === 'object') {
143
+ Object.keys(variableName).forEach(function (name) {
144
+ rewireData[name] = variableName[name];
145
+ });
146
+ return function () {
147
+ Object.keys(variableName).forEach(function (name) {
148
+ _reset__(variableName);
149
+ });
150
+ };
151
+ } else {
152
+ if (value === undefined) {
153
+ rewireData[variableName] = INTENTIONAL_UNDEFINED;
154
+ } else {
155
+ rewireData[variableName] = value;
156
+ }
157
+ return function () {
158
+ _reset__(variableName);
159
+ };
160
+ }
161
+ }
162
+ function _reset__(variableName) {
163
+ let rewireData = _getRewiredData__();
164
+ delete rewireData[variableName];
165
+ if (Object.keys(rewireData).length == 0) {
166
+ delete _getRewireRegistry__()[_getRewireModuleId__];
167
+ }
168
+ ;
169
+ }
170
+ function _with__(object) {
171
+ let rewireData = _getRewiredData__();
172
+ var rewiredVariableNames = Object.keys(object);
173
+ var previousValues = {};
174
+ function reset() {
175
+ rewiredVariableNames.forEach(function (variableName) {
176
+ rewireData[variableName] = previousValues[variableName];
177
+ });
178
+ }
179
+ return function (callback) {
180
+ rewiredVariableNames.forEach(function (variableName) {
181
+ previousValues[variableName] = rewireData[variableName];
182
+ rewireData[variableName] = object[variableName];
183
+ });
184
+ let result = callback();
185
+ if (!!result && typeof result.then == 'function') {
186
+ result.then(reset).catch(reset);
187
+ } else {
188
+ reset();
189
+ }
190
+ return result;
191
+ };
192
+ }
193
+ let _typeOfOriginalExport = typeof module.exports;
194
+ function addNonEnumerableProperty(name, value) {
195
+ Object.defineProperty(module.exports, name, {
196
+ value: value,
197
+ enumerable: false,
198
+ configurable: true
199
+ });
200
+ }
201
+ if ((_typeOfOriginalExport === 'object' || _typeOfOriginalExport === 'function') && Object.isExtensible(module.exports)) {
202
+ addNonEnumerableProperty('__get__', _get__);
203
+ addNonEnumerableProperty('__GetDependency__', _get__);
204
+ addNonEnumerableProperty('__Rewire__', _set__);
205
+ addNonEnumerableProperty('__set__', _set__);
206
+ addNonEnumerableProperty('__reset__', _reset__);
207
+ addNonEnumerableProperty('__ResetDependency__', _reset__);
208
+ addNonEnumerableProperty('__with__', _with__);
209
+ addNonEnumerableProperty('__RewireAPI__', _RewireAPI__);
210
+ }
@@ -0,0 +1,35 @@
1
+ import { Disposable } from '../common/lifecycle';
2
+ export declare class TimeoutTimer extends Disposable {
3
+ private _token;
4
+ constructor();
5
+ constructor(runner: () => void, timeout: number);
6
+ dispose(): void;
7
+ cancel(): void;
8
+ cancelAndSet(runner: () => void, timeout: number): void;
9
+ setIfNotSet(runner: () => void, timeout: number): void;
10
+ }
11
+ export declare class RunOnceScheduler {
12
+ protected runner: ((...args: any[]) => void) | null;
13
+ private timeoutToken;
14
+ private timeout;
15
+ private timeoutHandler;
16
+ constructor(runner: (...args: any[]) => void, timeout: number);
17
+ /**
18
+ * Dispose RunOnceScheduler
19
+ */
20
+ dispose(): void;
21
+ /**
22
+ * Cancel current scheduled runner (if any).
23
+ */
24
+ cancel(): void;
25
+ /**
26
+ * Cancel previous runner (if any) & schedule a new runner.
27
+ */
28
+ schedule(delay?: number): void;
29
+ /**
30
+ * Returns true if scheduled.
31
+ */
32
+ isScheduled(): boolean;
33
+ private onTimeout;
34
+ protected doRun(): void;
35
+ }