mobx-react 6.1.0 → 6.1.4
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/CHANGELOG.md +18 -6
- package/README.md +19 -5
- package/dist/mobx-react.d.ts +7 -1
- package/dist/mobx-react.js +1 -1
- package/dist/mobx-react.js.map +1 -1
- package/dist/mobx-react.module.js +1 -1
- package/dist/mobx-react.module.js.map +1 -1
- package/dist/mobx-react.rn.module.js +1 -1
- package/dist/mobx-react.umd.js +1 -1
- package/dist/mobx-react.umd.js.map +1 -1
- package/package.json +27 -9
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# MobX-React Changelog
|
|
2
2
|
|
|
3
|
+
### 6.1.2 / 6.1.3
|
|
4
|
+
|
|
5
|
+
- Add reexport of `useObserver` from `mobx-react-lite` [#734](https://github.com/mobxjs/mobx-react/issues/734)
|
|
6
|
+
- Add the ability to pass multiple children to Provider
|
|
7
|
+
- Fixed [#717](https://github.com/mobxjs/mobx-react/issues/717). Now `inject` works correctly with components that use `React.forwardRef`
|
|
8
|
+
- Observer checks for use of React.memo [#720](https://github.com/mobxjs/mobx-react/issues/720)
|
|
9
|
+
- Get rid of the redundant Injector wrapper [#716](https://github.com/mobxjs/mobx-react/pull/716)
|
|
10
|
+
|
|
11
|
+
### 6.1.1
|
|
12
|
+
|
|
13
|
+
- Fixed issue where combining `@disposeOnUnmount` with `disposeOnUnmount` didn't clean up everything. Fixes [#666](https://github.com/mobxjs/mobx-react/issues/666) trough [#671](https://github.com/mobxjs/mobx-react/pull/671) by [@JabX](https://github.com/JabX)
|
|
14
|
+
|
|
3
15
|
### 6.1.0
|
|
4
16
|
|
|
5
17
|
- Restored the classic implementation of `observer`: class based components are patched again, rather than wrapping them in `<Observer>`, see [#703](https://github.com/mobxjs/mobx-react/pull/703). Fixes:
|
|
@@ -132,12 +144,12 @@ _5.3.0 was retracted as files were not generated correctly during publish_
|
|
|
132
144
|
|
|
133
145
|
### 5.1.0
|
|
134
146
|
|
|
135
|
-
- Added support for React 16.3, including support for the `getDerivedStateFromProps` life-cycle hook. MobX will no longer use `componentWillMount` hook internally, so that it can be used in `StrictMode` react as well. Fixes [#447](https://github.com/
|
|
136
|
-
- Static properties of a function component are now automatically hoisted when the component is wrapped by `observer`. Implements [#427](https://github.com/
|
|
137
|
-
- Misspelled export `componentByNodeRegistery` is now properly export as `componentByNodeRegistry` as well, please update consumers, the mispelled version will be dropped in the next major. Fixes [#421](https://github.com/
|
|
138
|
-
- Deprecated the support for the `inject` property on `Observer`, it is fundamentally broken and should not be used. Use `inject` on the enclosing component instead and grab the necessary stores from the closure. Fixes [#423](https://github.com/
|
|
139
|
-
- Added warning about using `observer` on a React.PureComponent, this will become an exception in the next major. Fixes [#309](https://github.com/
|
|
140
|
-
- Mobx-react will now print a warning when combining `observer` with a custom `shouldComponentUpdate` implementation. Fixes [#417](https://github.com/
|
|
147
|
+
- Added support for React 16.3, including support for the `getDerivedStateFromProps` life-cycle hook. MobX will no longer use `componentWillMount` hook internally, so that it can be used in `StrictMode` react as well. Fixes [#447](https://github.com/mobxjs/mobx-react/issues/447)
|
|
148
|
+
- Static properties of a function component are now automatically hoisted when the component is wrapped by `observer`. Implements [#427](https://github.com/mobxjs/mobx-react/pull/427)
|
|
149
|
+
- Misspelled export `componentByNodeRegistery` is now properly export as `componentByNodeRegistry` as well, please update consumers, the mispelled version will be dropped in the next major. Fixes [#421](https://github.com/mobxjs/mobx-react/issues/421)
|
|
150
|
+
- Deprecated the support for the `inject` property on `Observer`, it is fundamentally broken and should not be used. Use `inject` on the enclosing component instead and grab the necessary stores from the closure. Fixes [#423](https://github.com/mobxjs/mobx-react/issues/423)
|
|
151
|
+
- Added warning about using `observer` on a React.PureComponent, this will become an exception in the next major. Fixes [#309](https://github.com/mobxjs/mobx-react/issues/309)
|
|
152
|
+
- Mobx-react will now print a warning when combining `observer` with a custom `shouldComponentUpdate` implementation. Fixes [#417](https://github.com/mobxjs/mobx-react/issues/417)
|
|
141
153
|
|
|
142
154
|
### 5.0.0
|
|
143
155
|
|
package/README.md
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
Package with React component wrapper for combining React with MobX.
|
|
8
8
|
Exports the `observer` decorator and other utilities.
|
|
9
9
|
For documentation, see the [MobX](https://mobxjs.github.io/mobx) project.
|
|
10
|
+
There is also work-in-progress [user guide](https://mobx-react.js.org) for additional information.
|
|
10
11
|
This package supports both React and React Native.
|
|
11
12
|
|
|
12
13
|
## Choosing your version
|
|
@@ -18,6 +19,8 @@ There are currently two actively maintained versions of mobx-react:
|
|
|
18
19
|
| v6 | 16.8.0 and higher | Yes |
|
|
19
20
|
| v5 | 0.13 and higher | No, but it is possible to use `<Observer>` sections inside hook based components |
|
|
20
21
|
|
|
22
|
+
The user guide covers this [in a more detail](https://mobx-react.js.org/libraries).
|
|
23
|
+
|
|
21
24
|
The V5 documentation can be found in the [README_v5](README_v5.md).
|
|
22
25
|
|
|
23
26
|
Both mobx-react 5 and 6 are compatible with mobx 4 and 5
|
|
@@ -103,7 +106,7 @@ class App extends React.Component {
|
|
|
103
106
|
|
|
104
107
|
const person = observable({ name: "John" })
|
|
105
108
|
|
|
106
|
-
|
|
109
|
+
ReactDOM.render(<App person={person} />, document.body)
|
|
107
110
|
person.name = "Mike" // will cause the Observer region to re-render
|
|
108
111
|
```
|
|
109
112
|
|
|
@@ -124,12 +127,14 @@ class App extends React.Component {
|
|
|
124
127
|
|
|
125
128
|
const person = observable({ name: "John" })
|
|
126
129
|
|
|
127
|
-
|
|
130
|
+
ReactDOM.render(<App person={person} />, document.body)
|
|
128
131
|
person.name = "Mike" // will cause the Observer region to re-render
|
|
129
132
|
```
|
|
130
133
|
|
|
131
134
|
### `useLocalStore` hook
|
|
132
135
|
|
|
136
|
+
[User guide](https://mobx-react.js.org/state-local)
|
|
137
|
+
|
|
133
138
|
Local observable state can be introduced by using the `useLocalStore` hook, that runs once to create an observable store. A quick example would be:
|
|
134
139
|
|
|
135
140
|
```javascript
|
|
@@ -164,6 +169,8 @@ _Note: using `useLocalStore` is mostly beneficial for really complex local state
|
|
|
164
169
|
|
|
165
170
|
### `useAsObservableSource` hook
|
|
166
171
|
|
|
172
|
+
[User guide](https://mobx-react.js.org/state-outsourcing)
|
|
173
|
+
|
|
167
174
|
The `useAsObservableSource` hook can be used to turn any set of values into an observable object that has a stable reference (the same object is returned every time from the hook).
|
|
168
175
|
The goal of this hook is to trap React primitives such as props or state (which are not observable themselves) into a local, observable object
|
|
169
176
|
so that the `store` or any reactions created by the component can safely refer to it, and get notified if any of the values change.
|
|
@@ -255,6 +262,8 @@ Use `import { PropTypes } from "mobx-react"` to import them, then use for exampl
|
|
|
255
262
|
|
|
256
263
|
### `Provider` and `inject`
|
|
257
264
|
|
|
265
|
+
See also [the migration guide to React Hooks](https://mobx-react.js.org/recipes-migration).
|
|
266
|
+
|
|
258
267
|
_Note: usually there is no need anymore to use `Provider` / `inject` in new code bases; most of its features are now covered by `React.createContext`._
|
|
259
268
|
|
|
260
269
|
`Provider` is a component that can pass stores (or other stuff) using React's context mechanism to child components.
|
|
@@ -299,10 +308,13 @@ Notes:
|
|
|
299
308
|
|
|
300
309
|
- It is possible to read the stores provided by `Provider` using `React.useContext`, by using the `MobXProviderContext` context that can be imported from `mobx-react`.
|
|
301
310
|
- If a component asks for a store and receives a store via a property with the same name, the property takes precedence. Use this to your advantage when testing!
|
|
302
|
-
- Values provided through `Provider` should be final, to avoid issues like mentioned in [React #2517](https://github.com/facebook/react/issues/2517) and [React #3973](https://github.com/facebook/react/pull/3973), where optimizations might stop the propagation of new context. Instead, make sure that if you put things in `context` that might change over time, that they are `@observable` or provide some other means to listen to changes, like callbacks. However, if your stores will change over time, like an observable value of another store, MobX will warn you. To suppress that warning explicitly, you can use `suppressChangedStoreWarning={true}` as a prop at your own risk.
|
|
303
311
|
- When using both `@inject` and `@observer`, make sure to apply them in the correct order: `observer` should be the inner decorator, `inject` the outer. There might be additional decorators in between.
|
|
304
312
|
- The original component wrapped by `inject` is available as the `wrappedComponent` property of the created higher order component.
|
|
305
313
|
|
|
314
|
+
#### "The set of provided stores has changed" error
|
|
315
|
+
Values provided through `Provider` should be final. Make sure that if you put things in `context` that might change over time, that they are `@observable` or provide some other means to listen to changes, like callbacks. However, if your stores will change over time, like an observable value of another store, MobX will throw an error.
|
|
316
|
+
This restriction exists mainly for legacy reasons. If you have a scenario where you need to modify the set of stores, please leave a comment about it in this issue https://github.com/mobxjs/mobx-react/issues/745. Or a preferred way is to [use React Context](https://mobx-react.js.org/recipes-context) directly which does not have this restriction.
|
|
317
|
+
|
|
306
318
|
#### Inject as function
|
|
307
319
|
|
|
308
320
|
The above example in ES5 would start like:
|
|
@@ -310,9 +322,9 @@ The above example in ES5 would start like:
|
|
|
310
322
|
```javascript
|
|
311
323
|
var Button = inject("color")(
|
|
312
324
|
observer(
|
|
313
|
-
|
|
325
|
+
class Button extends Component {
|
|
314
326
|
/* ... etc ... */
|
|
315
|
-
}
|
|
327
|
+
}
|
|
316
328
|
)
|
|
317
329
|
)
|
|
318
330
|
```
|
|
@@ -429,6 +441,8 @@ public render() {
|
|
|
429
441
|
}
|
|
430
442
|
```
|
|
431
443
|
|
|
444
|
+
By [migrating to React Hooks](https://mobx-react.js.org/recipes-migration) you can avoid problems with TypeScript.
|
|
445
|
+
|
|
432
446
|
#### Testing store injection
|
|
433
447
|
|
|
434
448
|
It is allowed to pass any declared store in directly as a property as well. This makes it easy to set up individual component tests without a provider.
|
package/dist/mobx-react.d.ts
CHANGED
|
@@ -3,7 +3,13 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import * as React from "react"
|
|
5
5
|
|
|
6
|
-
export {
|
|
6
|
+
export {
|
|
7
|
+
useObserver,
|
|
8
|
+
useAsObservableSource,
|
|
9
|
+
useLocalStore,
|
|
10
|
+
IObserverOptions,
|
|
11
|
+
Observer
|
|
12
|
+
} from "mobx-react-lite"
|
|
7
13
|
|
|
8
14
|
export type IReactComponent<P = any> =
|
|
9
15
|
| React.StatelessComponent<P>
|
package/dist/mobx-react.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var e,r=require("react-dom"),t=require("mobx-react-lite"),n=require("react"),o=(e=n)&&"object"==typeof e&&"default"in e?e.default:e,i=require("mobx"),a=0,s={};function c(e){return s[e]||(s[e]=function(e){if("function"==typeof Symbol)return Symbol(e);var r="__$mobx-react "+e+" ("+a+")";return a++,r}(e)),s[e]}function u(e,r){if(p(e,r))return!0;if("object"!=typeof e||null===e||"object"!=typeof r||null===r)return!1;var t=Object.keys(e),n=Object.keys(r);if(t.length!==n.length)return!1;for(var o=0;o<t.length;o++)if(!hasOwnProperty.call(r,t[o])||!p(e[t[o]],r[t[o]]))return!1;return!0}function p(e,r){return e===r?0!==e||1/e==1/r:e!=e&&r!=r}var f={$$typeof:1,render:1,compare:1,type:1,childContextTypes:1,contextType:1,contextTypes:1,defaultProps:1,getDefaultProps:1,getDerivedStateFromError:1,getDerivedStateFromProps:1,mixins:1,propTypes:1};function l(e,r,t){Object.hasOwnProperty.call(e,r)?e[r]=t:Object.defineProperty(e,r,{enumerable:!1,configurable:!0,writable:!0,value:t})}var d=c("patchMixins"),b=c("patchedDefinition");function y(e,r){for(var t=this,n=[],o=arguments.length-2;o-- >0;)n[o]=arguments[o+2];r.locks++;try{var i;return null!=e&&(i=e.apply(this,n)),i}finally{r.locks--,0===r.locks&&r.methods.forEach(function(e){e.apply(t,n)})}}function h(e,r){return function(){for(var t=[],n=arguments.length;n--;)t[n]=arguments[n];y.call.apply(y,[this,e,r].concat(t))}}function v(e,r,t){var n=function(e,r){var t=e[d]=e[d]||{},n=t[r]=t[r]||{};return n.locks=n.locks||0,n.methods=n.methods||[],n}(e,r);n.methods.indexOf(t)<0&&n.methods.push(t);var o=Object.getOwnPropertyDescriptor(e,r);if(!o||!o[b]){var i=function e(r,t,n,o,i){var a,s=h(i,o);return(a={})[b]=!0,a.get=function(){return s},a.set=function(i){if(this===r)s=h(i,o);else{var a=e(this,t,n,o,i);Object.defineProperty(this,t,a)}},a.configurable=!0,a.enumerable=n,a}(e,r,o?o.enumerable:void 0,n,e[r]);Object.defineProperty(e,r,i)}}var m=i.$mobx||"$mobx",g=c("isUnmounted"),O=c("skipRender"),w=c("isForcingUpdate");function j(e,r){return t.isUsingStaticRendering()&&console.warn("[mobx-react] It seems that a re-rendering of a React component is triggered while in static (server-side) mode. Please make sure components are rendered only once server-side."),this.state!==r||!u(this.props,e)}function x(e,r){var t=c("reactProp_"+r+"_valueHolder"),n=c("reactProp_"+r+"_atomHolder");function o(){return this[n]||l(this,n,i.createAtom("reactive "+r)),this[n]}Object.defineProperty(e,r,{configurable:!0,enumerable:!0,get:function(){return o.call(this).reportObserved(),this[t]},set:function(e){this[w]||u(this[t],e)?l(this,t,e):(l(this,t,e),l(this,O,!0),o.call(this).reportChanged(),l(this,O,!1))}})}var P="function"==typeof n.forwardRef&&n.forwardRef(function(e,r){}).$$typeof;function C(e){if(!0===e.isMobxInjector&&console.warn("Mobx observer: You are trying to use 'observer' on a component that already has 'inject'. Please apply 'observer' before applying 'inject'"),P&&e.$$typeof===P){var r=e.render;if("function"!=typeof r)throw new Error("render property of ForwardRef was not a function");return n.forwardRef(function(){var e=arguments;return o.createElement(t.Observer,null,function(){return r.apply(void 0,e)})})}return"function"!=typeof e||e.prototype&&e.prototype.render||e.isReactClass||n.Component.isPrototypeOf(e)?function(e){var r=e.prototype;if(r.componentWillReact)throw new Error("The componentWillReact life-cycle event is no longer supported");if(e.__proto__!==n.PureComponent)if(r.shouldComponentUpdate){if(r.shouldComponentUpdate!==j)throw new Error("It is not allowed to use shouldComponentUpdate in observer based components.")}else r.shouldComponentUpdate=j;x(r,"props"),x(r,"state");var o=r.render;return r.render=function(){return function(e){var r=this;if(!0===t.isUsingStaticRendering())return e.call(this);l(this,O,!1),l(this,w,!1);var o=this.displayName||this.name||this.constructor&&(this.constructor.displayName||this.constructor.name)||"<component>",a=e.bind(this),s=!1,c=new i.Reaction(o+".render()",function(){if(!s&&(s=!0,!0!==r[g])){var e=!0;try{l(r,w,!0),r[O]||n.Component.prototype.forceUpdate.call(r),e=!1}finally{l(r,w,!1),e&&c.dispose()}}});function u(){s=!1;var e=void 0,r=void 0;if(c.track(function(){try{r=i._allowStateChanges(!1,a)}catch(r){e=r}}),e)throw e;return r}return c.reactComponent=this,u[m]=c,this.render=u,u.call(this)}.call(this,o)},v(r,"componentWillUnmount",function(){!0!==t.isUsingStaticRendering()&&(this.render[m]&&this.render[m].dispose(),this[g]=!0)}),e}(e):t.observer(e)}var E={children:!0,key:!0,ref:!0},R=n.createContext({}),S=function(e){function r(r,t){e.call(this,r,t),this.state=Object.assign({},t,_(r))}return e&&(r.__proto__=e),(r.prototype=Object.create(e&&e.prototype)).constructor=r,r.prototype.render=function(){return n.createElement(R.Provider,{value:this.state},n.Children.only(this.props.children))},r.getDerivedStateFromProps=function(e,r){if("production"!==process.env.NODE_ENV&&!u(r,Object.assign({},r,_(e))))throw new Error("MobX Provider: The set of provided stores has changed. Please avoid changing stores as the change might not propagate to all children");return r},r}(n.Component);function _(e){var r={};if(!e)return r;for(var t in e)k(t)&&(r[t]=e[t]);return r}function k(e){return!E[e]&&"suppressChangedStoreWarning"!==e}function U(e,r,t,i){var a=function(e,r){var t=e.displayName||e.name||e.constructor&&e.constructor.name||"Component";return r?"inject-with-"+r+"("+t+")":"inject("+t+")"}(r,t),s=function(t){function o(){t.apply(this,arguments)}return t&&(o.__proto__=t),(o.prototype=Object.create(t&&t.prototype)).constructor=o,o.prototype.render=function(){var t=this.props,o=t.forwardRef,i=function(e,r){var t={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&-1===r.indexOf(n)&&(t[n]=e[n]);return t}(t,["forwardRef"]);return Object.assign(i,e(this.context||{},i)||{}),o&&!function(e){return!(e.prototype&&e.prototype.render)}(r)&&(i.ref=this.props.forwardRef),n.createElement(r,i)},o}(n.Component);s.contextType=R,i&&(s=C(s)),s.isMobxInjector=!0;var c,u,p,l=o.forwardRef(function(e,r){return o.createElement(s,Object.assign({},e,{forwardRef:r}))});return c=r,u=l,p=Object.getOwnPropertyNames(Object.getPrototypeOf(c)),Object.getOwnPropertyNames(c).forEach(function(e){f[e]||-1!==p.indexOf(e)||Object.defineProperty(u,e,Object.getOwnPropertyDescriptor(c,e))}),l.wrappedComponent=r,l.displayName=a,l}S.contextType=R;var A=c("disposeOnUnmount");function T(){var e=this;this[A]&&(this[A].forEach(function(r){var t="string"==typeof r?e[r]:r;null!=t&&(Array.isArray(t)?t.map(function(e){return e()}):t())}),this[A]=[])}function M(e){function r(r,t,n,o,a,s){for(var c=[],u=arguments.length-6;u-- >0;)c[u]=arguments[u+6];return i.untracked(function(){return o=o||"<<anonymous>>",s=s||n,null==t[n]?r?new Error("The "+a+" `"+s+"` is marked as required in `"+o+"`, but its value is `"+(null===t[n]?"null":"undefined")+"`."):null:e.apply(void 0,[t,n,o,a,s].concat(c))})}var t=r.bind(null,!1);return t.isRequired=r.bind(null,!0),t}function D(e){var r=typeof e;return Array.isArray(e)?"array":e instanceof RegExp?"object":function(e,r){return"symbol"===e||"Symbol"===r["@@toStringTag"]||"function"==typeof Symbol&&r instanceof Symbol}(r,e)?"symbol":r}function $(e,r){return M(function(t,n,o,a,s){return i.untracked(function(){if(e&&D(t[n])===r.toLowerCase())return null;var a;switch(r){case"Array":a=i.isObservableArray;break;case"Object":a=i.isObservableObject;break;case"Map":a=i.isObservableMap;break;default:throw new Error("Unexpected mobxType: "+r)}var c=t[n];if(!a(c)){var u=function(e){var r=D(e);if("object"===r){if(e instanceof Date)return"date";if(e instanceof RegExp)return"regexp"}return r}(c),p=e?" or javascript `"+r.toLowerCase()+"`":"";return new Error("Invalid prop `"+s+"` of type `"+u+"` supplied to `"+o+"`, expected `mobx.Observable"+r+"`"+p+".")}return null})})}function q(e,r){return M(function(t,n,o,a,s){for(var c=[],u=arguments.length-5;u-- >0;)c[u]=arguments[u+5];return i.untracked(function(){if("function"!=typeof r)return new Error("Property `"+s+"` of component `"+o+"` has invalid PropType notation.");var i=$(e,"Array")(t,n,o);if(i instanceof Error)return i;for(var u=t[n],p=0;p<u.length;p++)if((i=r.apply(void 0,[u,p,o,a,s+"["+p+"]"].concat(c)))instanceof Error)return i;return null})})}var N={observableArray:$(!1,"Array"),observableArrayOf:q.bind(null,!1),observableMap:$(!1,"Map"),observableObject:$(!1,"Object"),arrayOrObservableArray:$(!0,"Array"),arrayOrObservableArrayOf:q.bind(null,!0),objectOrObservableObject:$(!0,"Object")};if(!n.Component)throw new Error("mobx-react requires React to be available");if(!i.observable)throw new Error("mobx-react requires mobx to be available");"function"==typeof r.unstable_batchedUpdates&&i.configure({reactionScheduler:r.unstable_batchedUpdates}),exports.Observer=t.Observer,exports.useAsObservableSource=t.useAsObservableSource,exports.useLocalStore=t.useLocalStore,exports.isUsingStaticRendering=t.isUsingStaticRendering,exports.useStaticRendering=t.useStaticRendering,exports.observer=C,exports.Provider=S,exports.MobXProviderContext=R,exports.inject=function(){for(var e,r=[],t=arguments.length;t--;)r[t]=arguments[t];return"function"==typeof arguments[0]?(e=arguments[0],function(r){return U(e,r,e.name,!0)}):function(e){return U(function(e){return function(r,t){return e.forEach(function(e){if(!(e in t)){if(!(e in r))throw new Error("MobX injector: Store '"+e+"' is not available! Make sure it is provided by some Provider");t[e]=r[e]}}),t}}(r),e,r.join("-"),!1)}},exports.disposeOnUnmount=function e(r,t){if(Array.isArray(t))return t.map(function(t){return e(r,t)});var o=Object.getPrototypeOf(r).constructor||Object.getPrototypeOf(r.constructor),i=Object.getPrototypeOf(r.constructor);if(o!==n.Component&&o!==n.PureComponent&&i!==n.Component&&i!==n.PureComponent)throw new Error("[mobx-react] disposeOnUnmount only supports direct subclasses of React.Component or React.PureComponent.");if("string"!=typeof t&&"function"!=typeof t&&!Array.isArray(t))throw new Error("[mobx-react] disposeOnUnmount only works if the parameter is either a property key or a function.");var a=!!r[A];return(r[A]||(r[A]=[])).push(t),a||v(r,"componentWillUnmount",T),"string"!=typeof t?t:void 0},exports.PropTypes=N;
|
|
1
|
+
var e,r=require("react-dom"),t=require("mobx-react-lite"),n=require("react"),o=(e=n)&&"object"==typeof e&&"default"in e?e.default:e,i=require("mobx"),a=0,s={};function c(e){return s[e]||(s[e]=function(e){if("function"==typeof Symbol)return Symbol(e);var r="__$mobx-react "+e+" ("+a+")";return a++,r}(e)),s[e]}function u(e,r){if(f(e,r))return!0;if("object"!=typeof e||null===e||"object"!=typeof r||null===r)return!1;var t=Object.keys(e),n=Object.keys(r);if(t.length!==n.length)return!1;for(var o=0;o<t.length;o++)if(!hasOwnProperty.call(r,t[o])||!f(e[t[o]],r[t[o]]))return!1;return!0}function f(e,r){return e===r?0!==e||1/e==1/r:e!=e&&r!=r}var p={$$typeof:1,render:1,compare:1,type:1,childContextTypes:1,contextType:1,contextTypes:1,defaultProps:1,getDefaultProps:1,getDerivedStateFromError:1,getDerivedStateFromProps:1,mixins:1,propTypes:1};function l(e,r,t){Object.hasOwnProperty.call(e,r)?e[r]=t:Object.defineProperty(e,r,{enumerable:!1,configurable:!0,writable:!0,value:t})}var b=c("patchMixins"),d=c("patchedDefinition");function y(e,r){for(var t=this,n=[],o=arguments.length-2;o-- >0;)n[o]=arguments[o+2];r.locks++;try{var i;return null!=e&&(i=e.apply(this,n)),i}finally{r.locks--,0===r.locks&&r.methods.forEach(function(e){e.apply(t,n)})}}function m(e,r){return function(){for(var t=[],n=arguments.length;n--;)t[n]=arguments[n];y.call.apply(y,[this,e,r].concat(t))}}function v(e,r,t){var n=function(e,r){var t=e[b]=e[b]||{},n=t[r]=t[r]||{};return n.locks=n.locks||0,n.methods=n.methods||[],n}(e,r);n.methods.indexOf(t)<0&&n.methods.push(t);var o=Object.getOwnPropertyDescriptor(e,r);if(!o||!o[d]){var i=function e(r,t,n,o,i){var a,s=m(i,o);return(a={})[d]=!0,a.get=function(){return s},a.set=function(i){if(this===r)s=m(i,o);else{var a=e(this,t,n,o,i);Object.defineProperty(this,t,a)}},a.configurable=!0,a.enumerable=n,a}(e,r,o?o.enumerable:void 0,n,e[r]);Object.defineProperty(e,r,i)}}var h=i.$mobx||"$mobx",O=c("isUnmounted"),g=c("skipRender"),w=c("isForcingUpdate");function x(e,r){return t.isUsingStaticRendering()&&console.warn("[mobx-react] It seems that a re-rendering of a React component is triggered while in static (server-side) mode. Please make sure components are rendered only once server-side."),this.state!==r||!u(this.props,e)}function j(e,r){var t=c("reactProp_"+r+"_valueHolder"),n=c("reactProp_"+r+"_atomHolder");function o(){return this[n]||l(this,n,i.createAtom("reactive "+r)),this[n]}Object.defineProperty(e,r,{configurable:!0,enumerable:!0,get:function(){return o.call(this).reportObserved(),this[t]},set:function(e){this[w]||u(this[t],e)?l(this,t,e):(l(this,t,e),l(this,g,!0),o.call(this).reportChanged(),l(this,g,!1))}})}var P="function"==typeof Symbol&&Symbol.for,E=P?Symbol.for("react.forward_ref"):"function"==typeof n.forwardRef&&n.forwardRef(function(){}).$$typeof,C=P?Symbol.for("react.memo"):"function"==typeof n.memo&&n.memo(function(){}).$$typeof;function R(e){if(!0===e.isMobxInjector&&console.warn("Mobx observer: You are trying to use 'observer' on a component that already has 'inject'. Please apply 'observer' before applying 'inject'"),C&&e.$$typeof===C)throw new Error("Mobx observer: You are trying to use 'observer' on function component wrapped to either another observer or 'React.memo'. The observer already applies 'React.memo' for you.");if(E&&e.$$typeof===E){var r=e.render;if("function"!=typeof r)throw new Error("render property of ForwardRef was not a function");return n.forwardRef(function(){var e=arguments;return o.createElement(t.Observer,null,function(){return r.apply(void 0,e)})})}return"function"!=typeof e||e.prototype&&e.prototype.render||e.isReactClass||Object.prototype.isPrototypeOf.call(n.Component,e)?function(e){var r=e.prototype;if(r.componentWillReact)throw new Error("The componentWillReact life-cycle event is no longer supported");if(e.__proto__!==n.PureComponent)if(r.shouldComponentUpdate){if(r.shouldComponentUpdate!==x)throw new Error("It is not allowed to use shouldComponentUpdate in observer based components.")}else r.shouldComponentUpdate=x;j(r,"props"),j(r,"state");var o=r.render;return r.render=function(){return function(e){var r=this;if(!0===t.isUsingStaticRendering())return e.call(this);l(this,g,!1),l(this,w,!1);var o=this.displayName||this.name||this.constructor&&(this.constructor.displayName||this.constructor.name)||"<component>",a=e.bind(this),s=!1,c=new i.Reaction(o+".render()",function(){if(!s&&(s=!0,!0!==r[O])){var e=!0;try{l(r,w,!0),r[g]||n.Component.prototype.forceUpdate.call(r),e=!1}finally{l(r,w,!1),e&&c.dispose()}}});function u(){s=!1;var e=void 0,r=void 0;if(c.track(function(){try{r=i._allowStateChanges(!1,a)}catch(r){e=r}}),e)throw e;return r}return c.reactComponent=this,u[h]=c,this.render=u,u.call(this)}.call(this,o)},v(r,"componentWillUnmount",function(){!0!==t.isUsingStaticRendering()&&(this.render[h]&&this.render[h].dispose(),this[O]=!0)}),e}(e):t.observer(e)}var S=o.createContext({});function U(e){var r=e.children,t=function(e,r){var t={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&-1===r.indexOf(n)&&(t[n]=e[n]);return t}(e,["children"]),n=o.useContext(S),i=o.useRef(Object.assign({},n,t)).current;if("production"!==process.env.NODE_ENV&&!u(i,Object.assign({},i,t)))throw new Error("MobX Provider: The set of provided stores has changed. See: https://github.com/mobxjs/mobx-react#the-set-of-provided-stores-has-changed-error.");return o.createElement(S.Provider,{value:i},r)}function k(e,r,t,i){var a,s,c,u=o.forwardRef(function(t,i){var a=Object.assign({},t),s=o.useContext(S);return Object.assign(a,e(s||{},a)||{}),i&&(a.ref=i),n.createElement(r,a)});return i&&(u=R(u)),u.isMobxInjector=!0,a=r,s=u,c=Object.getOwnPropertyNames(Object.getPrototypeOf(a)),Object.getOwnPropertyNames(a).forEach(function(e){p[e]||-1!==c.indexOf(e)||Object.defineProperty(s,e,Object.getOwnPropertyDescriptor(a,e))}),u.wrappedComponent=r,u.displayName=function(e,r){var t=e.displayName||e.name||e.constructor&&e.constructor.name||"Component";return r?"inject-with-"+r+"("+t+")":"inject("+t+")"}(r,t),u}U.displayName="MobXProvider";var A=c("disposeOnUnmountProto"),_=c("disposeOnUnmountInst");function M(){var e=this;(this[A]||[]).concat(this[_]||[]).forEach(function(r){var t="string"==typeof r?e[r]:r;null!=t&&(Array.isArray(t)?t.map(function(e){return e()}):t())})}function $(e){function r(r,t,n,o,a,s){for(var c=[],u=arguments.length-6;u-- >0;)c[u]=arguments[u+6];return i.untracked(function(){return o=o||"<<anonymous>>",s=s||n,null==t[n]?r?new Error("The "+a+" `"+s+"` is marked as required in `"+o+"`, but its value is `"+(null===t[n]?"null":"undefined")+"`."):null:e.apply(void 0,[t,n,o,a,s].concat(c))})}var t=r.bind(null,!1);return t.isRequired=r.bind(null,!0),t}function T(e){var r=typeof e;return Array.isArray(e)?"array":e instanceof RegExp?"object":function(e,r){return"symbol"===e||"Symbol"===r["@@toStringTag"]||"function"==typeof Symbol&&r instanceof Symbol}(r,e)?"symbol":r}function N(e,r){return $(function(t,n,o,a,s){return i.untracked(function(){if(e&&T(t[n])===r.toLowerCase())return null;var a;switch(r){case"Array":a=i.isObservableArray;break;case"Object":a=i.isObservableObject;break;case"Map":a=i.isObservableMap;break;default:throw new Error("Unexpected mobxType: "+r)}var c=t[n];if(!a(c)){var u=function(e){var r=T(e);if("object"===r){if(e instanceof Date)return"date";if(e instanceof RegExp)return"regexp"}return r}(c),f=e?" or javascript `"+r.toLowerCase()+"`":"";return new Error("Invalid prop `"+s+"` of type `"+u+"` supplied to `"+o+"`, expected `mobx.Observable"+r+"`"+f+".")}return null})})}function q(e,r){return $(function(t,n,o,a,s){for(var c=[],u=arguments.length-5;u-- >0;)c[u]=arguments[u+5];return i.untracked(function(){if("function"!=typeof r)return new Error("Property `"+s+"` of component `"+o+"` has invalid PropType notation.");var i=N(e,"Array")(t,n,o);if(i instanceof Error)return i;for(var u=t[n],f=0;f<u.length;f++)if((i=r.apply(void 0,[u,f,o,a,s+"["+f+"]"].concat(c)))instanceof Error)return i;return null})})}var D={observableArray:N(!1,"Array"),observableArrayOf:q.bind(null,!1),observableMap:N(!1,"Map"),observableObject:N(!1,"Object"),arrayOrObservableArray:N(!0,"Array"),arrayOrObservableArrayOf:q.bind(null,!0),objectOrObservableObject:N(!0,"Object")};if(!n.Component)throw new Error("mobx-react requires React to be available");if(!i.observable)throw new Error("mobx-react requires mobx to be available");"function"==typeof r.unstable_batchedUpdates&&i.configure({reactionScheduler:r.unstable_batchedUpdates}),exports.Observer=t.Observer,exports.useObserver=t.useObserver,exports.useAsObservableSource=t.useAsObservableSource,exports.useLocalStore=t.useLocalStore,exports.isUsingStaticRendering=t.isUsingStaticRendering,exports.useStaticRendering=t.useStaticRendering,exports.observer=R,exports.Provider=U,exports.MobXProviderContext=S,exports.inject=function(){for(var e,r=[],t=arguments.length;t--;)r[t]=arguments[t];return"function"==typeof arguments[0]?(e=arguments[0],function(r){return k(e,r,e.name,!0)}):function(e){return k(function(e){return function(r,t){return e.forEach(function(e){if(!(e in t)){if(!(e in r))throw new Error("MobX injector: Store '"+e+"' is not available! Make sure it is provided by some Provider");t[e]=r[e]}}),t}}(r),e,r.join("-"),!1)}},exports.disposeOnUnmount=function e(r,t){if(Array.isArray(t))return t.map(function(t){return e(r,t)});var o=Object.getPrototypeOf(r).constructor||Object.getPrototypeOf(r.constructor),i=Object.getPrototypeOf(r.constructor);if(o!==n.Component&&o!==n.PureComponent&&i!==n.Component&&i!==n.PureComponent)throw new Error("[mobx-react] disposeOnUnmount only supports direct subclasses of React.Component or React.PureComponent.");if("string"!=typeof t&&"function"!=typeof t&&!Array.isArray(t))throw new Error("[mobx-react] disposeOnUnmount only works if the parameter is either a property key or a function.");var a=!!r[A]||!!r[_];return("string"==typeof t?r[A]||(r[A]=[]):r[_]||(r[_]=[])).push(t),a||v(r,"componentWillUnmount",M),"string"!=typeof t?t:void 0},exports.PropTypes=D;
|
|
2
2
|
//# sourceMappingURL=mobx-react.js.map
|
package/dist/mobx-react.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mobx-react.js","sources":["../src/utils/utils.js","../src/observerClass.js","../src/observer.js","../src/Provider.js","../src/inject.js","../src/disposeOnUnmount.js","../src/propTypes.js","../src/index.js"],"sourcesContent":["export function isStateless(component) {\n // `function() {}` has prototype, but `() => {}` doesn't\n // `() => {}` via Babel has prototype too.\n return !(component.prototype && component.prototype.render)\n}\n\nlet symbolId = 0\nfunction createSymbol(name) {\n if (typeof Symbol === \"function\") {\n return Symbol(name)\n }\n const symbol = `__$mobx-react ${name} (${symbolId})`\n symbolId++\n return symbol\n}\n\nconst createdSymbols = {}\nexport function newSymbol(name) {\n if (!createdSymbols[name]) {\n createdSymbols[name] = createSymbol(name)\n }\n return createdSymbols[name]\n}\n\nexport function shallowEqual(objA, objB) {\n //From: https://github.com/facebook/fbjs/blob/c69904a511b900266935168223063dd8772dfc40/packages/fbjs/src/core/shallowEqual.js\n if (is(objA, objB)) return true\n if (typeof objA !== \"object\" || objA === null || typeof objB !== \"object\" || objB === null) {\n return false\n }\n const keysA = Object.keys(objA)\n const keysB = Object.keys(objB)\n if (keysA.length !== keysB.length) return false\n for (let i = 0; i < keysA.length; i++) {\n if (!hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n return false\n }\n }\n return true\n}\n\nfunction is(x, y) {\n // From: https://github.com/facebook/fbjs/blob/c69904a511b900266935168223063dd8772dfc40/packages/fbjs/src/core/shallowEqual.js\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y\n } else {\n return x !== x && y !== y\n }\n}\n\n// based on https://github.com/mridgway/hoist-non-react-statics/blob/master/src/index.js\nconst hoistBlackList = {\n $$typeof: 1,\n render: 1,\n compare: 1,\n type: 1,\n childContextTypes: 1,\n contextType: 1,\n contextTypes: 1,\n defaultProps: 1,\n getDefaultProps: 1,\n getDerivedStateFromError: 1,\n getDerivedStateFromProps: 1,\n mixins: 1,\n propTypes: 1\n}\n\nexport function copyStaticProperties(base, target) {\n const protoProps = Object.getOwnPropertyNames(Object.getPrototypeOf(base))\n Object.getOwnPropertyNames(base).forEach(key => {\n if (!hoistBlackList[key] && protoProps.indexOf(key) === -1) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(base, key))\n }\n })\n}\n\n/**\n * Helper to set `prop` to `this` as non-enumerable (hidden prop)\n * @param target\n * @param prop\n * @param value\n */\nexport function setHiddenProp(target, prop, value) {\n if (!Object.hasOwnProperty.call(target, prop)) {\n Object.defineProperty(target, prop, {\n enumerable: false,\n configurable: true,\n writable: true,\n value\n })\n } else {\n target[prop] = value\n }\n}\n\n/**\n * Utilities for patching componentWillUnmount, to make sure @disposeOnUnmount works correctly icm with user defined hooks\n * and the handler provided by mobx-react\n */\nconst mobxMixins = newSymbol(\"patchMixins\")\nconst mobxPatchedDefinition = newSymbol(\"patchedDefinition\")\n\nfunction getMixins(target, methodName) {\n const mixins = (target[mobxMixins] = target[mobxMixins] || {})\n const methodMixins = (mixins[methodName] = mixins[methodName] || {})\n methodMixins.locks = methodMixins.locks || 0\n methodMixins.methods = methodMixins.methods || []\n return methodMixins\n}\n\nfunction wrapper(realMethod, mixins, ...args) {\n // locks are used to ensure that mixins are invoked only once per invocation, even on recursive calls\n mixins.locks++\n\n try {\n let retVal\n if (realMethod !== undefined && realMethod !== null) {\n retVal = realMethod.apply(this, args)\n }\n\n return retVal\n } finally {\n mixins.locks--\n if (mixins.locks === 0) {\n mixins.methods.forEach(mx => {\n mx.apply(this, args)\n })\n }\n }\n}\n\nfunction wrapFunction(realMethod, mixins) {\n const fn = function(...args) {\n wrapper.call(this, realMethod, mixins, ...args)\n }\n return fn\n}\n\nexport function patch(target, methodName, mixinMethod) {\n const mixins = getMixins(target, methodName)\n\n if (mixins.methods.indexOf(mixinMethod) < 0) {\n mixins.methods.push(mixinMethod)\n }\n\n const oldDefinition = Object.getOwnPropertyDescriptor(target, methodName)\n if (oldDefinition && oldDefinition[mobxPatchedDefinition]) {\n // already patched definition, do not repatch\n return\n }\n\n const originalMethod = target[methodName]\n const newDefinition = createDefinition(\n target,\n methodName,\n oldDefinition ? oldDefinition.enumerable : undefined,\n mixins,\n originalMethod\n )\n\n Object.defineProperty(target, methodName, newDefinition)\n}\n\nfunction createDefinition(target, methodName, enumerable, mixins, originalMethod) {\n let wrappedFunc = wrapFunction(originalMethod, mixins)\n\n return {\n [mobxPatchedDefinition]: true,\n get: function() {\n return wrappedFunc\n },\n set: function(value) {\n if (this === target) {\n wrappedFunc = wrapFunction(value, mixins)\n } else {\n // when it is an instance of the prototype/a child prototype patch that particular case again separately\n // since we need to store separate values depending on wether it is the actual instance, the prototype, etc\n // e.g. the method for super might not be the same as the method for the prototype which might be not the same\n // as the method for the instance\n const newDefinition = createDefinition(this, methodName, enumerable, mixins, value)\n Object.defineProperty(this, methodName, newDefinition)\n }\n },\n configurable: true,\n enumerable: enumerable\n }\n}\n","import { PureComponent, Component } from \"react\"\nimport { createAtom, _allowStateChanges, Reaction, $mobx } from \"mobx\"\nimport { isUsingStaticRendering } from \"mobx-react-lite\"\n\nimport { newSymbol, shallowEqual, setHiddenProp, patch } from \"./utils/utils\"\n\nconst mobxAdminProperty = $mobx || \"$mobx\"\nconst mobxIsUnmounted = newSymbol(\"isUnmounted\")\nconst skipRenderKey = newSymbol(\"skipRender\")\nconst isForcingUpdateKey = newSymbol(\"isForcingUpdate\")\n\nexport function makeClassComponentObserver(componentClass) {\n const target = componentClass.prototype\n if (target.componentWillReact)\n throw new Error(\"The componentWillReact life-cycle event is no longer supported\")\n if (componentClass.__proto__ !== PureComponent) {\n if (!target.shouldComponentUpdate) target.shouldComponentUpdate = observerSCU\n else if (target.shouldComponentUpdate !== observerSCU)\n // n.b. unequal check, instead of existence check, as @observer might be on superclass as well\n throw new Error(\n \"It is not allowed to use shouldComponentUpdate in observer based components.\"\n )\n }\n\n // this.props and this.state are made observable, just to make sure @computed fields that\n // are defined inside the component, and which rely on state or props, re-compute if state or props change\n // (otherwise the computed wouldn't update and become stale on props change, since props are not observable)\n // However, this solution is not without it's own problems: https://github.com/mobxjs/mobx-react/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3Aobservable-props-or-not+\n makeObservableProp(target, \"props\")\n makeObservableProp(target, \"state\")\n\n const baseRender = target.render\n target.render = function() {\n return makeComponentReactive.call(this, baseRender)\n }\n patch(target, \"componentWillUnmount\", function() {\n if (isUsingStaticRendering() === true) return\n this.render[mobxAdminProperty] && this.render[mobxAdminProperty].dispose()\n this[mobxIsUnmounted] = true\n })\n return componentClass\n}\n\nfunction makeComponentReactive(render) {\n if (isUsingStaticRendering() === true) return render.call(this)\n\n /**\n * If props are shallowly modified, react will render anyway,\n * so atom.reportChanged() should not result in yet another re-render\n */\n setHiddenProp(this, skipRenderKey, false)\n /**\n * forceUpdate will re-assign this.props. We don't want that to cause a loop,\n * so detect these changes\n */\n setHiddenProp(this, isForcingUpdateKey, false)\n\n // Generate friendly name for debugging\n const initialName =\n this.displayName ||\n this.name ||\n (this.constructor && (this.constructor.displayName || this.constructor.name)) ||\n \"<component>\"\n const baseRender = render.bind(this)\n\n let isRenderingPending = false\n\n const reaction = new Reaction(`${initialName}.render()`, () => {\n if (!isRenderingPending) {\n // N.B. Getting here *before mounting* means that a component constructor has side effects (see the relevant test in misc.js)\n // This unidiomatic React usage but React will correctly warn about this so we continue as usual\n // See #85 / Pull #44\n isRenderingPending = true\n if (this[mobxIsUnmounted] !== true) {\n let hasError = true\n try {\n setHiddenProp(this, isForcingUpdateKey, true)\n if (!this[skipRenderKey]) Component.prototype.forceUpdate.call(this)\n hasError = false\n } finally {\n setHiddenProp(this, isForcingUpdateKey, false)\n if (hasError) reaction.dispose()\n }\n }\n }\n })\n reaction.reactComponent = this\n reactiveRender[mobxAdminProperty] = reaction\n this.render = reactiveRender\n\n function reactiveRender() {\n isRenderingPending = false\n let exception = undefined\n let rendering = undefined\n reaction.track(() => {\n try {\n rendering = _allowStateChanges(false, baseRender)\n } catch (e) {\n exception = e\n }\n })\n if (exception) {\n throw exception\n }\n return rendering\n }\n\n return reactiveRender.call(this)\n}\n\nfunction observerSCU(nextProps, nextState) {\n if (isUsingStaticRendering()) {\n console.warn(\n \"[mobx-react] It seems that a re-rendering of a React component is triggered while in static (server-side) mode. Please make sure components are rendered only once server-side.\"\n )\n }\n // update on any state changes (as is the default)\n if (this.state !== nextState) {\n return true\n }\n // update if props are shallowly not equal, inspired by PureRenderMixin\n // we could return just 'false' here, and avoid the `skipRender` checks etc\n // however, it is nicer if lifecycle events are triggered like usually,\n // so we return true here if props are shallowly modified.\n return !shallowEqual(this.props, nextProps)\n}\n\nfunction makeObservableProp(target, propName) {\n const valueHolderKey = newSymbol(`reactProp_${propName}_valueHolder`)\n const atomHolderKey = newSymbol(`reactProp_${propName}_atomHolder`)\n function getAtom() {\n if (!this[atomHolderKey]) {\n setHiddenProp(this, atomHolderKey, createAtom(\"reactive \" + propName))\n }\n return this[atomHolderKey]\n }\n Object.defineProperty(target, propName, {\n configurable: true,\n enumerable: true,\n get: function() {\n getAtom.call(this).reportObserved()\n return this[valueHolderKey]\n },\n set: function set(v) {\n if (!this[isForcingUpdateKey] && !shallowEqual(this[valueHolderKey], v)) {\n setHiddenProp(this, valueHolderKey, v)\n setHiddenProp(this, skipRenderKey, true)\n getAtom.call(this).reportChanged()\n setHiddenProp(this, skipRenderKey, false)\n } else {\n setHiddenProp(this, valueHolderKey, v)\n }\n }\n })\n}\n","import React, { Component, forwardRef } from \"react\"\nimport { _allowStateChanges } from \"mobx\"\nimport { observer as observerLite, Observer } from \"mobx-react-lite\"\n\nimport { makeClassComponentObserver } from \"./observerClass\"\n\n// Using react-is had some issues (and operates on elements, not on types), see #608 / #609\nconst ReactForwardRefSymbol =\n typeof forwardRef === \"function\" && forwardRef((_props, _ref) => {})[\"$$typeof\"]\n\n/**\n * Observer function / decorator\n */\nexport function observer(componentClass) {\n if (componentClass.isMobxInjector === true) {\n console.warn(\n \"Mobx observer: You are trying to use 'observer' on a component that already has 'inject'. Please apply 'observer' before applying 'inject'\"\n )\n }\n\n // Unwrap forward refs into `<Observer>` component\n // we need to unwrap the render, because it is the inner render that needs to be tracked,\n // not the ForwardRef HoC\n if (ReactForwardRefSymbol && componentClass[\"$$typeof\"] === ReactForwardRefSymbol) {\n const baseRender = componentClass.render\n if (typeof baseRender !== \"function\")\n throw new Error(\"render property of ForwardRef was not a function\")\n return forwardRef(function ObserverForwardRef() {\n return <Observer>{() => baseRender.apply(undefined, arguments)}</Observer>\n })\n }\n\n // Function component\n if (\n typeof componentClass === \"function\" &&\n (!componentClass.prototype || !componentClass.prototype.render) &&\n !componentClass.isReactClass &&\n !Component.isPrototypeOf(componentClass)\n ) {\n return observerLite(componentClass)\n }\n\n return makeClassComponentObserver(componentClass)\n}\n","import { Children, Component, createContext, createElement } from \"react\"\nimport { shallowEqual } from \"./utils/utils\"\n\nconst specialReactKeys = { children: true, key: true, ref: true }\n\nexport const MobXProviderContext = createContext({})\n\nexport class Provider extends Component {\n static contextType = MobXProviderContext\n\n constructor(props, context) {\n super(props, context)\n this.state = {\n ...context,\n ...grabStores(props)\n }\n }\n\n render() {\n return createElement(\n MobXProviderContext.Provider,\n { value: this.state },\n Children.only(this.props.children)\n )\n }\n\n static getDerivedStateFromProps(nextProps, prevState) {\n if (process.env.NODE_ENV !== \"production\") {\n const newStores = { ...prevState, ...grabStores(nextProps) } // spread in prevState for the context based stores\n if (!shallowEqual(prevState, newStores))\n throw new Error(\n \"MobX Provider: The set of provided stores has changed. Please avoid changing stores as the change might not propagate to all children\"\n )\n }\n return prevState // because they didn't change, remember!\n }\n}\n\nfunction grabStores(from) {\n const res = {}\n if (!from) return res\n for (let key in from) if (validStoreName(key)) res[key] = from[key]\n return res\n}\n\nfunction validStoreName(key) {\n return !specialReactKeys[key] && key !== \"suppressChangedStoreWarning\"\n}\n","import React, { Component, createElement } from \"react\"\nimport { observer } from \"./observer\"\nimport { isStateless, copyStaticProperties } from \"./utils/utils\"\nimport { MobXProviderContext } from \"./Provider\"\n\n/**\n * Store Injection\n */\nfunction createStoreInjector(grabStoresFn, component, injectNames, makeReactive) {\n let displayName = getInjectName(component, injectNames)\n\n class Injector extends Component {\n static contextType = MobXProviderContext\n\n render() {\n const { forwardRef, ...props } = this.props\n\n Object.assign(props, grabStoresFn(this.context || {}, props) || {})\n\n if (forwardRef && !isStateless(component)) {\n props.ref = this.props.forwardRef\n }\n\n return createElement(component, props)\n }\n }\n if (makeReactive) Injector = observer(Injector)\n Injector.isMobxInjector = true // assigned late to suppress observer warning\n\n // Support forward refs\n const InjectHocRef = React.forwardRef((props, ref) =>\n React.createElement(Injector, { ...props, forwardRef: ref })\n )\n // Static fields from component should be visible on the generated Injector\n copyStaticProperties(component, InjectHocRef)\n InjectHocRef.wrappedComponent = component\n InjectHocRef.displayName = displayName\n return InjectHocRef\n}\n\nfunction getInjectName(component, injectNames) {\n let displayName\n const componentName =\n component.displayName ||\n component.name ||\n (component.constructor && component.constructor.name) ||\n \"Component\"\n if (injectNames) displayName = \"inject-with-\" + injectNames + \"(\" + componentName + \")\"\n else displayName = \"inject(\" + componentName + \")\"\n return displayName\n}\n\nfunction grabStoresByName(storeNames) {\n return function(baseStores, nextProps) {\n storeNames.forEach(function(storeName) {\n if (\n storeName in nextProps // prefer props over stores\n )\n return\n if (!(storeName in baseStores))\n throw new Error(\n \"MobX injector: Store '\" +\n storeName +\n \"' is not available! Make sure it is provided by some Provider\"\n )\n nextProps[storeName] = baseStores[storeName]\n })\n return nextProps\n }\n}\n\n/**\n * higher order component that injects stores to a child.\n * takes either a varargs list of strings, which are stores read from the context,\n * or a function that manually maps the available stores from the context to props:\n * storesToProps(mobxStores, props, context) => newProps\n */\nexport function inject(/* fn(stores, nextProps) or ...storeNames */ ...storeNames) {\n let grabStoresFn\n if (typeof arguments[0] === \"function\") {\n grabStoresFn = arguments[0]\n return componentClass =>\n createStoreInjector(grabStoresFn, componentClass, grabStoresFn.name, true)\n } else {\n return componentClass =>\n createStoreInjector(\n grabStoresByName(storeNames),\n componentClass,\n storeNames.join(\"-\"),\n false\n )\n }\n}\n","import * as React from \"react\"\nimport { patch, newSymbol } from \"./utils/utils\"\n\nconst storeKey = newSymbol(\"disposeOnUnmount\")\n\nfunction runDisposersOnWillUnmount() {\n if (!this[storeKey]) {\n // when disposeOnUnmount is only set to some instances of a component it will still patch the prototype\n return\n }\n this[storeKey].forEach(propKeyOrFunction => {\n const prop =\n typeof propKeyOrFunction === \"string\" ? this[propKeyOrFunction] : propKeyOrFunction\n if (prop !== undefined && prop !== null) {\n if (Array.isArray(prop)) prop.map(f => f())\n else prop()\n }\n })\n this[storeKey] = []\n}\n\nexport function disposeOnUnmount(target, propertyKeyOrFunction) {\n if (Array.isArray(propertyKeyOrFunction)) {\n return propertyKeyOrFunction.map(fn => disposeOnUnmount(target, fn))\n }\n\n const c = Object.getPrototypeOf(target).constructor || Object.getPrototypeOf(target.constructor)\n const c2 = Object.getPrototypeOf(target.constructor)\n if (\n !(\n c === React.Component ||\n c === React.PureComponent ||\n c2 === React.Component ||\n c2 === React.PureComponent\n )\n ) {\n throw new Error(\n \"[mobx-react] disposeOnUnmount only supports direct subclasses of React.Component or React.PureComponent.\"\n )\n }\n\n if (\n typeof propertyKeyOrFunction !== \"string\" &&\n typeof propertyKeyOrFunction !== \"function\" &&\n !Array.isArray(propertyKeyOrFunction)\n ) {\n throw new Error(\n \"[mobx-react] disposeOnUnmount only works if the parameter is either a property key or a function.\"\n )\n }\n\n // add property key / function we want run (disposed) to the store\n const componentWasAlreadyModified = !!target[storeKey]\n const store = target[storeKey] || (target[storeKey] = [])\n\n store.push(propertyKeyOrFunction)\n\n // tweak the component class componentWillUnmount if not done already\n if (!componentWasAlreadyModified) {\n patch(target, \"componentWillUnmount\", runDisposersOnWillUnmount)\n }\n\n // return the disposer as is if invoked as a non decorator\n if (typeof propertyKeyOrFunction !== \"string\") {\n return propertyKeyOrFunction\n }\n}\n","import { isObservableArray, isObservableObject, isObservableMap, untracked } from \"mobx\"\n\n// Copied from React.PropTypes\nfunction createChainableTypeChecker(validate) {\n function checkType(\n isRequired,\n props,\n propName,\n componentName,\n location,\n propFullName,\n ...rest\n ) {\n return untracked(() => {\n componentName = componentName || \"<<anonymous>>\"\n propFullName = propFullName || propName\n if (props[propName] == null) {\n if (isRequired) {\n const actual = props[propName] === null ? \"null\" : \"undefined\"\n return new Error(\n \"The \" +\n location +\n \" `\" +\n propFullName +\n \"` is marked as required \" +\n \"in `\" +\n componentName +\n \"`, but its value is `\" +\n actual +\n \"`.\"\n )\n }\n return null\n } else {\n return validate(props, propName, componentName, location, propFullName, ...rest)\n }\n })\n }\n\n const chainedCheckType = checkType.bind(null, false)\n chainedCheckType.isRequired = checkType.bind(null, true)\n return chainedCheckType\n}\n\n// Copied from React.PropTypes\nfunction isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === \"symbol\") {\n return true\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue[\"@@toStringTag\"] === \"Symbol\") {\n return true\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === \"function\" && propValue instanceof Symbol) {\n return true\n }\n\n return false\n}\n\n// Copied from React.PropTypes\nfunction getPropType(propValue) {\n const propType = typeof propValue\n if (Array.isArray(propValue)) {\n return \"array\"\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return \"object\"\n }\n if (isSymbol(propType, propValue)) {\n return \"symbol\"\n }\n return propType\n}\n\n// This handles more types than `getPropType`. Only used for error messages.\n// Copied from React.PropTypes\nfunction getPreciseType(propValue) {\n const propType = getPropType(propValue)\n if (propType === \"object\") {\n if (propValue instanceof Date) {\n return \"date\"\n } else if (propValue instanceof RegExp) {\n return \"regexp\"\n }\n }\n return propType\n}\n\nfunction createObservableTypeCheckerCreator(allowNativeType, mobxType) {\n return createChainableTypeChecker(function(\n props,\n propName,\n componentName,\n location,\n propFullName\n ) {\n return untracked(() => {\n if (allowNativeType) {\n if (getPropType(props[propName]) === mobxType.toLowerCase()) return null\n }\n let mobxChecker\n switch (mobxType) {\n case \"Array\":\n mobxChecker = isObservableArray\n break\n case \"Object\":\n mobxChecker = isObservableObject\n break\n case \"Map\":\n mobxChecker = isObservableMap\n break\n default:\n throw new Error(`Unexpected mobxType: ${mobxType}`)\n }\n const propValue = props[propName]\n if (!mobxChecker(propValue)) {\n const preciseType = getPreciseType(propValue)\n const nativeTypeExpectationMessage = allowNativeType\n ? \" or javascript `\" + mobxType.toLowerCase() + \"`\"\n : \"\"\n return new Error(\n \"Invalid prop `\" +\n propFullName +\n \"` of type `\" +\n preciseType +\n \"` supplied to\" +\n \" `\" +\n componentName +\n \"`, expected `mobx.Observable\" +\n mobxType +\n \"`\" +\n nativeTypeExpectationMessage +\n \".\"\n )\n }\n return null\n })\n })\n}\n\nfunction createObservableArrayOfTypeChecker(allowNativeType, typeChecker) {\n return createChainableTypeChecker(function(\n props,\n propName,\n componentName,\n location,\n propFullName,\n ...rest\n ) {\n return untracked(() => {\n if (typeof typeChecker !== \"function\") {\n return new Error(\n \"Property `\" +\n propFullName +\n \"` of component `\" +\n componentName +\n \"` has \" +\n \"invalid PropType notation.\"\n )\n }\n let error = createObservableTypeCheckerCreator(allowNativeType, \"Array\")(\n props,\n propName,\n componentName\n )\n if (error instanceof Error) return error\n const propValue = props[propName]\n for (let i = 0; i < propValue.length; i++) {\n error = typeChecker(\n propValue,\n i,\n componentName,\n location,\n propFullName + \"[\" + i + \"]\",\n ...rest\n )\n if (error instanceof Error) return error\n }\n return null\n })\n })\n}\n\nconst observableArray = createObservableTypeCheckerCreator(false, \"Array\")\nconst observableArrayOf = createObservableArrayOfTypeChecker.bind(null, false)\nconst observableMap = createObservableTypeCheckerCreator(false, \"Map\")\nconst observableObject = createObservableTypeCheckerCreator(false, \"Object\")\nconst arrayOrObservableArray = createObservableTypeCheckerCreator(true, \"Array\")\nconst arrayOrObservableArrayOf = createObservableArrayOfTypeChecker.bind(null, true)\nconst objectOrObservableObject = createObservableTypeCheckerCreator(true, \"Object\")\n\nexport const PropTypes = {\n observableArray,\n observableArrayOf,\n observableMap,\n observableObject,\n arrayOrObservableArray,\n arrayOrObservableArrayOf,\n objectOrObservableObject\n}\n","import { observable, configure } from \"mobx\"\nimport { Component } from \"react\"\nimport { unstable_batchedUpdates as rdBatched } from \"react-dom\"\n\nif (!Component) throw new Error(\"mobx-react requires React to be available\")\nif (!observable) throw new Error(\"mobx-react requires mobx to be available\")\n\nif (typeof rdBatched === \"function\") configure({ reactionScheduler: rdBatched })\n\nexport {\n Observer,\n useAsObservableSource,\n useLocalStore,\n isUsingStaticRendering,\n useStaticRendering\n} from \"mobx-react-lite\"\n\nexport { observer } from \"./observer\"\n\nexport { Provider, MobXProviderContext } from \"./Provider\"\nexport { inject } from \"./inject\"\nexport { disposeOnUnmount } from \"./disposeOnUnmount\"\nexport { PropTypes } from \"./propTypes\"\n"],"names":["symbolId","createdSymbols","newSymbol","name","Symbol","symbol","createSymbol","shallowEqual","objA","objB","is","keysA","Object","keys","keysB","length","let","i","hasOwnProperty","call","x","y","const","hoistBlackList","$$typeof","render","compare","type","childContextTypes","contextType","contextTypes","defaultProps","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","setHiddenProp","target","prop","value","defineProperty","enumerable","configurable","writable","mobxMixins","mobxPatchedDefinition","wrapper","realMethod","locks","retVal","apply","this","args","methods","forEach","mx","wrapFunction","patch","methodName","mixinMethod","methodMixins","getMixins","indexOf","push","oldDefinition","getOwnPropertyDescriptor","newDefinition","createDefinition","originalMethod","wrappedFunc","get","set","undefined","mobxAdminProperty","$mobx","mobxIsUnmounted","skipRenderKey","isForcingUpdateKey","observerSCU","nextProps","nextState","isUsingStaticRendering","console","warn","state","props","makeObservableProp","propName","valueHolderKey","atomHolderKey","getAtom","createAtom","reportObserved","v","reportChanged","ReactForwardRefSymbol","forwardRef","_props","_ref","observer","componentClass","isMobxInjector","baseRender","Error","React","Observer","arguments","prototype","isReactClass","Component","isPrototypeOf","componentWillReact","__proto__","PureComponent","shouldComponentUpdate","initialName","displayName","constructor","bind","isRenderingPending","reaction","Reaction","hasError","forceUpdate","dispose","reactiveRender","exception","rendering","track","_allowStateChanges","e","reactComponent","makeClassComponentObserver","observerLite","specialReactKeys","children","key","ref","MobXProviderContext","createContext","Provider","context","grabStores","createElement","Children","only","prevState","process","env","NODE_ENV","from","res","validStoreName","createStoreInjector","grabStoresFn","component","injectNames","makeReactive","componentName","getInjectName","Injector","assign","isStateless","base","protoProps","InjectHocRef","getOwnPropertyNames","getPrototypeOf","wrappedComponent","storeKey","runDisposersOnWillUnmount","propKeyOrFunction","Array","isArray","map","f","createChainableTypeChecker","validate","checkType","isRequired","location","propFullName","untracked","rest","chainedCheckType","getPropType","propValue","propType","RegExp","isSymbol","createObservableTypeCheckerCreator","allowNativeType","mobxType","toLowerCase","mobxChecker","isObservableArray","isObservableObject","isObservableMap","preciseType","Date","getPreciseType","nativeTypeExpectationMessage","createObservableArrayOfTypeChecker","typeChecker","error","PropTypes","observable","rdBatched","configure","reactionScheduler","storeNames","baseStores","storeName","grabStoresByName","join","disposeOnUnmount","propertyKeyOrFunction","fn","c","c2","componentWasAlreadyModified"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mobx-react.js","sources":["../src/utils/utils.js","../src/observerClass.js","../src/observer.js","../src/Provider.js","../src/inject.js","../src/disposeOnUnmount.js","../src/propTypes.js","../src/index.js"],"sourcesContent":["let symbolId = 0\nfunction createSymbol(name) {\n if (typeof Symbol === \"function\") {\n return Symbol(name)\n }\n const symbol = `__$mobx-react ${name} (${symbolId})`\n symbolId++\n return symbol\n}\n\nconst createdSymbols = {}\nexport function newSymbol(name) {\n if (!createdSymbols[name]) {\n createdSymbols[name] = createSymbol(name)\n }\n return createdSymbols[name]\n}\n\nexport function shallowEqual(objA, objB) {\n //From: https://github.com/facebook/fbjs/blob/c69904a511b900266935168223063dd8772dfc40/packages/fbjs/src/core/shallowEqual.js\n if (is(objA, objB)) return true\n if (typeof objA !== \"object\" || objA === null || typeof objB !== \"object\" || objB === null) {\n return false\n }\n const keysA = Object.keys(objA)\n const keysB = Object.keys(objB)\n if (keysA.length !== keysB.length) return false\n for (let i = 0; i < keysA.length; i++) {\n if (!hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n return false\n }\n }\n return true\n}\n\nfunction is(x, y) {\n // From: https://github.com/facebook/fbjs/blob/c69904a511b900266935168223063dd8772dfc40/packages/fbjs/src/core/shallowEqual.js\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y\n } else {\n return x !== x && y !== y\n }\n}\n\n// based on https://github.com/mridgway/hoist-non-react-statics/blob/master/src/index.js\nconst hoistBlackList = {\n $$typeof: 1,\n render: 1,\n compare: 1,\n type: 1,\n childContextTypes: 1,\n contextType: 1,\n contextTypes: 1,\n defaultProps: 1,\n getDefaultProps: 1,\n getDerivedStateFromError: 1,\n getDerivedStateFromProps: 1,\n mixins: 1,\n propTypes: 1\n}\n\nexport function copyStaticProperties(base, target) {\n const protoProps = Object.getOwnPropertyNames(Object.getPrototypeOf(base))\n Object.getOwnPropertyNames(base).forEach(key => {\n if (!hoistBlackList[key] && protoProps.indexOf(key) === -1) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(base, key))\n }\n })\n}\n\n/**\n * Helper to set `prop` to `this` as non-enumerable (hidden prop)\n * @param target\n * @param prop\n * @param value\n */\nexport function setHiddenProp(target, prop, value) {\n if (!Object.hasOwnProperty.call(target, prop)) {\n Object.defineProperty(target, prop, {\n enumerable: false,\n configurable: true,\n writable: true,\n value\n })\n } else {\n target[prop] = value\n }\n}\n\n/**\n * Utilities for patching componentWillUnmount, to make sure @disposeOnUnmount works correctly icm with user defined hooks\n * and the handler provided by mobx-react\n */\nconst mobxMixins = newSymbol(\"patchMixins\")\nconst mobxPatchedDefinition = newSymbol(\"patchedDefinition\")\n\nfunction getMixins(target, methodName) {\n const mixins = (target[mobxMixins] = target[mobxMixins] || {})\n const methodMixins = (mixins[methodName] = mixins[methodName] || {})\n methodMixins.locks = methodMixins.locks || 0\n methodMixins.methods = methodMixins.methods || []\n return methodMixins\n}\n\nfunction wrapper(realMethod, mixins, ...args) {\n // locks are used to ensure that mixins are invoked only once per invocation, even on recursive calls\n mixins.locks++\n\n try {\n let retVal\n if (realMethod !== undefined && realMethod !== null) {\n retVal = realMethod.apply(this, args)\n }\n\n return retVal\n } finally {\n mixins.locks--\n if (mixins.locks === 0) {\n mixins.methods.forEach(mx => {\n mx.apply(this, args)\n })\n }\n }\n}\n\nfunction wrapFunction(realMethod, mixins) {\n const fn = function(...args) {\n wrapper.call(this, realMethod, mixins, ...args)\n }\n return fn\n}\n\nexport function patch(target, methodName, mixinMethod) {\n const mixins = getMixins(target, methodName)\n\n if (mixins.methods.indexOf(mixinMethod) < 0) {\n mixins.methods.push(mixinMethod)\n }\n\n const oldDefinition = Object.getOwnPropertyDescriptor(target, methodName)\n if (oldDefinition && oldDefinition[mobxPatchedDefinition]) {\n // already patched definition, do not repatch\n return\n }\n\n const originalMethod = target[methodName]\n const newDefinition = createDefinition(\n target,\n methodName,\n oldDefinition ? oldDefinition.enumerable : undefined,\n mixins,\n originalMethod\n )\n\n Object.defineProperty(target, methodName, newDefinition)\n}\n\nfunction createDefinition(target, methodName, enumerable, mixins, originalMethod) {\n let wrappedFunc = wrapFunction(originalMethod, mixins)\n\n return {\n [mobxPatchedDefinition]: true,\n get: function() {\n return wrappedFunc\n },\n set: function(value) {\n if (this === target) {\n wrappedFunc = wrapFunction(value, mixins)\n } else {\n // when it is an instance of the prototype/a child prototype patch that particular case again separately\n // since we need to store separate values depending on wether it is the actual instance, the prototype, etc\n // e.g. the method for super might not be the same as the method for the prototype which might be not the same\n // as the method for the instance\n const newDefinition = createDefinition(this, methodName, enumerable, mixins, value)\n Object.defineProperty(this, methodName, newDefinition)\n }\n },\n configurable: true,\n enumerable: enumerable\n }\n}\n","import { PureComponent, Component } from \"react\"\nimport { createAtom, _allowStateChanges, Reaction, $mobx } from \"mobx\"\nimport { isUsingStaticRendering } from \"mobx-react-lite\"\n\nimport { newSymbol, shallowEqual, setHiddenProp, patch } from \"./utils/utils\"\n\nconst mobxAdminProperty = $mobx || \"$mobx\"\nconst mobxIsUnmounted = newSymbol(\"isUnmounted\")\nconst skipRenderKey = newSymbol(\"skipRender\")\nconst isForcingUpdateKey = newSymbol(\"isForcingUpdate\")\n\nexport function makeClassComponentObserver(componentClass) {\n const target = componentClass.prototype\n if (target.componentWillReact)\n throw new Error(\"The componentWillReact life-cycle event is no longer supported\")\n if (componentClass.__proto__ !== PureComponent) {\n if (!target.shouldComponentUpdate) target.shouldComponentUpdate = observerSCU\n else if (target.shouldComponentUpdate !== observerSCU)\n // n.b. unequal check, instead of existence check, as @observer might be on superclass as well\n throw new Error(\n \"It is not allowed to use shouldComponentUpdate in observer based components.\"\n )\n }\n\n // this.props and this.state are made observable, just to make sure @computed fields that\n // are defined inside the component, and which rely on state or props, re-compute if state or props change\n // (otherwise the computed wouldn't update and become stale on props change, since props are not observable)\n // However, this solution is not without it's own problems: https://github.com/mobxjs/mobx-react/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3Aobservable-props-or-not+\n makeObservableProp(target, \"props\")\n makeObservableProp(target, \"state\")\n\n const baseRender = target.render\n target.render = function() {\n return makeComponentReactive.call(this, baseRender)\n }\n patch(target, \"componentWillUnmount\", function() {\n if (isUsingStaticRendering() === true) return\n this.render[mobxAdminProperty] && this.render[mobxAdminProperty].dispose()\n this[mobxIsUnmounted] = true\n })\n return componentClass\n}\n\nfunction makeComponentReactive(render) {\n if (isUsingStaticRendering() === true) return render.call(this)\n\n /**\n * If props are shallowly modified, react will render anyway,\n * so atom.reportChanged() should not result in yet another re-render\n */\n setHiddenProp(this, skipRenderKey, false)\n /**\n * forceUpdate will re-assign this.props. We don't want that to cause a loop,\n * so detect these changes\n */\n setHiddenProp(this, isForcingUpdateKey, false)\n\n // Generate friendly name for debugging\n const initialName =\n this.displayName ||\n this.name ||\n (this.constructor && (this.constructor.displayName || this.constructor.name)) ||\n \"<component>\"\n const baseRender = render.bind(this)\n\n let isRenderingPending = false\n\n const reaction = new Reaction(`${initialName}.render()`, () => {\n if (!isRenderingPending) {\n // N.B. Getting here *before mounting* means that a component constructor has side effects (see the relevant test in misc.js)\n // This unidiomatic React usage but React will correctly warn about this so we continue as usual\n // See #85 / Pull #44\n isRenderingPending = true\n if (this[mobxIsUnmounted] !== true) {\n let hasError = true\n try {\n setHiddenProp(this, isForcingUpdateKey, true)\n if (!this[skipRenderKey]) Component.prototype.forceUpdate.call(this)\n hasError = false\n } finally {\n setHiddenProp(this, isForcingUpdateKey, false)\n if (hasError) reaction.dispose()\n }\n }\n }\n })\n reaction.reactComponent = this\n reactiveRender[mobxAdminProperty] = reaction\n this.render = reactiveRender\n\n function reactiveRender() {\n isRenderingPending = false\n let exception = undefined\n let rendering = undefined\n reaction.track(() => {\n try {\n rendering = _allowStateChanges(false, baseRender)\n } catch (e) {\n exception = e\n }\n })\n if (exception) {\n throw exception\n }\n return rendering\n }\n\n return reactiveRender.call(this)\n}\n\nfunction observerSCU(nextProps, nextState) {\n if (isUsingStaticRendering()) {\n console.warn(\n \"[mobx-react] It seems that a re-rendering of a React component is triggered while in static (server-side) mode. Please make sure components are rendered only once server-side.\"\n )\n }\n // update on any state changes (as is the default)\n if (this.state !== nextState) {\n return true\n }\n // update if props are shallowly not equal, inspired by PureRenderMixin\n // we could return just 'false' here, and avoid the `skipRender` checks etc\n // however, it is nicer if lifecycle events are triggered like usually,\n // so we return true here if props are shallowly modified.\n return !shallowEqual(this.props, nextProps)\n}\n\nfunction makeObservableProp(target, propName) {\n const valueHolderKey = newSymbol(`reactProp_${propName}_valueHolder`)\n const atomHolderKey = newSymbol(`reactProp_${propName}_atomHolder`)\n function getAtom() {\n if (!this[atomHolderKey]) {\n setHiddenProp(this, atomHolderKey, createAtom(\"reactive \" + propName))\n }\n return this[atomHolderKey]\n }\n Object.defineProperty(target, propName, {\n configurable: true,\n enumerable: true,\n get: function() {\n getAtom.call(this).reportObserved()\n return this[valueHolderKey]\n },\n set: function set(v) {\n if (!this[isForcingUpdateKey] && !shallowEqual(this[valueHolderKey], v)) {\n setHiddenProp(this, valueHolderKey, v)\n setHiddenProp(this, skipRenderKey, true)\n getAtom.call(this).reportChanged()\n setHiddenProp(this, skipRenderKey, false)\n } else {\n setHiddenProp(this, valueHolderKey, v)\n }\n }\n })\n}\n","/* eslint-disable react/display-name */\nimport React, { Component, forwardRef, memo } from \"react\"\nimport { observer as observerLite, Observer } from \"mobx-react-lite\"\n\nimport { makeClassComponentObserver } from \"./observerClass\"\n\nconst hasSymbol = typeof Symbol === \"function\" && Symbol.for\n\n// Using react-is had some issues (and operates on elements, not on types), see #608 / #609\nconst ReactForwardRefSymbol = hasSymbol\n ? Symbol.for(\"react.forward_ref\")\n : typeof forwardRef === \"function\" && forwardRef(() => {})[\"$$typeof\"]\n\nconst ReactMemoSymbol = hasSymbol\n ? Symbol.for(\"react.memo\")\n : typeof memo === \"function\" && memo(() => {})[\"$$typeof\"]\n\n/**\n * Observer function / decorator\n */\nexport function observer(componentClass) {\n if (componentClass.isMobxInjector === true) {\n console.warn(\n \"Mobx observer: You are trying to use 'observer' on a component that already has 'inject'. Please apply 'observer' before applying 'inject'\"\n )\n }\n\n if (ReactMemoSymbol && componentClass[\"$$typeof\"] === ReactMemoSymbol) {\n throw new Error(\n \"Mobx observer: You are trying to use 'observer' on function component wrapped to either another observer or 'React.memo'. The observer already applies 'React.memo' for you.\"\n )\n }\n\n // Unwrap forward refs into `<Observer>` component\n // we need to unwrap the render, because it is the inner render that needs to be tracked,\n // not the ForwardRef HoC\n if (ReactForwardRefSymbol && componentClass[\"$$typeof\"] === ReactForwardRefSymbol) {\n const baseRender = componentClass.render\n if (typeof baseRender !== \"function\")\n throw new Error(\"render property of ForwardRef was not a function\")\n return forwardRef(function ObserverForwardRef() {\n return <Observer>{() => baseRender.apply(undefined, arguments)}</Observer>\n })\n }\n\n // Function component\n if (\n typeof componentClass === \"function\" &&\n (!componentClass.prototype || !componentClass.prototype.render) &&\n !componentClass.isReactClass &&\n !Object.prototype.isPrototypeOf.call(Component, componentClass)\n ) {\n return observerLite(componentClass)\n }\n\n return makeClassComponentObserver(componentClass)\n}\n","/* eslint-disable react/prop-types */\nimport React from \"react\"\nimport { shallowEqual } from \"./utils/utils\"\n\nexport const MobXProviderContext = React.createContext({})\n\nexport function Provider({ children, ...stores }) {\n const parentValue = React.useContext(MobXProviderContext)\n const value = React.useRef({\n ...parentValue,\n ...stores\n }).current\n\n if (process.env.NODE_ENV !== \"production\") {\n const newValue = { ...value, ...stores } // spread in previous state for the context based stores\n if (!shallowEqual(value, newValue)) {\n throw new Error(\n \"MobX Provider: The set of provided stores has changed. See: https://github.com/mobxjs/mobx-react#the-set-of-provided-stores-has-changed-error.\"\n )\n }\n }\n\n return <MobXProviderContext.Provider value={value}>{children}</MobXProviderContext.Provider>\n}\n\nProvider.displayName = \"MobXProvider\"\n","import React, { createElement } from \"react\"\nimport { observer } from \"./observer\"\nimport { copyStaticProperties } from \"./utils/utils\"\nimport { MobXProviderContext } from \"./Provider\"\n\n/**\n * Store Injection\n */\nfunction createStoreInjector(grabStoresFn, component, injectNames, makeReactive) {\n // Support forward refs\n let Injector = React.forwardRef((props, ref) => {\n const newProps = { ...props }\n const context = React.useContext(MobXProviderContext)\n Object.assign(newProps, grabStoresFn(context || {}, newProps) || {})\n\n if (ref) {\n newProps.ref = ref\n }\n\n return createElement(component, newProps)\n })\n\n if (makeReactive) Injector = observer(Injector)\n Injector.isMobxInjector = true // assigned late to suppress observer warning\n\n // Static fields from component should be visible on the generated Injector\n copyStaticProperties(component, Injector)\n Injector.wrappedComponent = component\n Injector.displayName = getInjectName(component, injectNames)\n return Injector\n}\n\nfunction getInjectName(component, injectNames) {\n let displayName\n const componentName =\n component.displayName ||\n component.name ||\n (component.constructor && component.constructor.name) ||\n \"Component\"\n if (injectNames) displayName = \"inject-with-\" + injectNames + \"(\" + componentName + \")\"\n else displayName = \"inject(\" + componentName + \")\"\n return displayName\n}\n\nfunction grabStoresByName(storeNames) {\n return function(baseStores, nextProps) {\n storeNames.forEach(function(storeName) {\n if (\n storeName in nextProps // prefer props over stores\n )\n return\n if (!(storeName in baseStores))\n throw new Error(\n \"MobX injector: Store '\" +\n storeName +\n \"' is not available! Make sure it is provided by some Provider\"\n )\n nextProps[storeName] = baseStores[storeName]\n })\n return nextProps\n }\n}\n\n/**\n * higher order component that injects stores to a child.\n * takes either a varargs list of strings, which are stores read from the context,\n * or a function that manually maps the available stores from the context to props:\n * storesToProps(mobxStores, props, context) => newProps\n */\nexport function inject(/* fn(stores, nextProps) or ...storeNames */ ...storeNames) {\n let grabStoresFn\n if (typeof arguments[0] === \"function\") {\n grabStoresFn = arguments[0]\n return componentClass =>\n createStoreInjector(grabStoresFn, componentClass, grabStoresFn.name, true)\n } else {\n return componentClass =>\n createStoreInjector(\n grabStoresByName(storeNames),\n componentClass,\n storeNames.join(\"-\"),\n false\n )\n }\n}\n","import * as React from \"react\"\nimport { patch, newSymbol } from \"./utils/utils\"\n\nconst protoStoreKey = newSymbol(\"disposeOnUnmountProto\")\nconst instStoreKey = newSymbol(\"disposeOnUnmountInst\")\n\nfunction runDisposersOnWillUnmount() {\n ;[...(this[protoStoreKey] || []), ...(this[instStoreKey] || [])].forEach(propKeyOrFunction => {\n const prop =\n typeof propKeyOrFunction === \"string\" ? this[propKeyOrFunction] : propKeyOrFunction\n if (prop !== undefined && prop !== null) {\n if (Array.isArray(prop)) prop.map(f => f())\n else prop()\n }\n })\n}\n\nexport function disposeOnUnmount(target, propertyKeyOrFunction) {\n if (Array.isArray(propertyKeyOrFunction)) {\n return propertyKeyOrFunction.map(fn => disposeOnUnmount(target, fn))\n }\n\n const c = Object.getPrototypeOf(target).constructor || Object.getPrototypeOf(target.constructor)\n const c2 = Object.getPrototypeOf(target.constructor)\n if (\n !(\n c === React.Component ||\n c === React.PureComponent ||\n c2 === React.Component ||\n c2 === React.PureComponent\n )\n ) {\n throw new Error(\n \"[mobx-react] disposeOnUnmount only supports direct subclasses of React.Component or React.PureComponent.\"\n )\n }\n\n if (\n typeof propertyKeyOrFunction !== \"string\" &&\n typeof propertyKeyOrFunction !== \"function\" &&\n !Array.isArray(propertyKeyOrFunction)\n ) {\n throw new Error(\n \"[mobx-react] disposeOnUnmount only works if the parameter is either a property key or a function.\"\n )\n }\n\n // decorator's target is the prototype, so it doesn't have any instance properties like props\n const isDecorator = typeof propertyKeyOrFunction === \"string\"\n\n // add property key / function we want run (disposed) to the store\n const componentWasAlreadyModified = !!target[protoStoreKey] || !!target[instStoreKey]\n const store = isDecorator\n ? // decorators are added to the prototype store\n target[protoStoreKey] || (target[protoStoreKey] = [])\n : // functions are added to the instance store\n target[instStoreKey] || (target[instStoreKey] = [])\n\n store.push(propertyKeyOrFunction)\n\n // tweak the component class componentWillUnmount if not done already\n if (!componentWasAlreadyModified) {\n patch(target, \"componentWillUnmount\", runDisposersOnWillUnmount)\n }\n\n // return the disposer as is if invoked as a non decorator\n if (typeof propertyKeyOrFunction !== \"string\") {\n return propertyKeyOrFunction\n }\n}\n","import { isObservableArray, isObservableObject, isObservableMap, untracked } from \"mobx\"\n\n// Copied from React.PropTypes\nfunction createChainableTypeChecker(validate) {\n function checkType(\n isRequired,\n props,\n propName,\n componentName,\n location,\n propFullName,\n ...rest\n ) {\n return untracked(() => {\n componentName = componentName || \"<<anonymous>>\"\n propFullName = propFullName || propName\n if (props[propName] == null) {\n if (isRequired) {\n const actual = props[propName] === null ? \"null\" : \"undefined\"\n return new Error(\n \"The \" +\n location +\n \" `\" +\n propFullName +\n \"` is marked as required \" +\n \"in `\" +\n componentName +\n \"`, but its value is `\" +\n actual +\n \"`.\"\n )\n }\n return null\n } else {\n return validate(props, propName, componentName, location, propFullName, ...rest)\n }\n })\n }\n\n const chainedCheckType = checkType.bind(null, false)\n chainedCheckType.isRequired = checkType.bind(null, true)\n return chainedCheckType\n}\n\n// Copied from React.PropTypes\nfunction isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === \"symbol\") {\n return true\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue[\"@@toStringTag\"] === \"Symbol\") {\n return true\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === \"function\" && propValue instanceof Symbol) {\n return true\n }\n\n return false\n}\n\n// Copied from React.PropTypes\nfunction getPropType(propValue) {\n const propType = typeof propValue\n if (Array.isArray(propValue)) {\n return \"array\"\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return \"object\"\n }\n if (isSymbol(propType, propValue)) {\n return \"symbol\"\n }\n return propType\n}\n\n// This handles more types than `getPropType`. Only used for error messages.\n// Copied from React.PropTypes\nfunction getPreciseType(propValue) {\n const propType = getPropType(propValue)\n if (propType === \"object\") {\n if (propValue instanceof Date) {\n return \"date\"\n } else if (propValue instanceof RegExp) {\n return \"regexp\"\n }\n }\n return propType\n}\n\nfunction createObservableTypeCheckerCreator(allowNativeType, mobxType) {\n return createChainableTypeChecker(function(\n props,\n propName,\n componentName,\n location,\n propFullName\n ) {\n return untracked(() => {\n if (allowNativeType) {\n if (getPropType(props[propName]) === mobxType.toLowerCase()) return null\n }\n let mobxChecker\n switch (mobxType) {\n case \"Array\":\n mobxChecker = isObservableArray\n break\n case \"Object\":\n mobxChecker = isObservableObject\n break\n case \"Map\":\n mobxChecker = isObservableMap\n break\n default:\n throw new Error(`Unexpected mobxType: ${mobxType}`)\n }\n const propValue = props[propName]\n if (!mobxChecker(propValue)) {\n const preciseType = getPreciseType(propValue)\n const nativeTypeExpectationMessage = allowNativeType\n ? \" or javascript `\" + mobxType.toLowerCase() + \"`\"\n : \"\"\n return new Error(\n \"Invalid prop `\" +\n propFullName +\n \"` of type `\" +\n preciseType +\n \"` supplied to\" +\n \" `\" +\n componentName +\n \"`, expected `mobx.Observable\" +\n mobxType +\n \"`\" +\n nativeTypeExpectationMessage +\n \".\"\n )\n }\n return null\n })\n })\n}\n\nfunction createObservableArrayOfTypeChecker(allowNativeType, typeChecker) {\n return createChainableTypeChecker(function(\n props,\n propName,\n componentName,\n location,\n propFullName,\n ...rest\n ) {\n return untracked(() => {\n if (typeof typeChecker !== \"function\") {\n return new Error(\n \"Property `\" +\n propFullName +\n \"` of component `\" +\n componentName +\n \"` has \" +\n \"invalid PropType notation.\"\n )\n }\n let error = createObservableTypeCheckerCreator(allowNativeType, \"Array\")(\n props,\n propName,\n componentName\n )\n if (error instanceof Error) return error\n const propValue = props[propName]\n for (let i = 0; i < propValue.length; i++) {\n error = typeChecker(\n propValue,\n i,\n componentName,\n location,\n propFullName + \"[\" + i + \"]\",\n ...rest\n )\n if (error instanceof Error) return error\n }\n return null\n })\n })\n}\n\nconst observableArray = createObservableTypeCheckerCreator(false, \"Array\")\nconst observableArrayOf = createObservableArrayOfTypeChecker.bind(null, false)\nconst observableMap = createObservableTypeCheckerCreator(false, \"Map\")\nconst observableObject = createObservableTypeCheckerCreator(false, \"Object\")\nconst arrayOrObservableArray = createObservableTypeCheckerCreator(true, \"Array\")\nconst arrayOrObservableArrayOf = createObservableArrayOfTypeChecker.bind(null, true)\nconst objectOrObservableObject = createObservableTypeCheckerCreator(true, \"Object\")\n\nexport const PropTypes = {\n observableArray,\n observableArrayOf,\n observableMap,\n observableObject,\n arrayOrObservableArray,\n arrayOrObservableArrayOf,\n objectOrObservableObject\n}\n","import { observable, configure } from \"mobx\"\nimport { Component } from \"react\"\nimport { unstable_batchedUpdates as rdBatched } from \"react-dom\"\n\nif (!Component) throw new Error(\"mobx-react requires React to be available\")\nif (!observable) throw new Error(\"mobx-react requires mobx to be available\")\n\nif (typeof rdBatched === \"function\") configure({ reactionScheduler: rdBatched })\n\nexport {\n Observer,\n useObserver,\n useAsObservableSource,\n useLocalStore,\n isUsingStaticRendering,\n useStaticRendering\n} from \"mobx-react-lite\"\n\nexport { observer } from \"./observer\"\n\nexport { Provider, MobXProviderContext } from \"./Provider\"\nexport { inject } from \"./inject\"\nexport { disposeOnUnmount } from \"./disposeOnUnmount\"\nexport { PropTypes } from \"./propTypes\"\n"],"names":["symbolId","createdSymbols","newSymbol","name","Symbol","symbol","createSymbol","shallowEqual","objA","objB","is","keysA","Object","keys","keysB","length","let","i","hasOwnProperty","call","x","y","const","hoistBlackList","$$typeof","render","compare","type","childContextTypes","contextType","contextTypes","defaultProps","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","setHiddenProp","target","prop","value","defineProperty","enumerable","configurable","writable","mobxMixins","mobxPatchedDefinition","wrapper","realMethod","locks","retVal","apply","this","args","methods","forEach","mx","wrapFunction","patch","methodName","mixinMethod","methodMixins","getMixins","indexOf","push","oldDefinition","getOwnPropertyDescriptor","newDefinition","createDefinition","originalMethod","wrappedFunc","get","set","undefined","mobxAdminProperty","$mobx","mobxIsUnmounted","skipRenderKey","isForcingUpdateKey","observerSCU","nextProps","nextState","isUsingStaticRendering","console","warn","state","props","makeObservableProp","propName","valueHolderKey","atomHolderKey","getAtom","createAtom","reportObserved","v","reportChanged","hasSymbol","for","ReactForwardRefSymbol","forwardRef","ReactMemoSymbol","memo","observer","componentClass","isMobxInjector","Error","baseRender","React","Observer","arguments","prototype","isReactClass","isPrototypeOf","Component","componentWillReact","__proto__","PureComponent","shouldComponentUpdate","initialName","displayName","constructor","bind","isRenderingPending","reaction","Reaction","hasError","forceUpdate","dispose","reactiveRender","exception","rendering","track","_allowStateChanges","e","reactComponent","makeClassComponentObserver","observerLite","MobXProviderContext","createContext","Provider","ref","parentValue","useContext","useRef","stores","current","process","env","NODE_ENV","children","createStoreInjector","grabStoresFn","component","injectNames","makeReactive","base","protoProps","Injector","newProps","context","assign","createElement","getOwnPropertyNames","getPrototypeOf","key","wrappedComponent","componentName","getInjectName","protoStoreKey","instStoreKey","runDisposersOnWillUnmount","propKeyOrFunction","Array","isArray","map","f","createChainableTypeChecker","validate","checkType","isRequired","location","propFullName","untracked","rest","chainedCheckType","getPropType","propValue","propType","RegExp","isSymbol","createObservableTypeCheckerCreator","allowNativeType","mobxType","toLowerCase","mobxChecker","isObservableArray","isObservableObject","isObservableMap","preciseType","Date","getPreciseType","nativeTypeExpectationMessage","createObservableArrayOfTypeChecker","typeChecker","error","PropTypes","observable","rdBatched","configure","reactionScheduler","storeNames","baseStores","storeName","grabStoresByName","join","disposeOnUnmount","propertyKeyOrFunction","fn","c","c2","componentWasAlreadyModified"],"mappings":"sJAAIA,EAAW,EAUTC,EAAiB,GAChB,SAASC,EAAUC,UACjBF,EAAeE,KAChBF,EAAeE,GAZvB,SAAsBA,MACI,mBAAXC,cACAA,OAAOD,OAEZE,EAAU,iBAAgBF,OAASH,aACzCA,IACOK,EAMoBC,CAAaH,IAEjCF,EAAeE,GAGnB,SAASI,EAAaC,EAAMC,MAE3BC,EAAGF,EAAMC,GAAO,OAAO,KACP,iBAATD,GAA8B,OAATA,GAAiC,iBAATC,GAA8B,OAATA,SAClE,MAELE,EAAQC,OAAOC,KAAKL,GACpBM,EAAQF,OAAOC,KAAKJ,MACtBE,EAAMI,SAAWD,EAAMC,OAAQ,OAAO,MACrCC,IAAIC,EAAI,EAAGA,EAAIN,EAAMI,OAAQE,QACzBC,eAAeC,KAAKV,EAAME,EAAMM,MAAQP,EAAGF,EAAKG,EAAMM,IAAKR,EAAKE,EAAMM,YAChE,SAGR,EAGX,SAASP,EAAGU,EAAGC,UAEPD,IAAMC,EACO,IAAND,GAAW,EAAIA,GAAM,EAAIC,EAEzBD,GAAMA,GAAKC,GAAMA,EAKhCC,IAAMC,EAAiB,CACnBC,SAAU,EACVC,OAAQ,EACRC,QAAS,EACTC,KAAM,EACNC,kBAAmB,EACnBC,YAAa,EACbC,aAAc,EACdC,aAAc,EACdC,gBAAiB,EACjBC,yBAA0B,EAC1BC,yBAA0B,EAC1BC,OAAQ,EACRC,UAAW,GAkBf,SAAgBC,EAAcC,EAAQC,EAAMC,GACnC5B,OAAOM,eAAeC,KAAKmB,EAAQC,GAQpCD,EAAOC,GAAQC,EAPf5B,OAAO6B,eAAeH,EAAQC,EAAM,CAChCG,YAAY,EACZC,cAAc,EACdC,UAAU,QACVJ,IAWZlB,IAAMuB,EAAa3C,EAAU,eACvB4C,EAAwB5C,EAAU,qBAUxC,SAAS6C,EAAQC,EAAYb,wEAEzBA,EAAOc,gBAGCC,SACAF,MAAAA,IACAE,EAASF,EAAWG,MAAMC,KAAMC,IAG7BH,UAEPf,EAAOc,QACc,IAAjBd,EAAOc,OACPd,EAAOmB,QAAQC,iBAAQC,GACnBA,EAAGL,MAAMC,EAAMC,MAM/B,SAASI,EAAaT,EAAYb,UACnB,kEACPY,EAAQ5B,cAAKiC,KAAMJ,EAAYb,UAAWkB,KAKlD,SAAgBK,EAAMpB,EAAQqB,EAAYC,OAChCzB,EArCV,SAAmBG,EAAQqB,OACjBxB,EAAUG,EAAOO,GAAcP,EAAOO,IAAe,GACrDgB,EAAgB1B,EAAOwB,GAAcxB,EAAOwB,IAAe,UACjEE,EAAaZ,MAAQY,EAAaZ,OAAS,EAC3CY,EAAaP,QAAUO,EAAaP,SAAW,GACxCO,EAgCQC,CAAUxB,EAAQqB,GAE7BxB,EAAOmB,QAAQS,QAAQH,GAAe,GACtCzB,EAAOmB,QAAQU,KAAKJ,OAGlBK,EAAgBrD,OAAOsD,yBAAyB5B,EAAQqB,OAC1DM,IAAiBA,EAAcnB,QAM7BqB,EAWV,SAASC,EAAiB9B,EAAQqB,EAAYjB,EAAYP,EAAQkC,SAC1DC,EAAcb,EAAaY,EAAgBlC,YAExC,IACFW,IAAwB,IACzByB,IAAK,kBACMD,KAEXE,IAAK,SAAShC,MACNY,OAASd,EACTgC,EAAcb,EAAajB,EAAOL,OAC/B,KAKGgC,EAAgBC,EAAiBhB,KAAMO,EAAYjB,EAAYP,EAAQK,GAC7E5B,OAAO6B,eAAeW,KAAMO,EAAYQ,OAGhDxB,cAAc,IACdD,WAAYA,IAhCM0B,CAClB9B,EACAqB,EACAM,EAAgBA,EAAcvB,gBAAa+B,EAC3CtC,EALmBG,EAAOqB,IAS9B/C,OAAO6B,eAAeH,EAAQqB,EAAYQ,ICpJ9C7C,IAAMoD,EAAoBC,SAAS,QAC7BC,EAAkB1E,EAAU,eAC5B2E,EAAgB3E,EAAU,cAC1B4E,EAAqB5E,EAAU,mBAqGrC,SAAS6E,EAAYC,EAAWC,UACxBC,4BACAC,QAAQC,KACJ,mLAIJhC,KAAKiC,QAAUJ,IAOX1E,EAAa6C,KAAKkC,MAAON,GAGrC,SAASO,EAAmBjD,EAAQkD,OAC1BC,EAAiBvF,eAAuBsF,kBACxCE,EAAgBxF,eAAuBsF,0BACpCG,WACAvC,KAAKsC,IACNrD,EAAce,KAAMsC,EAAeE,aAAW,YAAcJ,IAEzDpC,KAAKsC,GAEhB9E,OAAO6B,eAAeH,EAAQkD,EAAU,CACpC7C,cAAc,EACdD,YAAY,EACZ6B,IAAK,kBACDoB,EAAQxE,KAAKiC,MAAMyC,iBACZzC,KAAKqC,IAEhBjB,IAAK,SAAasB,GACT1C,KAAK0B,IAAwBvE,EAAa6C,KAAKqC,GAAiBK,GAMjEzD,EAAce,KAAMqC,EAAgBK,IALpCzD,EAAce,KAAMqC,EAAgBK,GACpCzD,EAAce,KAAMyB,GAAe,GACnCc,EAAQxE,KAAKiC,MAAM2C,gBACnB1D,EAAce,KAAMyB,GAAe,OCnJnD,IAKMmB,EAA8B,mBAAX5F,QAAyBA,OAAO6F,IAGnDC,EAAwBF,EACxB5F,OAAO6F,IAAI,qBACW,mBAAfE,cAA6BA,2BAAA,SAEpCC,EAAkBJ,EAClB5F,OAAO6F,IAAI,cACK,mBAATI,QAAuBA,qBAAA,SAK7B,SAASC,EAASC,OACiB,IAAlCA,EAAeC,gBACfrB,QAAQC,KACJ,8IAIJgB,GAAmBG,EAAc,WAAiBH,QAC5C,IAAIK,MACN,mLAOJP,GAAyBK,EAAc,WAAiBL,EAAuB,KACzEQ,EAAaH,EAAe9E,UACR,mBAAfiF,EACP,MAAM,IAAID,MAAM,2DACbN,aAAW,kCACPQ,gBAACC,kCAAgBF,EAAWvD,WAAMsB,EAAWoC,aAM9B,mBAAnBN,GACLA,EAAeO,WAAcP,EAAeO,UAAUrF,QACvD8E,EAAeQ,cACfnG,OAAOkG,UAAUE,cAAc7F,KAAK8F,YAAWV,GDvCjD,SAAoCA,OACjCjE,EAASiE,EAAeO,aAC1BxE,EAAO4E,mBACP,MAAM,IAAIT,MAAM,qEAChBF,EAAeY,YAAcC,mBACxB9E,EAAO+E,uBACP,GAAI/E,EAAO+E,wBAA0BtC,QAEhC,IAAI0B,MACN,qFAJ2BnE,EAAO+E,sBAAwBtC,EAYtEQ,EAAmBjD,EAAQ,SAC3BiD,EAAmBjD,EAAQ,aAErBoE,EAAapE,EAAOb,cAC1Ba,EAAOb,OAAS,kBAWpB,SAA+BA,kBACM,IAA7ByD,2BAAmC,OAAOzD,EAAON,KAAKiC,MAM1Df,EAAce,KAAMyB,GAAe,GAKnCxC,EAAce,KAAM0B,GAAoB,OAGlCwC,EACFlE,KAAKmE,aACLnE,KAAKjD,MACJiD,KAAKoE,cAAgBpE,KAAKoE,YAAYD,aAAenE,KAAKoE,YAAYrH,OACvE,cACEuG,EAAajF,EAAOgG,KAAKrE,MAE3BsE,GAAqB,EAEnBC,EAAW,IAAIC,WAAYN,6BACxBI,IAIDA,GAAqB,GACS,IAA1BtE,EAAKwB,IAA2B,KAC5BiD,GAAW,MAEXxF,EAAce,EAAM0B,GAAoB,GACnC1B,EAAKyB,IAAgBoC,YAAUH,UAAUgB,YAAY3G,KAAKiC,GAC/DyE,GAAW,UAEXxF,EAAce,EAAM0B,GAAoB,GACpC+C,GAAUF,EAASI,uBAS9BC,IACLN,GAAqB,MACjBO,OAAYxD,EACZyD,OAAYzD,KAChBkD,EAASQ,qBAEDD,EAAYE,sBAAmB,EAAO1B,GACxC,MAAO2B,GACLJ,EAAYI,KAGhBJ,QACMA,SAEHC,SAlBXP,EAASW,eAAiBlF,KAC1B4E,EAAetD,GAAqBiD,OAC/BlG,OAASuG,EAmBPA,EAAe7G,KAAKiC,OA1EMjC,KAAKiC,KAAMsD,IAE5ChD,EAAMpB,EAAQ,uBAAwB,YACD,IAA7B4C,kCACCzD,OAAOiD,IAAsBtB,KAAK3B,OAAOiD,GAAmBqD,eAC5DnD,IAAmB,KAErB2B,ECeAgC,CAA2BhC,GAHvBiC,WAAajC,GCnD5B,IAGakC,EAAsB9B,EAAM+B,cAAc,IAEhD,SAASC,EAASC,gKACfC,EAAclC,EAAMmC,WAAWL,GAC/BjG,EAAQmE,EAAMoC,OAAOnI,iBACpBiI,EACAG,IACJC,WAE0B,eAAzBC,QAAQC,IAAIC,WAEP7I,EAAaiC,EADD5B,iBAAK4B,YAEZ,IAAIiE,MACN,yJAKLE,gBAAC8B,EAAoBE,UAASnG,MAAOA,GAAQ6G,GCdxD,SAASC,EAAoBC,EAAcC,EAAWC,EAAaC,OJqD9BC,EAAMrH,EACjCsH,EIpDFC,EAAWlD,EAAMR,oBAAYb,EAAOsD,OAC9BkB,EAAWlJ,iBAAK0E,GAChByE,EAAUpD,EAAMmC,WAAWL,UACjC7H,OAAOoJ,OAAOF,EAAUP,EAAaQ,GAAW,GAAID,IAAa,IAE7DlB,IACAkB,EAASlB,IAAMA,GAGZqB,gBAAcT,EAAWM,YAGhCJ,IAAcG,EAAWvD,EAASuD,IACtCA,EAASrD,gBAAiB,EJsCOmD,EInCZH,EJmCkBlH,EInCPuH,EJoC1BD,EAAahJ,OAAOsJ,oBAAoBtJ,OAAOuJ,eAAeR,IACpE/I,OAAOsJ,oBAAoBP,GAAMpG,iBAAQ6G,GAChC7I,EAAe6I,KAAqC,IAA7BR,EAAW7F,QAAQqG,IAC3CxJ,OAAO6B,eAAeH,EAAQ8H,EAAKxJ,OAAOsD,yBAAyByF,EAAMS,MItCjFP,EAASQ,iBAAmBb,EAC5BK,EAAStC,YAIb,SAAuBiC,EAAWC,OAExBa,EACFd,EAAUjC,aACViC,EAAUrJ,MACTqJ,EAAUhC,aAAegC,EAAUhC,YAAYrH,MAChD,mBACAsJ,EAA2B,eAAiBA,EAAc,IAAMa,EAAgB,IACjE,UAAYA,EAAgB,IAZxBC,CAAcf,EAAWC,GACzCI,EDJXlB,EAASpB,YAAc,eEtBvBjG,IAAMkJ,EAAgBtK,EAAU,yBAC1BuK,EAAevK,EAAU,wBAE/B,SAASwK,gBACCtH,KAAKoH,IAAkB,WAASpH,KAAKqH,IAAiB,IAAKlH,iBAAQoH,OAC/DpI,EAC2B,iBAAtBoI,EAAiCvH,EAAKuH,GAAqBA,EAClEpI,MAAAA,IACIqI,MAAMC,QAAQtI,GAAOA,EAAKuI,aAAIC,UAAKA,MAClCxI,OCTjB,SAASyI,EAA2BC,YACvBC,EACLC,EACA7F,EACAE,EACA8E,EACAc,EACAC,wEAGOC,8BACHhB,EAAgBA,GAAiB,gBACjCe,EAAeA,GAAgB7F,EACR,MAAnBF,EAAME,GACF2F,EAEO,IAAI1E,MACP,OACI2E,EACA,KACAC,EACA,+BAEAf,EACA,yBAT2B,OAApBhF,EAAME,GAAqB,OAAS,aAW3C,MAGL,KAEAyF,gBAAS3F,EAAOE,EAAU8E,EAAec,EAAUC,UAAiBE,UAKjFC,EAAmBN,EAAUzD,KAAK,MAAM,UAC9C+D,EAAiBL,WAAaD,EAAUzD,KAAK,MAAM,GAC5C+D,EAwBX,SAASC,EAAYC,OACXC,SAAkBD,SACpBd,MAAMC,QAAQa,GACP,QAEPA,aAAqBE,OAId,SA7Bf,SAAkBD,EAAUD,SAEP,WAAbC,GAK+B,WAA/BD,EAAU,kBAKQ,mBAAXtL,QAAyBsL,aAAqBtL,OAmBrDyL,CAASF,EAAUD,GACZ,SAEJC,EAiBX,SAASG,EAAmCC,EAAiBC,UAClDhB,EAA2B,SAC9B1F,EACAE,EACA8E,EACAc,EACAC,UAEOC,0BACCS,GACIN,EAAYnG,EAAME,MAAewG,EAASC,cAAe,OAAO,SAEpEC,SACIF,OACC,QACDE,EAAcC,8BAEb,SACDD,EAAcE,+BAEb,MACDF,EAAcG,sCAGR,IAAI5F,8BAA8BuF,OAE1CN,EAAYpG,EAAME,OACnB0G,EAAYR,GAAY,KACnBY,EAxCtB,SAAwBZ,OACdC,EAAWF,EAAYC,MACZ,WAAbC,EAAuB,IACnBD,aAAqBa,WACd,OACJ,GAAIb,aAAqBE,aACrB,gBAGRD,EA+ByBa,CAAed,GAC7Be,EAA+BV,EAC/B,mBAAqBC,EAASC,cAAgB,IAC9C,UACC,IAAIxF,MACP,iBACI4E,EACA,cACAiB,EACA,kBAEAhC,EACA,+BACA0B,EACA,IACAS,EACA,YAGL,SAKnB,SAASC,EAAmCX,EAAiBY,UAClD3B,EAA2B,SAC9B1F,EACAE,EACA8E,EACAc,EACAC,wEAGOC,0BACwB,mBAAhBqB,SACA,IAAIlG,MACP,aACI4E,EACA,mBACAf,EACA,wCAIRsC,EAAQd,EAAmCC,EAAiB,QAApDD,CACRxG,EACAE,EACA8E,MAEAsC,aAAiBnG,MAAO,OAAOmG,UAC7BlB,EAAYpG,EAAME,GACfvE,EAAI,EAAGA,EAAIyK,EAAU3K,OAAQE,QAClC2L,EAAQD,gBACJjB,EACAzK,EACAqJ,EACAc,EACAC,EAAe,IAAMpK,EAAI,YACtBsK,eAEc9E,MAAO,OAAOmG,SAEhC,SAKnBtL,IAQauL,EAAY,iBARDf,GAAmC,EAAO,2BACxCY,EAAmCjF,KAAK,MAAM,iBAClDqE,GAAmC,EAAO,wBACvCA,GAAmC,EAAO,iCACpCA,GAAmC,EAAM,kCACvCY,EAAmCjF,KAAK,MAAM,4BAC9CqE,GAAmC,EAAM,WCjM1E,IAAK7E,YAAW,MAAM,IAAIR,MAAM,6CAChC,IAAKqG,aAAY,MAAM,IAAIrG,MAAM,4CAER,mBAAdsG,2BAA0BC,YAAU,CAAEC,kBAAmBF,iXH8D7D,mBACCxD,uDACwB,mBAAjB1C,UAAU,IACjB0C,EAAe1C,UAAU,YAClBN,UACH+C,EAAoBC,EAAchD,EAAgBgD,EAAapJ,MAAM,cAElEoG,UACH+C,EAjCZ,SAA0B4D,UACf,SAASC,EAAYnI,UACxBkI,EAAW3J,QAAQ,SAAS6J,QAEpBA,KAAapI,SAGXoI,KAAaD,GACf,MAAM,IAAI1G,MACN,yBACI2G,EACA,iEAEZpI,EAAUoI,GAAaD,EAAWC,MAE/BpI,GAmBCqI,CAAiBH,GACjB3G,EACA2G,EAAWI,KAAK,MAChB,8BChET,SAASC,EAAiBjL,EAAQkL,MACjC5C,MAAMC,QAAQ2C,UACPA,EAAsB1C,aAAI2C,UAAMF,EAAiBjL,EAAQmL,SAG9DC,EAAI9M,OAAOuJ,eAAe7H,GAAQkF,aAAe5G,OAAOuJ,eAAe7H,EAAOkF,aAC9EmG,EAAK/M,OAAOuJ,eAAe7H,EAAOkF,gBAGhCkG,IAAM/G,aACN+G,IAAM/G,iBACNgH,IAAOhH,aACPgH,IAAOhH,sBAGL,IAAIF,MACN,+GAK6B,iBAA1B+G,GAC0B,mBAA1BA,IACN5C,MAAMC,QAAQ2C,SAET,IAAI/G,MACN,yGAQFmH,IAAgCtL,EAAOkI,MAAoBlI,EAAOmI,UAHnB,iBAA1B+C,EAMrBlL,EAAOkI,KAAmBlI,EAAOkI,GAAiB,IAElDlI,EAAOmI,KAAkBnI,EAAOmI,GAAgB,KAEhDzG,KAAKwJ,GAGNI,GACDlK,EAAMpB,EAAQ,uBAAwBoI,GAIL,iBAA1B8C,EACAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{unstable_batchedUpdates as
|
|
1
|
+
import{unstable_batchedUpdates as e}from"react-dom";import{isUsingStaticRendering as r,observer as t,Observer as o}from"mobx-react-lite";export{Observer,useObserver,useAsObservableSource,useLocalStore,isUsingStaticRendering,useStaticRendering}from"mobx-react-lite";import n,{PureComponent as i,Component as a,forwardRef as c,memo as s,createElement as u}from"react";import{createAtom as f,_allowStateChanges as p,Reaction as l,$mobx as b,isObservableArray as y,isObservableObject as d,isObservableMap as h,untracked as m,observable as v,configure as O}from"mobx";var g=0,w={};function j(e){return w[e]||(w[e]=function(e){if("function"==typeof Symbol)return Symbol(e);var r="__$mobx-react "+e+" ("+g+")";return g++,r}(e)),w[e]}function x(e,r){if(P(e,r))return!0;if("object"!=typeof e||null===e||"object"!=typeof r||null===r)return!1;var t=Object.keys(e),o=Object.keys(r);if(t.length!==o.length)return!1;for(var n=0;n<t.length;n++)if(!hasOwnProperty.call(r,t[n])||!P(e[t[n]],r[t[n]]))return!1;return!0}function P(e,r){return e===r?0!==e||1/e==1/r:e!=e&&r!=r}var E={$$typeof:1,render:1,compare:1,type:1,childContextTypes:1,contextType:1,contextTypes:1,defaultProps:1,getDefaultProps:1,getDerivedStateFromError:1,getDerivedStateFromProps:1,mixins:1,propTypes:1};function S(e,r,t){Object.hasOwnProperty.call(e,r)?e[r]=t:Object.defineProperty(e,r,{enumerable:!1,configurable:!0,writable:!0,value:t})}var R=j("patchMixins"),k=j("patchedDefinition");function A(e,r){for(var t=this,o=[],n=arguments.length-2;n-- >0;)o[n]=arguments[n+2];r.locks++;try{var i;return null!=e&&(i=e.apply(this,o)),i}finally{r.locks--,0===r.locks&&r.methods.forEach(function(e){e.apply(t,o)})}}function C(e,r){return function(){for(var t=[],o=arguments.length;o--;)t[o]=arguments[o];A.call.apply(A,[this,e,r].concat(t))}}function U(e,r,t){var o=function(e,r){var t=e[R]=e[R]||{},o=t[r]=t[r]||{};return o.locks=o.locks||0,o.methods=o.methods||[],o}(e,r);o.methods.indexOf(t)<0&&o.methods.push(t);var n=Object.getOwnPropertyDescriptor(e,r);if(!n||!n[k]){var i=function e(r,t,o,n,i){var a,c=C(i,n);return(a={})[k]=!0,a.get=function(){return c},a.set=function(i){if(this===r)c=C(i,n);else{var a=e(this,t,o,n,i);Object.defineProperty(this,t,a)}},a.configurable=!0,a.enumerable=o,a}(e,r,n?n.enumerable:void 0,o,e[r]);Object.defineProperty(e,r,i)}}var M=b||"$mobx",$=j("isUnmounted"),_=j("skipRender"),T=j("isForcingUpdate");function N(e,t){return r()&&console.warn("[mobx-react] It seems that a re-rendering of a React component is triggered while in static (server-side) mode. Please make sure components are rendered only once server-side."),this.state!==t||!x(this.props,e)}function D(e,r){var t=j("reactProp_"+r+"_valueHolder"),o=j("reactProp_"+r+"_atomHolder");function n(){return this[o]||S(this,o,f("reactive "+r)),this[o]}Object.defineProperty(e,r,{configurable:!0,enumerable:!0,get:function(){return n.call(this).reportObserved(),this[t]},set:function(e){this[T]||x(this[t],e)?S(this,t,e):(S(this,t,e),S(this,_,!0),n.call(this).reportChanged(),S(this,_,!1))}})}var I="function"==typeof Symbol&&Symbol.for,q=I?Symbol.for("react.forward_ref"):"function"==typeof c&&c(function(){}).$$typeof,F=I?Symbol.for("react.memo"):"function"==typeof s&&s(function(){}).$$typeof;function W(e){if(!0===e.isMobxInjector&&console.warn("Mobx observer: You are trying to use 'observer' on a component that already has 'inject'. Please apply 'observer' before applying 'inject'"),F&&e.$$typeof===F)throw new Error("Mobx observer: You are trying to use 'observer' on function component wrapped to either another observer or 'React.memo'. The observer already applies 'React.memo' for you.");if(q&&e.$$typeof===q){var s=e.render;if("function"!=typeof s)throw new Error("render property of ForwardRef was not a function");return c(function(){var e=arguments;return n.createElement(o,null,function(){return s.apply(void 0,e)})})}return"function"!=typeof e||e.prototype&&e.prototype.render||e.isReactClass||Object.prototype.isPrototypeOf.call(a,e)?function(e){var t=e.prototype;if(t.componentWillReact)throw new Error("The componentWillReact life-cycle event is no longer supported");if(e.__proto__!==i)if(t.shouldComponentUpdate){if(t.shouldComponentUpdate!==N)throw new Error("It is not allowed to use shouldComponentUpdate in observer based components.")}else t.shouldComponentUpdate=N;D(t,"props"),D(t,"state");var o=t.render;return t.render=function(){return function(e){var t=this;if(!0===r())return e.call(this);S(this,_,!1),S(this,T,!1);var o=this.displayName||this.name||this.constructor&&(this.constructor.displayName||this.constructor.name)||"<component>",n=e.bind(this),i=!1,c=new l(o+".render()",function(){if(!i&&(i=!0,!0!==t[$])){var e=!0;try{S(t,T,!0),t[_]||a.prototype.forceUpdate.call(t),e=!1}finally{S(t,T,!1),e&&c.dispose()}}});function s(){i=!1;var e=void 0,r=void 0;if(c.track(function(){try{r=p(!1,n)}catch(r){e=r}}),e)throw e;return r}return c.reactComponent=this,s[M]=c,this.render=s,s.call(this)}.call(this,o)},U(t,"componentWillUnmount",function(){!0!==r()&&(this.render[M]&&this.render[M].dispose(),this[$]=!0)}),e}(e):t(e)}var L=n.createContext({});function X(e){var r=e.children,t=function(e,r){var t={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&-1===r.indexOf(o)&&(t[o]=e[o]);return t}(e,["children"]),o=n.useContext(L),i=n.useRef(Object.assign({},o,t)).current;if("production"!==process.env.NODE_ENV&&!x(i,Object.assign({},i,t)))throw new Error("MobX Provider: The set of provided stores has changed. See: https://github.com/mobxjs/mobx-react#the-set-of-provided-stores-has-changed-error.");return n.createElement(L.Provider,{value:i},r)}function H(e,r,t,o){var i,a,c,s=n.forwardRef(function(t,o){var i=Object.assign({},t),a=n.useContext(L);return Object.assign(i,e(a||{},i)||{}),o&&(i.ref=o),u(r,i)});return o&&(s=W(s)),s.isMobxInjector=!0,i=r,a=s,c=Object.getOwnPropertyNames(Object.getPrototypeOf(i)),Object.getOwnPropertyNames(i).forEach(function(e){E[e]||-1!==c.indexOf(e)||Object.defineProperty(a,e,Object.getOwnPropertyDescriptor(i,e))}),s.wrappedComponent=r,s.displayName=function(e,r){var t=e.displayName||e.name||e.constructor&&e.constructor.name||"Component";return r?"inject-with-"+r+"("+t+")":"inject("+t+")"}(r,t),s}function Y(){for(var e,r=[],t=arguments.length;t--;)r[t]=arguments[t];return"function"==typeof arguments[0]?(e=arguments[0],function(r){return H(e,r,e.name,!0)}):function(e){return H(function(e){return function(r,t){return e.forEach(function(e){if(!(e in t)){if(!(e in r))throw new Error("MobX injector: Store '"+e+"' is not available! Make sure it is provided by some Provider");t[e]=r[e]}}),t}}(r),e,r.join("-"),!1)}}X.displayName="MobXProvider";var V=j("disposeOnUnmountProto"),z=j("disposeOnUnmountInst");function B(){var e=this;(this[V]||[]).concat(this[z]||[]).forEach(function(r){var t="string"==typeof r?e[r]:r;null!=t&&(Array.isArray(t)?t.map(function(e){return e()}):t())})}function G(e,r){if(Array.isArray(r))return r.map(function(r){return G(e,r)});var t=Object.getPrototypeOf(e).constructor||Object.getPrototypeOf(e.constructor),o=Object.getPrototypeOf(e.constructor);if(t!==a&&t!==i&&o!==a&&o!==i)throw new Error("[mobx-react] disposeOnUnmount only supports direct subclasses of React.Component or React.PureComponent.");if("string"!=typeof r&&"function"!=typeof r&&!Array.isArray(r))throw new Error("[mobx-react] disposeOnUnmount only works if the parameter is either a property key or a function.");var n=!!e[V]||!!e[z];return("string"==typeof r?e[V]||(e[V]=[]):e[z]||(e[z]=[])).push(r),n||U(e,"componentWillUnmount",B),"string"!=typeof r?r:void 0}function J(e){function r(r,t,o,n,i,a){for(var c=[],s=arguments.length-6;s-- >0;)c[s]=arguments[s+6];return m(function(){return n=n||"<<anonymous>>",a=a||o,null==t[o]?r?new Error("The "+i+" `"+a+"` is marked as required in `"+n+"`, but its value is `"+(null===t[o]?"null":"undefined")+"`."):null:e.apply(void 0,[t,o,n,i,a].concat(c))})}var t=r.bind(null,!1);return t.isRequired=r.bind(null,!0),t}function K(e){var r=typeof e;return Array.isArray(e)?"array":e instanceof RegExp?"object":function(e,r){return"symbol"===e||"Symbol"===r["@@toStringTag"]||"function"==typeof Symbol&&r instanceof Symbol}(r,e)?"symbol":r}function Q(e,r){return J(function(t,o,n,i,a){return m(function(){if(e&&K(t[o])===r.toLowerCase())return null;var i;switch(r){case"Array":i=y;break;case"Object":i=d;break;case"Map":i=h;break;default:throw new Error("Unexpected mobxType: "+r)}var c=t[o];if(!i(c)){var s=function(e){var r=K(e);if("object"===r){if(e instanceof Date)return"date";if(e instanceof RegExp)return"regexp"}return r}(c),u=e?" or javascript `"+r.toLowerCase()+"`":"";return new Error("Invalid prop `"+a+"` of type `"+s+"` supplied to `"+n+"`, expected `mobx.Observable"+r+"`"+u+".")}return null})})}function Z(e,r){return J(function(t,o,n,i,a){for(var c=[],s=arguments.length-5;s-- >0;)c[s]=arguments[s+5];return m(function(){if("function"!=typeof r)return new Error("Property `"+a+"` of component `"+n+"` has invalid PropType notation.");var s=Q(e,"Array")(t,o,n);if(s instanceof Error)return s;for(var u=t[o],f=0;f<u.length;f++)if((s=r.apply(void 0,[u,f,n,i,a+"["+f+"]"].concat(c)))instanceof Error)return s;return null})})}var ee={observableArray:Q(!1,"Array"),observableArrayOf:Z.bind(null,!1),observableMap:Q(!1,"Map"),observableObject:Q(!1,"Object"),arrayOrObservableArray:Q(!0,"Array"),arrayOrObservableArrayOf:Z.bind(null,!0),objectOrObservableObject:Q(!0,"Object")};if(!a)throw new Error("mobx-react requires React to be available");if(!v)throw new Error("mobx-react requires mobx to be available");"function"==typeof e&&O({reactionScheduler:e});export{W as observer,X as Provider,L as MobXProviderContext,Y as inject,G as disposeOnUnmount,ee as PropTypes};
|
|
2
2
|
//# sourceMappingURL=mobx-react.module.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mobx-react.module.js","sources":["../src/utils/utils.js","../src/observerClass.js","../src/observer.js","../src/Provider.js","../src/inject.js","../src/disposeOnUnmount.js","../src/propTypes.js","../src/index.js"],"sourcesContent":["export function isStateless(component) {\n // `function() {}` has prototype, but `() => {}` doesn't\n // `() => {}` via Babel has prototype too.\n return !(component.prototype && component.prototype.render)\n}\n\nlet symbolId = 0\nfunction createSymbol(name) {\n if (typeof Symbol === \"function\") {\n return Symbol(name)\n }\n const symbol = `__$mobx-react ${name} (${symbolId})`\n symbolId++\n return symbol\n}\n\nconst createdSymbols = {}\nexport function newSymbol(name) {\n if (!createdSymbols[name]) {\n createdSymbols[name] = createSymbol(name)\n }\n return createdSymbols[name]\n}\n\nexport function shallowEqual(objA, objB) {\n //From: https://github.com/facebook/fbjs/blob/c69904a511b900266935168223063dd8772dfc40/packages/fbjs/src/core/shallowEqual.js\n if (is(objA, objB)) return true\n if (typeof objA !== \"object\" || objA === null || typeof objB !== \"object\" || objB === null) {\n return false\n }\n const keysA = Object.keys(objA)\n const keysB = Object.keys(objB)\n if (keysA.length !== keysB.length) return false\n for (let i = 0; i < keysA.length; i++) {\n if (!hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n return false\n }\n }\n return true\n}\n\nfunction is(x, y) {\n // From: https://github.com/facebook/fbjs/blob/c69904a511b900266935168223063dd8772dfc40/packages/fbjs/src/core/shallowEqual.js\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y\n } else {\n return x !== x && y !== y\n }\n}\n\n// based on https://github.com/mridgway/hoist-non-react-statics/blob/master/src/index.js\nconst hoistBlackList = {\n $$typeof: 1,\n render: 1,\n compare: 1,\n type: 1,\n childContextTypes: 1,\n contextType: 1,\n contextTypes: 1,\n defaultProps: 1,\n getDefaultProps: 1,\n getDerivedStateFromError: 1,\n getDerivedStateFromProps: 1,\n mixins: 1,\n propTypes: 1\n}\n\nexport function copyStaticProperties(base, target) {\n const protoProps = Object.getOwnPropertyNames(Object.getPrototypeOf(base))\n Object.getOwnPropertyNames(base).forEach(key => {\n if (!hoistBlackList[key] && protoProps.indexOf(key) === -1) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(base, key))\n }\n })\n}\n\n/**\n * Helper to set `prop` to `this` as non-enumerable (hidden prop)\n * @param target\n * @param prop\n * @param value\n */\nexport function setHiddenProp(target, prop, value) {\n if (!Object.hasOwnProperty.call(target, prop)) {\n Object.defineProperty(target, prop, {\n enumerable: false,\n configurable: true,\n writable: true,\n value\n })\n } else {\n target[prop] = value\n }\n}\n\n/**\n * Utilities for patching componentWillUnmount, to make sure @disposeOnUnmount works correctly icm with user defined hooks\n * and the handler provided by mobx-react\n */\nconst mobxMixins = newSymbol(\"patchMixins\")\nconst mobxPatchedDefinition = newSymbol(\"patchedDefinition\")\n\nfunction getMixins(target, methodName) {\n const mixins = (target[mobxMixins] = target[mobxMixins] || {})\n const methodMixins = (mixins[methodName] = mixins[methodName] || {})\n methodMixins.locks = methodMixins.locks || 0\n methodMixins.methods = methodMixins.methods || []\n return methodMixins\n}\n\nfunction wrapper(realMethod, mixins, ...args) {\n // locks are used to ensure that mixins are invoked only once per invocation, even on recursive calls\n mixins.locks++\n\n try {\n let retVal\n if (realMethod !== undefined && realMethod !== null) {\n retVal = realMethod.apply(this, args)\n }\n\n return retVal\n } finally {\n mixins.locks--\n if (mixins.locks === 0) {\n mixins.methods.forEach(mx => {\n mx.apply(this, args)\n })\n }\n }\n}\n\nfunction wrapFunction(realMethod, mixins) {\n const fn = function(...args) {\n wrapper.call(this, realMethod, mixins, ...args)\n }\n return fn\n}\n\nexport function patch(target, methodName, mixinMethod) {\n const mixins = getMixins(target, methodName)\n\n if (mixins.methods.indexOf(mixinMethod) < 0) {\n mixins.methods.push(mixinMethod)\n }\n\n const oldDefinition = Object.getOwnPropertyDescriptor(target, methodName)\n if (oldDefinition && oldDefinition[mobxPatchedDefinition]) {\n // already patched definition, do not repatch\n return\n }\n\n const originalMethod = target[methodName]\n const newDefinition = createDefinition(\n target,\n methodName,\n oldDefinition ? oldDefinition.enumerable : undefined,\n mixins,\n originalMethod\n )\n\n Object.defineProperty(target, methodName, newDefinition)\n}\n\nfunction createDefinition(target, methodName, enumerable, mixins, originalMethod) {\n let wrappedFunc = wrapFunction(originalMethod, mixins)\n\n return {\n [mobxPatchedDefinition]: true,\n get: function() {\n return wrappedFunc\n },\n set: function(value) {\n if (this === target) {\n wrappedFunc = wrapFunction(value, mixins)\n } else {\n // when it is an instance of the prototype/a child prototype patch that particular case again separately\n // since we need to store separate values depending on wether it is the actual instance, the prototype, etc\n // e.g. the method for super might not be the same as the method for the prototype which might be not the same\n // as the method for the instance\n const newDefinition = createDefinition(this, methodName, enumerable, mixins, value)\n Object.defineProperty(this, methodName, newDefinition)\n }\n },\n configurable: true,\n enumerable: enumerable\n }\n}\n","import { PureComponent, Component } from \"react\"\nimport { createAtom, _allowStateChanges, Reaction, $mobx } from \"mobx\"\nimport { isUsingStaticRendering } from \"mobx-react-lite\"\n\nimport { newSymbol, shallowEqual, setHiddenProp, patch } from \"./utils/utils\"\n\nconst mobxAdminProperty = $mobx || \"$mobx\"\nconst mobxIsUnmounted = newSymbol(\"isUnmounted\")\nconst skipRenderKey = newSymbol(\"skipRender\")\nconst isForcingUpdateKey = newSymbol(\"isForcingUpdate\")\n\nexport function makeClassComponentObserver(componentClass) {\n const target = componentClass.prototype\n if (target.componentWillReact)\n throw new Error(\"The componentWillReact life-cycle event is no longer supported\")\n if (componentClass.__proto__ !== PureComponent) {\n if (!target.shouldComponentUpdate) target.shouldComponentUpdate = observerSCU\n else if (target.shouldComponentUpdate !== observerSCU)\n // n.b. unequal check, instead of existence check, as @observer might be on superclass as well\n throw new Error(\n \"It is not allowed to use shouldComponentUpdate in observer based components.\"\n )\n }\n\n // this.props and this.state are made observable, just to make sure @computed fields that\n // are defined inside the component, and which rely on state or props, re-compute if state or props change\n // (otherwise the computed wouldn't update and become stale on props change, since props are not observable)\n // However, this solution is not without it's own problems: https://github.com/mobxjs/mobx-react/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3Aobservable-props-or-not+\n makeObservableProp(target, \"props\")\n makeObservableProp(target, \"state\")\n\n const baseRender = target.render\n target.render = function() {\n return makeComponentReactive.call(this, baseRender)\n }\n patch(target, \"componentWillUnmount\", function() {\n if (isUsingStaticRendering() === true) return\n this.render[mobxAdminProperty] && this.render[mobxAdminProperty].dispose()\n this[mobxIsUnmounted] = true\n })\n return componentClass\n}\n\nfunction makeComponentReactive(render) {\n if (isUsingStaticRendering() === true) return render.call(this)\n\n /**\n * If props are shallowly modified, react will render anyway,\n * so atom.reportChanged() should not result in yet another re-render\n */\n setHiddenProp(this, skipRenderKey, false)\n /**\n * forceUpdate will re-assign this.props. We don't want that to cause a loop,\n * so detect these changes\n */\n setHiddenProp(this, isForcingUpdateKey, false)\n\n // Generate friendly name for debugging\n const initialName =\n this.displayName ||\n this.name ||\n (this.constructor && (this.constructor.displayName || this.constructor.name)) ||\n \"<component>\"\n const baseRender = render.bind(this)\n\n let isRenderingPending = false\n\n const reaction = new Reaction(`${initialName}.render()`, () => {\n if (!isRenderingPending) {\n // N.B. Getting here *before mounting* means that a component constructor has side effects (see the relevant test in misc.js)\n // This unidiomatic React usage but React will correctly warn about this so we continue as usual\n // See #85 / Pull #44\n isRenderingPending = true\n if (this[mobxIsUnmounted] !== true) {\n let hasError = true\n try {\n setHiddenProp(this, isForcingUpdateKey, true)\n if (!this[skipRenderKey]) Component.prototype.forceUpdate.call(this)\n hasError = false\n } finally {\n setHiddenProp(this, isForcingUpdateKey, false)\n if (hasError) reaction.dispose()\n }\n }\n }\n })\n reaction.reactComponent = this\n reactiveRender[mobxAdminProperty] = reaction\n this.render = reactiveRender\n\n function reactiveRender() {\n isRenderingPending = false\n let exception = undefined\n let rendering = undefined\n reaction.track(() => {\n try {\n rendering = _allowStateChanges(false, baseRender)\n } catch (e) {\n exception = e\n }\n })\n if (exception) {\n throw exception\n }\n return rendering\n }\n\n return reactiveRender.call(this)\n}\n\nfunction observerSCU(nextProps, nextState) {\n if (isUsingStaticRendering()) {\n console.warn(\n \"[mobx-react] It seems that a re-rendering of a React component is triggered while in static (server-side) mode. Please make sure components are rendered only once server-side.\"\n )\n }\n // update on any state changes (as is the default)\n if (this.state !== nextState) {\n return true\n }\n // update if props are shallowly not equal, inspired by PureRenderMixin\n // we could return just 'false' here, and avoid the `skipRender` checks etc\n // however, it is nicer if lifecycle events are triggered like usually,\n // so we return true here if props are shallowly modified.\n return !shallowEqual(this.props, nextProps)\n}\n\nfunction makeObservableProp(target, propName) {\n const valueHolderKey = newSymbol(`reactProp_${propName}_valueHolder`)\n const atomHolderKey = newSymbol(`reactProp_${propName}_atomHolder`)\n function getAtom() {\n if (!this[atomHolderKey]) {\n setHiddenProp(this, atomHolderKey, createAtom(\"reactive \" + propName))\n }\n return this[atomHolderKey]\n }\n Object.defineProperty(target, propName, {\n configurable: true,\n enumerable: true,\n get: function() {\n getAtom.call(this).reportObserved()\n return this[valueHolderKey]\n },\n set: function set(v) {\n if (!this[isForcingUpdateKey] && !shallowEqual(this[valueHolderKey], v)) {\n setHiddenProp(this, valueHolderKey, v)\n setHiddenProp(this, skipRenderKey, true)\n getAtom.call(this).reportChanged()\n setHiddenProp(this, skipRenderKey, false)\n } else {\n setHiddenProp(this, valueHolderKey, v)\n }\n }\n })\n}\n","import React, { Component, forwardRef } from \"react\"\nimport { _allowStateChanges } from \"mobx\"\nimport { observer as observerLite, Observer } from \"mobx-react-lite\"\n\nimport { makeClassComponentObserver } from \"./observerClass\"\n\n// Using react-is had some issues (and operates on elements, not on types), see #608 / #609\nconst ReactForwardRefSymbol =\n typeof forwardRef === \"function\" && forwardRef((_props, _ref) => {})[\"$$typeof\"]\n\n/**\n * Observer function / decorator\n */\nexport function observer(componentClass) {\n if (componentClass.isMobxInjector === true) {\n console.warn(\n \"Mobx observer: You are trying to use 'observer' on a component that already has 'inject'. Please apply 'observer' before applying 'inject'\"\n )\n }\n\n // Unwrap forward refs into `<Observer>` component\n // we need to unwrap the render, because it is the inner render that needs to be tracked,\n // not the ForwardRef HoC\n if (ReactForwardRefSymbol && componentClass[\"$$typeof\"] === ReactForwardRefSymbol) {\n const baseRender = componentClass.render\n if (typeof baseRender !== \"function\")\n throw new Error(\"render property of ForwardRef was not a function\")\n return forwardRef(function ObserverForwardRef() {\n return <Observer>{() => baseRender.apply(undefined, arguments)}</Observer>\n })\n }\n\n // Function component\n if (\n typeof componentClass === \"function\" &&\n (!componentClass.prototype || !componentClass.prototype.render) &&\n !componentClass.isReactClass &&\n !Component.isPrototypeOf(componentClass)\n ) {\n return observerLite(componentClass)\n }\n\n return makeClassComponentObserver(componentClass)\n}\n","import { Children, Component, createContext, createElement } from \"react\"\nimport { shallowEqual } from \"./utils/utils\"\n\nconst specialReactKeys = { children: true, key: true, ref: true }\n\nexport const MobXProviderContext = createContext({})\n\nexport class Provider extends Component {\n static contextType = MobXProviderContext\n\n constructor(props, context) {\n super(props, context)\n this.state = {\n ...context,\n ...grabStores(props)\n }\n }\n\n render() {\n return createElement(\n MobXProviderContext.Provider,\n { value: this.state },\n Children.only(this.props.children)\n )\n }\n\n static getDerivedStateFromProps(nextProps, prevState) {\n if (process.env.NODE_ENV !== \"production\") {\n const newStores = { ...prevState, ...grabStores(nextProps) } // spread in prevState for the context based stores\n if (!shallowEqual(prevState, newStores))\n throw new Error(\n \"MobX Provider: The set of provided stores has changed. Please avoid changing stores as the change might not propagate to all children\"\n )\n }\n return prevState // because they didn't change, remember!\n }\n}\n\nfunction grabStores(from) {\n const res = {}\n if (!from) return res\n for (let key in from) if (validStoreName(key)) res[key] = from[key]\n return res\n}\n\nfunction validStoreName(key) {\n return !specialReactKeys[key] && key !== \"suppressChangedStoreWarning\"\n}\n","import React, { Component, createElement } from \"react\"\nimport { observer } from \"./observer\"\nimport { isStateless, copyStaticProperties } from \"./utils/utils\"\nimport { MobXProviderContext } from \"./Provider\"\n\n/**\n * Store Injection\n */\nfunction createStoreInjector(grabStoresFn, component, injectNames, makeReactive) {\n let displayName = getInjectName(component, injectNames)\n\n class Injector extends Component {\n static contextType = MobXProviderContext\n\n render() {\n const { forwardRef, ...props } = this.props\n\n Object.assign(props, grabStoresFn(this.context || {}, props) || {})\n\n if (forwardRef && !isStateless(component)) {\n props.ref = this.props.forwardRef\n }\n\n return createElement(component, props)\n }\n }\n if (makeReactive) Injector = observer(Injector)\n Injector.isMobxInjector = true // assigned late to suppress observer warning\n\n // Support forward refs\n const InjectHocRef = React.forwardRef((props, ref) =>\n React.createElement(Injector, { ...props, forwardRef: ref })\n )\n // Static fields from component should be visible on the generated Injector\n copyStaticProperties(component, InjectHocRef)\n InjectHocRef.wrappedComponent = component\n InjectHocRef.displayName = displayName\n return InjectHocRef\n}\n\nfunction getInjectName(component, injectNames) {\n let displayName\n const componentName =\n component.displayName ||\n component.name ||\n (component.constructor && component.constructor.name) ||\n \"Component\"\n if (injectNames) displayName = \"inject-with-\" + injectNames + \"(\" + componentName + \")\"\n else displayName = \"inject(\" + componentName + \")\"\n return displayName\n}\n\nfunction grabStoresByName(storeNames) {\n return function(baseStores, nextProps) {\n storeNames.forEach(function(storeName) {\n if (\n storeName in nextProps // prefer props over stores\n )\n return\n if (!(storeName in baseStores))\n throw new Error(\n \"MobX injector: Store '\" +\n storeName +\n \"' is not available! Make sure it is provided by some Provider\"\n )\n nextProps[storeName] = baseStores[storeName]\n })\n return nextProps\n }\n}\n\n/**\n * higher order component that injects stores to a child.\n * takes either a varargs list of strings, which are stores read from the context,\n * or a function that manually maps the available stores from the context to props:\n * storesToProps(mobxStores, props, context) => newProps\n */\nexport function inject(/* fn(stores, nextProps) or ...storeNames */ ...storeNames) {\n let grabStoresFn\n if (typeof arguments[0] === \"function\") {\n grabStoresFn = arguments[0]\n return componentClass =>\n createStoreInjector(grabStoresFn, componentClass, grabStoresFn.name, true)\n } else {\n return componentClass =>\n createStoreInjector(\n grabStoresByName(storeNames),\n componentClass,\n storeNames.join(\"-\"),\n false\n )\n }\n}\n","import * as React from \"react\"\nimport { patch, newSymbol } from \"./utils/utils\"\n\nconst storeKey = newSymbol(\"disposeOnUnmount\")\n\nfunction runDisposersOnWillUnmount() {\n if (!this[storeKey]) {\n // when disposeOnUnmount is only set to some instances of a component it will still patch the prototype\n return\n }\n this[storeKey].forEach(propKeyOrFunction => {\n const prop =\n typeof propKeyOrFunction === \"string\" ? this[propKeyOrFunction] : propKeyOrFunction\n if (prop !== undefined && prop !== null) {\n if (Array.isArray(prop)) prop.map(f => f())\n else prop()\n }\n })\n this[storeKey] = []\n}\n\nexport function disposeOnUnmount(target, propertyKeyOrFunction) {\n if (Array.isArray(propertyKeyOrFunction)) {\n return propertyKeyOrFunction.map(fn => disposeOnUnmount(target, fn))\n }\n\n const c = Object.getPrototypeOf(target).constructor || Object.getPrototypeOf(target.constructor)\n const c2 = Object.getPrototypeOf(target.constructor)\n if (\n !(\n c === React.Component ||\n c === React.PureComponent ||\n c2 === React.Component ||\n c2 === React.PureComponent\n )\n ) {\n throw new Error(\n \"[mobx-react] disposeOnUnmount only supports direct subclasses of React.Component or React.PureComponent.\"\n )\n }\n\n if (\n typeof propertyKeyOrFunction !== \"string\" &&\n typeof propertyKeyOrFunction !== \"function\" &&\n !Array.isArray(propertyKeyOrFunction)\n ) {\n throw new Error(\n \"[mobx-react] disposeOnUnmount only works if the parameter is either a property key or a function.\"\n )\n }\n\n // add property key / function we want run (disposed) to the store\n const componentWasAlreadyModified = !!target[storeKey]\n const store = target[storeKey] || (target[storeKey] = [])\n\n store.push(propertyKeyOrFunction)\n\n // tweak the component class componentWillUnmount if not done already\n if (!componentWasAlreadyModified) {\n patch(target, \"componentWillUnmount\", runDisposersOnWillUnmount)\n }\n\n // return the disposer as is if invoked as a non decorator\n if (typeof propertyKeyOrFunction !== \"string\") {\n return propertyKeyOrFunction\n }\n}\n","import { isObservableArray, isObservableObject, isObservableMap, untracked } from \"mobx\"\n\n// Copied from React.PropTypes\nfunction createChainableTypeChecker(validate) {\n function checkType(\n isRequired,\n props,\n propName,\n componentName,\n location,\n propFullName,\n ...rest\n ) {\n return untracked(() => {\n componentName = componentName || \"<<anonymous>>\"\n propFullName = propFullName || propName\n if (props[propName] == null) {\n if (isRequired) {\n const actual = props[propName] === null ? \"null\" : \"undefined\"\n return new Error(\n \"The \" +\n location +\n \" `\" +\n propFullName +\n \"` is marked as required \" +\n \"in `\" +\n componentName +\n \"`, but its value is `\" +\n actual +\n \"`.\"\n )\n }\n return null\n } else {\n return validate(props, propName, componentName, location, propFullName, ...rest)\n }\n })\n }\n\n const chainedCheckType = checkType.bind(null, false)\n chainedCheckType.isRequired = checkType.bind(null, true)\n return chainedCheckType\n}\n\n// Copied from React.PropTypes\nfunction isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === \"symbol\") {\n return true\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue[\"@@toStringTag\"] === \"Symbol\") {\n return true\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === \"function\" && propValue instanceof Symbol) {\n return true\n }\n\n return false\n}\n\n// Copied from React.PropTypes\nfunction getPropType(propValue) {\n const propType = typeof propValue\n if (Array.isArray(propValue)) {\n return \"array\"\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return \"object\"\n }\n if (isSymbol(propType, propValue)) {\n return \"symbol\"\n }\n return propType\n}\n\n// This handles more types than `getPropType`. Only used for error messages.\n// Copied from React.PropTypes\nfunction getPreciseType(propValue) {\n const propType = getPropType(propValue)\n if (propType === \"object\") {\n if (propValue instanceof Date) {\n return \"date\"\n } else if (propValue instanceof RegExp) {\n return \"regexp\"\n }\n }\n return propType\n}\n\nfunction createObservableTypeCheckerCreator(allowNativeType, mobxType) {\n return createChainableTypeChecker(function(\n props,\n propName,\n componentName,\n location,\n propFullName\n ) {\n return untracked(() => {\n if (allowNativeType) {\n if (getPropType(props[propName]) === mobxType.toLowerCase()) return null\n }\n let mobxChecker\n switch (mobxType) {\n case \"Array\":\n mobxChecker = isObservableArray\n break\n case \"Object\":\n mobxChecker = isObservableObject\n break\n case \"Map\":\n mobxChecker = isObservableMap\n break\n default:\n throw new Error(`Unexpected mobxType: ${mobxType}`)\n }\n const propValue = props[propName]\n if (!mobxChecker(propValue)) {\n const preciseType = getPreciseType(propValue)\n const nativeTypeExpectationMessage = allowNativeType\n ? \" or javascript `\" + mobxType.toLowerCase() + \"`\"\n : \"\"\n return new Error(\n \"Invalid prop `\" +\n propFullName +\n \"` of type `\" +\n preciseType +\n \"` supplied to\" +\n \" `\" +\n componentName +\n \"`, expected `mobx.Observable\" +\n mobxType +\n \"`\" +\n nativeTypeExpectationMessage +\n \".\"\n )\n }\n return null\n })\n })\n}\n\nfunction createObservableArrayOfTypeChecker(allowNativeType, typeChecker) {\n return createChainableTypeChecker(function(\n props,\n propName,\n componentName,\n location,\n propFullName,\n ...rest\n ) {\n return untracked(() => {\n if (typeof typeChecker !== \"function\") {\n return new Error(\n \"Property `\" +\n propFullName +\n \"` of component `\" +\n componentName +\n \"` has \" +\n \"invalid PropType notation.\"\n )\n }\n let error = createObservableTypeCheckerCreator(allowNativeType, \"Array\")(\n props,\n propName,\n componentName\n )\n if (error instanceof Error) return error\n const propValue = props[propName]\n for (let i = 0; i < propValue.length; i++) {\n error = typeChecker(\n propValue,\n i,\n componentName,\n location,\n propFullName + \"[\" + i + \"]\",\n ...rest\n )\n if (error instanceof Error) return error\n }\n return null\n })\n })\n}\n\nconst observableArray = createObservableTypeCheckerCreator(false, \"Array\")\nconst observableArrayOf = createObservableArrayOfTypeChecker.bind(null, false)\nconst observableMap = createObservableTypeCheckerCreator(false, \"Map\")\nconst observableObject = createObservableTypeCheckerCreator(false, \"Object\")\nconst arrayOrObservableArray = createObservableTypeCheckerCreator(true, \"Array\")\nconst arrayOrObservableArrayOf = createObservableArrayOfTypeChecker.bind(null, true)\nconst objectOrObservableObject = createObservableTypeCheckerCreator(true, \"Object\")\n\nexport const PropTypes = {\n observableArray,\n observableArrayOf,\n observableMap,\n observableObject,\n arrayOrObservableArray,\n arrayOrObservableArrayOf,\n objectOrObservableObject\n}\n","import { observable, configure } from \"mobx\"\nimport { Component } from \"react\"\nimport { unstable_batchedUpdates as rdBatched } from \"react-dom\"\n\nif (!Component) throw new Error(\"mobx-react requires React to be available\")\nif (!observable) throw new Error(\"mobx-react requires mobx to be available\")\n\nif (typeof rdBatched === \"function\") configure({ reactionScheduler: rdBatched })\n\nexport {\n Observer,\n useAsObservableSource,\n useLocalStore,\n isUsingStaticRendering,\n useStaticRendering\n} from \"mobx-react-lite\"\n\nexport { observer } from \"./observer\"\n\nexport { Provider, MobXProviderContext } from \"./Provider\"\nexport { inject } from \"./inject\"\nexport { disposeOnUnmount } from \"./disposeOnUnmount\"\nexport { PropTypes } from \"./propTypes\"\n"],"names":["let","symbolId","createdSymbols","newSymbol","name","Symbol","symbol","createSymbol","shallowEqual","objA","objB","is","keysA","Object","keys","keysB","length","i","hasOwnProperty","call","x","y","const","hoistBlackList","$$typeof","render","compare","type","childContextTypes","contextType","contextTypes","defaultProps","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","setHiddenProp","target","prop","value","defineProperty","enumerable","configurable","writable","mobxMixins","mobxPatchedDefinition","wrapper","realMethod","locks","retVal","apply","this","args","methods","forEach","mx","wrapFunction","patch","methodName","mixinMethod","methodMixins","getMixins","indexOf","push","oldDefinition","getOwnPropertyDescriptor","newDefinition","createDefinition","originalMethod","wrappedFunc","get","set","undefined","mobxAdminProperty","$mobx","mobxIsUnmounted","skipRenderKey","isForcingUpdateKey","observerSCU","nextProps","nextState","isUsingStaticRendering","console","warn","state","props","makeObservableProp","propName","valueHolderKey","atomHolderKey","getAtom","createAtom","reportObserved","v","reportChanged","ReactForwardRefSymbol","forwardRef","_props","_ref","observer","componentClass","isMobxInjector","baseRender","Error","React","Observer","arguments","prototype","isReactClass","Component","isPrototypeOf","componentWillReact","__proto__","PureComponent","shouldComponentUpdate","initialName","displayName","constructor","bind","isRenderingPending","reaction","Reaction","hasError","forceUpdate","dispose","reactiveRender","exception","rendering","track","_allowStateChanges","e","reactComponent","makeClassComponentObserver","observerLite","specialReactKeys","children","key","ref","MobXProviderContext","createContext","Provider","context","grabStores","createElement","Children","only","prevState","process","env","NODE_ENV","from","res","validStoreName","createStoreInjector","grabStoresFn","component","injectNames","makeReactive","componentName","getInjectName","Injector","assign","isStateless","base","protoProps","InjectHocRef","getOwnPropertyNames","getPrototypeOf","wrappedComponent","inject","storeNames","baseStores","storeName","grabStoresByName","join","storeKey","runDisposersOnWillUnmount","propKeyOrFunction","Array","isArray","map","f","disposeOnUnmount","propertyKeyOrFunction","fn","c","c2","componentWasAlreadyModified","createChainableTypeChecker","validate","checkType","isRequired","location","propFullName","untracked","rest","chainedCheckType","getPropType","propValue","propType","RegExp","isSymbol","createObservableTypeCheckerCreator","allowNativeType","mobxType","toLowerCase","mobxChecker","isObservableArray","isObservableObject","isObservableMap","preciseType","Date","getPreciseType","nativeTypeExpectationMessage","createObservableArrayOfTypeChecker","typeChecker","error","PropTypes","observable","rdBatched","configure","reactionScheduler"],"mappings":"8jBAMAA,IAAIC,EAAW,EAUTC,EAAiB,GAChB,SAASC,EAAUC,UACjBF,EAAeE,KAChBF,EAAeE,GAZvB,SAAsBA,MACI,mBAAXC,cACAA,OAAOD,OAEZE,EAAU,iBAAgBF,OAASH,aACzCA,IACOK,EAMoBC,CAAaH,IAEjCF,EAAeE,GAGnB,SAASI,EAAaC,EAAMC,MAE3BC,EAAGF,EAAMC,GAAO,OAAO,KACP,iBAATD,GAA8B,OAATA,GAAiC,iBAATC,GAA8B,OAATA,SAClE,MAELE,EAAQC,OAAOC,KAAKL,GACpBM,EAAQF,OAAOC,KAAKJ,MACtBE,EAAMI,SAAWD,EAAMC,OAAQ,OAAO,MACrChB,IAAIiB,EAAI,EAAGA,EAAIL,EAAMI,OAAQC,QACzBC,eAAeC,KAAKT,EAAME,EAAMK,MAAQN,EAAGF,EAAKG,EAAMK,IAAKP,EAAKE,EAAMK,YAChE,SAGR,EAGX,SAASN,EAAGS,EAAGC,UAEPD,IAAMC,EACO,IAAND,GAAW,EAAIA,GAAM,EAAIC,EAEzBD,GAAMA,GAAKC,GAAMA,EAKhCC,IAAMC,EAAiB,CACnBC,SAAU,EACVC,OAAQ,EACRC,QAAS,EACTC,KAAM,EACNC,kBAAmB,EACnBC,YAAa,EACbC,aAAc,EACdC,aAAc,EACdC,gBAAiB,EACjBC,yBAA0B,EAC1BC,yBAA0B,EAC1BC,OAAQ,EACRC,UAAW,GAkBf,SAAgBC,EAAcC,EAAQC,EAAMC,GACnC3B,OAAOK,eAAeC,KAAKmB,EAAQC,GAQpCD,EAAOC,GAAQC,EAPf3B,OAAO4B,eAAeH,EAAQC,EAAM,CAChCG,YAAY,EACZC,cAAc,EACdC,UAAU,QACVJ,IAWZlB,IAAMuB,EAAa1C,EAAU,eACvB2C,EAAwB3C,EAAU,qBAUxC,SAAS4C,EAAQC,EAAYb,wEAEzBA,EAAOc,gBAGCC,SACAF,MAAAA,IACAE,EAASF,EAAWG,MAAMC,KAAMC,IAG7BH,UAEPf,EAAOc,QACc,IAAjBd,EAAOc,OACPd,EAAOmB,QAAQC,iBAAQC,GACnBA,EAAGL,MAAMC,EAAMC,MAM/B,SAASI,EAAaT,EAAYb,UACnB,kEACPY,EAAQ5B,cAAKiC,KAAMJ,EAAYb,UAAWkB,KAKlD,SAAgBK,EAAMpB,EAAQqB,EAAYC,OAChCzB,EArCV,SAAmBG,EAAQqB,OACjBxB,EAAUG,EAAOO,GAAcP,EAAOO,IAAe,GACrDgB,EAAgB1B,EAAOwB,GAAcxB,EAAOwB,IAAe,UACjEE,EAAaZ,MAAQY,EAAaZ,OAAS,EAC3CY,EAAaP,QAAUO,EAAaP,SAAW,GACxCO,EAgCQC,CAAUxB,EAAQqB,GAE7BxB,EAAOmB,QAAQS,QAAQH,GAAe,GACtCzB,EAAOmB,QAAQU,KAAKJ,OAGlBK,EAAgBpD,OAAOqD,yBAAyB5B,EAAQqB,OAC1DM,IAAiBA,EAAcnB,QAM7BqB,EAWV,SAASC,EAAiB9B,EAAQqB,EAAYjB,EAAYP,EAAQkC,SAC1DC,EAAcb,EAAaY,EAAgBlC,YAExC,IACFW,IAAwB,IACzByB,IAAK,kBACMD,KAEXE,IAAK,SAAShC,MACNY,OAASd,EACTgC,EAAcb,EAAajB,EAAOL,OAC/B,KAKGgC,EAAgBC,EAAiBhB,KAAMO,EAAYjB,EAAYP,EAAQK,GAC7E3B,OAAO4B,eAAeW,KAAMO,EAAYQ,OAGhDxB,cAAc,IACdD,WAAYA,IAhCM0B,CAClB9B,EACAqB,EACAM,EAAgBA,EAAcvB,gBAAa+B,EAC3CtC,EALmBG,EAAOqB,IAS9B9C,OAAO4B,eAAeH,EAAQqB,EAAYQ,IC1J9C7C,IAAMoD,EAAoBC,GAAS,QAC7BC,EAAkBzE,EAAU,eAC5B0E,EAAgB1E,EAAU,cAC1B2E,EAAqB3E,EAAU,mBAqGrC,SAAS4E,EAAYC,EAAWC,UACxBC,KACAC,QAAQC,KACJ,mLAIJhC,KAAKiC,QAAUJ,IAOXzE,EAAa4C,KAAKkC,MAAON,GAGrC,SAASO,EAAmBjD,EAAQkD,OAC1BC,EAAiBtF,eAAuBqF,kBACxCE,EAAgBvF,eAAuBqF,0BACpCG,WACAvC,KAAKsC,IACNrD,EAAce,KAAMsC,EAAeE,EAAW,YAAcJ,IAEzDpC,KAAKsC,GAEhB7E,OAAO4B,eAAeH,EAAQkD,EAAU,CACpC7C,cAAc,EACdD,YAAY,EACZ6B,IAAK,kBACDoB,EAAQxE,KAAKiC,MAAMyC,iBACZzC,KAAKqC,IAEhBjB,IAAK,SAAasB,GACT1C,KAAK0B,IAAwBtE,EAAa4C,KAAKqC,GAAiBK,GAMjEzD,EAAce,KAAMqC,EAAgBK,IALpCzD,EAAce,KAAMqC,EAAgBK,GACpCzD,EAAce,KAAMyB,GAAe,GACnCc,EAAQxE,KAAKiC,MAAM2C,gBACnB1D,EAAce,KAAMyB,GAAe,WC7I7CmB,EACoB,mBAAfC,GAA6BA,WAAYC,EAAQC,MAApB,SAKjC,SAASC,EAASC,OACiB,IAAlCA,EAAeC,gBACfnB,QAAQC,KACJ,8IAOJY,GAAyBK,EAAc,WAAiBL,EAAuB,KACzEO,EAAaF,EAAe5E,UACR,mBAAf8E,EACP,MAAM,IAAIC,MAAM,2DACbP,EAAW,kCACPQ,gBAACC,yBAAgBH,EAAWpD,WAAMsB,EAAWkC,aAM9B,mBAAnBN,GACLA,EAAeO,WAAcP,EAAeO,UAAUnF,QACvD4E,EAAeQ,cACfC,EAAUC,cAAcV,GD1B1B,SAAoCA,OACjC/D,EAAS+D,EAAeO,aAC1BtE,EAAO0E,mBACP,MAAM,IAAIR,MAAM,qEAChBH,EAAeY,YAAcC,KACxB5E,EAAO6E,uBACP,GAAI7E,EAAO6E,wBAA0BpC,QAEhC,IAAIyB,MACN,qFAJ2BlE,EAAO6E,sBAAwBpC,EAYtEQ,EAAmBjD,EAAQ,SAC3BiD,EAAmBjD,EAAQ,aAErBiE,EAAajE,EAAOb,cAC1Ba,EAAOb,OAAS,kBAWpB,SAA+BA,kBACM,IAA7ByD,IAAmC,OAAOzD,EAAON,KAAKiC,MAM1Df,EAAce,KAAMyB,GAAe,GAKnCxC,EAAce,KAAM0B,GAAoB,OAGlCsC,EACFhE,KAAKiE,aACLjE,KAAKhD,MACJgD,KAAKkE,cAAgBlE,KAAKkE,YAAYD,aAAejE,KAAKkE,YAAYlH,OACvE,cACEmG,EAAa9E,EAAO8F,KAAKnE,MAE3BoE,GAAqB,EAEnBC,EAAW,IAAIC,EAAYN,6BACxBI,IAIDA,GAAqB,GACS,IAA1BpE,EAAKwB,IAA2B,KAC5B+C,GAAW,MAEXtF,EAAce,EAAM0B,GAAoB,GACnC1B,EAAKyB,IAAgBiC,EAAUF,UAAUgB,YAAYzG,KAAKiC,GAC/DuE,GAAW,UAEXtF,EAAce,EAAM0B,GAAoB,GACpC6C,GAAUF,EAASI,uBAS9BC,IACLN,GAAqB,MACjBO,OAAYtD,EACZuD,OAAYvD,KAChBgD,EAASQ,qBAEDD,EAAYE,GAAmB,EAAO3B,GACxC,MAAO4B,GACLJ,EAAYI,KAGhBJ,QACMA,SAEHC,SAlBXP,EAASW,eAAiBhF,KAC1B0E,EAAepD,GAAqB+C,OAC/BhG,OAASqG,EAmBPA,EAAe3G,KAAKiC,OA1EMjC,KAAKiC,KAAMmD,IAE5C7C,EAAMpB,EAAQ,uBAAwB,YACD,IAA7B4C,WACCzD,OAAOiD,IAAsBtB,KAAK3B,OAAOiD,GAAmBmD,eAC5DjD,IAAmB,KAErByB,ECEAgC,CAA2BhC,GAHvBiC,EAAajC,OCpCtBkC,EAAmB,CAAEC,UAAU,EAAMC,KAAK,EAAMC,KAAK,GAE9CC,EAAsBC,EAAc,IAEpCC,cAGTvB,WAAYhC,EAAOwD,eACTxD,EAAOwD,QACRzD,MAAQxE,iBACNiI,EACAC,EAAWzD,oGAItB7D,yBACWuH,EACHL,EAAoBE,SACpB,CAAErG,MAAOY,KAAKiC,OACd4D,EAASC,KAAK9F,KAAKkC,MAAMkD,cAI1BtG,kCAAyB8C,EAAWmE,MACV,eAAzBC,QAAQC,IAAIC,WAEP9I,EAAa2I,EADAtI,iBAAKsI,EAAcJ,EAAW/D,KAE5C,MAAM,IAAIwB,MACN,gJAGL2C,MA3BerC,GA+B9B,SAASiC,EAAWQ,OACVC,EAAM,OACPD,EAAM,OAAOC,MACbxJ,IAAIyI,KAAOc,EAAUE,EAAehB,KAAMe,EAAIf,GAAOc,EAAKd,WACxDe,EAGX,SAASC,EAAehB,UACZF,EAAiBE,IAAgB,gCAARA,ECtCrC,SAASiB,EAAoBC,EAAcC,EAAWC,EAAaC,OAC3DzC,EA+BR,SAAuBuC,EAAWC,OAExBE,EACFH,EAAUvC,aACVuC,EAAUxJ,MACTwJ,EAAUtC,aAAesC,EAAUtC,YAAYlH,MAChD,mBACAyJ,EAA2B,eAAiBA,EAAc,IAAME,EAAgB,IACjE,UAAYA,EAAgB,IAvC7BC,CAAcJ,EAAWC,GAErCI,mJAGFxI,wBACqC2B,KAAKkC,0KAEtCzE,OAAOqJ,OAAO5E,EAAOqE,EAAavG,KAAK0F,SAAW,GAAIxD,IAAU,IAE5DW,IJnBT,SAAqB2D,WAGfA,EAAUhD,WAAagD,EAAUhD,UAAUnF,QIgBzB0I,CAAYP,KAC3BtE,EAAMoD,IAAMtF,KAAKkC,MAAMW,YAGpB+C,EAAcY,EAAWtE,OAZjBwB,GAAjBmD,EACKpI,YAAc8G,EAcrBmB,IAAcG,EAAW7D,EAAS6D,IACtCA,EAAS3D,gBAAiB,MJwCO8D,EAAM9H,EACjC+H,EItCAC,EAAe7D,EAAMR,oBAAYX,EAAOoD,UAC1CjC,EAAMuC,cAAciB,EAAUpJ,iBAAKyE,GAAOW,WAAYyC,cJoCzB0B,EIjCZR,EJiCkBtH,EIjCPgI,EJkC1BD,EAAaxJ,OAAO0J,oBAAoB1J,OAAO2J,eAAeJ,IACpEvJ,OAAO0J,oBAAoBH,GAAM7G,iBAAQkF,GAChClH,EAAekH,KAAqC,IAA7B4B,EAAWtG,QAAQ0E,IAC3C5H,OAAO4B,eAAeH,EAAQmG,EAAK5H,OAAOqD,yBAAyBkG,EAAM3B,MIpCjF6B,EAAaG,iBAAmBb,EAChCU,EAAajD,YAAcA,EACpBiD,EAwCJ,SAASI,YACRf,uDACwB,mBAAjBhD,UAAU,IACjBgD,EAAehD,UAAU,YAClBN,UACHqD,EAAoBC,EAActD,EAAgBsD,EAAavJ,MAAM,cAElEiG,UACHqD,EAjCZ,SAA0BiB,UACf,SAASC,EAAY5F,UACxB2F,EAAWpH,QAAQ,SAASsH,QAEpBA,KAAa7F,SAGX6F,KAAaD,GACf,MAAM,IAAIpE,MACN,yBACIqE,EACA,iEAEZ7F,EAAU6F,GAAaD,EAAWC,MAE/B7F,GAmBC8F,CAAiBH,GACjBtE,EACAsE,EAAWI,KAAK,MAChB,IDlFHlC,EACFhH,YAAc8G,EELzBrH,IAAM0J,EAAW7K,EAAU,oBAE3B,SAAS8K,eACA7H,KAAK4H,UAILA,GAAUzH,iBAAQ2H,OACb3I,EAC2B,iBAAtB2I,EAAiC9H,EAAK8H,GAAqBA,EAClE3I,MAAAA,IACI4I,MAAMC,QAAQ7I,GAAOA,EAAK8I,aAAIC,UAAKA,MAClC/I,YAGRyI,GAAY,IAGd,SAASO,EAAiBjJ,EAAQkJ,MACjCL,MAAMC,QAAQI,UACPA,EAAsBH,aAAII,UAAMF,EAAiBjJ,EAAQmJ,SAG9DC,EAAI7K,OAAO2J,eAAelI,GAAQgF,aAAezG,OAAO2J,eAAelI,EAAOgF,aAC9EqE,EAAK9K,OAAO2J,eAAelI,EAAOgF,gBAGhCoE,IAAMjF,GACNiF,IAAMjF,GACNkF,IAAOlF,GACPkF,IAAOlF,QAGL,IAAID,MACN,+GAK6B,iBAA1BgF,GAC0B,mBAA1BA,IACNL,MAAMC,QAAQI,SAET,IAAIhF,MACN,yGAKFoF,IAAgCtJ,EAAO0I,UAC/B1I,EAAO0I,KAAc1I,EAAO0I,GAAY,KAEhDhH,KAAKwH,GAGNI,GACDlI,EAAMpB,EAAQ,uBAAwB2I,GAIL,iBAA1BO,EACAA,SC7Df,SAASK,EAA2BC,YACvBC,EACLC,EACA1G,EACAE,EACAuE,EACAkC,EACAC,wEAGOC,oBACHpC,EAAgBA,GAAiB,gBACjCmC,EAAeA,GAAgB1G,EACR,MAAnBF,EAAME,GACFwG,EAEO,IAAIxF,MACP,OACIyF,EACA,KACAC,EACA,+BAEAnC,EACA,yBAT2B,OAApBzE,EAAME,GAAqB,OAAS,aAW3C,MAGL,KAEAsG,gBAASxG,EAAOE,EAAUuE,EAAekC,EAAUC,UAAiBE,UAKjFC,EAAmBN,EAAUxE,KAAK,MAAM,UAC9C8E,EAAiBL,WAAaD,EAAUxE,KAAK,MAAM,GAC5C8E,EAwBX,SAASC,EAAYC,OACXC,SAAkBD,SACpBpB,MAAMC,QAAQmB,GACP,QAEPA,aAAqBE,OAId,SA7Bf,SAAkBD,EAAUD,SAEP,WAAbC,GAK+B,WAA/BD,EAAU,kBAKQ,mBAAXlM,QAAyBkM,aAAqBlM,OAmBrDqM,CAASF,EAAUD,GACZ,SAEJC,EAiBX,SAASG,EAAmCC,EAAiBC,UAClDhB,EAA2B,SAC9BvG,EACAE,EACAuE,EACAkC,EACAC,UAEOC,gBACCS,GACIN,EAAYhH,EAAME,MAAeqH,EAASC,cAAe,OAAO,SAEpEC,SACIF,OACC,QACDE,EAAcC,YAEb,SACDD,EAAcE,YAEb,MACDF,EAAcG,sBAGR,IAAI1G,8BAA8BqG,OAE1CN,EAAYjH,EAAME,OACnBuH,EAAYR,GAAY,KACnBY,EAxCtB,SAAwBZ,OACdC,EAAWF,EAAYC,MACZ,WAAbC,EAAuB,IACnBD,aAAqBa,WACd,OACJ,GAAIb,aAAqBE,aACrB,gBAGRD,EA+ByBa,CAAed,GAC7Be,EAA+BV,EAC/B,mBAAqBC,EAASC,cAAgB,IAC9C,UACC,IAAItG,MACP,iBACI0F,EACA,cACAiB,EACA,kBAEApD,EACA,+BACA8C,EACA,IACAS,EACA,YAGL,SAKnB,SAASC,GAAmCX,EAAiBY,UAClD3B,EAA2B,SAC9BvG,EACAE,EACAuE,EACAkC,EACAC,wEAGOC,gBACwB,mBAAhBqB,SACA,IAAIhH,MACP,aACI0F,EACA,mBACAnC,EACA,wCAIR0D,EAAQd,EAAmCC,EAAiB,QAApDD,CACRrH,EACAE,EACAuE,MAEA0D,aAAiBjH,MAAO,OAAOiH,UAC7BlB,EAAYjH,EAAME,GACfvE,EAAI,EAAGA,EAAIsL,EAAUvL,OAAQC,QAClCwM,EAAQD,gBACJjB,EACAtL,EACA8I,EACAkC,EACAC,EAAe,IAAMjL,EAAI,YACtBmL,eAEc5F,MAAO,OAAOiH,SAEhC,SAKnBnM,IAQaoM,GAAY,iBARDf,GAAmC,EAAO,2BACxCY,GAAmChG,KAAK,MAAM,iBAClDoF,GAAmC,EAAO,wBACvCA,GAAmC,EAAO,iCACpCA,GAAmC,EAAM,kCACvCY,GAAmChG,KAAK,MAAM,4BAC9CoF,GAAmC,EAAM,WCjM1E,IAAK7F,EAAW,MAAM,IAAIN,MAAM,6CAChC,IAAKmH,EAAY,MAAM,IAAInH,MAAM,4CAER,mBAAdoH,GAA0BC,EAAU,CAAEC,kBAAmBF"}
|
|
1
|
+
{"version":3,"file":"mobx-react.module.js","sources":["../src/utils/utils.js","../src/observerClass.js","../src/observer.js","../src/Provider.js","../src/inject.js","../src/disposeOnUnmount.js","../src/propTypes.js","../src/index.js"],"sourcesContent":["let symbolId = 0\nfunction createSymbol(name) {\n if (typeof Symbol === \"function\") {\n return Symbol(name)\n }\n const symbol = `__$mobx-react ${name} (${symbolId})`\n symbolId++\n return symbol\n}\n\nconst createdSymbols = {}\nexport function newSymbol(name) {\n if (!createdSymbols[name]) {\n createdSymbols[name] = createSymbol(name)\n }\n return createdSymbols[name]\n}\n\nexport function shallowEqual(objA, objB) {\n //From: https://github.com/facebook/fbjs/blob/c69904a511b900266935168223063dd8772dfc40/packages/fbjs/src/core/shallowEqual.js\n if (is(objA, objB)) return true\n if (typeof objA !== \"object\" || objA === null || typeof objB !== \"object\" || objB === null) {\n return false\n }\n const keysA = Object.keys(objA)\n const keysB = Object.keys(objB)\n if (keysA.length !== keysB.length) return false\n for (let i = 0; i < keysA.length; i++) {\n if (!hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n return false\n }\n }\n return true\n}\n\nfunction is(x, y) {\n // From: https://github.com/facebook/fbjs/blob/c69904a511b900266935168223063dd8772dfc40/packages/fbjs/src/core/shallowEqual.js\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y\n } else {\n return x !== x && y !== y\n }\n}\n\n// based on https://github.com/mridgway/hoist-non-react-statics/blob/master/src/index.js\nconst hoistBlackList = {\n $$typeof: 1,\n render: 1,\n compare: 1,\n type: 1,\n childContextTypes: 1,\n contextType: 1,\n contextTypes: 1,\n defaultProps: 1,\n getDefaultProps: 1,\n getDerivedStateFromError: 1,\n getDerivedStateFromProps: 1,\n mixins: 1,\n propTypes: 1\n}\n\nexport function copyStaticProperties(base, target) {\n const protoProps = Object.getOwnPropertyNames(Object.getPrototypeOf(base))\n Object.getOwnPropertyNames(base).forEach(key => {\n if (!hoistBlackList[key] && protoProps.indexOf(key) === -1) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(base, key))\n }\n })\n}\n\n/**\n * Helper to set `prop` to `this` as non-enumerable (hidden prop)\n * @param target\n * @param prop\n * @param value\n */\nexport function setHiddenProp(target, prop, value) {\n if (!Object.hasOwnProperty.call(target, prop)) {\n Object.defineProperty(target, prop, {\n enumerable: false,\n configurable: true,\n writable: true,\n value\n })\n } else {\n target[prop] = value\n }\n}\n\n/**\n * Utilities for patching componentWillUnmount, to make sure @disposeOnUnmount works correctly icm with user defined hooks\n * and the handler provided by mobx-react\n */\nconst mobxMixins = newSymbol(\"patchMixins\")\nconst mobxPatchedDefinition = newSymbol(\"patchedDefinition\")\n\nfunction getMixins(target, methodName) {\n const mixins = (target[mobxMixins] = target[mobxMixins] || {})\n const methodMixins = (mixins[methodName] = mixins[methodName] || {})\n methodMixins.locks = methodMixins.locks || 0\n methodMixins.methods = methodMixins.methods || []\n return methodMixins\n}\n\nfunction wrapper(realMethod, mixins, ...args) {\n // locks are used to ensure that mixins are invoked only once per invocation, even on recursive calls\n mixins.locks++\n\n try {\n let retVal\n if (realMethod !== undefined && realMethod !== null) {\n retVal = realMethod.apply(this, args)\n }\n\n return retVal\n } finally {\n mixins.locks--\n if (mixins.locks === 0) {\n mixins.methods.forEach(mx => {\n mx.apply(this, args)\n })\n }\n }\n}\n\nfunction wrapFunction(realMethod, mixins) {\n const fn = function(...args) {\n wrapper.call(this, realMethod, mixins, ...args)\n }\n return fn\n}\n\nexport function patch(target, methodName, mixinMethod) {\n const mixins = getMixins(target, methodName)\n\n if (mixins.methods.indexOf(mixinMethod) < 0) {\n mixins.methods.push(mixinMethod)\n }\n\n const oldDefinition = Object.getOwnPropertyDescriptor(target, methodName)\n if (oldDefinition && oldDefinition[mobxPatchedDefinition]) {\n // already patched definition, do not repatch\n return\n }\n\n const originalMethod = target[methodName]\n const newDefinition = createDefinition(\n target,\n methodName,\n oldDefinition ? oldDefinition.enumerable : undefined,\n mixins,\n originalMethod\n )\n\n Object.defineProperty(target, methodName, newDefinition)\n}\n\nfunction createDefinition(target, methodName, enumerable, mixins, originalMethod) {\n let wrappedFunc = wrapFunction(originalMethod, mixins)\n\n return {\n [mobxPatchedDefinition]: true,\n get: function() {\n return wrappedFunc\n },\n set: function(value) {\n if (this === target) {\n wrappedFunc = wrapFunction(value, mixins)\n } else {\n // when it is an instance of the prototype/a child prototype patch that particular case again separately\n // since we need to store separate values depending on wether it is the actual instance, the prototype, etc\n // e.g. the method for super might not be the same as the method for the prototype which might be not the same\n // as the method for the instance\n const newDefinition = createDefinition(this, methodName, enumerable, mixins, value)\n Object.defineProperty(this, methodName, newDefinition)\n }\n },\n configurable: true,\n enumerable: enumerable\n }\n}\n","import { PureComponent, Component } from \"react\"\nimport { createAtom, _allowStateChanges, Reaction, $mobx } from \"mobx\"\nimport { isUsingStaticRendering } from \"mobx-react-lite\"\n\nimport { newSymbol, shallowEqual, setHiddenProp, patch } from \"./utils/utils\"\n\nconst mobxAdminProperty = $mobx || \"$mobx\"\nconst mobxIsUnmounted = newSymbol(\"isUnmounted\")\nconst skipRenderKey = newSymbol(\"skipRender\")\nconst isForcingUpdateKey = newSymbol(\"isForcingUpdate\")\n\nexport function makeClassComponentObserver(componentClass) {\n const target = componentClass.prototype\n if (target.componentWillReact)\n throw new Error(\"The componentWillReact life-cycle event is no longer supported\")\n if (componentClass.__proto__ !== PureComponent) {\n if (!target.shouldComponentUpdate) target.shouldComponentUpdate = observerSCU\n else if (target.shouldComponentUpdate !== observerSCU)\n // n.b. unequal check, instead of existence check, as @observer might be on superclass as well\n throw new Error(\n \"It is not allowed to use shouldComponentUpdate in observer based components.\"\n )\n }\n\n // this.props and this.state are made observable, just to make sure @computed fields that\n // are defined inside the component, and which rely on state or props, re-compute if state or props change\n // (otherwise the computed wouldn't update and become stale on props change, since props are not observable)\n // However, this solution is not without it's own problems: https://github.com/mobxjs/mobx-react/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3Aobservable-props-or-not+\n makeObservableProp(target, \"props\")\n makeObservableProp(target, \"state\")\n\n const baseRender = target.render\n target.render = function() {\n return makeComponentReactive.call(this, baseRender)\n }\n patch(target, \"componentWillUnmount\", function() {\n if (isUsingStaticRendering() === true) return\n this.render[mobxAdminProperty] && this.render[mobxAdminProperty].dispose()\n this[mobxIsUnmounted] = true\n })\n return componentClass\n}\n\nfunction makeComponentReactive(render) {\n if (isUsingStaticRendering() === true) return render.call(this)\n\n /**\n * If props are shallowly modified, react will render anyway,\n * so atom.reportChanged() should not result in yet another re-render\n */\n setHiddenProp(this, skipRenderKey, false)\n /**\n * forceUpdate will re-assign this.props. We don't want that to cause a loop,\n * so detect these changes\n */\n setHiddenProp(this, isForcingUpdateKey, false)\n\n // Generate friendly name for debugging\n const initialName =\n this.displayName ||\n this.name ||\n (this.constructor && (this.constructor.displayName || this.constructor.name)) ||\n \"<component>\"\n const baseRender = render.bind(this)\n\n let isRenderingPending = false\n\n const reaction = new Reaction(`${initialName}.render()`, () => {\n if (!isRenderingPending) {\n // N.B. Getting here *before mounting* means that a component constructor has side effects (see the relevant test in misc.js)\n // This unidiomatic React usage but React will correctly warn about this so we continue as usual\n // See #85 / Pull #44\n isRenderingPending = true\n if (this[mobxIsUnmounted] !== true) {\n let hasError = true\n try {\n setHiddenProp(this, isForcingUpdateKey, true)\n if (!this[skipRenderKey]) Component.prototype.forceUpdate.call(this)\n hasError = false\n } finally {\n setHiddenProp(this, isForcingUpdateKey, false)\n if (hasError) reaction.dispose()\n }\n }\n }\n })\n reaction.reactComponent = this\n reactiveRender[mobxAdminProperty] = reaction\n this.render = reactiveRender\n\n function reactiveRender() {\n isRenderingPending = false\n let exception = undefined\n let rendering = undefined\n reaction.track(() => {\n try {\n rendering = _allowStateChanges(false, baseRender)\n } catch (e) {\n exception = e\n }\n })\n if (exception) {\n throw exception\n }\n return rendering\n }\n\n return reactiveRender.call(this)\n}\n\nfunction observerSCU(nextProps, nextState) {\n if (isUsingStaticRendering()) {\n console.warn(\n \"[mobx-react] It seems that a re-rendering of a React component is triggered while in static (server-side) mode. Please make sure components are rendered only once server-side.\"\n )\n }\n // update on any state changes (as is the default)\n if (this.state !== nextState) {\n return true\n }\n // update if props are shallowly not equal, inspired by PureRenderMixin\n // we could return just 'false' here, and avoid the `skipRender` checks etc\n // however, it is nicer if lifecycle events are triggered like usually,\n // so we return true here if props are shallowly modified.\n return !shallowEqual(this.props, nextProps)\n}\n\nfunction makeObservableProp(target, propName) {\n const valueHolderKey = newSymbol(`reactProp_${propName}_valueHolder`)\n const atomHolderKey = newSymbol(`reactProp_${propName}_atomHolder`)\n function getAtom() {\n if (!this[atomHolderKey]) {\n setHiddenProp(this, atomHolderKey, createAtom(\"reactive \" + propName))\n }\n return this[atomHolderKey]\n }\n Object.defineProperty(target, propName, {\n configurable: true,\n enumerable: true,\n get: function() {\n getAtom.call(this).reportObserved()\n return this[valueHolderKey]\n },\n set: function set(v) {\n if (!this[isForcingUpdateKey] && !shallowEqual(this[valueHolderKey], v)) {\n setHiddenProp(this, valueHolderKey, v)\n setHiddenProp(this, skipRenderKey, true)\n getAtom.call(this).reportChanged()\n setHiddenProp(this, skipRenderKey, false)\n } else {\n setHiddenProp(this, valueHolderKey, v)\n }\n }\n })\n}\n","/* eslint-disable react/display-name */\nimport React, { Component, forwardRef, memo } from \"react\"\nimport { observer as observerLite, Observer } from \"mobx-react-lite\"\n\nimport { makeClassComponentObserver } from \"./observerClass\"\n\nconst hasSymbol = typeof Symbol === \"function\" && Symbol.for\n\n// Using react-is had some issues (and operates on elements, not on types), see #608 / #609\nconst ReactForwardRefSymbol = hasSymbol\n ? Symbol.for(\"react.forward_ref\")\n : typeof forwardRef === \"function\" && forwardRef(() => {})[\"$$typeof\"]\n\nconst ReactMemoSymbol = hasSymbol\n ? Symbol.for(\"react.memo\")\n : typeof memo === \"function\" && memo(() => {})[\"$$typeof\"]\n\n/**\n * Observer function / decorator\n */\nexport function observer(componentClass) {\n if (componentClass.isMobxInjector === true) {\n console.warn(\n \"Mobx observer: You are trying to use 'observer' on a component that already has 'inject'. Please apply 'observer' before applying 'inject'\"\n )\n }\n\n if (ReactMemoSymbol && componentClass[\"$$typeof\"] === ReactMemoSymbol) {\n throw new Error(\n \"Mobx observer: You are trying to use 'observer' on function component wrapped to either another observer or 'React.memo'. The observer already applies 'React.memo' for you.\"\n )\n }\n\n // Unwrap forward refs into `<Observer>` component\n // we need to unwrap the render, because it is the inner render that needs to be tracked,\n // not the ForwardRef HoC\n if (ReactForwardRefSymbol && componentClass[\"$$typeof\"] === ReactForwardRefSymbol) {\n const baseRender = componentClass.render\n if (typeof baseRender !== \"function\")\n throw new Error(\"render property of ForwardRef was not a function\")\n return forwardRef(function ObserverForwardRef() {\n return <Observer>{() => baseRender.apply(undefined, arguments)}</Observer>\n })\n }\n\n // Function component\n if (\n typeof componentClass === \"function\" &&\n (!componentClass.prototype || !componentClass.prototype.render) &&\n !componentClass.isReactClass &&\n !Object.prototype.isPrototypeOf.call(Component, componentClass)\n ) {\n return observerLite(componentClass)\n }\n\n return makeClassComponentObserver(componentClass)\n}\n","/* eslint-disable react/prop-types */\nimport React from \"react\"\nimport { shallowEqual } from \"./utils/utils\"\n\nexport const MobXProviderContext = React.createContext({})\n\nexport function Provider({ children, ...stores }) {\n const parentValue = React.useContext(MobXProviderContext)\n const value = React.useRef({\n ...parentValue,\n ...stores\n }).current\n\n if (process.env.NODE_ENV !== \"production\") {\n const newValue = { ...value, ...stores } // spread in previous state for the context based stores\n if (!shallowEqual(value, newValue)) {\n throw new Error(\n \"MobX Provider: The set of provided stores has changed. See: https://github.com/mobxjs/mobx-react#the-set-of-provided-stores-has-changed-error.\"\n )\n }\n }\n\n return <MobXProviderContext.Provider value={value}>{children}</MobXProviderContext.Provider>\n}\n\nProvider.displayName = \"MobXProvider\"\n","import React, { createElement } from \"react\"\nimport { observer } from \"./observer\"\nimport { copyStaticProperties } from \"./utils/utils\"\nimport { MobXProviderContext } from \"./Provider\"\n\n/**\n * Store Injection\n */\nfunction createStoreInjector(grabStoresFn, component, injectNames, makeReactive) {\n // Support forward refs\n let Injector = React.forwardRef((props, ref) => {\n const newProps = { ...props }\n const context = React.useContext(MobXProviderContext)\n Object.assign(newProps, grabStoresFn(context || {}, newProps) || {})\n\n if (ref) {\n newProps.ref = ref\n }\n\n return createElement(component, newProps)\n })\n\n if (makeReactive) Injector = observer(Injector)\n Injector.isMobxInjector = true // assigned late to suppress observer warning\n\n // Static fields from component should be visible on the generated Injector\n copyStaticProperties(component, Injector)\n Injector.wrappedComponent = component\n Injector.displayName = getInjectName(component, injectNames)\n return Injector\n}\n\nfunction getInjectName(component, injectNames) {\n let displayName\n const componentName =\n component.displayName ||\n component.name ||\n (component.constructor && component.constructor.name) ||\n \"Component\"\n if (injectNames) displayName = \"inject-with-\" + injectNames + \"(\" + componentName + \")\"\n else displayName = \"inject(\" + componentName + \")\"\n return displayName\n}\n\nfunction grabStoresByName(storeNames) {\n return function(baseStores, nextProps) {\n storeNames.forEach(function(storeName) {\n if (\n storeName in nextProps // prefer props over stores\n )\n return\n if (!(storeName in baseStores))\n throw new Error(\n \"MobX injector: Store '\" +\n storeName +\n \"' is not available! Make sure it is provided by some Provider\"\n )\n nextProps[storeName] = baseStores[storeName]\n })\n return nextProps\n }\n}\n\n/**\n * higher order component that injects stores to a child.\n * takes either a varargs list of strings, which are stores read from the context,\n * or a function that manually maps the available stores from the context to props:\n * storesToProps(mobxStores, props, context) => newProps\n */\nexport function inject(/* fn(stores, nextProps) or ...storeNames */ ...storeNames) {\n let grabStoresFn\n if (typeof arguments[0] === \"function\") {\n grabStoresFn = arguments[0]\n return componentClass =>\n createStoreInjector(grabStoresFn, componentClass, grabStoresFn.name, true)\n } else {\n return componentClass =>\n createStoreInjector(\n grabStoresByName(storeNames),\n componentClass,\n storeNames.join(\"-\"),\n false\n )\n }\n}\n","import * as React from \"react\"\nimport { patch, newSymbol } from \"./utils/utils\"\n\nconst protoStoreKey = newSymbol(\"disposeOnUnmountProto\")\nconst instStoreKey = newSymbol(\"disposeOnUnmountInst\")\n\nfunction runDisposersOnWillUnmount() {\n ;[...(this[protoStoreKey] || []), ...(this[instStoreKey] || [])].forEach(propKeyOrFunction => {\n const prop =\n typeof propKeyOrFunction === \"string\" ? this[propKeyOrFunction] : propKeyOrFunction\n if (prop !== undefined && prop !== null) {\n if (Array.isArray(prop)) prop.map(f => f())\n else prop()\n }\n })\n}\n\nexport function disposeOnUnmount(target, propertyKeyOrFunction) {\n if (Array.isArray(propertyKeyOrFunction)) {\n return propertyKeyOrFunction.map(fn => disposeOnUnmount(target, fn))\n }\n\n const c = Object.getPrototypeOf(target).constructor || Object.getPrototypeOf(target.constructor)\n const c2 = Object.getPrototypeOf(target.constructor)\n if (\n !(\n c === React.Component ||\n c === React.PureComponent ||\n c2 === React.Component ||\n c2 === React.PureComponent\n )\n ) {\n throw new Error(\n \"[mobx-react] disposeOnUnmount only supports direct subclasses of React.Component or React.PureComponent.\"\n )\n }\n\n if (\n typeof propertyKeyOrFunction !== \"string\" &&\n typeof propertyKeyOrFunction !== \"function\" &&\n !Array.isArray(propertyKeyOrFunction)\n ) {\n throw new Error(\n \"[mobx-react] disposeOnUnmount only works if the parameter is either a property key or a function.\"\n )\n }\n\n // decorator's target is the prototype, so it doesn't have any instance properties like props\n const isDecorator = typeof propertyKeyOrFunction === \"string\"\n\n // add property key / function we want run (disposed) to the store\n const componentWasAlreadyModified = !!target[protoStoreKey] || !!target[instStoreKey]\n const store = isDecorator\n ? // decorators are added to the prototype store\n target[protoStoreKey] || (target[protoStoreKey] = [])\n : // functions are added to the instance store\n target[instStoreKey] || (target[instStoreKey] = [])\n\n store.push(propertyKeyOrFunction)\n\n // tweak the component class componentWillUnmount if not done already\n if (!componentWasAlreadyModified) {\n patch(target, \"componentWillUnmount\", runDisposersOnWillUnmount)\n }\n\n // return the disposer as is if invoked as a non decorator\n if (typeof propertyKeyOrFunction !== \"string\") {\n return propertyKeyOrFunction\n }\n}\n","import { isObservableArray, isObservableObject, isObservableMap, untracked } from \"mobx\"\n\n// Copied from React.PropTypes\nfunction createChainableTypeChecker(validate) {\n function checkType(\n isRequired,\n props,\n propName,\n componentName,\n location,\n propFullName,\n ...rest\n ) {\n return untracked(() => {\n componentName = componentName || \"<<anonymous>>\"\n propFullName = propFullName || propName\n if (props[propName] == null) {\n if (isRequired) {\n const actual = props[propName] === null ? \"null\" : \"undefined\"\n return new Error(\n \"The \" +\n location +\n \" `\" +\n propFullName +\n \"` is marked as required \" +\n \"in `\" +\n componentName +\n \"`, but its value is `\" +\n actual +\n \"`.\"\n )\n }\n return null\n } else {\n return validate(props, propName, componentName, location, propFullName, ...rest)\n }\n })\n }\n\n const chainedCheckType = checkType.bind(null, false)\n chainedCheckType.isRequired = checkType.bind(null, true)\n return chainedCheckType\n}\n\n// Copied from React.PropTypes\nfunction isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === \"symbol\") {\n return true\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue[\"@@toStringTag\"] === \"Symbol\") {\n return true\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === \"function\" && propValue instanceof Symbol) {\n return true\n }\n\n return false\n}\n\n// Copied from React.PropTypes\nfunction getPropType(propValue) {\n const propType = typeof propValue\n if (Array.isArray(propValue)) {\n return \"array\"\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return \"object\"\n }\n if (isSymbol(propType, propValue)) {\n return \"symbol\"\n }\n return propType\n}\n\n// This handles more types than `getPropType`. Only used for error messages.\n// Copied from React.PropTypes\nfunction getPreciseType(propValue) {\n const propType = getPropType(propValue)\n if (propType === \"object\") {\n if (propValue instanceof Date) {\n return \"date\"\n } else if (propValue instanceof RegExp) {\n return \"regexp\"\n }\n }\n return propType\n}\n\nfunction createObservableTypeCheckerCreator(allowNativeType, mobxType) {\n return createChainableTypeChecker(function(\n props,\n propName,\n componentName,\n location,\n propFullName\n ) {\n return untracked(() => {\n if (allowNativeType) {\n if (getPropType(props[propName]) === mobxType.toLowerCase()) return null\n }\n let mobxChecker\n switch (mobxType) {\n case \"Array\":\n mobxChecker = isObservableArray\n break\n case \"Object\":\n mobxChecker = isObservableObject\n break\n case \"Map\":\n mobxChecker = isObservableMap\n break\n default:\n throw new Error(`Unexpected mobxType: ${mobxType}`)\n }\n const propValue = props[propName]\n if (!mobxChecker(propValue)) {\n const preciseType = getPreciseType(propValue)\n const nativeTypeExpectationMessage = allowNativeType\n ? \" or javascript `\" + mobxType.toLowerCase() + \"`\"\n : \"\"\n return new Error(\n \"Invalid prop `\" +\n propFullName +\n \"` of type `\" +\n preciseType +\n \"` supplied to\" +\n \" `\" +\n componentName +\n \"`, expected `mobx.Observable\" +\n mobxType +\n \"`\" +\n nativeTypeExpectationMessage +\n \".\"\n )\n }\n return null\n })\n })\n}\n\nfunction createObservableArrayOfTypeChecker(allowNativeType, typeChecker) {\n return createChainableTypeChecker(function(\n props,\n propName,\n componentName,\n location,\n propFullName,\n ...rest\n ) {\n return untracked(() => {\n if (typeof typeChecker !== \"function\") {\n return new Error(\n \"Property `\" +\n propFullName +\n \"` of component `\" +\n componentName +\n \"` has \" +\n \"invalid PropType notation.\"\n )\n }\n let error = createObservableTypeCheckerCreator(allowNativeType, \"Array\")(\n props,\n propName,\n componentName\n )\n if (error instanceof Error) return error\n const propValue = props[propName]\n for (let i = 0; i < propValue.length; i++) {\n error = typeChecker(\n propValue,\n i,\n componentName,\n location,\n propFullName + \"[\" + i + \"]\",\n ...rest\n )\n if (error instanceof Error) return error\n }\n return null\n })\n })\n}\n\nconst observableArray = createObservableTypeCheckerCreator(false, \"Array\")\nconst observableArrayOf = createObservableArrayOfTypeChecker.bind(null, false)\nconst observableMap = createObservableTypeCheckerCreator(false, \"Map\")\nconst observableObject = createObservableTypeCheckerCreator(false, \"Object\")\nconst arrayOrObservableArray = createObservableTypeCheckerCreator(true, \"Array\")\nconst arrayOrObservableArrayOf = createObservableArrayOfTypeChecker.bind(null, true)\nconst objectOrObservableObject = createObservableTypeCheckerCreator(true, \"Object\")\n\nexport const PropTypes = {\n observableArray,\n observableArrayOf,\n observableMap,\n observableObject,\n arrayOrObservableArray,\n arrayOrObservableArrayOf,\n objectOrObservableObject\n}\n","import { observable, configure } from \"mobx\"\nimport { Component } from \"react\"\nimport { unstable_batchedUpdates as rdBatched } from \"react-dom\"\n\nif (!Component) throw new Error(\"mobx-react requires React to be available\")\nif (!observable) throw new Error(\"mobx-react requires mobx to be available\")\n\nif (typeof rdBatched === \"function\") configure({ reactionScheduler: rdBatched })\n\nexport {\n Observer,\n useObserver,\n useAsObservableSource,\n useLocalStore,\n isUsingStaticRendering,\n useStaticRendering\n} from \"mobx-react-lite\"\n\nexport { observer } from \"./observer\"\n\nexport { Provider, MobXProviderContext } from \"./Provider\"\nexport { inject } from \"./inject\"\nexport { disposeOnUnmount } from \"./disposeOnUnmount\"\nexport { PropTypes } from \"./propTypes\"\n"],"names":["let","symbolId","createdSymbols","newSymbol","name","Symbol","symbol","createSymbol","shallowEqual","objA","objB","is","keysA","Object","keys","keysB","length","i","hasOwnProperty","call","x","y","const","hoistBlackList","$$typeof","render","compare","type","childContextTypes","contextType","contextTypes","defaultProps","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","setHiddenProp","target","prop","value","defineProperty","enumerable","configurable","writable","mobxMixins","mobxPatchedDefinition","wrapper","realMethod","locks","retVal","apply","this","args","methods","forEach","mx","wrapFunction","patch","methodName","mixinMethod","methodMixins","getMixins","indexOf","push","oldDefinition","getOwnPropertyDescriptor","newDefinition","createDefinition","originalMethod","wrappedFunc","get","set","undefined","mobxAdminProperty","$mobx","mobxIsUnmounted","skipRenderKey","isForcingUpdateKey","observerSCU","nextProps","nextState","isUsingStaticRendering","console","warn","state","props","makeObservableProp","propName","valueHolderKey","atomHolderKey","getAtom","createAtom","reportObserved","v","reportChanged","hasSymbol","for","ReactForwardRefSymbol","forwardRef","ReactMemoSymbol","memo","observer","componentClass","isMobxInjector","Error","baseRender","React","Observer","arguments","prototype","isReactClass","isPrototypeOf","Component","componentWillReact","__proto__","PureComponent","shouldComponentUpdate","initialName","displayName","constructor","bind","isRenderingPending","reaction","Reaction","hasError","forceUpdate","dispose","reactiveRender","exception","rendering","track","_allowStateChanges","e","reactComponent","makeClassComponentObserver","observerLite","MobXProviderContext","createContext","Provider","ref","parentValue","useContext","useRef","stores","current","process","env","NODE_ENV","children","createStoreInjector","grabStoresFn","component","injectNames","makeReactive","base","protoProps","Injector","newProps","context","assign","createElement","getOwnPropertyNames","getPrototypeOf","key","wrappedComponent","componentName","getInjectName","inject","storeNames","baseStores","storeName","grabStoresByName","join","protoStoreKey","instStoreKey","runDisposersOnWillUnmount","propKeyOrFunction","Array","isArray","map","f","disposeOnUnmount","propertyKeyOrFunction","fn","c","c2","componentWasAlreadyModified","createChainableTypeChecker","validate","checkType","isRequired","location","propFullName","untracked","rest","chainedCheckType","getPropType","propValue","propType","RegExp","isSymbol","createObservableTypeCheckerCreator","allowNativeType","mobxType","toLowerCase","mobxChecker","isObservableArray","isObservableObject","isObservableMap","preciseType","Date","getPreciseType","nativeTypeExpectationMessage","createObservableArrayOfTypeChecker","typeChecker","error","PropTypes","observable","rdBatched","configure","reactionScheduler"],"mappings":"mjBAAAA,IAAIC,EAAW,EAUTC,EAAiB,GAChB,SAASC,EAAUC,UACjBF,EAAeE,KAChBF,EAAeE,GAZvB,SAAsBA,MACI,mBAAXC,cACAA,OAAOD,OAEZE,EAAU,iBAAgBF,OAASH,aACzCA,IACOK,EAMoBC,CAAaH,IAEjCF,EAAeE,GAGnB,SAASI,EAAaC,EAAMC,MAE3BC,EAAGF,EAAMC,GAAO,OAAO,KACP,iBAATD,GAA8B,OAATA,GAAiC,iBAATC,GAA8B,OAATA,SAClE,MAELE,EAAQC,OAAOC,KAAKL,GACpBM,EAAQF,OAAOC,KAAKJ,MACtBE,EAAMI,SAAWD,EAAMC,OAAQ,OAAO,MACrChB,IAAIiB,EAAI,EAAGA,EAAIL,EAAMI,OAAQC,QACzBC,eAAeC,KAAKT,EAAME,EAAMK,MAAQN,EAAGF,EAAKG,EAAMK,IAAKP,EAAKE,EAAMK,YAChE,SAGR,EAGX,SAASN,EAAGS,EAAGC,UAEPD,IAAMC,EACO,IAAND,GAAW,EAAIA,GAAM,EAAIC,EAEzBD,GAAMA,GAAKC,GAAMA,EAKhCC,IAAMC,EAAiB,CACnBC,SAAU,EACVC,OAAQ,EACRC,QAAS,EACTC,KAAM,EACNC,kBAAmB,EACnBC,YAAa,EACbC,aAAc,EACdC,aAAc,EACdC,gBAAiB,EACjBC,yBAA0B,EAC1BC,yBAA0B,EAC1BC,OAAQ,EACRC,UAAW,GAkBf,SAAgBC,EAAcC,EAAQC,EAAMC,GACnC3B,OAAOK,eAAeC,KAAKmB,EAAQC,GAQpCD,EAAOC,GAAQC,EAPf3B,OAAO4B,eAAeH,EAAQC,EAAM,CAChCG,YAAY,EACZC,cAAc,EACdC,UAAU,QACVJ,IAWZlB,IAAMuB,EAAa1C,EAAU,eACvB2C,EAAwB3C,EAAU,qBAUxC,SAAS4C,EAAQC,EAAYb,wEAEzBA,EAAOc,gBAGCC,SACAF,MAAAA,IACAE,EAASF,EAAWG,MAAMC,KAAMC,IAG7BH,UAEPf,EAAOc,QACc,IAAjBd,EAAOc,OACPd,EAAOmB,QAAQC,iBAAQC,GACnBA,EAAGL,MAAMC,EAAMC,MAM/B,SAASI,EAAaT,EAAYb,UACnB,kEACPY,EAAQ5B,cAAKiC,KAAMJ,EAAYb,UAAWkB,KAKlD,SAAgBK,EAAMpB,EAAQqB,EAAYC,OAChCzB,EArCV,SAAmBG,EAAQqB,OACjBxB,EAAUG,EAAOO,GAAcP,EAAOO,IAAe,GACrDgB,EAAgB1B,EAAOwB,GAAcxB,EAAOwB,IAAe,UACjEE,EAAaZ,MAAQY,EAAaZ,OAAS,EAC3CY,EAAaP,QAAUO,EAAaP,SAAW,GACxCO,EAgCQC,CAAUxB,EAAQqB,GAE7BxB,EAAOmB,QAAQS,QAAQH,GAAe,GACtCzB,EAAOmB,QAAQU,KAAKJ,OAGlBK,EAAgBpD,OAAOqD,yBAAyB5B,EAAQqB,OAC1DM,IAAiBA,EAAcnB,QAM7BqB,EAWV,SAASC,EAAiB9B,EAAQqB,EAAYjB,EAAYP,EAAQkC,SAC1DC,EAAcb,EAAaY,EAAgBlC,YAExC,IACFW,IAAwB,IACzByB,IAAK,kBACMD,KAEXE,IAAK,SAAShC,MACNY,OAASd,EACTgC,EAAcb,EAAajB,EAAOL,OAC/B,KAKGgC,EAAgBC,EAAiBhB,KAAMO,EAAYjB,EAAYP,EAAQK,GAC7E3B,OAAO4B,eAAeW,KAAMO,EAAYQ,OAGhDxB,cAAc,IACdD,WAAYA,IAhCM0B,CAClB9B,EACAqB,EACAM,EAAgBA,EAAcvB,gBAAa+B,EAC3CtC,EALmBG,EAAOqB,IAS9B9C,OAAO4B,eAAeH,EAAQqB,EAAYQ,ICpJ9C7C,IAAMoD,EAAoBC,GAAS,QAC7BC,EAAkBzE,EAAU,eAC5B0E,EAAgB1E,EAAU,cAC1B2E,EAAqB3E,EAAU,mBAqGrC,SAAS4E,EAAYC,EAAWC,UACxBC,KACAC,QAAQC,KACJ,mLAIJhC,KAAKiC,QAAUJ,IAOXzE,EAAa4C,KAAKkC,MAAON,GAGrC,SAASO,EAAmBjD,EAAQkD,OAC1BC,EAAiBtF,eAAuBqF,kBACxCE,EAAgBvF,eAAuBqF,0BACpCG,WACAvC,KAAKsC,IACNrD,EAAce,KAAMsC,EAAeE,EAAW,YAAcJ,IAEzDpC,KAAKsC,GAEhB7E,OAAO4B,eAAeH,EAAQkD,EAAU,CACpC7C,cAAc,EACdD,YAAY,EACZ6B,IAAK,kBACDoB,EAAQxE,KAAKiC,MAAMyC,iBACZzC,KAAKqC,IAEhBjB,IAAK,SAAasB,GACT1C,KAAK0B,IAAwBtE,EAAa4C,KAAKqC,GAAiBK,GAMjEzD,EAAce,KAAMqC,EAAgBK,IALpCzD,EAAce,KAAMqC,EAAgBK,GACpCzD,EAAce,KAAMyB,GAAe,GACnCc,EAAQxE,KAAKiC,MAAM2C,gBACnB1D,EAAce,KAAMyB,GAAe,OCnJnD,IAKMmB,EAA8B,mBAAX3F,QAAyBA,OAAO4F,IAGnDC,EAAwBF,EACxB3F,OAAO4F,IAAI,qBACW,mBAAfE,GAA6BA,gBAAA,SAEpCC,EAAkBJ,EAClB3F,OAAO4F,IAAI,cACK,mBAATI,GAAuBA,gBAAA,SAK7B,SAASC,EAASC,OACiB,IAAlCA,EAAeC,gBACfrB,QAAQC,KACJ,8IAIJgB,GAAmBG,EAAc,WAAiBH,QAC5C,IAAIK,MACN,mLAOJP,GAAyBK,EAAc,WAAiBL,EAAuB,KACzEQ,EAAaH,EAAe9E,UACR,mBAAfiF,EACP,MAAM,IAAID,MAAM,2DACbN,EAAW,kCACPQ,gBAACC,yBAAgBF,EAAWvD,WAAMsB,EAAWoC,aAM9B,mBAAnBN,GACLA,EAAeO,WAAcP,EAAeO,UAAUrF,QACvD8E,EAAeQ,cACflG,OAAOiG,UAAUE,cAAc7F,KAAK8F,EAAWV,GDvCjD,SAAoCA,OACjCjE,EAASiE,EAAeO,aAC1BxE,EAAO4E,mBACP,MAAM,IAAIT,MAAM,qEAChBF,EAAeY,YAAcC,KACxB9E,EAAO+E,uBACP,GAAI/E,EAAO+E,wBAA0BtC,QAEhC,IAAI0B,MACN,qFAJ2BnE,EAAO+E,sBAAwBtC,EAYtEQ,EAAmBjD,EAAQ,SAC3BiD,EAAmBjD,EAAQ,aAErBoE,EAAapE,EAAOb,cAC1Ba,EAAOb,OAAS,kBAWpB,SAA+BA,kBACM,IAA7ByD,IAAmC,OAAOzD,EAAON,KAAKiC,MAM1Df,EAAce,KAAMyB,GAAe,GAKnCxC,EAAce,KAAM0B,GAAoB,OAGlCwC,EACFlE,KAAKmE,aACLnE,KAAKhD,MACJgD,KAAKoE,cAAgBpE,KAAKoE,YAAYD,aAAenE,KAAKoE,YAAYpH,OACvE,cACEsG,EAAajF,EAAOgG,KAAKrE,MAE3BsE,GAAqB,EAEnBC,EAAW,IAAIC,EAAYN,6BACxBI,IAIDA,GAAqB,GACS,IAA1BtE,EAAKwB,IAA2B,KAC5BiD,GAAW,MAEXxF,EAAce,EAAM0B,GAAoB,GACnC1B,EAAKyB,IAAgBoC,EAAUH,UAAUgB,YAAY3G,KAAKiC,GAC/DyE,GAAW,UAEXxF,EAAce,EAAM0B,GAAoB,GACpC+C,GAAUF,EAASI,uBAS9BC,IACLN,GAAqB,MACjBO,OAAYxD,EACZyD,OAAYzD,KAChBkD,EAASQ,qBAEDD,EAAYE,GAAmB,EAAO1B,GACxC,MAAO2B,GACLJ,EAAYI,KAGhBJ,QACMA,SAEHC,SAlBXP,EAASW,eAAiBlF,KAC1B4E,EAAetD,GAAqBiD,OAC/BlG,OAASuG,EAmBPA,EAAe7G,KAAKiC,OA1EMjC,KAAKiC,KAAMsD,IAE5ChD,EAAMpB,EAAQ,uBAAwB,YACD,IAA7B4C,WACCzD,OAAOiD,IAAsBtB,KAAK3B,OAAOiD,GAAmBqD,eAC5DnD,IAAmB,KAErB2B,ECeAgC,CAA2BhC,GAHvBiC,EAAajC,GCnD5B,IAGakC,EAAsB9B,EAAM+B,cAAc,IAEhD,SAASC,EAASC,gKACfC,EAAclC,EAAMmC,WAAWL,GAC/BjG,EAAQmE,EAAMoC,OAAOlI,iBACpBgI,EACAG,IACJC,WAE0B,eAAzBC,QAAQC,IAAIC,WAEP5I,EAAagC,EADD3B,iBAAK2B,YAEZ,IAAIiE,MACN,yJAKLE,gBAAC8B,EAAoBE,UAASnG,MAAOA,GAAQ6G,GCdxD,SAASC,EAAoBC,EAAcC,EAAWC,EAAaC,OJqD9BC,EAAMrH,EACjCsH,EIpDFC,EAAWlD,EAAMR,oBAAYb,EAAOsD,OAC9BkB,EAAWjJ,iBAAKyE,GAChByE,EAAUpD,EAAMmC,WAAWL,UACjC5H,OAAOmJ,OAAOF,EAAUP,EAAaQ,GAAW,GAAID,IAAa,IAE7DlB,IACAkB,EAASlB,IAAMA,GAGZqB,EAAcT,EAAWM,YAGhCJ,IAAcG,EAAWvD,EAASuD,IACtCA,EAASrD,gBAAiB,EJsCOmD,EInCZH,EJmCkBlH,EInCPuH,EJoC1BD,EAAa/I,OAAOqJ,oBAAoBrJ,OAAOsJ,eAAeR,IACpE9I,OAAOqJ,oBAAoBP,GAAMpG,iBAAQ6G,GAChC7I,EAAe6I,KAAqC,IAA7BR,EAAW7F,QAAQqG,IAC3CvJ,OAAO4B,eAAeH,EAAQ8H,EAAKvJ,OAAOqD,yBAAyByF,EAAMS,MItCjFP,EAASQ,iBAAmBb,EAC5BK,EAAStC,YAIb,SAAuBiC,EAAWC,OAExBa,EACFd,EAAUjC,aACViC,EAAUpJ,MACToJ,EAAUhC,aAAegC,EAAUhC,YAAYpH,MAChD,mBACAqJ,EAA2B,eAAiBA,EAAc,IAAMa,EAAgB,IACjE,UAAYA,EAAgB,IAZxBC,CAAcf,EAAWC,GACzCI,EAwCJ,SAASW,YACRjB,uDACwB,mBAAjB1C,UAAU,IACjB0C,EAAe1C,UAAU,YAClBN,UACH+C,EAAoBC,EAAchD,EAAgBgD,EAAanJ,MAAM,cAElEmG,UACH+C,EAjCZ,SAA0BmB,UACf,SAASC,EAAY1F,UACxByF,EAAWlH,QAAQ,SAASoH,QAEpBA,KAAa3F,SAGX2F,KAAaD,GACf,MAAM,IAAIjE,MACN,yBACIkE,EACA,iEAEZ3F,EAAU2F,GAAaD,EAAWC,MAE/B3F,GAmBC4F,CAAiBH,GACjBlE,EACAkE,EAAWI,KAAK,MAChB,IDxDhBlC,EAASpB,YAAc,eEtBvBjG,IAAMwJ,EAAgB3K,EAAU,yBAC1B4K,EAAe5K,EAAU,wBAE/B,SAAS6K,gBACC5H,KAAK0H,IAAkB,WAAS1H,KAAK2H,IAAiB,IAAKxH,iBAAQ0H,OAC/D1I,EAC2B,iBAAtB0I,EAAiC7H,EAAK6H,GAAqBA,EAClE1I,MAAAA,IACI2I,MAAMC,QAAQ5I,GAAOA,EAAK6I,aAAIC,UAAKA,MAClC9I,OAKV,SAAS+I,EAAiBhJ,EAAQiJ,MACjCL,MAAMC,QAAQI,UACPA,EAAsBH,aAAII,UAAMF,EAAiBhJ,EAAQkJ,SAG9DC,EAAI5K,OAAOsJ,eAAe7H,GAAQkF,aAAe3G,OAAOsJ,eAAe7H,EAAOkF,aAC9EkE,EAAK7K,OAAOsJ,eAAe7H,EAAOkF,gBAGhCiE,IAAM9E,GACN8E,IAAM9E,GACN+E,IAAO/E,GACP+E,IAAO/E,QAGL,IAAIF,MACN,+GAK6B,iBAA1B8E,GAC0B,mBAA1BA,IACNL,MAAMC,QAAQI,SAET,IAAI9E,MACN,yGAQFkF,IAAgCrJ,EAAOwI,MAAoBxI,EAAOyI,UAHnB,iBAA1BQ,EAMrBjJ,EAAOwI,KAAmBxI,EAAOwI,GAAiB,IAElDxI,EAAOyI,KAAkBzI,EAAOyI,GAAgB,KAEhD/G,KAAKuH,GAGNI,GACDjI,EAAMpB,EAAQ,uBAAwB0I,GAIL,iBAA1BO,EACAA,SChEf,SAASK,EAA2BC,YACvBC,EACLC,EACAzG,EACAE,EACA8E,EACA0B,EACAC,wEAGOC,oBACH5B,EAAgBA,GAAiB,gBACjC2B,EAAeA,GAAgBzG,EACR,MAAnBF,EAAME,GACFuG,EAEO,IAAItF,MACP,OACIuF,EACA,KACAC,EACA,+BAEA3B,EACA,yBAT2B,OAApBhF,EAAME,GAAqB,OAAS,aAW3C,MAGL,KAEAqG,gBAASvG,EAAOE,EAAU8E,EAAe0B,EAAUC,UAAiBE,UAKjFC,EAAmBN,EAAUrE,KAAK,MAAM,UAC9C2E,EAAiBL,WAAaD,EAAUrE,KAAK,MAAM,GAC5C2E,EAwBX,SAASC,EAAYC,OACXC,SAAkBD,SACpBpB,MAAMC,QAAQmB,GACP,QAEPA,aAAqBE,OAId,SA7Bf,SAAkBD,EAAUD,SAEP,WAAbC,GAK+B,WAA/BD,EAAU,kBAKQ,mBAAXjM,QAAyBiM,aAAqBjM,OAmBrDoM,CAASF,EAAUD,GACZ,SAEJC,EAiBX,SAASG,EAAmCC,EAAiBC,UAClDhB,EAA2B,SAC9BtG,EACAE,EACA8E,EACA0B,EACAC,UAEOC,gBACCS,GACIN,EAAY/G,EAAME,MAAeoH,EAASC,cAAe,OAAO,SAEpEC,SACIF,OACC,QACDE,EAAcC,YAEb,SACDD,EAAcE,YAEb,MACDF,EAAcG,sBAGR,IAAIxG,8BAA8BmG,OAE1CN,EAAYhH,EAAME,OACnBsH,EAAYR,GAAY,KACnBY,EAxCtB,SAAwBZ,OACdC,EAAWF,EAAYC,MACZ,WAAbC,EAAuB,IACnBD,aAAqBa,WACd,OACJ,GAAIb,aAAqBE,aACrB,gBAGRD,EA+ByBa,CAAed,GAC7Be,EAA+BV,EAC/B,mBAAqBC,EAASC,cAAgB,IAC9C,UACC,IAAIpG,MACP,iBACIwF,EACA,cACAiB,EACA,kBAEA5C,EACA,+BACAsC,EACA,IACAS,EACA,YAGL,SAKnB,SAASC,EAAmCX,EAAiBY,UAClD3B,EAA2B,SAC9BtG,EACAE,EACA8E,EACA0B,EACAC,wEAGOC,gBACwB,mBAAhBqB,SACA,IAAI9G,MACP,aACIwF,EACA,mBACA3B,EACA,wCAIRkD,EAAQd,EAAmCC,EAAiB,QAApDD,CACRpH,EACAE,EACA8E,MAEAkD,aAAiB/G,MAAO,OAAO+G,UAC7BlB,EAAYhH,EAAME,GACfvE,EAAI,EAAGA,EAAIqL,EAAUtL,OAAQC,QAClCuM,EAAQD,gBACJjB,EACArL,EACAqJ,EACA0B,EACAC,EAAe,IAAMhL,EAAI,YACtBkL,eAEc1F,MAAO,OAAO+G,SAEhC,SAKnBlM,IAQamM,GAAY,iBARDf,GAAmC,EAAO,2BACxCY,EAAmC7F,KAAK,MAAM,iBAClDiF,GAAmC,EAAO,wBACvCA,GAAmC,EAAO,iCACpCA,GAAmC,EAAM,kCACvCY,EAAmC7F,KAAK,MAAM,4BAC9CiF,GAAmC,EAAM,WCjM1E,IAAKzF,EAAW,MAAM,IAAIR,MAAM,6CAChC,IAAKiH,EAAY,MAAM,IAAIjH,MAAM,4CAER,mBAAdkH,GAA0BC,EAAU,CAAEC,kBAAmBF"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{unstable_batchedUpdates as
|
|
1
|
+
import{unstable_batchedUpdates as e}from"react-native";import{isUsingStaticRendering as r,observer as t,Observer as o}from"mobx-react-lite";export{Observer,useObserver,useAsObservableSource,useLocalStore,isUsingStaticRendering,useStaticRendering}from"mobx-react-lite";import n,{PureComponent as i,Component as a,forwardRef as c,memo as s,createElement as u}from"react";import{createAtom as f,_allowStateChanges as p,Reaction as l,$mobx as b,isObservableArray as y,isObservableObject as d,isObservableMap as h,untracked as m,observable as v,configure as O}from"mobx";var g=0,w={};function j(e){return w[e]||(w[e]=function(e){if("function"==typeof Symbol)return Symbol(e);var r="__$mobx-react "+e+" ("+g+")";return g++,r}(e)),w[e]}function x(e,r){if(P(e,r))return!0;if("object"!=typeof e||null===e||"object"!=typeof r||null===r)return!1;var t=Object.keys(e),o=Object.keys(r);if(t.length!==o.length)return!1;for(var n=0;n<t.length;n++)if(!hasOwnProperty.call(r,t[n])||!P(e[t[n]],r[t[n]]))return!1;return!0}function P(e,r){return e===r?0!==e||1/e==1/r:e!=e&&r!=r}var E={$$typeof:1,render:1,compare:1,type:1,childContextTypes:1,contextType:1,contextTypes:1,defaultProps:1,getDefaultProps:1,getDerivedStateFromError:1,getDerivedStateFromProps:1,mixins:1,propTypes:1};function S(e,r,t){Object.hasOwnProperty.call(e,r)?e[r]=t:Object.defineProperty(e,r,{enumerable:!1,configurable:!0,writable:!0,value:t})}var R=j("patchMixins"),k=j("patchedDefinition");function A(e,r){for(var t=this,o=[],n=arguments.length-2;n-- >0;)o[n]=arguments[n+2];r.locks++;try{var i;return null!=e&&(i=e.apply(this,o)),i}finally{r.locks--,0===r.locks&&r.methods.forEach(function(e){e.apply(t,o)})}}function C(e,r){return function(){for(var t=[],o=arguments.length;o--;)t[o]=arguments[o];A.call.apply(A,[this,e,r].concat(t))}}function U(e,r,t){var o=function(e,r){var t=e[R]=e[R]||{},o=t[r]=t[r]||{};return o.locks=o.locks||0,o.methods=o.methods||[],o}(e,r);o.methods.indexOf(t)<0&&o.methods.push(t);var n=Object.getOwnPropertyDescriptor(e,r);if(!n||!n[k]){var i=function e(r,t,o,n,i){var a,c=C(i,n);return(a={})[k]=!0,a.get=function(){return c},a.set=function(i){if(this===r)c=C(i,n);else{var a=e(this,t,o,n,i);Object.defineProperty(this,t,a)}},a.configurable=!0,a.enumerable=o,a}(e,r,n?n.enumerable:void 0,o,e[r]);Object.defineProperty(e,r,i)}}var M=b||"$mobx",$=j("isUnmounted"),_=j("skipRender"),T=j("isForcingUpdate");function N(e,t){return r()&&console.warn("[mobx-react] It seems that a re-rendering of a React component is triggered while in static (server-side) mode. Please make sure components are rendered only once server-side."),this.state!==t||!x(this.props,e)}function D(e,r){var t=j("reactProp_"+r+"_valueHolder"),o=j("reactProp_"+r+"_atomHolder");function n(){return this[o]||S(this,o,f("reactive "+r)),this[o]}Object.defineProperty(e,r,{configurable:!0,enumerable:!0,get:function(){return n.call(this).reportObserved(),this[t]},set:function(e){this[T]||x(this[t],e)?S(this,t,e):(S(this,t,e),S(this,_,!0),n.call(this).reportChanged(),S(this,_,!1))}})}var I="function"==typeof Symbol&&Symbol.for,q=I?Symbol.for("react.forward_ref"):"function"==typeof c&&c(function(){}).$$typeof,F=I?Symbol.for("react.memo"):"function"==typeof s&&s(function(){}).$$typeof;function W(e){if(!0===e.isMobxInjector&&console.warn("Mobx observer: You are trying to use 'observer' on a component that already has 'inject'. Please apply 'observer' before applying 'inject'"),F&&e.$$typeof===F)throw new Error("Mobx observer: You are trying to use 'observer' on function component wrapped to either another observer or 'React.memo'. The observer already applies 'React.memo' for you.");if(q&&e.$$typeof===q){var s=e.render;if("function"!=typeof s)throw new Error("render property of ForwardRef was not a function");return c(function(){var e=arguments;return n.createElement(o,null,function(){return s.apply(void 0,e)})})}return"function"!=typeof e||e.prototype&&e.prototype.render||e.isReactClass||Object.prototype.isPrototypeOf.call(a,e)?function(e){var t=e.prototype;if(t.componentWillReact)throw new Error("The componentWillReact life-cycle event is no longer supported");if(e.__proto__!==i)if(t.shouldComponentUpdate){if(t.shouldComponentUpdate!==N)throw new Error("It is not allowed to use shouldComponentUpdate in observer based components.")}else t.shouldComponentUpdate=N;D(t,"props"),D(t,"state");var o=t.render;return t.render=function(){return function(e){var t=this;if(!0===r())return e.call(this);S(this,_,!1),S(this,T,!1);var o=this.displayName||this.name||this.constructor&&(this.constructor.displayName||this.constructor.name)||"<component>",n=e.bind(this),i=!1,c=new l(o+".render()",function(){if(!i&&(i=!0,!0!==t[$])){var e=!0;try{S(t,T,!0),t[_]||a.prototype.forceUpdate.call(t),e=!1}finally{S(t,T,!1),e&&c.dispose()}}});function s(){i=!1;var e=void 0,r=void 0;if(c.track(function(){try{r=p(!1,n)}catch(r){e=r}}),e)throw e;return r}return c.reactComponent=this,s[M]=c,this.render=s,s.call(this)}.call(this,o)},U(t,"componentWillUnmount",function(){!0!==r()&&(this.render[M]&&this.render[M].dispose(),this[$]=!0)}),e}(e):t(e)}var L=n.createContext({});function X(e){var r=e.children,t=function(e,r){var t={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&-1===r.indexOf(o)&&(t[o]=e[o]);return t}(e,["children"]),o=n.useContext(L),i=n.useRef(Object.assign({},o,t)).current;if("production"!==process.env.NODE_ENV&&!x(i,Object.assign({},i,t)))throw new Error("MobX Provider: The set of provided stores has changed. See: https://github.com/mobxjs/mobx-react#the-set-of-provided-stores-has-changed-error.");return n.createElement(L.Provider,{value:i},r)}function H(e,r,t,o){var i,a,c,s=n.forwardRef(function(t,o){var i=Object.assign({},t),a=n.useContext(L);return Object.assign(i,e(a||{},i)||{}),o&&(i.ref=o),u(r,i)});return o&&(s=W(s)),s.isMobxInjector=!0,i=r,a=s,c=Object.getOwnPropertyNames(Object.getPrototypeOf(i)),Object.getOwnPropertyNames(i).forEach(function(e){E[e]||-1!==c.indexOf(e)||Object.defineProperty(a,e,Object.getOwnPropertyDescriptor(i,e))}),s.wrappedComponent=r,s.displayName=function(e,r){var t=e.displayName||e.name||e.constructor&&e.constructor.name||"Component";return r?"inject-with-"+r+"("+t+")":"inject("+t+")"}(r,t),s}function Y(){for(var e,r=[],t=arguments.length;t--;)r[t]=arguments[t];return"function"==typeof arguments[0]?(e=arguments[0],function(r){return H(e,r,e.name,!0)}):function(e){return H(function(e){return function(r,t){return e.forEach(function(e){if(!(e in t)){if(!(e in r))throw new Error("MobX injector: Store '"+e+"' is not available! Make sure it is provided by some Provider");t[e]=r[e]}}),t}}(r),e,r.join("-"),!1)}}X.displayName="MobXProvider";var V=j("disposeOnUnmountProto"),z=j("disposeOnUnmountInst");function B(){var e=this;(this[V]||[]).concat(this[z]||[]).forEach(function(r){var t="string"==typeof r?e[r]:r;null!=t&&(Array.isArray(t)?t.map(function(e){return e()}):t())})}function G(e,r){if(Array.isArray(r))return r.map(function(r){return G(e,r)});var t=Object.getPrototypeOf(e).constructor||Object.getPrototypeOf(e.constructor),o=Object.getPrototypeOf(e.constructor);if(t!==a&&t!==i&&o!==a&&o!==i)throw new Error("[mobx-react] disposeOnUnmount only supports direct subclasses of React.Component or React.PureComponent.");if("string"!=typeof r&&"function"!=typeof r&&!Array.isArray(r))throw new Error("[mobx-react] disposeOnUnmount only works if the parameter is either a property key or a function.");var n=!!e[V]||!!e[z];return("string"==typeof r?e[V]||(e[V]=[]):e[z]||(e[z]=[])).push(r),n||U(e,"componentWillUnmount",B),"string"!=typeof r?r:void 0}function J(e){function r(r,t,o,n,i,a){for(var c=[],s=arguments.length-6;s-- >0;)c[s]=arguments[s+6];return m(function(){return n=n||"<<anonymous>>",a=a||o,null==t[o]?r?new Error("The "+i+" `"+a+"` is marked as required in `"+n+"`, but its value is `"+(null===t[o]?"null":"undefined")+"`."):null:e.apply(void 0,[t,o,n,i,a].concat(c))})}var t=r.bind(null,!1);return t.isRequired=r.bind(null,!0),t}function K(e){var r=typeof e;return Array.isArray(e)?"array":e instanceof RegExp?"object":function(e,r){return"symbol"===e||"Symbol"===r["@@toStringTag"]||"function"==typeof Symbol&&r instanceof Symbol}(r,e)?"symbol":r}function Q(e,r){return J(function(t,o,n,i,a){return m(function(){if(e&&K(t[o])===r.toLowerCase())return null;var i;switch(r){case"Array":i=y;break;case"Object":i=d;break;case"Map":i=h;break;default:throw new Error("Unexpected mobxType: "+r)}var c=t[o];if(!i(c)){var s=function(e){var r=K(e);if("object"===r){if(e instanceof Date)return"date";if(e instanceof RegExp)return"regexp"}return r}(c),u=e?" or javascript `"+r.toLowerCase()+"`":"";return new Error("Invalid prop `"+a+"` of type `"+s+"` supplied to `"+n+"`, expected `mobx.Observable"+r+"`"+u+".")}return null})})}function Z(e,r){return J(function(t,o,n,i,a){for(var c=[],s=arguments.length-5;s-- >0;)c[s]=arguments[s+5];return m(function(){if("function"!=typeof r)return new Error("Property `"+a+"` of component `"+n+"` has invalid PropType notation.");var s=Q(e,"Array")(t,o,n);if(s instanceof Error)return s;for(var u=t[o],f=0;f<u.length;f++)if((s=r.apply(void 0,[u,f,n,i,a+"["+f+"]"].concat(c)))instanceof Error)return s;return null})})}var ee={observableArray:Q(!1,"Array"),observableArrayOf:Z.bind(null,!1),observableMap:Q(!1,"Map"),observableObject:Q(!1,"Object"),arrayOrObservableArray:Q(!0,"Array"),arrayOrObservableArrayOf:Z.bind(null,!0),objectOrObservableObject:Q(!0,"Object")};if(!a)throw new Error("mobx-react requires React to be available");if(!v)throw new Error("mobx-react requires mobx to be available");"function"==typeof e&&O({reactionScheduler:e});export{W as observer,X as Provider,L as MobXProviderContext,Y as inject,G as disposeOnUnmount,ee as PropTypes};
|
|
2
2
|
//# sourceMappingURL=mobx-react.module.js.map
|
package/dist/mobx-react.umd.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!function(e,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports,require("react-dom"),require("mobx-react-lite"),require("react"),require("mobx")):"function"==typeof define&&define.amd?define(["exports","react-dom","mobx-react-lite","react","mobx"],r):r(e.mobxReact={},e.ReactDOM,e.mobxReactLite,e.React,e.mobx)}(this,function(e,r,t,n,o){var i="default"in n?n.default:n,a=0,c={};function s(e){return c[e]||(c[e]=function(e){if("function"==typeof Symbol)return Symbol(e);var r="__$mobx-react "+e+" ("+a+")";return a++,r}(e)),c[e]}function u(e,r){if(f(e,r))return!0;if("object"!=typeof e||null===e||"object"!=typeof r||null===r)return!1;var t=Object.keys(e),n=Object.keys(r);if(t.length!==n.length)return!1;for(var o=0;o<t.length;o++)if(!hasOwnProperty.call(r,t[o])||!f(e[t[o]],r[t[o]]))return!1;return!0}function f(e,r){return e===r?0!==e||1/e==1/r:e!=e&&r!=r}var p={$$typeof:1,render:1,compare:1,type:1,childContextTypes:1,contextType:1,contextTypes:1,defaultProps:1,getDefaultProps:1,getDerivedStateFromError:1,getDerivedStateFromProps:1,mixins:1,propTypes:1};function l(e,r,t){Object.hasOwnProperty.call(e,r)?e[r]=t:Object.defineProperty(e,r,{enumerable:!1,configurable:!0,writable:!0,value:t})}var d=s("patchMixins"),b=s("patchedDefinition");function y(e,r){for(var t=this,n=[],o=arguments.length-2;o-- >0;)n[o]=arguments[o+2];r.locks++;try{var i;return null!=e&&(i=e.apply(this,n)),i}finally{r.locks--,0===r.locks&&r.methods.forEach(function(e){e.apply(t,n)})}}function h(e,r){return function(){for(var t=[],n=arguments.length;n--;)t[n]=arguments[n];y.call.apply(y,[this,e,r].concat(t))}}function v(e,r,t){var n=function(e,r){var t=e[d]=e[d]||{},n=t[r]=t[r]||{};return n.locks=n.locks||0,n.methods=n.methods||[],n}(e,r);n.methods.indexOf(t)<0&&n.methods.push(t);var o=Object.getOwnPropertyDescriptor(e,r);if(!o||!o[b]){var i=function e(r,t,n,o,i){var a,c=h(i,o);return(a={})[b]=!0,a.get=function(){return c},a.set=function(i){if(this===r)c=h(i,o);else{var a=e(this,t,n,o,i);Object.defineProperty(this,t,a)}},a.configurable=!0,a.enumerable=n,a}(e,r,o?o.enumerable:void 0,n,e[r]);Object.defineProperty(e,r,i)}}var m=o.$mobx||"$mobx",g=s("isUnmounted"),O=s("skipRender"),w=s("isForcingUpdate");function j(e,r){return t.isUsingStaticRendering()&&console.warn("[mobx-react] It seems that a re-rendering of a React component is triggered while in static (server-side) mode. Please make sure components are rendered only once server-side."),this.state!==r||!u(this.props,e)}function x(e,r){var t=s("reactProp_"+r+"_valueHolder"),n=s("reactProp_"+r+"_atomHolder");function i(){return this[n]||l(this,n,o.createAtom("reactive "+r)),this[n]}Object.defineProperty(e,r,{configurable:!0,enumerable:!0,get:function(){return i.call(this).reportObserved(),this[t]},set:function(e){this[w]||u(this[t],e)?l(this,t,e):(l(this,t,e),l(this,O,!0),i.call(this).reportChanged(),l(this,O,!1))}})}var P="function"==typeof n.forwardRef&&n.forwardRef(function(e,r){}).$$typeof;function R(e){if(!0===e.isMobxInjector&&console.warn("Mobx observer: You are trying to use 'observer' on a component that already has 'inject'. Please apply 'observer' before applying 'inject'"),P&&e.$$typeof===P){var r=e.render;if("function"!=typeof r)throw new Error("render property of ForwardRef was not a function");return n.forwardRef(function(){var e=arguments;return i.createElement(t.Observer,null,function(){return r.apply(void 0,e)})})}return"function"!=typeof e||e.prototype&&e.prototype.render||e.isReactClass||n.Component.isPrototypeOf(e)?function(e){var r=e.prototype;if(r.componentWillReact)throw new Error("The componentWillReact life-cycle event is no longer supported");if(e.__proto__!==n.PureComponent)if(r.shouldComponentUpdate){if(r.shouldComponentUpdate!==j)throw new Error("It is not allowed to use shouldComponentUpdate in observer based components.")}else r.shouldComponentUpdate=j;x(r,"props"),x(r,"state");var i=r.render;return r.render=function(){return function(e){var r=this;if(!0===t.isUsingStaticRendering())return e.call(this);l(this,O,!1),l(this,w,!1);var i=this.displayName||this.name||this.constructor&&(this.constructor.displayName||this.constructor.name)||"<component>",a=e.bind(this),c=!1,s=new o.Reaction(i+".render()",function(){if(!c&&(c=!0,!0!==r[g])){var e=!0;try{l(r,w,!0),r[O]||n.Component.prototype.forceUpdate.call(r),e=!1}finally{l(r,w,!1),e&&s.dispose()}}});function u(){c=!1;var e=void 0,r=void 0;if(s.track(function(){try{r=o._allowStateChanges(!1,a)}catch(r){e=r}}),e)throw e;return r}return s.reactComponent=this,u[m]=s,this.render=u,u.call(this)}.call(this,i)},v(r,"componentWillUnmount",function(){!0!==t.isUsingStaticRendering()&&(this.render[m]&&this.render[m].dispose(),this[g]=!0)}),e}(e):t.observer(e)}var C={children:!0,key:!0,ref:!0},E=n.createContext({}),S=function(e){function r(r,t){e.call(this,r,t),this.state=Object.assign({},t,_(r))}return e&&(r.__proto__=e),(r.prototype=Object.create(e&&e.prototype)).constructor=r,r.prototype.render=function(){return n.createElement(E.Provider,{value:this.state},n.Children.only(this.props.children))},r.getDerivedStateFromProps=function(e,r){if("production"!==process.env.NODE_ENV&&!u(r,Object.assign({},r,_(e))))throw new Error("MobX Provider: The set of provided stores has changed. Please avoid changing stores as the change might not propagate to all children");return r},r}(n.Component);function _(e){var r={};if(!e)return r;for(var t in e)k(t)&&(r[t]=e[t]);return r}function k(e){return!C[e]&&"suppressChangedStoreWarning"!==e}function U(e,r,t,o){var a=function(e,r){var t=e.displayName||e.name||e.constructor&&e.constructor.name||"Component";return r?"inject-with-"+r+"("+t+")":"inject("+t+")"}(r,t),c=function(t){function o(){t.apply(this,arguments)}return t&&(o.__proto__=t),(o.prototype=Object.create(t&&t.prototype)).constructor=o,o.prototype.render=function(){var t=this.props,o=t.forwardRef,i=function(e,r){var t={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&-1===r.indexOf(n)&&(t[n]=e[n]);return t}(t,["forwardRef"]);return Object.assign(i,e(this.context||{},i)||{}),o&&!function(e){return!(e.prototype&&e.prototype.render)}(r)&&(i.ref=this.props.forwardRef),n.createElement(r,i)},o}(n.Component);c.contextType=E,o&&(c=R(c)),c.isMobxInjector=!0;var s,u,f,l=i.forwardRef(function(e,r){return i.createElement(c,Object.assign({},e,{forwardRef:r}))});return s=r,u=l,f=Object.getOwnPropertyNames(Object.getPrototypeOf(s)),Object.getOwnPropertyNames(s).forEach(function(e){p[e]||-1!==f.indexOf(e)||Object.defineProperty(u,e,Object.getOwnPropertyDescriptor(s,e))}),l.wrappedComponent=r,l.displayName=a,l}S.contextType=E;var A=s("disposeOnUnmount");function M(){var e=this;this[A]&&(this[A].forEach(function(r){var t="string"==typeof r?e[r]:r;null!=t&&(Array.isArray(t)?t.map(function(e){return e()}):t())}),this[A]=[])}function T(e){function r(r,t,n,i,a,c){for(var s=[],u=arguments.length-6;u-- >0;)s[u]=arguments[u+6];return o.untracked(function(){return i=i||"<<anonymous>>",c=c||n,null==t[n]?r?new Error("The "+a+" `"+c+"` is marked as required in `"+i+"`, but its value is `"+(null===t[n]?"null":"undefined")+"`."):null:e.apply(void 0,[t,n,i,a,c].concat(s))})}var t=r.bind(null,!1);return t.isRequired=r.bind(null,!0),t}function D(e){var r=typeof e;return Array.isArray(e)?"array":e instanceof RegExp?"object":function(e,r){return"symbol"===e||"Symbol"===r["@@toStringTag"]||"function"==typeof Symbol&&r instanceof Symbol}(r,e)?"symbol":r}function $(e,r){return T(function(t,n,i,a,c){return o.untracked(function(){if(e&&D(t[n])===r.toLowerCase())return null;var a;switch(r){case"Array":a=o.isObservableArray;break;case"Object":a=o.isObservableObject;break;case"Map":a=o.isObservableMap;break;default:throw new Error("Unexpected mobxType: "+r)}var s=t[n];if(!a(s)){var u=function(e){var r=D(e);if("object"===r){if(e instanceof Date)return"date";if(e instanceof RegExp)return"regexp"}return r}(s),f=e?" or javascript `"+r.toLowerCase()+"`":"";return new Error("Invalid prop `"+c+"` of type `"+u+"` supplied to `"+i+"`, expected `mobx.Observable"+r+"`"+f+".")}return null})})}function q(e,r){return T(function(t,n,i,a,c){for(var s=[],u=arguments.length-5;u-- >0;)s[u]=arguments[u+5];return o.untracked(function(){if("function"!=typeof r)return new Error("Property `"+c+"` of component `"+i+"` has invalid PropType notation.");var o=$(e,"Array")(t,n,i);if(o instanceof Error)return o;for(var u=t[n],f=0;f<u.length;f++)if((o=r.apply(void 0,[u,f,i,a,c+"["+f+"]"].concat(s)))instanceof Error)return o;return null})})}var N={observableArray:$(!1,"Array"),observableArrayOf:q.bind(null,!1),observableMap:$(!1,"Map"),observableObject:$(!1,"Object"),arrayOrObservableArray:$(!0,"Array"),arrayOrObservableArrayOf:q.bind(null,!0),objectOrObservableObject:$(!0,"Object")};if(!n.Component)throw new Error("mobx-react requires React to be available");if(!o.observable)throw new Error("mobx-react requires mobx to be available");"function"==typeof r.unstable_batchedUpdates&&o.configure({reactionScheduler:r.unstable_batchedUpdates}),e.Observer=t.Observer,e.useAsObservableSource=t.useAsObservableSource,e.useLocalStore=t.useLocalStore,e.isUsingStaticRendering=t.isUsingStaticRendering,e.useStaticRendering=t.useStaticRendering,e.observer=R,e.Provider=S,e.MobXProviderContext=E,e.inject=function(){for(var e,r=[],t=arguments.length;t--;)r[t]=arguments[t];return"function"==typeof arguments[0]?(e=arguments[0],function(r){return U(e,r,e.name,!0)}):function(e){return U(function(e){return function(r,t){return e.forEach(function(e){if(!(e in t)){if(!(e in r))throw new Error("MobX injector: Store '"+e+"' is not available! Make sure it is provided by some Provider");t[e]=r[e]}}),t}}(r),e,r.join("-"),!1)}},e.disposeOnUnmount=function e(r,t){if(Array.isArray(t))return t.map(function(t){return e(r,t)});var o=Object.getPrototypeOf(r).constructor||Object.getPrototypeOf(r.constructor),i=Object.getPrototypeOf(r.constructor);if(o!==n.Component&&o!==n.PureComponent&&i!==n.Component&&i!==n.PureComponent)throw new Error("[mobx-react] disposeOnUnmount only supports direct subclasses of React.Component or React.PureComponent.");if("string"!=typeof t&&"function"!=typeof t&&!Array.isArray(t))throw new Error("[mobx-react] disposeOnUnmount only works if the parameter is either a property key or a function.");var a=!!r[A];return(r[A]||(r[A]=[])).push(t),a||v(r,"componentWillUnmount",M),"string"!=typeof t?t:void 0},e.PropTypes=N});
|
|
1
|
+
!function(e,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports,require("react-dom"),require("mobx-react-lite"),require("react"),require("mobx")):"function"==typeof define&&define.amd?define(["exports","react-dom","mobx-react-lite","react","mobx"],r):r(e.mobxReact={},e.ReactDOM,e.mobxReactLite,e.React,e.mobx)}(this,function(e,r,t,n,o){var i="default"in n?n.default:n,a=0,c={};function s(e){return c[e]||(c[e]=function(e){if("function"==typeof Symbol)return Symbol(e);var r="__$mobx-react "+e+" ("+a+")";return a++,r}(e)),c[e]}function u(e,r){if(f(e,r))return!0;if("object"!=typeof e||null===e||"object"!=typeof r||null===r)return!1;var t=Object.keys(e),n=Object.keys(r);if(t.length!==n.length)return!1;for(var o=0;o<t.length;o++)if(!hasOwnProperty.call(r,t[o])||!f(e[t[o]],r[t[o]]))return!1;return!0}function f(e,r){return e===r?0!==e||1/e==1/r:e!=e&&r!=r}var p={$$typeof:1,render:1,compare:1,type:1,childContextTypes:1,contextType:1,contextTypes:1,defaultProps:1,getDefaultProps:1,getDerivedStateFromError:1,getDerivedStateFromProps:1,mixins:1,propTypes:1};function l(e,r,t){Object.hasOwnProperty.call(e,r)?e[r]=t:Object.defineProperty(e,r,{enumerable:!1,configurable:!0,writable:!0,value:t})}var b=s("patchMixins"),d=s("patchedDefinition");function y(e,r){for(var t=this,n=[],o=arguments.length-2;o-- >0;)n[o]=arguments[o+2];r.locks++;try{var i;return null!=e&&(i=e.apply(this,n)),i}finally{r.locks--,0===r.locks&&r.methods.forEach(function(e){e.apply(t,n)})}}function m(e,r){return function(){for(var t=[],n=arguments.length;n--;)t[n]=arguments[n];y.call.apply(y,[this,e,r].concat(t))}}function h(e,r,t){var n=function(e,r){var t=e[b]=e[b]||{},n=t[r]=t[r]||{};return n.locks=n.locks||0,n.methods=n.methods||[],n}(e,r);n.methods.indexOf(t)<0&&n.methods.push(t);var o=Object.getOwnPropertyDescriptor(e,r);if(!o||!o[d]){var i=function e(r,t,n,o,i){var a,c=m(i,o);return(a={})[d]=!0,a.get=function(){return c},a.set=function(i){if(this===r)c=m(i,o);else{var a=e(this,t,n,o,i);Object.defineProperty(this,t,a)}},a.configurable=!0,a.enumerable=n,a}(e,r,o?o.enumerable:void 0,n,e[r]);Object.defineProperty(e,r,i)}}var v=o.$mobx||"$mobx",O=s("isUnmounted"),g=s("skipRender"),w=s("isForcingUpdate");function j(e,r){return t.isUsingStaticRendering()&&console.warn("[mobx-react] It seems that a re-rendering of a React component is triggered while in static (server-side) mode. Please make sure components are rendered only once server-side."),this.state!==r||!u(this.props,e)}function x(e,r){var t=s("reactProp_"+r+"_valueHolder"),n=s("reactProp_"+r+"_atomHolder");function i(){return this[n]||l(this,n,o.createAtom("reactive "+r)),this[n]}Object.defineProperty(e,r,{configurable:!0,enumerable:!0,get:function(){return i.call(this).reportObserved(),this[t]},set:function(e){this[w]||u(this[t],e)?l(this,t,e):(l(this,t,e),l(this,g,!0),i.call(this).reportChanged(),l(this,g,!1))}})}var P="function"==typeof Symbol&&Symbol.for,R=P?Symbol.for("react.forward_ref"):"function"==typeof n.forwardRef&&n.forwardRef(function(){}).$$typeof,E=P?Symbol.for("react.memo"):"function"==typeof n.memo&&n.memo(function(){}).$$typeof;function C(e){if(!0===e.isMobxInjector&&console.warn("Mobx observer: You are trying to use 'observer' on a component that already has 'inject'. Please apply 'observer' before applying 'inject'"),E&&e.$$typeof===E)throw new Error("Mobx observer: You are trying to use 'observer' on function component wrapped to either another observer or 'React.memo'. The observer already applies 'React.memo' for you.");if(R&&e.$$typeof===R){var r=e.render;if("function"!=typeof r)throw new Error("render property of ForwardRef was not a function");return n.forwardRef(function(){var e=arguments;return i.createElement(t.Observer,null,function(){return r.apply(void 0,e)})})}return"function"!=typeof e||e.prototype&&e.prototype.render||e.isReactClass||Object.prototype.isPrototypeOf.call(n.Component,e)?function(e){var r=e.prototype;if(r.componentWillReact)throw new Error("The componentWillReact life-cycle event is no longer supported");if(e.__proto__!==n.PureComponent)if(r.shouldComponentUpdate){if(r.shouldComponentUpdate!==j)throw new Error("It is not allowed to use shouldComponentUpdate in observer based components.")}else r.shouldComponentUpdate=j;x(r,"props"),x(r,"state");var i=r.render;return r.render=function(){return function(e){var r=this;if(!0===t.isUsingStaticRendering())return e.call(this);l(this,g,!1),l(this,w,!1);var i=this.displayName||this.name||this.constructor&&(this.constructor.displayName||this.constructor.name)||"<component>",a=e.bind(this),c=!1,s=new o.Reaction(i+".render()",function(){if(!c&&(c=!0,!0!==r[O])){var e=!0;try{l(r,w,!0),r[g]||n.Component.prototype.forceUpdate.call(r),e=!1}finally{l(r,w,!1),e&&s.dispose()}}});function u(){c=!1;var e=void 0,r=void 0;if(s.track(function(){try{r=o._allowStateChanges(!1,a)}catch(r){e=r}}),e)throw e;return r}return s.reactComponent=this,u[v]=s,this.render=u,u.call(this)}.call(this,i)},h(r,"componentWillUnmount",function(){!0!==t.isUsingStaticRendering()&&(this.render[v]&&this.render[v].dispose(),this[O]=!0)}),e}(e):t.observer(e)}var S=i.createContext({});function U(e){var r=e.children,t=function(e,r){var t={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&-1===r.indexOf(n)&&(t[n]=e[n]);return t}(e,["children"]),n=i.useContext(S),o=i.useRef(Object.assign({},n,t)).current;if("production"!==process.env.NODE_ENV&&!u(o,Object.assign({},o,t)))throw new Error("MobX Provider: The set of provided stores has changed. See: https://github.com/mobxjs/mobx-react#the-set-of-provided-stores-has-changed-error.");return i.createElement(S.Provider,{value:o},r)}function k(e,r,t,o){var a,c,s,u=i.forwardRef(function(t,o){var a=Object.assign({},t),c=i.useContext(S);return Object.assign(a,e(c||{},a)||{}),o&&(a.ref=o),n.createElement(r,a)});return o&&(u=C(u)),u.isMobxInjector=!0,a=r,c=u,s=Object.getOwnPropertyNames(Object.getPrototypeOf(a)),Object.getOwnPropertyNames(a).forEach(function(e){p[e]||-1!==s.indexOf(e)||Object.defineProperty(c,e,Object.getOwnPropertyDescriptor(a,e))}),u.wrappedComponent=r,u.displayName=function(e,r){var t=e.displayName||e.name||e.constructor&&e.constructor.name||"Component";return r?"inject-with-"+r+"("+t+")":"inject("+t+")"}(r,t),u}U.displayName="MobXProvider";var A=s("disposeOnUnmountProto"),M=s("disposeOnUnmountInst");function _(){var e=this;(this[A]||[]).concat(this[M]||[]).forEach(function(r){var t="string"==typeof r?e[r]:r;null!=t&&(Array.isArray(t)?t.map(function(e){return e()}):t())})}function $(e){function r(r,t,n,i,a,c){for(var s=[],u=arguments.length-6;u-- >0;)s[u]=arguments[u+6];return o.untracked(function(){return i=i||"<<anonymous>>",c=c||n,null==t[n]?r?new Error("The "+a+" `"+c+"` is marked as required in `"+i+"`, but its value is `"+(null===t[n]?"null":"undefined")+"`."):null:e.apply(void 0,[t,n,i,a,c].concat(s))})}var t=r.bind(null,!1);return t.isRequired=r.bind(null,!0),t}function T(e){var r=typeof e;return Array.isArray(e)?"array":e instanceof RegExp?"object":function(e,r){return"symbol"===e||"Symbol"===r["@@toStringTag"]||"function"==typeof Symbol&&r instanceof Symbol}(r,e)?"symbol":r}function D(e,r){return $(function(t,n,i,a,c){return o.untracked(function(){if(e&&T(t[n])===r.toLowerCase())return null;var a;switch(r){case"Array":a=o.isObservableArray;break;case"Object":a=o.isObservableObject;break;case"Map":a=o.isObservableMap;break;default:throw new Error("Unexpected mobxType: "+r)}var s=t[n];if(!a(s)){var u=function(e){var r=T(e);if("object"===r){if(e instanceof Date)return"date";if(e instanceof RegExp)return"regexp"}return r}(s),f=e?" or javascript `"+r.toLowerCase()+"`":"";return new Error("Invalid prop `"+c+"` of type `"+u+"` supplied to `"+i+"`, expected `mobx.Observable"+r+"`"+f+".")}return null})})}function N(e,r){return $(function(t,n,i,a,c){for(var s=[],u=arguments.length-5;u-- >0;)s[u]=arguments[u+5];return o.untracked(function(){if("function"!=typeof r)return new Error("Property `"+c+"` of component `"+i+"` has invalid PropType notation.");var o=D(e,"Array")(t,n,i);if(o instanceof Error)return o;for(var u=t[n],f=0;f<u.length;f++)if((o=r.apply(void 0,[u,f,i,a,c+"["+f+"]"].concat(s)))instanceof Error)return o;return null})})}var q={observableArray:D(!1,"Array"),observableArrayOf:N.bind(null,!1),observableMap:D(!1,"Map"),observableObject:D(!1,"Object"),arrayOrObservableArray:D(!0,"Array"),arrayOrObservableArrayOf:N.bind(null,!0),objectOrObservableObject:D(!0,"Object")};if(!n.Component)throw new Error("mobx-react requires React to be available");if(!o.observable)throw new Error("mobx-react requires mobx to be available");"function"==typeof r.unstable_batchedUpdates&&o.configure({reactionScheduler:r.unstable_batchedUpdates}),e.Observer=t.Observer,e.useObserver=t.useObserver,e.useAsObservableSource=t.useAsObservableSource,e.useLocalStore=t.useLocalStore,e.isUsingStaticRendering=t.isUsingStaticRendering,e.useStaticRendering=t.useStaticRendering,e.observer=C,e.Provider=U,e.MobXProviderContext=S,e.inject=function(){for(var e,r=[],t=arguments.length;t--;)r[t]=arguments[t];return"function"==typeof arguments[0]?(e=arguments[0],function(r){return k(e,r,e.name,!0)}):function(e){return k(function(e){return function(r,t){return e.forEach(function(e){if(!(e in t)){if(!(e in r))throw new Error("MobX injector: Store '"+e+"' is not available! Make sure it is provided by some Provider");t[e]=r[e]}}),t}}(r),e,r.join("-"),!1)}},e.disposeOnUnmount=function e(r,t){if(Array.isArray(t))return t.map(function(t){return e(r,t)});var o=Object.getPrototypeOf(r).constructor||Object.getPrototypeOf(r.constructor),i=Object.getPrototypeOf(r.constructor);if(o!==n.Component&&o!==n.PureComponent&&i!==n.Component&&i!==n.PureComponent)throw new Error("[mobx-react] disposeOnUnmount only supports direct subclasses of React.Component or React.PureComponent.");if("string"!=typeof t&&"function"!=typeof t&&!Array.isArray(t))throw new Error("[mobx-react] disposeOnUnmount only works if the parameter is either a property key or a function.");var a=!!r[A]||!!r[M];return("string"==typeof t?r[A]||(r[A]=[]):r[M]||(r[M]=[])).push(t),a||h(r,"componentWillUnmount",_),"string"!=typeof t?t:void 0},e.PropTypes=q});
|
|
2
2
|
//# sourceMappingURL=mobx-react.umd.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mobx-react.umd.js","sources":["../src/utils/utils.js","../src/observerClass.js","../src/observer.js","../src/Provider.js","../src/inject.js","../src/disposeOnUnmount.js","../src/propTypes.js","../src/index.js"],"sourcesContent":["export function isStateless(component) {\n // `function() {}` has prototype, but `() => {}` doesn't\n // `() => {}` via Babel has prototype too.\n return !(component.prototype && component.prototype.render)\n}\n\nlet symbolId = 0\nfunction createSymbol(name) {\n if (typeof Symbol === \"function\") {\n return Symbol(name)\n }\n const symbol = `__$mobx-react ${name} (${symbolId})`\n symbolId++\n return symbol\n}\n\nconst createdSymbols = {}\nexport function newSymbol(name) {\n if (!createdSymbols[name]) {\n createdSymbols[name] = createSymbol(name)\n }\n return createdSymbols[name]\n}\n\nexport function shallowEqual(objA, objB) {\n //From: https://github.com/facebook/fbjs/blob/c69904a511b900266935168223063dd8772dfc40/packages/fbjs/src/core/shallowEqual.js\n if (is(objA, objB)) return true\n if (typeof objA !== \"object\" || objA === null || typeof objB !== \"object\" || objB === null) {\n return false\n }\n const keysA = Object.keys(objA)\n const keysB = Object.keys(objB)\n if (keysA.length !== keysB.length) return false\n for (let i = 0; i < keysA.length; i++) {\n if (!hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n return false\n }\n }\n return true\n}\n\nfunction is(x, y) {\n // From: https://github.com/facebook/fbjs/blob/c69904a511b900266935168223063dd8772dfc40/packages/fbjs/src/core/shallowEqual.js\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y\n } else {\n return x !== x && y !== y\n }\n}\n\n// based on https://github.com/mridgway/hoist-non-react-statics/blob/master/src/index.js\nconst hoistBlackList = {\n $$typeof: 1,\n render: 1,\n compare: 1,\n type: 1,\n childContextTypes: 1,\n contextType: 1,\n contextTypes: 1,\n defaultProps: 1,\n getDefaultProps: 1,\n getDerivedStateFromError: 1,\n getDerivedStateFromProps: 1,\n mixins: 1,\n propTypes: 1\n}\n\nexport function copyStaticProperties(base, target) {\n const protoProps = Object.getOwnPropertyNames(Object.getPrototypeOf(base))\n Object.getOwnPropertyNames(base).forEach(key => {\n if (!hoistBlackList[key] && protoProps.indexOf(key) === -1) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(base, key))\n }\n })\n}\n\n/**\n * Helper to set `prop` to `this` as non-enumerable (hidden prop)\n * @param target\n * @param prop\n * @param value\n */\nexport function setHiddenProp(target, prop, value) {\n if (!Object.hasOwnProperty.call(target, prop)) {\n Object.defineProperty(target, prop, {\n enumerable: false,\n configurable: true,\n writable: true,\n value\n })\n } else {\n target[prop] = value\n }\n}\n\n/**\n * Utilities for patching componentWillUnmount, to make sure @disposeOnUnmount works correctly icm with user defined hooks\n * and the handler provided by mobx-react\n */\nconst mobxMixins = newSymbol(\"patchMixins\")\nconst mobxPatchedDefinition = newSymbol(\"patchedDefinition\")\n\nfunction getMixins(target, methodName) {\n const mixins = (target[mobxMixins] = target[mobxMixins] || {})\n const methodMixins = (mixins[methodName] = mixins[methodName] || {})\n methodMixins.locks = methodMixins.locks || 0\n methodMixins.methods = methodMixins.methods || []\n return methodMixins\n}\n\nfunction wrapper(realMethod, mixins, ...args) {\n // locks are used to ensure that mixins are invoked only once per invocation, even on recursive calls\n mixins.locks++\n\n try {\n let retVal\n if (realMethod !== undefined && realMethod !== null) {\n retVal = realMethod.apply(this, args)\n }\n\n return retVal\n } finally {\n mixins.locks--\n if (mixins.locks === 0) {\n mixins.methods.forEach(mx => {\n mx.apply(this, args)\n })\n }\n }\n}\n\nfunction wrapFunction(realMethod, mixins) {\n const fn = function(...args) {\n wrapper.call(this, realMethod, mixins, ...args)\n }\n return fn\n}\n\nexport function patch(target, methodName, mixinMethod) {\n const mixins = getMixins(target, methodName)\n\n if (mixins.methods.indexOf(mixinMethod) < 0) {\n mixins.methods.push(mixinMethod)\n }\n\n const oldDefinition = Object.getOwnPropertyDescriptor(target, methodName)\n if (oldDefinition && oldDefinition[mobxPatchedDefinition]) {\n // already patched definition, do not repatch\n return\n }\n\n const originalMethod = target[methodName]\n const newDefinition = createDefinition(\n target,\n methodName,\n oldDefinition ? oldDefinition.enumerable : undefined,\n mixins,\n originalMethod\n )\n\n Object.defineProperty(target, methodName, newDefinition)\n}\n\nfunction createDefinition(target, methodName, enumerable, mixins, originalMethod) {\n let wrappedFunc = wrapFunction(originalMethod, mixins)\n\n return {\n [mobxPatchedDefinition]: true,\n get: function() {\n return wrappedFunc\n },\n set: function(value) {\n if (this === target) {\n wrappedFunc = wrapFunction(value, mixins)\n } else {\n // when it is an instance of the prototype/a child prototype patch that particular case again separately\n // since we need to store separate values depending on wether it is the actual instance, the prototype, etc\n // e.g. the method for super might not be the same as the method for the prototype which might be not the same\n // as the method for the instance\n const newDefinition = createDefinition(this, methodName, enumerable, mixins, value)\n Object.defineProperty(this, methodName, newDefinition)\n }\n },\n configurable: true,\n enumerable: enumerable\n }\n}\n","import { PureComponent, Component } from \"react\"\nimport { createAtom, _allowStateChanges, Reaction, $mobx } from \"mobx\"\nimport { isUsingStaticRendering } from \"mobx-react-lite\"\n\nimport { newSymbol, shallowEqual, setHiddenProp, patch } from \"./utils/utils\"\n\nconst mobxAdminProperty = $mobx || \"$mobx\"\nconst mobxIsUnmounted = newSymbol(\"isUnmounted\")\nconst skipRenderKey = newSymbol(\"skipRender\")\nconst isForcingUpdateKey = newSymbol(\"isForcingUpdate\")\n\nexport function makeClassComponentObserver(componentClass) {\n const target = componentClass.prototype\n if (target.componentWillReact)\n throw new Error(\"The componentWillReact life-cycle event is no longer supported\")\n if (componentClass.__proto__ !== PureComponent) {\n if (!target.shouldComponentUpdate) target.shouldComponentUpdate = observerSCU\n else if (target.shouldComponentUpdate !== observerSCU)\n // n.b. unequal check, instead of existence check, as @observer might be on superclass as well\n throw new Error(\n \"It is not allowed to use shouldComponentUpdate in observer based components.\"\n )\n }\n\n // this.props and this.state are made observable, just to make sure @computed fields that\n // are defined inside the component, and which rely on state or props, re-compute if state or props change\n // (otherwise the computed wouldn't update and become stale on props change, since props are not observable)\n // However, this solution is not without it's own problems: https://github.com/mobxjs/mobx-react/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3Aobservable-props-or-not+\n makeObservableProp(target, \"props\")\n makeObservableProp(target, \"state\")\n\n const baseRender = target.render\n target.render = function() {\n return makeComponentReactive.call(this, baseRender)\n }\n patch(target, \"componentWillUnmount\", function() {\n if (isUsingStaticRendering() === true) return\n this.render[mobxAdminProperty] && this.render[mobxAdminProperty].dispose()\n this[mobxIsUnmounted] = true\n })\n return componentClass\n}\n\nfunction makeComponentReactive(render) {\n if (isUsingStaticRendering() === true) return render.call(this)\n\n /**\n * If props are shallowly modified, react will render anyway,\n * so atom.reportChanged() should not result in yet another re-render\n */\n setHiddenProp(this, skipRenderKey, false)\n /**\n * forceUpdate will re-assign this.props. We don't want that to cause a loop,\n * so detect these changes\n */\n setHiddenProp(this, isForcingUpdateKey, false)\n\n // Generate friendly name for debugging\n const initialName =\n this.displayName ||\n this.name ||\n (this.constructor && (this.constructor.displayName || this.constructor.name)) ||\n \"<component>\"\n const baseRender = render.bind(this)\n\n let isRenderingPending = false\n\n const reaction = new Reaction(`${initialName}.render()`, () => {\n if (!isRenderingPending) {\n // N.B. Getting here *before mounting* means that a component constructor has side effects (see the relevant test in misc.js)\n // This unidiomatic React usage but React will correctly warn about this so we continue as usual\n // See #85 / Pull #44\n isRenderingPending = true\n if (this[mobxIsUnmounted] !== true) {\n let hasError = true\n try {\n setHiddenProp(this, isForcingUpdateKey, true)\n if (!this[skipRenderKey]) Component.prototype.forceUpdate.call(this)\n hasError = false\n } finally {\n setHiddenProp(this, isForcingUpdateKey, false)\n if (hasError) reaction.dispose()\n }\n }\n }\n })\n reaction.reactComponent = this\n reactiveRender[mobxAdminProperty] = reaction\n this.render = reactiveRender\n\n function reactiveRender() {\n isRenderingPending = false\n let exception = undefined\n let rendering = undefined\n reaction.track(() => {\n try {\n rendering = _allowStateChanges(false, baseRender)\n } catch (e) {\n exception = e\n }\n })\n if (exception) {\n throw exception\n }\n return rendering\n }\n\n return reactiveRender.call(this)\n}\n\nfunction observerSCU(nextProps, nextState) {\n if (isUsingStaticRendering()) {\n console.warn(\n \"[mobx-react] It seems that a re-rendering of a React component is triggered while in static (server-side) mode. Please make sure components are rendered only once server-side.\"\n )\n }\n // update on any state changes (as is the default)\n if (this.state !== nextState) {\n return true\n }\n // update if props are shallowly not equal, inspired by PureRenderMixin\n // we could return just 'false' here, and avoid the `skipRender` checks etc\n // however, it is nicer if lifecycle events are triggered like usually,\n // so we return true here if props are shallowly modified.\n return !shallowEqual(this.props, nextProps)\n}\n\nfunction makeObservableProp(target, propName) {\n const valueHolderKey = newSymbol(`reactProp_${propName}_valueHolder`)\n const atomHolderKey = newSymbol(`reactProp_${propName}_atomHolder`)\n function getAtom() {\n if (!this[atomHolderKey]) {\n setHiddenProp(this, atomHolderKey, createAtom(\"reactive \" + propName))\n }\n return this[atomHolderKey]\n }\n Object.defineProperty(target, propName, {\n configurable: true,\n enumerable: true,\n get: function() {\n getAtom.call(this).reportObserved()\n return this[valueHolderKey]\n },\n set: function set(v) {\n if (!this[isForcingUpdateKey] && !shallowEqual(this[valueHolderKey], v)) {\n setHiddenProp(this, valueHolderKey, v)\n setHiddenProp(this, skipRenderKey, true)\n getAtom.call(this).reportChanged()\n setHiddenProp(this, skipRenderKey, false)\n } else {\n setHiddenProp(this, valueHolderKey, v)\n }\n }\n })\n}\n","import React, { Component, forwardRef } from \"react\"\nimport { _allowStateChanges } from \"mobx\"\nimport { observer as observerLite, Observer } from \"mobx-react-lite\"\n\nimport { makeClassComponentObserver } from \"./observerClass\"\n\n// Using react-is had some issues (and operates on elements, not on types), see #608 / #609\nconst ReactForwardRefSymbol =\n typeof forwardRef === \"function\" && forwardRef((_props, _ref) => {})[\"$$typeof\"]\n\n/**\n * Observer function / decorator\n */\nexport function observer(componentClass) {\n if (componentClass.isMobxInjector === true) {\n console.warn(\n \"Mobx observer: You are trying to use 'observer' on a component that already has 'inject'. Please apply 'observer' before applying 'inject'\"\n )\n }\n\n // Unwrap forward refs into `<Observer>` component\n // we need to unwrap the render, because it is the inner render that needs to be tracked,\n // not the ForwardRef HoC\n if (ReactForwardRefSymbol && componentClass[\"$$typeof\"] === ReactForwardRefSymbol) {\n const baseRender = componentClass.render\n if (typeof baseRender !== \"function\")\n throw new Error(\"render property of ForwardRef was not a function\")\n return forwardRef(function ObserverForwardRef() {\n return <Observer>{() => baseRender.apply(undefined, arguments)}</Observer>\n })\n }\n\n // Function component\n if (\n typeof componentClass === \"function\" &&\n (!componentClass.prototype || !componentClass.prototype.render) &&\n !componentClass.isReactClass &&\n !Component.isPrototypeOf(componentClass)\n ) {\n return observerLite(componentClass)\n }\n\n return makeClassComponentObserver(componentClass)\n}\n","import { Children, Component, createContext, createElement } from \"react\"\nimport { shallowEqual } from \"./utils/utils\"\n\nconst specialReactKeys = { children: true, key: true, ref: true }\n\nexport const MobXProviderContext = createContext({})\n\nexport class Provider extends Component {\n static contextType = MobXProviderContext\n\n constructor(props, context) {\n super(props, context)\n this.state = {\n ...context,\n ...grabStores(props)\n }\n }\n\n render() {\n return createElement(\n MobXProviderContext.Provider,\n { value: this.state },\n Children.only(this.props.children)\n )\n }\n\n static getDerivedStateFromProps(nextProps, prevState) {\n if (process.env.NODE_ENV !== \"production\") {\n const newStores = { ...prevState, ...grabStores(nextProps) } // spread in prevState for the context based stores\n if (!shallowEqual(prevState, newStores))\n throw new Error(\n \"MobX Provider: The set of provided stores has changed. Please avoid changing stores as the change might not propagate to all children\"\n )\n }\n return prevState // because they didn't change, remember!\n }\n}\n\nfunction grabStores(from) {\n const res = {}\n if (!from) return res\n for (let key in from) if (validStoreName(key)) res[key] = from[key]\n return res\n}\n\nfunction validStoreName(key) {\n return !specialReactKeys[key] && key !== \"suppressChangedStoreWarning\"\n}\n","import React, { Component, createElement } from \"react\"\nimport { observer } from \"./observer\"\nimport { isStateless, copyStaticProperties } from \"./utils/utils\"\nimport { MobXProviderContext } from \"./Provider\"\n\n/**\n * Store Injection\n */\nfunction createStoreInjector(grabStoresFn, component, injectNames, makeReactive) {\n let displayName = getInjectName(component, injectNames)\n\n class Injector extends Component {\n static contextType = MobXProviderContext\n\n render() {\n const { forwardRef, ...props } = this.props\n\n Object.assign(props, grabStoresFn(this.context || {}, props) || {})\n\n if (forwardRef && !isStateless(component)) {\n props.ref = this.props.forwardRef\n }\n\n return createElement(component, props)\n }\n }\n if (makeReactive) Injector = observer(Injector)\n Injector.isMobxInjector = true // assigned late to suppress observer warning\n\n // Support forward refs\n const InjectHocRef = React.forwardRef((props, ref) =>\n React.createElement(Injector, { ...props, forwardRef: ref })\n )\n // Static fields from component should be visible on the generated Injector\n copyStaticProperties(component, InjectHocRef)\n InjectHocRef.wrappedComponent = component\n InjectHocRef.displayName = displayName\n return InjectHocRef\n}\n\nfunction getInjectName(component, injectNames) {\n let displayName\n const componentName =\n component.displayName ||\n component.name ||\n (component.constructor && component.constructor.name) ||\n \"Component\"\n if (injectNames) displayName = \"inject-with-\" + injectNames + \"(\" + componentName + \")\"\n else displayName = \"inject(\" + componentName + \")\"\n return displayName\n}\n\nfunction grabStoresByName(storeNames) {\n return function(baseStores, nextProps) {\n storeNames.forEach(function(storeName) {\n if (\n storeName in nextProps // prefer props over stores\n )\n return\n if (!(storeName in baseStores))\n throw new Error(\n \"MobX injector: Store '\" +\n storeName +\n \"' is not available! Make sure it is provided by some Provider\"\n )\n nextProps[storeName] = baseStores[storeName]\n })\n return nextProps\n }\n}\n\n/**\n * higher order component that injects stores to a child.\n * takes either a varargs list of strings, which are stores read from the context,\n * or a function that manually maps the available stores from the context to props:\n * storesToProps(mobxStores, props, context) => newProps\n */\nexport function inject(/* fn(stores, nextProps) or ...storeNames */ ...storeNames) {\n let grabStoresFn\n if (typeof arguments[0] === \"function\") {\n grabStoresFn = arguments[0]\n return componentClass =>\n createStoreInjector(grabStoresFn, componentClass, grabStoresFn.name, true)\n } else {\n return componentClass =>\n createStoreInjector(\n grabStoresByName(storeNames),\n componentClass,\n storeNames.join(\"-\"),\n false\n )\n }\n}\n","import * as React from \"react\"\nimport { patch, newSymbol } from \"./utils/utils\"\n\nconst storeKey = newSymbol(\"disposeOnUnmount\")\n\nfunction runDisposersOnWillUnmount() {\n if (!this[storeKey]) {\n // when disposeOnUnmount is only set to some instances of a component it will still patch the prototype\n return\n }\n this[storeKey].forEach(propKeyOrFunction => {\n const prop =\n typeof propKeyOrFunction === \"string\" ? this[propKeyOrFunction] : propKeyOrFunction\n if (prop !== undefined && prop !== null) {\n if (Array.isArray(prop)) prop.map(f => f())\n else prop()\n }\n })\n this[storeKey] = []\n}\n\nexport function disposeOnUnmount(target, propertyKeyOrFunction) {\n if (Array.isArray(propertyKeyOrFunction)) {\n return propertyKeyOrFunction.map(fn => disposeOnUnmount(target, fn))\n }\n\n const c = Object.getPrototypeOf(target).constructor || Object.getPrototypeOf(target.constructor)\n const c2 = Object.getPrototypeOf(target.constructor)\n if (\n !(\n c === React.Component ||\n c === React.PureComponent ||\n c2 === React.Component ||\n c2 === React.PureComponent\n )\n ) {\n throw new Error(\n \"[mobx-react] disposeOnUnmount only supports direct subclasses of React.Component or React.PureComponent.\"\n )\n }\n\n if (\n typeof propertyKeyOrFunction !== \"string\" &&\n typeof propertyKeyOrFunction !== \"function\" &&\n !Array.isArray(propertyKeyOrFunction)\n ) {\n throw new Error(\n \"[mobx-react] disposeOnUnmount only works if the parameter is either a property key or a function.\"\n )\n }\n\n // add property key / function we want run (disposed) to the store\n const componentWasAlreadyModified = !!target[storeKey]\n const store = target[storeKey] || (target[storeKey] = [])\n\n store.push(propertyKeyOrFunction)\n\n // tweak the component class componentWillUnmount if not done already\n if (!componentWasAlreadyModified) {\n patch(target, \"componentWillUnmount\", runDisposersOnWillUnmount)\n }\n\n // return the disposer as is if invoked as a non decorator\n if (typeof propertyKeyOrFunction !== \"string\") {\n return propertyKeyOrFunction\n }\n}\n","import { isObservableArray, isObservableObject, isObservableMap, untracked } from \"mobx\"\n\n// Copied from React.PropTypes\nfunction createChainableTypeChecker(validate) {\n function checkType(\n isRequired,\n props,\n propName,\n componentName,\n location,\n propFullName,\n ...rest\n ) {\n return untracked(() => {\n componentName = componentName || \"<<anonymous>>\"\n propFullName = propFullName || propName\n if (props[propName] == null) {\n if (isRequired) {\n const actual = props[propName] === null ? \"null\" : \"undefined\"\n return new Error(\n \"The \" +\n location +\n \" `\" +\n propFullName +\n \"` is marked as required \" +\n \"in `\" +\n componentName +\n \"`, but its value is `\" +\n actual +\n \"`.\"\n )\n }\n return null\n } else {\n return validate(props, propName, componentName, location, propFullName, ...rest)\n }\n })\n }\n\n const chainedCheckType = checkType.bind(null, false)\n chainedCheckType.isRequired = checkType.bind(null, true)\n return chainedCheckType\n}\n\n// Copied from React.PropTypes\nfunction isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === \"symbol\") {\n return true\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue[\"@@toStringTag\"] === \"Symbol\") {\n return true\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === \"function\" && propValue instanceof Symbol) {\n return true\n }\n\n return false\n}\n\n// Copied from React.PropTypes\nfunction getPropType(propValue) {\n const propType = typeof propValue\n if (Array.isArray(propValue)) {\n return \"array\"\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return \"object\"\n }\n if (isSymbol(propType, propValue)) {\n return \"symbol\"\n }\n return propType\n}\n\n// This handles more types than `getPropType`. Only used for error messages.\n// Copied from React.PropTypes\nfunction getPreciseType(propValue) {\n const propType = getPropType(propValue)\n if (propType === \"object\") {\n if (propValue instanceof Date) {\n return \"date\"\n } else if (propValue instanceof RegExp) {\n return \"regexp\"\n }\n }\n return propType\n}\n\nfunction createObservableTypeCheckerCreator(allowNativeType, mobxType) {\n return createChainableTypeChecker(function(\n props,\n propName,\n componentName,\n location,\n propFullName\n ) {\n return untracked(() => {\n if (allowNativeType) {\n if (getPropType(props[propName]) === mobxType.toLowerCase()) return null\n }\n let mobxChecker\n switch (mobxType) {\n case \"Array\":\n mobxChecker = isObservableArray\n break\n case \"Object\":\n mobxChecker = isObservableObject\n break\n case \"Map\":\n mobxChecker = isObservableMap\n break\n default:\n throw new Error(`Unexpected mobxType: ${mobxType}`)\n }\n const propValue = props[propName]\n if (!mobxChecker(propValue)) {\n const preciseType = getPreciseType(propValue)\n const nativeTypeExpectationMessage = allowNativeType\n ? \" or javascript `\" + mobxType.toLowerCase() + \"`\"\n : \"\"\n return new Error(\n \"Invalid prop `\" +\n propFullName +\n \"` of type `\" +\n preciseType +\n \"` supplied to\" +\n \" `\" +\n componentName +\n \"`, expected `mobx.Observable\" +\n mobxType +\n \"`\" +\n nativeTypeExpectationMessage +\n \".\"\n )\n }\n return null\n })\n })\n}\n\nfunction createObservableArrayOfTypeChecker(allowNativeType, typeChecker) {\n return createChainableTypeChecker(function(\n props,\n propName,\n componentName,\n location,\n propFullName,\n ...rest\n ) {\n return untracked(() => {\n if (typeof typeChecker !== \"function\") {\n return new Error(\n \"Property `\" +\n propFullName +\n \"` of component `\" +\n componentName +\n \"` has \" +\n \"invalid PropType notation.\"\n )\n }\n let error = createObservableTypeCheckerCreator(allowNativeType, \"Array\")(\n props,\n propName,\n componentName\n )\n if (error instanceof Error) return error\n const propValue = props[propName]\n for (let i = 0; i < propValue.length; i++) {\n error = typeChecker(\n propValue,\n i,\n componentName,\n location,\n propFullName + \"[\" + i + \"]\",\n ...rest\n )\n if (error instanceof Error) return error\n }\n return null\n })\n })\n}\n\nconst observableArray = createObservableTypeCheckerCreator(false, \"Array\")\nconst observableArrayOf = createObservableArrayOfTypeChecker.bind(null, false)\nconst observableMap = createObservableTypeCheckerCreator(false, \"Map\")\nconst observableObject = createObservableTypeCheckerCreator(false, \"Object\")\nconst arrayOrObservableArray = createObservableTypeCheckerCreator(true, \"Array\")\nconst arrayOrObservableArrayOf = createObservableArrayOfTypeChecker.bind(null, true)\nconst objectOrObservableObject = createObservableTypeCheckerCreator(true, \"Object\")\n\nexport const PropTypes = {\n observableArray,\n observableArrayOf,\n observableMap,\n observableObject,\n arrayOrObservableArray,\n arrayOrObservableArrayOf,\n objectOrObservableObject\n}\n","import { observable, configure } from \"mobx\"\nimport { Component } from \"react\"\nimport { unstable_batchedUpdates as rdBatched } from \"react-dom\"\n\nif (!Component) throw new Error(\"mobx-react requires React to be available\")\nif (!observable) throw new Error(\"mobx-react requires mobx to be available\")\n\nif (typeof rdBatched === \"function\") configure({ reactionScheduler: rdBatched })\n\nexport {\n Observer,\n useAsObservableSource,\n useLocalStore,\n isUsingStaticRendering,\n useStaticRendering\n} from \"mobx-react-lite\"\n\nexport { observer } from \"./observer\"\n\nexport { Provider, MobXProviderContext } from \"./Provider\"\nexport { inject } from \"./inject\"\nexport { disposeOnUnmount } from \"./disposeOnUnmount\"\nexport { PropTypes } from \"./propTypes\"\n"],"names":["symbolId","createdSymbols","newSymbol","name","Symbol","symbol","createSymbol","shallowEqual","objA","objB","is","keysA","Object","keys","keysB","length","let","i","hasOwnProperty","call","x","y","const","hoistBlackList","$$typeof","render","compare","type","childContextTypes","contextType","contextTypes","defaultProps","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","setHiddenProp","target","prop","value","defineProperty","enumerable","configurable","writable","mobxMixins","mobxPatchedDefinition","wrapper","realMethod","locks","retVal","apply","this","args","methods","forEach","mx","wrapFunction","patch","methodName","mixinMethod","methodMixins","getMixins","indexOf","push","oldDefinition","getOwnPropertyDescriptor","newDefinition","createDefinition","originalMethod","wrappedFunc","get","set","undefined","mobxAdminProperty","$mobx","mobxIsUnmounted","skipRenderKey","isForcingUpdateKey","observerSCU","nextProps","nextState","isUsingStaticRendering","console","warn","state","props","makeObservableProp","propName","valueHolderKey","atomHolderKey","getAtom","createAtom","reportObserved","v","reportChanged","ReactForwardRefSymbol","forwardRef","_props","_ref","observer","componentClass","isMobxInjector","baseRender","Error","React","Observer","arguments","prototype","isReactClass","Component","isPrototypeOf","componentWillReact","__proto__","PureComponent","shouldComponentUpdate","initialName","displayName","constructor","bind","isRenderingPending","reaction","Reaction","hasError","forceUpdate","dispose","reactiveRender","exception","rendering","track","_allowStateChanges","e","reactComponent","makeClassComponentObserver","observerLite","specialReactKeys","children","key","ref","MobXProviderContext","createContext","Provider","context","grabStores","createElement","Children","only","prevState","process","env","NODE_ENV","from","res","validStoreName","createStoreInjector","grabStoresFn","component","injectNames","makeReactive","componentName","getInjectName","Injector","assign","isStateless","base","protoProps","InjectHocRef","getOwnPropertyNames","getPrototypeOf","wrappedComponent","storeKey","runDisposersOnWillUnmount","propKeyOrFunction","Array","isArray","map","f","createChainableTypeChecker","validate","checkType","isRequired","location","propFullName","untracked","rest","chainedCheckType","getPropType","propValue","propType","RegExp","isSymbol","createObservableTypeCheckerCreator","allowNativeType","mobxType","toLowerCase","mobxChecker","isObservableArray","isObservableObject","isObservableMap","preciseType","Date","getPreciseType","nativeTypeExpectationMessage","createObservableArrayOfTypeChecker","typeChecker","error","PropTypes","observable","rdBatched","configure","reactionScheduler","storeNames","baseStores","storeName","grabStoresByName","join","disposeOnUnmount","propertyKeyOrFunction","fn","c","c2","componentWasAlreadyModified"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mobx-react.umd.js","sources":["../src/utils/utils.js","../src/observerClass.js","../src/observer.js","../src/Provider.js","../src/inject.js","../src/disposeOnUnmount.js","../src/propTypes.js","../src/index.js"],"sourcesContent":["let symbolId = 0\nfunction createSymbol(name) {\n if (typeof Symbol === \"function\") {\n return Symbol(name)\n }\n const symbol = `__$mobx-react ${name} (${symbolId})`\n symbolId++\n return symbol\n}\n\nconst createdSymbols = {}\nexport function newSymbol(name) {\n if (!createdSymbols[name]) {\n createdSymbols[name] = createSymbol(name)\n }\n return createdSymbols[name]\n}\n\nexport function shallowEqual(objA, objB) {\n //From: https://github.com/facebook/fbjs/blob/c69904a511b900266935168223063dd8772dfc40/packages/fbjs/src/core/shallowEqual.js\n if (is(objA, objB)) return true\n if (typeof objA !== \"object\" || objA === null || typeof objB !== \"object\" || objB === null) {\n return false\n }\n const keysA = Object.keys(objA)\n const keysB = Object.keys(objB)\n if (keysA.length !== keysB.length) return false\n for (let i = 0; i < keysA.length; i++) {\n if (!hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n return false\n }\n }\n return true\n}\n\nfunction is(x, y) {\n // From: https://github.com/facebook/fbjs/blob/c69904a511b900266935168223063dd8772dfc40/packages/fbjs/src/core/shallowEqual.js\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y\n } else {\n return x !== x && y !== y\n }\n}\n\n// based on https://github.com/mridgway/hoist-non-react-statics/blob/master/src/index.js\nconst hoistBlackList = {\n $$typeof: 1,\n render: 1,\n compare: 1,\n type: 1,\n childContextTypes: 1,\n contextType: 1,\n contextTypes: 1,\n defaultProps: 1,\n getDefaultProps: 1,\n getDerivedStateFromError: 1,\n getDerivedStateFromProps: 1,\n mixins: 1,\n propTypes: 1\n}\n\nexport function copyStaticProperties(base, target) {\n const protoProps = Object.getOwnPropertyNames(Object.getPrototypeOf(base))\n Object.getOwnPropertyNames(base).forEach(key => {\n if (!hoistBlackList[key] && protoProps.indexOf(key) === -1) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(base, key))\n }\n })\n}\n\n/**\n * Helper to set `prop` to `this` as non-enumerable (hidden prop)\n * @param target\n * @param prop\n * @param value\n */\nexport function setHiddenProp(target, prop, value) {\n if (!Object.hasOwnProperty.call(target, prop)) {\n Object.defineProperty(target, prop, {\n enumerable: false,\n configurable: true,\n writable: true,\n value\n })\n } else {\n target[prop] = value\n }\n}\n\n/**\n * Utilities for patching componentWillUnmount, to make sure @disposeOnUnmount works correctly icm with user defined hooks\n * and the handler provided by mobx-react\n */\nconst mobxMixins = newSymbol(\"patchMixins\")\nconst mobxPatchedDefinition = newSymbol(\"patchedDefinition\")\n\nfunction getMixins(target, methodName) {\n const mixins = (target[mobxMixins] = target[mobxMixins] || {})\n const methodMixins = (mixins[methodName] = mixins[methodName] || {})\n methodMixins.locks = methodMixins.locks || 0\n methodMixins.methods = methodMixins.methods || []\n return methodMixins\n}\n\nfunction wrapper(realMethod, mixins, ...args) {\n // locks are used to ensure that mixins are invoked only once per invocation, even on recursive calls\n mixins.locks++\n\n try {\n let retVal\n if (realMethod !== undefined && realMethod !== null) {\n retVal = realMethod.apply(this, args)\n }\n\n return retVal\n } finally {\n mixins.locks--\n if (mixins.locks === 0) {\n mixins.methods.forEach(mx => {\n mx.apply(this, args)\n })\n }\n }\n}\n\nfunction wrapFunction(realMethod, mixins) {\n const fn = function(...args) {\n wrapper.call(this, realMethod, mixins, ...args)\n }\n return fn\n}\n\nexport function patch(target, methodName, mixinMethod) {\n const mixins = getMixins(target, methodName)\n\n if (mixins.methods.indexOf(mixinMethod) < 0) {\n mixins.methods.push(mixinMethod)\n }\n\n const oldDefinition = Object.getOwnPropertyDescriptor(target, methodName)\n if (oldDefinition && oldDefinition[mobxPatchedDefinition]) {\n // already patched definition, do not repatch\n return\n }\n\n const originalMethod = target[methodName]\n const newDefinition = createDefinition(\n target,\n methodName,\n oldDefinition ? oldDefinition.enumerable : undefined,\n mixins,\n originalMethod\n )\n\n Object.defineProperty(target, methodName, newDefinition)\n}\n\nfunction createDefinition(target, methodName, enumerable, mixins, originalMethod) {\n let wrappedFunc = wrapFunction(originalMethod, mixins)\n\n return {\n [mobxPatchedDefinition]: true,\n get: function() {\n return wrappedFunc\n },\n set: function(value) {\n if (this === target) {\n wrappedFunc = wrapFunction(value, mixins)\n } else {\n // when it is an instance of the prototype/a child prototype patch that particular case again separately\n // since we need to store separate values depending on wether it is the actual instance, the prototype, etc\n // e.g. the method for super might not be the same as the method for the prototype which might be not the same\n // as the method for the instance\n const newDefinition = createDefinition(this, methodName, enumerable, mixins, value)\n Object.defineProperty(this, methodName, newDefinition)\n }\n },\n configurable: true,\n enumerable: enumerable\n }\n}\n","import { PureComponent, Component } from \"react\"\nimport { createAtom, _allowStateChanges, Reaction, $mobx } from \"mobx\"\nimport { isUsingStaticRendering } from \"mobx-react-lite\"\n\nimport { newSymbol, shallowEqual, setHiddenProp, patch } from \"./utils/utils\"\n\nconst mobxAdminProperty = $mobx || \"$mobx\"\nconst mobxIsUnmounted = newSymbol(\"isUnmounted\")\nconst skipRenderKey = newSymbol(\"skipRender\")\nconst isForcingUpdateKey = newSymbol(\"isForcingUpdate\")\n\nexport function makeClassComponentObserver(componentClass) {\n const target = componentClass.prototype\n if (target.componentWillReact)\n throw new Error(\"The componentWillReact life-cycle event is no longer supported\")\n if (componentClass.__proto__ !== PureComponent) {\n if (!target.shouldComponentUpdate) target.shouldComponentUpdate = observerSCU\n else if (target.shouldComponentUpdate !== observerSCU)\n // n.b. unequal check, instead of existence check, as @observer might be on superclass as well\n throw new Error(\n \"It is not allowed to use shouldComponentUpdate in observer based components.\"\n )\n }\n\n // this.props and this.state are made observable, just to make sure @computed fields that\n // are defined inside the component, and which rely on state or props, re-compute if state or props change\n // (otherwise the computed wouldn't update and become stale on props change, since props are not observable)\n // However, this solution is not without it's own problems: https://github.com/mobxjs/mobx-react/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3Aobservable-props-or-not+\n makeObservableProp(target, \"props\")\n makeObservableProp(target, \"state\")\n\n const baseRender = target.render\n target.render = function() {\n return makeComponentReactive.call(this, baseRender)\n }\n patch(target, \"componentWillUnmount\", function() {\n if (isUsingStaticRendering() === true) return\n this.render[mobxAdminProperty] && this.render[mobxAdminProperty].dispose()\n this[mobxIsUnmounted] = true\n })\n return componentClass\n}\n\nfunction makeComponentReactive(render) {\n if (isUsingStaticRendering() === true) return render.call(this)\n\n /**\n * If props are shallowly modified, react will render anyway,\n * so atom.reportChanged() should not result in yet another re-render\n */\n setHiddenProp(this, skipRenderKey, false)\n /**\n * forceUpdate will re-assign this.props. We don't want that to cause a loop,\n * so detect these changes\n */\n setHiddenProp(this, isForcingUpdateKey, false)\n\n // Generate friendly name for debugging\n const initialName =\n this.displayName ||\n this.name ||\n (this.constructor && (this.constructor.displayName || this.constructor.name)) ||\n \"<component>\"\n const baseRender = render.bind(this)\n\n let isRenderingPending = false\n\n const reaction = new Reaction(`${initialName}.render()`, () => {\n if (!isRenderingPending) {\n // N.B. Getting here *before mounting* means that a component constructor has side effects (see the relevant test in misc.js)\n // This unidiomatic React usage but React will correctly warn about this so we continue as usual\n // See #85 / Pull #44\n isRenderingPending = true\n if (this[mobxIsUnmounted] !== true) {\n let hasError = true\n try {\n setHiddenProp(this, isForcingUpdateKey, true)\n if (!this[skipRenderKey]) Component.prototype.forceUpdate.call(this)\n hasError = false\n } finally {\n setHiddenProp(this, isForcingUpdateKey, false)\n if (hasError) reaction.dispose()\n }\n }\n }\n })\n reaction.reactComponent = this\n reactiveRender[mobxAdminProperty] = reaction\n this.render = reactiveRender\n\n function reactiveRender() {\n isRenderingPending = false\n let exception = undefined\n let rendering = undefined\n reaction.track(() => {\n try {\n rendering = _allowStateChanges(false, baseRender)\n } catch (e) {\n exception = e\n }\n })\n if (exception) {\n throw exception\n }\n return rendering\n }\n\n return reactiveRender.call(this)\n}\n\nfunction observerSCU(nextProps, nextState) {\n if (isUsingStaticRendering()) {\n console.warn(\n \"[mobx-react] It seems that a re-rendering of a React component is triggered while in static (server-side) mode. Please make sure components are rendered only once server-side.\"\n )\n }\n // update on any state changes (as is the default)\n if (this.state !== nextState) {\n return true\n }\n // update if props are shallowly not equal, inspired by PureRenderMixin\n // we could return just 'false' here, and avoid the `skipRender` checks etc\n // however, it is nicer if lifecycle events are triggered like usually,\n // so we return true here if props are shallowly modified.\n return !shallowEqual(this.props, nextProps)\n}\n\nfunction makeObservableProp(target, propName) {\n const valueHolderKey = newSymbol(`reactProp_${propName}_valueHolder`)\n const atomHolderKey = newSymbol(`reactProp_${propName}_atomHolder`)\n function getAtom() {\n if (!this[atomHolderKey]) {\n setHiddenProp(this, atomHolderKey, createAtom(\"reactive \" + propName))\n }\n return this[atomHolderKey]\n }\n Object.defineProperty(target, propName, {\n configurable: true,\n enumerable: true,\n get: function() {\n getAtom.call(this).reportObserved()\n return this[valueHolderKey]\n },\n set: function set(v) {\n if (!this[isForcingUpdateKey] && !shallowEqual(this[valueHolderKey], v)) {\n setHiddenProp(this, valueHolderKey, v)\n setHiddenProp(this, skipRenderKey, true)\n getAtom.call(this).reportChanged()\n setHiddenProp(this, skipRenderKey, false)\n } else {\n setHiddenProp(this, valueHolderKey, v)\n }\n }\n })\n}\n","/* eslint-disable react/display-name */\nimport React, { Component, forwardRef, memo } from \"react\"\nimport { observer as observerLite, Observer } from \"mobx-react-lite\"\n\nimport { makeClassComponentObserver } from \"./observerClass\"\n\nconst hasSymbol = typeof Symbol === \"function\" && Symbol.for\n\n// Using react-is had some issues (and operates on elements, not on types), see #608 / #609\nconst ReactForwardRefSymbol = hasSymbol\n ? Symbol.for(\"react.forward_ref\")\n : typeof forwardRef === \"function\" && forwardRef(() => {})[\"$$typeof\"]\n\nconst ReactMemoSymbol = hasSymbol\n ? Symbol.for(\"react.memo\")\n : typeof memo === \"function\" && memo(() => {})[\"$$typeof\"]\n\n/**\n * Observer function / decorator\n */\nexport function observer(componentClass) {\n if (componentClass.isMobxInjector === true) {\n console.warn(\n \"Mobx observer: You are trying to use 'observer' on a component that already has 'inject'. Please apply 'observer' before applying 'inject'\"\n )\n }\n\n if (ReactMemoSymbol && componentClass[\"$$typeof\"] === ReactMemoSymbol) {\n throw new Error(\n \"Mobx observer: You are trying to use 'observer' on function component wrapped to either another observer or 'React.memo'. The observer already applies 'React.memo' for you.\"\n )\n }\n\n // Unwrap forward refs into `<Observer>` component\n // we need to unwrap the render, because it is the inner render that needs to be tracked,\n // not the ForwardRef HoC\n if (ReactForwardRefSymbol && componentClass[\"$$typeof\"] === ReactForwardRefSymbol) {\n const baseRender = componentClass.render\n if (typeof baseRender !== \"function\")\n throw new Error(\"render property of ForwardRef was not a function\")\n return forwardRef(function ObserverForwardRef() {\n return <Observer>{() => baseRender.apply(undefined, arguments)}</Observer>\n })\n }\n\n // Function component\n if (\n typeof componentClass === \"function\" &&\n (!componentClass.prototype || !componentClass.prototype.render) &&\n !componentClass.isReactClass &&\n !Object.prototype.isPrototypeOf.call(Component, componentClass)\n ) {\n return observerLite(componentClass)\n }\n\n return makeClassComponentObserver(componentClass)\n}\n","/* eslint-disable react/prop-types */\nimport React from \"react\"\nimport { shallowEqual } from \"./utils/utils\"\n\nexport const MobXProviderContext = React.createContext({})\n\nexport function Provider({ children, ...stores }) {\n const parentValue = React.useContext(MobXProviderContext)\n const value = React.useRef({\n ...parentValue,\n ...stores\n }).current\n\n if (process.env.NODE_ENV !== \"production\") {\n const newValue = { ...value, ...stores } // spread in previous state for the context based stores\n if (!shallowEqual(value, newValue)) {\n throw new Error(\n \"MobX Provider: The set of provided stores has changed. See: https://github.com/mobxjs/mobx-react#the-set-of-provided-stores-has-changed-error.\"\n )\n }\n }\n\n return <MobXProviderContext.Provider value={value}>{children}</MobXProviderContext.Provider>\n}\n\nProvider.displayName = \"MobXProvider\"\n","import React, { createElement } from \"react\"\nimport { observer } from \"./observer\"\nimport { copyStaticProperties } from \"./utils/utils\"\nimport { MobXProviderContext } from \"./Provider\"\n\n/**\n * Store Injection\n */\nfunction createStoreInjector(grabStoresFn, component, injectNames, makeReactive) {\n // Support forward refs\n let Injector = React.forwardRef((props, ref) => {\n const newProps = { ...props }\n const context = React.useContext(MobXProviderContext)\n Object.assign(newProps, grabStoresFn(context || {}, newProps) || {})\n\n if (ref) {\n newProps.ref = ref\n }\n\n return createElement(component, newProps)\n })\n\n if (makeReactive) Injector = observer(Injector)\n Injector.isMobxInjector = true // assigned late to suppress observer warning\n\n // Static fields from component should be visible on the generated Injector\n copyStaticProperties(component, Injector)\n Injector.wrappedComponent = component\n Injector.displayName = getInjectName(component, injectNames)\n return Injector\n}\n\nfunction getInjectName(component, injectNames) {\n let displayName\n const componentName =\n component.displayName ||\n component.name ||\n (component.constructor && component.constructor.name) ||\n \"Component\"\n if (injectNames) displayName = \"inject-with-\" + injectNames + \"(\" + componentName + \")\"\n else displayName = \"inject(\" + componentName + \")\"\n return displayName\n}\n\nfunction grabStoresByName(storeNames) {\n return function(baseStores, nextProps) {\n storeNames.forEach(function(storeName) {\n if (\n storeName in nextProps // prefer props over stores\n )\n return\n if (!(storeName in baseStores))\n throw new Error(\n \"MobX injector: Store '\" +\n storeName +\n \"' is not available! Make sure it is provided by some Provider\"\n )\n nextProps[storeName] = baseStores[storeName]\n })\n return nextProps\n }\n}\n\n/**\n * higher order component that injects stores to a child.\n * takes either a varargs list of strings, which are stores read from the context,\n * or a function that manually maps the available stores from the context to props:\n * storesToProps(mobxStores, props, context) => newProps\n */\nexport function inject(/* fn(stores, nextProps) or ...storeNames */ ...storeNames) {\n let grabStoresFn\n if (typeof arguments[0] === \"function\") {\n grabStoresFn = arguments[0]\n return componentClass =>\n createStoreInjector(grabStoresFn, componentClass, grabStoresFn.name, true)\n } else {\n return componentClass =>\n createStoreInjector(\n grabStoresByName(storeNames),\n componentClass,\n storeNames.join(\"-\"),\n false\n )\n }\n}\n","import * as React from \"react\"\nimport { patch, newSymbol } from \"./utils/utils\"\n\nconst protoStoreKey = newSymbol(\"disposeOnUnmountProto\")\nconst instStoreKey = newSymbol(\"disposeOnUnmountInst\")\n\nfunction runDisposersOnWillUnmount() {\n ;[...(this[protoStoreKey] || []), ...(this[instStoreKey] || [])].forEach(propKeyOrFunction => {\n const prop =\n typeof propKeyOrFunction === \"string\" ? this[propKeyOrFunction] : propKeyOrFunction\n if (prop !== undefined && prop !== null) {\n if (Array.isArray(prop)) prop.map(f => f())\n else prop()\n }\n })\n}\n\nexport function disposeOnUnmount(target, propertyKeyOrFunction) {\n if (Array.isArray(propertyKeyOrFunction)) {\n return propertyKeyOrFunction.map(fn => disposeOnUnmount(target, fn))\n }\n\n const c = Object.getPrototypeOf(target).constructor || Object.getPrototypeOf(target.constructor)\n const c2 = Object.getPrototypeOf(target.constructor)\n if (\n !(\n c === React.Component ||\n c === React.PureComponent ||\n c2 === React.Component ||\n c2 === React.PureComponent\n )\n ) {\n throw new Error(\n \"[mobx-react] disposeOnUnmount only supports direct subclasses of React.Component or React.PureComponent.\"\n )\n }\n\n if (\n typeof propertyKeyOrFunction !== \"string\" &&\n typeof propertyKeyOrFunction !== \"function\" &&\n !Array.isArray(propertyKeyOrFunction)\n ) {\n throw new Error(\n \"[mobx-react] disposeOnUnmount only works if the parameter is either a property key or a function.\"\n )\n }\n\n // decorator's target is the prototype, so it doesn't have any instance properties like props\n const isDecorator = typeof propertyKeyOrFunction === \"string\"\n\n // add property key / function we want run (disposed) to the store\n const componentWasAlreadyModified = !!target[protoStoreKey] || !!target[instStoreKey]\n const store = isDecorator\n ? // decorators are added to the prototype store\n target[protoStoreKey] || (target[protoStoreKey] = [])\n : // functions are added to the instance store\n target[instStoreKey] || (target[instStoreKey] = [])\n\n store.push(propertyKeyOrFunction)\n\n // tweak the component class componentWillUnmount if not done already\n if (!componentWasAlreadyModified) {\n patch(target, \"componentWillUnmount\", runDisposersOnWillUnmount)\n }\n\n // return the disposer as is if invoked as a non decorator\n if (typeof propertyKeyOrFunction !== \"string\") {\n return propertyKeyOrFunction\n }\n}\n","import { isObservableArray, isObservableObject, isObservableMap, untracked } from \"mobx\"\n\n// Copied from React.PropTypes\nfunction createChainableTypeChecker(validate) {\n function checkType(\n isRequired,\n props,\n propName,\n componentName,\n location,\n propFullName,\n ...rest\n ) {\n return untracked(() => {\n componentName = componentName || \"<<anonymous>>\"\n propFullName = propFullName || propName\n if (props[propName] == null) {\n if (isRequired) {\n const actual = props[propName] === null ? \"null\" : \"undefined\"\n return new Error(\n \"The \" +\n location +\n \" `\" +\n propFullName +\n \"` is marked as required \" +\n \"in `\" +\n componentName +\n \"`, but its value is `\" +\n actual +\n \"`.\"\n )\n }\n return null\n } else {\n return validate(props, propName, componentName, location, propFullName, ...rest)\n }\n })\n }\n\n const chainedCheckType = checkType.bind(null, false)\n chainedCheckType.isRequired = checkType.bind(null, true)\n return chainedCheckType\n}\n\n// Copied from React.PropTypes\nfunction isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === \"symbol\") {\n return true\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue[\"@@toStringTag\"] === \"Symbol\") {\n return true\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === \"function\" && propValue instanceof Symbol) {\n return true\n }\n\n return false\n}\n\n// Copied from React.PropTypes\nfunction getPropType(propValue) {\n const propType = typeof propValue\n if (Array.isArray(propValue)) {\n return \"array\"\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return \"object\"\n }\n if (isSymbol(propType, propValue)) {\n return \"symbol\"\n }\n return propType\n}\n\n// This handles more types than `getPropType`. Only used for error messages.\n// Copied from React.PropTypes\nfunction getPreciseType(propValue) {\n const propType = getPropType(propValue)\n if (propType === \"object\") {\n if (propValue instanceof Date) {\n return \"date\"\n } else if (propValue instanceof RegExp) {\n return \"regexp\"\n }\n }\n return propType\n}\n\nfunction createObservableTypeCheckerCreator(allowNativeType, mobxType) {\n return createChainableTypeChecker(function(\n props,\n propName,\n componentName,\n location,\n propFullName\n ) {\n return untracked(() => {\n if (allowNativeType) {\n if (getPropType(props[propName]) === mobxType.toLowerCase()) return null\n }\n let mobxChecker\n switch (mobxType) {\n case \"Array\":\n mobxChecker = isObservableArray\n break\n case \"Object\":\n mobxChecker = isObservableObject\n break\n case \"Map\":\n mobxChecker = isObservableMap\n break\n default:\n throw new Error(`Unexpected mobxType: ${mobxType}`)\n }\n const propValue = props[propName]\n if (!mobxChecker(propValue)) {\n const preciseType = getPreciseType(propValue)\n const nativeTypeExpectationMessage = allowNativeType\n ? \" or javascript `\" + mobxType.toLowerCase() + \"`\"\n : \"\"\n return new Error(\n \"Invalid prop `\" +\n propFullName +\n \"` of type `\" +\n preciseType +\n \"` supplied to\" +\n \" `\" +\n componentName +\n \"`, expected `mobx.Observable\" +\n mobxType +\n \"`\" +\n nativeTypeExpectationMessage +\n \".\"\n )\n }\n return null\n })\n })\n}\n\nfunction createObservableArrayOfTypeChecker(allowNativeType, typeChecker) {\n return createChainableTypeChecker(function(\n props,\n propName,\n componentName,\n location,\n propFullName,\n ...rest\n ) {\n return untracked(() => {\n if (typeof typeChecker !== \"function\") {\n return new Error(\n \"Property `\" +\n propFullName +\n \"` of component `\" +\n componentName +\n \"` has \" +\n \"invalid PropType notation.\"\n )\n }\n let error = createObservableTypeCheckerCreator(allowNativeType, \"Array\")(\n props,\n propName,\n componentName\n )\n if (error instanceof Error) return error\n const propValue = props[propName]\n for (let i = 0; i < propValue.length; i++) {\n error = typeChecker(\n propValue,\n i,\n componentName,\n location,\n propFullName + \"[\" + i + \"]\",\n ...rest\n )\n if (error instanceof Error) return error\n }\n return null\n })\n })\n}\n\nconst observableArray = createObservableTypeCheckerCreator(false, \"Array\")\nconst observableArrayOf = createObservableArrayOfTypeChecker.bind(null, false)\nconst observableMap = createObservableTypeCheckerCreator(false, \"Map\")\nconst observableObject = createObservableTypeCheckerCreator(false, \"Object\")\nconst arrayOrObservableArray = createObservableTypeCheckerCreator(true, \"Array\")\nconst arrayOrObservableArrayOf = createObservableArrayOfTypeChecker.bind(null, true)\nconst objectOrObservableObject = createObservableTypeCheckerCreator(true, \"Object\")\n\nexport const PropTypes = {\n observableArray,\n observableArrayOf,\n observableMap,\n observableObject,\n arrayOrObservableArray,\n arrayOrObservableArrayOf,\n objectOrObservableObject\n}\n","import { observable, configure } from \"mobx\"\nimport { Component } from \"react\"\nimport { unstable_batchedUpdates as rdBatched } from \"react-dom\"\n\nif (!Component) throw new Error(\"mobx-react requires React to be available\")\nif (!observable) throw new Error(\"mobx-react requires mobx to be available\")\n\nif (typeof rdBatched === \"function\") configure({ reactionScheduler: rdBatched })\n\nexport {\n Observer,\n useObserver,\n useAsObservableSource,\n useLocalStore,\n isUsingStaticRendering,\n useStaticRendering\n} from \"mobx-react-lite\"\n\nexport { observer } from \"./observer\"\n\nexport { Provider, MobXProviderContext } from \"./Provider\"\nexport { inject } from \"./inject\"\nexport { disposeOnUnmount } from \"./disposeOnUnmount\"\nexport { PropTypes } from \"./propTypes\"\n"],"names":["symbolId","createdSymbols","newSymbol","name","Symbol","symbol","createSymbol","shallowEqual","objA","objB","is","keysA","Object","keys","keysB","length","let","i","hasOwnProperty","call","x","y","const","hoistBlackList","$$typeof","render","compare","type","childContextTypes","contextType","contextTypes","defaultProps","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","setHiddenProp","target","prop","value","defineProperty","enumerable","configurable","writable","mobxMixins","mobxPatchedDefinition","wrapper","realMethod","locks","retVal","apply","this","args","methods","forEach","mx","wrapFunction","patch","methodName","mixinMethod","methodMixins","getMixins","indexOf","push","oldDefinition","getOwnPropertyDescriptor","newDefinition","createDefinition","originalMethod","wrappedFunc","get","set","undefined","mobxAdminProperty","$mobx","mobxIsUnmounted","skipRenderKey","isForcingUpdateKey","observerSCU","nextProps","nextState","isUsingStaticRendering","console","warn","state","props","makeObservableProp","propName","valueHolderKey","atomHolderKey","getAtom","createAtom","reportObserved","v","reportChanged","hasSymbol","for","ReactForwardRefSymbol","forwardRef","ReactMemoSymbol","memo","observer","componentClass","isMobxInjector","Error","baseRender","React","Observer","arguments","prototype","isReactClass","isPrototypeOf","Component","componentWillReact","__proto__","PureComponent","shouldComponentUpdate","initialName","displayName","constructor","bind","isRenderingPending","reaction","Reaction","hasError","forceUpdate","dispose","reactiveRender","exception","rendering","track","_allowStateChanges","e","reactComponent","makeClassComponentObserver","observerLite","MobXProviderContext","createContext","Provider","ref","parentValue","useContext","useRef","stores","current","process","env","NODE_ENV","children","createStoreInjector","grabStoresFn","component","injectNames","makeReactive","base","protoProps","Injector","newProps","context","assign","createElement","getOwnPropertyNames","getPrototypeOf","key","wrappedComponent","componentName","getInjectName","protoStoreKey","instStoreKey","runDisposersOnWillUnmount","propKeyOrFunction","Array","isArray","map","f","createChainableTypeChecker","validate","checkType","isRequired","location","propFullName","untracked","rest","chainedCheckType","getPropType","propValue","propType","RegExp","isSymbol","createObservableTypeCheckerCreator","allowNativeType","mobxType","toLowerCase","mobxChecker","isObservableArray","isObservableObject","isObservableMap","preciseType","Date","getPreciseType","nativeTypeExpectationMessage","createObservableArrayOfTypeChecker","typeChecker","error","PropTypes","observable","rdBatched","configure","reactionScheduler","storeNames","baseStores","storeName","grabStoresByName","join","disposeOnUnmount","propertyKeyOrFunction","fn","c","c2","componentWasAlreadyModified"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mobx-react",
|
|
3
|
-
"version": "6.1.
|
|
3
|
+
"version": "6.1.4",
|
|
4
4
|
"description": "React bindings for MobX. Create fully reactive components.",
|
|
5
5
|
"source": "src/index.js",
|
|
6
6
|
"main": "dist/mobx-react.js",
|
|
@@ -16,11 +16,14 @@
|
|
|
16
16
|
},
|
|
17
17
|
"scripts": {
|
|
18
18
|
"prettier": "prettier --write \"**/*.js\" \"**/*.ts\"",
|
|
19
|
+
"lint": "eslint .",
|
|
19
20
|
"test": "jest && yarn test:ts",
|
|
20
21
|
"test:ts": "tsc -p test/ts",
|
|
21
|
-
"test:ci": "jest -i --coverage && yarn test:ts",
|
|
22
|
+
"test:ci": "jest -i --coverage && yarn test:ts && yarn lint",
|
|
22
23
|
"size": "size-limit",
|
|
23
|
-
"build": "yarn bundle &&
|
|
24
|
+
"build": "yarn bundle && yarn copytypes && yarn makern",
|
|
25
|
+
"copytypes": "shx cp src/index.d.ts dist/mobx-react.d.ts",
|
|
26
|
+
"makern": "shx cp dist/mobx-react.module.js dist/mobx-react.rn.module.js && yarn replace \"react-dom\" \"react-native\" dist/mobx-react.rn.module.js --silent",
|
|
24
27
|
"bundle": "microbundle --jsx React.createElement --external mobx,react,react-dom,mobx-react-lite --globals react-dom=ReactDOM,react=React,mobx-react-lite=mobxReactLite --name mobxReact",
|
|
25
28
|
"watch": "jest --watch"
|
|
26
29
|
},
|
|
@@ -30,9 +33,12 @@
|
|
|
30
33
|
"url": "https://github.com/mobxjs/mobx/issues"
|
|
31
34
|
},
|
|
32
35
|
"homepage": "https://mobxjs.github.io/mobx",
|
|
36
|
+
"resolutions": {
|
|
37
|
+
"@types/yargs": "12.0.1"
|
|
38
|
+
},
|
|
33
39
|
"peerDependencies": {
|
|
34
40
|
"mobx": "^4.0.0 || ^5.0.0",
|
|
35
|
-
"react": "^16.8.0"
|
|
41
|
+
"react": "^16.8.0 || 16.9.0-alpha.0"
|
|
36
42
|
},
|
|
37
43
|
"devDependencies": {
|
|
38
44
|
"@babel/core": "^7.1.0",
|
|
@@ -40,26 +46,33 @@
|
|
|
40
46
|
"@babel/plugin-proposal-decorators": "^7.1.0",
|
|
41
47
|
"@babel/plugin-transform-react-jsx": "^7.0.0",
|
|
42
48
|
"@babel/preset-env": "^7.1.0",
|
|
49
|
+
"@testing-library/jest-dom": "^4.0.0",
|
|
50
|
+
"@testing-library/react": "^9.0.2",
|
|
43
51
|
"@types/create-react-class": "^15.6.0",
|
|
44
52
|
"@types/node": "^10.0.0",
|
|
45
53
|
"@types/prop-types": "^15.5.2",
|
|
46
54
|
"@types/react": "^16.0.13",
|
|
47
55
|
"@types/react-dom": "^16.0.1",
|
|
56
|
+
"babel-eslint": "^10.0.2",
|
|
48
57
|
"babel-jest": "^24.1.0",
|
|
49
58
|
"coveralls": "^3.0.3",
|
|
50
|
-
"
|
|
59
|
+
"eslint": "^6.1.0",
|
|
60
|
+
"eslint-config-prettier": "^6.0.0",
|
|
61
|
+
"eslint-plugin-prettier": "^3.1.0",
|
|
62
|
+
"eslint-plugin-react": "^7.14.3",
|
|
51
63
|
"husky": "^1.0.0",
|
|
52
64
|
"jest": "^24.0.0",
|
|
53
65
|
"jest-environment-jsdom": "^24.0.0",
|
|
66
|
+
"jest-mock-console": "^1.0.0",
|
|
54
67
|
"lint-staged": "^7.0.5",
|
|
55
68
|
"lodash": "^4.17.4",
|
|
56
69
|
"microbundle": "^0.11.0",
|
|
57
70
|
"mobx": "^5.0.0",
|
|
58
71
|
"prettier": "^1.7.2",
|
|
59
72
|
"prop-types": "^15.6.0",
|
|
60
|
-
"react": "^16.
|
|
61
|
-
"react-dom": "^16.
|
|
62
|
-
"
|
|
73
|
+
"react": "^16.9.0",
|
|
74
|
+
"react-dom": "^16.9.0",
|
|
75
|
+
"replace": "^1.1.0",
|
|
63
76
|
"request": "^2.83.0",
|
|
64
77
|
"shelljs": "^0.8.3",
|
|
65
78
|
"shx": "^0.3.2",
|
|
@@ -67,7 +80,7 @@
|
|
|
67
80
|
"typescript": "^2.6.0"
|
|
68
81
|
},
|
|
69
82
|
"dependencies": {
|
|
70
|
-
"mobx-react-lite": "1.4.
|
|
83
|
+
"mobx-react-lite": "^1.4.2"
|
|
71
84
|
},
|
|
72
85
|
"files": [
|
|
73
86
|
"dist"
|
|
@@ -83,10 +96,15 @@
|
|
|
83
96
|
"lint-staged": {
|
|
84
97
|
"*.{ts,js}": [
|
|
85
98
|
"prettier --write",
|
|
99
|
+
"eslint --fix",
|
|
86
100
|
"git add"
|
|
87
101
|
]
|
|
88
102
|
},
|
|
89
103
|
"jest": {
|
|
104
|
+
"setupFilesAfterEnv": [
|
|
105
|
+
"@testing-library/jest-dom/extend-expect",
|
|
106
|
+
"<rootDir>/jest.setup.js"
|
|
107
|
+
],
|
|
90
108
|
"testURL": "http://127.0.0.1/"
|
|
91
109
|
},
|
|
92
110
|
"husky": {
|