@tanem/react-nprogress 4.0.0-beta.2 → 4.0.2

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.
@@ -1,8 +1,7 @@
1
1
  import _objectWithoutPropertiesLoose from '@babel/runtime/helpers/objectWithoutPropertiesLoose';
2
2
  import _extends from '@babel/runtime/helpers/extends';
3
3
  import * as React from 'react';
4
- import { useCallback, useRef, useEffect } from 'react';
5
- import { useGetSetState, useEffectOnce, useUpdateEffect } from 'react-use';
4
+ import { useEffect, useCallback, useRef, useState } from 'react';
6
5
  import hoistNonReactStatics from 'hoist-non-react-statics';
7
6
 
8
7
  var clamp = function clamp(num, lower, upper) {
@@ -11,22 +10,6 @@ var clamp = function clamp(num, lower, upper) {
11
10
  return num;
12
11
  };
13
12
 
14
- var increment = function increment(progress) {
15
- var amount = 0;
16
-
17
- if (progress >= 0 && progress < 0.2) {
18
- amount = 0.1;
19
- } else if (progress >= 0.2 && progress < 0.5) {
20
- amount = 0.04;
21
- } else if (progress >= 0.5 && progress < 0.8) {
22
- amount = 0.02;
23
- } else if (progress >= 0.8 && progress < 0.99) {
24
- amount = 0.005;
25
- }
26
-
27
- return clamp(progress + amount, 0, 0.994);
28
- };
29
-
30
13
  var createQueue = function createQueue() {
31
14
  var isRunning = false;
32
15
  var pending = [];
@@ -47,7 +30,7 @@ var createQueue = function createQueue() {
47
30
  pending = [];
48
31
  };
49
32
 
50
- var queue = function queue(cb) {
33
+ var enqueue = function enqueue(cb) {
51
34
  pending.push(cb);
52
35
 
53
36
  if (!isRunning && pending.length === 1) {
@@ -57,7 +40,7 @@ var createQueue = function createQueue() {
57
40
 
58
41
  return {
59
42
  clear: clear,
60
- queue: queue
43
+ enqueue: enqueue
61
44
  };
62
45
  };
63
46
 
@@ -65,14 +48,12 @@ var createTimeout = function createTimeout() {
65
48
  var handle;
66
49
 
67
50
  var cancel = function cancel() {
68
- console.log('cancel');
69
-
70
51
  if (handle) {
71
52
  window.cancelAnimationFrame(handle);
72
53
  }
73
54
  };
74
55
 
75
- var timeout = function timeout(callback, delay) {
56
+ var schedule = function schedule(callback, delay) {
76
57
  var deltaTime;
77
58
  var start;
78
59
 
@@ -93,25 +74,102 @@ var createTimeout = function createTimeout() {
93
74
 
94
75
  return {
95
76
  cancel: cancel,
96
- timeout: timeout
77
+ schedule: schedule
97
78
  };
98
79
  };
99
80
 
81
+ var increment = function increment(progress) {
82
+ var amount = 0;
83
+
84
+ if (progress >= 0 && progress < 0.2) {
85
+ amount = 0.1;
86
+ } else if (progress >= 0.2 && progress < 0.5) {
87
+ amount = 0.04;
88
+ } else if (progress >= 0.5 && progress < 0.8) {
89
+ amount = 0.02;
90
+ } else if (progress >= 0.8 && progress < 0.99) {
91
+ amount = 0.005;
92
+ }
93
+
94
+ return clamp(progress + amount, 0, 0.994);
95
+ };
96
+
97
+ // Hat-tip:
98
+ var useEffectOnce = function useEffectOnce(effect) {
99
+ // eslint-disable-next-line react-hooks/exhaustive-deps
100
+ useEffect(effect, []);
101
+ };
102
+
103
+ var incrementParameter = function incrementParameter(num) {
104
+ return ++num % 1000000;
105
+ };
106
+
107
+ var useUpdate = function useUpdate() {
108
+ var _useState = useState(0),
109
+ setState = _useState[1];
110
+
111
+ return useCallback(function () {
112
+ return setState(incrementParameter);
113
+ }, []);
114
+ };
115
+
116
+ var useGetSetState = function useGetSetState(
117
+ /* istanbul ignore next */
118
+ initialState) {
119
+ if (initialState === void 0) {
120
+ initialState = {};
121
+ }
122
+
123
+ var update = useUpdate();
124
+ var state = useRef(_extends({}, initialState));
125
+ var get = useCallback(function () {
126
+ return state.current;
127
+ }, []);
128
+ var set = useCallback(function (patch) {
129
+ if (!patch) {
130
+ return;
131
+ }
132
+
133
+ Object.assign(state.current, patch);
134
+ update(); // eslint-disable-next-line react-hooks/exhaustive-deps
135
+ }, []);
136
+ return [get, set];
137
+ };
138
+
139
+ // Hat-tip:
140
+
141
+ var useFirstMountState = function useFirstMountState() {
142
+ var isFirst = useRef(true);
143
+
144
+ if (isFirst.current) {
145
+ isFirst.current = false;
146
+ return true;
147
+ }
148
+
149
+ return isFirst.current;
150
+ };
151
+
152
+ var useUpdateEffect = function useUpdateEffect(effect, deps) {
153
+ var isFirstMount = useFirstMountState();
154
+ useEffect(function () {
155
+ if (!isFirstMount) {
156
+ return effect();
157
+ } // eslint-disable-next-line react-hooks/exhaustive-deps
158
+
159
+ }, deps);
160
+ };
161
+
100
162
  /* istanbul ignore next */
101
163
 
102
164
  var noop = function noop() {
103
165
  return undefined;
104
- }; // const initialState: State = {
105
- // isFinished: true,
106
- // progress: 0,
107
- // sideEffect: noop,
108
- // }
109
- // const cleanup = () => {
110
- // cancelCurrentTimeout()
111
- // clearQueue()
112
- // }
113
-
166
+ };
114
167
 
168
+ var initialState = {
169
+ isFinished: true,
170
+ progress: 0,
171
+ sideEffect: noop
172
+ };
115
173
  var useNProgress = function useNProgress(_temp) {
116
174
  var _ref = _temp === void 0 ? {} : _temp,
117
175
  _ref$animationDuratio = _ref.animationDuration,
@@ -123,43 +181,42 @@ var useNProgress = function useNProgress(_temp) {
123
181
  _ref$minimum = _ref.minimum,
124
182
  minimum = _ref$minimum === void 0 ? 0.08 : _ref$minimum;
125
183
 
126
- var initialState = {
127
- isFinished: true,
128
- progress: 0,
129
- sideEffect: noop
130
- };
131
-
132
184
  var _useGetSetState = useGetSetState(initialState),
133
185
  get = _useGetSetState[0],
134
186
  setState = _useGetSetState[1];
135
187
 
136
- var _createQueue = createQueue(),
137
- clearQueue = _createQueue.clear,
138
- queue = _createQueue.queue;
139
-
140
- var _createTimeout = createTimeout(),
141
- cancelCurrentTimeout = _createTimeout.cancel,
142
- timeout = _createTimeout.timeout;
143
-
144
- var cleanup = function cleanup() {
145
- cancelCurrentTimeout();
146
- clearQueue();
147
- };
188
+ var queue = useRef(null);
189
+ var timeout = useRef(null);
190
+ useEffectOnce(function () {
191
+ queue.current = createQueue();
192
+ timeout.current = createTimeout();
193
+ });
194
+ var cleanup = useCallback(function () {
195
+ var _timeout$current, _queue$current;
148
196
 
197
+ (_timeout$current = timeout.current) == null ? void 0 : _timeout$current.cancel();
198
+ (_queue$current = queue.current) == null ? void 0 : _queue$current.clear();
199
+ }, []);
149
200
  var set = useCallback(function (n) {
201
+ var _queue$current4;
202
+
150
203
  n = clamp(n, minimum, 1);
151
204
 
152
205
  if (n === 1) {
206
+ var _queue$current2, _queue$current3;
207
+
153
208
  cleanup();
154
- queue(function (next) {
209
+ (_queue$current2 = queue.current) == null ? void 0 : _queue$current2.enqueue(function (next) {
155
210
  setState({
156
211
  progress: n,
157
212
  sideEffect: function sideEffect() {
158
- return timeout(next, animationDuration);
213
+ var _timeout$current2;
214
+
215
+ return (_timeout$current2 = timeout.current) == null ? void 0 : _timeout$current2.schedule(next, animationDuration);
159
216
  }
160
217
  });
161
218
  });
162
- queue(function () {
219
+ (_queue$current3 = queue.current) == null ? void 0 : _queue$current3.enqueue(function () {
163
220
  setState({
164
221
  isFinished: true,
165
222
  sideEffect: cleanup
@@ -168,24 +225,30 @@ var useNProgress = function useNProgress(_temp) {
168
225
  return;
169
226
  }
170
227
 
171
- queue(function (next) {
228
+ (_queue$current4 = queue.current) == null ? void 0 : _queue$current4.enqueue(function (next) {
172
229
  setState({
173
230
  isFinished: false,
174
231
  progress: n,
175
232
  sideEffect: function sideEffect() {
176
- return timeout(next, animationDuration);
233
+ var _timeout$current3;
234
+
235
+ return (_timeout$current3 = timeout.current) == null ? void 0 : _timeout$current3.schedule(next, animationDuration);
177
236
  }
178
237
  });
179
238
  });
180
- }, [animationDuration, minimum, setState]);
239
+ }, [animationDuration, cleanup, minimum, queue, setState, timeout]);
181
240
  var trickle = useCallback(function () {
182
241
  set(increment(get().progress));
183
242
  }, [get, set]);
184
243
  var start = useCallback(function () {
185
244
  var work = function work() {
245
+ var _queue$current5;
246
+
186
247
  trickle();
187
- queue(function (next) {
188
- timeout(function () {
248
+ (_queue$current5 = queue.current) == null ? void 0 : _queue$current5.enqueue(function (next) {
249
+ var _timeout$current4;
250
+
251
+ (_timeout$current4 = timeout.current) == null ? void 0 : _timeout$current4.schedule(function () {
189
252
  work();
190
253
  next();
191
254
  }, incrementDuration);
@@ -193,7 +256,7 @@ var useNProgress = function useNProgress(_temp) {
193
256
  };
194
257
 
195
258
  work();
196
- }, [incrementDuration, trickle]);
259
+ }, [incrementDuration, queue, timeout, trickle]);
197
260
  var savedTrickle = useRef(noop);
198
261
  var sideEffect = get().sideEffect;
199
262
  useEffect(function () {
@@ -1 +1 @@
1
- {"version":3,"file":"react-nprogress.esm.js","sources":["../compiled/clamp.js","../compiled/increment.js","../compiled/queue.js","../compiled/timeout.js","../compiled/useNProgress.js","../compiled/NProgress.js","../compiled/withNProgress.js"],"sourcesContent":["export const clamp = (num, lower, upper) => {\n num = num <= upper ? num : upper;\n num = num >= lower ? num : lower;\n return num;\n};\n","import { clamp } from './clamp';\nexport const increment = (progress) => {\n let amount = 0;\n if (progress >= 0 && progress < 0.2) {\n amount = 0.1;\n }\n else if (progress >= 0.2 && progress < 0.5) {\n amount = 0.04;\n }\n else if (progress >= 0.5 && progress < 0.8) {\n amount = 0.02;\n }\n else if (progress >= 0.8 && progress < 0.99) {\n amount = 0.005;\n }\n return clamp(progress + amount, 0, 0.994);\n};\n","export const createQueue = () => {\n let isRunning = false;\n let pending = [];\n const next = () => {\n isRunning = true;\n const cb = pending.shift();\n if (cb) {\n return cb(next);\n }\n isRunning = false;\n };\n const clear = () => {\n isRunning = false;\n pending = [];\n };\n const queue = (cb) => {\n pending.push(cb);\n if (!isRunning && pending.length === 1) {\n next();\n }\n };\n return {\n clear,\n queue,\n };\n};\n","export const createTimeout = () => {\n let handle;\n const cancel = () => {\n console.log('cancel');\n if (handle) {\n window.cancelAnimationFrame(handle);\n }\n };\n const timeout = (callback, delay) => {\n let deltaTime;\n let start;\n const frame = (time) => {\n start = start || time;\n deltaTime = time - start;\n if (deltaTime > delay) {\n callback();\n return;\n }\n handle = window.requestAnimationFrame(frame);\n };\n handle = window.requestAnimationFrame(frame);\n };\n return {\n cancel,\n timeout,\n };\n};\n","import { useCallback, useEffect, useRef } from 'react';\nimport { useEffectOnce, useGetSetState, useUpdateEffect } from 'react-use';\nimport { clamp } from './clamp';\nimport { increment } from './increment';\n// import { clear as clearQueue, queue } from './queue'\nimport { createQueue } from './queue';\n// import { cancel as cancelCurrentTimeout, timeout } from './timeout'\nimport { createTimeout } from './timeout';\n/* istanbul ignore next */\nconst noop = () => undefined;\n// const initialState: State = {\n// isFinished: true,\n// progress: 0,\n// sideEffect: noop,\n// }\n// const cleanup = () => {\n// cancelCurrentTimeout()\n// clearQueue()\n// }\nexport const useNProgress = ({ animationDuration = 200, incrementDuration = 800, isAnimating = false, minimum = 0.08, } = {}) => {\n const initialState = {\n isFinished: true,\n progress: 0,\n sideEffect: noop,\n };\n const [get, setState] = useGetSetState(initialState);\n const { clear: clearQueue, queue } = createQueue();\n const { cancel: cancelCurrentTimeout, timeout } = createTimeout();\n const cleanup = () => {\n cancelCurrentTimeout();\n clearQueue();\n };\n const set = useCallback((n) => {\n n = clamp(n, minimum, 1);\n if (n === 1) {\n cleanup();\n queue((next) => {\n setState({\n progress: n,\n sideEffect: () => timeout(next, animationDuration),\n });\n });\n queue(() => {\n setState({ isFinished: true, sideEffect: cleanup });\n });\n return;\n }\n queue((next) => {\n setState({\n isFinished: false,\n progress: n,\n sideEffect: () => timeout(next, animationDuration),\n });\n });\n }, [animationDuration, minimum, setState]);\n const trickle = useCallback(() => {\n set(increment(get().progress));\n }, [get, set]);\n const start = useCallback(() => {\n const work = () => {\n trickle();\n queue((next) => {\n timeout(() => {\n work();\n next();\n }, incrementDuration);\n });\n };\n work();\n }, [incrementDuration, trickle]);\n const savedTrickle = useRef(noop);\n const sideEffect = get().sideEffect;\n useEffect(() => {\n savedTrickle.current = trickle;\n });\n useEffectOnce(() => {\n if (isAnimating) {\n start();\n }\n return cleanup;\n });\n useUpdateEffect(() => {\n get().sideEffect();\n }, [get, sideEffect]);\n useUpdateEffect(() => {\n if (!isAnimating) {\n set(1);\n }\n else {\n setState({\n ...initialState,\n sideEffect: start,\n });\n }\n }, [isAnimating, set, setState, start]);\n return {\n animationDuration,\n isFinished: get().isFinished,\n progress: get().progress,\n };\n};\n","import { useNProgress } from './useNProgress';\nexport const NProgress = ({ children, ...restProps }) => {\n const renderProps = useNProgress(restProps);\n return children(renderProps);\n};\n","import hoistNonReactStatics from 'hoist-non-react-statics';\nimport * as React from 'react';\nimport { useNProgress } from './useNProgress';\nexport function withNProgress(BaseComponent) {\n const WithNProgress = (props) => {\n const hookProps = useNProgress(props);\n return React.createElement(BaseComponent, { ...props, ...hookProps });\n };\n hoistNonReactStatics(WithNProgress, BaseComponent);\n return WithNProgress;\n}\n"],"names":["clamp","num","lower","upper","increment","progress","amount","createQueue","isRunning","pending","next","cb","shift","clear","queue","push","length","createTimeout","handle","cancel","console","log","window","cancelAnimationFrame","timeout","callback","delay","deltaTime","start","frame","time","requestAnimationFrame","noop","undefined","useNProgress","animationDuration","incrementDuration","isAnimating","minimum","initialState","isFinished","sideEffect","useGetSetState","get","setState","clearQueue","cancelCurrentTimeout","cleanup","set","useCallback","n","trickle","work","savedTrickle","useRef","useEffect","current","useEffectOnce","useUpdateEffect","NProgress","children","restProps","renderProps","withNProgress","BaseComponent","WithNProgress","props","hookProps","React","createElement","hoistNonReactStatics"],"mappings":"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"}
1
+ {"version":3,"file":"react-nprogress.esm.js","sources":["../compiled/clamp.js","../compiled/createQueue.js","../compiled/createTimeout.js","../compiled/increment.js","../compiled/useEffectOnce.js","../compiled/useGetSetState.js","../compiled/useUpdateEffect.js","../compiled/useNProgress.js","../compiled/NProgress.js","../compiled/withNProgress.js"],"sourcesContent":["export const clamp = (num, lower, upper) => {\n num = num <= upper ? num : upper;\n num = num >= lower ? num : lower;\n return num;\n};\n","export const createQueue = () => {\n let isRunning = false;\n let pending = [];\n const next = () => {\n isRunning = true;\n const cb = pending.shift();\n if (cb) {\n return cb(next);\n }\n isRunning = false;\n };\n const clear = () => {\n isRunning = false;\n pending = [];\n };\n const enqueue = (cb) => {\n pending.push(cb);\n if (!isRunning && pending.length === 1) {\n next();\n }\n };\n return {\n clear,\n enqueue,\n };\n};\n","export const createTimeout = () => {\n let handle;\n const cancel = () => {\n if (handle) {\n window.cancelAnimationFrame(handle);\n }\n };\n const schedule = (callback, delay) => {\n let deltaTime;\n let start;\n const frame = (time) => {\n start = start || time;\n deltaTime = time - start;\n if (deltaTime > delay) {\n callback();\n return;\n }\n handle = window.requestAnimationFrame(frame);\n };\n handle = window.requestAnimationFrame(frame);\n };\n return {\n cancel,\n schedule,\n };\n};\n","import { clamp } from './clamp';\nexport const increment = (progress) => {\n let amount = 0;\n if (progress >= 0 && progress < 0.2) {\n amount = 0.1;\n }\n else if (progress >= 0.2 && progress < 0.5) {\n amount = 0.04;\n }\n else if (progress >= 0.5 && progress < 0.8) {\n amount = 0.02;\n }\n else if (progress >= 0.8 && progress < 0.99) {\n amount = 0.005;\n }\n return clamp(progress + amount, 0, 0.994);\n};\n","// Hat-tip:\n// https://github.com/streamich/react-use/blob/master/src/useEffectOnce.ts.\n//\n// `react-use` appears to be unmaintained, so moving the required code into\n// this project for now.\nimport { useEffect } from 'react';\nexport const useEffectOnce = (effect) => {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(effect, []);\n};\n","// Hat-tip:\n// https://github.com/streamich/react-use/blob/master/src/useGetSetState.ts.\n//\n// `react-use` appears to be unmaintained, so moving the required code into\n// this project for now.\nimport { useCallback, useRef, useState } from 'react';\nconst incrementParameter = (num) => ++num % 1_000_000;\nconst useUpdate = () => {\n const [, setState] = useState(0);\n return useCallback(() => setState(incrementParameter), []);\n};\nexport const useGetSetState = (\n/* istanbul ignore next */\ninitialState = {}) => {\n const update = useUpdate();\n const state = useRef({ ...initialState });\n const get = useCallback(() => state.current, []);\n const set = useCallback((patch) => {\n if (!patch) {\n return;\n }\n Object.assign(state.current, patch);\n update();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n return [get, set];\n};\n","// Hat-tip:\n// https://github.com/streamich/react-use/blob/master/src/useUpdateEffect.ts.\n//\n// `react-use` appears to be unmaintained, so moving the required code into\n// this project for now.\nimport { useEffect, useRef } from 'react';\nconst useFirstMountState = () => {\n const isFirst = useRef(true);\n if (isFirst.current) {\n isFirst.current = false;\n return true;\n }\n return isFirst.current;\n};\nexport const useUpdateEffect = (effect, deps) => {\n const isFirstMount = useFirstMountState();\n useEffect(() => {\n if (!isFirstMount) {\n return effect();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, deps);\n};\n","import { useCallback, useEffect, useRef } from 'react';\nimport { clamp } from './clamp';\nimport { createQueue } from './createQueue';\nimport { createTimeout } from './createTimeout';\nimport { increment } from './increment';\nimport { useEffectOnce } from './useEffectOnce';\nimport { useGetSetState } from './useGetSetState';\nimport { useUpdateEffect } from './useUpdateEffect';\n/* istanbul ignore next */\nconst noop = () => undefined;\nconst initialState = {\n isFinished: true,\n progress: 0,\n sideEffect: noop,\n};\nexport const useNProgress = ({ animationDuration = 200, incrementDuration = 800, isAnimating = false, minimum = 0.08, } = {}) => {\n const [get, setState] = useGetSetState(initialState);\n const queue = useRef(null);\n const timeout = useRef(null);\n useEffectOnce(() => {\n queue.current = createQueue();\n timeout.current = createTimeout();\n });\n const cleanup = useCallback(() => {\n timeout.current?.cancel();\n queue.current?.clear();\n }, []);\n const set = useCallback((n) => {\n n = clamp(n, minimum, 1);\n if (n === 1) {\n cleanup();\n queue.current?.enqueue((next) => {\n setState({\n progress: n,\n sideEffect: () => timeout.current?.schedule(next, animationDuration),\n });\n });\n queue.current?.enqueue(() => {\n setState({ isFinished: true, sideEffect: cleanup });\n });\n return;\n }\n queue.current?.enqueue((next) => {\n setState({\n isFinished: false,\n progress: n,\n sideEffect: () => timeout.current?.schedule(next, animationDuration),\n });\n });\n }, [animationDuration, cleanup, minimum, queue, setState, timeout]);\n const trickle = useCallback(() => {\n set(increment(get().progress));\n }, [get, set]);\n const start = useCallback(() => {\n const work = () => {\n trickle();\n queue.current?.enqueue((next) => {\n timeout.current?.schedule(() => {\n work();\n next();\n }, incrementDuration);\n });\n };\n work();\n }, [incrementDuration, queue, timeout, trickle]);\n const savedTrickle = useRef(noop);\n const sideEffect = get().sideEffect;\n useEffect(() => {\n savedTrickle.current = trickle;\n });\n useEffectOnce(() => {\n if (isAnimating) {\n start();\n }\n return cleanup;\n });\n useUpdateEffect(() => {\n get().sideEffect();\n }, [get, sideEffect]);\n useUpdateEffect(() => {\n if (!isAnimating) {\n set(1);\n }\n else {\n setState({\n ...initialState,\n sideEffect: start,\n });\n }\n }, [isAnimating, set, setState, start]);\n return {\n animationDuration,\n isFinished: get().isFinished,\n progress: get().progress,\n };\n};\n","import { useNProgress } from './useNProgress';\nexport const NProgress = ({ children, ...restProps }) => {\n const renderProps = useNProgress(restProps);\n return children(renderProps);\n};\n","import hoistNonReactStatics from 'hoist-non-react-statics';\nimport * as React from 'react';\nimport { useNProgress } from './useNProgress';\nexport function withNProgress(BaseComponent) {\n const WithNProgress = (props) => {\n const hookProps = useNProgress(props);\n return React.createElement(BaseComponent, { ...props, ...hookProps });\n };\n hoistNonReactStatics(WithNProgress, BaseComponent);\n return WithNProgress;\n}\n"],"names":["clamp","num","lower","upper","createQueue","isRunning","pending","next","cb","shift","clear","enqueue","push","length","createTimeout","handle","cancel","window","cancelAnimationFrame","schedule","callback","delay","deltaTime","start","frame","time","requestAnimationFrame","increment","progress","amount","useEffectOnce","effect","useEffect","incrementParameter","useUpdate","useState","setState","useCallback","useGetSetState","initialState","update","state","useRef","get","current","set","patch","Object","assign","useFirstMountState","isFirst","useUpdateEffect","deps","isFirstMount","noop","undefined","isFinished","sideEffect","useNProgress","animationDuration","incrementDuration","isAnimating","minimum","queue","timeout","cleanup","n","trickle","work","savedTrickle","NProgress","children","restProps","renderProps","withNProgress","BaseComponent","WithNProgress","props","hookProps","React","createElement","hoistNonReactStatics"],"mappings":"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"}