@theia/core 1.64.0-next.28 → 1.64.0
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.
- package/README.md +6 -6
- package/i18n/nls.cs.json +59 -9
- package/i18n/nls.de.json +59 -9
- package/i18n/nls.es.json +59 -9
- package/i18n/nls.fr.json +59 -9
- package/i18n/nls.hu.json +59 -9
- package/i18n/nls.it.json +59 -9
- package/i18n/nls.ja.json +59 -9
- package/i18n/nls.json +63 -13
- package/i18n/nls.ko.json +59 -9
- package/i18n/nls.pl.json +59 -9
- package/i18n/nls.pt-br.json +59 -9
- package/i18n/nls.ru.json +59 -9
- package/i18n/nls.tr.json +59 -9
- package/i18n/nls.zh-cn.json +59 -9
- package/i18n/nls.zh-tw.json +59 -9
- package/lib/browser/catalog.json +149 -15
- package/lib/browser/context-key-service.d.ts +4 -0
- package/lib/browser/context-key-service.d.ts.map +1 -1
- package/lib/browser/context-key-service.js.map +1 -1
- package/lib/browser/frontend-application-module.js +1 -1
- package/lib/browser/frontend-application-module.js.map +1 -1
- package/lib/browser/menu/browser-menu-plugin.d.ts +1 -1
- package/lib/browser/menu/browser-menu-plugin.d.ts.map +1 -1
- package/lib/browser/menu/browser-menu-plugin.js +2 -2
- package/lib/browser/menu/browser-menu-plugin.js.map +1 -1
- package/lib/browser/preload/i18n-preload-contribution.js +1 -1
- package/lib/browser/preload/i18n-preload-contribution.js.map +1 -1
- package/lib/browser/shell/application-shell.d.ts +1 -1
- package/lib/browser/shell/application-shell.d.ts.map +1 -1
- package/lib/browser/shell/application-shell.js.map +1 -1
- package/lib/common/array-utils.d.ts +4 -0
- package/lib/common/array-utils.d.ts.map +1 -1
- package/lib/common/array-utils.js +47 -0
- package/lib/common/array-utils.js.map +1 -1
- package/lib/common/diff.d.ts +33 -0
- package/lib/common/diff.d.ts.map +1 -0
- package/lib/common/diff.js +20 -0
- package/lib/common/diff.js.map +1 -0
- package/lib/common/message-rpc/msg-pack-extension-manager.js +2 -2
- package/lib/common/message-rpc/msg-pack-extension-manager.js.map +1 -1
- package/lib/common/observable/autorun.d.ts +81 -0
- package/lib/common/observable/autorun.d.ts.map +1 -0
- package/lib/common/observable/autorun.js +194 -0
- package/lib/common/observable/autorun.js.map +1 -0
- package/lib/common/observable/derived-observable.d.ts +71 -0
- package/lib/common/observable/derived-observable.d.ts.map +1 -0
- package/lib/common/observable/derived-observable.js +258 -0
- package/lib/common/observable/derived-observable.js.map +1 -0
- package/lib/common/observable/index.d.ts +8 -0
- package/lib/common/observable/index.d.ts.map +1 -0
- package/lib/common/observable/index.js +26 -0
- package/lib/common/observable/index.js.map +1 -0
- package/lib/common/observable/observable-base.d.ts +181 -0
- package/lib/common/observable/observable-base.d.ts.map +1 -0
- package/lib/common/observable/observable-base.js +183 -0
- package/lib/common/observable/observable-base.js.map +1 -0
- package/lib/common/observable/observable-from-event.d.ts +41 -0
- package/lib/common/observable/observable-from-event.d.ts.map +1 -0
- package/lib/common/observable/observable-from-event.js +115 -0
- package/lib/common/observable/observable-from-event.js.map +1 -0
- package/lib/common/observable/observable-signal.d.ts +9 -0
- package/lib/common/observable/observable-signal.d.ts.map +1 -0
- package/lib/common/observable/observable-signal.js +45 -0
- package/lib/common/observable/observable-signal.js.map +1 -0
- package/lib/common/observable/observable-utils.d.ts +26 -0
- package/lib/common/observable/observable-utils.d.ts.map +1 -0
- package/lib/common/observable/observable-utils.js +98 -0
- package/lib/common/observable/observable-utils.js.map +1 -0
- package/lib/common/observable/observable.spec.d.ts +2 -0
- package/lib/common/observable/observable.spec.d.ts.map +1 -0
- package/lib/common/observable/observable.spec.js +301 -0
- package/lib/common/observable/observable.spec.js.map +1 -0
- package/lib/common/observable/settable-observable.d.ts +16 -0
- package/lib/common/observable/settable-observable.d.ts.map +1 -0
- package/lib/common/observable/settable-observable.js +58 -0
- package/lib/common/observable/settable-observable.js.map +1 -0
- package/package.json +7 -8
- package/src/browser/context-key-service.ts +5 -0
- package/src/browser/frontend-application-module.ts +1 -1
- package/src/browser/menu/browser-menu-plugin.ts +3 -3
- package/src/browser/preload/i18n-preload-contribution.ts +1 -1
- package/src/browser/shell/application-shell.ts +1 -1
- package/src/common/array-utils.ts +53 -0
- package/src/common/diff.ts +56 -0
- package/src/common/message-rpc/msg-pack-extension-manager.ts +2 -2
- package/src/common/observable/autorun.ts +246 -0
- package/src/common/observable/derived-observable.ts +321 -0
- package/src/common/observable/index.ts +23 -0
- package/src/common/observable/observable-base.ts +324 -0
- package/src/common/observable/observable-from-event.ts +148 -0
- package/src/common/observable/observable-signal.ts +48 -0
- package/src/common/observable/observable-utils.ts +119 -0
- package/src/common/observable/observable.spec.ts +342 -0
- package/src/common/observable/settable-observable.ts +73 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/common/observable/index.ts"],"names":[],"mappings":"AAgBA,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// *****************************************************************************
|
|
3
|
+
// Copyright (C) 2025 1C-Soft LLC and others.
|
|
4
|
+
//
|
|
5
|
+
// This program and the accompanying materials are made available under the
|
|
6
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
7
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
8
|
+
//
|
|
9
|
+
// This Source Code may also be made available under the following Secondary
|
|
10
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
11
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
12
|
+
// with the GNU Classpath Exception which is available at
|
|
13
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
14
|
+
//
|
|
15
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
16
|
+
// *****************************************************************************
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
const tslib_1 = require("tslib");
|
|
19
|
+
tslib_1.__exportStar(require("./observable-base"), exports);
|
|
20
|
+
tslib_1.__exportStar(require("./settable-observable"), exports);
|
|
21
|
+
tslib_1.__exportStar(require("./derived-observable"), exports);
|
|
22
|
+
tslib_1.__exportStar(require("./observable-signal"), exports);
|
|
23
|
+
tslib_1.__exportStar(require("./observable-from-event"), exports);
|
|
24
|
+
tslib_1.__exportStar(require("./autorun"), exports);
|
|
25
|
+
tslib_1.__exportStar(require("./observable-utils"), exports);
|
|
26
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/observable/index.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,6CAA6C;AAC7C,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;AAEhF,4DAAkC;AAClC,gEAAsC;AACtC,+DAAqC;AACrC,8DAAoC;AACpC,kEAAwC;AACxC,oDAA0B;AAC1B,6DAAmC"}
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
import { Disposable } from '../disposable';
|
|
2
|
+
/**
|
|
3
|
+
* Represents an observable value.
|
|
4
|
+
*
|
|
5
|
+
* @template T The type of values the observable can hold.
|
|
6
|
+
* @template TChange Describes how or why the observable changed.
|
|
7
|
+
* While observers might miss intermediate values of an observable,
|
|
8
|
+
* they will receive all change notifications as long as they are subscribed.
|
|
9
|
+
*/
|
|
10
|
+
export interface Observable<T, TChange = unknown> {
|
|
11
|
+
/**
|
|
12
|
+
* - If an accessor is given, has the same effect as calling `accessor(this)`.
|
|
13
|
+
* - If no accessor is given, uses the {@link Observable.Accessor.getCurrent current accessor} if it is set.
|
|
14
|
+
* - If no accessor is given and there is no current accessor, has the same effect as calling {@link getUntracked}.
|
|
15
|
+
*/
|
|
16
|
+
get(accessor?: Observable.Accessor): T;
|
|
17
|
+
/**
|
|
18
|
+
* This method is called by the framework and should not typically be called by ordinary clients.
|
|
19
|
+
*
|
|
20
|
+
* Returns the current value of this observable without tracking the access.
|
|
21
|
+
*
|
|
22
|
+
* Calls {@link Observable.Observer.handleChange} if the observable notices that its value has changed.
|
|
23
|
+
*/
|
|
24
|
+
getUntracked(): T;
|
|
25
|
+
/**
|
|
26
|
+
* This method is called by the framework and should not typically be called by ordinary clients.
|
|
27
|
+
*
|
|
28
|
+
* Forces the observable to detect and report a change if any.
|
|
29
|
+
*
|
|
30
|
+
* Has the same effect as calling {@link getUntracked}, but does not force the observable
|
|
31
|
+
* to actually construct the value, e.g. if change deltas are used.
|
|
32
|
+
*
|
|
33
|
+
* Calls {@link Observable.Observer.handleChange} if the observable notices that its value has changed.
|
|
34
|
+
*/
|
|
35
|
+
update(): void;
|
|
36
|
+
/**
|
|
37
|
+
* This method is called by the framework and should not typically be called by ordinary clients.
|
|
38
|
+
*
|
|
39
|
+
* Adds the observer to the set of subscribed observers.
|
|
40
|
+
* This method is idempotent.
|
|
41
|
+
*/
|
|
42
|
+
addObserver(observer: Observable.Observer): void;
|
|
43
|
+
/**
|
|
44
|
+
* This method is called by the framework and should not typically be called by ordinary clients.
|
|
45
|
+
*
|
|
46
|
+
* Removes the observer from the set of subscribed observers.
|
|
47
|
+
* This method is idempotent.
|
|
48
|
+
*/
|
|
49
|
+
removeObserver(observer: Observable.Observer): void;
|
|
50
|
+
/**
|
|
51
|
+
* This property captures the type of change information. It should not be used at runtime.
|
|
52
|
+
*/
|
|
53
|
+
readonly TChange?: TChange;
|
|
54
|
+
}
|
|
55
|
+
export declare namespace Observable {
|
|
56
|
+
type Accessor = <T>(observable: Observable<T>) => T;
|
|
57
|
+
namespace Accessor {
|
|
58
|
+
function getCurrent(): Accessor | undefined;
|
|
59
|
+
function runWithAccessor<T>(run: () => T, accessor: Accessor | undefined): T;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Runs the given function within an invocation context where calling {@link Observable.get} without passing the `accessor` argument
|
|
63
|
+
* will have the same effect as calling {@link Observable.getUntracked}.
|
|
64
|
+
*/
|
|
65
|
+
function noAutoTracking<T>(run: (accessor: Accessor | undefined) => T): T;
|
|
66
|
+
/**
|
|
67
|
+
* Represents an observer that can be subscribed to an observable.
|
|
68
|
+
*
|
|
69
|
+
* If an observer is subscribed to an observable and that observable didn't signal
|
|
70
|
+
* a change through one of the observer methods, the observer can assume that the
|
|
71
|
+
* observable didn't change.
|
|
72
|
+
*
|
|
73
|
+
* If an observable reported a possible change, {@link Observable.update} forces
|
|
74
|
+
* the observable to report the actual change if any.
|
|
75
|
+
*/
|
|
76
|
+
interface Observer {
|
|
77
|
+
/**
|
|
78
|
+
* Signals that the given observable might have changed and an update potentially modifying that observable has started.
|
|
79
|
+
*
|
|
80
|
+
* The method {@link Observable.update} can be used to force the observable to report the change.
|
|
81
|
+
*
|
|
82
|
+
* Every call of this method must eventually be accompanied with the corresponding {@link endUpdate} call.
|
|
83
|
+
*/
|
|
84
|
+
beginUpdate<T>(observable: Observable<T>): void;
|
|
85
|
+
/**
|
|
86
|
+
* Signals that an update that potentially modified the given observable has ended.
|
|
87
|
+
* This is a good place to react to changes.
|
|
88
|
+
*/
|
|
89
|
+
endUpdate<T>(observable: Observable<T>): void;
|
|
90
|
+
/**
|
|
91
|
+
* Signals that the given observable might have changed.
|
|
92
|
+
*
|
|
93
|
+
* The method {@link Observable.update} can be used to force the observable to report the change.
|
|
94
|
+
*
|
|
95
|
+
* This method should not attempt to get the value of the given observable or any other observables.
|
|
96
|
+
*/
|
|
97
|
+
handlePossibleChange<T>(observable: Observable<T>): void;
|
|
98
|
+
/**
|
|
99
|
+
* Signals that the given observable has changed.
|
|
100
|
+
*
|
|
101
|
+
* This method should not attempt to get the value of the given observable or any other observables.
|
|
102
|
+
*/
|
|
103
|
+
handleChange<T, TChange>(observable: Observable<T, TChange>, change?: TChange): void;
|
|
104
|
+
}
|
|
105
|
+
interface ChangeContext<T, TChange> {
|
|
106
|
+
readonly observable: Observable<T, TChange>;
|
|
107
|
+
readonly change: TChange;
|
|
108
|
+
isChangeOf<U, UChange>(observable: Observable<U, UChange>): this is {
|
|
109
|
+
change: UChange;
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* A settable observable.
|
|
114
|
+
*/
|
|
115
|
+
interface Settable<T, TChange> extends Observable<T, TChange> {
|
|
116
|
+
/**
|
|
117
|
+
* Sets the value of this observable.
|
|
118
|
+
* - If no update scope is given, uses the {@link Observable.UpdateScope.getCurrent current update scope} if it is set.
|
|
119
|
+
* - If no update scope is given and there is no current update scope, a local update scope will be created, used, and disposed.
|
|
120
|
+
*/
|
|
121
|
+
set(value: T, change?: TChange, updateScope?: UpdateScope): void;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* An observable signal can be triggered to invalidate observers.
|
|
125
|
+
* Signals don't have a value - when they are triggered they indicate a change.
|
|
126
|
+
*/
|
|
127
|
+
interface Signal<TChange> extends Observable<void, TChange> {
|
|
128
|
+
/**
|
|
129
|
+
* Triggers this observable signal.
|
|
130
|
+
* - If no update scope is given, uses the {@link Observable.UpdateScope.getCurrent current update scope} if it is set.
|
|
131
|
+
* - If no update scope is given and there is no current update scope, a local update scope will be created, used, and disposed.
|
|
132
|
+
*/
|
|
133
|
+
trigger(change?: TChange, updateScope?: UpdateScope): void;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Represents an update scope in which multiple observables can be updated in a batch.
|
|
137
|
+
*/
|
|
138
|
+
class UpdateScope implements Disposable {
|
|
139
|
+
private list;
|
|
140
|
+
/**
|
|
141
|
+
* This method is called by the framework and should not typically be called by ordinary clients.
|
|
142
|
+
*
|
|
143
|
+
* Calls {@link Observer.beginUpdate} immediately, and {@link Observer.endUpdate} when this update scope gets disposed.
|
|
144
|
+
*
|
|
145
|
+
* Note that this method may be called while the update scope is being disposed.
|
|
146
|
+
*/
|
|
147
|
+
push<T>(observer: Observer, observable: Observable<T>): void;
|
|
148
|
+
dispose(): void;
|
|
149
|
+
}
|
|
150
|
+
namespace UpdateScope {
|
|
151
|
+
function getCurrent(): UpdateScope | undefined;
|
|
152
|
+
function runWithUpdateScope<T>(run: () => T, updateScope: UpdateScope | undefined): T;
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Runs the given function within an update scope in which multiple observables can be updated in a batch.
|
|
156
|
+
*/
|
|
157
|
+
function update<T>(run: (scope: UpdateScope) => T, updateScope?: UpdateScope | undefined): T;
|
|
158
|
+
/**
|
|
159
|
+
* Makes sure that the given observable is being observed until the returned disposable is disposed,
|
|
160
|
+
* after which there is no longer a guarantee that the observable is being observed by at least one observer.
|
|
161
|
+
*
|
|
162
|
+
* This function can help keep the cache of a derived observable alive even when there might be no other observers.
|
|
163
|
+
*/
|
|
164
|
+
function keepObserved<T>(observable: Observable<T>): Disposable;
|
|
165
|
+
}
|
|
166
|
+
export declare abstract class AbstractObservable<T, TChange> implements Observable<T, TChange> {
|
|
167
|
+
get(accessor?: Observable.Accessor | undefined): T;
|
|
168
|
+
getUntracked(): T;
|
|
169
|
+
update(): void;
|
|
170
|
+
abstract addObserver(observer: Observable.Observer): void;
|
|
171
|
+
abstract removeObserver(observer: Observable.Observer): void;
|
|
172
|
+
protected abstract getValue(): T;
|
|
173
|
+
}
|
|
174
|
+
export declare abstract class BaseObservable<T, TChange = void> extends AbstractObservable<T, TChange> {
|
|
175
|
+
protected readonly observers: Set<Observable.Observer>;
|
|
176
|
+
addObserver(observer: Observable.Observer): void;
|
|
177
|
+
removeObserver(observer: Observable.Observer): void;
|
|
178
|
+
protected onFirstObserverAdded(): void;
|
|
179
|
+
protected onLastObserverRemoved(): void;
|
|
180
|
+
}
|
|
181
|
+
//# sourceMappingURL=observable-base.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"observable-base.d.ts","sourceRoot":"","sources":["../../../src/common/observable/observable-base.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// *****************************************************************************
|
|
3
|
+
// Copyright (C) 2025 1C-Soft LLC and others.
|
|
4
|
+
//
|
|
5
|
+
// This program and the accompanying materials are made available under the
|
|
6
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
7
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
8
|
+
//
|
|
9
|
+
// This Source Code may also be made available under the following Secondary
|
|
10
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
11
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
12
|
+
// with the GNU Classpath Exception which is available at
|
|
13
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
14
|
+
//
|
|
15
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
16
|
+
// *****************************************************************************
|
|
17
|
+
/*---------------------------------------------------------------------------------------------
|
|
18
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
19
|
+
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
20
|
+
*--------------------------------------------------------------------------------------------*/
|
|
21
|
+
// copied and modified from https://github.com/microsoft/vscode/blob/1.96.3/src/vs/base/common/observableInternal/base.ts
|
|
22
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
23
|
+
exports.BaseObservable = exports.AbstractObservable = exports.Observable = void 0;
|
|
24
|
+
const disposable_1 = require("../disposable");
|
|
25
|
+
var Observable;
|
|
26
|
+
(function (Observable) {
|
|
27
|
+
let Accessor;
|
|
28
|
+
(function (Accessor) {
|
|
29
|
+
let current;
|
|
30
|
+
function getCurrent() {
|
|
31
|
+
return current;
|
|
32
|
+
}
|
|
33
|
+
Accessor.getCurrent = getCurrent;
|
|
34
|
+
function runWithAccessor(run, accessor) {
|
|
35
|
+
const previous = current;
|
|
36
|
+
current = accessor;
|
|
37
|
+
try {
|
|
38
|
+
return run();
|
|
39
|
+
}
|
|
40
|
+
finally {
|
|
41
|
+
current = previous;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
Accessor.runWithAccessor = runWithAccessor;
|
|
45
|
+
})(Accessor = Observable.Accessor || (Observable.Accessor = {}));
|
|
46
|
+
/**
|
|
47
|
+
* Runs the given function within an invocation context where calling {@link Observable.get} without passing the `accessor` argument
|
|
48
|
+
* will have the same effect as calling {@link Observable.getUntracked}.
|
|
49
|
+
*/
|
|
50
|
+
function noAutoTracking(run) {
|
|
51
|
+
const accessor = Accessor.getCurrent();
|
|
52
|
+
return Accessor.runWithAccessor(() => run(accessor), undefined);
|
|
53
|
+
}
|
|
54
|
+
Observable.noAutoTracking = noAutoTracking;
|
|
55
|
+
/**
|
|
56
|
+
* Represents an update scope in which multiple observables can be updated in a batch.
|
|
57
|
+
*/
|
|
58
|
+
class UpdateScope {
|
|
59
|
+
constructor() {
|
|
60
|
+
this.list = [];
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* This method is called by the framework and should not typically be called by ordinary clients.
|
|
64
|
+
*
|
|
65
|
+
* Calls {@link Observer.beginUpdate} immediately, and {@link Observer.endUpdate} when this update scope gets disposed.
|
|
66
|
+
*
|
|
67
|
+
* Note that this method may be called while the update scope is being disposed.
|
|
68
|
+
*/
|
|
69
|
+
push(observer, observable) {
|
|
70
|
+
if (this.list) {
|
|
71
|
+
this.list.push({ observer, observable });
|
|
72
|
+
observer.beginUpdate(observable);
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
throw new Error('Update scope has been disposed');
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
dispose() {
|
|
79
|
+
const list = this.list;
|
|
80
|
+
if (list) {
|
|
81
|
+
// Note: `this.push` may be called from `observer.endUpdate` directly or indirectly. This code supports it.
|
|
82
|
+
UpdateScope.runWithUpdateScope(() => {
|
|
83
|
+
for (let i = 0; i < list.length; i++) {
|
|
84
|
+
const { observer, observable } = list[i];
|
|
85
|
+
observer.endUpdate(observable);
|
|
86
|
+
}
|
|
87
|
+
}, this);
|
|
88
|
+
}
|
|
89
|
+
this.list = undefined;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
Observable.UpdateScope = UpdateScope;
|
|
93
|
+
(function (UpdateScope) {
|
|
94
|
+
let current;
|
|
95
|
+
function getCurrent() {
|
|
96
|
+
return current;
|
|
97
|
+
}
|
|
98
|
+
UpdateScope.getCurrent = getCurrent;
|
|
99
|
+
function runWithUpdateScope(run, updateScope) {
|
|
100
|
+
const previous = current;
|
|
101
|
+
current = updateScope;
|
|
102
|
+
try {
|
|
103
|
+
return run();
|
|
104
|
+
}
|
|
105
|
+
finally {
|
|
106
|
+
current = previous;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
UpdateScope.runWithUpdateScope = runWithUpdateScope;
|
|
110
|
+
})(UpdateScope = Observable.UpdateScope || (Observable.UpdateScope = {}));
|
|
111
|
+
/**
|
|
112
|
+
* Runs the given function within an update scope in which multiple observables can be updated in a batch.
|
|
113
|
+
*/
|
|
114
|
+
function update(run, updateScope = UpdateScope.getCurrent()) {
|
|
115
|
+
const ownsUpdateScope = !updateScope;
|
|
116
|
+
if (!updateScope) {
|
|
117
|
+
updateScope = new UpdateScope();
|
|
118
|
+
}
|
|
119
|
+
try {
|
|
120
|
+
return UpdateScope.runWithUpdateScope(() => run(updateScope), updateScope);
|
|
121
|
+
}
|
|
122
|
+
finally {
|
|
123
|
+
if (ownsUpdateScope) {
|
|
124
|
+
updateScope.dispose();
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
Observable.update = update;
|
|
129
|
+
/**
|
|
130
|
+
* Makes sure that the given observable is being observed until the returned disposable is disposed,
|
|
131
|
+
* after which there is no longer a guarantee that the observable is being observed by at least one observer.
|
|
132
|
+
*
|
|
133
|
+
* This function can help keep the cache of a derived observable alive even when there might be no other observers.
|
|
134
|
+
*/
|
|
135
|
+
function keepObserved(observable) {
|
|
136
|
+
const observer = {
|
|
137
|
+
beginUpdate: () => { },
|
|
138
|
+
endUpdate: () => { },
|
|
139
|
+
handlePossibleChange: () => { },
|
|
140
|
+
handleChange: () => { }
|
|
141
|
+
};
|
|
142
|
+
observable.addObserver(observer);
|
|
143
|
+
return disposable_1.Disposable.create(() => {
|
|
144
|
+
observable.removeObserver(observer);
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
Observable.keepObserved = keepObserved;
|
|
148
|
+
})(Observable || (exports.Observable = Observable = {}));
|
|
149
|
+
class AbstractObservable {
|
|
150
|
+
get(accessor = Observable.Accessor.getCurrent()) {
|
|
151
|
+
return accessor ? accessor(this) : this.getValue();
|
|
152
|
+
}
|
|
153
|
+
getUntracked() {
|
|
154
|
+
return this.getValue();
|
|
155
|
+
}
|
|
156
|
+
update() {
|
|
157
|
+
this.getValue();
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
exports.AbstractObservable = AbstractObservable;
|
|
161
|
+
class BaseObservable extends AbstractObservable {
|
|
162
|
+
constructor() {
|
|
163
|
+
super(...arguments);
|
|
164
|
+
this.observers = new Set();
|
|
165
|
+
}
|
|
166
|
+
addObserver(observer) {
|
|
167
|
+
const isFirst = this.observers.size === 0;
|
|
168
|
+
this.observers.add(observer);
|
|
169
|
+
if (isFirst) {
|
|
170
|
+
this.onFirstObserverAdded();
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
removeObserver(observer) {
|
|
174
|
+
const deleted = this.observers.delete(observer);
|
|
175
|
+
if (deleted && this.observers.size === 0) {
|
|
176
|
+
this.onLastObserverRemoved();
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
onFirstObserverAdded() { }
|
|
180
|
+
onLastObserverRemoved() { }
|
|
181
|
+
}
|
|
182
|
+
exports.BaseObservable = BaseObservable;
|
|
183
|
+
//# sourceMappingURL=observable-base.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"observable-base.js","sourceRoot":"","sources":["../../../src/common/observable/observable-base.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { Disposable } from '../disposable';
|
|
2
|
+
import { Event } from '../event';
|
|
3
|
+
import { BaseObservable, Observable } from './observable-base';
|
|
4
|
+
export declare class ObservableFromEvent<T, E> extends BaseObservable<T> {
|
|
5
|
+
protected readonly event: Event<E>;
|
|
6
|
+
protected readonly compute: (e: E | undefined) => T;
|
|
7
|
+
protected value?: T;
|
|
8
|
+
protected subscription?: Disposable;
|
|
9
|
+
protected readonly isEqual: (a: T, b: T) => boolean;
|
|
10
|
+
protected readonly getUpdateScope: () => Observable.UpdateScope | undefined;
|
|
11
|
+
constructor(event: Event<E>, compute: (e: E | undefined) => T, options?: ObservableFromEvent.Options<T>);
|
|
12
|
+
protected handleEvent(e: E | undefined): void;
|
|
13
|
+
protected onFirstObserverAdded(): void;
|
|
14
|
+
protected onLastObserverRemoved(): void;
|
|
15
|
+
protected hasValue(): boolean;
|
|
16
|
+
protected getValue(): T;
|
|
17
|
+
}
|
|
18
|
+
export declare namespace ObservableFromEvent {
|
|
19
|
+
function create<T, E>(event: Event<E>, compute: (e: E | undefined) => T, options?: Options<T>): Observable<T, void>;
|
|
20
|
+
interface Options<T> {
|
|
21
|
+
isEqual?: (a: T, b: T) => boolean;
|
|
22
|
+
getUpdateScope?: () => Observable.UpdateScope | undefined;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
export declare class ObservableSignalFromEvent extends BaseObservable<void> {
|
|
26
|
+
protected readonly event: Event<unknown>;
|
|
27
|
+
protected subscription?: Disposable;
|
|
28
|
+
protected readonly getUpdateScope: () => Observable.UpdateScope | undefined;
|
|
29
|
+
constructor(event: Event<unknown>, options?: ObservableSignalFromEvent.Options);
|
|
30
|
+
protected handleEvent(): void;
|
|
31
|
+
protected onFirstObserverAdded(): void;
|
|
32
|
+
protected onLastObserverRemoved(): void;
|
|
33
|
+
protected getValue(): void;
|
|
34
|
+
}
|
|
35
|
+
export declare namespace ObservableSignalFromEvent {
|
|
36
|
+
function create(event: Event<unknown>): Observable<void>;
|
|
37
|
+
interface Options {
|
|
38
|
+
getUpdateScope?: () => Observable.UpdateScope | undefined;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=observable-from-event.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"observable-from-event.d.ts","sourceRoot":"","sources":["../../../src/common/observable/observable-from-event.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/D,qBAAa,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAE,SAAQ,cAAc,CAAC,CAAC,CAAC;IAQxD,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IAClC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,KAAK,CAAC;IAPvD,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACpB,SAAS,CAAC,YAAY,CAAC,EAAE,UAAU,CAAC;IACpC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC;IACpD,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,MAAM,UAAU,CAAC,WAAW,GAAG,SAAS,CAAC;gBAGrD,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EACf,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,KAAK,CAAC,EACnD,OAAO,CAAC,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC;IAO5C,SAAS,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,GAAG,IAAI;cAoB1B,oBAAoB,IAAI,IAAI;cAI5B,qBAAqB,IAAI,IAAI;IAMhD,SAAS,CAAC,QAAQ,IAAI,OAAO;cAIV,QAAQ,IAAI,CAAC;CAUnC;AAED,yBAAiB,mBAAmB,CAAC;IAEjC,SAAgB,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,KAAK,CAAC,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAEzH;IAED,UAAiB,OAAO,CAAC,CAAC;QACtB,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC;QAClC,cAAc,CAAC,EAAE,MAAM,UAAU,CAAC,WAAW,GAAG,SAAS,CAAC;KAC7D;CACJ;AAED,qBAAa,yBAA0B,SAAQ,cAAc,CAAC,IAAI,CAAC;IAM3D,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC;IAJ5C,SAAS,CAAC,YAAY,CAAC,EAAE,UAAU,CAAC;IACpC,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,MAAM,UAAU,CAAC,WAAW,GAAG,SAAS,CAAC;gBAGrD,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,EACxC,OAAO,CAAC,EAAE,yBAAyB,CAAC,OAAO;IAM/C,SAAS,CAAC,WAAW,IAAI,IAAI;cAWV,oBAAoB,IAAI,IAAI;cAI5B,qBAAqB,IAAI,IAAI;cAK7B,QAAQ,IAAI,IAAI;CAGtC;AAED,yBAAiB,yBAAyB,CAAC;IAEvC,SAAgB,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,CAE9D;IAED,UAAiB,OAAO;QACpB,cAAc,CAAC,EAAE,MAAM,UAAU,CAAC,WAAW,GAAG,SAAS,CAAC;KAC7D;CACJ"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// *****************************************************************************
|
|
3
|
+
// Copyright (C) 2025 1C-Soft LLC and others.
|
|
4
|
+
//
|
|
5
|
+
// This program and the accompanying materials are made available under the
|
|
6
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
7
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
8
|
+
//
|
|
9
|
+
// This Source Code may also be made available under the following Secondary
|
|
10
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
11
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
12
|
+
// with the GNU Classpath Exception which is available at
|
|
13
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
14
|
+
//
|
|
15
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
16
|
+
// *****************************************************************************
|
|
17
|
+
/*---------------------------------------------------------------------------------------------
|
|
18
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
19
|
+
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
20
|
+
*--------------------------------------------------------------------------------------------*/
|
|
21
|
+
// copied and modified from https://github.com/microsoft/vscode/blob/1.96.3/src/vs/base/common/observableInternal/utils.ts
|
|
22
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
23
|
+
exports.ObservableSignalFromEvent = exports.ObservableFromEvent = void 0;
|
|
24
|
+
const observable_base_1 = require("./observable-base");
|
|
25
|
+
class ObservableFromEvent extends observable_base_1.BaseObservable {
|
|
26
|
+
constructor(event, compute, options) {
|
|
27
|
+
var _a, _b;
|
|
28
|
+
super();
|
|
29
|
+
this.event = event;
|
|
30
|
+
this.compute = compute;
|
|
31
|
+
this.isEqual = (_a = options === null || options === void 0 ? void 0 : options.isEqual) !== null && _a !== void 0 ? _a : ((a, b) => a === b);
|
|
32
|
+
this.getUpdateScope = (_b = options === null || options === void 0 ? void 0 : options.getUpdateScope) !== null && _b !== void 0 ? _b : observable_base_1.Observable.UpdateScope.getCurrent;
|
|
33
|
+
}
|
|
34
|
+
handleEvent(e) {
|
|
35
|
+
const hadValue = this.hasValue();
|
|
36
|
+
const oldValue = this.value;
|
|
37
|
+
this.value = this.compute(e);
|
|
38
|
+
const didChange = hadValue && !this.isEqual(oldValue, this.value);
|
|
39
|
+
if (didChange) {
|
|
40
|
+
observable_base_1.Observable.update(scope => {
|
|
41
|
+
for (const observer of this.observers) {
|
|
42
|
+
scope.push(observer, this);
|
|
43
|
+
observer.handleChange(this);
|
|
44
|
+
}
|
|
45
|
+
}, this.getUpdateScope());
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
;
|
|
49
|
+
onFirstObserverAdded() {
|
|
50
|
+
this.subscription = this.event(this.handleEvent, this);
|
|
51
|
+
}
|
|
52
|
+
onLastObserverRemoved() {
|
|
53
|
+
var _a;
|
|
54
|
+
(_a = this.subscription) === null || _a === void 0 ? void 0 : _a.dispose();
|
|
55
|
+
this.subscription = undefined;
|
|
56
|
+
delete this.value;
|
|
57
|
+
}
|
|
58
|
+
hasValue() {
|
|
59
|
+
return 'value' in this;
|
|
60
|
+
}
|
|
61
|
+
getValue() {
|
|
62
|
+
if (this.subscription) {
|
|
63
|
+
if (!this.hasValue()) {
|
|
64
|
+
this.handleEvent(undefined);
|
|
65
|
+
}
|
|
66
|
+
return this.value;
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
return this.compute(undefined);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
exports.ObservableFromEvent = ObservableFromEvent;
|
|
74
|
+
(function (ObservableFromEvent) {
|
|
75
|
+
function create(event, compute, options) {
|
|
76
|
+
return new ObservableFromEvent(event, compute, options);
|
|
77
|
+
}
|
|
78
|
+
ObservableFromEvent.create = create;
|
|
79
|
+
})(ObservableFromEvent || (exports.ObservableFromEvent = ObservableFromEvent = {}));
|
|
80
|
+
class ObservableSignalFromEvent extends observable_base_1.BaseObservable {
|
|
81
|
+
constructor(event, options) {
|
|
82
|
+
var _a;
|
|
83
|
+
super();
|
|
84
|
+
this.event = event;
|
|
85
|
+
this.getUpdateScope = (_a = options === null || options === void 0 ? void 0 : options.getUpdateScope) !== null && _a !== void 0 ? _a : observable_base_1.Observable.UpdateScope.getCurrent;
|
|
86
|
+
}
|
|
87
|
+
handleEvent() {
|
|
88
|
+
observable_base_1.Observable.update(scope => {
|
|
89
|
+
for (const observer of this.observers) {
|
|
90
|
+
scope.push(observer, this);
|
|
91
|
+
observer.handleChange(this);
|
|
92
|
+
}
|
|
93
|
+
}, this.getUpdateScope());
|
|
94
|
+
}
|
|
95
|
+
;
|
|
96
|
+
onFirstObserverAdded() {
|
|
97
|
+
this.subscription = this.event(this.handleEvent, this);
|
|
98
|
+
}
|
|
99
|
+
onLastObserverRemoved() {
|
|
100
|
+
var _a;
|
|
101
|
+
(_a = this.subscription) === null || _a === void 0 ? void 0 : _a.dispose();
|
|
102
|
+
this.subscription = undefined;
|
|
103
|
+
}
|
|
104
|
+
getValue() {
|
|
105
|
+
// NO OP
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
exports.ObservableSignalFromEvent = ObservableSignalFromEvent;
|
|
109
|
+
(function (ObservableSignalFromEvent) {
|
|
110
|
+
function create(event) {
|
|
111
|
+
return new ObservableSignalFromEvent(event);
|
|
112
|
+
}
|
|
113
|
+
ObservableSignalFromEvent.create = create;
|
|
114
|
+
})(ObservableSignalFromEvent || (exports.ObservableSignalFromEvent = ObservableSignalFromEvent = {}));
|
|
115
|
+
//# sourceMappingURL=observable-from-event.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"observable-from-event.js","sourceRoot":"","sources":["../../../src/common/observable/observable-from-event.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { BaseObservable, Observable } from './observable-base';
|
|
2
|
+
export declare class ObservableSignal<TChange> extends BaseObservable<void, TChange> implements Observable.Signal<TChange> {
|
|
3
|
+
trigger(change?: TChange, updateScope?: Observable.UpdateScope | undefined): void;
|
|
4
|
+
protected getValue(): void;
|
|
5
|
+
}
|
|
6
|
+
export declare namespace ObservableSignal {
|
|
7
|
+
function create<TChange = void>(): Observable.Signal<TChange>;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=observable-signal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"observable-signal.d.ts","sourceRoot":"","sources":["../../../src/common/observable/observable-signal.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/D,qBAAa,gBAAgB,CAAC,OAAO,CAAE,SAAQ,cAAc,CAAC,IAAI,EAAE,OAAO,CAAE,YAAW,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC;IAE9G,OAAO,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,WAAW,qCAAsC,GAAG,IAAI;cAY/D,QAAQ,IAAI,IAAI;CAGtC;AAED,yBAAiB,gBAAgB,CAAC;IAE9B,SAAgB,MAAM,CAAC,OAAO,GAAG,IAAI,KAAK,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAEnE;CACJ"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// *****************************************************************************
|
|
3
|
+
// Copyright (C) 2025 1C-Soft LLC and others.
|
|
4
|
+
//
|
|
5
|
+
// This program and the accompanying materials are made available under the
|
|
6
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
7
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
8
|
+
//
|
|
9
|
+
// This Source Code may also be made available under the following Secondary
|
|
10
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
11
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
12
|
+
// with the GNU Classpath Exception which is available at
|
|
13
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
14
|
+
//
|
|
15
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
16
|
+
// *****************************************************************************
|
|
17
|
+
/*---------------------------------------------------------------------------------------------
|
|
18
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
19
|
+
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
20
|
+
*--------------------------------------------------------------------------------------------*/
|
|
21
|
+
// copied and modified from https://github.com/microsoft/vscode/blob/1.96.3/src/vs/base/common/observableInternal/utils.ts
|
|
22
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
23
|
+
exports.ObservableSignal = void 0;
|
|
24
|
+
const observable_base_1 = require("./observable-base");
|
|
25
|
+
class ObservableSignal extends observable_base_1.BaseObservable {
|
|
26
|
+
trigger(change, updateScope = observable_base_1.Observable.UpdateScope.getCurrent()) {
|
|
27
|
+
observable_base_1.Observable.update(scope => {
|
|
28
|
+
for (const observer of this.observers) {
|
|
29
|
+
scope.push(observer, this);
|
|
30
|
+
observer.handleChange(this, change);
|
|
31
|
+
}
|
|
32
|
+
}, updateScope);
|
|
33
|
+
}
|
|
34
|
+
getValue() {
|
|
35
|
+
// NO OP
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
exports.ObservableSignal = ObservableSignal;
|
|
39
|
+
(function (ObservableSignal) {
|
|
40
|
+
function create() {
|
|
41
|
+
return new ObservableSignal();
|
|
42
|
+
}
|
|
43
|
+
ObservableSignal.create = create;
|
|
44
|
+
})(ObservableSignal || (exports.ObservableSignal = ObservableSignal = {}));
|
|
45
|
+
//# sourceMappingURL=observable-signal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"observable-signal.js","sourceRoot":"","sources":["../../../src/common/observable/observable-signal.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,6CAA6C;AAC7C,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;AAChF;;;gGAGgG;AAChG,0HAA0H;;;AAE1H,uDAA+D;AAE/D,MAAa,gBAA0B,SAAQ,gCAA6B;IAExE,OAAO,CAAC,MAAgB,EAAE,WAAW,GAAG,4BAAU,CAAC,WAAW,CAAC,UAAU,EAAE;QAEvE,4BAAU,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;YAEtB,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACpC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;gBAC3B,QAAQ,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACxC,CAAC;QAEL,CAAC,EAAE,WAAW,CAAC,CAAC;IACpB,CAAC;IAEkB,QAAQ;QACvB,QAAQ;IACZ,CAAC;CACJ;AAjBD,4CAiBC;AAED,WAAiB,gBAAgB;IAE7B,SAAgB,MAAM;QAClB,OAAO,IAAI,gBAAgB,EAAE,CAAC;IAClC,CAAC;IAFe,uBAAM,SAErB,CAAA;AACL,CAAC,EALgB,gBAAgB,gCAAhB,gBAAgB,QAKhC"}
|