custom-electron-titlebar 3.2.5 → 3.2.9

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 (175) hide show
  1. package/.vscode/launch.json +49 -0
  2. package/.vscode/tasks.json +34 -0
  3. package/README.md +15 -24
  4. package/_config.yml +1 -0
  5. package/{lib → build}/browser/browser.d.ts +0 -0
  6. package/{lib → build}/browser/browser.js +1 -0
  7. package/build/browser/browser.js.map +1 -0
  8. package/{lib → build}/browser/event.d.ts +0 -0
  9. package/{lib → build}/browser/event.js +3 -1
  10. package/build/browser/event.js.map +1 -0
  11. package/{lib → build}/browser/iframe.d.ts +0 -0
  12. package/{lib/base → build}/browser/iframe.js +1 -0
  13. package/build/browser/iframe.js.map +1 -0
  14. package/{lib → build}/browser/keyboardEvent.d.ts +0 -0
  15. package/{lib → build}/browser/keyboardEvent.js +1 -0
  16. package/build/browser/keyboardEvent.js.map +1 -0
  17. package/{lib → build}/browser/mouseEvent.d.ts +0 -0
  18. package/{lib → build}/browser/mouseEvent.js +1 -0
  19. package/build/browser/mouseEvent.js.map +1 -0
  20. package/{lib → build}/common/arrays.d.ts +0 -0
  21. package/{lib → build}/common/arrays.js +1 -0
  22. package/build/common/arrays.js.map +1 -0
  23. package/{lib → build}/common/async.d.ts +0 -0
  24. package/{lib → build}/common/async.js +1 -0
  25. package/build/common/async.js.map +1 -0
  26. package/{lib → build}/common/charCode.d.ts +0 -0
  27. package/{lib/base → build}/common/charCode.js +1 -0
  28. package/build/common/charCode.js.map +1 -0
  29. package/{lib → build}/common/color.d.ts +0 -0
  30. package/{lib → build}/common/color.js +1 -0
  31. package/build/common/color.js.map +1 -0
  32. package/{lib → build}/common/dom.d.ts +0 -0
  33. package/{lib → build}/common/dom.js +17 -14
  34. package/build/common/dom.js.map +1 -0
  35. package/{lib → build}/common/event.d.ts +0 -0
  36. package/{lib → build}/common/event.js +2 -1
  37. package/build/common/event.js.map +1 -0
  38. package/{lib → build}/common/iterator.d.ts +0 -0
  39. package/{lib → build}/common/iterator.js +1 -0
  40. package/build/common/iterator.js.map +1 -0
  41. package/{lib → build}/common/keyCodes.d.ts +0 -0
  42. package/{lib → build}/common/keyCodes.js +1 -0
  43. package/build/common/keyCodes.js.map +1 -0
  44. package/{lib → build}/common/lifecycle.d.ts +0 -0
  45. package/{lib → build}/common/lifecycle.js +1 -0
  46. package/build/common/lifecycle.js.map +1 -0
  47. package/{lib → build}/common/linkedList.d.ts +0 -0
  48. package/{lib → build}/common/linkedList.js +1 -0
  49. package/build/common/linkedList.js.map +1 -0
  50. package/{lib → build}/common/platform.d.ts +0 -0
  51. package/{lib → build}/common/platform.js +1 -0
  52. package/build/common/platform.js.map +1 -0
  53. package/{lib → build}/index.d.ts +0 -0
  54. package/{lib → build}/index.js +1 -0
  55. package/build/index.js.map +1 -0
  56. package/{lib → build}/menu/menu.d.ts +0 -0
  57. package/{lib → build}/menu/menu.js +39 -38
  58. package/build/menu/menu.js.map +1 -0
  59. package/{lib → build}/menu/menuitem.d.ts +10 -2
  60. package/{lib → build}/menu/menuitem.js +71 -29
  61. package/build/menu/menuitem.js.map +1 -0
  62. package/{lib → build}/menubar.d.ts +0 -0
  63. package/{lib → build}/menubar.js +38 -34
  64. package/build/menubar.js.map +1 -0
  65. package/{lib → build}/themebar.d.ts +0 -0
  66. package/{lib → build}/themebar.js +31 -2
  67. package/build/themebar.js.map +1 -0
  68. package/{lib → build}/titlebar.d.ts +0 -0
  69. package/{lib → build}/titlebar.js +72 -59
  70. package/build/titlebar.js.map +1 -0
  71. package/package.json +13 -7
  72. package/lib/base/browser/browser.d.ts +0 -25
  73. package/lib/base/browser/browser.js +0 -117
  74. package/lib/base/browser/canIUse.d.ts +0 -18
  75. package/lib/base/browser/canIUse.js +0 -63
  76. package/lib/base/browser/dom.d.ts +0 -230
  77. package/lib/base/browser/dom.js +0 -1080
  78. package/lib/base/browser/event.d.ts +0 -12
  79. package/lib/base/browser/event.js +0 -28
  80. package/lib/base/browser/iframe.d.ts +0 -33
  81. package/lib/base/browser/keyboardEvent.d.ts +0 -40
  82. package/lib/base/browser/keyboardEvent.js +0 -256
  83. package/lib/base/browser/mouseEvent.d.ts +0 -69
  84. package/lib/base/browser/mouseEvent.js +0 -146
  85. package/lib/base/common/arrays.d.ts +0 -149
  86. package/lib/base/common/arrays.js +0 -549
  87. package/lib/base/common/async.d.ts +0 -259
  88. package/lib/base/common/async.js +0 -728
  89. package/lib/base/common/cancellation.d.ts +0 -29
  90. package/lib/base/common/cancellation.js +0 -114
  91. package/lib/base/common/charCode.d.ts +0 -415
  92. package/lib/base/common/color.d.ts +0 -163
  93. package/lib/base/common/color.js +0 -495
  94. package/lib/base/common/errors.d.ts +0 -65
  95. package/lib/base/common/errors.js +0 -164
  96. package/lib/base/common/event.d.ts +0 -248
  97. package/lib/base/common/event.js +0 -703
  98. package/lib/base/common/functional.d.ts +0 -1
  99. package/lib/base/common/functional.js +0 -21
  100. package/lib/base/common/iterator.d.ts +0 -16
  101. package/lib/base/common/iterator.js +0 -82
  102. package/lib/base/common/keyCodes.d.ts +0 -268
  103. package/lib/base/common/keyCodes.js +0 -292
  104. package/lib/base/common/lifecycle.d.ts +0 -67
  105. package/lib/base/common/lifecycle.js +0 -234
  106. package/lib/base/common/linkedList.d.ts +0 -16
  107. package/lib/base/common/linkedList.js +0 -128
  108. package/lib/base/common/network.d.ts +0 -65
  109. package/lib/base/common/network.js +0 -124
  110. package/lib/base/common/path.d.ts +0 -39
  111. package/lib/base/common/path.js +0 -1407
  112. package/lib/base/common/platform.d.ts +0 -53
  113. package/lib/base/common/platform.js +0 -176
  114. package/lib/base/common/process.d.ts +0 -5
  115. package/lib/base/common/process.js +0 -18
  116. package/lib/base/common/sequence.d.ts +0 -27
  117. package/lib/base/common/sequence.js +0 -32
  118. package/lib/base/common/uri.d.ts +0 -153
  119. package/lib/base/common/uri.js +0 -612
  120. package/lib/browser/iframe.js +0 -109
  121. package/lib/common/charCode.js +0 -6
  122. package/lib/menu.d.ts +0 -53
  123. package/lib/menu.js +0 -532
  124. package/lib/menuitem.d.ts +0 -46
  125. package/lib/menuitem.js +0 -295
  126. package/lib/vs/base/browser/browser.d.ts +0 -25
  127. package/lib/vs/base/browser/browser.js +0 -117
  128. package/lib/vs/base/browser/canIUse.d.ts +0 -18
  129. package/lib/vs/base/browser/canIUse.js +0 -63
  130. package/lib/vs/base/browser/dom.d.ts +0 -230
  131. package/lib/vs/base/browser/dom.js +0 -1080
  132. package/lib/vs/base/browser/event.d.ts +0 -12
  133. package/lib/vs/base/browser/event.js +0 -28
  134. package/lib/vs/base/browser/iframe.d.ts +0 -33
  135. package/lib/vs/base/browser/iframe.js +0 -109
  136. package/lib/vs/base/browser/keyboardEvent.d.ts +0 -40
  137. package/lib/vs/base/browser/keyboardEvent.js +0 -256
  138. package/lib/vs/base/browser/mouseEvent.d.ts +0 -69
  139. package/lib/vs/base/browser/mouseEvent.js +0 -146
  140. package/lib/vs/base/common/arrays.d.ts +0 -149
  141. package/lib/vs/base/common/arrays.js +0 -549
  142. package/lib/vs/base/common/async.d.ts +0 -259
  143. package/lib/vs/base/common/async.js +0 -728
  144. package/lib/vs/base/common/cancellation.d.ts +0 -29
  145. package/lib/vs/base/common/cancellation.js +0 -114
  146. package/lib/vs/base/common/charCode.d.ts +0 -415
  147. package/lib/vs/base/common/charCode.js +0 -6
  148. package/lib/vs/base/common/color.d.ts +0 -163
  149. package/lib/vs/base/common/color.js +0 -495
  150. package/lib/vs/base/common/errors.d.ts +0 -65
  151. package/lib/vs/base/common/errors.js +0 -164
  152. package/lib/vs/base/common/event.d.ts +0 -248
  153. package/lib/vs/base/common/event.js +0 -703
  154. package/lib/vs/base/common/functional.d.ts +0 -1
  155. package/lib/vs/base/common/functional.js +0 -21
  156. package/lib/vs/base/common/iterator.d.ts +0 -16
  157. package/lib/vs/base/common/iterator.js +0 -82
  158. package/lib/vs/base/common/keyCodes.d.ts +0 -268
  159. package/lib/vs/base/common/keyCodes.js +0 -292
  160. package/lib/vs/base/common/lifecycle.d.ts +0 -67
  161. package/lib/vs/base/common/lifecycle.js +0 -234
  162. package/lib/vs/base/common/linkedList.d.ts +0 -16
  163. package/lib/vs/base/common/linkedList.js +0 -128
  164. package/lib/vs/base/common/network.d.ts +0 -65
  165. package/lib/vs/base/common/network.js +0 -124
  166. package/lib/vs/base/common/path.d.ts +0 -39
  167. package/lib/vs/base/common/path.js +0 -1407
  168. package/lib/vs/base/common/platform.d.ts +0 -53
  169. package/lib/vs/base/common/platform.js +0 -176
  170. package/lib/vs/base/common/process.d.ts +0 -5
  171. package/lib/vs/base/common/process.js +0 -18
  172. package/lib/vs/base/common/sequence.d.ts +0 -27
  173. package/lib/vs/base/common/sequence.js +0 -32
  174. package/lib/vs/base/common/uri.d.ts +0 -153
  175. package/lib/vs/base/common/uri.js +0 -612
@@ -1,65 +0,0 @@
1
- export interface ErrorListenerCallback {
2
- (error: any): void;
3
- }
4
- export interface ErrorListenerUnbind {
5
- (): void;
6
- }
7
- export declare class ErrorHandler {
8
- private unexpectedErrorHandler;
9
- private listeners;
10
- constructor();
11
- addListener(listener: ErrorListenerCallback): ErrorListenerUnbind;
12
- private emit;
13
- private _removeListener;
14
- setUnexpectedErrorHandler(newUnexpectedErrorHandler: (e: any) => void): void;
15
- getUnexpectedErrorHandler(): (e: any) => void;
16
- onUnexpectedError(e: any): void;
17
- onUnexpectedExternalError(e: any): void;
18
- }
19
- export declare const errorHandler: ErrorHandler;
20
- export declare function setUnexpectedErrorHandler(newUnexpectedErrorHandler: (e: any) => void): void;
21
- export declare function onUnexpectedError(e: any): undefined;
22
- export declare function onUnexpectedExternalError(e: any): undefined;
23
- export interface SerializedError {
24
- readonly $isError: true;
25
- readonly name: string;
26
- readonly message: string;
27
- readonly stack: string;
28
- }
29
- export declare function transformErrorForSerialization(error: Error): SerializedError;
30
- export declare function transformErrorForSerialization(error: any): any;
31
- export interface V8CallSite {
32
- getThis(): any;
33
- getTypeName(): string;
34
- getFunction(): string;
35
- getFunctionName(): string;
36
- getMethodName(): string;
37
- getFileName(): string;
38
- getLineNumber(): number;
39
- getColumnNumber(): number;
40
- getEvalOrigin(): string;
41
- isToplevel(): boolean;
42
- isEval(): boolean;
43
- isNative(): boolean;
44
- isConstructor(): boolean;
45
- toString(): string;
46
- }
47
- /**
48
- * Checks if the given error is a promise in canceled state
49
- */
50
- export declare function isPromiseCanceledError(error: any): boolean;
51
- /**
52
- * Returns an error that signals cancellation.
53
- */
54
- export declare function canceled(): Error;
55
- export declare function illegalArgument(name?: string): Error;
56
- export declare function illegalState(name?: string): Error;
57
- export declare function readonly(name?: string): Error;
58
- export declare function disposed(what: string): Error;
59
- export declare function getErrorMessage(err: any): string;
60
- export declare class NotImplementedError extends Error {
61
- constructor(message?: string);
62
- }
63
- export declare class NotSupportedError extends Error {
64
- constructor(message?: string);
65
- }
@@ -1,164 +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
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.NotSupportedError = exports.NotImplementedError = exports.getErrorMessage = exports.disposed = exports.readonly = exports.illegalState = exports.illegalArgument = exports.canceled = exports.isPromiseCanceledError = exports.transformErrorForSerialization = exports.onUnexpectedExternalError = exports.onUnexpectedError = exports.setUnexpectedErrorHandler = exports.errorHandler = exports.ErrorHandler = void 0;
8
- // Avoid circular dependency on EventEmitter by implementing a subset of the interface.
9
- class ErrorHandler {
10
- constructor() {
11
- this.listeners = [];
12
- this.unexpectedErrorHandler = function (e) {
13
- setTimeout(() => {
14
- if (e.stack) {
15
- throw new Error(e.message + '\n\n' + e.stack);
16
- }
17
- throw e;
18
- }, 0);
19
- };
20
- }
21
- addListener(listener) {
22
- this.listeners.push(listener);
23
- return () => {
24
- this._removeListener(listener);
25
- };
26
- }
27
- emit(e) {
28
- this.listeners.forEach((listener) => {
29
- listener(e);
30
- });
31
- }
32
- _removeListener(listener) {
33
- this.listeners.splice(this.listeners.indexOf(listener), 1);
34
- }
35
- setUnexpectedErrorHandler(newUnexpectedErrorHandler) {
36
- this.unexpectedErrorHandler = newUnexpectedErrorHandler;
37
- }
38
- getUnexpectedErrorHandler() {
39
- return this.unexpectedErrorHandler;
40
- }
41
- onUnexpectedError(e) {
42
- this.unexpectedErrorHandler(e);
43
- this.emit(e);
44
- }
45
- // For external errors, we don't want the listeners to be called
46
- onUnexpectedExternalError(e) {
47
- this.unexpectedErrorHandler(e);
48
- }
49
- }
50
- exports.ErrorHandler = ErrorHandler;
51
- exports.errorHandler = new ErrorHandler();
52
- function setUnexpectedErrorHandler(newUnexpectedErrorHandler) {
53
- exports.errorHandler.setUnexpectedErrorHandler(newUnexpectedErrorHandler);
54
- }
55
- exports.setUnexpectedErrorHandler = setUnexpectedErrorHandler;
56
- function onUnexpectedError(e) {
57
- // ignore errors from cancelled promises
58
- if (!isPromiseCanceledError(e)) {
59
- exports.errorHandler.onUnexpectedError(e);
60
- }
61
- return undefined;
62
- }
63
- exports.onUnexpectedError = onUnexpectedError;
64
- function onUnexpectedExternalError(e) {
65
- // ignore errors from cancelled promises
66
- if (!isPromiseCanceledError(e)) {
67
- exports.errorHandler.onUnexpectedExternalError(e);
68
- }
69
- return undefined;
70
- }
71
- exports.onUnexpectedExternalError = onUnexpectedExternalError;
72
- function transformErrorForSerialization(error) {
73
- if (error instanceof Error) {
74
- let { name, message } = error;
75
- const stack = error.stacktrace || error.stack;
76
- return {
77
- $isError: true,
78
- name,
79
- message,
80
- stack
81
- };
82
- }
83
- // return as is
84
- return error;
85
- }
86
- exports.transformErrorForSerialization = transformErrorForSerialization;
87
- const canceledName = 'Canceled';
88
- /**
89
- * Checks if the given error is a promise in canceled state
90
- */
91
- function isPromiseCanceledError(error) {
92
- return error instanceof Error && error.name === canceledName && error.message === canceledName;
93
- }
94
- exports.isPromiseCanceledError = isPromiseCanceledError;
95
- /**
96
- * Returns an error that signals cancellation.
97
- */
98
- function canceled() {
99
- const error = new Error(canceledName);
100
- error.name = error.message;
101
- return error;
102
- }
103
- exports.canceled = canceled;
104
- function illegalArgument(name) {
105
- if (name) {
106
- return new Error(`Illegal argument: ${name}`);
107
- }
108
- else {
109
- return new Error('Illegal argument');
110
- }
111
- }
112
- exports.illegalArgument = illegalArgument;
113
- function illegalState(name) {
114
- if (name) {
115
- return new Error(`Illegal state: ${name}`);
116
- }
117
- else {
118
- return new Error('Illegal state');
119
- }
120
- }
121
- exports.illegalState = illegalState;
122
- function readonly(name) {
123
- return name
124
- ? new Error(`readonly property '${name} cannot be changed'`)
125
- : new Error('readonly property cannot be changed');
126
- }
127
- exports.readonly = readonly;
128
- function disposed(what) {
129
- const result = new Error(`${what} has been disposed`);
130
- result.name = 'DISPOSED';
131
- return result;
132
- }
133
- exports.disposed = disposed;
134
- function getErrorMessage(err) {
135
- if (!err) {
136
- return 'Error';
137
- }
138
- if (err.message) {
139
- return err.message;
140
- }
141
- if (err.stack) {
142
- return err.stack.split('\n')[0];
143
- }
144
- return String(err);
145
- }
146
- exports.getErrorMessage = getErrorMessage;
147
- class NotImplementedError extends Error {
148
- constructor(message) {
149
- super('NotImplemented');
150
- if (message) {
151
- this.message = message;
152
- }
153
- }
154
- }
155
- exports.NotImplementedError = NotImplementedError;
156
- class NotSupportedError extends Error {
157
- constructor(message) {
158
- super('NotSupported');
159
- if (message) {
160
- this.message = message;
161
- }
162
- }
163
- }
164
- exports.NotSupportedError = NotSupportedError;
@@ -1,248 +0,0 @@
1
- import { IDisposable, DisposableStore } from './lifecycle';
2
- import { LinkedList } from './linkedList';
3
- import { CancellationToken } from './cancellation';
4
- /**
5
- * To an event a function with one or zero parameters
6
- * can be subscribed. The event is the subscriber function itself.
7
- */
8
- export interface Event<T> {
9
- (listener: (e: T) => any, thisArgs?: any, disposables?: IDisposable[] | DisposableStore): IDisposable;
10
- }
11
- export declare namespace Event {
12
- const None: Event<any>;
13
- /**
14
- * Given an event, returns another event which only fires once.
15
- */
16
- function once<T>(event: Event<T>): Event<T>;
17
- /**
18
- * Given an event and a `map` function, returns another event which maps each element
19
- * through the mapping function.
20
- */
21
- function map<I, O>(event: Event<I>, map: (i: I) => O): Event<O>;
22
- /**
23
- * Given an event and an `each` function, returns another identical event and calls
24
- * the `each` function per each element.
25
- */
26
- function forEach<I>(event: Event<I>, each: (i: I) => void): Event<I>;
27
- /**
28
- * Given an event and a `filter` function, returns another event which emits those
29
- * elements for which the `filter` function returns `true`.
30
- */
31
- function filter<T>(event: Event<T>, filter: (e: T) => boolean): Event<T>;
32
- function filter<T, R>(event: Event<T | R>, filter: (e: T | R) => e is R): Event<R>;
33
- /**
34
- * Given an event, returns the same event but typed as `Event<void>`.
35
- */
36
- function signal<T>(event: Event<T>): Event<void>;
37
- /**
38
- * Given a collection of events, returns a single event which emits
39
- * whenever any of the provided events emit.
40
- */
41
- function any<T>(...events: Event<T>[]): Event<T>;
42
- function any(...events: Event<any>[]): Event<void>;
43
- /**
44
- * Given an event and a `merge` function, returns another event which maps each element
45
- * and the cumulative result through the `merge` function. Similar to `map`, but with memory.
46
- */
47
- function reduce<I, O>(event: Event<I>, merge: (last: O | undefined, event: I) => O, initial?: O): Event<O>;
48
- /**
49
- * Given a chain of event processing functions (filter, map, etc), each
50
- * function will be invoked per event & per listener. Snapshotting an event
51
- * chain allows each function to be invoked just once per event.
52
- */
53
- function snapshot<T>(event: Event<T>): Event<T>;
54
- /**
55
- * Debounces the provided event, given a `merge` function.
56
- *
57
- * @param event The input event.
58
- * @param merge The reducing function.
59
- * @param delay The debouncing delay in millis.
60
- * @param leading Whether the event should fire in the leading phase of the timeout.
61
- * @param leakWarningThreshold The leak warning threshold override.
62
- */
63
- function debounce<T>(event: Event<T>, merge: (last: T | undefined, event: T) => T, delay?: number, leading?: boolean, leakWarningThreshold?: number): Event<T>;
64
- function debounce<I, O>(event: Event<I>, merge: (last: O | undefined, event: I) => O, delay?: number, leading?: boolean, leakWarningThreshold?: number): Event<O>;
65
- /**
66
- * Given an event, it returns another event which fires only once and as soon as
67
- * the input event emits. The event data is the number of millis it took for the
68
- * event to fire.
69
- */
70
- function stopwatch<T>(event: Event<T>): Event<number>;
71
- /**
72
- * Given an event, it returns another event which fires only when the event
73
- * element changes.
74
- */
75
- function latch<T>(event: Event<T>): Event<T>;
76
- /**
77
- * Buffers the provided event until a first listener comes
78
- * along, at which point fire all the events at once and
79
- * pipe the event from then on.
80
- *
81
- * ```typescript
82
- * const emitter = new Emitter<number>();
83
- * const event = emitter.event;
84
- * const bufferedEvent = buffer(event);
85
- *
86
- * emitter.fire(1);
87
- * emitter.fire(2);
88
- * emitter.fire(3);
89
- * // nothing...
90
- *
91
- * const listener = bufferedEvent(num => console.log(num));
92
- * // 1, 2, 3
93
- *
94
- * emitter.fire(4);
95
- * // 4
96
- * ```
97
- */
98
- function buffer<T>(event: Event<T>, nextTick?: boolean, _buffer?: T[]): Event<T>;
99
- interface IChainableEvent<T> {
100
- event: Event<T>;
101
- map<O>(fn: (i: T) => O): IChainableEvent<O>;
102
- forEach(fn: (i: T) => void): IChainableEvent<T>;
103
- filter(fn: (e: T) => boolean): IChainableEvent<T>;
104
- filter<R>(fn: (e: T | R) => e is R): IChainableEvent<R>;
105
- reduce<R>(merge: (last: R | undefined, event: T) => R, initial?: R): IChainableEvent<R>;
106
- latch(): IChainableEvent<T>;
107
- debounce(merge: (last: T | undefined, event: T) => T, delay?: number, leading?: boolean, leakWarningThreshold?: number): IChainableEvent<T>;
108
- debounce<R>(merge: (last: R | undefined, event: T) => R, delay?: number, leading?: boolean, leakWarningThreshold?: number): IChainableEvent<R>;
109
- on(listener: (e: T) => any, thisArgs?: any, disposables?: IDisposable[] | DisposableStore): IDisposable;
110
- once(listener: (e: T) => any, thisArgs?: any, disposables?: IDisposable[]): IDisposable;
111
- }
112
- function chain<T>(event: Event<T>): IChainableEvent<T>;
113
- interface NodeEventEmitter {
114
- on(event: string | symbol, listener: Function): unknown;
115
- removeListener(event: string | symbol, listener: Function): unknown;
116
- }
117
- function fromNodeEventEmitter<T>(emitter: NodeEventEmitter, eventName: string, map?: (...args: any[]) => T): Event<T>;
118
- interface DOMEventEmitter {
119
- addEventListener(event: string | symbol, listener: Function): void;
120
- removeEventListener(event: string | symbol, listener: Function): void;
121
- }
122
- function fromDOMEventEmitter<T>(emitter: DOMEventEmitter, eventName: string, map?: (...args: any[]) => T): Event<T>;
123
- function fromPromise<T = any>(promise: Promise<T>): Event<undefined>;
124
- function toPromise<T>(event: Event<T>): Promise<T>;
125
- }
126
- declare type Listener<T> = [(e: T) => void, any] | ((e: T) => void);
127
- export interface EmitterOptions {
128
- onFirstListenerAdd?: Function;
129
- onFirstListenerDidAdd?: Function;
130
- onListenerDidAdd?: Function;
131
- onLastListenerRemove?: Function;
132
- leakWarningThreshold?: number;
133
- }
134
- export declare function setGlobalLeakWarningThreshold(n: number): IDisposable;
135
- /**
136
- * The Emitter can be used to expose an Event to the public
137
- * to fire it from the insides.
138
- * Sample:
139
- class Document {
140
-
141
- private readonly _onDidChange = new Emitter<(value:string)=>any>();
142
-
143
- public onDidChange = this._onDidChange.event;
144
-
145
- // getter-style
146
- // get onDidChange(): Event<(value:string)=>any> {
147
- // return this._onDidChange.event;
148
- // }
149
-
150
- private _doIt() {
151
- //...
152
- this._onDidChange.fire(value);
153
- }
154
- }
155
- */
156
- export declare class Emitter<T> {
157
- private static readonly _noop;
158
- private readonly _options?;
159
- private readonly _leakageMon?;
160
- private _disposed;
161
- private _event?;
162
- private _deliveryQueue?;
163
- protected _listeners?: LinkedList<Listener<T>>;
164
- constructor(options?: EmitterOptions);
165
- /**
166
- * For the public to allow to subscribe
167
- * to events from this Emitter
168
- */
169
- get event(): Event<T>;
170
- /**
171
- * To be kept private to fire an event to
172
- * subscribers
173
- */
174
- fire(event: T): void;
175
- dispose(): void;
176
- }
177
- export declare class PauseableEmitter<T> extends Emitter<T> {
178
- private _isPaused;
179
- private _eventQueue;
180
- private _mergeFn?;
181
- constructor(options?: EmitterOptions & {
182
- merge?: (input: T[]) => T;
183
- });
184
- pause(): void;
185
- resume(): void;
186
- fire(event: T): void;
187
- }
188
- export interface IWaitUntil {
189
- waitUntil(thenable: Promise<any>): void;
190
- }
191
- export declare class AsyncEmitter<T extends IWaitUntil> extends Emitter<T> {
192
- private _asyncDeliveryQueue?;
193
- fireAsync(data: Omit<T, 'waitUntil'>, token: CancellationToken, promiseJoin?: (p: Promise<any>, listener: Function) => Promise<any>): Promise<void>;
194
- }
195
- export declare class EventMultiplexer<T> implements IDisposable {
196
- private readonly emitter;
197
- private hasListeners;
198
- private events;
199
- constructor();
200
- get event(): Event<T>;
201
- add(event: Event<T>): IDisposable;
202
- private onFirstListenerAdd;
203
- private onLastListenerRemove;
204
- private hook;
205
- private unhook;
206
- dispose(): void;
207
- }
208
- /**
209
- * The EventBufferer is useful in situations in which you want
210
- * to delay firing your events during some code.
211
- * You can wrap that code and be sure that the event will not
212
- * be fired during that wrap.
213
- *
214
- * ```
215
- * const emitter: Emitter;
216
- * const delayer = new EventDelayer();
217
- * const delayedEvent = delayer.wrapEvent(emitter.event);
218
- *
219
- * delayedEvent(console.log);
220
- *
221
- * delayer.bufferEvents(() => {
222
- * emitter.fire(); // event will not be fired yet
223
- * });
224
- *
225
- * // event will only be fired at this point
226
- * ```
227
- */
228
- export declare class EventBufferer {
229
- private buffers;
230
- wrapEvent<T>(event: Event<T>): Event<T>;
231
- bufferEvents<R = void>(fn: () => R): R;
232
- }
233
- /**
234
- * A Relay is an event forwarder which functions as a replugabble event pipe.
235
- * Once created, you can connect an input event to it and it will simply forward
236
- * events from that input event through its own `event` property. The `input`
237
- * can be changed at any point in time.
238
- */
239
- export declare class Relay<T> implements IDisposable {
240
- private listening;
241
- private inputEvent;
242
- private inputEventListener;
243
- private readonly emitter;
244
- readonly event: Event<T>;
245
- set input(event: Event<T>);
246
- dispose(): void;
247
- }
248
- export {};