grainjs 1.0.1 → 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 (146) hide show
  1. package/README.md +23 -26
  2. package/dist/cjs/index.js +28 -17
  3. package/dist/cjs/index.js.map +1 -1
  4. package/dist/cjs/lib/PriorityQueue.d.ts +2 -2
  5. package/dist/cjs/lib/PriorityQueue.js +1 -0
  6. package/dist/cjs/lib/PriorityQueue.js.map +1 -1
  7. package/dist/cjs/lib/_computed_queue.js +4 -3
  8. package/dist/cjs/lib/_computed_queue.js.map +1 -1
  9. package/dist/cjs/lib/binding.d.ts +11 -4
  10. package/dist/cjs/lib/binding.js +6 -5
  11. package/dist/cjs/lib/binding.js.map +1 -1
  12. package/dist/cjs/lib/browserGlobals.d.ts +4 -1
  13. package/dist/cjs/lib/browserGlobals.js +2 -0
  14. package/dist/cjs/lib/browserGlobals.js.map +1 -1
  15. package/dist/cjs/lib/computed.d.ts +49 -28
  16. package/dist/cjs/lib/computed.js +38 -51
  17. package/dist/cjs/lib/computed.js.map +1 -1
  18. package/dist/cjs/lib/dispose.d.ts +109 -96
  19. package/dist/cjs/lib/dispose.js +106 -79
  20. package/dist/cjs/lib/dispose.js.map +1 -1
  21. package/dist/cjs/lib/dom.d.ts +40 -18
  22. package/dist/cjs/lib/dom.js +63 -29
  23. package/dist/cjs/lib/dom.js.map +1 -1
  24. package/dist/cjs/lib/domComponent.d.ts +56 -51
  25. package/dist/cjs/lib/domComponent.js +46 -44
  26. package/dist/cjs/lib/domComponent.js.map +1 -1
  27. package/dist/cjs/lib/domComputed.d.ts +50 -20
  28. package/dist/cjs/lib/domComputed.js +37 -7
  29. package/dist/cjs/lib/domComputed.js.map +1 -1
  30. package/dist/cjs/lib/domDispose.d.ts +27 -12
  31. package/dist/cjs/lib/domDispose.js +27 -11
  32. package/dist/cjs/lib/domDispose.js.map +1 -1
  33. package/dist/cjs/lib/domForEach.d.ts +5 -4
  34. package/dist/cjs/lib/domForEach.js +41 -41
  35. package/dist/cjs/lib/domForEach.js.map +1 -1
  36. package/dist/cjs/lib/domImpl.d.ts +33 -10
  37. package/dist/cjs/lib/domImpl.js +29 -9
  38. package/dist/cjs/lib/domImpl.js.map +1 -1
  39. package/dist/cjs/lib/domMethods.d.ts +93 -47
  40. package/dist/cjs/lib/domMethods.js +91 -47
  41. package/dist/cjs/lib/domMethods.js.map +1 -1
  42. package/dist/cjs/lib/domevent.d.ts +87 -62
  43. package/dist/cjs/lib/domevent.js +85 -59
  44. package/dist/cjs/lib/domevent.js.map +1 -1
  45. package/dist/cjs/lib/emit.d.ts +62 -32
  46. package/dist/cjs/lib/emit.js +68 -53
  47. package/dist/cjs/lib/emit.js.map +1 -1
  48. package/dist/cjs/lib/kowrap.d.ts +6 -3
  49. package/dist/cjs/lib/kowrap.js +7 -3
  50. package/dist/cjs/lib/kowrap.js.map +1 -1
  51. package/dist/cjs/lib/obsArray.d.ts +91 -53
  52. package/dist/cjs/lib/obsArray.js +87 -54
  53. package/dist/cjs/lib/obsArray.js.map +1 -1
  54. package/dist/cjs/lib/observable.d.ts +25 -15
  55. package/dist/cjs/lib/observable.js +31 -19
  56. package/dist/cjs/lib/observable.js.map +1 -1
  57. package/dist/cjs/lib/pureComputed.d.ts +12 -15
  58. package/dist/cjs/lib/pureComputed.js +16 -18
  59. package/dist/cjs/lib/pureComputed.js.map +1 -1
  60. package/dist/cjs/lib/styled.d.ts +78 -61
  61. package/dist/cjs/lib/styled.js +27 -79
  62. package/dist/cjs/lib/styled.js.map +1 -1
  63. package/dist/cjs/lib/subscribe.d.ts +41 -37
  64. package/dist/cjs/lib/subscribe.js +31 -39
  65. package/dist/cjs/lib/subscribe.js.map +1 -1
  66. package/dist/cjs/lib/util.js +2 -0
  67. package/dist/cjs/lib/util.js.map +1 -1
  68. package/dist/cjs/lib/widgets/input.d.ts +3 -1
  69. package/dist/cjs/lib/widgets/input.js +7 -4
  70. package/dist/cjs/lib/widgets/input.js.map +1 -1
  71. package/dist/cjs/lib/widgets/select.d.ts +4 -2
  72. package/dist/cjs/lib/widgets/select.js +8 -5
  73. package/dist/cjs/lib/widgets/select.js.map +1 -1
  74. package/dist/esm/lib/_computed_queue.js +3 -3
  75. package/dist/esm/lib/_computed_queue.js.map +1 -1
  76. package/dist/esm/lib/binding.js +2 -2
  77. package/dist/esm/lib/binding.js.map +1 -1
  78. package/dist/esm/lib/browserGlobals.js +1 -0
  79. package/dist/esm/lib/browserGlobals.js.map +1 -1
  80. package/dist/esm/lib/computed.js +36 -50
  81. package/dist/esm/lib/computed.js.map +1 -1
  82. package/dist/esm/lib/dispose.js +104 -78
  83. package/dist/esm/lib/dispose.js.map +1 -1
  84. package/dist/esm/lib/dom.js +40 -18
  85. package/dist/esm/lib/dom.js.map +1 -1
  86. package/dist/esm/lib/domComponent.js +45 -44
  87. package/dist/esm/lib/domComponent.js.map +1 -1
  88. package/dist/esm/lib/domComputed.js +32 -5
  89. package/dist/esm/lib/domComputed.js.map +1 -1
  90. package/dist/esm/lib/domDispose.js +26 -11
  91. package/dist/esm/lib/domDispose.js.map +1 -1
  92. package/dist/esm/lib/domForEach.js +40 -41
  93. package/dist/esm/lib/domForEach.js.map +1 -1
  94. package/dist/esm/lib/domImpl.js +26 -7
  95. package/dist/esm/lib/domImpl.js.map +1 -1
  96. package/dist/esm/lib/domMethods.js +77 -35
  97. package/dist/esm/lib/domMethods.js.map +1 -1
  98. package/dist/esm/lib/domevent.js +84 -59
  99. package/dist/esm/lib/domevent.js.map +1 -1
  100. package/dist/esm/lib/emit.js +67 -53
  101. package/dist/esm/lib/emit.js.map +1 -1
  102. package/dist/esm/lib/kowrap.js +5 -2
  103. package/dist/esm/lib/kowrap.js.map +1 -1
  104. package/dist/esm/lib/obsArray.js +82 -50
  105. package/dist/esm/lib/obsArray.js.map +1 -1
  106. package/dist/esm/lib/observable.js +26 -15
  107. package/dist/esm/lib/observable.js.map +1 -1
  108. package/dist/esm/lib/pureComputed.js +15 -18
  109. package/dist/esm/lib/pureComputed.js.map +1 -1
  110. package/dist/esm/lib/styled.js +24 -77
  111. package/dist/esm/lib/styled.js.map +1 -1
  112. package/dist/esm/lib/subscribe.js +27 -36
  113. package/dist/esm/lib/subscribe.js.map +1 -1
  114. package/dist/esm/lib/util.js +1 -0
  115. package/dist/esm/lib/util.js.map +1 -1
  116. package/dist/esm/lib/widgets/input.js +3 -1
  117. package/dist/esm/lib/widgets/input.js.map +1 -1
  118. package/dist/esm/lib/widgets/select.js +3 -1
  119. package/dist/esm/lib/widgets/select.js.map +1 -1
  120. package/dist/grain-full.debug.js +2138 -3052
  121. package/dist/grain-full.debug.js.map +7 -0
  122. package/dist/grain-full.min.js +6 -2
  123. package/dist/grain-full.min.js.map +7 -1
  124. package/lib/binding.ts +9 -2
  125. package/lib/browserGlobals.ts +3 -1
  126. package/lib/computed.ts +56 -56
  127. package/lib/dispose.ts +110 -85
  128. package/lib/dom.ts +41 -20
  129. package/lib/domComponent.ts +68 -70
  130. package/lib/domComputed.ts +66 -21
  131. package/lib/domDispose.ts +28 -11
  132. package/lib/domForEach.ts +13 -12
  133. package/lib/domImpl.ts +30 -7
  134. package/lib/domMethods.ts +101 -46
  135. package/lib/domevent.ts +86 -61
  136. package/lib/emit.ts +64 -50
  137. package/lib/kowrap.ts +5 -2
  138. package/lib/obsArray.ts +89 -54
  139. package/lib/observable.ts +26 -15
  140. package/lib/pureComputed.ts +16 -22
  141. package/lib/styled.ts +85 -71
  142. package/lib/subscribe.ts +41 -45
  143. package/lib/util.ts +1 -0
  144. package/lib/widgets/input.ts +3 -1
  145. package/lib/widgets/select.ts +3 -1
  146. package/package.json +48 -38
@@ -1,44 +1,30 @@
1
1
  "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LiveIndex = exports.makeLiveIndex = exports.computedArray = exports.ComputedArray = exports.obsArray = exports.MutableObsArray = exports.ObsArray = void 0;
4
+ const dispose_1 = require("./dispose");
5
+ const observable_1 = require("./observable");
6
+ const subscribe_1 = require("./subscribe");
2
7
  /**
3
- * ObsArray extends a plain Observable to allow for more efficient observation of array changes.
8
+ * `ObsArray<T>` is essentially an array-valued observable. It extends a plain Observable to allow
9
+ * for more efficient observation of array changes. It also may be
10
+ * used as an owner for disposable array elements.
4
11
  *
5
- * As for any array-valued Observable, when the contents of the observed array changes, the
12
+ * As for any array-valued `Observable`, when the contents of the observed array changes, the
6
13
  * listeners get called with new and previous values which are the same array. For simple changes,
7
- * such as those made with .push() and .splice() methods, ObsArray allows for more efficient
14
+ * such as those made with `.push()` and `.splice()` methods, `ObsArray` allows for more efficient
8
15
  * handling of the change by calling listeners with splice info in the third argument.
9
16
  *
10
- * This module also provides computedArray(), which allows mapping each item of an ObsArray
11
- * through a function, passing through splice info for efficient handling of small changes. It
12
- * also allows mapping an observable or a computed whose value is an ObsArray.
13
- *
14
- * There is no need or benefit in using computedArray() if you have a computed() that returns a
15
- * plain array. It is specifically for the case when you want to preserve the efficiency of
16
- * ObsArray when you map its values.
17
- *
18
- * Both ObsArray and ComputedArray may be used with disposable elements as their owners. E.g.
17
+ * `ObsArray` may be used with disposable elements as their owner. E.g.
18
+ * ```ts
19
+ * const arr = obsArray<D>();
20
+ * arr.push(D.create(arr, "x"), D.create(arr, "y"));
21
+ * arr.pop(); // Element "y" gets disposed.
22
+ * arr.dispose(); // Element "x" gets disposed.
23
+ * ```
19
24
  *
20
- * const arr = obsArray<D>();
21
- * arr.push(D.create(arr, "x"), D.create(arr, "y"));
22
- * arr.pop(); // Element "y" gets disposed.
23
- * arr.dispose(); // Element "x" gets disposed.
24
- *
25
- * const values = obsArray<string>();
26
- * const compArr = computedArray<D>(values, (val, i, compArr) => D.create(compArr, val));
27
- * values.push("foo", "bar"); // D("foo") and D("bar") get created
28
- * values.pop(); // D("bar") gets disposed.
29
- * compArr.dispose(); // D("foo") gets disposed.
30
- *
31
- * Note that only the pattern above works: obsArray (or compArray) may only be used to take
25
+ * Note that only the pattern above works: `obsArray` may only be used to take
32
26
  * ownership of those disposables that are added to it as array elements.
33
27
  */
34
- Object.defineProperty(exports, "__esModule", { value: true });
35
- const dispose_1 = require("./dispose");
36
- const observable_1 = require("./observable");
37
- const subscribe_1 = require("./subscribe");
38
- /**
39
- * ObsArray<T> is essentially an array-valued observable. The main difference is that it may be
40
- * used as an owner for disposable array elements.
41
- */
42
28
  class ObsArray extends observable_1.BaseObservable {
43
29
  constructor() {
44
30
  super(...arguments);
@@ -47,6 +33,10 @@ class ObsArray extends observable_1.BaseObservable {
47
33
  addListener(callback, optContext) {
48
34
  return super.addListener(callback, optContext);
49
35
  }
36
+ /**
37
+ * Take ownership of an item added to this array. This should _only_ be used for array elements,
38
+ * not any unrelated items.
39
+ */
50
40
  autoDispose(value) {
51
41
  if (!this._ownedItems) {
52
42
  this._ownedItems = new Set();
@@ -54,6 +44,7 @@ class ObsArray extends observable_1.BaseObservable {
54
44
  this._ownedItems.add(value);
55
45
  return value;
56
46
  }
47
+ /** @override */
57
48
  dispose() {
58
49
  if (this._ownedItems) {
59
50
  for (const item of this.get()) {
@@ -65,9 +56,11 @@ class ObsArray extends observable_1.BaseObservable {
65
56
  }
66
57
  super.dispose();
67
58
  }
59
+ /** @internal */
68
60
  _setWithSplice(value, splice) {
69
61
  return this._setWithArg(value, splice);
70
62
  }
63
+ /** @internal */
71
64
  _disposeOwned(splice) {
72
65
  if (!this._ownedItems) {
73
66
  return;
@@ -97,10 +90,11 @@ class ObsArray extends observable_1.BaseObservable {
97
90
  }
98
91
  exports.ObsArray = ObsArray;
99
92
  /**
100
- * MutableObsArray<T> adds array-like mutation methods which emit events with splice info, to
101
- * allow more efficient processing of such changes. It is created with obsArray<T>().
93
+ * `MutableObsArray<T>` adds array-like mutation methods which emit events with splice info, to
94
+ * allow more efficient processing of such changes. It is created with `obsArray<T>()`.
102
95
  */
103
96
  class MutableObsArray extends ObsArray {
97
+ /** Appends elements to the end and returns the new length (like `Array#push`). */
104
98
  push(...args) {
105
99
  const value = this.get();
106
100
  const start = value.length;
@@ -108,6 +102,7 @@ class MutableObsArray extends ObsArray {
108
102
  this._setWithSplice(value, { start, numAdded: args.length, deleted: [] });
109
103
  return newLen;
110
104
  }
105
+ /** Removes and returns the last element (like `Array#pop`). */
111
106
  pop() {
112
107
  const value = this.get();
113
108
  if (value.length === 0) {
@@ -117,12 +112,14 @@ class MutableObsArray extends ObsArray {
117
112
  this._setWithSplice(value, { start: value.length, numAdded: 0, deleted: [ret] });
118
113
  return ret;
119
114
  }
115
+ /** Prepends elements to the start and returns the new length (like `Array#unshift`). */
120
116
  unshift(...args) {
121
117
  const value = this.get();
122
118
  const newLen = value.unshift(...args);
123
119
  this._setWithSplice(value, { start: 0, numAdded: args.length, deleted: [] });
124
120
  return newLen;
125
121
  }
122
+ /** Removes and returns the first element (like `Array#shift`). */
126
123
  shift() {
127
124
  const value = this.get();
128
125
  if (value.length === 0) {
@@ -132,6 +129,10 @@ class MutableObsArray extends ObsArray {
132
129
  this._setWithSplice(value, { start: 0, numAdded: 0, deleted: [ret] });
133
130
  return ret;
134
131
  }
132
+ /**
133
+ * Removes and/or inserts elements at a given index and returns the removed elements (like
134
+ * `Array#splice`).
135
+ */
135
136
  splice(start, deleteCount = Infinity, ...newValues) {
136
137
  const value = this.get();
137
138
  const len = value.length;
@@ -144,7 +145,7 @@ class MutableObsArray extends ObsArray {
144
145
  exports.MutableObsArray = MutableObsArray;
145
146
  /**
146
147
  * Creates a new MutableObsArray with an optional initial value, defaulting to the empty array.
147
- * It is essentially the same as observable<T[]>, but with array-like mutation methods.
148
+ * It is essentially the same as `observable<T[]>`, but with array-like mutation methods.
148
149
  */
149
150
  function obsArray(value = []) {
150
151
  return new MutableObsArray(value);
@@ -157,16 +158,17 @@ function isObsArray(val) {
157
158
  return Array.isArray(val.get());
158
159
  }
159
160
  /**
160
- * See computedArray() below for documentation.
161
+ * See [`computedArray()`](#computedArray) for documentation.
161
162
  */
162
163
  class ComputedArray extends ObsArray {
163
164
  constructor(obsArr, _mapper) {
164
165
  super([]);
165
166
  this._mapper = _mapper;
166
167
  this._sub = isObsArray(obsArr) ?
167
- subscribe_1.subscribe(obsArr, (use) => this._syncMap(obsArr)) :
168
- subscribe_1.subscribe(obsArr, (use, obsArrayValue) => { use(obsArrayValue); return this._syncMap(obsArrayValue); });
168
+ (0, subscribe_1.subscribe)(obsArr, (use) => this._syncMap(obsArr)) :
169
+ (0, subscribe_1.subscribe)(obsArr, (use, obsArrayValue) => { use(obsArrayValue); return this._syncMap(obsArrayValue); });
169
170
  }
171
+ /** @internal */
170
172
  dispose() {
171
173
  this._unsync();
172
174
  this._sub.dispose();
@@ -223,25 +225,43 @@ class ComputedArray extends ObsArray {
223
225
  }
224
226
  exports.ComputedArray = ComputedArray;
225
227
  /**
226
- * Returns an ObsArray that maps all elements of the passed-in ObsArray through a mapper function.
227
- * Also accepts an observable (e.g. a computed) whose value is an ObsArray. Usage:
228
+ * Returns an `ObsArray` that maps all elements of the passed-in `ObsArray` through a mapper
229
+ * function. Also accepts an observable (e.g. a computed) whose value is an `ObsArray`.
230
+ * ```ts
231
+ * computedArray(obsArray, mapper)
232
+ * ```
228
233
  *
229
- * computedArray(obsArray, mapper)
234
+ * The result is analogous to:
235
+ * ```ts
236
+ * computed((use) => use(obsArray).map(mapper)) // for ObsArray
237
+ * computed((use) => use(use(obsArray)).map(mapper)) // for Observable<ObsArray>
238
+ * ```
230
239
  *
231
- * The result is entirely analogous to:
232
- *
233
- * computed((use) => use(obsArray).map(mapper)) // for ObsArray
234
- * computed((use) => use(use(obsArray)).map(mapper)) // for Observable<ObsArray>
235
- *
236
- * The benefit of computedArray() is that a small change to the source array (e.g. one item
240
+ * The benefit of `computedArray()` is that a small change to the source array (e.g. one item
237
241
  * added or removed), causes a small change to the mapped array, rather than a full rebuild.
238
242
  *
239
- * This is useful with an ObsArray or with an observable whose value is an ObsArray, and also
240
- * when the computed array owns its disposable items.
243
+ * This is useful with an `ObsArray` or with an observable whose value is an `ObsArray`, and also
244
+ * when the computed array's items are disposable and it owns them.
245
+ *
246
+ * There is no need or benefit to using `computedArray()` if you have a `computed()` that returns
247
+ * a plain array. It is specifically for the case when you want to preserve the efficiency of
248
+ * `ObsArray` when you map its values.
241
249
  *
242
- * Note that the mapper function is called with (item, index, array) as for a standard
243
- * array.map(), but that the index is only accurate at the time of the call, and will stop
250
+ * Note that the mapper function is called with `(item, index, array)` as for a standard
251
+ * `array.map()`, but that the index is only accurate at the time of the call, and will stop
244
252
  * reflecting the true index if more items are inserted into the array later.
253
+ *
254
+ * As with `ObsArray`, a `ComputedArray` may be used with disposable elements as their owners. E.g.
255
+ * ```ts
256
+ * const values = obsArray<string>();
257
+ * const compArr = computedArray<D>(values, (val, i, compArr) => D.create(compArr, val));
258
+ * values.push("foo", "bar"); // D("foo") and D("bar") get created
259
+ * values.pop(); // D("bar") gets disposed.
260
+ * compArr.dispose(); // D("foo") gets disposed.
261
+ * ```
262
+ *
263
+ * Note that only the pattern above works: obsArray (or compArray) may only be used to take
264
+ * ownership of those disposables that are added to it as array elements.
245
265
  */
246
266
  function computedArray(obsArr, mapper) {
247
267
  return new ComputedArray(obsArr, mapper);
@@ -258,9 +278,12 @@ exports.computedArray = computedArray;
258
278
  * observable will not be adjusted as the array changes, except to keep it valid.
259
279
  */
260
280
  function makeLiveIndex(owner, obsArr, initialIndex = 0) {
261
- return dispose_1.setDisposeOwner(owner, new LiveIndex(obsArr, initialIndex));
281
+ return (0, dispose_1.setDisposeOwner)(owner, new LiveIndex(obsArr, initialIndex));
262
282
  }
263
283
  exports.makeLiveIndex = makeLiveIndex;
284
+ /**
285
+ * An Observable that represents an index into an `ObsArray`, clamped to be in the valid range.
286
+ */
264
287
  class LiveIndex extends observable_1.Observable {
265
288
  constructor(_obsArray, initialIndex = 0) {
266
289
  super(null);
@@ -269,16 +292,26 @@ class LiveIndex extends observable_1.Observable {
269
292
  this.set(initialIndex);
270
293
  this._listener = _obsArray.addListener(this._onArrayChange, this);
271
294
  }
295
+ /**
296
+ * Set the index, clamping it to a valid value.
297
+ */
272
298
  set(index) {
273
299
  // Clamp to [0, len) range of the observable array.
274
300
  const len = this._obsArray.get().length;
275
301
  super.set(len === 0 ? null : Math.max(0, Math.min(len - 1, index || 0)));
276
302
  }
277
- // Note that this feature comes from a rather obscure need, and it would be better if something
278
- // similar were possible without making it an explicit feature.
303
+ /**
304
+ * Turn "liveness" on or off. While set to false, the observable will not be adjusted as the
305
+ * array changes, except to keep it valid.
306
+ *
307
+ * @privateRemarks
308
+ * Note that this feature comes from a rather obscure need, and it would be better if something
309
+ * similar were possible without making it an explicit feature.
310
+ */
279
311
  setLive(value) {
280
312
  this._isLive = value;
281
313
  }
314
+ /** @override */
282
315
  dispose() {
283
316
  this._listener.dispose();
284
317
  super.dispose();
@@ -1 +1 @@
1
- {"version":3,"file":"obsArray.js","sourceRoot":"","sources":["../../../lib/obsArray.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"obsArray.js","sourceRoot":"","sources":["../../../lib/obsArray.ts"],"names":[],"mappings":"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"}
@@ -24,23 +24,23 @@ import { DepItem } from './_computed_queue';
24
24
  import { IDisposable, IDisposableOwnerT } from './dispose';
25
25
  import { Listener } from './emit';
26
26
  export { bundleChanges } from './_computed_queue';
27
+ /**
28
+ * Base class for several variants of observable values.
29
+ */
27
30
  export declare class BaseObservable<T> {
28
31
  private _onChange;
29
32
  private _value;
30
- /**
31
- * Internal constructor for an Observable. You should use observable() function instead.
32
- */
33
33
  constructor(value: T);
34
34
  /**
35
35
  * Returns the value of the observable. It is fast and does not create a subscription.
36
36
  * (It is similar to knockout's peek()).
37
- * @returns {Object} The current value of the observable.
37
+ * @returns The current value of the observable.
38
38
  */
39
39
  get(): T;
40
40
  /**
41
41
  * Sets the value of the observable. If the value differs from the previously set one, then
42
42
  * listeners to this observable will get called with (newValue, oldValue) as arguments.
43
- * @param {Object} value: The new value to set.
43
+ * @param value - The new value to set.
44
44
  */
45
45
  set(value: T): void;
46
46
  /**
@@ -49,9 +49,9 @@ export declare class BaseObservable<T> {
49
49
  setAndTrigger(value: T): void;
50
50
  /**
51
51
  * Adds a callback to listen to changes in the observable.
52
- * @param {Function} callback: Function, called on changes with (newValue, oldValue) arguments.
53
- * @param {Object} optContext: Context for the function.
54
- * @returns {Listener} Listener object. Its dispose() method removes the callback.
52
+ * @param callback - Function, called on changes with (newValue, oldValue) arguments.
53
+ * @param optContext - Context for the function.
54
+ * @returns Listener object. Its dispose() method removes the callback.
55
55
  */
56
56
  addListener(callback: (val: T, prev: T) => void, optContext?: object): Listener;
57
57
  /**
@@ -61,7 +61,7 @@ export declare class BaseObservable<T> {
61
61
  /**
62
62
  * Sets a single callback to be called when a listener is added or removed. It overwrites any
63
63
  * previously-set such callback.
64
- * @param {Function} changeCB(hasListeners): Function to call after a listener is added or
64
+ * @param changeCB - Function to call after a listener is added or
65
65
  * removed. It's called with a boolean indicating whether this observable has any listeners.
66
66
  * Pass in `null` to unset the callback. Note that it can be called multiple times in a row
67
67
  * with hasListeners `true`.
@@ -70,6 +70,7 @@ export declare class BaseObservable<T> {
70
70
  /**
71
71
  * Used by subscriptions to keep track of dependencies. An observable that has dependnecies,
72
72
  * such as a computed observable, would override this method.
73
+ * @internal
73
74
  */
74
75
  _getDepItem(): DepItem | null;
75
76
  /**
@@ -80,14 +81,20 @@ export declare class BaseObservable<T> {
80
81
  * Returns whether this observable is disposed.
81
82
  */
82
83
  isDisposed(): boolean;
84
+ /** @internal */
83
85
  protected _disposeOwned(arg?: any): void;
84
86
  /**
85
87
  * Allow derived classes to emit change events with an additional third argument describing the
86
88
  * change. It always emits the event without checking for value equality.
89
+ * @internal
87
90
  */
88
91
  protected _setWithArg(value: T, arg: any): void;
89
92
  }
93
+ /**
94
+ * An Observable holds a value and allows subscribing to changes.
95
+ */
90
96
  export declare class Observable<T> extends BaseObservable<T> implements IDisposableOwnerT<T & IDisposable> {
97
+ /** @internal */
91
98
  static holder<T>(value: T & IDisposable): Observable<T>;
92
99
  /**
93
100
  * Creates a new Observable with the given initial value, and owned by owner.
@@ -104,25 +111,28 @@ export declare class Observable<T> extends BaseObservable<T> implements IDisposa
104
111
  * will dispose the owned value when it's set to another value, or when it itself is disposed.
105
112
  */
106
113
  autoDispose(value: T & IDisposable): T & IDisposable;
114
+ /** @internal */
107
115
  protected _disposeOwned(): void;
108
116
  }
109
117
  /**
110
118
  * Creates a new Observable with the initial value of optValue if given or undefined if omitted.
111
- * @param {Object} optValue: The initial value to set.
112
- * @returns {Observable} The newly created observable.
119
+ * @param optValue - The initial value to set.
120
+ * @returns The newly created observable.
113
121
  */
114
122
  export declare function observable<T>(value: T): Observable<T>;
115
123
  /**
116
124
  * Creates a new Observable with an initial disposable value owned by this observable, e.g.
117
- *
125
+ * ```
118
126
  * const obs = obsHolder<D>(D.create(null, ...args));
127
+ * ```
119
128
  *
120
- * This is needed because using simply observable<D>(value) would not cause the observable to take
129
+ * This is needed because using simply `observable<D>(value)` would not cause the observable to take
121
130
  * ownership of value (i.e. to dispose it later). This function is a less hacky equivalent to:
122
- *
131
+ * ```
123
132
  * const obs = observable<D>(null as any);
124
133
  * D.create(obs, ...args);
134
+ * ```
125
135
  *
126
- * To allow nulls, use observable<D|null>(null); then the obsHolder() constructor is not needed.
136
+ * To allow nulls, use `observable<D|null>(null)`; then the obsHolder() constructor is not needed.
127
137
  */
128
138
  export declare function obsHolder<T>(value: T & IDisposable): Observable<T>;
@@ -22,15 +22,17 @@
22
22
  * dependency is created, and which observables the dependency connects.
23
23
  */
24
24
  Object.defineProperty(exports, "__esModule", { value: true });
25
+ exports.obsHolder = exports.observable = exports.Observable = exports.BaseObservable = exports.bundleChanges = void 0;
25
26
  const _computed_queue_1 = require("./_computed_queue");
26
27
  const dispose_1 = require("./dispose");
27
28
  const emit_1 = require("./emit");
28
29
  var _computed_queue_2 = require("./_computed_queue");
29
- exports.bundleChanges = _computed_queue_2.bundleChanges;
30
+ Object.defineProperty(exports, "bundleChanges", { enumerable: true, get: function () { return _computed_queue_2.bundleChanges; } });
31
+ /**
32
+ * Base class for several variants of observable values.
33
+ */
30
34
  class BaseObservable {
31
- /**
32
- * Internal constructor for an Observable. You should use observable() function instead.
33
- */
35
+ // Internal constructor for an Observable. You should use observable() function instead.
34
36
  constructor(value) {
35
37
  this._onChange = new emit_1.Emitter();
36
38
  this._value = value;
@@ -38,13 +40,13 @@ class BaseObservable {
38
40
  /**
39
41
  * Returns the value of the observable. It is fast and does not create a subscription.
40
42
  * (It is similar to knockout's peek()).
41
- * @returns {Object} The current value of the observable.
43
+ * @returns The current value of the observable.
42
44
  */
43
45
  get() { return this._value; }
44
46
  /**
45
47
  * Sets the value of the observable. If the value differs from the previously set one, then
46
48
  * listeners to this observable will get called with (newValue, oldValue) as arguments.
47
- * @param {Object} value: The new value to set.
49
+ * @param value - The new value to set.
48
50
  */
49
51
  set(value) {
50
52
  if (value !== this._value) {
@@ -59,13 +61,13 @@ class BaseObservable {
59
61
  this._value = value;
60
62
  this._onChange.emit(value, prev);
61
63
  this._disposeOwned();
62
- _computed_queue_1.compute();
64
+ (0, _computed_queue_1.compute)();
63
65
  }
64
66
  /**
65
67
  * Adds a callback to listen to changes in the observable.
66
- * @param {Function} callback: Function, called on changes with (newValue, oldValue) arguments.
67
- * @param {Object} optContext: Context for the function.
68
- * @returns {Listener} Listener object. Its dispose() method removes the callback.
68
+ * @param callback - Function, called on changes with (newValue, oldValue) arguments.
69
+ * @param optContext - Context for the function.
70
+ * @returns Listener object. Its dispose() method removes the callback.
69
71
  */
70
72
  addListener(callback, optContext) {
71
73
  return this._onChange.addListener(callback, optContext);
@@ -79,7 +81,7 @@ class BaseObservable {
79
81
  /**
80
82
  * Sets a single callback to be called when a listener is added or removed. It overwrites any
81
83
  * previously-set such callback.
82
- * @param {Function} changeCB(hasListeners): Function to call after a listener is added or
84
+ * @param changeCB - Function to call after a listener is added or
83
85
  * removed. It's called with a boolean indicating whether this observable has any listeners.
84
86
  * Pass in `null` to unset the callback. Note that it can be called multiple times in a row
85
87
  * with hasListeners `true`.
@@ -90,6 +92,7 @@ class BaseObservable {
90
92
  /**
91
93
  * Used by subscriptions to keep track of dependencies. An observable that has dependnecies,
92
94
  * such as a computed observable, would override this method.
95
+ * @internal
93
96
  */
94
97
  _getDepItem() {
95
98
  return null;
@@ -108,25 +111,31 @@ class BaseObservable {
108
111
  isDisposed() {
109
112
  return this._onChange.isDisposed();
110
113
  }
114
+ /** @internal */
111
115
  _disposeOwned(arg) { }
112
116
  /**
113
117
  * Allow derived classes to emit change events with an additional third argument describing the
114
118
  * change. It always emits the event without checking for value equality.
119
+ * @internal
115
120
  */
116
121
  _setWithArg(value, arg) {
117
122
  const prev = this._value;
118
123
  this._value = value;
119
124
  this._onChange.emit(value, prev, arg);
120
125
  this._disposeOwned(arg);
121
- _computed_queue_1.compute();
126
+ (0, _computed_queue_1.compute)();
122
127
  }
123
128
  }
124
129
  exports.BaseObservable = BaseObservable;
130
+ /**
131
+ * An Observable holds a value and allows subscribing to changes.
132
+ */
125
133
  class Observable extends BaseObservable {
126
134
  constructor() {
127
135
  super(...arguments);
128
136
  this._owned = undefined;
129
137
  }
138
+ /** @internal */
130
139
  // See module-level holder() function below for documentation.
131
140
  static holder(value) {
132
141
  const obs = new Observable(value);
@@ -137,7 +146,7 @@ class Observable extends BaseObservable {
137
146
  * Creates a new Observable with the given initial value, and owned by owner.
138
147
  */
139
148
  static create(owner, value) {
140
- return dispose_1.setDisposeOwner(owner, new Observable(value));
149
+ return (0, dispose_1.setDisposeOwner)(owner, new Observable(value));
141
150
  }
142
151
  /**
143
152
  * The use an observable for a disposable object, use it a DisposableOwner:
@@ -153,6 +162,7 @@ class Observable extends BaseObservable {
153
162
  this._owned = value;
154
163
  return value;
155
164
  }
165
+ /** @internal */
156
166
  _disposeOwned() {
157
167
  if (this._owned) {
158
168
  this._owned.dispose();
@@ -163,8 +173,8 @@ class Observable extends BaseObservable {
163
173
  exports.Observable = Observable;
164
174
  /**
165
175
  * Creates a new Observable with the initial value of optValue if given or undefined if omitted.
166
- * @param {Object} optValue: The initial value to set.
167
- * @returns {Observable} The newly created observable.
176
+ * @param optValue - The initial value to set.
177
+ * @returns The newly created observable.
168
178
  */
169
179
  function observable(value) {
170
180
  return new Observable(value);
@@ -172,16 +182,18 @@ function observable(value) {
172
182
  exports.observable = observable;
173
183
  /**
174
184
  * Creates a new Observable with an initial disposable value owned by this observable, e.g.
175
- *
185
+ * ```
176
186
  * const obs = obsHolder<D>(D.create(null, ...args));
187
+ * ```
177
188
  *
178
- * This is needed because using simply observable<D>(value) would not cause the observable to take
189
+ * This is needed because using simply `observable<D>(value)` would not cause the observable to take
179
190
  * ownership of value (i.e. to dispose it later). This function is a less hacky equivalent to:
180
- *
191
+ * ```
181
192
  * const obs = observable<D>(null as any);
182
193
  * D.create(obs, ...args);
194
+ * ```
183
195
  *
184
- * To allow nulls, use observable<D|null>(null); then the obsHolder() constructor is not needed.
196
+ * To allow nulls, use `observable<D|null>(null)`; then the obsHolder() constructor is not needed.
185
197
  */
186
198
  function obsHolder(value) {
187
199
  return Observable.holder(value);
@@ -1 +1 @@
1
- {"version":3,"file":"observable.js","sourceRoot":"","sources":["../../../lib/observable.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"observable.js","sourceRoot":"","sources":["../../../lib/observable.ts"],"names":[],"mappings":"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"}
@@ -1,33 +1,32 @@
1
+ import { DepItem } from './_computed_queue';
2
+ import { Observable } from './observable';
3
+ import { ISubscribable, UseCB } from './subscribe';
1
4
  /**
2
- * pureComputed.js implements a variant of computed() suitable for use with a pure read function
3
- * (free of side-effects). A pureComputed is only subscribed to its dependencies when something is
5
+ * `PureComputed` is a variant of `Computed` suitable for use with a pure read function
6
+ * (free of side-effects). A `PureComputed` is only subscribed to its dependencies when something is
4
7
  * subscribed to it. At other times, it is not subscribed to anything, and calls to `get()` will
5
- * recompute its value each time by calling its read() function.
8
+ * recompute its value each time by calling its `read()` function.
6
9
  *
7
- * Its syntax and usage are otherwise exactly as for a computed.
10
+ * Its syntax and usage are otherwise exactly as for a `Computed`.
8
11
  *
9
- * In addition to being cheaper when unused, a pureComputed() also avoids leaking memory when
12
+ * In addition to being cheaper when unused, a `PureComputed` also avoids leaking memory when
10
13
  * unused (since it's not registered with dependencies), so it is not necessary to dispose it.
11
14
  */
12
- import { DepItem } from './_computed_queue';
13
- import { Observable } from './observable';
14
- import { ISubscribable, UseCB } from './subscribe';
15
15
  export declare class PureComputed<T> extends Observable<T> {
16
16
  private _callback;
17
17
  private _write;
18
18
  private _sub;
19
19
  private readonly _dependencies;
20
20
  private _inCall;
21
- /**
22
- * Internal constructor for a PureComputed. You should use pureComputed() function instead.
23
- */
24
21
  constructor(callback: (use: UseCB, ...args: any[]) => T, dependencies: ReadonlyArray<ISubscribable>);
22
+ /** @internal */
25
23
  _getDepItem(): DepItem;
24
+ /** @override */
26
25
  get(): T;
27
26
  /**
28
27
  * "Sets" the value of the pure computed by calling the write() callback if one was provided in
29
28
  * the constructor. Throws an error if there was no such callback (not a "writable" computed).
30
- * @param {Object} value: The value to pass to the write() callback.
29
+ * @param value - The value to pass to the write() callback.
31
30
  */
32
31
  set(value: T): void;
33
32
  /**
@@ -44,9 +43,7 @@ export declare class PureComputed<T> extends Observable<T> {
44
43
  private _read;
45
44
  }
46
45
  /**
47
- * This is the type-checking interface for pureComputed(), which allows TypeScript to do helpful
48
- * type-checking when using it. We can only support a fixed number of argumnets (explicit
49
- * dependencies), but 5 should almost always be enough.
46
+ * Creates and returns a new PureComputed. The interface is identical to that of a Computed.
50
47
  */
51
48
  export declare function pureComputed<T>(cb: (use: UseCB) => T): PureComputed<T>;
52
49
  export declare function pureComputed<A, T>(a: Observable<A>, cb: (use: UseCB, a: A) => T): PureComputed<T>;