@vscode/observables 0.1.1-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/LICENSE +21 -0
- package/README.md +164 -0
- package/dist/assert.d.ts +3 -0
- package/dist/assert.d.ts.map +1 -0
- package/dist/deps.d.ts +29 -0
- package/dist/deps.d.ts.map +1 -0
- package/dist/disposables.d.ts +20 -0
- package/dist/disposables.d.ts.map +1 -0
- package/dist/disposables.js +66 -0
- package/dist/disposables.js.map +1 -0
- package/dist/equals.d.ts +33 -0
- package/dist/equals.d.ts.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +27 -0
- package/dist/index.js.map +1 -0
- package/dist/index.min.js +124 -0
- package/dist/index.min.js.map +1 -0
- package/dist/observableInternal/base.d.ts +173 -0
- package/dist/observableInternal/base.d.ts.map +1 -0
- package/dist/observableInternal/base.js +21 -0
- package/dist/observableInternal/base.js.map +1 -0
- package/dist/observableInternal/changeTracker.d.ts +45 -0
- package/dist/observableInternal/changeTracker.d.ts.map +1 -0
- package/dist/observableInternal/changeTracker.js +78 -0
- package/dist/observableInternal/changeTracker.js.map +1 -0
- package/dist/observableInternal/commonFacade/cancellation.d.ts +25 -0
- package/dist/observableInternal/commonFacade/cancellation.d.ts.map +1 -0
- package/dist/observableInternal/commonFacade/cancellation.js +55 -0
- package/dist/observableInternal/commonFacade/cancellation.js.map +1 -0
- package/dist/observableInternal/commonFacade/deps.d.ts +25 -0
- package/dist/observableInternal/commonFacade/deps.d.ts.map +1 -0
- package/dist/observableInternal/commonFacade/deps.js +37 -0
- package/dist/observableInternal/commonFacade/deps.js.map +1 -0
- package/dist/observableInternal/debugLocation.d.ts +22 -0
- package/dist/observableInternal/debugLocation.d.ts.map +1 -0
- package/dist/observableInternal/debugLocation.js +77 -0
- package/dist/observableInternal/debugLocation.js.map +1 -0
- package/dist/observableInternal/debugName.d.ts +34 -0
- package/dist/observableInternal/debugName.d.ts.map +1 -0
- package/dist/observableInternal/debugName.js +114 -0
- package/dist/observableInternal/debugName.js.map +1 -0
- package/dist/observableInternal/experimental/deferUnobserve.d.ts +17 -0
- package/dist/observableInternal/experimental/deferUnobserve.d.ts.map +1 -0
- package/dist/observableInternal/experimental/deferUnobserve.js +68 -0
- package/dist/observableInternal/experimental/deferUnobserve.js.map +1 -0
- package/dist/observableInternal/experimental/reducer.d.ts +38 -0
- package/dist/observableInternal/experimental/reducer.d.ts.map +1 -0
- package/dist/observableInternal/experimental/utils.d.ts +16 -0
- package/dist/observableInternal/experimental/utils.d.ts.map +1 -0
- package/dist/observableInternal/experimental/utils.js +64 -0
- package/dist/observableInternal/experimental/utils.js.map +1 -0
- package/dist/observableInternal/index.d.ts +26 -0
- package/dist/observableInternal/index.d.ts.map +1 -0
- package/dist/observableInternal/index.js +21 -0
- package/dist/observableInternal/index.js.map +1 -0
- package/dist/observableInternal/logging/consoleObservableLogger.d.ts +41 -0
- package/dist/observableInternal/logging/consoleObservableLogger.d.ts.map +1 -0
- package/dist/observableInternal/logging/consoleObservableLogger.js +355 -0
- package/dist/observableInternal/logging/consoleObservableLogger.js.map +1 -0
- package/dist/observableInternal/logging/debugGetDependencyGraph.d.ts +5 -0
- package/dist/observableInternal/logging/debugGetDependencyGraph.d.ts.map +1 -0
- package/dist/observableInternal/logging/debugGetDependencyGraph.js +78 -0
- package/dist/observableInternal/logging/debugGetDependencyGraph.js.map +1 -0
- package/dist/observableInternal/logging/debugger/debuggerRpc.d.ts +5 -0
- package/dist/observableInternal/logging/debugger/debuggerRpc.d.ts.map +1 -0
- package/dist/observableInternal/logging/debugger/devToolsLogger.d.ts +44 -0
- package/dist/observableInternal/logging/debugger/devToolsLogger.d.ts.map +1 -0
- package/dist/observableInternal/logging/debugger/rpc.d.ts +42 -0
- package/dist/observableInternal/logging/debugger/rpc.d.ts.map +1 -0
- package/dist/observableInternal/logging/debugger/utils.d.ts +14 -0
- package/dist/observableInternal/logging/debugger/utils.d.ts.map +1 -0
- package/dist/observableInternal/logging/logging.d.ts +31 -0
- package/dist/observableInternal/logging/logging.d.ts.map +1 -0
- package/dist/observableInternal/logging/logging.js +100 -0
- package/dist/observableInternal/logging/logging.js.map +1 -0
- package/dist/observableInternal/map.d.ts +19 -0
- package/dist/observableInternal/map.d.ts.map +1 -0
- package/dist/observableInternal/map.js +71 -0
- package/dist/observableInternal/map.js.map +1 -0
- package/dist/observableInternal/observables/baseObservable.d.ts +59 -0
- package/dist/observableInternal/observables/baseObservable.d.ts.map +1 -0
- package/dist/observableInternal/observables/baseObservable.js +142 -0
- package/dist/observableInternal/observables/baseObservable.js.map +1 -0
- package/dist/observableInternal/observables/constObservable.d.ts +6 -0
- package/dist/observableInternal/observables/constObservable.d.ts.map +1 -0
- package/dist/observableInternal/observables/constObservable.js +43 -0
- package/dist/observableInternal/observables/constObservable.js.map +1 -0
- package/dist/observableInternal/observables/derived.d.ts +47 -0
- package/dist/observableInternal/observables/derived.d.ts.map +1 -0
- package/dist/observableInternal/observables/derived.js +102 -0
- package/dist/observableInternal/observables/derived.js.map +1 -0
- package/dist/observableInternal/observables/derivedImpl.d.ts +84 -0
- package/dist/observableInternal/observables/derivedImpl.d.ts.map +1 -0
- package/dist/observableInternal/observables/derivedImpl.js +370 -0
- package/dist/observableInternal/observables/derivedImpl.js.map +1 -0
- package/dist/observableInternal/observables/lazyObservableValue.d.ts +28 -0
- package/dist/observableInternal/observables/lazyObservableValue.d.ts.map +1 -0
- package/dist/observableInternal/observables/lazyObservableValue.js +130 -0
- package/dist/observableInternal/observables/lazyObservableValue.js.map +1 -0
- package/dist/observableInternal/observables/observableFromEvent.d.ts +38 -0
- package/dist/observableInternal/observables/observableFromEvent.d.ts.map +1 -0
- package/dist/observableInternal/observables/observableFromEvent.js +125 -0
- package/dist/observableInternal/observables/observableFromEvent.js.map +1 -0
- package/dist/observableInternal/observables/observableSignal.d.ts +12 -0
- package/dist/observableInternal/observables/observableSignal.d.ts.map +1 -0
- package/dist/observableInternal/observables/observableSignal.js +52 -0
- package/dist/observableInternal/observables/observableSignal.js.map +1 -0
- package/dist/observableInternal/observables/observableSignalFromEvent.d.ts +6 -0
- package/dist/observableInternal/observables/observableSignalFromEvent.d.ts.map +1 -0
- package/dist/observableInternal/observables/observableSignalFromEvent.js +46 -0
- package/dist/observableInternal/observables/observableSignalFromEvent.js.map +1 -0
- package/dist/observableInternal/observables/observableValue.d.ts +38 -0
- package/dist/observableInternal/observables/observableValue.d.ts.map +1 -0
- package/dist/observableInternal/observables/observableValue.js +108 -0
- package/dist/observableInternal/observables/observableValue.js.map +1 -0
- package/dist/observableInternal/observables/observableValueOpts.d.ts +9 -0
- package/dist/observableInternal/observables/observableValueOpts.d.ts.map +1 -0
- package/dist/observableInternal/observables/observableValueOpts.js +23 -0
- package/dist/observableInternal/observables/observableValueOpts.js.map +1 -0
- package/dist/observableInternal/reactions/createEffect.d.ts +65 -0
- package/dist/observableInternal/reactions/createEffect.d.ts.map +1 -0
- package/dist/observableInternal/reactions/createEffect.js +148 -0
- package/dist/observableInternal/reactions/createEffect.js.map +1 -0
- package/dist/observableInternal/reactions/createEffectImpl.d.ts +54 -0
- package/dist/observableInternal/reactions/createEffectImpl.d.ts.map +1 -0
- package/dist/observableInternal/reactions/createEffectImpl.js +225 -0
- package/dist/observableInternal/reactions/createEffectImpl.js.map +1 -0
- package/dist/observableInternal/set.d.ts +18 -0
- package/dist/observableInternal/set.d.ts.map +1 -0
- package/dist/observableInternal/set.js +69 -0
- package/dist/observableInternal/set.js.map +1 -0
- package/dist/observableInternal/transaction.d.ts +28 -0
- package/dist/observableInternal/transaction.d.ts.map +1 -0
- package/dist/observableInternal/transaction.js +114 -0
- package/dist/observableInternal/transaction.js.map +1 -0
- package/dist/observableInternal/utils/promise.d.ts +76 -0
- package/dist/observableInternal/utils/promise.d.ts.map +1 -0
- package/dist/observableInternal/utils/promise.js +112 -0
- package/dist/observableInternal/utils/promise.js.map +1 -0
- package/dist/observableInternal/utils/runOnChange.d.ts +8 -0
- package/dist/observableInternal/utils/runOnChange.d.ts.map +1 -0
- package/dist/observableInternal/utils/runOnChange.js +64 -0
- package/dist/observableInternal/utils/runOnChange.js.map +1 -0
- package/dist/observableInternal/utils/utils.d.ts +44 -0
- package/dist/observableInternal/utils/utils.d.ts.map +1 -0
- package/dist/observableInternal/utils/utils.js +249 -0
- package/dist/observableInternal/utils/utils.js.map +1 -0
- package/dist/observableInternal/utils/utilsCancellation.d.ts +11 -0
- package/dist/observableInternal/utils/utilsCancellation.d.ts.map +1 -0
- package/dist/observableInternal/utils/utilsCancellation.js +91 -0
- package/dist/observableInternal/utils/utilsCancellation.js.map +1 -0
- package/dist/observableInternal/utils/valueWithChangeEvent.d.ts +11 -0
- package/dist/observableInternal/utils/valueWithChangeEvent.d.ts.map +1 -0
- package/dist/observableInternal/utils/valueWithChangeEvent.js +48 -0
- package/dist/observableInternal/utils/valueWithChangeEvent.js.map +1 -0
- package/dist/utils.d.ts +16 -0
- package/dist/utils.d.ts.map +1 -0
- package/package.json +50 -0
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { IObservable, ITransaction } from '../base';
|
|
2
|
+
import { EqualityComparer, Event } from '../commonFacade/deps';
|
|
3
|
+
import { DebugOwner, DebugNameData, IDebugNameData } from '../debugName';
|
|
4
|
+
import { BaseObservable } from './baseObservable';
|
|
5
|
+
import { DebugLocation } from '../debugLocation';
|
|
6
|
+
export declare function observableFromEvent<T, TArgs = unknown>(owner: DebugOwner, event: Event<TArgs>, getValue: (args: TArgs | undefined) => T, debugLocation?: DebugLocation): IObservable<T>;
|
|
7
|
+
export declare function observableFromEvent<T, TArgs = unknown>(event: Event<TArgs>, getValue: (args: TArgs | undefined) => T): IObservable<T>;
|
|
8
|
+
export declare function observableFromEventOpts<T, TArgs = unknown>(options: IDebugNameData & {
|
|
9
|
+
equalsFn?: EqualityComparer<T>;
|
|
10
|
+
}, event: Event<TArgs>, getValue: (args: TArgs | undefined) => T, debugLocation?: DebugLocation): IObservable<T>;
|
|
11
|
+
export declare class FromEventObservable<TArgs, T> extends BaseObservable<T> {
|
|
12
|
+
private readonly _debugNameData;
|
|
13
|
+
private readonly event;
|
|
14
|
+
readonly _getValue: (args: TArgs | undefined) => T;
|
|
15
|
+
private readonly _getTransaction;
|
|
16
|
+
private readonly _equalityComparator;
|
|
17
|
+
static globalTransaction: ITransaction | undefined;
|
|
18
|
+
private _value;
|
|
19
|
+
private _hasValue;
|
|
20
|
+
private _subscription;
|
|
21
|
+
constructor(_debugNameData: DebugNameData, event: Event<TArgs>, _getValue: (args: TArgs | undefined) => T, _getTransaction: () => ITransaction | undefined, _equalityComparator: EqualityComparer<T>, debugLocation: DebugLocation);
|
|
22
|
+
private getDebugName;
|
|
23
|
+
get debugName(): string;
|
|
24
|
+
protected onFirstObserverAdded(): void;
|
|
25
|
+
private readonly handleEvent;
|
|
26
|
+
protected onLastObserverRemoved(): void;
|
|
27
|
+
get(): T;
|
|
28
|
+
debugSetValue(value: unknown): void;
|
|
29
|
+
debugGetState(): {
|
|
30
|
+
value: T | undefined;
|
|
31
|
+
hasValue: boolean;
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
export declare namespace observableFromEvent {
|
|
35
|
+
const Observer: typeof FromEventObservable;
|
|
36
|
+
function batchEventsGlobally(tx: ITransaction, fn: () => void): void;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=observableFromEvent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"observableFromEvent.d.ts","sourceRoot":"","sources":["../../../src/observableInternal/observables/observableFromEvent.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEpD,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAA6B,MAAM,sBAAsB,CAAC;AAC1F,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEzE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGjD,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,KAAK,GAAG,OAAO,EACrD,KAAK,EAAE,UAAU,EACjB,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,EACnB,QAAQ,EAAE,CAAC,IAAI,EAAE,KAAK,GAAG,SAAS,KAAK,CAAC,EACxC,aAAa,CAAC,EAAE,aAAa,GAC3B,WAAW,CAAC,CAAC,CAAC,CAAC;AAClB,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,KAAK,GAAG,OAAO,EACrD,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,EACnB,QAAQ,EAAE,CAAC,IAAI,EAAE,KAAK,GAAG,SAAS,KAAK,CAAC,GACtC,WAAW,CAAC,CAAC,CAAC,CAAC;AAwBlB,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,KAAK,GAAG,OAAO,EACzD,OAAO,EAAE,cAAc,GAAG;IACzB,QAAQ,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;CAC/B,EACD,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,EACnB,QAAQ,EAAE,CAAC,IAAI,EAAE,KAAK,GAAG,SAAS,KAAK,CAAC,EACxC,aAAa,gBAA2B,GACtC,WAAW,CAAC,CAAC,CAAC,CAMhB;AAED,qBAAa,mBAAmB,CAAC,KAAK,EAAE,CAAC,CAAE,SAAQ,cAAc,CAAC,CAAC,CAAC;IAQlE,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,KAAK;aACN,SAAS,EAAE,CAAC,IAAI,EAAE,KAAK,GAAG,SAAS,KAAK,CAAC;IACzD,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IAXrC,OAAc,iBAAiB,EAAE,YAAY,GAAG,SAAS,CAAC;IAE1D,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,aAAa,CAA0B;gBAG7B,cAAc,EAAE,aAAa,EAC7B,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,EACpB,SAAS,EAAE,CAAC,IAAI,EAAE,KAAK,GAAG,SAAS,KAAK,CAAC,EACxC,eAAe,EAAE,MAAM,YAAY,GAAG,SAAS,EAC/C,mBAAmB,EAAE,gBAAgB,CAAC,CAAC,CAAC,EACzD,aAAa,EAAE,aAAa;IAK7B,OAAO,CAAC,YAAY;IAIpB,IAAW,SAAS,IAAI,MAAM,CAG7B;cAEkB,oBAAoB,IAAI,IAAI;IAI/C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAkC1B;cAEiB,qBAAqB,IAAI,IAAI;IAOzC,GAAG,IAAI,CAAC;IAaR,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAInC,aAAa;;;;CAGpB;AAED,yBAAiB,mBAAmB,CAAC;IAC7B,MAAM,QAAQ,4BAAsB,CAAC;IAE5C,SAAgB,mBAAmB,CAAC,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI,CAa1E;CACD"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
/*---------------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
+
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
4
|
+
*--------------------------------------------------------------------------------------------*/
|
|
5
|
+
import { subtransaction } from '../transaction.js';
|
|
6
|
+
import { strictEquals } from '../commonFacade/deps.js';
|
|
7
|
+
import { DebugNameData } from '../debugName.js';
|
|
8
|
+
import { getLogger } from '../logging/logging.js';
|
|
9
|
+
import { BaseObservable } from './baseObservable.js';
|
|
10
|
+
import { DebugLocation } from '../debugLocation.js';
|
|
11
|
+
|
|
12
|
+
/*---------------------------------------------------------------------------------------------
|
|
13
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
14
|
+
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
15
|
+
*--------------------------------------------------------------------------------------------*/
|
|
16
|
+
function observableFromEvent(...args) {
|
|
17
|
+
let owner;
|
|
18
|
+
let event;
|
|
19
|
+
let getValue;
|
|
20
|
+
let debugLocation;
|
|
21
|
+
if (args.length === 2) {
|
|
22
|
+
[event, getValue] = args;
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
[owner, event, getValue, debugLocation] = args;
|
|
26
|
+
}
|
|
27
|
+
return new FromEventObservable(new DebugNameData(owner, undefined, getValue), event, getValue, () => FromEventObservable.globalTransaction, strictEquals, debugLocation ?? DebugLocation.ofCaller());
|
|
28
|
+
}
|
|
29
|
+
function observableFromEventOpts(options, event, getValue, debugLocation = DebugLocation.ofCaller()) {
|
|
30
|
+
return new FromEventObservable(new DebugNameData(options.owner, options.debugName, options.debugReferenceFn ?? getValue), event, getValue, () => FromEventObservable.globalTransaction, options.equalsFn ?? strictEquals, debugLocation);
|
|
31
|
+
}
|
|
32
|
+
class FromEventObservable extends BaseObservable {
|
|
33
|
+
constructor(_debugNameData, event, _getValue, _getTransaction, _equalityComparator, debugLocation) {
|
|
34
|
+
super(debugLocation);
|
|
35
|
+
this._debugNameData = _debugNameData;
|
|
36
|
+
this.event = event;
|
|
37
|
+
this._getValue = _getValue;
|
|
38
|
+
this._getTransaction = _getTransaction;
|
|
39
|
+
this._equalityComparator = _equalityComparator;
|
|
40
|
+
this._hasValue = false;
|
|
41
|
+
this.handleEvent = (args) => {
|
|
42
|
+
const newValue = this._getValue(args);
|
|
43
|
+
const oldValue = this._value;
|
|
44
|
+
const didChange = !this._hasValue || !(this._equalityComparator(oldValue, newValue));
|
|
45
|
+
let didRunTransaction = false;
|
|
46
|
+
if (didChange) {
|
|
47
|
+
this._value = newValue;
|
|
48
|
+
if (this._hasValue) {
|
|
49
|
+
didRunTransaction = true;
|
|
50
|
+
subtransaction(this._getTransaction(), (tx) => {
|
|
51
|
+
getLogger()?.handleObservableUpdated(this, { oldValue, newValue, change: undefined, didChange, hadValue: this._hasValue });
|
|
52
|
+
for (const o of this._observers) {
|
|
53
|
+
tx.updateObserver(o, this);
|
|
54
|
+
o.handleChange(this, undefined);
|
|
55
|
+
}
|
|
56
|
+
}, () => {
|
|
57
|
+
const name = this.getDebugName();
|
|
58
|
+
return 'Event fired' + (name ? `: ${name}` : '');
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
this._hasValue = true;
|
|
62
|
+
}
|
|
63
|
+
if (!didRunTransaction) {
|
|
64
|
+
getLogger()?.handleObservableUpdated(this, { oldValue, newValue, change: undefined, didChange, hadValue: this._hasValue });
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
getDebugName() {
|
|
69
|
+
return this._debugNameData.getDebugName(this);
|
|
70
|
+
}
|
|
71
|
+
get debugName() {
|
|
72
|
+
const name = this.getDebugName();
|
|
73
|
+
return 'From Event' + (name ? `: ${name}` : '');
|
|
74
|
+
}
|
|
75
|
+
onFirstObserverAdded() {
|
|
76
|
+
this._subscription = this.event(this.handleEvent);
|
|
77
|
+
}
|
|
78
|
+
onLastObserverRemoved() {
|
|
79
|
+
this._subscription.dispose();
|
|
80
|
+
this._subscription = undefined;
|
|
81
|
+
this._hasValue = false;
|
|
82
|
+
this._value = undefined;
|
|
83
|
+
}
|
|
84
|
+
get() {
|
|
85
|
+
if (this._subscription) {
|
|
86
|
+
if (!this._hasValue) {
|
|
87
|
+
this.handleEvent(undefined);
|
|
88
|
+
}
|
|
89
|
+
return this._value;
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
// no cache, as there are no subscribers to keep it updated
|
|
93
|
+
const value = this._getValue(undefined);
|
|
94
|
+
return value;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
debugSetValue(value) {
|
|
98
|
+
this._value = value;
|
|
99
|
+
}
|
|
100
|
+
debugGetState() {
|
|
101
|
+
return { value: this._value, hasValue: this._hasValue };
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
(function (observableFromEvent) {
|
|
105
|
+
observableFromEvent.Observer = FromEventObservable;
|
|
106
|
+
function batchEventsGlobally(tx, fn) {
|
|
107
|
+
let didSet = false;
|
|
108
|
+
if (FromEventObservable.globalTransaction === undefined) {
|
|
109
|
+
FromEventObservable.globalTransaction = tx;
|
|
110
|
+
didSet = true;
|
|
111
|
+
}
|
|
112
|
+
try {
|
|
113
|
+
fn();
|
|
114
|
+
}
|
|
115
|
+
finally {
|
|
116
|
+
if (didSet) {
|
|
117
|
+
FromEventObservable.globalTransaction = undefined;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
observableFromEvent.batchEventsGlobally = batchEventsGlobally;
|
|
122
|
+
})(observableFromEvent || (observableFromEvent = {}));
|
|
123
|
+
|
|
124
|
+
export { FromEventObservable, observableFromEvent, observableFromEventOpts };
|
|
125
|
+
//# sourceMappingURL=observableFromEvent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"observableFromEvent.js","sources":["../../../src/observableInternal/observables/observableFromEvent.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;;AAAA;;;AAGgG;AAqBhF,SAAA,mBAAmB,CAAC,GAAG,IAEuB,EAAA;AAE7D,IAAA,IAAI,KAAK,CAAC;AACV,IAAA,IAAI,KAAK,CAAC;AACV,IAAA,IAAI,QAAQ,CAAC;AACb,IAAA,IAAI,aAAa,CAAC;AAClB,IAAA,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AACtB,QAAA,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAC;KACzB;SAAM;QACN,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,CAAC,GAAG,IAAI,CAAC;KAC/C;AACD,IAAA,OAAO,IAAI,mBAAmB,CAC7B,IAAI,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC,EAC7C,KAAK,EACL,QAAQ,EACR,MAAM,mBAAmB,CAAC,iBAAiB,EAC3C,YAAY,EACZ,aAAa,IAAI,aAAa,CAAC,QAAQ,EAAE,CACzC,CAAC;AACH,CAAC;AAEe,SAAA,uBAAuB,CACtC,OAEC,EACD,KAAmB,EACnB,QAAwC,EACxC,aAAa,GAAG,aAAa,CAAC,QAAQ,EAAE,EAAA;AAExC,IAAA,OAAO,IAAI,mBAAmB,CAC7B,IAAI,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,gBAAgB,IAAI,QAAQ,CAAC,EACzF,KAAK,EACL,QAAQ,EAAE,MAAM,mBAAmB,CAAC,iBAAiB,EAAE,OAAO,CAAC,QAAQ,IAAI,YAAY,EAAE,aAAa,CACtG,CAAC;AACH,CAAC;AAEK,MAAO,mBAA8B,SAAQ,cAAiB,CAAA;IAOnE,WACkB,CAAA,cAA6B,EAC7B,KAAmB,EACpB,SAAyC,EACxC,eAA+C,EAC/C,mBAAwC,EACzD,aAA4B,EAAA;QAE5B,KAAK,CAAC,aAAa,CAAC,CAAC;QAPJ,IAAc,CAAA,cAAA,GAAd,cAAc,CAAe;QAC7B,IAAK,CAAA,KAAA,GAAL,KAAK,CAAc;QACpB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAgC;QACxC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAgC;QAC/C,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB,CAAqB;QARlD,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;AA2BT,QAAA,IAAA,CAAA,WAAW,GAAG,CAAC,IAAuB,KAAI;YAC1D,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AACtC,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC;AAE7B,YAAA,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,IAAI,CAAC,mBAAmB,CAAC,QAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;YACtF,IAAI,iBAAiB,GAAG,KAAK,CAAC;YAE9B,IAAI,SAAS,EAAE;AACd,gBAAA,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;AAEvB,gBAAA,IAAI,IAAI,CAAC,SAAS,EAAE;oBACnB,iBAAiB,GAAG,IAAI,CAAC;oBACzB,cAAc,CACb,IAAI,CAAC,eAAe,EAAE,EACtB,CAAC,EAAE,KAAI;wBACN,SAAS,EAAE,EAAE,uBAAuB,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;AAE3H,wBAAA,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE;AAChC,4BAAA,EAAE,CAAC,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AAC3B,4BAAA,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;yBAChC;qBACD,EACD,MAAK;AACJ,wBAAA,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;AACjC,wBAAA,OAAO,aAAa,IAAI,IAAI,GAAG,CAAK,EAAA,EAAA,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;AAClD,qBAAC,CACD,CAAC;iBACF;AACD,gBAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;aACtB;YAED,IAAI,CAAC,iBAAiB,EAAE;gBACvB,SAAS,EAAE,EAAE,uBAAuB,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;aAC3H;AACF,SAAC,CAAC;KAjDD;IAEO,YAAY,GAAA;QACnB,OAAO,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;KAC9C;AAED,IAAA,IAAW,SAAS,GAAA;AACnB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;AACjC,QAAA,OAAO,YAAY,IAAI,IAAI,GAAG,CAAK,EAAA,EAAA,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;KAChD;IAEkB,oBAAoB,GAAA;QACtC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;KAClD;IAsCkB,qBAAqB,GAAA;AACvC,QAAA,IAAI,CAAC,aAAc,CAAC,OAAO,EAAE,CAAC;AAC9B,QAAA,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;AAC/B,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,QAAA,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;KACxB;IAEM,GAAG,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;AACvB,YAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACpB,gBAAA,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;aAC5B;YACD,OAAO,IAAI,CAAC,MAAO,CAAC;SACpB;aAAM;;YAEN,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;AACxC,YAAA,OAAO,KAAK,CAAC;SACb;KACD;AAEM,IAAA,aAAa,CAAC,KAAc,EAAA;AAClC,QAAA,IAAI,CAAC,MAAM,GAAG,KAAY,CAAC;KAC3B;IAEM,aAAa,GAAA;AACnB,QAAA,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;KACxD;AACD,CAAA;AAED,CAAA,UAAiB,mBAAmB,EAAA;IACtB,mBAAQ,CAAA,QAAA,GAAG,mBAAmB,CAAC;AAE5C,IAAA,SAAgB,mBAAmB,CAAC,EAAgB,EAAE,EAAc,EAAA;QACnE,IAAI,MAAM,GAAG,KAAK,CAAC;AACnB,QAAA,IAAI,mBAAmB,CAAC,iBAAiB,KAAK,SAAS,EAAE;AACxD,YAAA,mBAAmB,CAAC,iBAAiB,GAAG,EAAE,CAAC;YAC3C,MAAM,GAAG,IAAI,CAAC;SACd;AACD,QAAA,IAAI;AACH,YAAA,EAAE,EAAE,CAAC;SACL;gBAAS;YACT,IAAI,MAAM,EAAE;AACX,gBAAA,mBAAmB,CAAC,iBAAiB,GAAG,SAAS,CAAC;aAClD;SACD;KACD;AAbe,IAAA,mBAAA,CAAA,mBAAmB,sBAalC,CAAA;AACF,CAAC,EAjBgB,mBAAmB,KAAnB,mBAAmB,GAiBnC,EAAA,CAAA,CAAA;;;;"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { IObservableWithChange, ITransaction } from '../base';
|
|
2
|
+
/**
|
|
3
|
+
* Creates a signal that can be triggered to invalidate observers.
|
|
4
|
+
* Signals don't have a value - when they are triggered they indicate a change.
|
|
5
|
+
* However, signals can carry a delta that is passed to observers.
|
|
6
|
+
*/
|
|
7
|
+
export declare function observableSignal<TDelta = void>(debugName: string): IObservableSignal<TDelta>;
|
|
8
|
+
export declare function observableSignal<TDelta = void>(owner: object): IObservableSignal<TDelta>;
|
|
9
|
+
export interface IObservableSignal<TChange> extends IObservableWithChange<void, TChange> {
|
|
10
|
+
trigger(tx: ITransaction | undefined, change: TChange): void;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=observableSignal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"observableSignal.d.ts","sourceRoot":"","sources":["../../../src/observableInternal/observables/observableSignal.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAM9D;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,GAAG,IAAI,EAAE,SAAS,EAAE,MAAM,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;AAC9F,wBAAgB,gBAAgB,CAAC,MAAM,GAAG,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;AAS1F,MAAM,WAAW,iBAAiB,CAAC,OAAO,CAAE,SAAQ,qBAAqB,CAAC,IAAI,EAAE,OAAO,CAAC;IACvF,OAAO,CAAC,EAAE,EAAE,YAAY,GAAG,SAAS,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;CAC7D"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/*---------------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
+
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
4
|
+
*--------------------------------------------------------------------------------------------*/
|
|
5
|
+
import { transaction } from '../transaction.js';
|
|
6
|
+
import { DebugNameData } from '../debugName.js';
|
|
7
|
+
import { BaseObservable } from './baseObservable.js';
|
|
8
|
+
import { DebugLocation } from '../debugLocation.js';
|
|
9
|
+
|
|
10
|
+
/*---------------------------------------------------------------------------------------------
|
|
11
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
12
|
+
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
13
|
+
*--------------------------------------------------------------------------------------------*/
|
|
14
|
+
function observableSignal(debugNameOrOwner, debugLocation = DebugLocation.ofCaller()) {
|
|
15
|
+
if (typeof debugNameOrOwner === 'string') {
|
|
16
|
+
return new ObservableSignal(debugNameOrOwner, undefined, debugLocation);
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
return new ObservableSignal(undefined, debugNameOrOwner, debugLocation);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
class ObservableSignal extends BaseObservable {
|
|
23
|
+
get debugName() {
|
|
24
|
+
return new DebugNameData(this._owner, this._debugName, undefined).getDebugName(this) ?? 'Observable Signal';
|
|
25
|
+
}
|
|
26
|
+
toString() {
|
|
27
|
+
return this.debugName;
|
|
28
|
+
}
|
|
29
|
+
constructor(_debugName, _owner, debugLocation) {
|
|
30
|
+
super(debugLocation);
|
|
31
|
+
this._debugName = _debugName;
|
|
32
|
+
this._owner = _owner;
|
|
33
|
+
}
|
|
34
|
+
trigger(tx, change) {
|
|
35
|
+
if (!tx) {
|
|
36
|
+
transaction(tx => {
|
|
37
|
+
this.trigger(tx, change);
|
|
38
|
+
}, () => `Trigger signal ${this.debugName}`);
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
for (const o of this._observers) {
|
|
42
|
+
tx.updateObserver(o, this);
|
|
43
|
+
o.handleChange(this, change);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
get() {
|
|
47
|
+
// NO OP
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export { observableSignal };
|
|
52
|
+
//# sourceMappingURL=observableSignal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"observableSignal.js","sources":["../../../src/observableInternal/observables/observableSignal.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;AAAA;;;AAGgG;AAe1F,SAAU,gBAAgB,CAAgB,gBAAiC,EAAE,aAAa,GAAG,aAAa,CAAC,QAAQ,EAAE,EAAA;AAC1H,IAAA,IAAI,OAAO,gBAAgB,KAAK,QAAQ,EAAE;QACzC,OAAO,IAAI,gBAAgB,CAAS,gBAAgB,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;KAChF;SAAM;QACN,OAAO,IAAI,gBAAgB,CAAS,SAAS,EAAE,gBAAgB,EAAE,aAAa,CAAC,CAAC;KAChF;AACF,CAAC;AAMD,MAAM,gBAA0B,SAAQ,cAA6B,CAAA;AACpE,IAAA,IAAW,SAAS,GAAA;QACnB,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,mBAAmB,CAAC;KAC5G;IAEe,QAAQ,GAAA;QACvB,OAAO,IAAI,CAAC,SAAS,CAAC;KACtB;AAED,IAAA,WAAA,CACkB,UAA8B,EAC9B,MAA0B,EAC3C,aAA4B,EAAA;QAE5B,KAAK,CAAC,aAAa,CAAC,CAAC;QAJJ,IAAU,CAAA,UAAA,GAAV,UAAU,CAAoB;QAC9B,IAAM,CAAA,MAAA,GAAN,MAAM,CAAoB;KAI3C;IAEM,OAAO,CAAC,EAA4B,EAAE,MAAe,EAAA;QAC3D,IAAI,CAAC,EAAE,EAAE;YACR,WAAW,CAAC,EAAE,IAAG;AAChB,gBAAA,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;aACzB,EAAE,MAAM,CAAA,eAAA,EAAkB,IAAI,CAAC,SAAS,CAAE,CAAA,CAAC,CAAC;YAC7C,OAAO;SACP;AAED,QAAA,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE;AAChC,YAAA,EAAE,CAAC,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AAC3B,YAAA,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;SAC7B;KACD;IAEe,GAAG,GAAA;;KAElB;AACD;;;;"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { IObservable } from '../base';
|
|
2
|
+
import { Event } from '../commonFacade/deps';
|
|
3
|
+
import { DebugOwner } from '../debugName';
|
|
4
|
+
import { DebugLocation } from '../debugLocation';
|
|
5
|
+
export declare function observableSignalFromEvent(owner: DebugOwner | string, event: Event<any>, debugLocation?: DebugLocation): IObservable<void>;
|
|
6
|
+
//# sourceMappingURL=observableSignalFromEvent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"observableSignalFromEvent.d.ts","sourceRoot":"","sources":["../../../src/observableInternal/observables/observableSignalFromEvent.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC,OAAO,EAAE,KAAK,EAAe,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAiB,MAAM,cAAc,CAAC;AAEzD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,wBAAgB,yBAAyB,CACxC,KAAK,EAAE,UAAU,GAAG,MAAM,EAC1B,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,EACjB,aAAa,gBAA2B,GACtC,WAAW,CAAC,IAAI,CAAC,CAEnB"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/*---------------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
+
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
4
|
+
*--------------------------------------------------------------------------------------------*/
|
|
5
|
+
import { transaction } from '../transaction.js';
|
|
6
|
+
import { DebugNameData } from '../debugName.js';
|
|
7
|
+
import { BaseObservable } from './baseObservable.js';
|
|
8
|
+
import { DebugLocation } from '../debugLocation.js';
|
|
9
|
+
|
|
10
|
+
/*---------------------------------------------------------------------------------------------
|
|
11
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
12
|
+
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
13
|
+
*--------------------------------------------------------------------------------------------*/
|
|
14
|
+
function observableSignalFromEvent(owner, event, debugLocation = DebugLocation.ofCaller()) {
|
|
15
|
+
return new FromEventObservableSignal(typeof owner === 'string' ? owner : new DebugNameData(owner, undefined, undefined), event, debugLocation);
|
|
16
|
+
}
|
|
17
|
+
class FromEventObservableSignal extends BaseObservable {
|
|
18
|
+
constructor(debugNameDataOrName, event, debugLocation) {
|
|
19
|
+
super(debugLocation);
|
|
20
|
+
this.event = event;
|
|
21
|
+
this.handleEvent = () => {
|
|
22
|
+
transaction((tx) => {
|
|
23
|
+
for (const o of this._observers) {
|
|
24
|
+
tx.updateObserver(o, this);
|
|
25
|
+
o.handleChange(this, undefined);
|
|
26
|
+
}
|
|
27
|
+
}, () => this.debugName);
|
|
28
|
+
};
|
|
29
|
+
this.debugName = typeof debugNameDataOrName === 'string'
|
|
30
|
+
? debugNameDataOrName
|
|
31
|
+
: debugNameDataOrName.getDebugName(this) ?? 'Observable Signal From Event';
|
|
32
|
+
}
|
|
33
|
+
onFirstObserverAdded() {
|
|
34
|
+
this.subscription = this.event(this.handleEvent);
|
|
35
|
+
}
|
|
36
|
+
onLastObserverRemoved() {
|
|
37
|
+
this.subscription.dispose();
|
|
38
|
+
this.subscription = undefined;
|
|
39
|
+
}
|
|
40
|
+
get() {
|
|
41
|
+
// NO OP
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export { observableSignalFromEvent };
|
|
46
|
+
//# sourceMappingURL=observableSignalFromEvent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"observableSignalFromEvent.js","sources":["../../../src/observableInternal/observables/observableSignalFromEvent.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;AAAA;;;AAGgG;AAShF,SAAA,yBAAyB,CACxC,KAA0B,EAC1B,KAAiB,EACjB,aAAa,GAAG,aAAa,CAAC,QAAQ,EAAE,EAAA;AAExC,IAAA,OAAO,IAAI,yBAAyB,CAAC,OAAO,KAAK,KAAK,QAAQ,GAAG,KAAK,GAAG,IAAI,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;AAChJ,CAAC;AAED,MAAM,yBAA0B,SAAQ,cAAoB,CAAA;AAI3D,IAAA,WAAA,CACC,mBAA2C,EAC1B,KAAiB,EAClC,aAA4B,EAAA;QAE5B,KAAK,CAAC,aAAa,CAAC,CAAC;QAHJ,IAAK,CAAA,KAAA,GAAL,KAAK,CAAY;QAalB,IAAW,CAAA,WAAA,GAAG,MAAK;AACnC,YAAA,WAAW,CACV,CAAC,EAAE,KAAI;AACN,gBAAA,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE;AAChC,oBAAA,EAAE,CAAC,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AAC3B,oBAAA,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;iBAChC;aACD,EACD,MAAM,IAAI,CAAC,SAAS,CACpB,CAAC;AACH,SAAC,CAAC;AAnBD,QAAA,IAAI,CAAC,SAAS,GAAG,OAAO,mBAAmB,KAAK,QAAQ;AACvD,cAAE,mBAAmB;cACnB,mBAAmB,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,8BAA8B,CAAC;KAC5E;IAEkB,oBAAoB,GAAA;QACtC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;KACjD;IAckB,qBAAqB,GAAA;AACvC,QAAA,IAAI,CAAC,YAAa,CAAC,OAAO,EAAE,CAAC;AAC7B,QAAA,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;KAC9B;IAEe,GAAG,GAAA;;KAElB;AACD;;;;"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { ISettableObservable, ITransaction } from '../base';
|
|
2
|
+
import { BaseObservable } from './baseObservable';
|
|
3
|
+
import { EqualityComparer, IDisposable } from '../commonFacade/deps';
|
|
4
|
+
import { DebugNameData } from '../debugName';
|
|
5
|
+
import { DebugLocation } from '../debugLocation';
|
|
6
|
+
/**
|
|
7
|
+
* Creates an observable value.
|
|
8
|
+
* Observers get informed when the value changes.
|
|
9
|
+
* @template TChange An arbitrary type to describe how or why the value changed. Defaults to `void`.
|
|
10
|
+
* Observers will receive every single change value.
|
|
11
|
+
*/
|
|
12
|
+
export declare function observableValue<T, TChange = void>(name: string, initialValue: T, debugLocation?: DebugLocation): ISettableObservable<T, TChange>;
|
|
13
|
+
export declare function observableValue<T, TChange = void>(owner: object, initialValue: T, debugLocation?: DebugLocation): ISettableObservable<T, TChange>;
|
|
14
|
+
export declare class ObservableValue<T, TChange = void> extends BaseObservable<T, TChange> implements ISettableObservable<T, TChange> {
|
|
15
|
+
private readonly _debugNameData;
|
|
16
|
+
private readonly _equalityComparator;
|
|
17
|
+
protected _value: T;
|
|
18
|
+
get debugName(): string;
|
|
19
|
+
constructor(_debugNameData: DebugNameData, initialValue: T, _equalityComparator: EqualityComparer<T>, debugLocation: DebugLocation);
|
|
20
|
+
get(): T;
|
|
21
|
+
set(value: T, tx: ITransaction | undefined, change: TChange): void;
|
|
22
|
+
toString(): string;
|
|
23
|
+
protected _setValue(newValue: T): void;
|
|
24
|
+
debugGetState(): {
|
|
25
|
+
value: T;
|
|
26
|
+
};
|
|
27
|
+
debugSetValue(value: unknown): void;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* A disposable observable. When disposed, its value is also disposed.
|
|
31
|
+
* When a new value is set, the previous value is disposed.
|
|
32
|
+
*/
|
|
33
|
+
export declare function disposableObservableValue<T extends IDisposable | undefined, TChange = void>(nameOrOwner: string | object, initialValue: T, debugLocation?: DebugLocation): ISettableObservable<T, TChange> & IDisposable;
|
|
34
|
+
export declare class DisposableObservableValue<T extends IDisposable | undefined, TChange = void> extends ObservableValue<T, TChange> implements IDisposable {
|
|
35
|
+
protected _setValue(newValue: T): void;
|
|
36
|
+
dispose(): void;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=observableValue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"observableValue.d.ts","sourceRoot":"","sources":["../../../src/observableInternal/observables/observableValue.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAgB,MAAM,sBAAsB,CAAC;AACnF,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD;;;;;GAKG;AAEH,wBAAgB,eAAe,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,EAAE,aAAa,CAAC,EAAE,aAAa,GAAG,mBAAmB,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AAClJ,wBAAgB,eAAe,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,EAAE,aAAa,CAAC,EAAE,aAAa,GAAG,mBAAmB,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AAWnJ,qBAAa,eAAe,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI,CAC7C,SAAQ,cAAc,CAAC,CAAC,EAAE,OAAO,CACjC,YAAW,mBAAmB,CAAC,CAAC,EAAE,OAAO,CAAC;IAQzC,OAAO,CAAC,QAAQ,CAAC,cAAc;IAE/B,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IATrC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;IAEpB,IAAI,SAAS,WAEZ;gBAGiB,cAAc,EAAE,aAAa,EAC9C,YAAY,EAAE,CAAC,EACE,mBAAmB,EAAE,gBAAgB,CAAC,CAAC,CAAC,EACzD,aAAa,EAAE,aAAa;IAOb,GAAG,IAAI,CAAC;IAIjB,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,YAAY,GAAG,SAAS,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI;IAyBhE,QAAQ,IAAI,MAAM;IAI3B,SAAS,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,GAAG,IAAI;IAI/B,aAAa;;;IAMb,aAAa,CAAC,KAAK,EAAE,OAAO;CAGnC;AACD;;;GAGG;AAEH,wBAAgB,yBAAyB,CAAC,CAAC,SAAS,WAAW,GAAG,SAAS,EAAE,OAAO,GAAG,IAAI,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,YAAY,EAAE,CAAC,EAAE,aAAa,gBAA2B,GAAG,mBAAmB,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,WAAW,CAQnO;AAED,qBAAa,yBAAyB,CAAC,CAAC,SAAS,WAAW,GAAG,SAAS,EAAE,OAAO,GAAG,IAAI,CAAE,SAAQ,eAAe,CAAC,CAAC,EAAE,OAAO,CAAE,YAAW,WAAW;cAChI,SAAS,CAAC,QAAQ,EAAE,CAAC,GAAG,IAAI;IAUxC,OAAO,IAAI,IAAI;CAGtB"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/*---------------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
+
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
4
|
+
*--------------------------------------------------------------------------------------------*/
|
|
5
|
+
import { TransactionImpl } from '../transaction.js';
|
|
6
|
+
import { BaseObservable } from './baseObservable.js';
|
|
7
|
+
import { strictEquals } from '../commonFacade/deps.js';
|
|
8
|
+
import { DebugNameData } from '../debugName.js';
|
|
9
|
+
import { getLogger } from '../logging/logging.js';
|
|
10
|
+
import { DebugLocation } from '../debugLocation.js';
|
|
11
|
+
|
|
12
|
+
/*---------------------------------------------------------------------------------------------
|
|
13
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
14
|
+
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
15
|
+
*--------------------------------------------------------------------------------------------*/
|
|
16
|
+
function observableValue(nameOrOwner, initialValue, debugLocation = DebugLocation.ofCaller()) {
|
|
17
|
+
let debugNameData;
|
|
18
|
+
if (typeof nameOrOwner === 'string') {
|
|
19
|
+
debugNameData = new DebugNameData(undefined, nameOrOwner, undefined);
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
debugNameData = new DebugNameData(nameOrOwner, undefined, undefined);
|
|
23
|
+
}
|
|
24
|
+
return new ObservableValue(debugNameData, initialValue, strictEquals, debugLocation);
|
|
25
|
+
}
|
|
26
|
+
class ObservableValue extends BaseObservable {
|
|
27
|
+
get debugName() {
|
|
28
|
+
return this._debugNameData.getDebugName(this) ?? 'ObservableValue';
|
|
29
|
+
}
|
|
30
|
+
constructor(_debugNameData, initialValue, _equalityComparator, debugLocation) {
|
|
31
|
+
super(debugLocation);
|
|
32
|
+
this._debugNameData = _debugNameData;
|
|
33
|
+
this._equalityComparator = _equalityComparator;
|
|
34
|
+
this._value = initialValue;
|
|
35
|
+
getLogger()?.handleObservableUpdated(this, { hadValue: false, newValue: initialValue, change: undefined, didChange: true, oldValue: undefined });
|
|
36
|
+
}
|
|
37
|
+
get() {
|
|
38
|
+
return this._value;
|
|
39
|
+
}
|
|
40
|
+
set(value, tx, change) {
|
|
41
|
+
if (change === undefined && this._equalityComparator(this._value, value)) {
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
let _tx;
|
|
45
|
+
if (!tx) {
|
|
46
|
+
tx = _tx = new TransactionImpl(() => { }, () => `Setting ${this.debugName}`);
|
|
47
|
+
}
|
|
48
|
+
try {
|
|
49
|
+
const oldValue = this._value;
|
|
50
|
+
this._setValue(value);
|
|
51
|
+
getLogger()?.handleObservableUpdated(this, { oldValue, newValue: value, change, didChange: true, hadValue: true });
|
|
52
|
+
for (const observer of this._observers) {
|
|
53
|
+
tx.updateObserver(observer, this);
|
|
54
|
+
observer.handleChange(this, change);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
finally {
|
|
58
|
+
if (_tx) {
|
|
59
|
+
_tx.finish();
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
toString() {
|
|
64
|
+
return `${this.debugName}: ${this._value}`;
|
|
65
|
+
}
|
|
66
|
+
_setValue(newValue) {
|
|
67
|
+
this._value = newValue;
|
|
68
|
+
}
|
|
69
|
+
debugGetState() {
|
|
70
|
+
return {
|
|
71
|
+
value: this._value,
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
debugSetValue(value) {
|
|
75
|
+
this._value = value;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* A disposable observable. When disposed, its value is also disposed.
|
|
80
|
+
* When a new value is set, the previous value is disposed.
|
|
81
|
+
*/
|
|
82
|
+
function disposableObservableValue(nameOrOwner, initialValue, debugLocation = DebugLocation.ofCaller()) {
|
|
83
|
+
let debugNameData;
|
|
84
|
+
if (typeof nameOrOwner === 'string') {
|
|
85
|
+
debugNameData = new DebugNameData(undefined, nameOrOwner, undefined);
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
debugNameData = new DebugNameData(nameOrOwner, undefined, undefined);
|
|
89
|
+
}
|
|
90
|
+
return new DisposableObservableValue(debugNameData, initialValue, strictEquals, debugLocation);
|
|
91
|
+
}
|
|
92
|
+
class DisposableObservableValue extends ObservableValue {
|
|
93
|
+
_setValue(newValue) {
|
|
94
|
+
if (this._value === newValue) {
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
if (this._value) {
|
|
98
|
+
this._value.dispose();
|
|
99
|
+
}
|
|
100
|
+
this._value = newValue;
|
|
101
|
+
}
|
|
102
|
+
dispose() {
|
|
103
|
+
this._value?.dispose();
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
export { DisposableObservableValue, ObservableValue, disposableObservableValue, observableValue };
|
|
108
|
+
//# sourceMappingURL=observableValue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"observableValue.js","sources":["../../../src/observableInternal/observables/observableValue.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ISettableObservable } from '../base';
|
|
2
|
+
import { IDebugNameData } from '../debugName';
|
|
3
|
+
import { EqualityComparer } from '../commonFacade/deps';
|
|
4
|
+
import { DebugLocation } from '../debugLocation';
|
|
5
|
+
export declare function observableValueOpts<T, TChange = void>(options: IDebugNameData & {
|
|
6
|
+
equalsFn?: EqualityComparer<T>;
|
|
7
|
+
lazy?: boolean;
|
|
8
|
+
}, initialValue: T, debugLocation?: DebugLocation): ISettableObservable<T, TChange>;
|
|
9
|
+
//# sourceMappingURL=observableValueOpts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"observableValueOpts.d.ts","sourceRoot":"","sources":["../../../src/observableInternal/observables/observableValueOpts.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAiB,cAAc,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAgB,MAAM,sBAAsB,CAAC;AAGtE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI,EACpD,OAAO,EAAE,cAAc,GAAG;IACzB,QAAQ,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAC/B,IAAI,CAAC,EAAE,OAAO,CAAC;CACf,EACD,YAAY,EAAE,CAAC,EACf,aAAa,gBAA2B,GACtC,mBAAmB,CAAC,CAAC,EAAE,OAAO,CAAC,CAejC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/*---------------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
+
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
4
|
+
*--------------------------------------------------------------------------------------------*/
|
|
5
|
+
import { DebugNameData } from '../debugName.js';
|
|
6
|
+
import { strictEquals } from '../commonFacade/deps.js';
|
|
7
|
+
import { ObservableValue } from './observableValue.js';
|
|
8
|
+
import { LazyObservableValue } from './lazyObservableValue.js';
|
|
9
|
+
import { DebugLocation } from '../debugLocation.js';
|
|
10
|
+
|
|
11
|
+
/*---------------------------------------------------------------------------------------------
|
|
12
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
13
|
+
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
14
|
+
*--------------------------------------------------------------------------------------------*/
|
|
15
|
+
function observableValueOpts(options, initialValue, debugLocation = DebugLocation.ofCaller()) {
|
|
16
|
+
if (options.lazy) {
|
|
17
|
+
return new LazyObservableValue(new DebugNameData(options.owner, options.debugName, undefined), initialValue, options.equalsFn ?? strictEquals, debugLocation);
|
|
18
|
+
}
|
|
19
|
+
return new ObservableValue(new DebugNameData(options.owner, options.debugName, undefined), initialValue, options.equalsFn ?? strictEquals, debugLocation);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export { observableValueOpts };
|
|
23
|
+
//# sourceMappingURL=observableValueOpts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"observableValueOpts.js","sources":["../../../src/observableInternal/observables/observableValueOpts.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;AAAA;;;AAGgG;AAShF,SAAA,mBAAmB,CAClC,OAGC,EACD,YAAe,EACf,aAAa,GAAG,aAAa,CAAC,QAAQ,EAAE,EAAA;AAExC,IAAA,IAAI,OAAO,CAAC,IAAI,EAAE;QACjB,OAAO,IAAI,mBAAmB,CAC7B,IAAI,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,EAC9D,YAAY,EACZ,OAAO,CAAC,QAAQ,IAAI,YAAY,EAChC,aAAa,CACb,CAAC;KACF;IACD,OAAO,IAAI,eAAe,CACzB,IAAI,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,EAC9D,YAAY,EACZ,OAAO,CAAC,QAAQ,IAAI,YAAY,EAChC,aAAa,CACb,CAAC;AACH;;;;"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { IReaderWithStore, IReader, IObservable } from '../base';
|
|
2
|
+
import { IChangeTracker } from '../changeTracker';
|
|
3
|
+
import { DisposableStore, IDisposable } from '../commonFacade/deps';
|
|
4
|
+
import { IDebugNameData } from '../debugName';
|
|
5
|
+
import { DebugLocation } from '../debugLocation';
|
|
6
|
+
/**
|
|
7
|
+
* Runs immediately and whenever a transaction ends and an observed observable changed.
|
|
8
|
+
* {@link fn} should start with a JS Doc using `@description` to name the effect.
|
|
9
|
+
*/
|
|
10
|
+
export declare function createEffect(fn: (reader: IReaderWithStore) => void, debugLocation?: DebugLocation): IDisposable;
|
|
11
|
+
/**
|
|
12
|
+
* @deprecated Use {@link createEffect} instead.
|
|
13
|
+
*/
|
|
14
|
+
export declare const autorun: typeof createEffect;
|
|
15
|
+
/**
|
|
16
|
+
* Runs immediately and whenever a transaction ends and an observed observable changed.
|
|
17
|
+
* {@link fn} should start with a JS Doc using `@description` to name the autorun.
|
|
18
|
+
*/
|
|
19
|
+
export declare function createEffectOpts(options: IDebugNameData & {}, fn: (reader: IReaderWithStore) => void, debugLocation?: DebugLocation): IDisposable;
|
|
20
|
+
/**
|
|
21
|
+
* @deprecated Use {@link createEffectOpts} instead.
|
|
22
|
+
*/
|
|
23
|
+
export declare const autorunOpts: typeof createEffectOpts;
|
|
24
|
+
/**
|
|
25
|
+
* Runs immediately and whenever a transaction ends and an observed observable changed.
|
|
26
|
+
* {@link fn} should start with a JS Doc using `@description` to name the autorun.
|
|
27
|
+
*
|
|
28
|
+
* Use `changeTracker.createChangeSummary` to create a "change summary" that can collect the changes.
|
|
29
|
+
* Use `changeTracker.handleChange` to add a reported change to the change summary.
|
|
30
|
+
* The run function is given the last change summary.
|
|
31
|
+
* The change summary is discarded after the run function was called.
|
|
32
|
+
*
|
|
33
|
+
* @see autorun
|
|
34
|
+
*/
|
|
35
|
+
export declare function autorunHandleChanges<TChangeSummary>(options: IDebugNameData & {
|
|
36
|
+
changeTracker: IChangeTracker<TChangeSummary>;
|
|
37
|
+
}, fn: (reader: IReader, changeSummary: TChangeSummary) => void, debugLocation?: DebugLocation): IDisposable;
|
|
38
|
+
/**
|
|
39
|
+
* @see autorunHandleChanges (but with a disposable store that is cleared before the next run or on dispose)
|
|
40
|
+
*/
|
|
41
|
+
export declare function autorunWithStoreHandleChanges<TChangeSummary>(options: IDebugNameData & {
|
|
42
|
+
changeTracker: IChangeTracker<TChangeSummary>;
|
|
43
|
+
}, fn: (reader: IReader, changeSummary: TChangeSummary, store: DisposableStore) => void): IDisposable;
|
|
44
|
+
/**
|
|
45
|
+
* @see autorun (but with a disposable store that is cleared before the next run or on dispose)
|
|
46
|
+
*
|
|
47
|
+
* @deprecated Use `autorun(reader => { reader.store.add(...) })` instead!
|
|
48
|
+
*/
|
|
49
|
+
export declare function autorunWithStore(fn: (reader: IReader, store: DisposableStore) => void): IDisposable;
|
|
50
|
+
export declare function autorunDelta<T>(observable: IObservable<T>, handler: (args: {
|
|
51
|
+
lastValue: T | undefined;
|
|
52
|
+
newValue: T;
|
|
53
|
+
}) => void): IDisposable;
|
|
54
|
+
export declare function autorunIterableDelta<T>(getValue: (reader: IReader) => Iterable<T>, handler: (args: {
|
|
55
|
+
addedValues: T[];
|
|
56
|
+
removedValues: T[];
|
|
57
|
+
}) => void, getUniqueIdentifier?: (value: T) => unknown): IDisposable;
|
|
58
|
+
export interface IReaderWithDispose extends IReaderWithStore, IDisposable {
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* An autorun with a `dispose()` method on its `reader` which cancels the autorun.
|
|
62
|
+
* It it safe to call `dispose()` synchronously.
|
|
63
|
+
*/
|
|
64
|
+
export declare function autorunSelfDisposable(fn: (reader: IReaderWithDispose) => void, debugLocation?: DebugLocation): IDisposable;
|
|
65
|
+
//# sourceMappingURL=createEffect.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createEffect.d.ts","sourceRoot":"","sources":["../../../src/observableInternal/reactions/createEffect.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,WAAW,EAAgB,MAAM,sBAAsB,CAAC;AAClF,OAAO,EAAiB,cAAc,EAAE,MAAM,cAAc,CAAC;AAE7D,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,EAAE,aAAa,gBAA2B,GAAG,WAAW,CAO1H;AAED;;GAEG;AACH,eAAO,MAAM,OAAO,qBAAe,CAAC;AAEpC;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,cAAc,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,EAAE,aAAa,gBAA2B,GAAG,WAAW,CAO5J;AAED;;GAEG;AACH,eAAO,MAAM,WAAW,yBAAmB,CAAC;AAE5C;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAAC,cAAc,EAClD,OAAO,EAAE,cAAc,GAAG;IACzB,aAAa,EAAE,cAAc,CAAC,cAAc,CAAC,CAAC;CAC9C,EACD,EAAE,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,cAAc,KAAK,IAAI,EAC5D,aAAa,gBAA2B,GACtC,WAAW,CAOb;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,cAAc,EAC3D,OAAO,EAAE,cAAc,GAAG;IACzB,aAAa,EAAE,cAAc,CAAC,cAAc,CAAC,CAAC;CAC9C,EACD,EAAE,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,KAAK,EAAE,eAAe,KAAK,IAAI,GAClF,WAAW,CAkBb;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,KAAK,IAAI,GAAG,WAAW,CAiBnG;AAED,wBAAgB,YAAY,CAAC,CAAC,EAC7B,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,EAC1B,OAAO,EAAE,CAAC,IAAI,EAAE;IAAE,SAAS,EAAE,CAAC,GAAG,SAAS,CAAC;IAAC,QAAQ,EAAE,CAAC,CAAA;CAAE,KAAK,IAAI,GAChE,WAAW,CAQb;AAED,wBAAgB,oBAAoB,CAAC,CAAC,EACrC,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,EAC1C,OAAO,EAAE,CAAC,IAAI,EAAE;IAAE,WAAW,EAAE,CAAC,EAAE,CAAC;IAAC,aAAa,EAAE,CAAC,EAAE,CAAA;CAAE,KAAK,IAAI,EACjE,mBAAmB,GAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAgB,eAuBnD;AAED,MAAM,WAAW,kBAAmB,SAAQ,gBAAgB,EAAE,WAAW;CAAI;AAE7E;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,EAAE,aAAa,gBAA2B,GAAG,WAAW,CAsBrI"}
|