@tanem/react-nprogress 3.0.80 → 4.0.0-beta.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.
package/dist/queue.d.ts CHANGED
@@ -1,5 +1,7 @@
1
1
  declare type Next = () => void;
2
2
  declare type Callback = (next: Next) => void;
3
- export declare const clear: () => void;
4
- export declare const queue: (cb: Callback) => void;
3
+ export declare const createQueue: () => {
4
+ clear: () => void;
5
+ queue: (cb: Callback) => void;
6
+ };
5
7
  export {};
@@ -55,73 +55,90 @@ var increment = function increment(progress) {
55
55
  return clamp(progress + amount, 0, 0.994);
56
56
  };
57
57
 
58
- var isRunning = false;
59
- var pending = [];
58
+ var createQueue = function createQueue() {
59
+ var isRunning = false;
60
+ var pending = [];
60
61
 
61
- var next = function next() {
62
- isRunning = true;
63
- var cb = pending.shift();
62
+ var next = function next() {
63
+ isRunning = true;
64
+ var cb = pending.shift();
64
65
 
65
- if (cb) {
66
- return cb(next);
67
- }
66
+ if (cb) {
67
+ return cb(next);
68
+ }
68
69
 
69
- isRunning = false;
70
- };
70
+ isRunning = false;
71
+ };
71
72
 
72
- var clear = function clear() {
73
- isRunning = false;
74
- pending = [];
75
- };
76
- var queue = function queue(cb) {
77
- pending.push(cb);
73
+ var clear = function clear() {
74
+ isRunning = false;
75
+ pending = [];
76
+ };
78
77
 
79
- if (!isRunning && pending.length === 1) {
80
- next();
81
- }
82
- };
78
+ var queue = function queue(cb) {
79
+ pending.push(cb);
83
80
 
84
- var handle;
85
- var cancel = function cancel() {
86
- if (handle) {
87
- window.cancelAnimationFrame(handle);
88
- }
81
+ if (!isRunning && pending.length === 1) {
82
+ next();
83
+ }
84
+ };
85
+
86
+ return {
87
+ clear: clear,
88
+ queue: queue
89
+ };
89
90
  };
90
- var timeout = function timeout(callback, delay) {
91
- var deltaTime;
92
- var start;
93
91
 
94
- var frame = function frame(time) {
95
- start = start || time;
96
- deltaTime = time - start;
92
+ var createTimeout = function createTimeout() {
93
+ var handle;
97
94
 
98
- if (deltaTime > delay) {
99
- callback();
100
- return;
95
+ var cancel = function cancel() {
96
+ console.log('cancel');
97
+
98
+ if (handle) {
99
+ window.cancelAnimationFrame(handle);
101
100
  }
101
+ };
102
+
103
+ var timeout = function timeout(callback, delay) {
104
+ var deltaTime;
105
+ var start;
106
+
107
+ var frame = function frame(time) {
108
+ start = start || time;
109
+ deltaTime = time - start;
110
+
111
+ if (deltaTime > delay) {
112
+ callback();
113
+ return;
114
+ }
115
+
116
+ handle = window.requestAnimationFrame(frame);
117
+ };
102
118
 
103
119
  handle = window.requestAnimationFrame(frame);
104
120
  };
105
121
 
106
- handle = window.requestAnimationFrame(frame);
122
+ return {
123
+ cancel: cancel,
124
+ timeout: timeout
125
+ };
107
126
  };
108
127
 
109
128
  /* istanbul ignore next */
110
129
 
111
130
  var noop = function noop() {
112
131
  return undefined;
113
- };
132
+ }; // const initialState: State = {
133
+ // isFinished: true,
134
+ // progress: 0,
135
+ // sideEffect: noop,
136
+ // }
137
+ // const cleanup = () => {
138
+ // cancelCurrentTimeout()
139
+ // clearQueue()
140
+ // }
114
141
 
115
- var initialState = {
116
- isFinished: true,
117
- progress: 0,
118
- sideEffect: noop
119
- };
120
-
121
- var cleanup = function cleanup() {
122
- cancel();
123
- clear();
124
- };
125
142
 
126
143
  var useNProgress = function useNProgress(_temp) {
127
144
  var _ref = _temp === void 0 ? {} : _temp,
@@ -134,10 +151,29 @@ var useNProgress = function useNProgress(_temp) {
134
151
  _ref$minimum = _ref.minimum,
135
152
  minimum = _ref$minimum === void 0 ? 0.08 : _ref$minimum;
136
153
 
154
+ var initialState = {
155
+ isFinished: true,
156
+ progress: 0,
157
+ sideEffect: noop
158
+ };
159
+
137
160
  var _useGetSetState = reactUse.useGetSetState(initialState),
138
161
  get = _useGetSetState[0],
139
162
  setState = _useGetSetState[1];
140
163
 
164
+ var _createQueue = createQueue(),
165
+ clearQueue = _createQueue.clear,
166
+ queue = _createQueue.queue;
167
+
168
+ var _createTimeout = createTimeout(),
169
+ cancelCurrentTimeout = _createTimeout.cancel,
170
+ timeout = _createTimeout.timeout;
171
+
172
+ var cleanup = function cleanup() {
173
+ cancelCurrentTimeout();
174
+ clearQueue();
175
+ };
176
+
141
177
  var set = React.useCallback(function (n) {
142
178
  n = clamp(n, minimum, 1);
143
179
 
@@ -1 +1 @@
1
- {"version":3,"file":"react-nprogress.cjs.development.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","let isRunning = false;\nlet pending = [];\nconst next = () => {\n isRunning = true;\n const cb = pending.shift();\n if (cb) {\n return cb(next);\n }\n isRunning = false;\n};\nexport const clear = () => {\n isRunning = false;\n pending = [];\n};\nexport const queue = (cb) => {\n pending.push(cb);\n if (!isRunning && pending.length === 1) {\n next();\n }\n};\n","let handle;\nexport const cancel = () => {\n if (handle) {\n window.cancelAnimationFrame(handle);\n }\n};\nexport 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","import { useCallback, useEffect, useRef } from 'react';\nimport { useEffectOnce, useGetSetState, useUpdateEffect } from 'react-use';\nimport { clamp } from './clamp';\nimport { increment } from './increment';\nimport { clear as clearQueue, queue } from './queue';\nimport { cancel as cancelCurrentTimeout, timeout } from './timeout';\n/* istanbul ignore next */\nconst noop = () => undefined;\nconst initialState = {\n isFinished: true,\n progress: 0,\n sideEffect: noop,\n};\nconst cleanup = () => {\n cancelCurrentTimeout();\n clearQueue();\n};\nexport const useNProgress = ({ animationDuration = 200, incrementDuration = 800, isAnimating = false, minimum = 0.08, } = {}) => {\n const [get, setState] = useGetSetState(initialState);\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","isRunning","pending","next","cb","shift","clear","queue","push","length","handle","cancel","window","cancelAnimationFrame","timeout","callback","delay","deltaTime","start","frame","time","requestAnimationFrame","noop","undefined","initialState","isFinished","sideEffect","cleanup","cancelCurrentTimeout","clearQueue","useNProgress","animationDuration","incrementDuration","isAnimating","minimum","useGetSetState","get","setState","set","useCallback","n","trickle","work","savedTrickle","useRef","useEffect","current","useEffectOnce","useUpdateEffect","NProgress","children","restProps","renderProps","withNProgress","BaseComponent","WithNProgress","props","hookProps","React","createElement","hoistNonReactStatics"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAO,IAAMA,KAAK,GAAG,SAARA,KAAQ,CAACC,GAAD,EAAMC,KAAN,EAAaC,KAAb,EAAuB;AACxCF,EAAAA,GAAG,GAAGA,GAAG,IAAIE,KAAP,GAAeF,GAAf,GAAqBE,KAA3B;AACAF,EAAAA,GAAG,GAAGA,GAAG,IAAIC,KAAP,GAAeD,GAAf,GAAqBC,KAA3B;AACA,SAAOD,GAAP;AACH,CAJM;;ACCA,IAAMG,SAAS,GAAG,SAAZA,SAAY,CAACC,QAAD,EAAc;AACnC,MAAIC,MAAM,GAAG,CAAb;;AACA,MAAID,QAAQ,IAAI,CAAZ,IAAiBA,QAAQ,GAAG,GAAhC,EAAqC;AACjCC,IAAAA,MAAM,GAAG,GAAT;AACH,GAFD,MAGK,IAAID,QAAQ,IAAI,GAAZ,IAAmBA,QAAQ,GAAG,GAAlC,EAAuC;AACxCC,IAAAA,MAAM,GAAG,IAAT;AACH,GAFI,MAGA,IAAID,QAAQ,IAAI,GAAZ,IAAmBA,QAAQ,GAAG,GAAlC,EAAuC;AACxCC,IAAAA,MAAM,GAAG,IAAT;AACH,GAFI,MAGA,IAAID,QAAQ,IAAI,GAAZ,IAAmBA,QAAQ,GAAG,IAAlC,EAAwC;AACzCC,IAAAA,MAAM,GAAG,KAAT;AACH;;AACD,SAAON,KAAK,CAACK,QAAQ,GAAGC,MAAZ,EAAoB,CAApB,EAAuB,KAAvB,CAAZ;AACH,CAfM;;ACDP,IAAIC,SAAS,GAAG,KAAhB;AACA,IAAIC,OAAO,GAAG,EAAd;;AACA,IAAMC,IAAI,GAAG,SAAPA,IAAO,GAAM;AACfF,EAAAA,SAAS,GAAG,IAAZ;AACA,MAAMG,EAAE,GAAGF,OAAO,CAACG,KAAR,EAAX;;AACA,MAAID,EAAJ,EAAQ;AACJ,WAAOA,EAAE,CAACD,IAAD,CAAT;AACH;;AACDF,EAAAA,SAAS,GAAG,KAAZ;AACH,CAPD;;AAQO,IAAMK,KAAK,GAAG,SAARA,KAAQ,GAAM;AACvBL,EAAAA,SAAS,GAAG,KAAZ;AACAC,EAAAA,OAAO,GAAG,EAAV;AACH,CAHM;AAIA,IAAMK,KAAK,GAAG,SAARA,KAAQ,CAACH,EAAD,EAAQ;AACzBF,EAAAA,OAAO,CAACM,IAAR,CAAaJ,EAAb;;AACA,MAAI,CAACH,SAAD,IAAcC,OAAO,CAACO,MAAR,KAAmB,CAArC,EAAwC;AACpCN,IAAAA,IAAI;AACP;AACJ,CALM;;ACdP,IAAIO,MAAJ;AACO,IAAMC,MAAM,GAAG,SAATA,MAAS,GAAM;AACxB,MAAID,MAAJ,EAAY;AACRE,IAAAA,MAAM,CAACC,oBAAP,CAA4BH,MAA5B;AACH;AACJ,CAJM;AAKA,IAAMI,OAAO,GAAG,SAAVA,OAAU,CAACC,QAAD,EAAWC,KAAX,EAAqB;AACxC,MAAIC,SAAJ;AACA,MAAIC,KAAJ;;AACA,MAAMC,KAAK,GAAG,SAARA,KAAQ,CAACC,IAAD,EAAU;AACpBF,IAAAA,KAAK,GAAGA,KAAK,IAAIE,IAAjB;AACAH,IAAAA,SAAS,GAAGG,IAAI,GAAGF,KAAnB;;AACA,QAAID,SAAS,GAAGD,KAAhB,EAAuB;AACnBD,MAAAA,QAAQ;AACR;AACH;;AACDL,IAAAA,MAAM,GAAGE,MAAM,CAACS,qBAAP,CAA6BF,KAA7B,CAAT;AACH,GARD;;AASAT,EAAAA,MAAM,GAAGE,MAAM,CAACS,qBAAP,CAA6BF,KAA7B,CAAT;AACH,CAbM;;ACAP;;AACA,IAAMG,IAAI,GAAG,SAAPA,IAAO;AAAA,SAAMC,SAAN;AAAA,CAAb;;AACA,IAAMC,YAAY,GAAG;AACjBC,EAAAA,UAAU,EAAE,IADK;AAEjB1B,EAAAA,QAAQ,EAAE,CAFO;AAGjB2B,EAAAA,UAAU,EAAEJ;AAHK,CAArB;;AAKA,IAAMK,OAAO,GAAG,SAAVA,OAAU,GAAM;AAClBC,EAAAA,MAAoB;AACpBC,EAAAA,KAAU;AACb,CAHD;;IAIaC,YAAY,GAAG,SAAfA,YAAe,QAAqG;AAAA,gCAAP,EAAO;AAAA,mCAAlGC,iBAAkG;AAAA,MAAlGA,iBAAkG,sCAA9E,GAA8E;AAAA,mCAAzEC,iBAAyE;AAAA,MAAzEA,iBAAyE,sCAArD,GAAqD;AAAA,8BAAhDC,WAAgD;AAAA,MAAhDA,WAAgD,iCAAlC,KAAkC;AAAA,0BAA3BC,OAA2B;AAAA,MAA3BA,OAA2B,6BAAjB,IAAiB;;AAC7H,wBAAwBC,uBAAc,CAACX,YAAD,CAAtC;AAAA,MAAOY,GAAP;AAAA,MAAYC,QAAZ;;AACA,MAAMC,GAAG,GAAGC,iBAAW,CAAC,UAACC,CAAD,EAAO;AAC3BA,IAAAA,CAAC,GAAG9C,KAAK,CAAC8C,CAAD,EAAIN,OAAJ,EAAa,CAAb,CAAT;;AACA,QAAIM,CAAC,KAAK,CAAV,EAAa;AACTb,MAAAA,OAAO;AACPpB,MAAAA,KAAK,CAAC,UAACJ,IAAD,EAAU;AACZkC,QAAAA,QAAQ,CAAC;AACLtC,UAAAA,QAAQ,EAAEyC,CADL;AAELd,UAAAA,UAAU,EAAE;AAAA,mBAAMZ,OAAO,CAACX,IAAD,EAAO4B,iBAAP,CAAb;AAAA;AAFP,SAAD,CAAR;AAIH,OALI,CAAL;AAMAxB,MAAAA,KAAK,CAAC,YAAM;AACR8B,QAAAA,QAAQ,CAAC;AAAEZ,UAAAA,UAAU,EAAE,IAAd;AAAoBC,UAAAA,UAAU,EAAEC;AAAhC,SAAD,CAAR;AACH,OAFI,CAAL;AAGA;AACH;;AACDpB,IAAAA,KAAK,CAAC,UAACJ,IAAD,EAAU;AACZkC,MAAAA,QAAQ,CAAC;AACLZ,QAAAA,UAAU,EAAE,KADP;AAEL1B,QAAAA,QAAQ,EAAEyC,CAFL;AAGLd,QAAAA,UAAU,EAAE;AAAA,iBAAMZ,OAAO,CAACX,IAAD,EAAO4B,iBAAP,CAAb;AAAA;AAHP,OAAD,CAAR;AAKH,KANI,CAAL;AAOH,GAtBsB,EAsBpB,CAACA,iBAAD,EAAoBG,OAApB,EAA6BG,QAA7B,CAtBoB,CAAvB;AAuBA,MAAMI,OAAO,GAAGF,iBAAW,CAAC,YAAM;AAC9BD,IAAAA,GAAG,CAACxC,SAAS,CAACsC,GAAG,GAAGrC,QAAP,CAAV,CAAH;AACH,GAF0B,EAExB,CAACqC,GAAD,EAAME,GAAN,CAFwB,CAA3B;AAGA,MAAMpB,KAAK,GAAGqB,iBAAW,CAAC,YAAM;AAC5B,QAAMG,IAAI,GAAG,SAAPA,IAAO,GAAM;AACfD,MAAAA,OAAO;AACPlC,MAAAA,KAAK,CAAC,UAACJ,IAAD,EAAU;AACZW,QAAAA,OAAO,CAAC,YAAM;AACV4B,UAAAA,IAAI;AACJvC,UAAAA,IAAI;AACP,SAHM,EAGJ6B,iBAHI,CAAP;AAIH,OALI,CAAL;AAMH,KARD;;AASAU,IAAAA,IAAI;AACP,GAXwB,EAWtB,CAACV,iBAAD,EAAoBS,OAApB,CAXsB,CAAzB;AAYA,MAAME,YAAY,GAAGC,YAAM,CAACtB,IAAD,CAA3B;AACA,MAAMI,UAAU,GAAGU,GAAG,GAAGV,UAAzB;AACAmB,EAAAA,eAAS,CAAC,YAAM;AACZF,IAAAA,YAAY,CAACG,OAAb,GAAuBL,OAAvB;AACH,GAFQ,CAAT;AAGAM,EAAAA,sBAAa,CAAC,YAAM;AAChB,QAAId,WAAJ,EAAiB;AACbf,MAAAA,KAAK;AACR;;AACD,WAAOS,OAAP;AACH,GALY,CAAb;AAMAqB,EAAAA,wBAAe,CAAC,YAAM;AAClBZ,IAAAA,GAAG,GAAGV,UAAN;AACH,GAFc,EAEZ,CAACU,GAAD,EAAMV,UAAN,CAFY,CAAf;AAGAsB,EAAAA,wBAAe,CAAC,YAAM;AAClB,QAAI,CAACf,WAAL,EAAkB;AACdK,MAAAA,GAAG,CAAC,CAAD,CAAH;AACH,KAFD,MAGK;AACDD,MAAAA,QAAQ,kCACDb,YADC;AAEJE,QAAAA,UAAU,EAAER;AAFR,SAAR;AAIH;AACJ,GAVc,EAUZ,CAACe,WAAD,EAAcK,GAAd,EAAmBD,QAAnB,EAA6BnB,KAA7B,CAVY,CAAf;AAWA,SAAO;AACHa,IAAAA,iBAAiB,EAAjBA,iBADG;AAEHN,IAAAA,UAAU,EAAEW,GAAG,GAAGX,UAFf;AAGH1B,IAAAA,QAAQ,EAAEqC,GAAG,GAAGrC;AAHb,GAAP;AAKH;;;ICtFYkD,SAAS,GAAG,SAAZA,SAAY,OAAgC;AAAA,MAA7BC,QAA6B,QAA7BA,QAA6B;AAAA,MAAhBC,SAAgB;;AACrD,MAAMC,WAAW,GAAGtB,YAAY,CAACqB,SAAD,CAAhC;AACA,SAAOD,QAAQ,CAACE,WAAD,CAAf;AACH;;ACDM,SAASC,aAAT,CAAuBC,aAAvB,EAAsC;AACzC,MAAMC,aAAa,GAAG,SAAhBA,aAAgB,CAACC,KAAD,EAAW;AAC7B,QAAMC,SAAS,GAAG3B,YAAY,CAAC0B,KAAD,CAA9B;AACA,wBAAOE,gBAAK,CAACC,aAAN,CAAoBL,aAApB,mCAAwCE,KAAxC,EAAkDC,SAAlD,EAAP;AACH,GAHD;;AAIAG,EAAAA,wCAAoB,CAACL,aAAD,EAAgBD,aAAhB,CAApB;AACA,SAAOC,aAAP;AACH;;;;;;"}
1
+ {"version":3,"file":"react-nprogress.cjs.development.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,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _objectWithoutPropertiesLoose=require("@babel/runtime/helpers/objectWithoutPropertiesLoose"),_extends=require("@babel/runtime/helpers/extends"),React=require("react"),reactUse=require("react-use"),hoistNonReactStatics=require("hoist-non-react-statics");function _interopDefaultLegacy(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function _interopNamespace(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var i=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,i.get?i:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var handle,_objectWithoutPropertiesLoose__default=_interopDefaultLegacy(_objectWithoutPropertiesLoose),_extends__default=_interopDefaultLegacy(_extends),React__namespace=_interopNamespace(React),hoistNonReactStatics__default=_interopDefaultLegacy(hoistNonReactStatics),clamp=function(e,t,n){return e=(e=e<=n?e:n)>=t?e:t},increment=function(e){var t=0;return e>=0&&e<.2?t=.1:e>=.2&&e<.5?t=.04:e>=.5&&e<.8?t=.02:e>=.8&&e<.99&&(t=.005),clamp(e+t,0,.994)},isRunning=!1,pending=[],next=function e(){isRunning=!0;var t=pending.shift();if(t)return t(e);isRunning=!1},clear=function(){isRunning=!1,pending=[]},queue=function(e){pending.push(e),isRunning||1!==pending.length||next()},cancel=function(){handle&&window.cancelAnimationFrame(handle)},timeout=function(e,t){var n;handle=window.requestAnimationFrame((function i(r){r-(n=n||r)>t?e():handle=window.requestAnimationFrame(i)}))},noop=function(){},initialState={isFinished:!0,progress:0,sideEffect:noop},cleanup=function(){cancel(),clear()},useNProgress=function(e){var t=void 0===e?{}:e,n=t.animationDuration,i=void 0===n?200:n,r=t.incrementDuration,u=void 0===r?800:r,o=t.isAnimating,s=void 0!==o&&o,c=t.minimum,a=void 0===c?.08:c,f=reactUse.useGetSetState(initialState),d=f[0],l=f[1],p=React.useCallback((function(e){if(1===(e=clamp(e,a,1)))return cleanup(),queue((function(t){l({progress:e,sideEffect:function(){return timeout(t,i)}})})),void queue((function(){l({isFinished:!0,sideEffect:cleanup})}));queue((function(t){l({isFinished:!1,progress:e,sideEffect:function(){return timeout(t,i)}})}))}),[i,a,l]),_=React.useCallback((function(){p(increment(d().progress))}),[d,p]),g=React.useCallback((function(){!function e(){_(),queue((function(t){timeout((function(){e(),t()}),u)}))}()}),[u,_]),h=React.useRef(noop),m=d().sideEffect;return React.useEffect((function(){h.current=_})),reactUse.useEffectOnce((function(){return s&&g(),cleanup})),reactUse.useUpdateEffect((function(){d().sideEffect()}),[d,m]),reactUse.useUpdateEffect((function(){s?l(_extends__default.default({},initialState,{sideEffect:g})):p(1)}),[s,p,l,g]),{animationDuration:i,isFinished:d().isFinished,progress:d().progress}},_excluded=["children"],NProgress=function(e){var t=e.children,n=_objectWithoutPropertiesLoose__default.default(e,_excluded);return t(useNProgress(n))};function withNProgress(e){var t=function(t){var n=useNProgress(t);return React__namespace.createElement(e,_extends__default.default({},t,n))};return hoistNonReactStatics__default.default(t,e),t}exports.NProgress=NProgress,exports.useNProgress=useNProgress,exports.withNProgress=withNProgress;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _objectWithoutPropertiesLoose=require("@babel/runtime/helpers/objectWithoutPropertiesLoose"),_extends=require("@babel/runtime/helpers/extends"),React=require("react"),reactUse=require("react-use"),hoistNonReactStatics=require("hoist-non-react-statics");function _interopDefaultLegacy(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function _interopNamespace(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var _objectWithoutPropertiesLoose__default=_interopDefaultLegacy(_objectWithoutPropertiesLoose),_extends__default=_interopDefaultLegacy(_extends),React__namespace=_interopNamespace(React),hoistNonReactStatics__default=_interopDefaultLegacy(hoistNonReactStatics),clamp=function(e,t,n){return e=(e=e<=n?e:n)>=t?e:t},increment=function(e){var t=0;return e>=0&&e<.2?t=.1:e>=.2&&e<.5?t=.04:e>=.5&&e<.8?t=.02:e>=.8&&e<.99&&(t=.005),clamp(e+t,0,.994)},createQueue=function(){var e=!1,t=[],n=function n(){e=!0;var r=t.shift();if(r)return r(n);e=!1};return{clear:function(){e=!1,t=[]},queue:function(r){t.push(r),e||1!==t.length||n()}}},createTimeout=function(){var e;return{cancel:function(){console.log("cancel"),e&&window.cancelAnimationFrame(e)},timeout:function(t,n){var r;e=window.requestAnimationFrame((function i(o){o-(r=r||o)>n?t():e=window.requestAnimationFrame(i)}))}}},noop=function(){},useNProgress=function(e){var t=void 0===e?{}:e,n=t.animationDuration,r=void 0===n?200:n,i=t.incrementDuration,o=void 0===i?800:i,c=t.isAnimating,u=void 0!==c&&c,s=t.minimum,a=void 0===s?.08:s,f={isFinished:!0,progress:0,sideEffect:noop},d=reactUse.useGetSetState(f),l=d[0],p=d[1],_=createQueue(),m=_.clear,g=_.queue,h=createTimeout(),b=h.cancel,v=h.timeout,P=function(){b(),m()},N=React.useCallback((function(e){if(1===(e=clamp(e,a,1)))return P(),g((function(t){p({progress:e,sideEffect:function(){return v(t,r)}})})),void g((function(){p({isFinished:!0,sideEffect:P})}));g((function(t){p({isFinished:!1,progress:e,sideEffect:function(){return v(t,r)}})}))}),[r,a,p]),R=React.useCallback((function(){N(increment(l().progress))}),[l,N]),E=React.useCallback((function(){!function e(){R(),g((function(t){v((function(){e(),t()}),o)}))}()}),[o,R]),j=React.useRef(noop),x=l().sideEffect;return React.useEffect((function(){j.current=R})),reactUse.useEffectOnce((function(){return u&&E(),P})),reactUse.useUpdateEffect((function(){l().sideEffect()}),[l,x]),reactUse.useUpdateEffect((function(){u?p(_extends__default.default({},f,{sideEffect:E})):N(1)}),[u,N,p,E]),{animationDuration:r,isFinished:l().isFinished,progress:l().progress}},_excluded=["children"],NProgress=function(e){var t=e.children,n=_objectWithoutPropertiesLoose__default.default(e,_excluded);return t(useNProgress(n))};function withNProgress(e){var t=function(t){var n=useNProgress(t);return React__namespace.createElement(e,_extends__default.default({},t,n))};return hoistNonReactStatics__default.default(t,e),t}exports.NProgress=NProgress,exports.useNProgress=useNProgress,exports.withNProgress=withNProgress;
2
2
  //# sourceMappingURL=react-nprogress.cjs.production.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"react-nprogress.cjs.production.js","sources":["../compiled/timeout.js","../compiled/clamp.js","../compiled/increment.js","../compiled/queue.js","../compiled/useNProgress.js","../compiled/NProgress.js","../compiled/withNProgress.js"],"sourcesContent":["let handle;\nexport const cancel = () => {\n if (handle) {\n window.cancelAnimationFrame(handle);\n }\n};\nexport 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","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","let isRunning = false;\nlet pending = [];\nconst next = () => {\n isRunning = true;\n const cb = pending.shift();\n if (cb) {\n return cb(next);\n }\n isRunning = false;\n};\nexport const clear = () => {\n isRunning = false;\n pending = [];\n};\nexport const queue = (cb) => {\n pending.push(cb);\n if (!isRunning && pending.length === 1) {\n next();\n }\n};\n","import { useCallback, useEffect, useRef } from 'react';\nimport { useEffectOnce, useGetSetState, useUpdateEffect } from 'react-use';\nimport { clamp } from './clamp';\nimport { increment } from './increment';\nimport { clear as clearQueue, queue } from './queue';\nimport { cancel as cancelCurrentTimeout, timeout } from './timeout';\n/* istanbul ignore next */\nconst noop = () => undefined;\nconst initialState = {\n isFinished: true,\n progress: 0,\n sideEffect: noop,\n};\nconst cleanup = () => {\n cancelCurrentTimeout();\n clearQueue();\n};\nexport const useNProgress = ({ animationDuration = 200, incrementDuration = 800, isAnimating = false, minimum = 0.08, } = {}) => {\n const [get, setState] = useGetSetState(initialState);\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":["handle","clamp","num","lower","upper","increment","progress","amount","isRunning","pending","next","cb","shift","clear","queue","push","length","cancel","window","cancelAnimationFrame","timeout","callback","delay","start","requestAnimationFrame","frame","time","noop","initialState","isFinished","sideEffect","cleanup","cancelCurrentTimeout","clearQueue","useNProgress","animationDuration","incrementDuration","isAnimating","minimum","useGetSetState","get","setState","set","useCallback","n","trickle","work","savedTrickle","useRef","useEffect","current","useEffectOnce","useUpdateEffect","NProgress","children","restProps","withNProgress","BaseComponent","WithNProgress","props","hookProps","React","createElement","hoistNonReactStatics"],"mappings":"otBAAIA,yQCASC,MAAQ,SAACC,EAAKC,EAAOC,UAE9BF,GADAA,EAAMA,GAAOE,EAAQF,EAAME,IACdD,EAAQD,EAAMC,GCDlBE,UAAY,SAACC,OAClBC,EAAS,SACTD,GAAY,GAAKA,EAAW,GAC5BC,EAAS,GAEJD,GAAY,IAAOA,EAAW,GACnCC,EAAS,IAEJD,GAAY,IAAOA,EAAW,GACnCC,EAAS,IAEJD,GAAY,IAAOA,EAAW,MACnCC,EAAS,MAENN,MAAMK,EAAWC,EAAQ,EAAG,OCfnCC,WAAY,EACZC,QAAU,GACRC,KAAO,SAAPA,IACFF,WAAY,MACNG,EAAKF,QAAQG,WACfD,SACOA,EAAGD,GAEdF,WAAY,GAEHK,MAAQ,WACjBL,WAAY,EACZC,QAAU,IAEDK,MAAQ,SAACH,GAClBF,QAAQM,KAAKJ,GACRH,WAAgC,IAAnBC,QAAQO,QACtBN,QHhBKO,OAAS,WACdjB,QACAkB,OAAOC,qBAAqBnB,SAGvBoB,QAAU,SAACC,EAAUC,OAE1BC,EAUJvB,OAASkB,OAAOM,uBATF,SAARC,EAASC,GAECA,GADZH,EAAQA,GAASG,GAEDJ,EACZD,IAGJrB,OAASkB,OAAOM,sBAAsBC,OITxCE,KAAO,aACPC,aAAe,CACjBC,YAAY,EACZvB,SAAU,EACVwB,WAAYH,MAEVI,QAAU,WACZC,SACAC,SAESC,aAAe,6BAA8F,SAA3FC,kBAAAA,aAAoB,UAAKC,kBAAAA,aAAoB,UAAKC,YAAAA,oBAAqBC,QAAAA,aAAU,QACpFC,wBAAeX,cAAhCY,OAAKC,OACNC,EAAMC,mBAAY,SAACC,MAEX,KADVA,EAAI3C,MAAM2C,EAAGN,EAAS,WAElBP,UACAjB,OAAM,SAACJ,GACH+B,EAAS,CACLnC,SAAUsC,EACVd,WAAY,kBAAMV,QAAQV,EAAMyB,cAGxCrB,OAAM,WACF2B,EAAS,CAAEZ,YAAY,EAAMC,WAAYC,aAIjDjB,OAAM,SAACJ,GACH+B,EAAS,CACLZ,YAAY,EACZvB,SAAUsC,EACVd,WAAY,kBAAMV,QAAQV,EAAMyB,WAGzC,CAACA,EAAmBG,EAASG,IAC1BI,EAAUF,mBAAY,WACxBD,EAAIrC,UAAUmC,IAAMlC,aACrB,CAACkC,EAAKE,IACHnB,EAAQoB,mBAAY,YACT,SAAPG,IACFD,IACA/B,OAAM,SAACJ,GACHU,SAAQ,WACJ0B,IACApC,MACD0B,MAGXU,KACD,CAACV,EAAmBS,IACjBE,EAAeC,aAAOrB,MACtBG,EAAaU,IAAMV,kBACzBmB,iBAAU,WACNF,EAAaG,QAAUL,KAE3BM,wBAAc,kBACNd,GACAd,IAEGQ,WAEXqB,0BAAgB,WACZZ,IAAMV,eACP,CAACU,EAAKV,IACTsB,0BAAgB,WACPf,EAIDI,+BACOb,cACHE,WAAYP,KALhBmB,EAAI,KAQT,CAACL,EAAaK,EAAKD,EAAUlB,IACzB,CACHY,kBAAAA,EACAN,WAAYW,IAAMX,WAClBvB,SAAUkC,IAAMlC,kCCpFX+C,UAAY,gBAAGC,IAAAA,SAAaC,qEAE9BD,EADapB,aAAaqB,KCC9B,SAASC,cAAcC,OACpBC,EAAgB,SAACC,OACbC,EAAY1B,aAAayB,UACxBE,iBAAMC,cAAcL,+BAAoBE,EAAUC,YAE7DG,sCAAqBL,EAAeD,GAC7BC"}
1
+ {"version":3,"file":"react-nprogress.cjs.production.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","start","requestAnimationFrame","frame","time","noop","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","withNProgress","BaseComponent","WithNProgress","props","hookProps","React","createElement","hoistNonReactStatics"],"mappings":"s9BAAaA,MAAQ,SAACC,EAAKC,EAAOC,UAE9BF,GADAA,EAAMA,GAAOE,EAAQF,EAAME,IACdD,EAAQD,EAAMC,GCDlBE,UAAY,SAACC,OAClBC,EAAS,SACTD,GAAY,GAAKA,EAAW,GAC5BC,EAAS,GAEJD,GAAY,IAAOA,EAAW,GACnCC,EAAS,IAEJD,GAAY,IAAOA,EAAW,GACnCC,EAAS,IAEJD,GAAY,IAAOA,EAAW,MACnCC,EAAS,MAENN,MAAMK,EAAWC,EAAQ,EAAG,OCf1BC,YAAc,eACnBC,GAAY,EACZC,EAAU,GACRC,EAAO,SAAPA,IACFF,GAAY,MACNG,EAAKF,EAAQG,WACfD,SACOA,EAAGD,GAEdF,GAAY,SAYT,CACHK,MAXU,WACVL,GAAY,EACZC,EAAU,IAUVK,MARU,SAACH,GACXF,EAAQM,KAAKJ,GACRH,GAAgC,IAAnBC,EAAQO,QACtBN,OClBCO,cAAgB,eACrBC,QAqBG,CACHC,OArBW,WACXC,QAAQC,IAAI,UACRH,GACAI,OAAOC,qBAAqBL,IAmBhCM,QAhBY,SAACC,EAAUC,OAEnBC,EAUJT,EAASI,OAAOM,uBATF,SAARC,EAASC,GAECA,GADZH,EAAQA,GAASG,GAEDJ,EACZD,IAGJP,EAASI,OAAOM,sBAAsBC,SCT5CE,KAAO,aAUAC,aAAe,6BAA8F,SAA3FC,kBAAAA,aAAoB,UAAKC,kBAAAA,aAAoB,UAAKC,YAAAA,oBAAqBC,QAAAA,aAAU,MACtGC,EAAe,CACjBC,YAAY,EACZjC,SAAU,EACVkC,WAAYR,QAEQS,wBAAeH,GAAhCI,OAAKC,SACyBnC,cAAtBoC,IAAP9B,MAAmBC,IAAAA,QACuBG,gBAAlC2B,IAARzB,OAA8BK,IAAAA,QAChCqB,EAAU,WACZD,IACAD,KAEEG,EAAMC,mBAAY,SAACC,MAEX,KADVA,EAAIhD,MAAMgD,EAAGZ,EAAS,WAElBS,IACA/B,GAAM,SAACJ,GACHgC,EAAS,CACLrC,SAAU2C,EACVT,WAAY,kBAAMf,EAAQd,EAAMuB,cAGxCnB,GAAM,WACF4B,EAAS,CAAEJ,YAAY,EAAMC,WAAYM,OAIjD/B,GAAM,SAACJ,GACHgC,EAAS,CACLJ,YAAY,EACZjC,SAAU2C,EACVT,WAAY,kBAAMf,EAAQd,EAAMuB,WAGzC,CAACA,EAAmBG,EAASM,IAC1BO,EAAUF,mBAAY,WACxBD,EAAI1C,UAAUqC,IAAMpC,aACrB,CAACoC,EAAKK,IACHnB,EAAQoB,mBAAY,YACT,SAAPG,IACFD,IACAnC,GAAM,SAACJ,GACHc,GAAQ,WACJ0B,IACAxC,MACDwB,MAGXgB,KACD,CAAChB,EAAmBe,IACjBE,EAAeC,aAAOrB,MACtBQ,EAAaE,IAAMF,kBACzBc,iBAAU,WACNF,EAAaG,QAAUL,KAE3BM,wBAAc,kBACNpB,GACAR,IAEGkB,KAEXW,0BAAgB,WACZf,IAAMF,eACP,CAACE,EAAKF,IACTiB,0BAAgB,WACPrB,EAIDO,+BACOL,GACHE,WAAYZ,KALhBmB,EAAI,KAQT,CAACX,EAAaW,EAAKJ,EAAUf,IACzB,CACHM,kBAAAA,EACAK,WAAYG,IAAMH,WAClBjC,SAAUoC,IAAMpC,kCCjGXoD,UAAY,gBAAGC,IAAAA,SAAaC,qEAE9BD,EADa1B,aAAa2B,KCC9B,SAASC,cAAcC,OACpBC,EAAgB,SAACC,OACbC,EAAYhC,aAAa+B,UACxBE,iBAAMC,cAAcL,+BAAoBE,EAAUC,YAE7DG,sCAAqBL,EAAeD,GAC7BC"}
@@ -27,73 +27,90 @@ var increment = function increment(progress) {
27
27
  return clamp(progress + amount, 0, 0.994);
28
28
  };
29
29
 
30
- var isRunning = false;
31
- var pending = [];
30
+ var createQueue = function createQueue() {
31
+ var isRunning = false;
32
+ var pending = [];
32
33
 
33
- var next = function next() {
34
- isRunning = true;
35
- var cb = pending.shift();
34
+ var next = function next() {
35
+ isRunning = true;
36
+ var cb = pending.shift();
36
37
 
37
- if (cb) {
38
- return cb(next);
39
- }
38
+ if (cb) {
39
+ return cb(next);
40
+ }
40
41
 
41
- isRunning = false;
42
- };
42
+ isRunning = false;
43
+ };
43
44
 
44
- var clear = function clear() {
45
- isRunning = false;
46
- pending = [];
47
- };
48
- var queue = function queue(cb) {
49
- pending.push(cb);
45
+ var clear = function clear() {
46
+ isRunning = false;
47
+ pending = [];
48
+ };
50
49
 
51
- if (!isRunning && pending.length === 1) {
52
- next();
53
- }
54
- };
50
+ var queue = function queue(cb) {
51
+ pending.push(cb);
55
52
 
56
- var handle;
57
- var cancel = function cancel() {
58
- if (handle) {
59
- window.cancelAnimationFrame(handle);
60
- }
53
+ if (!isRunning && pending.length === 1) {
54
+ next();
55
+ }
56
+ };
57
+
58
+ return {
59
+ clear: clear,
60
+ queue: queue
61
+ };
61
62
  };
62
- var timeout = function timeout(callback, delay) {
63
- var deltaTime;
64
- var start;
65
63
 
66
- var frame = function frame(time) {
67
- start = start || time;
68
- deltaTime = time - start;
64
+ var createTimeout = function createTimeout() {
65
+ var handle;
69
66
 
70
- if (deltaTime > delay) {
71
- callback();
72
- return;
67
+ var cancel = function cancel() {
68
+ console.log('cancel');
69
+
70
+ if (handle) {
71
+ window.cancelAnimationFrame(handle);
73
72
  }
73
+ };
74
+
75
+ var timeout = function timeout(callback, delay) {
76
+ var deltaTime;
77
+ var start;
78
+
79
+ var frame = function frame(time) {
80
+ start = start || time;
81
+ deltaTime = time - start;
82
+
83
+ if (deltaTime > delay) {
84
+ callback();
85
+ return;
86
+ }
87
+
88
+ handle = window.requestAnimationFrame(frame);
89
+ };
74
90
 
75
91
  handle = window.requestAnimationFrame(frame);
76
92
  };
77
93
 
78
- handle = window.requestAnimationFrame(frame);
94
+ return {
95
+ cancel: cancel,
96
+ timeout: timeout
97
+ };
79
98
  };
80
99
 
81
100
  /* istanbul ignore next */
82
101
 
83
102
  var noop = function noop() {
84
103
  return undefined;
85
- };
104
+ }; // const initialState: State = {
105
+ // isFinished: true,
106
+ // progress: 0,
107
+ // sideEffect: noop,
108
+ // }
109
+ // const cleanup = () => {
110
+ // cancelCurrentTimeout()
111
+ // clearQueue()
112
+ // }
86
113
 
87
- var initialState = {
88
- isFinished: true,
89
- progress: 0,
90
- sideEffect: noop
91
- };
92
-
93
- var cleanup = function cleanup() {
94
- cancel();
95
- clear();
96
- };
97
114
 
98
115
  var useNProgress = function useNProgress(_temp) {
99
116
  var _ref = _temp === void 0 ? {} : _temp,
@@ -106,10 +123,29 @@ var useNProgress = function useNProgress(_temp) {
106
123
  _ref$minimum = _ref.minimum,
107
124
  minimum = _ref$minimum === void 0 ? 0.08 : _ref$minimum;
108
125
 
126
+ var initialState = {
127
+ isFinished: true,
128
+ progress: 0,
129
+ sideEffect: noop
130
+ };
131
+
109
132
  var _useGetSetState = useGetSetState(initialState),
110
133
  get = _useGetSetState[0],
111
134
  setState = _useGetSetState[1];
112
135
 
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
+ };
148
+
113
149
  var set = useCallback(function (n) {
114
150
  n = clamp(n, minimum, 1);
115
151
 
@@ -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","let isRunning = false;\nlet pending = [];\nconst next = () => {\n isRunning = true;\n const cb = pending.shift();\n if (cb) {\n return cb(next);\n }\n isRunning = false;\n};\nexport const clear = () => {\n isRunning = false;\n pending = [];\n};\nexport const queue = (cb) => {\n pending.push(cb);\n if (!isRunning && pending.length === 1) {\n next();\n }\n};\n","let handle;\nexport const cancel = () => {\n if (handle) {\n window.cancelAnimationFrame(handle);\n }\n};\nexport 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","import { useCallback, useEffect, useRef } from 'react';\nimport { useEffectOnce, useGetSetState, useUpdateEffect } from 'react-use';\nimport { clamp } from './clamp';\nimport { increment } from './increment';\nimport { clear as clearQueue, queue } from './queue';\nimport { cancel as cancelCurrentTimeout, timeout } from './timeout';\n/* istanbul ignore next */\nconst noop = () => undefined;\nconst initialState = {\n isFinished: true,\n progress: 0,\n sideEffect: noop,\n};\nconst cleanup = () => {\n cancelCurrentTimeout();\n clearQueue();\n};\nexport const useNProgress = ({ animationDuration = 200, incrementDuration = 800, isAnimating = false, minimum = 0.08, } = {}) => {\n const [get, setState] = useGetSetState(initialState);\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","isRunning","pending","next","cb","shift","clear","queue","push","length","handle","cancel","window","cancelAnimationFrame","timeout","callback","delay","deltaTime","start","frame","time","requestAnimationFrame","noop","undefined","initialState","isFinished","sideEffect","cleanup","cancelCurrentTimeout","clearQueue","useNProgress","animationDuration","incrementDuration","isAnimating","minimum","useGetSetState","get","setState","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/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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"}