@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.
Files changed (159) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +164 -0
  3. package/dist/assert.d.ts +3 -0
  4. package/dist/assert.d.ts.map +1 -0
  5. package/dist/deps.d.ts +29 -0
  6. package/dist/deps.d.ts.map +1 -0
  7. package/dist/disposables.d.ts +20 -0
  8. package/dist/disposables.d.ts.map +1 -0
  9. package/dist/disposables.js +66 -0
  10. package/dist/disposables.js.map +1 -0
  11. package/dist/equals.d.ts +33 -0
  12. package/dist/equals.d.ts.map +1 -0
  13. package/dist/index.d.ts +3 -0
  14. package/dist/index.d.ts.map +1 -0
  15. package/dist/index.js +27 -0
  16. package/dist/index.js.map +1 -0
  17. package/dist/index.min.js +124 -0
  18. package/dist/index.min.js.map +1 -0
  19. package/dist/observableInternal/base.d.ts +173 -0
  20. package/dist/observableInternal/base.d.ts.map +1 -0
  21. package/dist/observableInternal/base.js +21 -0
  22. package/dist/observableInternal/base.js.map +1 -0
  23. package/dist/observableInternal/changeTracker.d.ts +45 -0
  24. package/dist/observableInternal/changeTracker.d.ts.map +1 -0
  25. package/dist/observableInternal/changeTracker.js +78 -0
  26. package/dist/observableInternal/changeTracker.js.map +1 -0
  27. package/dist/observableInternal/commonFacade/cancellation.d.ts +25 -0
  28. package/dist/observableInternal/commonFacade/cancellation.d.ts.map +1 -0
  29. package/dist/observableInternal/commonFacade/cancellation.js +55 -0
  30. package/dist/observableInternal/commonFacade/cancellation.js.map +1 -0
  31. package/dist/observableInternal/commonFacade/deps.d.ts +25 -0
  32. package/dist/observableInternal/commonFacade/deps.d.ts.map +1 -0
  33. package/dist/observableInternal/commonFacade/deps.js +37 -0
  34. package/dist/observableInternal/commonFacade/deps.js.map +1 -0
  35. package/dist/observableInternal/debugLocation.d.ts +22 -0
  36. package/dist/observableInternal/debugLocation.d.ts.map +1 -0
  37. package/dist/observableInternal/debugLocation.js +77 -0
  38. package/dist/observableInternal/debugLocation.js.map +1 -0
  39. package/dist/observableInternal/debugName.d.ts +34 -0
  40. package/dist/observableInternal/debugName.d.ts.map +1 -0
  41. package/dist/observableInternal/debugName.js +114 -0
  42. package/dist/observableInternal/debugName.js.map +1 -0
  43. package/dist/observableInternal/experimental/deferUnobserve.d.ts +17 -0
  44. package/dist/observableInternal/experimental/deferUnobserve.d.ts.map +1 -0
  45. package/dist/observableInternal/experimental/deferUnobserve.js +68 -0
  46. package/dist/observableInternal/experimental/deferUnobserve.js.map +1 -0
  47. package/dist/observableInternal/experimental/reducer.d.ts +38 -0
  48. package/dist/observableInternal/experimental/reducer.d.ts.map +1 -0
  49. package/dist/observableInternal/experimental/utils.d.ts +16 -0
  50. package/dist/observableInternal/experimental/utils.d.ts.map +1 -0
  51. package/dist/observableInternal/experimental/utils.js +64 -0
  52. package/dist/observableInternal/experimental/utils.js.map +1 -0
  53. package/dist/observableInternal/index.d.ts +26 -0
  54. package/dist/observableInternal/index.d.ts.map +1 -0
  55. package/dist/observableInternal/index.js +21 -0
  56. package/dist/observableInternal/index.js.map +1 -0
  57. package/dist/observableInternal/logging/consoleObservableLogger.d.ts +41 -0
  58. package/dist/observableInternal/logging/consoleObservableLogger.d.ts.map +1 -0
  59. package/dist/observableInternal/logging/consoleObservableLogger.js +355 -0
  60. package/dist/observableInternal/logging/consoleObservableLogger.js.map +1 -0
  61. package/dist/observableInternal/logging/debugGetDependencyGraph.d.ts +5 -0
  62. package/dist/observableInternal/logging/debugGetDependencyGraph.d.ts.map +1 -0
  63. package/dist/observableInternal/logging/debugGetDependencyGraph.js +78 -0
  64. package/dist/observableInternal/logging/debugGetDependencyGraph.js.map +1 -0
  65. package/dist/observableInternal/logging/debugger/debuggerRpc.d.ts +5 -0
  66. package/dist/observableInternal/logging/debugger/debuggerRpc.d.ts.map +1 -0
  67. package/dist/observableInternal/logging/debugger/devToolsLogger.d.ts +44 -0
  68. package/dist/observableInternal/logging/debugger/devToolsLogger.d.ts.map +1 -0
  69. package/dist/observableInternal/logging/debugger/rpc.d.ts +42 -0
  70. package/dist/observableInternal/logging/debugger/rpc.d.ts.map +1 -0
  71. package/dist/observableInternal/logging/debugger/utils.d.ts +14 -0
  72. package/dist/observableInternal/logging/debugger/utils.d.ts.map +1 -0
  73. package/dist/observableInternal/logging/logging.d.ts +31 -0
  74. package/dist/observableInternal/logging/logging.d.ts.map +1 -0
  75. package/dist/observableInternal/logging/logging.js +100 -0
  76. package/dist/observableInternal/logging/logging.js.map +1 -0
  77. package/dist/observableInternal/map.d.ts +19 -0
  78. package/dist/observableInternal/map.d.ts.map +1 -0
  79. package/dist/observableInternal/map.js +71 -0
  80. package/dist/observableInternal/map.js.map +1 -0
  81. package/dist/observableInternal/observables/baseObservable.d.ts +59 -0
  82. package/dist/observableInternal/observables/baseObservable.d.ts.map +1 -0
  83. package/dist/observableInternal/observables/baseObservable.js +142 -0
  84. package/dist/observableInternal/observables/baseObservable.js.map +1 -0
  85. package/dist/observableInternal/observables/constObservable.d.ts +6 -0
  86. package/dist/observableInternal/observables/constObservable.d.ts.map +1 -0
  87. package/dist/observableInternal/observables/constObservable.js +43 -0
  88. package/dist/observableInternal/observables/constObservable.js.map +1 -0
  89. package/dist/observableInternal/observables/derived.d.ts +47 -0
  90. package/dist/observableInternal/observables/derived.d.ts.map +1 -0
  91. package/dist/observableInternal/observables/derived.js +102 -0
  92. package/dist/observableInternal/observables/derived.js.map +1 -0
  93. package/dist/observableInternal/observables/derivedImpl.d.ts +84 -0
  94. package/dist/observableInternal/observables/derivedImpl.d.ts.map +1 -0
  95. package/dist/observableInternal/observables/derivedImpl.js +370 -0
  96. package/dist/observableInternal/observables/derivedImpl.js.map +1 -0
  97. package/dist/observableInternal/observables/lazyObservableValue.d.ts +28 -0
  98. package/dist/observableInternal/observables/lazyObservableValue.d.ts.map +1 -0
  99. package/dist/observableInternal/observables/lazyObservableValue.js +130 -0
  100. package/dist/observableInternal/observables/lazyObservableValue.js.map +1 -0
  101. package/dist/observableInternal/observables/observableFromEvent.d.ts +38 -0
  102. package/dist/observableInternal/observables/observableFromEvent.d.ts.map +1 -0
  103. package/dist/observableInternal/observables/observableFromEvent.js +125 -0
  104. package/dist/observableInternal/observables/observableFromEvent.js.map +1 -0
  105. package/dist/observableInternal/observables/observableSignal.d.ts +12 -0
  106. package/dist/observableInternal/observables/observableSignal.d.ts.map +1 -0
  107. package/dist/observableInternal/observables/observableSignal.js +52 -0
  108. package/dist/observableInternal/observables/observableSignal.js.map +1 -0
  109. package/dist/observableInternal/observables/observableSignalFromEvent.d.ts +6 -0
  110. package/dist/observableInternal/observables/observableSignalFromEvent.d.ts.map +1 -0
  111. package/dist/observableInternal/observables/observableSignalFromEvent.js +46 -0
  112. package/dist/observableInternal/observables/observableSignalFromEvent.js.map +1 -0
  113. package/dist/observableInternal/observables/observableValue.d.ts +38 -0
  114. package/dist/observableInternal/observables/observableValue.d.ts.map +1 -0
  115. package/dist/observableInternal/observables/observableValue.js +108 -0
  116. package/dist/observableInternal/observables/observableValue.js.map +1 -0
  117. package/dist/observableInternal/observables/observableValueOpts.d.ts +9 -0
  118. package/dist/observableInternal/observables/observableValueOpts.d.ts.map +1 -0
  119. package/dist/observableInternal/observables/observableValueOpts.js +23 -0
  120. package/dist/observableInternal/observables/observableValueOpts.js.map +1 -0
  121. package/dist/observableInternal/reactions/createEffect.d.ts +65 -0
  122. package/dist/observableInternal/reactions/createEffect.d.ts.map +1 -0
  123. package/dist/observableInternal/reactions/createEffect.js +148 -0
  124. package/dist/observableInternal/reactions/createEffect.js.map +1 -0
  125. package/dist/observableInternal/reactions/createEffectImpl.d.ts +54 -0
  126. package/dist/observableInternal/reactions/createEffectImpl.d.ts.map +1 -0
  127. package/dist/observableInternal/reactions/createEffectImpl.js +225 -0
  128. package/dist/observableInternal/reactions/createEffectImpl.js.map +1 -0
  129. package/dist/observableInternal/set.d.ts +18 -0
  130. package/dist/observableInternal/set.d.ts.map +1 -0
  131. package/dist/observableInternal/set.js +69 -0
  132. package/dist/observableInternal/set.js.map +1 -0
  133. package/dist/observableInternal/transaction.d.ts +28 -0
  134. package/dist/observableInternal/transaction.d.ts.map +1 -0
  135. package/dist/observableInternal/transaction.js +114 -0
  136. package/dist/observableInternal/transaction.js.map +1 -0
  137. package/dist/observableInternal/utils/promise.d.ts +76 -0
  138. package/dist/observableInternal/utils/promise.d.ts.map +1 -0
  139. package/dist/observableInternal/utils/promise.js +112 -0
  140. package/dist/observableInternal/utils/promise.js.map +1 -0
  141. package/dist/observableInternal/utils/runOnChange.d.ts +8 -0
  142. package/dist/observableInternal/utils/runOnChange.d.ts.map +1 -0
  143. package/dist/observableInternal/utils/runOnChange.js +64 -0
  144. package/dist/observableInternal/utils/runOnChange.js.map +1 -0
  145. package/dist/observableInternal/utils/utils.d.ts +44 -0
  146. package/dist/observableInternal/utils/utils.d.ts.map +1 -0
  147. package/dist/observableInternal/utils/utils.js +249 -0
  148. package/dist/observableInternal/utils/utils.js.map +1 -0
  149. package/dist/observableInternal/utils/utilsCancellation.d.ts +11 -0
  150. package/dist/observableInternal/utils/utilsCancellation.d.ts.map +1 -0
  151. package/dist/observableInternal/utils/utilsCancellation.js +91 -0
  152. package/dist/observableInternal/utils/utilsCancellation.js.map +1 -0
  153. package/dist/observableInternal/utils/valueWithChangeEvent.d.ts +11 -0
  154. package/dist/observableInternal/utils/valueWithChangeEvent.d.ts.map +1 -0
  155. package/dist/observableInternal/utils/valueWithChangeEvent.js +48 -0
  156. package/dist/observableInternal/utils/valueWithChangeEvent.js.map +1 -0
  157. package/dist/utils.d.ts +16 -0
  158. package/dist/utils.d.ts.map +1 -0
  159. package/package.json +50 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) Microsoft Corporation.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,164 @@
1
+ # @vscode/observables
2
+
3
+ A lightweight, fine-grained reactive programming library for building observable state management. Originally developed for Visual Studio Code.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install @vscode/observables
9
+ ```
10
+
11
+ ## Core Concepts
12
+
13
+ ### Observable Values
14
+
15
+ Create mutable observable values:
16
+
17
+ ```typescript
18
+ import { observableValue } from '@vscode/observables';
19
+
20
+ const count = observableValue(/* for debugging */ 'count', 0);
21
+
22
+ // Read the current value
23
+ console.log(count.get()); // 0
24
+
25
+ // Set a new value
26
+ count.set(5, undefined);
27
+
28
+ ```
29
+
30
+ In classes you an use `this` as owner:
31
+
32
+ ```ts
33
+ class Model {
34
+ public readonly count = observableValue(this, 0);
35
+ }
36
+ ```
37
+
38
+ ### Derived Observables
39
+
40
+ Create computed values that automatically update when dependencies change:
41
+
42
+ ```typescript
43
+ import { observableValue, derived } from '@vscode/observables';
44
+
45
+ class Model {
46
+ public readonly count = observableValue(this, 'count', 5);
47
+ public readonly doubled = derived(this, reader => this.count.read(reader) * 2);
48
+ public readonly tripled = derived(this, reader => this.count.read(reader) * 3);
49
+ }
50
+
51
+
52
+ console.log(doubled.get()); // 10
53
+ console.log(tripled.get()); // 15
54
+
55
+ count.set(10, undefined);
56
+ console.log(doubled.get()); // 20
57
+ ```
58
+
59
+ ### Effects
60
+
61
+ React to changes automatically:
62
+
63
+ ```typescript
64
+ import { observableValue, createEffect } from '@vscode/observables';
65
+
66
+ const count = observableValue('count', 0);
67
+
68
+ const disposable = createEffect(reader => {
69
+ console.log('Count:', count.read(reader));
70
+ });
71
+
72
+ count.set(5, undefined); // Logs: Count: 5
73
+ count.set(10, undefined); // Logs: Count: 10
74
+
75
+ // Cleanup when done
76
+ disposable.dispose();
77
+ ```
78
+
79
+ ### Transactions
80
+
81
+ Batch multiple changes to avoid intermediate updates:
82
+
83
+ ```typescript
84
+ import { observableValue, transaction, createEffect } from '@vscode/observables';
85
+
86
+ const firstName = observableValue('firstName', 'John');
87
+ const lastName = observableValue('lastName', 'Doe');
88
+
89
+ createEffect(reader => {
90
+ console.log(`${firstName.read(reader)} ${lastName.read(reader)}`);
91
+ });
92
+ // Logs: John Doe
93
+
94
+ // Both changes are applied atomically - only one effect execution
95
+ transaction(tx => {
96
+ firstName.set('Jane', tx);
97
+ lastName.set('Smith', tx);
98
+ });
99
+ // Logs: Jane Smith (only once)
100
+ ```
101
+
102
+ ## API Reference
103
+
104
+ ### Observables
105
+
106
+ - `observableValue(owner, initialValue)` - Create a settable observable value
107
+ - `derived(owner, computeFn)` - Create a computed observable
108
+ - `derivedWithStore(owner, computeFn)` - Derived with disposable store
109
+ - `derivedDisposable(computeFn)` - Derived that disposes previous values
110
+ - `constObservable(value)` - Create a constant (never-changing) observable
111
+ - `observableSignal(owner)` - Create a signal for triggering updates
112
+ - `observableFromEvent(event, getValue)` - Create observable from an event
113
+
114
+ ### Reactions
115
+
116
+ - `createEffect(fn)` - Run a function whenever observed values change
117
+ - `createEffectOpts(options, fn)` - Create an effect with debug metadata
118
+ - `autorun(fn)` - Deprecated alias for `createEffect`
119
+ - `autorunOpts(options, fn)` - Deprecated alias for `createEffectOpts`
120
+ - `autorunWithStore(fn)` - Autorun with a disposable store
121
+ - `autorunHandleChanges(fn, handleChange)` - Autorun with change handling
122
+ - `runOnChange(observable, callback)` - React to specific observable changes
123
+
124
+ ### Transactions
125
+
126
+ - `transaction(fn)` - Batch multiple updates atomically
127
+ - `globalTransaction(fn)` - Global transaction scope
128
+ - `subtransaction(fn, tx)` - Create a nested transaction
129
+
130
+ ### Utilities
131
+
132
+ - `waitForState(observable, predicate)` - Await until predicate is true
133
+ - `keepObserved(observable)` - Keep an observable observed (prevents GC)
134
+ - `debouncedObservable(observable, delay)` - Debounce observable updates
135
+ - `mapObservableArrayCached(array, mapFn)` - Efficiently map observable arrays
136
+
137
+ ### Collections
138
+
139
+ - `ObservableSet<T>` - Observable Set collection
140
+ - `ObservableMap<K, V>` - Observable Map collection
141
+
142
+ ### Disposables
143
+
144
+ - `IDisposable` - Interface for disposable resources
145
+ - `DisposableStore` - Container for managing multiple disposables
146
+ - `Disposable` - Base class with built-in store
147
+
148
+ ## Owner Pattern
149
+
150
+ The first argument to `observableValue` and `derived` is an "owner" object used for debugging. It should implement `toString()` or be `this` in a class:
151
+
152
+ ```typescript
153
+ class Counter {
154
+ private readonly count = observableValue(this, 0);
155
+
156
+ toString() {
157
+ return 'Counter';
158
+ }
159
+ }
160
+ ```
161
+
162
+ ## License
163
+
164
+ MIT
@@ -0,0 +1,3 @@
1
+ export declare function assert(condition: boolean): void;
2
+ export declare function assertNonExoticNumber(value: number): void;
3
+ //# sourceMappingURL=assert.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assert.d.ts","sourceRoot":"","sources":["../src/assert.ts"],"names":[],"mappings":"AAEA,wBAAgB,MAAM,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,CAI/C;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAIzD"}
package/dist/deps.d.ts ADDED
@@ -0,0 +1,29 @@
1
+ import { IDisposable, DisposableStore } from './disposables';
2
+ export { IDisposable, DisposableStore };
3
+ export declare function toDisposable(fn: () => void): IDisposable;
4
+ export declare function markAsDisposed(_disposable: IDisposable): void;
5
+ export declare function trackDisposable(_disposable: IDisposable): void;
6
+ export declare function assertFn(_fn: () => {}): void;
7
+ export declare class CancellationError extends Error {
8
+ constructor();
9
+ }
10
+ export interface CancellationToken {
11
+ /**
12
+ * A flag signalling is cancellation has been requested.
13
+ */
14
+ readonly isCancellationRequested: boolean;
15
+ /**
16
+ * An event which fires when cancellation is requested. This event
17
+ * only ever fires `once` as cancellation can only happen once. Listeners
18
+ * that are registered after cancellation will be called (next event loop run),
19
+ * but also only once.
20
+ *
21
+ * @event
22
+ */
23
+ readonly onCancellationRequested: (listener: (e: any) => any, thisArgs?: any, disposables?: IDisposable[]) => IDisposable;
24
+ }
25
+ export declare function onBugIndicatingError(_error?: any): void;
26
+ export declare class BugIndicatingError extends Error {
27
+ constructor(message?: string);
28
+ }
29
+ //# sourceMappingURL=deps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deps.d.ts","sourceRoot":"","sources":["../src/deps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAE7D,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC;AAExC,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,WAAW,CAExD;AAED,wBAAgB,cAAc,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI,CAAI;AAElE,wBAAgB,eAAe,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI,CAAI;AAEnE,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,CAAI;AAEjD,qBAAa,iBAAkB,SAAQ,KAAK;;CAI3C;AAED,MAAM,WAAW,iBAAiB;IAEjC;;OAEG;IACH,QAAQ,CAAC,uBAAuB,EAAE,OAAO,CAAC;IAE1C;;;;;;;OAOG;IACH,QAAQ,CAAC,uBAAuB,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,GAAG,EAAE,QAAQ,CAAC,EAAE,GAAG,EAAE,WAAW,CAAC,EAAE,WAAW,EAAE,KAAK,WAAW,CAAC;CAC1H;AAED,wBAAgB,oBAAoB,CAAC,MAAM,CAAC,EAAE,GAAG,QAEhD;AAED,qBAAa,kBAAmB,SAAQ,KAAK;gBAChC,OAAO,CAAC,EAAE,MAAM;CAK5B"}
@@ -0,0 +1,20 @@
1
+ export interface IDisposable {
2
+ dispose(): void;
3
+ }
4
+ export declare class DisposableStore implements IDisposable {
5
+ private disposables;
6
+ private _isDisposed;
7
+ get isDisposed(): boolean;
8
+ dispose(): void;
9
+ add<T extends IDisposable | undefined>(disposable: T): T;
10
+ remove<T extends IDisposable | undefined>(disposable: T): T;
11
+ clear(): void;
12
+ leakItems(): void;
13
+ }
14
+ export declare abstract class Disposable implements IDisposable {
15
+ protected readonly _store: DisposableStore;
16
+ dispose(): void;
17
+ protected _register<T extends IDisposable>(t: T): T;
18
+ protected _registerOrDispose<T extends IDisposable | undefined>(t: T): T;
19
+ }
20
+ //# sourceMappingURL=disposables.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"disposables.d.ts","sourceRoot":"","sources":["../src/disposables.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IACxB,OAAO,IAAI,IAAI,CAAC;CACnB;AAED,qBAAa,eAAgB,YAAW,WAAW;IAC/C,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,WAAW,CAAS;IAE5B,IAAI,UAAU,IAAI,OAAO,CAA6B;IAEtD,OAAO,IAAI,IAAI;IAKf,GAAG,CAAC,CAAC,SAAS,WAAW,GAAG,SAAS,EAAE,UAAU,EAAE,CAAC,GAAG,CAAC;IAOxD,MAAM,CAAC,CAAC,SAAS,WAAW,GAAG,SAAS,EAAE,UAAU,EAAE,CAAC,GAAG,CAAC;IAW3D,KAAK,IAAI,IAAI;IAOb,SAAS,IAAI,IAAI;CAGpB;AAED,8BAAsB,UAAW,YAAW,WAAW;IACnD,SAAS,CAAC,QAAQ,CAAC,MAAM,kBAAyB;IAElD,OAAO,IAAI,IAAI;IAIf,SAAS,CAAC,SAAS,CAAC,CAAC,SAAS,WAAW,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC;IAKnD,SAAS,CAAC,kBAAkB,CAAC,CAAC,SAAS,WAAW,GAAG,SAAS,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC;CAU3E"}
@@ -0,0 +1,66 @@
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
+ class DisposableStore {
6
+ constructor() {
7
+ this.disposables = [];
8
+ this._isDisposed = false;
9
+ }
10
+ get isDisposed() { return this._isDisposed; }
11
+ dispose() {
12
+ this.clear();
13
+ this._isDisposed = true;
14
+ }
15
+ add(disposable) {
16
+ if (disposable) {
17
+ this.disposables.push(disposable);
18
+ }
19
+ return disposable;
20
+ }
21
+ remove(disposable) {
22
+ if (!disposable) {
23
+ return disposable;
24
+ }
25
+ const index = this.disposables.indexOf(disposable);
26
+ if (index !== -1) {
27
+ this.disposables.splice(index, 1);
28
+ }
29
+ return disposable;
30
+ }
31
+ clear() {
32
+ for (const disposable of this.disposables) {
33
+ disposable.dispose();
34
+ }
35
+ this.disposables = [];
36
+ }
37
+ leakItems() {
38
+ this.disposables = [];
39
+ }
40
+ }
41
+ class Disposable {
42
+ constructor() {
43
+ this._store = new DisposableStore();
44
+ }
45
+ dispose() {
46
+ this._store.dispose();
47
+ }
48
+ _register(t) {
49
+ this._store.add(t);
50
+ return t;
51
+ }
52
+ _registerOrDispose(t) {
53
+ if (t) {
54
+ if (this._store.isDisposed) {
55
+ t.dispose();
56
+ }
57
+ else {
58
+ this._store.add(t);
59
+ }
60
+ }
61
+ return t;
62
+ }
63
+ }
64
+
65
+ export { Disposable, DisposableStore };
66
+ //# sourceMappingURL=disposables.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"disposables.js","sources":["../src/disposables.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;MAIa,eAAe,CAAA;AAA5B,IAAA,WAAA,GAAA;QACY,IAAW,CAAA,WAAA,GAAkB,EAAE,CAAC;QAChC,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;KAqC/B;IAnCG,IAAI,UAAU,KAAc,OAAO,IAAI,CAAC,WAAW,CAAC,EAAE;IAEtD,OAAO,GAAA;QACH,IAAI,CAAC,KAAK,EAAE,CAAC;AACb,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;KAC3B;AAED,IAAA,GAAG,CAAoC,UAAa,EAAA;QAChD,IAAI,UAAU,EAAE;AACZ,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SACrC;AACD,QAAA,OAAO,UAAU,CAAC;KACrB;AAED,IAAA,MAAM,CAAoC,UAAa,EAAA;QACnD,IAAI,CAAC,UAAU,EAAE;AACb,YAAA,OAAO,UAAU,CAAC;SACrB;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AACnD,QAAA,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;YACd,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;SACrC;AACD,QAAA,OAAO,UAAU,CAAC;KACrB;IAED,KAAK,GAAA;AACD,QAAA,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,WAAW,EAAE;YACvC,UAAU,CAAC,OAAO,EAAE,CAAC;SACxB;AACD,QAAA,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;KACzB;IAED,SAAS,GAAA;AACL,QAAA,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;KACzB;AACJ,CAAA;MAEqB,UAAU,CAAA;AAAhC,IAAA,WAAA,GAAA;AACuB,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;KAqBrD;IAnBG,OAAO,GAAA;AACH,QAAA,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;KACzB;AAES,IAAA,SAAS,CAAwB,CAAI,EAAA;AAC3C,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACnB,QAAA,OAAO,CAAC,CAAC;KACZ;AAES,IAAA,kBAAkB,CAAoC,CAAI,EAAA;QAChE,IAAI,CAAC,EAAE;AACH,YAAA,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;gBACxB,CAAC,CAAC,OAAO,EAAE,CAAC;aACf;iBAAM;AACH,gBAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;aACtB;SACJ;AACD,QAAA,OAAO,CAAC,CAAC;KACZ;AACJ;;;;"}
@@ -0,0 +1,33 @@
1
+ export type EqualityComparer<T> = (a: T, b: T) => boolean;
2
+ /**
3
+ * Compares two items for equality using strict equality.
4
+ */
5
+ export declare const strictEquals: EqualityComparer<any>;
6
+ /**
7
+ * Two items are considered equal, if their stringified representations are equal.
8
+ */
9
+ export declare function jsonStringifyEquals<T>(): EqualityComparer<T>;
10
+ /**
11
+ * Uses `item.equals(other)` to determine equality.
12
+ */
13
+ export declare function itemEquals<T extends {
14
+ equals(other: T): boolean;
15
+ }>(): EqualityComparer<T>;
16
+ /**
17
+ * Checks if two items are both null or undefined, or are equal according to the provided equality comparer.
18
+ */
19
+ export declare function equalsIfDefined<T>(v1: T | undefined | null, v2: T | undefined | null, equals: EqualityComparer<T>): boolean;
20
+ /**
21
+ * Returns an equality comparer that checks if two items are both null or undefined, or are equal according to the provided equality comparer.
22
+ */
23
+ export declare function equalsIfDefined<T>(equals: EqualityComparer<T>): EqualityComparer<T | undefined | null>;
24
+ /**
25
+ * Drills into arrays (items ordered) and objects (keys unordered) and uses strict equality on everything else.
26
+ */
27
+ export declare function structuralEquals<T>(a: T, b: T): boolean;
28
+ /**
29
+ * `getStructuralKey(a) === getStructuralKey(b) <=> structuralEquals(a, b)`
30
+ * (assuming that a and b are not cyclic structures and nothing extends globalThis Array).
31
+ */
32
+ export declare function getStructuralKey(t: unknown): string;
33
+ //# sourceMappingURL=equals.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"equals.d.ts","sourceRoot":"","sources":["../src/equals.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC;AAE1D;;EAEE;AACF,eAAO,MAAM,YAAY,EAAE,gBAAgB,CAAC,GAAG,CAAqB,CAAC;AAErE;;EAEE;AACF,wBAAgB,mBAAmB,CAAC,CAAC,KAAK,gBAAgB,CAAC,CAAC,CAAC,CAE5D;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS;IAAE,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO,CAAA;CAAE,KAAK,gBAAgB,CAAC,CAAC,CAAC,CAEzF;AAED;;EAEE;AACF,wBAAgB,eAAe,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,SAAS,GAAG,IAAI,EAAE,EAAE,EAAE,CAAC,GAAG,SAAS,GAAG,IAAI,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;AAC7H;;EAEE;AACF,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC,CAAC;AAmBxG;;EAEE;AACF,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,OAAO,CA2CvD;AAED;;;EAGE;AACF,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CAEnD"}
@@ -0,0 +1,3 @@
1
+ export * from './observableInternal/index';
2
+ export * from './disposables';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,eAAe,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,27 @@
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 './observableInternal/index.js';
6
+ export { Disposable, DisposableStore } from './disposables.js';
7
+ export { observableValueOpts } from './observableInternal/observables/observableValueOpts.js';
8
+ export { autorun, autorunDelta, autorunHandleChanges, autorunIterableDelta, autorunOpts, autorunSelfDisposable, autorunWithStore, autorunWithStoreHandleChanges, createEffect, createEffectOpts } from './observableInternal/reactions/createEffect.js';
9
+ export { disposableObservableValue, observableValue } from './observableInternal/observables/observableValue.js';
10
+ export { derived, derivedDisposable, derivedHandleChanges, derivedOpts, derivedWithSetter, derivedWithStore } from './observableInternal/observables/derived.js';
11
+ export { ObservableLazy, ObservableLazyPromise, ObservablePromise, PromiseResult } from './observableInternal/utils/promise.js';
12
+ export { derivedWithCancellationToken, waitForState } from './observableInternal/utils/utilsCancellation.js';
13
+ export { debouncedObservable, debouncedObservableDeprecated, derivedObservableWithCache, derivedObservableWithWritableCache, keepObserved, mapObservableArrayCached, observableFromPromise, recomputeInitiallyAndOnChange, signalFromObservable, wasEventTriggeredRecently } from './observableInternal/utils/utils.js';
14
+ export { recordChanges, recordChangesLazy } from './observableInternal/changeTracker.js';
15
+ export { constObservable } from './observableInternal/observables/constObservable.js';
16
+ export { observableSignal } from './observableInternal/observables/observableSignal.js';
17
+ export { observableFromEvent, observableFromEventOpts } from './observableInternal/observables/observableFromEvent.js';
18
+ export { observableSignalFromEvent } from './observableInternal/observables/observableSignalFromEvent.js';
19
+ export { TransactionImpl, asyncTransaction, globalTransaction, subtransaction, transaction } from './observableInternal/transaction.js';
20
+ export { ValueWithChangeEventFromObservable, observableFromValueWithChangeEvent } from './observableInternal/utils/valueWithChangeEvent.js';
21
+ export { runOnChange, runOnChangeWithCancellationToken, runOnChangeWithStore } from './observableInternal/utils/runOnChange.js';
22
+ export { derivedConstOnceDefined, latestChangedValue } from './observableInternal/experimental/utils.js';
23
+ export { deferUnobserve } from './observableInternal/experimental/deferUnobserve.js';
24
+ export { ObservableSet } from './observableInternal/set.js';
25
+ export { ObservableMap } from './observableInternal/map.js';
26
+ export { DebugLocation } from './observableInternal/debugLocation.js';
27
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,124 @@
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
+ /*---------------------------------------------------------------------------------------------
6
+ * Copyright (c) Microsoft Corporation. All rights reserved.
7
+ * Licensed under the MIT License. See License.txt in the project root for license information.
8
+ *--------------------------------------------------------------------------------------------*/
9
+ class e{constructor(e,t,s){this.owner=e,this.debugNameSource=t,this.referenceFn=s}getDebugName(e){return n(e,this)}}const t=new Map,s=new WeakMap;function n(e,n){const d=s.get(e);if(d)return d;const h=function(e,t){const n=s.get(e);if(n)return n;const d=t.owner?function(e){const t=r.get(e);if(t)return t;const s=a(e)??"Object";let n=i.get(s)??0;n++,i.set(s,n);const o=1===n?s:`${s}#${n}`;return r.set(e,o),o}(t.owner)+".":"";let h;const u=t.debugNameSource;if(void 0!==u){if("function"!=typeof u)return d+u;if(h=u(),void 0!==h)return d+h}const l=t.referenceFn;if(void 0!==l&&(h=o(l),void 0!==h))return d+h;if(void 0!==t.owner){const s=function(e,t){for(const s in e)if(e[s]===t)return s;return}(t.owner,e);if(void 0!==s)return d+s}return}(e,n);if(h){let n=t.get(h)??0;n++,t.set(h,n);const i=1===n?h:`${h}#${n}`;return s.set(e,i),i}}const i=new Map,r=new WeakMap;function a(e){const t=e.constructor;if(t){if("Object"===t.name)return;return t.name}}function o(e){const t=e.toString(),s=/\/\*\*\s*@description\s*([^*]*)\*\//.exec(t),n=s?s[1]:void 0;return n?.trim()}class d{constructor(){this.disposables=[],this._isDisposed=!1}get isDisposed(){return this._isDisposed}dispose(){this.clear(),this._isDisposed=!0}add(e){return e&&this.disposables.push(e),e}remove(e){if(!e)return e;const t=this.disposables.indexOf(e);return-1!==t&&this.disposables.splice(t,1),e}clear(){for(const e of this.disposables)e.dispose();this.disposables=[]}leakItems(){this.disposables=[]}}class h{constructor(){this._store=new d}dispose(){this._store.dispose()}_register(e){return this._store.add(e),e}_registerOrDispose(e){return e&&(this._store.isDisposed?e.dispose():this._store.add(e)),e}}
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
+ *--------------------------------------------------------------------------------------------*/function u(e){return{dispose:e}}class l extends Error{constructor(e){super(e||"An unexpected bug occurred."),Object.setPrototypeOf(this,l.prototype)}}function c(e){throw e}const g=(e,t)=>e===t;
14
+ /*---------------------------------------------------------------------------------------------
15
+ * Copyright (c) Microsoft Corporation. All rights reserved.
16
+ * Licensed under the MIT License. See License.txt in the project root for license information.
17
+ *--------------------------------------------------------------------------------------------*/function _(e){const t=new Error("BugIndicatingErrorRecovery: "+e);var s;s=t,console.error("Unexpected error:",s),console.error("recovered from an error that indicates a bug",t)}
18
+ /*---------------------------------------------------------------------------------------------
19
+ * Copyright (c) Microsoft Corporation. All rights reserved.
20
+ * Licensed under the MIT License. See License.txt in the project root for license information.
21
+ *--------------------------------------------------------------------------------------------*/let v,f,b;function p(){return v}class m{constructor(e){this.loggers=e}handleObservableCreated(e,t){for(const s of this.loggers)s.handleObservableCreated(e,t)}handleOnListenerCountChanged(e,t){for(const s of this.loggers)s.handleOnListenerCountChanged(e,t)}handleObservableUpdated(e,t){for(const s of this.loggers)s.handleObservableUpdated(e,t)}handleAutorunCreated(e,t){for(const s of this.loggers)s.handleAutorunCreated(e,t)}handleAutorunDisposed(e){for(const t of this.loggers)t.handleAutorunDisposed(e)}handleAutorunDependencyChanged(e,t,s){for(const n of this.loggers)n.handleAutorunDependencyChanged(e,t,s)}handleAutorunStarted(e){for(const t of this.loggers)t.handleAutorunStarted(e)}handleAutorunFinished(e){for(const t of this.loggers)t.handleAutorunFinished(e)}handleDerivedDependencyChanged(e,t,s){for(const n of this.loggers)n.handleDerivedDependencyChanged(e,t,s)}handleDerivedCleared(e){for(const t of this.loggers)t.handleDerivedCleared(e)}handleBeginTransaction(e){for(const t of this.loggers)t.handleBeginTransaction(e)}handleEndTransaction(e){for(const t of this.loggers)t.handleEndTransaction(e)}}
22
+ /*---------------------------------------------------------------------------------------------
23
+ * Copyright (c) Microsoft Corporation. All rights reserved.
24
+ * Licensed under the MIT License. See License.txt in the project root for license information.
25
+ *--------------------------------------------------------------------------------------------*/function C(e,t){const s=new S(e,t);try{e(s)}finally{s.finish()}}function w(e){if(b)e(b);else{const t=new S(e,void 0);b=t;try{e(t)}finally{t.finish(),b=void 0}}}async function y(e,t){const s=new S(e,t);try{await e(s)}finally{s.finish()}}function O(e,t,s){e?t(e):C(t,s)}class S{constructor(e,t){this._fn=e,this._getDebugName=t,this._updatingObservers=[],p()?.handleBeginTransaction(this)}getDebugName(){return this._getDebugName?this._getDebugName():o(this._fn)}updateObserver(e,t){if(!this._updatingObservers)return _("Transaction already finished!"),void C(s=>{s.updateObserver(e,t)});this._updatingObservers.push({observer:e,observable:t}),e.beginUpdate(t)}finish(){const e=this._updatingObservers;if(e){for(let t=0;t<e.length;t++){const{observer:s,observable:n}=e[t];s.endUpdate(n)}this._updatingObservers=null,p()?.handleEndTransaction(this)}else _("transaction.finish() has already been called!")}debugGetUpdatingObservers(){return this._updatingObservers}}
26
+ /*---------------------------------------------------------------------------------------------
27
+ * Copyright (c) Microsoft Corporation. All rights reserved.
28
+ * Licensed under the MIT License. See License.txt in the project root for license information.
29
+ *--------------------------------------------------------------------------------------------*/var T;!function(e){let t=!1;function s(e){if(!t)return;const s=Error,n=s.stackTraceLimit;s.stackTraceLimit=3;const i=(new Error).stack;return s.stackTraceLimit=n,V.fromStack(i,e+1)}e.enable=function(){t=!0},e.ofCaller=function(){return s(1)},e.ofNthCaller=s}(T||(T={}));class V{static fromStack(e,t){const s=function(e){if(!e)return;const t=e.match(/\((.*):(\d+):(\d+)\)/);if(t)return{fileName:t[1],line:parseInt(t[2]),column:parseInt(t[3]),id:e};const s=e.match(/at ([^\(\)]*):(\d+):(\d+)/);if(s)return{fileName:s[1],line:parseInt(s[2]),column:parseInt(s[3]),id:e};return}
30
+ /*---------------------------------------------------------------------------------------------
31
+ * Copyright (c) Microsoft Corporation. All rights reserved.
32
+ * Licensed under the MIT License. See License.txt in the project root for license information.
33
+ *--------------------------------------------------------------------------------------------*/(e.split("\n")[t+1]);return s?new V(s.fileName,s.line,s.column,s.id):void 0}constructor(e,t,s,n){this.fileName=e,this.line=t,this.column=s,this.id=n}}let N,R,D,k;class U{get TChange(){return null}reportChanges(){this.get()}read(e){return e?e.readObservable(this):this.get()}map(e,t,s=T.ofCaller()){const n=void 0===t?void 0:e,i=void 0===t?e:t;return N({owner:n,debugName:()=>{const e=o(i);if(void 0!==e)return e;const t=/^\s*\(?\s*([a-zA-Z_$][a-zA-Z_$0-9]*)\s*\)?\s*=>\s*\1(?:\??)\.([a-zA-Z_$][a-zA-Z_$0-9]*)\s*$/.exec(i.toString());return t?`${this.debugName}.${t[2]}`:n?void 0:`${this.debugName} (mapped)`},debugReferenceFn:i},e=>i(this.read(e),e),s)}flatten(){return N({owner:void 0,debugName:()=>`${this.debugName} (flattened)`},e=>this.read(e).read(e))}recomputeInitiallyAndOnChange(e,t){return e.add(R(this,t)),this}keepObserved(e){return e.add(D(this)),this}get debugValue(){return this.get()}debugGetDependencyGraph(){return k(this)}}class $ extends U{constructor(e){super(),this._observers=new Set,p()?.handleObservableCreated(this,e)}addObserver(e){const t=this._observers.size;this._observers.add(e),0===t&&this.onFirstObserverAdded(),t!==this._observers.size&&p()?.handleOnListenerCountChanged(this,this._observers.size)}removeObserver(e){const t=this._observers.delete(e);t&&0===this._observers.size&&this.onLastObserverRemoved(),t&&p()?.handleOnListenerCountChanged(this,this._observers.size)}onFirstObserverAdded(){}onLastObserverRemoved(){}log(){const e=!!p();var t;return t=this,f&&f(t),e||p()?.handleObservableCreated(this,T.ofCaller()),this}debugGetObservers(){return this._observers}}
34
+ /*---------------------------------------------------------------------------------------------
35
+ * Copyright (c) Microsoft Corporation. All rights reserved.
36
+ * Licensed under the MIT License. See License.txt in the project root for license information.
37
+ *--------------------------------------------------------------------------------------------*/function F(t,s,n=T.ofCaller()){let i;return i="string"==typeof t?new e(void 0,t,void 0):new e(t,void 0,void 0),new A(i,s,g,n)}class A extends ${get debugName(){return this._debugNameData.getDebugName(this)??"ObservableValue"}constructor(e,t,s,n){super(n),this._debugNameData=e,this._equalityComparator=s,this._value=t,p()?.handleObservableUpdated(this,{hadValue:!1,newValue:t,change:void 0,didChange:!0,oldValue:void 0})}get(){return this._value}set(e,t,s){if(void 0===s&&this._equalityComparator(this._value,e))return;let n;t||(t=n=new S(()=>{},()=>`Setting ${this.debugName}`));try{const n=this._value;this._setValue(e),p()?.handleObservableUpdated(this,{oldValue:n,newValue:e,change:s,didChange:!0,hadValue:!0});for(const e of this._observers)t.updateObserver(e,this),e.handleChange(this,s)}finally{n&&n.finish()}}toString(){return`${this.debugName}: ${this._value}`}_setValue(e){this._value=e}debugGetState(){return{value:this._value}}debugSetValue(e){this._value=e}}function E(t,s,n=T.ofCaller()){let i;return i="string"==typeof t?new e(void 0,t,void 0):new e(t,void 0,void 0),new B(i,s,g,n)}class B extends A{_setValue(e){this._value!==e&&(this._value&&this._value.dispose(),this._value=e)}dispose(){this._value?.dispose()}}
38
+ /*---------------------------------------------------------------------------------------------
39
+ * Copyright (c) Microsoft Corporation. All rights reserved.
40
+ * Licensed under the MIT License. See License.txt in the project root for license information.
41
+ *--------------------------------------------------------------------------------------------*/class x extends ${get debugName(){return this._debugNameData.getDebugName(this)??"LazyObservableValue"}constructor(e,t,s,n){super(n),this._debugNameData=e,this._equalityComparator=s,this._isUpToDate=!0,this._deltas=[],this._updateCounter=0,this._value=t}get(){return this._update(),this._value}_update(){if(!this._isUpToDate)if(this._isUpToDate=!0,this._deltas.length>0){for(const e of this._deltas){p()?.handleObservableUpdated(this,{change:e,didChange:!0,oldValue:"(unknown)",newValue:this._value,hadValue:!0});for(const t of this._observers)t.handleChange(this,e)}this._deltas.length=0}else{p()?.handleObservableUpdated(this,{change:void 0,didChange:!0,oldValue:"(unknown)",newValue:this._value,hadValue:!0});for(const e of this._observers)e.handleChange(this,void 0)}}_beginUpdate(){if(this._updateCounter++,1===this._updateCounter)for(const e of this._observers)e.beginUpdate(this)}_endUpdate(){if(this._updateCounter--,0===this._updateCounter){this._update();const e=[...this._observers];for(const t of e)t.endUpdate(this)}}addObserver(e){const t=!this._observers.has(e)&&this._updateCounter>0;super.addObserver(e),t&&e.beginUpdate(this)}removeObserver(e){const t=this._observers.has(e)&&this._updateCounter>0;super.removeObserver(e),t&&e.endUpdate(this)}set(e,t,s){if(void 0===s&&this._equalityComparator(this._value,e))return;let n;t||(t=n=new S(()=>{},()=>`Setting ${this.debugName}`));try{if(this._isUpToDate=!1,this._setValue(e),void 0!==s&&this._deltas.push(s),t.updateObserver({beginUpdate:()=>this._beginUpdate(),endUpdate:()=>this._endUpdate(),handleChange:(e,t)=>{},handlePossibleChange:e=>{}},this),this._updateCounter>1)for(const e of this._observers)e.handlePossibleChange(this)}finally{n&&n.finish()}}toString(){return`${this.debugName}: ${this._value}`}_setValue(e){this._value=e}}
42
+ /*---------------------------------------------------------------------------------------------
43
+ * Copyright (c) Microsoft Corporation. All rights reserved.
44
+ * Licensed under the MIT License. See License.txt in the project root for license information.
45
+ *--------------------------------------------------------------------------------------------*/function I(t,s,n=T.ofCaller()){return t.lazy?new x(new e(t.owner,t.debugName,void 0),s,t.equalsFn??g,n):new A(new e(t.owner,t.debugName,void 0),s,t.equalsFn??g,n)}
46
+ /*---------------------------------------------------------------------------------------------
47
+ * Copyright (c) Microsoft Corporation. All rights reserved.
48
+ * Licensed under the MIT License. See License.txt in the project root for license information.
49
+ *--------------------------------------------------------------------------------------------*/function z(e){switch(e){case 1:return"dependenciesMightHaveChanged";case 2:return"stale";case 3:return"upToDate";default:return"<unknown>"}}class j{get debugName(){return this._debugNameData.getDebugName(this)??"(anonymous)"}constructor(e,t,s,n){this._debugNameData=e,this._runFn=t,this._changeTracker=s,this._state=2,this._updateCount=0,this._disposed=!1,this._dependencies=new Set,this._dependenciesToBeRemoved=new Set,this._isRunning=!1,this._store=void 0,this._delayedStore=void 0,this._changeSummary=this._changeTracker?.createChangeSummary(void 0),p()?.handleAutorunCreated(this,n),this._run()}dispose(){if(!this._disposed){this._disposed=!0;for(const e of this._dependencies)e.removeObserver(this);this._dependencies.clear(),void 0!==this._store&&this._store.dispose(),void 0!==this._delayedStore&&this._delayedStore.dispose(),p()?.handleAutorunDisposed(this)}}_run(){const e=this._dependenciesToBeRemoved;this._dependenciesToBeRemoved=this._dependencies,this._dependencies=e,this._state=3;try{if(!this._disposed){p()?.handleAutorunStarted(this);const e=this._changeSummary,t=this._delayedStore;void 0!==t&&(this._delayedStore=void 0);try{this._isRunning=!0,this._changeTracker&&(this._changeTracker.beforeUpdate?.(this,e),this._changeSummary=this._changeTracker.createChangeSummary(e)),void 0!==this._store&&(this._store.dispose(),this._store=void 0),this._runFn(this,e)}catch(e){c(e)}finally{this._isRunning=!1,void 0!==t&&t.dispose()}}}finally{this._disposed||p()?.handleAutorunFinished(this);for(const e of this._dependenciesToBeRemoved)e.removeObserver(this);this._dependenciesToBeRemoved.clear()}}toString(){return`Autorun<${this.debugName}>`}beginUpdate(e){3===this._state&&(this._state=1),this._updateCount++}endUpdate(e){try{if(1===this._updateCount)do{if(1===this._state){this._state=3;for(const e of this._dependencies)if(e.reportChanges(),2===this._state)break}3!==this._state&&this._run()}while(3!==this._state)}finally{this._updateCount--}}handlePossibleChange(e){3===this._state&&this._isDependency(e)&&(this._state=1)}handleChange(e,t){if(this._isDependency(e)){p()?.handleAutorunDependencyChanged(this,e,t);try{(!this._changeTracker||this._changeTracker.handleChange({changedObservable:e,change:t,didChange:t=>t===e},this._changeSummary))&&(this._state=2)}catch(e){c(e)}}}_isDependency(e){return this._dependencies.has(e)&&!this._dependenciesToBeRemoved.has(e)}_ensureNoRunning(){if(!this._isRunning)throw new l("The reader object cannot be used outside its compute function!")}readObservable(e){if(this._ensureNoRunning(),this._disposed)return e.get();e.addObserver(this);const t=e.get();return this._dependencies.add(e),this._dependenciesToBeRemoved.delete(e),t}get store(){if(this._ensureNoRunning(),this._disposed)throw new l("Cannot access store after dispose");return void 0===this._store&&(this._store=new d),this._store}get delayedStore(){if(this._ensureNoRunning(),this._disposed)throw new l("Cannot access store after dispose");return void 0===this._delayedStore&&(this._delayedStore=new d),this._delayedStore}debugGetState(){return{isRunning:this._isRunning,updateCount:this._updateCount,dependencies:this._dependencies,state:this._state,stateStr:z(this._state)}}debugRerun(){this._isRunning?this._state=2:this._run()}}
50
+ /*---------------------------------------------------------------------------------------------
51
+ * Copyright (c) Microsoft Corporation. All rights reserved.
52
+ * Licensed under the MIT License. See License.txt in the project root for license information.
53
+ *--------------------------------------------------------------------------------------------*/function L(t,s=T.ofCaller()){return new j(new e(void 0,void 0,t),t,void 0,s)}const q=L;function P(t,s,n=T.ofCaller()){return new j(new e(t.owner,t.debugName,t.debugReferenceFn??s),s,void 0,n)}const G=P;function M(t,s,n=T.ofCaller()){return new j(new e(t.owner,t.debugName,t.debugReferenceFn??s),s,t.changeTracker,n)}function W(e,t){const s=new d,n=M({owner:e.owner,debugName:e.debugName,debugReferenceFn:e.debugReferenceFn??t,changeTracker:e.changeTracker},(e,n)=>{s.clear(),t(e,n,s)});return u(()=>{n.dispose(),s.dispose()})}function Z(e){const t=new d,s=P({owner:void 0,debugName:void 0,debugReferenceFn:e},s=>{t.clear(),e(s,t)});return u(()=>{s.dispose(),t.dispose()})}function H(e,t){let s;return P({debugReferenceFn:t},n=>{const i=e.read(n),r=s;s=i,t({lastValue:r,newValue:i})})}function J(e,t,s=e=>e){const n=new Map;return P({debugReferenceFn:e},i=>{const r=new Map,a=new Map(n);for(const t of e(i)){const e=s(t);n.has(e)?a.delete(e):(r.set(e,t),n.set(e,t))}for(const e of a.keys())n.delete(e);(r.size||a.size)&&t({addedValues:[...r.values()],removedValues:[...a.values()]})})}function K(e,t=T.ofCaller()){let s,n=!1;return s=L(t=>{e({delayedStore:t.delayedStore,store:t.store,readObservable:t.readObservable.bind(t),dispose:()=>{s?.dispose(),n=!0}})},t),n&&s.dispose(),s}
54
+ /*---------------------------------------------------------------------------------------------
55
+ * Copyright (c) Microsoft Corporation. All rights reserved.
56
+ * Licensed under the MIT License. See License.txt in the project root for license information.
57
+ *--------------------------------------------------------------------------------------------*/function Q(e){switch(e){case 0:return"initial";case 1:return"dependenciesMightHaveChanged";case 2:return"stale";case 3:return"upToDate";default:return"<unknown>"}}class X extends ${get debugName(){return this._debugNameData.getDebugName(this)??"(anonymous)"}constructor(e,t,s,n=void 0,i,r){super(r),this._debugNameData=e,this._computeFn=t,this._changeTracker=s,this._handleLastObserverRemoved=n,this._equalityComparator=i,this._state=0,this._value=void 0,this._updateCount=0,this._dependencies=new Set,this._dependenciesToBeRemoved=new Set,this._changeSummary=void 0,this._isUpdating=!1,this._isComputing=!1,this._didReportChange=!1,this._isInBeforeUpdate=!1,this._isReaderValid=!1,this._store=void 0,this._delayedStore=void 0,this._removedObserverToCallEndUpdateOn=null,this._changeSummary=this._changeTracker?.createChangeSummary(void 0)}onLastObserverRemoved(){this._state=0,this._value=void 0,p()?.handleDerivedCleared(this);for(const e of this._dependencies)e.removeObserver(this);this._dependencies.clear(),void 0!==this._store&&(this._store.dispose(),this._store=void 0),void 0!==this._delayedStore&&(this._delayedStore.dispose(),this._delayedStore=void 0),this._handleLastObserverRemoved?.()}get(){if(this._isComputing,0===this._observers.size){let e;try{let t;this._isReaderValid=!0,this._changeTracker&&(t=this._changeTracker.createChangeSummary(void 0),this._changeTracker.beforeUpdate?.(this,t)),e=this._computeFn(this,t)}finally{this._isReaderValid=!1}return this.onLastObserverRemoved(),e}do{if(1===this._state)for(const e of this._dependencies)if(e.reportChanges(),2===this._state)break;1===this._state&&(this._state=3),3!==this._state&&this._recompute()}while(3!==this._state);return this._value}_recompute(){let e=!1;this._isComputing=!0,this._didReportChange=!1;const t=this._dependenciesToBeRemoved;this._dependenciesToBeRemoved=this._dependencies,this._dependencies=t;try{const t=this._changeSummary;this._isReaderValid=!0,this._changeTracker&&(this._isInBeforeUpdate=!0,this._changeTracker.beforeUpdate?.(this,t),this._isInBeforeUpdate=!1,this._changeSummary=this._changeTracker?.createChangeSummary(t));const s=0!==this._state,n=this._value;this._state=3;const i=this._delayedStore;void 0!==i&&(this._delayedStore=void 0);try{void 0!==this._store&&(this._store.dispose(),this._store=void 0),this._value=this._computeFn(this,t)}finally{this._isReaderValid=!1;for(const e of this._dependenciesToBeRemoved)e.removeObserver(this);this._dependenciesToBeRemoved.clear(),void 0!==i&&i.dispose()}e=this._didReportChange||s&&!this._equalityComparator(n,this._value),p()?.handleObservableUpdated(this,{oldValue:n,newValue:this._value,change:void 0,didChange:e,hadValue:s})}catch(e){c(e)}if(this._isComputing=!1,!this._didReportChange&&e)for(const e of this._observers)e.handleChange(this,void 0);else this._didReportChange=!1}toString(){return`LazyDerived<${this.debugName}>`}beginUpdate(e){if(this._isUpdating)throw new l("Cyclic deriveds are not supported yet!");this._updateCount++,this._isUpdating=!0;try{const e=1===this._updateCount;if(3===this._state&&(this._state=1,!e))for(const e of this._observers)e.handlePossibleChange(this);if(e)for(const e of this._observers)e.beginUpdate(this)}finally{this._isUpdating=!1}}endUpdate(e){if(this._updateCount--,0===this._updateCount){const e=[...this._observers];for(const t of e)t.endUpdate(this);if(this._removedObserverToCallEndUpdateOn){const e=[...this._removedObserverToCallEndUpdateOn];this._removedObserverToCallEndUpdateOn=null;for(const t of e)t.endUpdate(this)}}}handlePossibleChange(e){if(3===this._state&&this._dependencies.has(e)&&!this._dependenciesToBeRemoved.has(e)){this._state=1;for(const e of this._observers)e.handlePossibleChange(this)}}handleChange(e,t){if(this._dependencies.has(e)&&!this._dependenciesToBeRemoved.has(e)||this._isInBeforeUpdate){p()?.handleDerivedDependencyChanged(this,e,t);let s=!1;try{s=!this._changeTracker||this._changeTracker.handleChange({changedObservable:e,change:t,didChange:t=>t===e},this._changeSummary)}catch(e){c(e)}const n=3===this._state;if(s&&(1===this._state||n)&&(this._state=2,n))for(const e of this._observers)e.handlePossibleChange(this)}}_ensureReaderValid(){if(!this._isReaderValid)throw new l("The reader object cannot be used outside its compute function!")}readObservable(e){this._ensureReaderValid(),e.addObserver(this);const t=e.get();return this._dependencies.add(e),this._dependenciesToBeRemoved.delete(e),t}reportChange(e){this._ensureReaderValid(),this._didReportChange=!0;for(const t of this._observers)t.handleChange(this,e)}get store(){return this._ensureReaderValid(),void 0===this._store&&(this._store=new d),this._store}get delayedStore(){return this._ensureReaderValid(),void 0===this._delayedStore&&(this._delayedStore=new d),this._delayedStore}addObserver(e){const t=!this._observers.has(e)&&this._updateCount>0;super.addObserver(e),t&&(this._removedObserverToCallEndUpdateOn&&this._removedObserverToCallEndUpdateOn.has(e)?this._removedObserverToCallEndUpdateOn.delete(e):e.beginUpdate(this))}removeObserver(e){this._observers.has(e)&&this._updateCount>0&&(this._removedObserverToCallEndUpdateOn||(this._removedObserverToCallEndUpdateOn=new Set),this._removedObserverToCallEndUpdateOn.add(e)),super.removeObserver(e)}debugGetState(){return{state:this._state,stateStr:Q(this._state),updateCount:this._updateCount,isComputing:this._isComputing,dependencies:this._dependencies,value:this._value}}debugSetValue(e){this._value=e}debugRecompute(){this._isComputing?this._state=2:this._recompute()}setValue(e,t,s){this._value=e;const n=this._observers;t.updateObserver(this,this);for(const e of n)e.handleChange(this,s)}}class Y extends X{constructor(e,t,s,n=void 0,i,r,a){super(e,t,s,n,i,a),this.set=r}}
58
+ /*---------------------------------------------------------------------------------------------
59
+ * Copyright (c) Microsoft Corporation. All rights reserved.
60
+ * Licensed under the MIT License. See License.txt in the project root for license information.
61
+ *--------------------------------------------------------------------------------------------*/function ee(t,s,n=T.ofCaller()){return void 0!==s?new X(new e(t,void 0,s),s,void 0,void 0,g,n):new X(new e(void 0,void 0,t),t,void 0,void 0,g,n)}function te(t,s,n,i=T.ofCaller()){return new Y(new e(t,void 0,s),s,void 0,void 0,g,n,i)}function se(t,s,n=T.ofCaller()){return new X(new e(t.owner,t.debugName,t.debugReferenceFn),s,void 0,t.onLastObserverRemoved,t.equalsFn??g,n)}function ne(t,s,n=T.ofCaller()){return new X(new e(t.owner,t.debugName,void 0),s,t.changeTracker,void 0,t.equalityComparer??g,n)}function ie(t,s,n=T.ofCaller()){let i,r;void 0===s?(i=t,r=void 0):(r=t,i=s);let a=new d;return new X(new e(r,void 0,i),e=>(a.isDisposed?a=new d:a.clear(),i(e,a)),void 0,()=>a.dispose(),g,n)}function re(t,s,n=T.ofCaller()){let i,r,a;return void 0===s?(i=t,r=void 0):(r=t,i=s),new X(new e(r,void 0,i),e=>{a?a.clear():a=new d;const t=i(e);return t&&a.add(t),t},void 0,()=>{a&&(a.dispose(),a=void 0)},g,n)}!function(e){N=e}(se);class ae{get cachedValue(){return this._value}constructor(e){this._computeValue=e,this._value=F(this,void 0)}getValue(){let e=this._value.get();return e||(e=this._computeValue(),this._value.set(e,void 0)),e}}class oe{static fromFn(e){return new oe(e())}constructor(e){this._value=F(this,void 0),this.promiseResult=this._value,this.resolvedValue=ee(this,e=>{const t=this.promiseResult.read(e);if(t)return t.getDataOrThrow()}),this.promise=e.then(e=>(C(t=>{this._value.set(new de(e,void 0),t)}),e),e=>{throw C(t=>{this._value.set(new de(void 0,e),t)}),e})}}class de{constructor(e,t){this.data=e,this.error=t}getDataOrThrow(){if(this.error)throw this.error;return this.data}}class he{constructor(e){this._computePromise=e,this._lazyValue=new ae(()=>new oe(this._computePromise())),this.cachedPromiseResult=ee(this,e=>this._lazyValue.cachedValue.read(e)?.promiseResult.read(e))}getPromise(){return this._lazyValue.getValue().promise}}class ue extends Error{constructor(e="Operation was cancelled"){super(e),this.name="CancellationError"}}class le{constructor(){this._isCancelled=!1,this._listeners=new Set}get token(){return{isCancellationRequested:this._isCancelled,onCancellationRequested:e=>(this._listeners.add(e),this._isCancelled&&e(),{dispose:()=>{this._listeners.delete(e)}})}}cancel(){if(!this._isCancelled){this._isCancelled=!0;for(const e of this._listeners)e()}}dispose(){this.cancel(),this._listeners.clear()}}
62
+ /*---------------------------------------------------------------------------------------------
63
+ * Copyright (c) Microsoft Corporation. All rights reserved.
64
+ * Licensed under the MIT License. See License.txt in the project root for license information.
65
+ *--------------------------------------------------------------------------------------------*/
66
+ function ce(e,t,s,n){return t||(t=e=>null!=e),new Promise((i,r)=>{let a=!0,o=!1;const d=e.map(e=>({isFinished:t(e),error:!!s&&s(e),state:e})),h=L(e=>{const{isFinished:t,error:s,state:n}=d.read(e);(t||s)&&(a?o=!0:h.dispose(),s?r(!0===s?n:s):i(n))});if(n){const e=n.onCancellationRequested(()=>{h.dispose(),e.dispose(),r(new ue)});if(n.isCancellationRequested)return h.dispose(),e.dispose(),void r(new ue)}a=!1,o&&h.dispose()})}function ge(t,s){let n,i,r;return void 0===s?(n=t,i=void 0):(i=t,n=s),new X(new e(i,void 0,n),e=>(r&&r.dispose(),r=new le,n(e,r.token)),void 0,()=>r?.dispose(),g,T.ofCaller())}
67
+ /*---------------------------------------------------------------------------------------------
68
+ * Copyright (c) Microsoft Corporation. All rights reserved.
69
+ * Licensed under the MIT License. See License.txt in the project root for license information.
70
+ *--------------------------------------------------------------------------------------------*/function _e(...t){let s,n,i,r;return 2===t.length?[n,i]=t:[s,n,i,r]=t,new fe(new e(s,void 0,i),n,i,()=>fe.globalTransaction,g,r??T.ofCaller())}function ve(t,s,n,i=T.ofCaller()){return new fe(new e(t.owner,t.debugName,t.debugReferenceFn??n),s,n,()=>fe.globalTransaction,t.equalsFn??g,i)}class fe extends ${constructor(e,t,s,n,i,r){super(r),this._debugNameData=e,this.event=t,this._getValue=s,this._getTransaction=n,this._equalityComparator=i,this._hasValue=!1,this.handleEvent=e=>{const t=this._getValue(e),s=this._value,n=!this._hasValue||!this._equalityComparator(s,t);let i=!1;n&&(this._value=t,this._hasValue&&(i=!0,O(this._getTransaction(),e=>{p()?.handleObservableUpdated(this,{oldValue:s,newValue:t,change:void 0,didChange:n,hadValue:this._hasValue});for(const t of this._observers)e.updateObserver(t,this),t.handleChange(this,void 0)},()=>{const e=this.getDebugName();return"Event fired"+(e?`: ${e}`:"")})),this._hasValue=!0),i||p()?.handleObservableUpdated(this,{oldValue:s,newValue:t,change:void 0,didChange:n,hadValue:this._hasValue})}}getDebugName(){return this._debugNameData.getDebugName(this)}get debugName(){const e=this.getDebugName();return"From Event"+(e?`: ${e}`:"")}onFirstObserverAdded(){this._subscription=this.event(this.handleEvent)}onLastObserverRemoved(){this._subscription.dispose(),this._subscription=void 0,this._hasValue=!1,this._value=void 0}get(){if(this._subscription)return this._hasValue||this.handleEvent(void 0),this._value;return this._getValue(void 0)}debugSetValue(e){this._value=e}debugGetState(){return{value:this._value,hasValue:this._hasValue}}}
71
+ /*---------------------------------------------------------------------------------------------
72
+ * Copyright (c) Microsoft Corporation. All rights reserved.
73
+ * Licensed under the MIT License. See License.txt in the project root for license information.
74
+ *--------------------------------------------------------------------------------------------*/
75
+ function be(e,t=T.ofCaller()){return"string"==typeof e?new pe(e,void 0,t):new pe(void 0,e,t)}!function(e){e.Observer=fe,e.batchEventsGlobally=function(e,t){let s=!1;void 0===fe.globalTransaction&&(fe.globalTransaction=e,s=!0);try{t()}finally{s&&(fe.globalTransaction=void 0)}}}(_e||(_e={}));class pe extends ${get debugName(){return new e(this._owner,this._debugName,void 0).getDebugName(this)??"Observable Signal"}toString(){return this.debugName}constructor(e,t,s){super(s),this._debugName=e,this._owner=t}trigger(e,t){if(e)for(const s of this._observers)e.updateObserver(s,this),s.handleChange(this,t);else C(e=>{this.trigger(e,t)},()=>`Trigger signal ${this.debugName}`)}get(){}}
76
+ /*---------------------------------------------------------------------------------------------
77
+ * Copyright (c) Microsoft Corporation. All rights reserved.
78
+ * Licensed under the MIT License. See License.txt in the project root for license information.
79
+ *--------------------------------------------------------------------------------------------*/function me(e){const t=F("promiseValue",{});return e.then(e=>{t.set({value:e},void 0)}),t}function Ce(e,t){return se({owner:e,equalsFn:()=>!1},e=>{t.read(e)})}function we(e,t,s){const n=F("debounced",void 0);let i;return s.add(L(s=>{const r=e.read(s);i&&clearTimeout(i),i=setTimeout(()=>{C(e=>{n.set(r,e)})},t)})),n}function ye(e,t){let s,n,i=!1;return _e(r=>{const a=L(a=>{const o=e.read(a);i?(n&&clearTimeout(n),n=setTimeout(()=>{s=o,r()},t)):(i=!0,s=o)});return{dispose(){a.dispose(),i=!1,s=void 0}}},()=>i?s:e.get())}function Oe(e,t,s){const n=F("triggeredRecently",!1);let i;return s.add(e(()=>{n.set(!0,void 0),i&&clearTimeout(i),i=setTimeout(()=>{n.set(!1,void 0)},t)})),n}function Se(e){const t=new Ve(!1,void 0);return e.addObserver(t),u(()=>{e.removeObserver(t)})}function Te(e,t){const s=new Ve(!0,t);e.addObserver(s);try{s.beginUpdate(e)}finally{s.endUpdate(e)}return u(()=>{e.removeObserver(s)})}!function(e){D=e}(Se),function(e){R=e}(Te);class Ve{constructor(e,t){this._forceRecompute=e,this._handleValue=t,this._counter=0}beginUpdate(e){this._counter++}endUpdate(e){1===this._counter&&this._forceRecompute&&(this._handleValue?this._handleValue(e.get()):e.reportChanges()),this._counter--}handlePossibleChange(e){}handleChange(e,t){}}function Ne(e,t){let s;return se({owner:e,debugReferenceFn:t},e=>(s=t(e,s),s))}function Re(e,t){let s;const n=be("derivedObservableWithWritableCache"),i=ee(e,e=>(n.read(e),s=t(e,s),s));return Object.assign(i,{clearCache:e=>{s=void 0,n.trigger(e)},setCache:(e,t)=>{s=e,n.trigger(t)}})}function De(e,t,s,n){let i=new ke(s,n);return se({debugReferenceFn:s,owner:e,onLastObserverRemoved:()=>{i.dispose(),i=new ke(s)}},e=>(i.setItems(t.read(e)),i.getItems()))}class ke{constructor(e,t){this._map=e,this._keySelector=t,this._cache=new Map,this._items=[]}dispose(){this._cache.forEach(e=>e.store.dispose()),this._cache.clear()}setItems(e){const t=[],s=new Set(this._cache.keys());for(const n of e){const e=this._keySelector?this._keySelector(n):n;let i=this._cache.get(e);if(i)s.delete(e);else{const t=new d;i={out:this._map(n,t),store:t},this._cache.set(e,i)}t.push(i.out)}for(const e of s){this._cache.get(e).store.dispose(),this._cache.delete(e)}this._items=t}getItems(){return this._items}}
80
+ /*---------------------------------------------------------------------------------------------
81
+ * Copyright (c) Microsoft Corporation. All rights reserved.
82
+ * Licensed under the MIT License. See License.txt in the project root for license information.
83
+ *--------------------------------------------------------------------------------------------*/function Ue(e){return{createChangeSummary:e=>({changes:[]}),handleChange(t,s){for(const n in e)t.didChange(e[n])&&s.changes.push({key:n,change:t.change});return!0},beforeUpdate(t,s){for(const n in e){if("changes"===n)throw new l('property name "changes" is reserved for change tracking');s[n]=e[n].read(t)}}}}function $e(e){let t;return{createChangeSummary:e=>({changes:[]}),handleChange(s,n){t||(t=e());for(const e in t)s.didChange(t[e])&&n.changes.push({key:e,change:s.change});return!0},beforeUpdate(s,n){t||(t=e());for(const e in t){if("changes"===e)throw new l('property name "changes" is reserved for change tracking');n[e]=t[e].read(s)}}}}
84
+ /*---------------------------------------------------------------------------------------------
85
+ * Copyright (c) Microsoft Corporation. All rights reserved.
86
+ * Licensed under the MIT License. See License.txt in the project root for license information.
87
+ *--------------------------------------------------------------------------------------------*/function Fe(e){return new Ae(e)}class Ae extends U{constructor(e){super(),this.value=e}get debugName(){return this.toString()}get(){return this.value}addObserver(e){}removeObserver(e){}log(){return this}toString(){return`Const: ${this.value}`}}
88
+ /*---------------------------------------------------------------------------------------------
89
+ * Copyright (c) Microsoft Corporation. All rights reserved.
90
+ * Licensed under the MIT License. See License.txt in the project root for license information.
91
+ *--------------------------------------------------------------------------------------------*/function Ee(t,s,n=T.ofCaller()){return new Be("string"==typeof t?t:new e(t,void 0,void 0),s,n)}class Be extends ${constructor(e,t,s){super(s),this.event=t,this.handleEvent=()=>{C(e=>{for(const t of this._observers)e.updateObserver(t,this),t.handleChange(this,void 0)},()=>this.debugName)},this.debugName="string"==typeof e?e:e.getDebugName(this)??"Observable Signal From Event"}onFirstObserverAdded(){this.subscription=this.event(this.handleEvent)}onLastObserverRemoved(){this.subscription.dispose(),this.subscription=void 0}get(){}}
92
+ /*---------------------------------------------------------------------------------------------
93
+ * Copyright (c) Microsoft Corporation. All rights reserved.
94
+ * Licensed under the MIT License. See License.txt in the project root for license information.
95
+ *--------------------------------------------------------------------------------------------*/class xe{constructor(e){this.observable=e}get onDidChange(){return e=this.observable,t=>{let s=!0;return L(n=>{e.read(n),s?s=!1:t()})};var e}get value(){return this.observable.get()}}function Ie(e,t){return t instanceof xe?t.observable:_e(e,t.onDidChange,()=>t.value)}
96
+ /*---------------------------------------------------------------------------------------------
97
+ * Copyright (c) Microsoft Corporation. All rights reserved.
98
+ * Licensed under the MIT License. See License.txt in the project root for license information.
99
+ *--------------------------------------------------------------------------------------------*/function ze(e,t){let s,n=!0;return W({changeTracker:{createChangeSummary:()=>({deltas:[],didChange:!1}),handleChange:(t,s)=>{if(t.didChange(e)){const e=t.change;void 0!==e&&s.deltas.push(e),s.didChange=!0}return!0}}},(i,r)=>{const a=e.read(i),o=s;r.didChange&&(s=a,t(a,o,r.deltas)),n&&(n=!1,s=a)})}function je(e,t){const s=new d,n=ze(e,(e,n,i)=>{s.clear(),t(e,n,i,s)});return{dispose(){n.dispose(),s.dispose()}}}function Le(e,t){return je(e,(e,s,n,i)=>{t(e,s,n,function(e){const t=new le;return e.add(t),t.token}(i))})}
100
+ /*---------------------------------------------------------------------------------------------
101
+ * Copyright (c) Microsoft Corporation. All rights reserved.
102
+ * Licensed under the MIT License. See License.txt in the project root for license information.
103
+ *--------------------------------------------------------------------------------------------*/function qe(t,s){if(0===s.length)throw new l;let i,r=!1;const a=_e(t,o=>{const h=new d;for(const d of s)h.add(P({debugName:()=>n(a,new e(t,void 0,void 0))+".updateLastChangedValue"},e=>{r=!0,i=d.read(e),o()}));return h.add({dispose(){r=!1,i=void 0}}),h},()=>r?i:s[s.length-1].get());return a}function Pe(e,t){return Ne(e,(e,s)=>s??t(e))}function Ge(e,t,s){let n,i,r=!1;const a=Ee("deferUnobserve",e=>{if(r)throw new l("deferUnobserve: Cannot add observer after disposal");return void 0!==i&&(clearTimeout(i),i=void 0),n||(n=Se(t)),{dispose(){i=setTimeout(()=>{i=void 0,n?.dispose(),n=void 0},s)}}});return e.add({dispose(){void 0!==i&&(clearTimeout(i),i=void 0),n?.dispose(),n=void 0,r=!0}}),ee(e=>(a.read(e),t.read(e)))}
104
+ /*---------------------------------------------------------------------------------------------
105
+ * Copyright (c) Microsoft Corporation. All rights reserved.
106
+ * Licensed under the MIT License. See License.txt in the project root for license information.
107
+ *--------------------------------------------------------------------------------------------*/class Me{constructor(){this._data=new Set,this._obs=I({equalsFn:()=>!1},this),this.observable=this._obs}get size(){return this._data.size}has(e){return this._data.has(e)}add(e,t){return this._data.has(e)||(this._data.add(e),this._obs.set(this,t)),this}delete(e,t){const s=this._data.delete(e);return s&&this._obs.set(this,t),s}clear(e){this._data.size>0&&(this._data.clear(),this._obs.set(this,e))}forEach(e,t){this._data.forEach((s,n,i)=>{e.call(t,s,n,this)})}*entries(){for(const e of this._data)yield[e,e]}*keys(){yield*this._data.keys()}*values(){yield*this._data.values()}[Symbol.iterator](){return this.values()}get[Symbol.toStringTag](){return"ObservableSet"}}
108
+ /*---------------------------------------------------------------------------------------------
109
+ * Copyright (c) Microsoft Corporation. All rights reserved.
110
+ * Licensed under the MIT License. See License.txt in the project root for license information.
111
+ *--------------------------------------------------------------------------------------------*/class We{constructor(){this._data=new Map,this._obs=I({equalsFn:()=>!1},this),this.observable=this._obs}get size(){return this._data.size}has(e){return this._data.has(e)}get(e){return this._data.get(e)}set(e,t,s){const n=this._data.has(e),i=this._data.get(e);return n&&i===t||(this._data.set(e,t),this._obs.set(this,s)),this}delete(e,t){const s=this._data.delete(e);return s&&this._obs.set(this,t),s}clear(e){this._data.size>0&&(this._data.clear(),this._obs.set(this,e))}forEach(e,t){this._data.forEach((s,n,i)=>{e.call(t,s,n,this)})}*entries(){yield*this._data.entries()}*keys(){yield*this._data.keys()}*values(){yield*this._data.values()}[Symbol.iterator](){return this.entries()}get[Symbol.toStringTag](){return"ObservableMap"}}
112
+ /*---------------------------------------------------------------------------------------------
113
+ * Copyright (c) Microsoft Corporation. All rights reserved.
114
+ * Licensed under the MIT License. See License.txt in the project root for license information.
115
+ *--------------------------------------------------------------------------------------------*/let Ze;class He{constructor(){this.indentation=0,this.changedObservablesSets=new WeakMap}addFilteredObj(e){this._filteredObjects||(this._filteredObjects=new Set),this._filteredObjects.add(e)}_isIncluded(e){return this._filteredObjects?.has(e)??!0}textToConsoleArgs(e){return function(e){const t=new Array,s=[];let n="";function i(e){if("length"in e)for(const t of e)t&&i(t);else"text"in e?(n+=`%c${e.text}`,t.push(e.style),e.data&&s.push(...e.data)):"data"in e&&s.push(...e.data)}i(e);const r=[n,...t];return r.push(...s),r}([Je(Ye("| ",this.indentation)),e])}formatInfo(e){return e.hadValue?e.didChange?[Je(" "),Qe(Xe(e.oldValue,70),{color:"red",strikeThrough:!0}),Je(" "),Qe(Xe(e.newValue,60),{color:"green"})]:[Je(" (unchanged)")]:[Je(" "),Qe(Xe(e.newValue,60),{color:"green"}),Je(" (initial)")]}handleObservableCreated(e){if(e instanceof X){const t=e;this.changedObservablesSets.set(t,new Set)}}handleOnListenerCountChanged(e,t){}handleObservableUpdated(e,t){this._isIncluded(e)&&(e instanceof X?this._handleDerivedRecomputed(e,t):console.log(...this.textToConsoleArgs([Ke("observable value changed"),Qe(e.debugName,{color:"BlueViolet"}),...this.formatInfo(t)])))}formatChanges(e){if(0!==e.size)return Qe(" (changed deps: "+[...e].map(e=>e.debugName).join(", ")+")",{color:"gray"})}handleDerivedDependencyChanged(e,t,s){this._isIncluded(e)&&this.changedObservablesSets.get(e)?.add(t)}_handleDerivedRecomputed(e,t){if(!this._isIncluded(e))return;const s=this.changedObservablesSets.get(e);s&&(console.log(...this.textToConsoleArgs([Ke("derived recomputed"),Qe(e.debugName,{color:"BlueViolet"}),...this.formatInfo(t),this.formatChanges(s),{data:[{fn:e._debugNameData.referenceFn??e._computeFn}]}])),s.clear())}handleDerivedCleared(e){this._isIncluded(e)&&console.log(...this.textToConsoleArgs([Ke("derived cleared"),Qe(e.debugName,{color:"BlueViolet"})]))}handleFromEventObservableTriggered(e,t){this._isIncluded(e)&&console.log(...this.textToConsoleArgs([Ke("observable from event triggered"),Qe(e.debugName,{color:"BlueViolet"}),...this.formatInfo(t),{data:[{fn:e._getValue}]}]))}handleAutorunCreated(e){this._isIncluded(e)&&this.changedObservablesSets.set(e,new Set)}handleAutorunDisposed(e){}handleAutorunDependencyChanged(e,t,s){this._isIncluded(e)&&this.changedObservablesSets.get(e).add(t)}handleAutorunStarted(e){const t=this.changedObservablesSets.get(e);t&&(this._isIncluded(e)&&console.log(...this.textToConsoleArgs([Ke("autorun"),Qe(e.debugName,{color:"BlueViolet"}),this.formatChanges(t),{data:[{fn:e._debugNameData.referenceFn??e._runFn}]}])),t.clear(),this.indentation++)}handleAutorunFinished(e){this.indentation--}handleBeginTransaction(e){let t=e.getDebugName();void 0===t&&(t=""),this._isIncluded(e)&&console.log(...this.textToConsoleArgs([Ke("transaction"),Qe(t,{color:"BlueViolet"}),{data:[{fn:e._fn}]}])),this.indentation++}handleEndTransaction(){this.indentation--}}function Je(e){return Qe(e,{color:"black"})}function Ke(e){return Qe(function(e,t){for(;e.length<t;)e+=" ";return e}
116
+ /*---------------------------------------------------------------------------------------------
117
+ * Copyright (c) Microsoft Corporation. All rights reserved.
118
+ * Licensed under the MIT License. See License.txt in the project root for license information.
119
+ *--------------------------------------------------------------------------------------------*/(`${e}: `,10),{color:"black",bold:!0})}function Qe(e,t={color:"black"}){const s={color:t.color};return t.strikeThrough&&(s["text-decoration"]="line-through"),t.bold&&(s["font-weight"]="bold"),{text:e,style:(n=s,Object.entries(n).reduce((e,[t,s])=>`${e}${t}:${s};`,""))};var n}function Xe(e,t){try{return function(e,t){switch(typeof e){case"number":default:return""+e;case"string":return e.length+2<=t?`"${e}"`:`"${e.substr(0,t-7)}"+...`;case"boolean":return e?"true":"false";case"undefined":return"undefined";case"object":return null===e?"null":Array.isArray(e)?function(e,t){let s="[ ",n=!0;for(const i of e){if(n||(s+=", "),s.length-5>t){s+="...";break}n=!1,s+=`${Xe(i,t-s.length)}`}return s+=" ]",s}(e,t):function(e,t){try{if("function"==typeof e.toString&&e.toString!==Object.prototype.toString){const s=e.toString();return s.length<=t?s:s.substring(0,t-3)+"..."}}catch{return"[[Object]]"}const s=a(e);let n,i=s?s+"(":"{ ",r=!0;try{n=Object.entries(e)}catch{return s?`${s}(...)`:"[[Object]]"}for(const[e,s]of n){if(r||(i+=", "),i.length-5>t){i+="...";break}r=!1,i+=`${e}: ${Xe(s,t-i.length)}`}return i+=s?")":" }",i}(e,t);case"symbol":return e.toString();case"function":return`[[Function${e.name?" "+e.name:""}]]`}}(e,t)}catch{return"[[???]]"}}function Ye(e,t){let s="";for(let n=1;n<=t;n++)s+=e;return s}function et(e,t,s){const n="\t\t".repeat(t),i=[];if(s.has(e.sourceObj))return i.push(`${n}* ${e.type} ${e.name} (already listed)`),i.join("\n");if(s.add(e.sourceObj),i.push(`${n}* ${e.type} ${e.name}:`),i.push(`${n} value: ${Xe(e.value,50)}`),i.push(`${n} state: ${e.state}`),e.dependencies.length>0){i.push(`${n} dependencies:`);for(const n of e.dependencies)i.push(et(n,t+1,s))}return i.join("\n")}class tt{static from(e,t){if(e instanceof j){const s=e.debugGetState();return new tt(e,t(e.debugName),"autorun",void 0,s.stateStr,Array.from(s.dependencies).map(e=>tt.from(e,t)||tt.unknown(e)))}if(e instanceof X){const s=e.debugGetState();return new tt(e,t(e.debugName),"derived",s.value,s.stateStr,Array.from(s.dependencies).map(e=>tt.from(e,t)||tt.unknown(e)))}if(e instanceof A){const s=e.debugGetState();return new tt(e,t(e.debugName),"observableValue",s.value,"upToDate",[])}if(e instanceof fe){const s=e.debugGetState();return new tt(e,t(e.debugName),"fromEvent",s.value,s.hasValue?"upToDate":"initial",[])}}static unknown(e){return new tt(e,"(unknown)","unknown",void 0,"unknown",[])}constructor(e,t,s,n,i,r){this.sourceObj=e,this.name=t,this.type=s,this.value=n,this.state=i,this.dependencies=r}}
120
+ /*---------------------------------------------------------------------------------------------
121
+ * Copyright (c) Microsoft Corporation. All rights reserved.
122
+ * Licensed under the MIT License. See License.txt in the project root for license information.
123
+ *--------------------------------------------------------------------------------------------*/!function(e){k=e}(function(e,t){const s=t?.debugNamePostProcessor??(e=>e),n=tt.from(e,s);return n?et(n,0,new Set).trim():""}),f=function(e){var t;Ze||(Ze=new He,t=Ze,v?v instanceof m?v.loggers.push(t):v=new m([v,t]):v=t),Ze.addFilteredObj(e)};export{T as DebugLocation,h as Disposable,d as DisposableStore,ae as ObservableLazy,he as ObservableLazyPromise,We as ObservableMap,oe as ObservablePromise,Me as ObservableSet,de as PromiseResult,S as TransactionImpl,xe as ValueWithChangeEventFromObservable,y as asyncTransaction,q as autorun,H as autorunDelta,M as autorunHandleChanges,J as autorunIterableDelta,G as autorunOpts,K as autorunSelfDisposable,Z as autorunWithStore,W as autorunWithStoreHandleChanges,Fe as constObservable,L as createEffect,P as createEffectOpts,ye as debouncedObservable,we as debouncedObservableDeprecated,Ge as deferUnobserve,ee as derived,Pe as derivedConstOnceDefined,re as derivedDisposable,ne as derivedHandleChanges,Ne as derivedObservableWithCache,Re as derivedObservableWithWritableCache,se as derivedOpts,ge as derivedWithCancellationToken,te as derivedWithSetter,ie as derivedWithStore,E as disposableObservableValue,w as globalTransaction,Se as keepObserved,qe as latestChangedValue,De as mapObservableArrayCached,_e as observableFromEvent,ve as observableFromEventOpts,me as observableFromPromise,Ie as observableFromValueWithChangeEvent,be as observableSignal,Ee as observableSignalFromEvent,F as observableValue,I as observableValueOpts,Te as recomputeInitiallyAndOnChange,Ue as recordChanges,$e as recordChangesLazy,ze as runOnChange,Le as runOnChangeWithCancellationToken,je as runOnChangeWithStore,Ce as signalFromObservable,O as subtransaction,C as transaction,ce as waitForState,Oe as wasEventTriggeredRecently};
124
+ //# sourceMappingURL=index.min.js.map