@legendapp/state 0.9.1 → 0.9.2-alpha.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@legendapp/state",
3
- "version": "0.9.1",
3
+ "version": "0.9.2-alpha.11",
4
4
  "description": "legend-state",
5
5
  "sideEffects": false,
6
6
  "private": false,
package/react.d.ts CHANGED
@@ -1,2 +1,4 @@
1
1
  export * from './src/react/useNewObservable';
2
2
  export * from './src/react/useObservables';
3
+ export * from './src/react/usePrimitiveFunctions';
4
+ export * from './src/react/useComputed';
package/react.js CHANGED
@@ -16,4 +16,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./src/react/useNewObservable"), exports);
18
18
  __exportStar(require("./src/react/useObservables"), exports);
19
+ __exportStar(require("./src/react/usePrimitiveFunctions"), exports);
20
+ __exportStar(require("./src/react/useComputed"), exports);
19
21
  //# sourceMappingURL=react.js.map
package/react.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"react.js","sourceRoot":"","sources":["../react.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+DAA6C;AAC7C,6DAA2C"}
1
+ {"version":3,"file":"react.js","sourceRoot":"","sources":["../react.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+DAA6C;AAC7C,6DAA2C;AAC3C,oEAAkD;AAClD,0DAAwC"}
package/src/globals.js CHANGED
@@ -59,7 +59,13 @@ function getDateModifiedKey(dateModifiedKey) {
59
59
  }
60
60
  exports.getDateModifiedKey = getDateModifiedKey;
61
61
  function clone(obj) {
62
- return obj === undefined || obj === null ? obj : JSON.parse(JSON.stringify(obj));
62
+ return obj === undefined || obj === null
63
+ ? obj
64
+ : (0, tools_1.isArray)(obj)
65
+ ? obj.slice()
66
+ : (0, tools_1.isObject)(obj)
67
+ ? Object.assign({}, obj)
68
+ : JSON.parse(JSON.stringify(obj));
63
69
  }
64
70
  exports.clone = clone;
65
71
  //# sourceMappingURL=globals.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"globals.js","sourceRoot":"","sources":["../../src/globals.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"globals.js","sourceRoot":"","sources":["../../src/globals.ts"],"names":[],"mappings":"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"}
package/src/observable.js CHANGED
@@ -60,43 +60,45 @@ function _set(proxyOwner, _, prop, value) {
60
60
  if (info.readonly) {
61
61
  return proxyOwner;
62
62
  }
63
- // Need to keep both target and targetOriginal up to date. targetOriginal may not be
64
- // an === match but it needs to have the same keys.
65
63
  const target = info.target;
66
- const targetOriginal = info.targetOriginal;
67
64
  // There was no prop
68
65
  if (arguments.length < 4) {
69
66
  value = prop;
70
67
  prop = undefined;
71
68
  const isValuePrimitive = (0, globals_1.isPrimitive)(value);
72
69
  const prevValue = info.primitive ? target[globals_1.symbolValue] : (0, globals_1.clone)(target);
70
+ const needsNotifyUndefined = !value || isValuePrimitive !== info.primitive;
71
+ const childrenToNotify = [];
73
72
  // 1. Delete keys that no longer exist
74
73
  Object.keys(target).forEach((key) => {
75
- if (!value || isValuePrimitive !== info.primitive || value[key] === undefined) {
74
+ if (needsNotifyUndefined || (value[key] === undefined && value[+key] === undefined)) {
76
75
  if (info.proxies) {
77
76
  const child = info.proxies.get(key);
78
77
  if (child) {
79
- child.set(undefined);
78
+ childrenToNotify.push(child);
79
+ info.proxies.delete(key);
80
80
  }
81
81
  }
82
- delete target[key];
83
- delete targetOriginal[key];
84
82
  }
85
83
  });
86
84
  // To avoid notifying multiple times as props are changed, make sure we don't notify for this proxy until the assign is done
87
85
  skipNotifyFor.push(proxyOwner);
88
86
  if (isValuePrimitive) {
89
87
  info.primitive = true;
90
- target[globals_1.symbolValue] = value;
88
+ info.target = { [globals_1.symbolValue]: value };
91
89
  }
92
90
  else {
93
91
  info.primitive = false;
94
- delete target[globals_1.symbolValue];
95
- delete targetOriginal[globals_1.symbolValue];
96
- // 2. Assign the values onto the target which will update all children proxies, but would leave this
97
- // as a shallow copy of the the value
98
- _assign(proxyOwner, target, value);
99
- Object.assign(targetOriginal, value);
92
+ if (info.proxies) {
93
+ // 2. Update all child proxies
94
+ info.proxies.forEach((child) => {
95
+ const childInfo = infos.get(child);
96
+ const prop = childInfo.prop;
97
+ if (value[prop]) {
98
+ child.set(value[childInfo.prop]);
99
+ }
100
+ });
101
+ }
100
102
  info.target = value;
101
103
  }
102
104
  skipNotifyFor.pop();
@@ -104,15 +106,15 @@ function _set(proxyOwner, _, prop, value) {
104
106
  if (info.parent) {
105
107
  const parentInfo = infos.get(info.parent);
106
108
  parentInfo.target[info.prop] = value;
107
- parentInfo.targetOriginal[info.prop] = value;
108
109
  }
109
110
  if (value !== prevValue) {
110
111
  (0, observableFns_1.notifyObservable)(proxyOwner, value, prevValue, []);
111
112
  }
113
+ // Notify children after the parent so that deleted children would not re-render if the parent stops rendering them
114
+ childrenToNotify.forEach(observableFns_1.notifyChildrenDeleted);
112
115
  }
113
116
  else if (typeof prop === 'symbol') {
114
117
  target[prop] = value;
115
- targetOriginal[prop] = value;
116
118
  }
117
119
  else if ((0, tools_1.isString)(prop) || (0, tools_1.isNumber)(prop)) {
118
120
  const propStr = String(prop);
@@ -125,7 +127,7 @@ function _set(proxyOwner, _, prop, value) {
125
127
  // Ignore array length changing because that's caused by mutations which already notified.
126
128
  if (prop !== 'length' && target[prop] !== value) {
127
129
  const prevValue = target.slice();
128
- target[prop] = targetOriginal[prop] = value;
130
+ target[prop] = value;
129
131
  // Notify listeners of changes.
130
132
  (0, observableFns_1.notifyObservable)(proxyOwner, target, prevValue, []);
131
133
  }
@@ -133,11 +135,10 @@ function _set(proxyOwner, _, prop, value) {
133
135
  else {
134
136
  const prevValue = (0, globals_1.clone)(target[prop]);
135
137
  if (value !== prevValue) {
136
- target[prop] = targetOriginal[prop] = value;
138
+ target[prop] = value;
137
139
  info.primitive = false;
138
140
  delete target[globals_1.symbolValue];
139
- delete targetOriginal[globals_1.symbolValue];
140
- // Notify listeners of changes.
141
+ // Notify listeners of changes
141
142
  (0, observableFns_1.notifyObservable)(proxyOwner, value, prevValue, [propStr]);
142
143
  }
143
144
  }
@@ -185,12 +186,10 @@ function deleteFn(obs, target, prop) {
185
186
  const info = infos.get(obs);
186
187
  if (!info.readonly) {
187
188
  if (prop !== undefined) {
188
- const targetOriginal = info.targetOriginal;
189
189
  // First set to undefined
190
190
  _set(obs, target, prop, undefined);
191
191
  // Then fully delete the keys from the object
192
192
  delete target[prop];
193
- delete targetOriginal[prop];
194
193
  // TODO Should find a way to remove from state.infos or there will be a memory leak if deleting
195
194
  // unique keys often. Re-addeding the same prop will reuse the same proxy.
196
195
  }
@@ -251,7 +250,8 @@ const proxyHandlerUnsafe = {
251
250
  lastAccessedProxy.prop = prop;
252
251
  }
253
252
  updateTracking(proxyOwner, prop, info, /*shallow*/ false);
254
- if ((observableState_1.state.inProp || targetValue === undefined || targetValue === null || !(0, globals_1.isPrimitive)(targetValue)) &&
253
+ if (prop !== globals_1.symbolValue &&
254
+ (observableState_1.state.inProp || targetValue === undefined || targetValue === null || !(0, globals_1.isPrimitive)(targetValue)) &&
255
255
  !(targetValue instanceof Promise) &&
256
256
  !(0, tools_1.isFunction)(targetValue)) {
257
257
  // Get proxy for prop if it's not a primitive or if using `prop` function
@@ -298,6 +298,19 @@ const proxyHandlerUnsafe = {
298
298
  return false;
299
299
  }
300
300
  },
301
+ ownKeys() {
302
+ const info = infos.get(this);
303
+ const keys = Reflect.ownKeys(info.target);
304
+ return keys;
305
+ },
306
+ getOwnPropertyDescriptor(_, p) {
307
+ const info = infos.get(this);
308
+ return Reflect.getOwnPropertyDescriptor(info.target, p);
309
+ },
310
+ // has(target, p) {
311
+ // debugger;
312
+ // return true;
313
+ // },
301
314
  };
302
315
  // Safe observables also don't allow defining or deleting properties
303
316
  const proxyHandler = Object.assign({
@@ -317,9 +330,12 @@ const proxyHandler = Object.assign({
317
330
  function _observable(value, safe, parent, prop) {
318
331
  const primitive = (0, globals_1.isPrimitive)(value);
319
332
  const target = primitive ? { [globals_1.symbolValue]: value } : value;
320
- const proxy = new Proxy(target, safe ? proxyHandler : proxyHandlerUnsafe);
333
+ const handler = Object.assign({}, safe ? proxyHandler : proxyHandlerUnsafe);
334
+ const proxy = new Proxy(target, handler);
335
+ handler.ownKeys = handler.ownKeys.bind(proxy);
336
+ handler.getOwnPropertyDescriptor = handler.getOwnPropertyDescriptor.bind(proxy);
321
337
  // Save proxy to state so it can be accessed later
322
- infos.set(proxy, { parent, prop, safe, target, primitive, targetOriginal: target });
338
+ infos.set(proxy, { parent, prop, safe, target, primitive });
323
339
  return proxy;
324
340
  }
325
341
  function observable(value, unsafe) {
@@ -1 +1 @@
1
- {"version":3,"file":"observable.js","sourceRoot":"","sources":["../../src/observable.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"observable.js","sourceRoot":"","sources":["../../src/observable.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
1
  import type { ObservableComputed, ValidObservableParam } from './observableInterfaces';
2
- export declare function observableComputed<T>(fn: () => ValidObservableParam<T>): ObservableComputed<T>;
2
+ export declare function observableComputed<T>(compute: () => ValidObservableParam<T>): ObservableComputed<T>;
@@ -3,22 +3,22 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.observableComputed = void 0;
4
4
  const observable_1 = require("./observable");
5
5
  const observableState_1 = require("./observableState");
6
- function onChanged(observable, fn) {
6
+ function onChanged(observable, compute) {
7
7
  const info = observableState_1.state.infos.get(observable);
8
- const value = fn();
8
+ const value = compute();
9
9
  // Temporarily disable readonly to set the new value
10
10
  info.readonly = false;
11
11
  observable.set(value);
12
12
  info.readonly = true;
13
13
  }
14
- function observableComputed(fn) {
14
+ function observableComputed(compute) {
15
15
  // Set isTracking so that the proxy `get` function will track accessed proxies
16
16
  observableState_1.state.isTracking = true;
17
17
  // Create an observable for this computed variable
18
- const obs = (0, observable_1.observable)(fn());
18
+ const obs = (0, observable_1.observable)(compute());
19
19
  observableState_1.state.infos.get(obs).readonly = true;
20
20
  // Listen to all tracked proxies
21
- observableState_1.state.trackedProxies.forEach(([tracked, prop]) => (prop ? tracked.prop(prop) : tracked).on('change', onChanged.bind(this, obs, fn)));
21
+ observableState_1.state.trackedProxies.forEach(([tracked, prop]) => (prop ? tracked.prop(prop) : tracked).on('change', onChanged.bind(this, obs, compute)));
22
22
  // Reset state
23
23
  observableState_1.state.isTracking = false;
24
24
  observableState_1.state.trackedProxies = [];
@@ -1 +1 @@
1
- {"version":3,"file":"observableComputed.js","sourceRoot":"","sources":["../../src/observableComputed.ts"],"names":[],"mappings":";;;AAAA,6CAA0C;AAE1C,uDAA0C;AAE1C,SAAS,SAAS,CAAI,UAAsB,EAAE,EAAW;IACrD,MAAM,IAAI,GAAG,uBAAK,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAEzC,MAAM,KAAK,GAAG,EAAE,EAAE,CAAC;IAEnB,oDAAoD;IACpD,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACtB,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACtB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACzB,CAAC;AAED,SAAgB,kBAAkB,CAAI,EAAiC;IACnE,8EAA8E;IAC9E,uBAAK,CAAC,UAAU,GAAG,IAAI,CAAC;IAExB,kDAAkD;IAClD,MAAM,GAAG,GAAG,IAAA,uBAAU,EAAI,EAAE,EAAE,CAAC,CAAC;IAChC,uBAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;IAErC,gCAAgC;IAChC,uBAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,CAC7C,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,CACpF,CAAC;IAEF,cAAc;IACd,uBAAK,CAAC,UAAU,GAAG,KAAK,CAAC;IACzB,uBAAK,CAAC,cAAc,GAAG,EAAE,CAAC;IAE1B,OAAO,GAAG,CAAC;AACf,CAAC;AAlBD,gDAkBC"}
1
+ {"version":3,"file":"observableComputed.js","sourceRoot":"","sources":["../../src/observableComputed.ts"],"names":[],"mappings":";;;AAAA,6CAA0C;AAE1C,uDAA0C;AAE1C,SAAS,SAAS,CAAI,UAAsB,EAAE,OAAgB;IAC1D,MAAM,IAAI,GAAG,uBAAK,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAEzC,MAAM,KAAK,GAAG,OAAO,EAAE,CAAC;IAExB,oDAAoD;IACpD,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACtB,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACtB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACzB,CAAC;AAED,SAAgB,kBAAkB,CAAI,OAAsC;IACxE,8EAA8E;IAC9E,uBAAK,CAAC,UAAU,GAAG,IAAI,CAAC;IAExB,kDAAkD;IAClD,MAAM,GAAG,GAAG,IAAA,uBAAU,EAAI,OAAO,EAAE,CAAC,CAAC;IACrC,uBAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;IAErC,gCAAgC;IAChC,uBAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,CAC7C,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CACzF,CAAC;IAEF,cAAc;IACd,uBAAK,CAAC,UAAU,GAAG,KAAK,CAAC;IACzB,uBAAK,CAAC,cAAc,GAAG,EAAE,CAAC;IAE1B,OAAO,GAAG,CAAC;AACf,CAAC;AAlBD,gDAkBC"}
@@ -1,5 +1,6 @@
1
- import { ListenerFn, Observable, ObservableChecker, ObservableEvent, ObservableEventType, ObservableListener, OnReturnValue } from './observableInterfaces';
1
+ import { ListenerFn, Observable, ObservableChecker, ObservableCheckerWriteable, ObservableEvent, ObservableEventType, ObservableListener, OnReturnValue } from './observableInterfaces';
2
2
  export declare function notifyObservable<T>(target: ObservableChecker<T>, changedValue: T, prevValue: T, path: string[]): void;
3
+ export declare function notifyChildrenDeleted(obs: ObservableCheckerWriteable): void;
3
4
  export declare function disposeListener(listener: ObservableListener): void;
4
5
  export declare function listenToObservableShallow<T>(obs: ObservableChecker<T>, callback: ListenerFn<T>): ObservableListener<T>;
5
6
  export declare function listenToObservable<T>(obs: ObservableChecker<T>, callback: ListenerFn<T>, shallow?: boolean): ObservableListener<T>;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.mergeIntoObservable = exports.isObservableEvent = exports.isObservable = exports.shallow = exports.prop = exports.getObservableFromPrimitive = exports.observableProp = exports.listen = exports._on = exports.unlisten = exports.onTrue = exports.onHasValue = exports.onEquals = exports.listenToObservable = exports.listenToObservableShallow = exports.disposeListener = exports.notifyObservable = void 0;
3
+ exports.mergeIntoObservable = exports.isObservableEvent = exports.isObservable = exports.shallow = exports.prop = exports.getObservableFromPrimitive = exports.observableProp = exports.listen = exports._on = exports.unlisten = exports.onTrue = exports.onHasValue = exports.onEquals = exports.listenToObservable = exports.listenToObservableShallow = exports.disposeListener = exports.notifyChildrenDeleted = exports.notifyObservable = void 0;
4
4
  const tools_1 = require("@legendapp/tools");
5
5
  const globals_1 = require("./globals");
6
6
  const observableBatcher_1 = require("./observableBatcher");
@@ -35,10 +35,20 @@ function notifyObservable(target, changedValue, prevValue, path) {
35
35
  _notify(target, { changedValue, prevValue, path });
36
36
  }
37
37
  exports.notifyObservable = notifyObservable;
38
+ function notifyChildrenDeleted(obs) {
39
+ const info = infos.get(obs);
40
+ if (info.proxies) {
41
+ info.proxies.forEach(notifyChildrenDeleted);
42
+ }
43
+ if (info.listeners) {
44
+ obs.set(undefined);
45
+ }
46
+ }
47
+ exports.notifyChildrenDeleted = notifyChildrenDeleted;
38
48
  function disposeListener(listener) {
39
49
  if (listener && !listener.isDisposed) {
40
50
  listener.isDisposed = true;
41
- const info = observableState_1.state.infos.get(listener.target);
51
+ const info = infos.get(listener.target);
42
52
  if (info.listeners) {
43
53
  info.listeners.delete(listener);
44
54
  }
@@ -1 +1 @@
1
- {"version":3,"file":"observableFns.js","sourceRoot":"","sources":["../../src/observableFns.ts"],"names":[],"mappings":";;;AAAA,4CAA2D;AAC3D,uCAA2E;AAC3E,2DAA8D;AAW9D,uDAA0C;AAE1C,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,GAAG,uBAAK,CAAC;AAE1D,MAAM,cAAc,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;AAE5C,SAAS,OAAO,CAAC,MAAyB,EAAE,YAAoC,EAAE,SAAmB;IACjG,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC/B,gGAAgG;IAChG,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;QACzC,uBAAuB;QACvB,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC;YAC3B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;gBAChC,IACI,CAAC,SAAS;oBACV,CAAC,QAAQ,CAAC,OAAO;oBACjB,CAAC,KAAK,KAAK,SAAS,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,KAAK,SAAS,CAAC,EAClE;oBACE,IAAA,2CAAuB,EAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;iBACnE;YACL,CAAC,CAAC,CAAC;SACN;QAED,iBAAiB;QACjB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,MAAM,EAAE;YACR,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;YAC3D,kBAAkB,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAc,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YAC1E,OAAO,CAAC,MAAM,EAAE,kBAAkB,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;SAC3D;KACJ;AACL,CAAC;AAED,SAAgB,gBAAgB,CAAI,MAA4B,EAAE,YAAe,EAAE,SAAY,EAAE,IAAc;IAC3G,OAAO,CAAC,MAAM,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AACvD,CAAC;AAFD,4CAEC;AAED,SAAgB,eAAe,CAAC,QAA4B;IACxD,IAAI,QAAQ,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE;QAClC,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC;QAC3B,MAAM,IAAI,GAAG,uBAAK,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC9C,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;SACnC;KACJ;AACL,CAAC;AARD,0CAQC;AAED,SAAgB,yBAAyB,CACrC,GAAyB,EACzB,QAAuB;IAEvB,OAAO,kBAAkB,CAAC,GAAG,EAAE,QAAQ,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;AAC/D,CAAC;AALD,8DAKC;AAED,SAAgB,kBAAkB,CAC9B,GAAyB,EACzB,QAAuB,EACvB,OAAiB;IAEjB,gDAAgD;IAChD,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;IAEhB,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5B,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,EAAE;QACjD,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;KACjE;IACD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;QACjB,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,EAAE,CAAC;KAC9B;IACD,MAAM,QAAQ,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAA2B,CAAC;IAC7E,QAAQ,CAAC,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC5D,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC7B,OAAO,QAAQ,CAAC;AACpB,CAAC;AAnBD,gDAmBC;AAED,SAAgB,QAAQ,CAAI,GAAyB,EAAE,KAAQ,EAAE,EAAuB;IACpF,IAAI,QAA+B,CAAC;IAEpC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAM,CAAC,OAAO,EAAE,EAAE;QACzC,gDAAgD;QAChD,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QAEhB,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,SAAS,KAAK,CAAC,QAAQ;YACnB,IACI,CAAC,MAAM;gBACP,CAAC,KAAK,KAAM,cAAsB;oBAC9B,CAAC,CAAC,kIAAkI;wBAClI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI,IAAI,CAAC,IAAA,qBAAa,EAAC,QAAQ,CAAC;oBACzE,CAAC,CAAC,QAAQ,KAAK,KAAK,CAAC,EAC3B;gBACE,MAAM,GAAG,IAAI,CAAC;gBACd,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAG,QAAQ,CAAC,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,CAAC;gBAEf,eAAe,CAAC,QAAQ,CAAC,CAAC;aAC7B;YACD,OAAO,MAAM,CAAC;QAClB,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE;YACnB,QAAQ,GAAG,kBAAkB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;SAC7C;IACL,CAAC,CAAC,CAAC;IAEH,OAAO;QACH,OAAO;QACP,QAAQ;KACX,CAAC;AACN,CAAC;AAjCD,4BAiCC;AAED,SAAgB,UAAU,CAAI,GAAyB,EAAE,EAAuB;IAC5E,OAAO,QAAQ,CAAC,GAAG,EAAE,cAAqB,EAAE,EAAE,CAAC,CAAC;AACpD,CAAC;AAFD,gCAEC;AAED,SAAgB,MAAM,CAAoB,GAAyB,EAAE,EAAe;IAChF,OAAO,QAAQ,CAAC,GAAG,EAAE,IAAS,EAAE,EAAE,CAAC,CAAC;AACxC,CAAC;AAFD,wBAEC;AAED,SAAgB,QAAQ,CAA8B,GAAM,EAAE,EAAmB;IAC7E,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5B,IAAI,IAAI,EAAE;QACN,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;YACnC,IAAI,QAAQ,CAAC,QAAQ,KAAK,EAAE,EAAE;gBAC1B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAChC,MAAM;aACT;SACJ;KACJ;AACL,CAAC;AAVD,4BAUC;AAED,MAAM,qBAAqB,GAA0C;IACjE,MAAM,EAAE,kBAAkB;IAC1B,aAAa,EAAE,yBAAyB;IACxC,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,UAAU;IACpB,IAAI,EAAE,MAAM;CACf,CAAC;AAEF,SAAgB,GAAG,CAAC,GAAsB,EAAE,CAAM,EAAE,SAA8B,EAAE,GAAG,IAAI;IACvF,OAAO,qBAAqB,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;AAC1D,CAAC;AAFD,kBAEC;AA6BD,SAAgB,MAAM,CAAI,GAAyB,EAAE,SAA8B,EAAE,GAAG,IAAI;IACxF,OAAO,qBAAqB,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;AAC1D,CAAC;AAFD,wBAEC;AAED,SAAgB,cAAc,CAAC,GAAsB,EAAE,CAAM,EAAE,IAAqB;IAChF,6FAA6F;IAC7F,uBAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpB,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;IACtB,uBAAK,CAAC,MAAM,GAAG,KAAK,CAAC;IACrB,OAAO,GAAG,CAAC;AACf,CAAC;AAND,wCAMC;AAED,SAAgB,0BAA0B,CAAC,SAAc;IACrD,IAAI,iBAAiB,EAAE;QACnB,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,iBAAiB,CAAC;QAC1C,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC9B,2EAA2E;QAC3E,8EAA8E;QAC9E,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,EAAE;YACxC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC3B;KACJ;AACL,CAAC;AAVD,gEAUC;AAED,SAAgB,IAAI,CAAC,GAAsB;IACvC,IAAI,IAAA,qBAAW,EAAC,GAAG,CAAC,EAAE;QAClB,GAAG,GAAG,0BAA0B,CAAC,GAAG,CAAC,CAAC;KACzC;IACD,OAAO,GAAG,CAAC;AACf,CAAC;AALD,oBAKC;AAED,SAAgB,OAAO,CAAC,GAAsB;IAC1C,+EAA+E;IAC/E,yDAAyD;IACzD,OAAO,GAAG,CAAC,uBAAa,CAAC,CAAC;AAC9B,CAAC;AAJD,0BAIC;AAED,SAAgB,YAAY,CAAC,GAAQ;IACjC,OAAO,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACjC,CAAC;AAFD,oCAEC;AAED,SAAgB,iBAAiB,CAAC,GAAQ;IACtC,OAAO,IAAA,gBAAQ,EAAC,GAAG,CAAC,IAAI,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;AACnF,CAAC;AAFD,8CAEC;AAED,SAAgB,mBAAmB,CAAC,MAAyB,EAAE,GAAG,OAAc;IAC5E,IAAI,CAAC,OAAO,CAAC,MAAM;QAAE,OAAO,MAAM,CAAC;IACnC,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAE/B,MAAM,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACtC,MAAM,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;IAErD,IAAI,IAAA,gBAAQ,EAAC,WAAW,CAAC,IAAI,IAAA,gBAAQ,EAAC,MAAM,CAAC,EAAE;QAC3C,IAAI,MAAM,CAAC,4BAAyB,CAAC,EAAE;YACnC,IAAI,QAAQ,EAAE;gBACV,MAAM,CAAC,GAAG,CAAC,4BAAkB,EAAE,MAAM,CAAC,4BAAyB,CAAC,CAAC,CAAC;aACrE;iBAAM;gBACH,MAAM,CAAC,4BAAkB,CAAC,GAAG,MAAM,CAAC,4BAAyB,CAAC,CAAC;aAClE;SACJ;QACD,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE;YACtB,IAAI,IAAA,gBAAQ,EAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE;gBACvB,IAAI,CAAC,IAAA,gBAAQ,EAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE;oBAC7B,IAAI,QAAQ,EAAE;wBACV,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;qBACvB;yBAAM;wBACH,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;qBACpB;iBACJ;gBACD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE;oBACnB,IAAI,QAAQ,EAAE;wBACV,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;qBAChC;yBAAM;wBACH,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;qBACxC;iBACJ;gBACD,mBAAmB,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;aACjD;iBAAM;gBACH,IAAI,YAAY,CAAC,MAAM,CAAC,EAAE;oBACtB,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;iBACzC;qBAAM;oBACH,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;iBACjD;aACJ;SACJ;KACJ;IACD,OAAO,mBAAmB,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC;AACnD,CAAC;AA1CD,kDA0CC"}
1
+ {"version":3,"file":"observableFns.js","sourceRoot":"","sources":["../../src/observableFns.ts"],"names":[],"mappings":"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"}
@@ -43,7 +43,7 @@ export interface ObservableListenerInfo {
43
43
  path: string[];
44
44
  }
45
45
  export declare type ListenerFn<T> = (value: T, info: ObservableListenerInfo) => void;
46
- declare type Recurse<T, K extends keyof T, TRecurse> = T[K] extends Function | Map<any, any> | WeakMap<any, any> | Set<any> | WeakSet<any> | Promise<any> ? T[K] : T[K] extends Array<any> ? T[K] & {
46
+ declare type Recurse<T, K extends keyof T, TRecurse> = T[K] extends Function | Map<any, any> | WeakMap<any, any> | Set<any> | WeakSet<any> | Promise<any> ? T[K] : T[K] extends Array<any> ? T[K] & ObservableProps<T[K]> & {
47
47
  [n: number]: TRecurse extends Observable ? Observable<T[K][number]> : ObservableUnsafe<T[K][number]>;
48
48
  } : T extends object ? TRecurse : T[K];
49
49
  declare type ObservablePropsRecursiveUnsafe<T> = {
@@ -2,7 +2,6 @@ import { Observable, ObservableChecker, ObservableListener } from './observableI
2
2
  interface StateInfo {
3
3
  prop: string | number | symbol;
4
4
  target: object;
5
- targetOriginal: object;
6
5
  safe: boolean;
7
6
  primitive: boolean;
8
7
  readonly?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"observableState.js","sourceRoot":"","sources":["../../src/observableState.ts"],"names":[],"mappings":";;;AAca,QAAA,KAAK,GAAG;IACjB,OAAO,EAAE,CAAC;IACV,QAAQ,EAAE,CAAC;IACX,UAAU,EAAE,KAAK;IACjB,MAAM,EAAE,KAAK;IACb,WAAW,EAAE,KAAK;IAClB,kBAAkB,EAAE,EAAkB;IACtC,cAAc,EAAE,EAAqC;IACrD,iBAAiB,EAAE,EAAE,KAAK,EAAE,SAAuB,EAAE,IAAI,EAAE,SAAqC,EAAE;IAClG,KAAK,EAAE,IAAI,OAAO,EAAgC;IAClD,aAAa,EAAE,EAAyB;IACxC,cAAc,EAAE,CAAC,KAAiB,EAAE,IAAS,EAAE,IAAe,EAAE,OAAgB,EAAE,EAAE;QAChF,oEAAoE;QACpE,qDAAqD;QACrD,IAAI,aAAK,CAAC,UAAU,EAAE;YAClB,MAAM,IAAI,GAAG,aAAK,CAAC,cAAc,CAAC,aAAK,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACnE,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE;gBACxE,aAAK,CAAC,cAAc,CAAC,aAAK,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;aAClF;iBAAM;gBACH,aAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;aACrD;YAED,IAAI,aAAK,CAAC,kBAAkB,CAAC,aAAK,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,MAAM,EAAE;gBAC3E,aAAK,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC;aAClC;SACJ;IACL,CAAC;CACJ,CAAC"}
1
+ {"version":3,"file":"observableState.js","sourceRoot":"","sources":["../../src/observableState.ts"],"names":[],"mappings":";;;AAaa,QAAA,KAAK,GAAG;IACjB,OAAO,EAAE,CAAC;IACV,QAAQ,EAAE,CAAC;IACX,UAAU,EAAE,KAAK;IACjB,MAAM,EAAE,KAAK;IACb,WAAW,EAAE,KAAK;IAClB,kBAAkB,EAAE,EAAkB;IACtC,cAAc,EAAE,EAAqC;IACrD,iBAAiB,EAAE,EAAE,KAAK,EAAE,SAAuB,EAAE,IAAI,EAAE,SAAqC,EAAE;IAClG,KAAK,EAAE,IAAI,OAAO,EAAgC;IAClD,aAAa,EAAE,EAAyB;IACxC,cAAc,EAAE,CAAC,KAAiB,EAAE,IAAS,EAAE,IAAe,EAAE,OAAgB,EAAE,EAAE;QAChF,oEAAoE;QACpE,qDAAqD;QACrD,IAAI,aAAK,CAAC,UAAU,EAAE;YAClB,MAAM,IAAI,GAAG,aAAK,CAAC,cAAc,CAAC,aAAK,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACnE,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE;gBACxE,aAAK,CAAC,cAAc,CAAC,aAAK,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;aAClF;iBAAM;gBACH,aAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;aACrD;YAED,IAAI,aAAK,CAAC,kBAAkB,CAAC,aAAK,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,MAAM,EAAE;gBAC3E,aAAK,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC;aAClC;SACJ;IACL,CAAC;CACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { ObservableComputed, ValidObservableParam } from '../observableInterfaces';
2
+ export declare function useComputed<T>(compute: () => ValidObservableParam<T>, observe?: boolean): [ObservableComputed<T>, T];
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useComputed = void 0;
4
+ const react_1 = require("react");
5
+ const observableComputed_1 = require("../observableComputed");
6
+ const useObservables_1 = require("./useObservables");
7
+ function useComputed(compute, observe) {
8
+ // Create the observableComputed
9
+ const obs = (0, react_1.useMemo)(() => (0, observableComputed_1.observableComputed)(compute), []); // eslint-disable-line react-hooks/exhaustive-deps
10
+ if (observe !== false) {
11
+ (0, useObservables_1.useObservables)(() => [obs]);
12
+ }
13
+ return [obs, obs.get()];
14
+ }
15
+ exports.useComputed = useComputed;
16
+ //# sourceMappingURL=useComputed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useComputed.js","sourceRoot":"","sources":["../../../src/react/useComputed.ts"],"names":[],"mappings":";;;AAAA,iCAAgC;AAChC,8DAA2D;AAE3D,qDAAkD;AAElD,SAAgB,WAAW,CAAI,OAAsC,EAAE,OAAiB;IACpF,gCAAgC;IAChC,MAAM,GAAG,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE,CAAC,IAAA,uCAAkB,EAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,kDAAkD;IAE9G,IAAI,OAAO,KAAK,KAAK,EAAE;QACnB,IAAA,+BAAc,EAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;KAC/B;IAED,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;AAC5B,CAAC;AATD,kCASC"}
@@ -6,4 +6,4 @@ import { MappedObservableValue, ObservableCheckerLoose } from '../observableInte
6
6
  *
7
7
  * @see https://www.legendapp.com/dev/state/react/#useobservables
8
8
  */
9
- export declare function useObservables<T extends ObservableCheckerLoose | ObservableCheckerLoose[] | Record<string, ObservableCheckerLoose>>(fn: () => T): MappedObservableValue<T>;
9
+ export declare function useObservables<T extends ObservableCheckerLoose | ObservableCheckerLoose[] | Record<string, ObservableCheckerLoose>>(fn: () => T, renderComparator?: () => any): MappedObservableValue<T>;
@@ -9,6 +9,7 @@ const observableState_1 = require("../observableState");
9
9
  function getRawValue(obs) {
10
10
  return obs && ((0, observableFns_1.isObservableEvent)(obs) ? undefined : (0, observableFns_1.isObservable)(obs) ? obs.get() : obs);
11
11
  }
12
+ const undef = Symbol();
12
13
  /**
13
14
  * A React hook that listens to observables and returns their values.
14
15
  *
@@ -16,12 +17,13 @@ function getRawValue(obs) {
16
17
  *
17
18
  * @see https://www.legendapp.com/dev/state/react/#useobservables
18
19
  */
19
- function useObservables(fn) {
20
+ function useObservables(fn, renderComparator) {
20
21
  const forceRender = (0, react_1.useForceRender)();
21
22
  const ref = (0, react_2.useRef)();
22
23
  if (!ref.current) {
23
24
  ref.current = {
24
25
  proxies: [],
26
+ cmpValue: undef,
25
27
  };
26
28
  }
27
29
  observableState_1.state.isTracking = true;
@@ -29,8 +31,21 @@ function useObservables(fn) {
29
31
  const isArr = (0, tools_1.isArray)(args);
30
32
  const isObj = !isArr && (0, tools_1.isObject)(args);
31
33
  const arr = (isArr ? args : isObj ? Object.values(args) : [args]);
34
+ const onChange = (0, react_1.useStableCallback)(() => {
35
+ if (!renderComparator) {
36
+ return forceRender();
37
+ }
38
+ const val = renderComparator();
39
+ if (val !== ref.current.cmpValue) {
40
+ ref.current.cmpValue = val;
41
+ forceRender();
42
+ }
43
+ });
32
44
  // Compare to previous args and update listeners if any changed or first mount
33
- updateListeners(arr, ref.current, forceRender);
45
+ updateListeners(arr, ref.current, onChange);
46
+ if (renderComparator && ref.current.cmpValue === undef) {
47
+ ref.current.cmpValue = renderComparator();
48
+ }
34
49
  // Reset state
35
50
  observableState_1.state.isTracking = false;
36
51
  observableState_1.state.trackedProxies = [];
@@ -56,7 +71,7 @@ function useObservables(fn) {
56
71
  }
57
72
  }
58
73
  exports.useObservables = useObservables;
59
- const updateListeners = (ret, saved, onChange) => {
74
+ function updateListeners(ret, saved, onChange) {
60
75
  const tracked = observableState_1.state.trackedProxies;
61
76
  const trackedRoots = observableState_1.state.trackedRootProxies;
62
77
  // Passing the root of an observable will not trigger any tracking from the proxies, so
@@ -110,5 +125,5 @@ const updateListeners = (ret, saved, onChange) => {
110
125
  }
111
126
  }
112
127
  }
113
- };
128
+ }
114
129
  //# sourceMappingURL=useObservables.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useObservables.js","sourceRoot":"","sources":["../../../src/react/useObservables.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useObservables.js","sourceRoot":"","sources":["../../../src/react/useObservables.ts"],"names":[],"mappings":"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"}