react-loosely-lazy 1.0.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/dist/cjs/index.js +21 -1
  2. package/dist/cjs/lazy/components/client.js +74 -50
  3. package/dist/cjs/lazy/components/types.js +2 -0
  4. package/dist/cjs/lazy/components/utils.js +32 -0
  5. package/dist/cjs/lazy/deferred.js +12 -8
  6. package/dist/cjs/lazy/index.js +16 -12
  7. package/dist/cjs/lazy/placeholders/render.js +5 -3
  8. package/dist/cjs/lazy/preload/index.js +6 -1
  9. package/dist/cjs/lazy/preload/utils.js +26 -1
  10. package/dist/cjs/lazy-wait/context.js +5 -7
  11. package/dist/cjs/lazy-wait/index.js +7 -7
  12. package/dist/cjs/lazy-wait/main.js +11 -14
  13. package/dist/cjs/phase/context.js +2 -2
  14. package/dist/cjs/phase/index.js +1 -9
  15. package/dist/cjs/profiler/index.js +16 -0
  16. package/dist/cjs/suspense/context.js +2 -3
  17. package/dist/cjs/utils/index.js +2 -10
  18. package/dist/esm/index.js +3 -2
  19. package/dist/esm/lazy/components/client.js +72 -51
  20. package/dist/esm/lazy/components/types.js +2 -0
  21. package/dist/esm/lazy/components/utils.js +24 -0
  22. package/dist/esm/lazy/deferred.js +24 -10
  23. package/dist/esm/lazy/index.js +19 -15
  24. package/dist/esm/lazy/placeholders/render.js +5 -3
  25. package/dist/esm/lazy/preload/index.js +5 -1
  26. package/dist/esm/lazy/preload/utils.js +25 -1
  27. package/dist/esm/lazy-wait/context.js +3 -5
  28. package/dist/esm/lazy-wait/index.js +2 -2
  29. package/dist/esm/lazy-wait/main.js +12 -15
  30. package/dist/esm/phase/context.js +2 -2
  31. package/dist/esm/phase/index.js +1 -2
  32. package/dist/esm/profiler/index.js +6 -0
  33. package/dist/esm/suspense/context.js +2 -3
  34. package/dist/esm/utils/index.js +2 -10
  35. package/dist/types/index.d.ts +3 -1
  36. package/dist/types/index.d.ts.map +1 -1
  37. package/dist/types/lazy/components/client.d.ts +2 -3
  38. package/dist/types/lazy/components/client.d.ts.map +1 -1
  39. package/dist/types/lazy/components/types.d.ts +7 -0
  40. package/dist/types/lazy/components/types.d.ts.map +1 -0
  41. package/dist/types/lazy/components/utils.d.ts +10 -0
  42. package/dist/types/lazy/components/utils.d.ts.map +1 -0
  43. package/dist/types/lazy/deferred.d.ts +6 -2
  44. package/dist/types/lazy/deferred.d.ts.map +1 -1
  45. package/dist/types/lazy/index.d.ts.map +1 -1
  46. package/dist/types/lazy/placeholders/render.d.ts.map +1 -1
  47. package/dist/types/lazy/preload/index.d.ts.map +1 -1
  48. package/dist/types/lazy/preload/utils.d.ts.map +1 -1
  49. package/dist/types/lazy/types.d.ts +4 -0
  50. package/dist/types/lazy/types.d.ts.map +1 -1
  51. package/dist/types/lazy-wait/context.d.ts +3 -8
  52. package/dist/types/lazy-wait/context.d.ts.map +1 -1
  53. package/dist/types/lazy-wait/index.d.ts +1 -1
  54. package/dist/types/lazy-wait/index.d.ts.map +1 -1
  55. package/dist/types/lazy-wait/main.d.ts.map +1 -1
  56. package/dist/types/phase/context.d.ts +5 -5
  57. package/dist/types/phase/context.d.ts.map +1 -1
  58. package/dist/types/phase/index.d.ts +0 -1
  59. package/dist/types/phase/index.d.ts.map +1 -1
  60. package/dist/types/profiler/index.d.ts +17 -0
  61. package/dist/types/profiler/index.d.ts.map +1 -0
  62. package/dist/types/suspense/context.d.ts +1 -1
  63. package/dist/types/suspense/context.d.ts.map +1 -1
  64. package/dist/types/suspense/types.d.ts +2 -1
  65. package/dist/types/suspense/types.d.ts.map +1 -1
  66. package/dist/types/utils/index.d.ts.map +1 -1
  67. package/package.json +2 -2
  68. package/dist/cjs/lazy-wait/utils.js +0 -25
  69. package/dist/cjs/phase/controller.js +0 -28
  70. package/dist/esm/lazy-wait/utils.js +0 -14
  71. package/dist/esm/phase/controller.js +0 -17
  72. package/dist/types/lazy-wait/utils.d.ts +0 -2
  73. package/dist/types/lazy-wait/utils.d.ts.map +0 -1
  74. package/dist/types/phase/controller.d.ts +0 -2
  75. package/dist/types/phase/controller.d.ts.map +0 -1
@@ -3,20 +3,20 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- Object.defineProperty(exports, "LazyWait", {
6
+ Object.defineProperty(exports, "WaitContext", {
7
7
  enumerable: true,
8
8
  get: function () {
9
- return _main.LazyWait;
9
+ return _context.WaitContext;
10
10
  }
11
11
  });
12
- Object.defineProperty(exports, "useUntil", {
12
+ Object.defineProperty(exports, "LazyWait", {
13
13
  enumerable: true,
14
14
  get: function () {
15
- return _utils.useUntil;
15
+ return _main.LazyWait;
16
16
  }
17
17
  });
18
18
 
19
- var _main = require("./main");
19
+ var _context = require("./context");
20
20
 
21
- var _utils = require("./utils");
22
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9sYXp5LXdhaXQvaW5kZXgudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUdBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgTGF6eVdhaXQgfSBmcm9tICcuL21haW4nO1xuZXhwb3J0IHR5cGUgeyBMYXp5V2FpdFByb3BzIH0gZnJvbSAnLi9tYWluJztcblxuZXhwb3J0IHsgdXNlVW50aWwgfSBmcm9tICcuL3V0aWxzJztcbiJdfQ==
21
+ var _main = require("./main");
22
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9sYXp5LXdhaXQvaW5kZXgudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgV2FpdENvbnRleHQgfSBmcm9tICcuL2NvbnRleHQnO1xuZXhwb3J0IHsgTGF6eVdhaXQgfSBmcm9tICcuL21haW4nO1xuZXhwb3J0IHR5cGUgeyBMYXp5V2FpdFByb3BzIH0gZnJvbSAnLi9tYWluJztcbiJdfQ==
@@ -17,8 +17,8 @@ const LazyWait = ({
17
17
  until,
18
18
  children
19
19
  }) => {
20
- const closestUntil = (0, _react.useContext)(_context.UntilContext);
21
- const value = (0, _react.useRef)(until && closestUntil.value.current);
20
+ const closestWait = (0, _react.useContext)(_context.WaitContext);
21
+ const value = (0, _react.useRef)(until && closestWait.currentValue() ? 1 : 0);
22
22
  const subscribers = (0, _react.useRef)(new Set());
23
23
  const api = (0, _react.useRef)({
24
24
  subscribe: subscriber => {
@@ -27,25 +27,22 @@ const LazyWait = ({
27
27
  subscribers.current.delete(subscriber);
28
28
  };
29
29
  },
30
- value
30
+ currentValue: () => value.current
31
31
  });
32
32
  (0, _react.useEffect)(() => {
33
33
  // Notify subscribers when until prop or closest until value changes
34
- const notify = nextUntil => {
35
- value.current = nextUntil && until;
36
-
37
- for (const subscriber of subscribers.current) {
38
- subscriber(value.current);
39
- }
34
+ const notify = () => {
35
+ value.current = closestWait.currentValue() && until ? 1 : 0;
36
+ subscribers.current.forEach(subscriber => subscriber());
40
37
  };
41
38
 
42
- notify(closestUntil.value.current);
43
- return closestUntil.subscribe(notify);
44
- }, [closestUntil, until]);
45
- return /*#__PURE__*/_react.default.createElement(_context.UntilContext.Provider, {
39
+ notify();
40
+ return closestWait.subscribe(notify);
41
+ }, [closestWait, until]);
42
+ return /*#__PURE__*/_react.default.createElement(_context.WaitContext.Provider, {
46
43
  value: api.current
47
44
  }, children);
48
45
  };
49
46
 
50
47
  exports.LazyWait = LazyWait;
51
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9sYXp5LXdhaXQvbWFpbi50c3giXSwibmFtZXMiOlsiTGF6eVdhaXQiLCJ1bnRpbCIsImNoaWxkcmVuIiwiY2xvc2VzdFVudGlsIiwiVW50aWxDb250ZXh0IiwidmFsdWUiLCJjdXJyZW50Iiwic3Vic2NyaWJlcnMiLCJTZXQiLCJhcGkiLCJzdWJzY3JpYmUiLCJzdWJzY3JpYmVyIiwiYWRkIiwiZGVsZXRlIiwibm90aWZ5IiwibmV4dFVudGlsIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7O0FBR0E7Ozs7OztBQVFPLE1BQU1BLFFBQVEsR0FBRyxDQUFDO0FBQUVDLEVBQUFBLEtBQUY7QUFBU0MsRUFBQUE7QUFBVCxDQUFELEtBQXdDO0FBQzlELFFBQU1DLFlBQVksR0FBRyx1QkFBV0MscUJBQVgsQ0FBckI7QUFDQSxRQUFNQyxLQUFLLEdBQUcsbUJBQU9KLEtBQUssSUFBSUUsWUFBWSxDQUFDRSxLQUFiLENBQW1CQyxPQUFuQyxDQUFkO0FBQ0EsUUFBTUMsV0FBVyxHQUFHLG1CQUE2QixJQUFJQyxHQUFKLEVBQTdCLENBQXBCO0FBQ0EsUUFBTUMsR0FBRyxHQUFHLG1CQUFPO0FBQ2pCQyxJQUFBQSxTQUFTLEVBQUdDLFVBQUQsSUFBaUM7QUFDMUNKLE1BQUFBLFdBQVcsQ0FBQ0QsT0FBWixDQUFvQk0sR0FBcEIsQ0FBd0JELFVBQXhCO0FBRUEsYUFBTyxNQUFNO0FBQ1hKLFFBQUFBLFdBQVcsQ0FBQ0QsT0FBWixDQUFvQk8sTUFBcEIsQ0FBMkJGLFVBQTNCO0FBQ0QsT0FGRDtBQUdELEtBUGdCO0FBUWpCTixJQUFBQTtBQVJpQixHQUFQLENBQVo7QUFXQSx3QkFBVSxNQUFNO0FBQ2Q7QUFDQSxVQUFNUyxNQUFNLEdBQUlDLFNBQUQsSUFBd0I7QUFDckNWLE1BQUFBLEtBQUssQ0FBQ0MsT0FBTixHQUFnQlMsU0FBUyxJQUFJZCxLQUE3Qjs7QUFDQSxXQUFLLE1BQU1VLFVBQVgsSUFBeUJKLFdBQVcsQ0FBQ0QsT0FBckMsRUFBOEM7QUFDNUNLLFFBQUFBLFVBQVUsQ0FBQ04sS0FBSyxDQUFDQyxPQUFQLENBQVY7QUFDRDtBQUNGLEtBTEQ7O0FBT0FRLElBQUFBLE1BQU0sQ0FBQ1gsWUFBWSxDQUFDRSxLQUFiLENBQW1CQyxPQUFwQixDQUFOO0FBRUEsV0FBT0gsWUFBWSxDQUFDTyxTQUFiLENBQXVCSSxNQUF2QixDQUFQO0FBQ0QsR0FaRCxFQVlHLENBQUNYLFlBQUQsRUFBZUYsS0FBZixDQVpIO0FBY0Esc0JBQ0UsNkJBQUMscUJBQUQsQ0FBYyxRQUFkO0FBQXVCLElBQUEsS0FBSyxFQUFFUSxHQUFHLENBQUNIO0FBQWxDLEtBQ0dKLFFBREgsQ0FERjtBQUtELENBbENNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZUNvbnRleHQsIHVzZUVmZmVjdCwgdXNlUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHR5cGUgeyBSZWFjdE5vZGUgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7IFVudGlsQ29udGV4dCB9IGZyb20gJy4vY29udGV4dCc7XG5pbXBvcnQgdHlwZSB7IFVudGlsU3Vic2NyaWJlciB9IGZyb20gJy4vY29udGV4dCc7XG5cbmV4cG9ydCB0eXBlIExhenlXYWl0UHJvcHMgPSB7XG4gIHVudGlsOiBib29sZWFuO1xuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xufTtcblxuZXhwb3J0IGNvbnN0IExhenlXYWl0ID0gKHsgdW50aWwsIGNoaWxkcmVuIH06IExhenlXYWl0UHJvcHMpID0+IHtcbiAgY29uc3QgY2xvc2VzdFVudGlsID0gdXNlQ29udGV4dChVbnRpbENvbnRleHQpO1xuICBjb25zdCB2YWx1ZSA9IHVzZVJlZih1bnRpbCAmJiBjbG9zZXN0VW50aWwudmFsdWUuY3VycmVudCk7XG4gIGNvbnN0IHN1YnNjcmliZXJzID0gdXNlUmVmPFNldDxVbnRpbFN1YnNjcmliZXI+PihuZXcgU2V0KCkpO1xuICBjb25zdCBhcGkgPSB1c2VSZWYoe1xuICAgIHN1YnNjcmliZTogKHN1YnNjcmliZXI6IFVudGlsU3Vic2NyaWJlcikgPT4ge1xuICAgICAgc3Vic2NyaWJlcnMuY3VycmVudC5hZGQoc3Vic2NyaWJlcik7XG5cbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIHN1YnNjcmliZXJzLmN1cnJlbnQuZGVsZXRlKHN1YnNjcmliZXIpO1xuICAgICAgfTtcbiAgICB9LFxuICAgIHZhbHVlLFxuICB9KTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIC8vIE5vdGlmeSBzdWJzY3JpYmVycyB3aGVuIHVudGlsIHByb3Agb3IgY2xvc2VzdCB1bnRpbCB2YWx1ZSBjaGFuZ2VzXG4gICAgY29uc3Qgbm90aWZ5ID0gKG5leHRVbnRpbDogYm9vbGVhbikgPT4ge1xuICAgICAgdmFsdWUuY3VycmVudCA9IG5leHRVbnRpbCAmJiB1bnRpbDtcbiAgICAgIGZvciAoY29uc3Qgc3Vic2NyaWJlciBvZiBzdWJzY3JpYmVycy5jdXJyZW50KSB7XG4gICAgICAgIHN1YnNjcmliZXIodmFsdWUuY3VycmVudCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIG5vdGlmeShjbG9zZXN0VW50aWwudmFsdWUuY3VycmVudCk7XG5cbiAgICByZXR1cm4gY2xvc2VzdFVudGlsLnN1YnNjcmliZShub3RpZnkpO1xuICB9LCBbY2xvc2VzdFVudGlsLCB1bnRpbF0pO1xuXG4gIHJldHVybiAoXG4gICAgPFVudGlsQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17YXBpLmN1cnJlbnR9PlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvVW50aWxDb250ZXh0LlByb3ZpZGVyPlxuICApO1xufTtcbiJdfQ==
48
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9sYXp5LXdhaXQvbWFpbi50c3giXSwibmFtZXMiOlsiTGF6eVdhaXQiLCJ1bnRpbCIsImNoaWxkcmVuIiwiY2xvc2VzdFdhaXQiLCJXYWl0Q29udGV4dCIsInZhbHVlIiwiY3VycmVudFZhbHVlIiwic3Vic2NyaWJlcnMiLCJTZXQiLCJhcGkiLCJzdWJzY3JpYmUiLCJzdWJzY3JpYmVyIiwiY3VycmVudCIsImFkZCIsImRlbGV0ZSIsIm5vdGlmeSIsImZvckVhY2giXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7QUFLQTs7Ozs7O0FBT08sTUFBTUEsUUFBUSxHQUFHLENBQUM7QUFBRUMsRUFBQUEsS0FBRjtBQUFTQyxFQUFBQTtBQUFULENBQUQsS0FBd0M7QUFDOUQsUUFBTUMsV0FBVyxHQUFHLHVCQUFXQyxvQkFBWCxDQUFwQjtBQUNBLFFBQU1DLEtBQUssR0FBRyxtQkFBT0osS0FBSyxJQUFJRSxXQUFXLENBQUNHLFlBQVosRUFBVCxHQUFzQyxDQUF0QyxHQUEwQyxDQUFqRCxDQUFkO0FBQ0EsUUFBTUMsV0FBVyxHQUFHLG1CQUF3QixJQUFJQyxHQUFKLEVBQXhCLENBQXBCO0FBQ0EsUUFBTUMsR0FBRyxHQUFHLG1CQUFpQztBQUMzQ0MsSUFBQUEsU0FBUyxFQUFFQyxVQUFVLElBQUk7QUFDdkJKLE1BQUFBLFdBQVcsQ0FBQ0ssT0FBWixDQUFvQkMsR0FBcEIsQ0FBd0JGLFVBQXhCO0FBRUEsYUFBTyxNQUFNO0FBQ1hKLFFBQUFBLFdBQVcsQ0FBQ0ssT0FBWixDQUFvQkUsTUFBcEIsQ0FBMkJILFVBQTNCO0FBQ0QsT0FGRDtBQUdELEtBUDBDO0FBUTNDTCxJQUFBQSxZQUFZLEVBQUUsTUFBTUQsS0FBSyxDQUFDTztBQVJpQixHQUFqQyxDQUFaO0FBV0Esd0JBQVUsTUFBTTtBQUNkO0FBQ0EsVUFBTUcsTUFBTSxHQUFHLE1BQU07QUFDbkJWLE1BQUFBLEtBQUssQ0FBQ08sT0FBTixHQUFnQlQsV0FBVyxDQUFDRyxZQUFaLE1BQThCTCxLQUE5QixHQUFzQyxDQUF0QyxHQUEwQyxDQUExRDtBQUNBTSxNQUFBQSxXQUFXLENBQUNLLE9BQVosQ0FBb0JJLE9BQXBCLENBQTRCTCxVQUFVLElBQUlBLFVBQVUsRUFBcEQ7QUFDRCxLQUhEOztBQUtBSSxJQUFBQSxNQUFNO0FBRU4sV0FBT1osV0FBVyxDQUFDTyxTQUFaLENBQXNCSyxNQUF0QixDQUFQO0FBQ0QsR0FWRCxFQVVHLENBQUNaLFdBQUQsRUFBY0YsS0FBZCxDQVZIO0FBWUEsc0JBQ0UsNkJBQUMsb0JBQUQsQ0FBYSxRQUFiO0FBQXNCLElBQUEsS0FBSyxFQUFFUSxHQUFHLENBQUNHO0FBQWpDLEtBQTJDVixRQUEzQyxDQURGO0FBR0QsQ0E5Qk0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlQ29udGV4dCwgdXNlRWZmZWN0LCB1c2VSZWYgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgdHlwZSB7IFJlYWN0Tm9kZSB9IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHR5cGUgeyBTdWJzY3JpcHRpb25Db250ZXh0VmFsdWUgfSBmcm9tICcuLi9sYXp5L3R5cGVzJztcblxuaW1wb3J0IHsgV2FpdENvbnRleHQgfSBmcm9tICcuL2NvbnRleHQnO1xuXG5leHBvcnQgdHlwZSBMYXp5V2FpdFByb3BzID0ge1xuICB1bnRpbDogYm9vbGVhbjtcbiAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcbn07XG5cbmV4cG9ydCBjb25zdCBMYXp5V2FpdCA9ICh7IHVudGlsLCBjaGlsZHJlbiB9OiBMYXp5V2FpdFByb3BzKSA9PiB7XG4gIGNvbnN0IGNsb3Nlc3RXYWl0ID0gdXNlQ29udGV4dChXYWl0Q29udGV4dCk7XG4gIGNvbnN0IHZhbHVlID0gdXNlUmVmKHVudGlsICYmIGNsb3Nlc3RXYWl0LmN1cnJlbnRWYWx1ZSgpID8gMSA6IDApO1xuICBjb25zdCBzdWJzY3JpYmVycyA9IHVzZVJlZjxTZXQ8KCkgPT4gdm9pZD4+KG5ldyBTZXQoKSk7XG4gIGNvbnN0IGFwaSA9IHVzZVJlZjxTdWJzY3JpcHRpb25Db250ZXh0VmFsdWU+KHtcbiAgICBzdWJzY3JpYmU6IHN1YnNjcmliZXIgPT4ge1xuICAgICAgc3Vic2NyaWJlcnMuY3VycmVudC5hZGQoc3Vic2NyaWJlcik7XG5cbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIHN1YnNjcmliZXJzLmN1cnJlbnQuZGVsZXRlKHN1YnNjcmliZXIpO1xuICAgICAgfTtcbiAgICB9LFxuICAgIGN1cnJlbnRWYWx1ZTogKCkgPT4gdmFsdWUuY3VycmVudCxcbiAgfSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAvLyBOb3RpZnkgc3Vic2NyaWJlcnMgd2hlbiB1bnRpbCBwcm9wIG9yIGNsb3Nlc3QgdW50aWwgdmFsdWUgY2hhbmdlc1xuICAgIGNvbnN0IG5vdGlmeSA9ICgpID0+IHtcbiAgICAgIHZhbHVlLmN1cnJlbnQgPSBjbG9zZXN0V2FpdC5jdXJyZW50VmFsdWUoKSAmJiB1bnRpbCA/IDEgOiAwO1xuICAgICAgc3Vic2NyaWJlcnMuY3VycmVudC5mb3JFYWNoKHN1YnNjcmliZXIgPT4gc3Vic2NyaWJlcigpKTtcbiAgICB9O1xuXG4gICAgbm90aWZ5KCk7XG5cbiAgICByZXR1cm4gY2xvc2VzdFdhaXQuc3Vic2NyaWJlKG5vdGlmeSk7XG4gIH0sIFtjbG9zZXN0V2FpdCwgdW50aWxdKTtcblxuICByZXR1cm4gKFxuICAgIDxXYWl0Q29udGV4dC5Qcm92aWRlciB2YWx1ZT17YXBpLmN1cnJlbnR9PntjaGlsZHJlbn08L1dhaXRDb250ZXh0LlByb3ZpZGVyPlxuICApO1xufTtcbiJdfQ==
@@ -24,7 +24,7 @@ const setCurrent = phase => {
24
24
  exports.setCurrent = setCurrent;
25
25
  const LazyPhaseContext = /*#__PURE__*/(0, _react.createContext)({
26
26
  subscribe: (0, _utils.createSubscribe)(_listeners.LISTENERS),
27
- currentPhase: () => CURRENT_PHASE,
27
+ currentValue: () => CURRENT_PHASE,
28
28
  api: {
29
29
  startNextPhase: () => {
30
30
  setCurrent(_constants.PHASE.AFTER_PAINT);
@@ -40,4 +40,4 @@ const useLazyPhase = () => {
40
40
  };
41
41
 
42
42
  exports.useLazyPhase = useLazyPhase;
43
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9waGFzZS9jb250ZXh0LnRzeCJdLCJuYW1lcyI6WyJDVVJSRU5UX1BIQVNFIiwiUEhBU0UiLCJQQUlOVCIsInNldEN1cnJlbnQiLCJwaGFzZSIsIkxJU1RFTkVSUyIsInNsaWNlIiwiZm9yRWFjaCIsImxpc3RlbmVyIiwiTGF6eVBoYXNlQ29udGV4dCIsInN1YnNjcmliZSIsImN1cnJlbnRQaGFzZSIsImFwaSIsInN0YXJ0TmV4dFBoYXNlIiwiQUZURVJfUEFJTlQiLCJyZXNldFBoYXNlIiwidXNlTGF6eVBoYXNlIiwidiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQUVBOztBQUVBOztBQUVBOztBQUVBLElBQUlBLGFBQWEsR0FBR0MsaUJBQU1DLEtBQTFCOztBQUVPLE1BQU1DLFVBQVUsR0FBSUMsS0FBRCxJQUFtQjtBQUMzQ0osRUFBQUEsYUFBYSxHQUFHSSxLQUFoQjs7QUFDQUMsdUJBQVVDLEtBQVYsQ0FBZ0IsQ0FBaEIsRUFBbUJDLE9BQW5CLENBQTRCQyxRQUFELElBQXdCQSxRQUFRLENBQUNKLEtBQUQsQ0FBM0Q7QUFDRCxDQUhNOzs7QUFLQSxNQUFNSyxnQkFBZ0IsZ0JBQUcsMEJBQWM7QUFDNUNDLEVBQUFBLFNBQVMsRUFBRSw0QkFBZ0JMLG9CQUFoQixDQURpQztBQUU1Q00sRUFBQUEsWUFBWSxFQUFFLE1BQU1YLGFBRndCO0FBRzVDWSxFQUFBQSxHQUFHLEVBQUU7QUFDSEMsSUFBQUEsY0FBYyxFQUFFLE1BQU07QUFDcEJWLE1BQUFBLFVBQVUsQ0FBQ0YsaUJBQU1hLFdBQVAsQ0FBVjtBQUNELEtBSEU7QUFJSEMsSUFBQUEsVUFBVSxFQUFFLE1BQU1aLFVBQVUsQ0FBQ0YsaUJBQU1DLEtBQVA7QUFKekI7QUFIdUMsQ0FBZCxDQUF6Qjs7O0FBV0EsTUFBTWMsWUFBWSxHQUFHLE1BQU07QUFDaEMsUUFBTUMsQ0FBQyxHQUFHLHVCQUFXUixnQkFBWCxDQUFWO0FBRUEsU0FBT1EsQ0FBQyxDQUFDTCxHQUFUO0FBQ0QsQ0FKTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZUNvbnRleHQsIHVzZUNvbnRleHQgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7IFBIQVNFIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcblxuaW1wb3J0IHsgTElTVEVORVJTIH0gZnJvbSAnLi9saXN0ZW5lcnMnO1xuaW1wb3J0IHR5cGUgeyBMaXN0ZW5lciB9IGZyb20gJy4vbGlzdGVuZXJzJztcbmltcG9ydCB7IGNyZWF0ZVN1YnNjcmliZSB9IGZyb20gJy4vdXRpbHMnO1xuXG5sZXQgQ1VSUkVOVF9QSEFTRSA9IFBIQVNFLlBBSU5UO1xuXG5leHBvcnQgY29uc3Qgc2V0Q3VycmVudCA9IChwaGFzZTogbnVtYmVyKSA9PiB7XG4gIENVUlJFTlRfUEhBU0UgPSBwaGFzZTtcbiAgTElTVEVORVJTLnNsaWNlKDApLmZvckVhY2goKGxpc3RlbmVyOiBMaXN0ZW5lcikgPT4gbGlzdGVuZXIocGhhc2UpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBMYXp5UGhhc2VDb250ZXh0ID0gY3JlYXRlQ29udGV4dCh7XG4gIHN1YnNjcmliZTogY3JlYXRlU3Vic2NyaWJlKExJU1RFTkVSUyksXG4gIGN1cnJlbnRQaGFzZTogKCkgPT4gQ1VSUkVOVF9QSEFTRSxcbiAgYXBpOiB7XG4gICAgc3RhcnROZXh0UGhhc2U6ICgpID0+IHtcbiAgICAgIHNldEN1cnJlbnQoUEhBU0UuQUZURVJfUEFJTlQpO1xuICAgIH0sXG4gICAgcmVzZXRQaGFzZTogKCkgPT4gc2V0Q3VycmVudChQSEFTRS5QQUlOVCksXG4gIH0sXG59KTtcblxuZXhwb3J0IGNvbnN0IHVzZUxhenlQaGFzZSA9ICgpID0+IHtcbiAgY29uc3QgdiA9IHVzZUNvbnRleHQoTGF6eVBoYXNlQ29udGV4dCk7XG5cbiAgcmV0dXJuIHYuYXBpO1xufTtcbiJdfQ==
43
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9waGFzZS9jb250ZXh0LnRzeCJdLCJuYW1lcyI6WyJDVVJSRU5UX1BIQVNFIiwiUEhBU0UiLCJQQUlOVCIsInNldEN1cnJlbnQiLCJwaGFzZSIsIkxJU1RFTkVSUyIsInNsaWNlIiwiZm9yRWFjaCIsImxpc3RlbmVyIiwiTGF6eVBoYXNlQ29udGV4dCIsInN1YnNjcmliZSIsImN1cnJlbnRWYWx1ZSIsImFwaSIsInN0YXJ0TmV4dFBoYXNlIiwiQUZURVJfUEFJTlQiLCJyZXNldFBoYXNlIiwidXNlTGF6eVBoYXNlIiwidiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQUVBOztBQUdBOztBQUVBOztBQUVBLElBQUlBLGFBQWEsR0FBR0MsaUJBQU1DLEtBQTFCOztBQUVPLE1BQU1DLFVBQVUsR0FBSUMsS0FBRCxJQUFtQjtBQUMzQ0osRUFBQUEsYUFBYSxHQUFHSSxLQUFoQjs7QUFDQUMsdUJBQVVDLEtBQVYsQ0FBZ0IsQ0FBaEIsRUFBbUJDLE9BQW5CLENBQTRCQyxRQUFELElBQXdCQSxRQUFRLENBQUNKLEtBQUQsQ0FBM0Q7QUFDRCxDQUhNOzs7QUFZQSxNQUFNSyxnQkFBZ0IsZ0JBQUcsMEJBQW1DO0FBQ2pFQyxFQUFBQSxTQUFTLEVBQUUsNEJBQWdCTCxvQkFBaEIsQ0FEc0Q7QUFFakVNLEVBQUFBLFlBQVksRUFBRSxNQUFNWCxhQUY2QztBQUdqRVksRUFBQUEsR0FBRyxFQUFFO0FBQ0hDLElBQUFBLGNBQWMsRUFBRSxNQUFNO0FBQ3BCVixNQUFBQSxVQUFVLENBQUNGLGlCQUFNYSxXQUFQLENBQVY7QUFDRCxLQUhFO0FBSUhDLElBQUFBLFVBQVUsRUFBRSxNQUFNWixVQUFVLENBQUNGLGlCQUFNQyxLQUFQO0FBSnpCO0FBSDRELENBQW5DLENBQXpCOzs7QUFXQSxNQUFNYyxZQUFZLEdBQUcsTUFBTTtBQUNoQyxRQUFNQyxDQUFDLEdBQUcsdUJBQVdSLGdCQUFYLENBQVY7QUFFQSxTQUFPUSxDQUFDLENBQUNMLEdBQVQ7QUFDRCxDQUpNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlQ29udGV4dCwgdXNlQ29udGV4dCB9IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHsgUEhBU0UgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHR5cGUgeyBTdWJzY3JpcHRpb25Db250ZXh0VmFsdWUgfSBmcm9tICcuLi9sYXp5L3R5cGVzJztcblxuaW1wb3J0IHsgTElTVEVORVJTIH0gZnJvbSAnLi9saXN0ZW5lcnMnO1xuaW1wb3J0IHR5cGUgeyBMaXN0ZW5lciB9IGZyb20gJy4vbGlzdGVuZXJzJztcbmltcG9ydCB7IGNyZWF0ZVN1YnNjcmliZSB9IGZyb20gJy4vdXRpbHMnO1xuXG5sZXQgQ1VSUkVOVF9QSEFTRSA9IFBIQVNFLlBBSU5UO1xuXG5leHBvcnQgY29uc3Qgc2V0Q3VycmVudCA9IChwaGFzZTogbnVtYmVyKSA9PiB7XG4gIENVUlJFTlRfUEhBU0UgPSBwaGFzZTtcbiAgTElTVEVORVJTLnNsaWNlKDApLmZvckVhY2goKGxpc3RlbmVyOiBMaXN0ZW5lcikgPT4gbGlzdGVuZXIocGhhc2UpKTtcbn07XG5cbmludGVyZmFjZSBMYXp5UGhhc2VDb250ZXh0QXBpIGV4dGVuZHMgU3Vic2NyaXB0aW9uQ29udGV4dFZhbHVlIHtcbiAgYXBpOiB7XG4gICAgc3RhcnROZXh0UGhhc2U6ICgpID0+IHZvaWQ7XG4gICAgcmVzZXRQaGFzZTogKCkgPT4gdm9pZDtcbiAgfTtcbn1cblxuZXhwb3J0IGNvbnN0IExhenlQaGFzZUNvbnRleHQgPSBjcmVhdGVDb250ZXh0PExhenlQaGFzZUNvbnRleHRBcGk+KHtcbiAgc3Vic2NyaWJlOiBjcmVhdGVTdWJzY3JpYmUoTElTVEVORVJTKSxcbiAgY3VycmVudFZhbHVlOiAoKSA9PiBDVVJSRU5UX1BIQVNFLFxuICBhcGk6IHtcbiAgICBzdGFydE5leHRQaGFzZTogKCkgPT4ge1xuICAgICAgc2V0Q3VycmVudChQSEFTRS5BRlRFUl9QQUlOVCk7XG4gICAgfSxcbiAgICByZXNldFBoYXNlOiAoKSA9PiBzZXRDdXJyZW50KFBIQVNFLlBBSU5UKSxcbiAgfSxcbn0pO1xuXG5leHBvcnQgY29uc3QgdXNlTGF6eVBoYXNlID0gKCkgPT4ge1xuICBjb25zdCB2ID0gdXNlQ29udGV4dChMYXp5UGhhc2VDb250ZXh0KTtcblxuICByZXR1cm4gdi5hcGk7XG59O1xuIl19
@@ -21,12 +21,6 @@ Object.defineProperty(exports, "useLazyPhase", {
21
21
  return _context.useLazyPhase;
22
22
  }
23
23
  });
24
- Object.defineProperty(exports, "usePhaseSubscription", {
25
- enumerable: true,
26
- get: function () {
27
- return _controller.usePhaseSubscription;
28
- }
29
- });
30
24
  Object.defineProperty(exports, "LISTENERS", {
31
25
  enumerable: true,
32
26
  get: function () {
@@ -42,9 +36,7 @@ Object.defineProperty(exports, "createSubscribe", {
42
36
 
43
37
  var _context = require("./context");
44
38
 
45
- var _controller = require("./controller");
46
-
47
39
  var _listeners = require("./listeners");
48
40
 
49
41
  var _utils = require("./utils");
50
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9waGFzZS9pbmRleC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBRUE7O0FBRUE7O0FBR0EiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBMYXp5UGhhc2VDb250ZXh0LCBzZXRDdXJyZW50LCB1c2VMYXp5UGhhc2UgfSBmcm9tICcuL2NvbnRleHQnO1xuXG5leHBvcnQgeyB1c2VQaGFzZVN1YnNjcmlwdGlvbiB9IGZyb20gJy4vY29udHJvbGxlcic7XG5cbmV4cG9ydCB7IExJU1RFTkVSUyB9IGZyb20gJy4vbGlzdGVuZXJzJztcbmV4cG9ydCB0eXBlIHsgTGlzdGVuZXIgfSBmcm9tICcuL2xpc3RlbmVycyc7XG5cbmV4cG9ydCB7IGNyZWF0ZVN1YnNjcmliZSB9IGZyb20gJy4vdXRpbHMnO1xuIl19
42
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9waGFzZS9pbmRleC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBRUE7O0FBR0EiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBMYXp5UGhhc2VDb250ZXh0LCBzZXRDdXJyZW50LCB1c2VMYXp5UGhhc2UgfSBmcm9tICcuL2NvbnRleHQnO1xuXG5leHBvcnQgeyBMSVNURU5FUlMgfSBmcm9tICcuL2xpc3RlbmVycyc7XG5leHBvcnQgdHlwZSB7IExpc3RlbmVyIH0gZnJvbSAnLi9saXN0ZW5lcnMnO1xuXG5leHBvcnQgeyBjcmVhdGVTdWJzY3JpYmUgfSBmcm9tICcuL3V0aWxzJztcbiJdfQ==
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ProfilerContext = exports.GlobalReactLooselyLazyProfiler = void 0;
7
+
8
+ var _react = require("react");
9
+
10
+ const GlobalReactLooselyLazyProfiler = {
11
+ current: null
12
+ };
13
+ exports.GlobalReactLooselyLazyProfiler = GlobalReactLooselyLazyProfiler;
14
+ const ProfilerContext = /*#__PURE__*/(0, _react.createContext)(GlobalReactLooselyLazyProfiler);
15
+ exports.ProfilerContext = ProfilerContext;
16
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wcm9maWxlci9pbmRleC50cyJdLCJuYW1lcyI6WyJHbG9iYWxSZWFjdExvb3NlbHlMYXp5UHJvZmlsZXIiLCJjdXJyZW50IiwiUHJvZmlsZXJDb250ZXh0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7O0FBaUJPLE1BQU1BLDhCQUFtRCxHQUFHO0FBQ2pFQyxFQUFBQSxPQUFPLEVBQUU7QUFEd0QsQ0FBNUQ7O0FBSUEsTUFBTUMsZUFBZSxnQkFBRywwQkFDN0JGLDhCQUQ2QixDQUF4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZUNvbnRleHQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBQcmVsb2FkUHJpb3JpdHkgfSBmcm9tICcuLi9sYXp5L3R5cGVzJztcblxuZXhwb3J0IHR5cGUgRXZlbnRJbmZvID0ge1xuICBpZGVudGlmaWVyOiBzdHJpbmc7XG59O1xuXG50eXBlIFByb2ZpbGVyID0ge1xuICBvblByZWxvYWQobW9kdWxlSWQ6IHN0cmluZywgcHJpb3JpdHk/OiBQcmVsb2FkUHJpb3JpdHkpOiB2b2lkO1xuICBvbkxvYWRTdGFydChpbmZvOiBFdmVudEluZm8pOiB2b2lkO1xuICBvbkxvYWRDb21wbGV0ZShpbmZvOiBFdmVudEluZm8pOiB2b2lkO1xufTtcblxuZXhwb3J0IHR5cGUgUHJvZmlsZXJDb250ZXh0VHlwZSA9IHtcbiAgY3VycmVudDogUHJvZmlsZXIgfCBudWxsO1xufTtcblxuZXhwb3J0IGNvbnN0IEdsb2JhbFJlYWN0TG9vc2VseUxhenlQcm9maWxlcjogUHJvZmlsZXJDb250ZXh0VHlwZSA9IHtcbiAgY3VycmVudDogbnVsbCxcbn07XG5cbmV4cG9ydCBjb25zdCBQcm9maWxlckNvbnRleHQgPSBjcmVhdGVDb250ZXh0PFByb2ZpbGVyQ29udGV4dFR5cGU+KFxuICBHbG9iYWxSZWFjdExvb3NlbHlMYXp5UHJvZmlsZXJcbik7XG4iXX0=
@@ -13,10 +13,9 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
13
13
 
14
14
  const LazySuspenseContext = /*#__PURE__*/(0, _react.createContext)({
15
15
  fallback: /*#__PURE__*/_react.default.createElement(_react.Fragment, null),
16
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
17
- setFallback: fallback => {
16
+ setFallback: () => {
18
17
  console.warn('Missing <LooselySuspense /> boundary');
19
18
  }
20
19
  });
21
20
  exports.LazySuspenseContext = LazySuspenseContext;
22
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zdXNwZW5zZS9jb250ZXh0LnRzeCJdLCJuYW1lcyI6WyJMYXp5U3VzcGVuc2VDb250ZXh0IiwiZmFsbGJhY2siLCJzZXRGYWxsYmFjayIsImNvbnNvbGUiLCJ3YXJuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7Ozs7OztBQUdPLE1BQU1BLG1CQUFtQixnQkFBRywwQkFBdUM7QUFDeEVDLEVBQUFBLFFBQVEsZUFBRSw2QkFBQyxlQUFELE9BRDhEO0FBRXhFO0FBQ0FDLEVBQUFBLFdBQVcsRUFBR0QsUUFBRCxJQUF3QjtBQUNuQ0UsSUFBQUEsT0FBTyxDQUFDQyxJQUFSLENBQWEsc0NBQWI7QUFDRDtBQUx1RSxDQUF2QyxDQUE1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBGcmFnbWVudCwgY3JlYXRlQ29udGV4dCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEZhbGxiYWNrLCBMYXp5U3VzcGVuc2VDb250ZXh0VHlwZSB9IGZyb20gJy4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgTGF6eVN1c3BlbnNlQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQ8TGF6eVN1c3BlbnNlQ29udGV4dFR5cGU+KHtcbiAgZmFsbGJhY2s6IDxGcmFnbWVudCAvPixcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICBzZXRGYWxsYmFjazogKGZhbGxiYWNrOiBGYWxsYmFjaykgPT4ge1xuICAgIGNvbnNvbGUud2FybignTWlzc2luZyA8TG9vc2VseVN1c3BlbnNlIC8+IGJvdW5kYXJ5Jyk7XG4gIH0sXG59KTtcbiJdfQ==
21
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zdXNwZW5zZS9jb250ZXh0LnRzeCJdLCJuYW1lcyI6WyJMYXp5U3VzcGVuc2VDb250ZXh0IiwiZmFsbGJhY2siLCJzZXRGYWxsYmFjayIsImNvbnNvbGUiLCJ3YXJuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7Ozs7OztBQUdPLE1BQU1BLG1CQUFtQixnQkFBRywwQkFBdUM7QUFDeEVDLEVBQUFBLFFBQVEsZUFBRSw2QkFBQyxlQUFELE9BRDhEO0FBRXhFQyxFQUFBQSxXQUFXLEVBQUUsTUFBTTtBQUNqQkMsSUFBQUEsT0FBTyxDQUFDQyxJQUFSLENBQWEsc0NBQWI7QUFDRDtBQUp1RSxDQUF2QyxDQUE1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBGcmFnbWVudCwgY3JlYXRlQ29udGV4dCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB0eXBlIHsgTGF6eVN1c3BlbnNlQ29udGV4dFR5cGUgfSBmcm9tICcuL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IExhenlTdXNwZW5zZUNvbnRleHQgPSBjcmVhdGVDb250ZXh0PExhenlTdXNwZW5zZUNvbnRleHRUeXBlPih7XG4gIGZhbGxiYWNrOiA8RnJhZ21lbnQgLz4sXG4gIHNldEZhbGxiYWNrOiAoKSA9PiB7XG4gICAgY29uc29sZS53YXJuKCdNaXNzaW5nIDxMb29zZWx5U3VzcGVuc2UgLz4gYm91bmRhcnknKTtcbiAgfSxcbn0pO1xuIl19
@@ -35,15 +35,7 @@ const displayNameFromId = id => {
35
35
  exports.displayNameFromId = displayNameFromId;
36
36
 
37
37
  const isNodeEnvironment = () => {
38
- if (typeof window === 'undefined') {
39
- return true;
40
- }
41
-
42
- if (window.name === 'nodejs') {
43
- return true;
44
- }
45
-
46
- return false;
38
+ return globalThis !== globalThis.window;
47
39
  };
48
40
 
49
41
  exports.isNodeEnvironment = isNodeEnvironment;
@@ -68,4 +60,4 @@ function attrToProp(props, attr) {
68
60
 
69
61
  return props;
70
62
  }
71
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlscy9pbmRleC50cyJdLCJuYW1lcyI6WyJnZXRFeHBvcnQiLCJtIiwiZGVmYXVsdCIsImRpc3BsYXlOYW1lRnJvbUlkIiwiaWQiLCJmTmFtZSIsInNwbGl0Iiwic2xpY2UiLCJqb2luIiwiaXNOb2RlRW52aXJvbm1lbnQiLCJ3aW5kb3ciLCJuYW1lIiwiYXR0clRvUHJvcCIsInByb3BzIiwiYXR0ciIsImNsYXNzTmFtZSIsInZhbHVlIiwiY3Jvc3NPcmlnaW4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFFTyxNQUFNQSxTQUFTLEdBQUlDLENBQUQsSUFBYSxhQUFhQSxDQUFiLEdBQWlCQSxDQUFDLENBQUNDLE9BQW5CLEdBQTZCRCxDQUE1RDs7OztBQUVBLE1BQU1FLGlCQUFpQixHQUFJQyxFQUFELElBQWdCO0FBQy9DLFFBQU1DLEtBQUssR0FBR0QsRUFBRSxDQUFDRSxLQUFILENBQVMsR0FBVCxFQUFjQyxLQUFkLENBQW9CLENBQUMsQ0FBckIsRUFBd0JDLElBQXhCLENBQTZCLEdBQTdCLENBQWQ7QUFFQSxTQUFPSCxLQUFLLElBQUksV0FBaEI7QUFDRCxDQUpNO0FBTVA7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7OztBQUNPLE1BQU1JLGlCQUFpQixHQUFHLE1BQU07QUFDckMsTUFBSSxPQUFPQyxNQUFQLEtBQWtCLFdBQXRCLEVBQW1DO0FBQ2pDLFdBQU8sSUFBUDtBQUNEOztBQUVELE1BQUlBLE1BQU0sQ0FBQ0MsSUFBUCxLQUFnQixRQUFwQixFQUE4QjtBQUM1QixXQUFPLElBQVA7QUFDRDs7QUFFRCxTQUFPLEtBQVA7QUFDRCxDQVZNOzs7O0FBWUEsU0FBU0MsVUFBVCxDQUFvQkMsS0FBcEIsRUFBb0RDLElBQXBELEVBQWdFO0FBQ3JFLFVBQVFBLElBQUksQ0FBQ0gsSUFBYjtBQUNFLFNBQUssT0FBTDtBQUNFO0FBQ0E7O0FBQ0YsU0FBSyxPQUFMO0FBQ0VFLE1BQUFBLEtBQUssQ0FBQ0UsU0FBTixHQUFrQkQsSUFBSSxDQUFDRSxLQUF2QjtBQUNBOztBQUNGLFNBQUssYUFBTDtBQUNFSCxNQUFBQSxLQUFLLENBQUNJLFdBQU4sR0FBb0JILElBQUksQ0FBQ0UsS0FBekI7QUFDQTs7QUFDRjtBQUNFSCxNQUFBQSxLQUFLLENBQUNDLElBQUksQ0FBQ0gsSUFBTixDQUFMLEdBQW1CRyxJQUFJLENBQUNFLEtBQXhCO0FBWEo7O0FBY0EsU0FBT0gsS0FBUDtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgZGVmYXVsdCBhcyBoYXNoIH0gZnJvbSAnLi9oYXNoJztcblxuZXhwb3J0IGNvbnN0IGdldEV4cG9ydCA9IChtOiBhbnkpID0+ICgnZGVmYXVsdCcgaW4gbSA/IG0uZGVmYXVsdCA6IG0pO1xuXG5leHBvcnQgY29uc3QgZGlzcGxheU5hbWVGcm9tSWQgPSAoaWQ6IHN0cmluZykgPT4ge1xuICBjb25zdCBmTmFtZSA9IGlkLnNwbGl0KCcvJykuc2xpY2UoLTMpLmpvaW4oJy8nKTtcblxuICByZXR1cm4gZk5hbWUgfHwgJ0NvbXBvbmVudCc7XG59O1xuXG4vKipcbiAqIENoZWNrcyB0byBzZWUgaWYgd2UgYXJlIHJ1bm5pbmcgaW5zaWRlIGEgbm9kZSBlbnZpcm9ubWVudCBvciBub3QuXG4gKiBDb3ZlcnMganNkb20gZW52aXJvbm1lbnRzLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2pzZG9tL2pzZG9tL2lzc3Vlcy8xNTM3XG4gKi9cbmV4cG9ydCBjb25zdCBpc05vZGVFbnZpcm9ubWVudCA9ICgpID0+IHtcbiAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBpZiAod2luZG93Lm5hbWUgPT09ICdub2RlanMnKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gYXR0clRvUHJvcChwcm9wczogeyBbazogc3RyaW5nXTogc3RyaW5nIH0sIGF0dHI6IEF0dHIpIHtcbiAgc3dpdGNoIChhdHRyLm5hbWUpIHtcbiAgICBjYXNlICdzdHlsZSc6XG4gICAgICAvLyBpZ25vcmUgc3R5bGUgYXR0ciBhcyByZWFjdCBkb2VzIG5vdCBhbGxvdyBzdHJpbmcgdmFsdWVzXG4gICAgICBicmVhaztcbiAgICBjYXNlICdjbGFzcyc6XG4gICAgICBwcm9wcy5jbGFzc05hbWUgPSBhdHRyLnZhbHVlO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnY3Jvc3NvcmlnaW4nOlxuICAgICAgcHJvcHMuY3Jvc3NPcmlnaW4gPSBhdHRyLnZhbHVlO1xuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDpcbiAgICAgIHByb3BzW2F0dHIubmFtZV0gPSBhdHRyLnZhbHVlO1xuICB9XG5cbiAgcmV0dXJuIHByb3BzO1xufVxuIl19
63
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlscy9pbmRleC50cyJdLCJuYW1lcyI6WyJnZXRFeHBvcnQiLCJtIiwiZGVmYXVsdCIsImRpc3BsYXlOYW1lRnJvbUlkIiwiaWQiLCJmTmFtZSIsInNwbGl0Iiwic2xpY2UiLCJqb2luIiwiaXNOb2RlRW52aXJvbm1lbnQiLCJnbG9iYWxUaGlzIiwid2luZG93IiwiYXR0clRvUHJvcCIsInByb3BzIiwiYXR0ciIsIm5hbWUiLCJjbGFzc05hbWUiLCJ2YWx1ZSIsImNyb3NzT3JpZ2luIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBRU8sTUFBTUEsU0FBUyxHQUFJQyxDQUFELElBQWEsYUFBYUEsQ0FBYixHQUFpQkEsQ0FBQyxDQUFDQyxPQUFuQixHQUE2QkQsQ0FBNUQ7Ozs7QUFFQSxNQUFNRSxpQkFBaUIsR0FBSUMsRUFBRCxJQUFnQjtBQUMvQyxRQUFNQyxLQUFLLEdBQUdELEVBQUUsQ0FBQ0UsS0FBSCxDQUFTLEdBQVQsRUFBY0MsS0FBZCxDQUFvQixDQUFDLENBQXJCLEVBQXdCQyxJQUF4QixDQUE2QixHQUE3QixDQUFkO0FBRUEsU0FBT0gsS0FBSyxJQUFJLFdBQWhCO0FBQ0QsQ0FKTTtBQU1QO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7QUFDTyxNQUFNSSxpQkFBaUIsR0FBRyxNQUFNO0FBQ3JDLFNBQU9DLFVBQVUsS0FBS0EsVUFBVSxDQUFDQyxNQUFqQztBQUNELENBRk07Ozs7QUFJQSxTQUFTQyxVQUFULENBQW9CQyxLQUFwQixFQUFvREMsSUFBcEQsRUFBZ0U7QUFDckUsVUFBUUEsSUFBSSxDQUFDQyxJQUFiO0FBQ0UsU0FBSyxPQUFMO0FBQ0U7QUFDQTs7QUFDRixTQUFLLE9BQUw7QUFDRUYsTUFBQUEsS0FBSyxDQUFDRyxTQUFOLEdBQWtCRixJQUFJLENBQUNHLEtBQXZCO0FBQ0E7O0FBQ0YsU0FBSyxhQUFMO0FBQ0VKLE1BQUFBLEtBQUssQ0FBQ0ssV0FBTixHQUFvQkosSUFBSSxDQUFDRyxLQUF6QjtBQUNBOztBQUNGO0FBQ0VKLE1BQUFBLEtBQUssQ0FBQ0MsSUFBSSxDQUFDQyxJQUFOLENBQUwsR0FBbUJELElBQUksQ0FBQ0csS0FBeEI7QUFYSjs7QUFjQSxTQUFPSixLQUFQO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBkZWZhdWx0IGFzIGhhc2ggfSBmcm9tICcuL2hhc2gnO1xuXG5leHBvcnQgY29uc3QgZ2V0RXhwb3J0ID0gKG06IGFueSkgPT4gKCdkZWZhdWx0JyBpbiBtID8gbS5kZWZhdWx0IDogbSk7XG5cbmV4cG9ydCBjb25zdCBkaXNwbGF5TmFtZUZyb21JZCA9IChpZDogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IGZOYW1lID0gaWQuc3BsaXQoJy8nKS5zbGljZSgtMykuam9pbignLycpO1xuXG4gIHJldHVybiBmTmFtZSB8fCAnQ29tcG9uZW50Jztcbn07XG5cbi8qKlxuICogQ2hlY2tzIHRvIHNlZSBpZiB3ZSBhcmUgcnVubmluZyBpbnNpZGUgYSBub2RlIGVudmlyb25tZW50IG9yIG5vdC5cbiAqIENvdmVycyBqc2RvbSBlbnZpcm9ubWVudHMuXG4gKlxuICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vanNkb20vanNkb20vaXNzdWVzLzE1MzdcbiAqL1xuZXhwb3J0IGNvbnN0IGlzTm9kZUVudmlyb25tZW50ID0gKCkgPT4ge1xuICByZXR1cm4gZ2xvYmFsVGhpcyAhPT0gZ2xvYmFsVGhpcy53aW5kb3c7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gYXR0clRvUHJvcChwcm9wczogeyBbazogc3RyaW5nXTogc3RyaW5nIH0sIGF0dHI6IEF0dHIpIHtcbiAgc3dpdGNoIChhdHRyLm5hbWUpIHtcbiAgICBjYXNlICdzdHlsZSc6XG4gICAgICAvLyBpZ25vcmUgc3R5bGUgYXR0ciBhcyByZWFjdCBkb2VzIG5vdCBhbGxvdyBzdHJpbmcgdmFsdWVzXG4gICAgICBicmVhaztcbiAgICBjYXNlICdjbGFzcyc6XG4gICAgICBwcm9wcy5jbGFzc05hbWUgPSBhdHRyLnZhbHVlO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnY3Jvc3NvcmlnaW4nOlxuICAgICAgcHJvcHMuY3Jvc3NPcmlnaW4gPSBhdHRyLnZhbHVlO1xuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDpcbiAgICAgIHByb3BzW2F0dHIubmFtZV0gPSBhdHRyLnZhbHVlO1xuICB9XG5cbiAgcmV0dXJuIHByb3BzO1xufVxuIl19
package/dist/esm/index.js CHANGED
@@ -1,7 +1,8 @@
1
1
  export { MODE } from './config';
2
2
  export { LooselyLazy as default } from './init';
3
3
  export { isLoaderError, lazyForPaint, lazyAfterPaint, lazy, PRIORITY } from './lazy';
4
- export { LazyWait } from './lazy-wait';
4
+ export { LazyWait, WaitContext } from './lazy-wait';
5
5
  export { LazySuspense } from './suspense';
6
6
  export { useLazyPhase } from './phase';
7
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6WyJNT0RFIiwiTG9vc2VseUxhenkiLCJkZWZhdWx0IiwiaXNMb2FkZXJFcnJvciIsImxhenlGb3JQYWludCIsImxhenlBZnRlclBhaW50IiwibGF6eSIsIlBSSU9SSVRZIiwiTGF6eVdhaXQiLCJMYXp5U3VzcGVuc2UiLCJ1c2VMYXp5UGhhc2UiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLElBQVQsUUFBcUIsVUFBckI7QUFFQSxTQUFTQyxXQUFXLElBQUlDLE9BQXhCLFFBQXVDLFFBQXZDO0FBR0EsU0FDRUMsYUFERixFQUVFQyxZQUZGLEVBR0VDLGNBSEYsRUFJRUMsSUFKRixFQUtFQyxRQUxGLFFBTU8sUUFOUDtBQWdCQSxTQUFTQyxRQUFULFFBQXlCLGFBQXpCO0FBR0EsU0FBU0MsWUFBVCxRQUE2QixZQUE3QjtBQUdBLFNBQVNDLFlBQVQsUUFBNkIsU0FBN0IiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBNT0RFIH0gZnJvbSAnLi9jb25maWcnO1xuXG5leHBvcnQgeyBMb29zZWx5TGF6eSBhcyBkZWZhdWx0IH0gZnJvbSAnLi9pbml0JztcbmV4cG9ydCB0eXBlIHsgSW5pdE9wdGlvbnMgfSBmcm9tICcuL2luaXQnO1xuXG5leHBvcnQge1xuICBpc0xvYWRlckVycm9yLFxuICBsYXp5Rm9yUGFpbnQsXG4gIGxhenlBZnRlclBhaW50LFxuICBsYXp5LFxuICBQUklPUklUWSxcbn0gZnJvbSAnLi9sYXp5JztcblxuZXhwb3J0IHR5cGUge1xuICBDbGllbnRMb2FkZXIsXG4gIExhenlDb21wb25lbnQsXG4gIExhenlPcHRpb25zLFxuICBMb2FkZXIsXG4gIFNlcnZlckxvYWRlcixcbn0gZnJvbSAnLi9sYXp5JztcblxuZXhwb3J0IHsgTGF6eVdhaXQgfSBmcm9tICcuL2xhenktd2FpdCc7XG5leHBvcnQgdHlwZSB7IExhenlXYWl0UHJvcHMgfSBmcm9tICcuL2xhenktd2FpdCc7XG5cbmV4cG9ydCB7IExhenlTdXNwZW5zZSB9IGZyb20gJy4vc3VzcGVuc2UnO1xuZXhwb3J0IHR5cGUgeyBGYWxsYmFjaywgTGF6eVN1c3BlbnNlUHJvcHMgfSBmcm9tICcuL3N1c3BlbnNlJztcblxuZXhwb3J0IHsgdXNlTGF6eVBoYXNlIH0gZnJvbSAnLi9waGFzZSc7XG4iXX0=
7
+ export { GlobalReactLooselyLazyProfiler, ProfilerContext } from './profiler';
8
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6WyJNT0RFIiwiTG9vc2VseUxhenkiLCJkZWZhdWx0IiwiaXNMb2FkZXJFcnJvciIsImxhenlGb3JQYWludCIsImxhenlBZnRlclBhaW50IiwibGF6eSIsIlBSSU9SSVRZIiwiTGF6eVdhaXQiLCJXYWl0Q29udGV4dCIsIkxhenlTdXNwZW5zZSIsInVzZUxhenlQaGFzZSIsIkdsb2JhbFJlYWN0TG9vc2VseUxhenlQcm9maWxlciIsIlByb2ZpbGVyQ29udGV4dCJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsSUFBVCxRQUFxQixVQUFyQjtBQUVBLFNBQVNDLFdBQVcsSUFBSUMsT0FBeEIsUUFBdUMsUUFBdkM7QUFHQSxTQUNFQyxhQURGLEVBRUVDLFlBRkYsRUFHRUMsY0FIRixFQUlFQyxJQUpGLEVBS0VDLFFBTEYsUUFNTyxRQU5QO0FBZ0JBLFNBQVNDLFFBQVQsRUFBbUJDLFdBQW5CLFFBQXNDLGFBQXRDO0FBR0EsU0FBU0MsWUFBVCxRQUE2QixZQUE3QjtBQUdBLFNBQVNDLFlBQVQsUUFBNkIsU0FBN0I7QUFFQSxTQUFTQyw4QkFBVCxFQUF5Q0MsZUFBekMsUUFBZ0UsWUFBaEUiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBNT0RFIH0gZnJvbSAnLi9jb25maWcnO1xuXG5leHBvcnQgeyBMb29zZWx5TGF6eSBhcyBkZWZhdWx0IH0gZnJvbSAnLi9pbml0JztcbmV4cG9ydCB0eXBlIHsgSW5pdE9wdGlvbnMgfSBmcm9tICcuL2luaXQnO1xuXG5leHBvcnQge1xuICBpc0xvYWRlckVycm9yLFxuICBsYXp5Rm9yUGFpbnQsXG4gIGxhenlBZnRlclBhaW50LFxuICBsYXp5LFxuICBQUklPUklUWSxcbn0gZnJvbSAnLi9sYXp5JztcblxuZXhwb3J0IHR5cGUge1xuICBDbGllbnRMb2FkZXIsXG4gIExhenlDb21wb25lbnQsXG4gIExhenlPcHRpb25zLFxuICBMb2FkZXIsXG4gIFNlcnZlckxvYWRlcixcbn0gZnJvbSAnLi9sYXp5JztcblxuZXhwb3J0IHsgTGF6eVdhaXQsIFdhaXRDb250ZXh0IH0gZnJvbSAnLi9sYXp5LXdhaXQnO1xuZXhwb3J0IHR5cGUgeyBMYXp5V2FpdFByb3BzIH0gZnJvbSAnLi9sYXp5LXdhaXQnO1xuXG5leHBvcnQgeyBMYXp5U3VzcGVuc2UgfSBmcm9tICcuL3N1c3BlbnNlJztcbmV4cG9ydCB0eXBlIHsgRmFsbGJhY2ssIExhenlTdXNwZW5zZVByb3BzIH0gZnJvbSAnLi9zdXNwZW5zZSc7XG5cbmV4cG9ydCB7IHVzZUxhenlQaGFzZSB9IGZyb20gJy4vcGhhc2UnO1xuXG5leHBvcnQgeyBHbG9iYWxSZWFjdExvb3NlbHlMYXp5UHJvZmlsZXIsIFByb2ZpbGVyQ29udGV4dCB9IGZyb20gJy4vcHJvZmlsZXInO1xuZXhwb3J0IHR5cGUgeyBFdmVudEluZm8gfSBmcm9tICcuL3Byb2ZpbGVyJztcbiJdfQ==
@@ -1,81 +1,111 @@
1
- import React, { lazy, useContext, useEffect, useMemo, useRef, useState } from 'react';
1
+ import React, { lazy, useContext, useMemo, useState } from 'react';
2
2
  import { getConfig, MODE } from '../../config';
3
3
  import { COLLECTED, PHASE } from '../../constants';
4
- import { useUntil } from '../../lazy-wait';
4
+ import { WaitContext } from '../../lazy-wait';
5
+ import { LazyPhaseContext } from '../../phase';
5
6
  import { LazySuspenseContext } from '../../suspense';
6
- import { usePhaseSubscription } from '../../phase';
7
7
  import { PRIORITY } from '../constants';
8
8
  import { createLoaderError } from '../errors';
9
9
  import { PlaceholderFallbackRender } from '../placeholders/render';
10
10
  import { PlaceholderFallbackHydrate } from '../placeholders/hydrate';
11
11
  import { preloadAsset } from '../preload';
12
+ import { ProfilerContext } from '../../profiler';
13
+ import { useSubscription } from './utils'; // @ts-expect-error requestIdleCallback might not exist
14
+
15
+ const {
16
+ requestIdleCallback = setTimeout
17
+ } = window;
12
18
  export function createComponentClient({
13
19
  defer,
14
20
  deferred,
15
21
  dataLazyId,
16
- moduleId,
17
- ssr
22
+ moduleId
18
23
  }) {
19
24
  const ResolvedLazy = /*#__PURE__*/lazy(() => deferred.promise);
20
25
  return props => {
21
- const {
22
- setFallback
23
- } = useContext(LazySuspenseContext);
24
- const started = useRef(false);
25
- const [, setState] = useState();
26
- const until = useUntil();
27
- const load = useRef(() => {
28
- if (started.current) {
26
+ // use a single piece of state to hold info about progress or eventually
27
+ // throw an error. We do change it via direct mutation as re-renders
28
+ // break Suspense in React 18, making it lose hydration state
29
+ const [status, bubbleError] = useState(() => ({
30
+ noWait: undefined,
31
+ phase: defer === PHASE.AFTER_PAINT ? false : true,
32
+ preloaded: defer === PHASE.AFTER_PAINT ? false : true,
33
+ started: false
34
+ }));
35
+ const profiler = useContext(ProfilerContext).current;
36
+
37
+ const load = () => {
38
+ if (status.started || !status.phase || !status.noWait) {
29
39
  return;
30
40
  }
31
41
 
32
- started.current = true;
33
- deferred.start().catch(err => {
42
+ status.started = true;
43
+ let onResolve;
44
+
45
+ if (profiler) {
46
+ const eventInfo = {
47
+ identifier: moduleId
48
+ };
49
+
50
+ onResolve = () => {
51
+ profiler.onLoadComplete(eventInfo);
52
+ };
53
+
54
+ profiler.onLoadStart(eventInfo);
55
+ }
56
+
57
+ const result = deferred.start().catch(err => {
34
58
  // Throw the error within the component lifecycle
35
59
  // refer to https://github.com/facebook/react/issues/11409
36
- setState(() => {
60
+ bubbleError(() => {
37
61
  throw createLoaderError(err);
38
62
  });
39
63
  });
64
+
65
+ if (onResolve) {
66
+ result.then(onResolve);
67
+ }
68
+ }; // Subscribe to LazyWait context, triggering load when until is true
69
+
70
+
71
+ useSubscription({
72
+ context: WaitContext,
73
+ load,
74
+ onValue: v => status.noWait = v === 1
40
75
  });
41
76
 
42
- if (defer === PHASE.LAZY) {
43
- useEffect(() => {
44
- if (until) {
45
- load.current();
46
- }
47
- }, [until]);
48
- } else {
49
- const isOwnPhase = usePhaseSubscription(defer);
50
- useMemo(() => {
51
- if (isOwnPhase && until) {
52
- load.current();
53
- }
54
- }, [isOwnPhase, until]);
77
+ if (defer === PHASE.AFTER_PAINT) {
78
+ // Subscribe to LazyPhase context, triggering load when own phase starts
79
+ useSubscription({
80
+ context: LazyPhaseContext,
81
+ load,
82
+ onValue: v => status.phase = v >= defer
83
+ }); // Schedule preloading as will be needed soon
55
84
 
56
- if (defer === PHASE.AFTER_PAINT) {
57
- // Start preloading as will be needed soon
58
- useEffect(() => {
59
- if (!isOwnPhase) {
60
- return preloadAsset({
85
+ useMemo(() => {
86
+ if (!status.preloaded) {
87
+ status.preloaded = true;
88
+ requestIdleCallback(() => {
89
+ if (status.started) return;
90
+ preloadAsset({
61
91
  loader: deferred.preload,
62
92
  moduleId,
63
93
  priority: PRIORITY.LOW
64
94
  });
65
- }
66
- }, [isOwnPhase]);
67
- }
95
+ });
96
+ }
97
+ }, [status]);
68
98
  }
69
99
 
100
+ const {
101
+ setFallback
102
+ } = useContext(LazySuspenseContext);
70
103
  useMemo(() => {
71
104
  // find SSR content (or fallbacks) wrapped in inputs based on lazyId
72
105
  const content = (COLLECTED.get(dataLazyId) || []).shift();
73
106
  if (!content) return; // override Suspense fallback with magic input wrappers
74
107
 
75
- const {
76
- mode
77
- } = getConfig();
78
- const component = mode === MODE.RENDER ? /*#__PURE__*/React.createElement(PlaceholderFallbackRender, {
108
+ const component = getConfig().mode === MODE.RENDER ? /*#__PURE__*/React.createElement(PlaceholderFallbackRender, {
79
109
  id: dataLazyId,
80
110
  content: content
81
111
  }) : /*#__PURE__*/React.createElement(PlaceholderFallbackHydrate, {
@@ -84,16 +114,7 @@ export function createComponentClient({
84
114
  });
85
115
  setFallback(component);
86
116
  }, [setFallback]);
87
-
88
- if (!ssr) {
89
- // as the fallback is SSRd too, we want to discard it as soon as this
90
- // mounts (to avoid hydration warnings) and let Suspense render it
91
- useEffect(() => {
92
- setFallback(null);
93
- }, [setFallback]);
94
- }
95
-
96
117
  return /*#__PURE__*/React.createElement(ResolvedLazy, props);
97
118
  };
98
119
  }
99
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9sYXp5L2NvbXBvbmVudHMvY2xpZW50LnRzeCJdLCJuYW1lcyI6WyJSZWFjdCIsImxhenkiLCJ1c2VDb250ZXh0IiwidXNlRWZmZWN0IiwidXNlTWVtbyIsInVzZVJlZiIsInVzZVN0YXRlIiwiZ2V0Q29uZmlnIiwiTU9ERSIsIkNPTExFQ1RFRCIsIlBIQVNFIiwidXNlVW50aWwiLCJMYXp5U3VzcGVuc2VDb250ZXh0IiwidXNlUGhhc2VTdWJzY3JpcHRpb24iLCJQUklPUklUWSIsImNyZWF0ZUxvYWRlckVycm9yIiwiUGxhY2Vob2xkZXJGYWxsYmFja1JlbmRlciIsIlBsYWNlaG9sZGVyRmFsbGJhY2tIeWRyYXRlIiwicHJlbG9hZEFzc2V0IiwiY3JlYXRlQ29tcG9uZW50Q2xpZW50IiwiZGVmZXIiLCJkZWZlcnJlZCIsImRhdGFMYXp5SWQiLCJtb2R1bGVJZCIsInNzciIsIlJlc29sdmVkTGF6eSIsInByb21pc2UiLCJwcm9wcyIsInNldEZhbGxiYWNrIiwic3RhcnRlZCIsInNldFN0YXRlIiwidW50aWwiLCJsb2FkIiwiY3VycmVudCIsInN0YXJ0IiwiY2F0Y2giLCJlcnIiLCJMQVpZIiwiaXNPd25QaGFzZSIsIkFGVEVSX1BBSU5UIiwibG9hZGVyIiwicHJlbG9hZCIsInByaW9yaXR5IiwiTE9XIiwiY29udGVudCIsImdldCIsInNoaWZ0IiwibW9kZSIsImNvbXBvbmVudCIsIlJFTkRFUiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsS0FBUCxJQUdFQyxJQUhGLEVBSUVDLFVBSkYsRUFLRUMsU0FMRixFQU1FQyxPQU5GLEVBT0VDLE1BUEYsRUFRRUMsUUFSRixRQVNPLE9BVFA7QUFXQSxTQUFTQyxTQUFULEVBQW9CQyxJQUFwQixRQUFnQyxjQUFoQztBQUNBLFNBQVNDLFNBQVQsRUFBb0JDLEtBQXBCLFFBQWlDLGlCQUFqQztBQUNBLFNBQVNDLFFBQVQsUUFBeUIsaUJBQXpCO0FBQ0EsU0FBU0MsbUJBQVQsUUFBb0MsZ0JB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QUFDeUMsTUFBZCxnQkFDRSxvQkFBQyx5QkFBRDtBQUEyQixRQUFBLEVBQUUsRUFBRTNCLFVBQS9CO0FBQTJDLFFBQUEsT0FBTyxFQUFFc0I7QUFBcEQsUUFERixnQkFHRSxvQkFBQywwQkFBRDtBQUE0QixRQUFBLEVBQUUsRUFBRXRCLFVBQWhDO0FBQTRDLFFBQUEsT0FBTyxFQUFFc0I7QUFBckQsUUFKSjtBQU1BaEIsTUFBQUEsV0FBVyxDQUFDb0IsU0FBRCxDQUFYO0FBQ0QsS0FkTSxFQWNKLENBQUNwQixXQUFELENBZEksQ0FBUDs7QUFnQkEsUUFBSSxDQUFDSixHQUFMLEVBQVU7QUFDUjtBQUNBO0FBQ0FyQixNQUFBQSxTQUFTLENBQUMsTUFBTTtBQUNkeUIsUUFBQUEsV0FBVyxDQUFDLElBQUQsQ0FBWDtBQUNELE9BRlEsRUFFTixDQUFDQSxXQUFELENBRk0sQ0FBVDtBQUdEOztBQUVELHdCQUFPLG9CQUFDLFlBQUQsRUFBa0JELEtBQWxCLENBQVA7QUFDRCxHQTNFRDtBQTRFRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwge1xuICBDb21wb25lbnRQcm9wcyxcbiAgQ29tcG9uZW50VHlwZSxcbiAgbGF6eSxcbiAgdXNlQ29udGV4dCxcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VSZWYsXG4gIHVzZVN0YXRlLFxufSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7IGdldENvbmZpZywgTU9ERSB9IGZyb20gJy4uLy4uL2NvbmZpZyc7XG5pbXBvcnQgeyBDT0xMRUNURUQsIFBIQVNFIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IHVzZVVudGlsIH0gZnJvbSAnLi4vLi4vbGF6eS13YWl0JztcbmltcG9ydCB7IExhenlTdXNwZW5zZUNvbnRleHQgfSBmcm9tICcuLi8uLi9zdXNwZW5zZSc7XG5pbXBvcnQgeyB1c2VQaGFzZVN1YnNjcmlwdGlvbiB9IGZyb20gJy4uLy4uL3BoYXNlJztcblxuaW1wb3J0IHsgUFJJT1JJVFkgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgRGVmZXJyZWQgfSBmcm9tICcuLi9kZWZlcnJlZCc7XG5pbXBvcnQgeyBjcmVhdGVMb2FkZXJFcnJvciB9IGZyb20gJy4uL2Vycm9ycyc7XG5pbXBvcnQgeyBQbGFjZWhvbGRlckZhbGxiYWNrUmVuZGVyIH0gZnJvbSAnLi4vcGxhY2Vob2xkZXJzL3JlbmRlcic7XG5pbXBvcnQgeyBQbGFjZWhvbGRlckZhbGxiYWNrSHlkcmF0ZSB9IGZyb20gJy4uL3BsYWNlaG9sZGVycy9oeWRyYXRlJztcbmltcG9ydCB7IHByZWxvYWRBc3NldCB9IGZyb20gJy4uL3ByZWxvYWQnO1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQ29tcG9uZW50Q2xpZW50PEMgZXh0ZW5kcyBDb21wb25lbnRUeXBlPGFueT4+KHtcbiAgZGVmZXIsXG4gIGRlZmVycmVkLFxuICBkYXRhTGF6eUlkLFxuICBtb2R1bGVJZCxcbiAgc3NyLFxufToge1xuICBkZWZlcjogbnVtYmVyO1xuICBkZWZlcnJlZDogRGVmZXJyZWQ8Qz47XG4gIGRhdGFMYXp5SWQ6IHN0cmluZztcbiAgbW9kdWxlSWQ6IHN0cmluZztcbiAgc3NyOiBib29sZWFuO1xufSkge1xuICBjb25zdCBSZXNvbHZlZExhenkgPSBsYXp5KCgpID0+IGRlZmVycmVkLnByb21pc2UpO1xuXG4gIHJldHVybiAocHJvcHM6IENvbXBvbmVudFByb3BzPEM+KSA9PiB7XG4gICAgY29uc3QgeyBzZXRGYWxsYmFjayB9ID0gdXNlQ29udGV4dChMYXp5U3VzcGVuc2VDb250ZXh0KTtcbiAgICBjb25zdCBzdGFydGVkID0gdXNlUmVmKGZhbHNlKTtcbiAgICBjb25zdCBbLCBzZXRTdGF0ZV0gPSB1c2VTdGF0ZSgpO1xuICAgIGNvbnN0IHVudGlsID0gdXNlVW50aWwoKTtcblxuICAgIGNvbnN0IGxvYWQgPSB1c2VSZWYoKCkgPT4ge1xuICAgICAgaWYgKHN0YXJ0ZWQuY3VycmVudCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHN0YXJ0ZWQuY3VycmVudCA9IHRydWU7XG4gICAgICBkZWZlcnJlZC5zdGFydCgpLmNhdGNoKChlcnI6IEVycm9yKSA9PiB7XG4gICAgICAgIC8vIFRocm93IHRoZSBlcnJvciB3aXRoaW4gdGhlIGNvbXBvbmVudCBsaWZlY3ljbGVcbiAgICAgICAgLy8gcmVmZXIgdG8gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy8xMTQwOVxuICAgICAgICBzZXRTdGF0ZSgoKSA9PiB7XG4gICAgICAgICAgdGhyb3cgY3JlYXRlTG9hZGVyRXJyb3IoZXJyKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGlmIChkZWZlciA9PT0gUEhBU0UuTEFaWSkge1xuICAgICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKHVudGlsKSB7XG4gICAgICAgICAgbG9hZC5jdXJyZW50KCk7XG4gICAgICAgIH1cbiAgICAgIH0sIFt1bnRpbF0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBpc093blBoYXNlID0gdXNlUGhhc2VTdWJzY3JpcHRpb24oZGVmZXIpO1xuXG4gICAgICB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgaWYgKGlzT3duUGhhc2UgJiYgdW50aWwpIHtcbiAgICAgICAgICBsb2FkLmN1cnJlbnQoKTtcbiAgICAgICAgfVxuICAgICAgfSwgW2lzT3duUGhhc2UsIHVudGlsXSk7XG5cbiAgICAgIGlmIChkZWZlciA9PT0gUEhBU0UuQUZURVJfUEFJTlQpIHtcbiAgICAgICAgLy8gU3RhcnQgcHJlbG9hZGluZyBhcyB3aWxsIGJlIG5lZWRlZCBzb29uXG4gICAgICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgICAgaWYgKCFpc093blBoYXNlKSB7XG4gICAgICAgICAgICByZXR1cm4gcHJlbG9hZEFzc2V0KHtcbiAgICAgICAgICAgICAgbG9hZGVyOiBkZWZlcnJlZC5wcmVsb2FkLFxuICAgICAgICAgICAgICBtb2R1bGVJZCxcbiAgICAgICAgICAgICAgcHJpb3JpdHk6IFBSSU9SSVRZLkxPVyxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSwgW2lzT3duUGhhc2VdKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB1c2VNZW1vKCgpID0+IHtcbiAgICAgIC8vIGZpbmQgU1NSIGNvbnRlbnQgKG9yIGZhbGxiYWNrcykgd3JhcHBlZCBpbiBpbnB1dHMgYmFzZWQgb24gbGF6eUlkXG4gICAgICBjb25zdCBjb250ZW50ID0gKENPTExFQ1RFRC5nZXQoZGF0YUxhenlJZCkgfHwgW10pLnNoaWZ0KCk7XG4gICAgICBpZiAoIWNvbnRlbnQpIHJldHVybjtcblxuICAgICAgLy8gb3ZlcnJpZGUgU3VzcGVuc2UgZmFsbGJhY2sgd2l0aCBtYWdpYyBpbnB1dCB3cmFwcGVyc1xuICAgICAgY29uc3QgeyBtb2RlIH0gPSBnZXRDb25maWcoKTtcbiAgICAgIGNvbnN0IGNvbXBvbmVudCA9XG4gICAgICAgIG1vZGUgPT09IE1PREUuUkVOREVSID8gKFxuICAgICAgICAgIDxQbGFjZWhvbGRlckZhbGxiYWNrUmVuZGVyIGlkPXtkYXRhTGF6eUlkfSBjb250ZW50PXtjb250ZW50fSAvPlxuICAgICAgICApIDogKFxuICAgICAgICAgIDxQbGFjZWhvbGRlckZhbGxiYWNrSHlkcmF0ZSBpZD17ZGF0YUxhenlJZH0gY29udGVudD17Y29udGVudH0gLz5cbiAgICAgICAgKTtcbiAgICAgIHNldEZhbGxiYWNrKGNvbXBvbmVudCk7XG4gICAgfSwgW3NldEZhbGxiYWNrXSk7XG5cbiAgICBpZiAoIXNzcikge1xuICAgICAgLy8gYXMgdGhlIGZhbGxiYWNrIGlzIFNTUmQgdG9vLCB3ZSB3YW50IHRvIGRpc2NhcmQgaXQgYXMgc29vbiBhcyB0aGlzXG4gICAgICAvLyBtb3VudHMgKHRvIGF2b2lkIGh5ZHJhdGlvbiB3YXJuaW5ncykgYW5kIGxldCBTdXNwZW5zZSByZW5kZXIgaXRcbiAgICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHNldEZhbGxiYWNrKG51bGwpO1xuICAgICAgfSwgW3NldEZhbGxiYWNrXSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIDxSZXNvbHZlZExhenkgey4uLnByb3BzfSAvPjtcbiAgfTtcbn1cbiJdfQ==
120
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9sYXp5L2NvbXBvbmVudHMvY2xpZW50LnRzeCJdLCJuYW1lcyI6WyJSZWFjdCIsImxhenkiLCJ1c2VDb250ZXh0IiwidXNlTWVtbyIsInVzZVN0YXRlIiwiZ2V0Q29uZmlnIiwiTU9ERSIsIkNPTExFQ1RFRCIsIlBIQVNFIiwiV2FpdENvbnRleHQiLCJMYXp5UGhhc2VDb250ZXh0IiwiTGF6eVN1c3BlbnNlQ29udGV4dCIsIlBSSU9SSVRZIiwiY3JlYXRlTG9hZGVyRXJyb3IiLCJQbGFjZWhvbGRlckZhbGxiYWNrUmVuZGVyIiwiUGxhY2Vob2xkZXJGYWxsYmFja0h5ZHJhdGUiLCJwcmVsb2FkQXNzZXQiLCJQcm9maWxlckNvbnRleHQiLCJ1c2VTdWJzY3JpcHRpb24iLCJyZXF1ZXN0SWRsZUNhbGxiYWNrIiwic2V0VGltZW91dCIsIndpbmRvdyIsImNyZWF0ZUNvbXBvbmVudENsaWVudCIsImRlZmVyIiwiZGVmZXJyZWQiLCJkYXRhTGF6eUlkIiwibW9kdWxlSWQiLCJSZXNvbHZlZExhenkiLCJwcm9taXNlIiwicHJvcHMiLCJzdGF0dXMiLCJidWJibGVFcnJvciIsIm5vV2FpdCIsInVuZGVmaW5lZCIsInBoYXNlIiwiQUZURVJfUEFJTlQiLCJwcmVsb2FkZWQiLCJzdGFydGVkIiwicHJvZmlsZXIiLCJjdXJyZW50IiwibG9hZCIsIm9uUmVzb2x2ZSIsImV2ZW50SW5mbyIsImlkZW50aWZpZXIiLCJvbkxvYWRDb21wbGV0ZSIsIm9uTG9hZFN0YXJ0IiwicmVzdWx0Iiwic3RhcnQiLCJjYXRjaCIsImVyciIsInRoZW4iLCJjb250ZXh0Iiwib25WYWx1ZSIsInYiLCJsb2FkZXIiLCJwcmVsb2FkIiwicHJpb3JpdHkiLCJMT1ciLCJzZXRGYWxsYmFjayIsImNvbnRlbnQiLCJnZXQiLCJzaGlmdCIsImNvbXBvbmVudCIsIm1vZGUiLCJSRU5ERVIiXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLEtBQVAsSUFBZ0JDLElBQWhCLEVBQXNCQyxVQUF0QixFQUFrQ0MsT0FBbEMsRUFBMkNDLFFBQTNDLFFBQTJELE9BQTNEO0FBR0EsU0FBU0MsU0FBVCxFQUFvQkMsSUFBcEIsUUFBZ0MsY0FBaEM7QUFDQSxTQUFTQyxTQUFULEVBQW9CQyxLQUFwQixRQUFpQyxpQkFBakM7QUFDQSxTQUFTQyxXQUFULFFBQTRCLGlCQUE1QjtBQUNBLFNBQVNDLGdCQUFULFFBQWlDLGFBQWpDO0FBQ0EsU0FBU0MsbUJBQVQsUUFBb0MsZ0JBQXBDO0FBRUEsU0FBU0MsUUFBVCxRQUF5QixjQUF6QjtBQUVBLFNBQVNDLGlCQUFULFFBQWtDLFdBQWxDO0FBQ0EsU0FBU0MseUJBQVQsUUFBMEMsd0JBQTFDO0FBQ0EsU0FBU0MsMEJBQVQsUUFBMkMseUJBQTNDO0FBQ0EsU0FBU0MsWUFBVCxRQUE2QixZQUE3QjtBQUNBLFNBQVNDLGVBQVQsUUFBZ0MsZ0JBQWhDO0FBR0EsU0FBU0MsZUFBVCxRQUFnQyxTQUFoQyxDLENBRUE7O0FBQ0EsTUFBTTtBQUFFQyxFQUFBQSxtQkFBbUIsR0FBR0M7QUFBeEIsSUFBdUNDLE1BQTdDO0FBRUEsT0FBTyxTQUFTQyxxQkFBVCxDQUE2RDtBQUNsRUMsRUFBQUEsS0FEa0U7QUFFbEVDLEVBQUFBLFFBRmtFO0FBR2xFQyxFQUFBQSxVQUhrRTtBQUlsRUMsRUFBQUE7QUFKa0UsQ0FBN0QsRUFVSjtBQUNELFFBQU1DLFlBQVksZ0JBQUcxQixJQUFJLENBQUMsTUFBTXVCLFFBQVEsQ0FBQ0ksT0FBaEIsQ0FBekI7QUFFQSxTQUFRQyxLQUFELElBQThCO0FBQ25DO0FBQ0E7QUFDQTtBQUNBLFVBQU0sQ0FBQ0MsTUFBRCxFQUFTQyxXQUFULElBQXdCM0IsUUFBUSxDQUFTLE9BQU87QUFDcEQ0QixNQUFBQSxNQUFNLEVBQUVDLFNBRDRDO0FBRXBEQyxNQUFBQSxLQUFLLEVBQUVYLEtBQUssS0FBS2YsS0FBSyxDQUFDMkIsV0FBaEIsR0FBOEIsS0FBOUIsR0FBc0MsSUFGTztBQUdwREMsTUFBQUEsU0FBUyxFQUFFYixLQUFLLEtBQUtmLEtBQUssQ0FBQzJCLFdBQWhCLEdBQThCLEtBQTlCLEdBQXNDLElBSEc7QUFJcERFLE1BQUFBLE9BQU8sRUFBRTtBQUoyQyxLQUFQLENBQVQsQ0FBdEM7QUFPQSxVQUFNQyxRQUFRLEdBQUdwQyxVQUFVLENBQUNlLGVBQUQsQ0FBVixDQUE0QnNCLE9BQTdDOztBQUVBLFVBQU1DLElBQUksR0FBRyxNQUFNO0FBQ2pCLFVBQUlWLE1BQU0sQ0FBQ08sT0FBUCxJQUFrQixDQUFDUCxNQUFNLENBQUNJLEtBQTFCLElBQW1DLENBQUNKLE1BQU0sQ0FBQ0UsTUFBL0MsRUFBdUQ7QUFDckQ7QUFDRDs7QUFFREYsTUFBQUEsTUFBTSxDQUFDTyxPQUFQLEdBQWlCLElBQWpCO0FBQ0EsVUFBSUksU0FBSjs7QUFDQSxVQUFJSCxRQUFKLEVBQWM7QUFDWixjQUFNSSxTQUFTLEdBQUc7QUFBRUMsVUFBQUEsVUFBVSxFQUFFakI7QUFBZCxTQUFsQjs7QUFDQWUsUUFBQUEsU0FBUyxHQUFHLE1BQU07QUFDaEJILFVBQUFBLFFBQVEsQ0FBQ00sY0FBVCxDQUF3QkYsU0FBeEI7QUFDRCxTQUZEOztBQUdBSixRQUFBQSxRQUFRLENBQUNPLFdBQVQsQ0FBcUJILFNBQXJCO0FBQ0Q7O0FBRUQsWUFBTUksTUFBTSxHQUFHdEIsUUFBUSxDQUFDdUIsS0FBVCxHQUFpQkMsS0FBakIsQ0FBd0JDLEdBQUQsSUFBZ0I7QUFDcEQ7QUFDQTtBQUNBbEIsUUFBQUEsV0FBVyxDQUFDLE1BQU07QUFDaEIsZ0JBQU1sQixpQkFBaUIsQ0FBQ29DLEdBQUQsQ0FBdkI7QUFDRCxTQUZVLENBQVg7QUFHRCxPQU5jLENBQWY7O0FBUUEsVUFBSVIsU0FBSixFQUFlO0FBQ2JLLFFBQUFBLE1BQU0sQ0FBQ0ksSUFBUCxDQUFZVCxTQUFaO0FBQ0Q7QUFDRixLQTFCRCxDQWJtQyxDQXlDbkM7OztBQUNBdkIsSUFBQUEsZUFBZSxDQUFDO0FBQ2RpQyxNQUFBQSxPQUFPLEVBQUUxQyxXQURLO0FBRWQrQixNQUFBQSxJQUZjO0FBR2RZLE1BQUFBLE9BQU8sRUFBRUMsQ0FBQyxJQUFLdkIsTUFBTSxDQUFDRSxNQUFQLEdBQWdCcUIsQ0FBQyxLQUFLO0FBSHZCLEtBQUQsQ0FBZjs7QUFNQSxRQUFJOUIsS0FBSyxLQUFLZixLQUFLLENBQUMyQixXQUFwQixFQUFpQztBQUMvQjtBQUNBakIsTUFBQUEsZUFBZSxDQUFDO0FBQ2RpQyxRQUFBQSxPQUFPLEVBQUV6QyxnQkFESztBQUVkOEIsUUFBQUEsSUFGYztBQUdkWSxRQUFBQSxPQUFPLEVBQUVDLENBQUMsSUFBS3ZCLE1BQU0sQ0FBQ0ksS0FBUCxHQUFlbUIsQ0FBQyxJQUFJOUI7QUFIckIsT0FBRCxDQUFmLENBRitCLENBUS9COztBQUNBcEIsTUFBQUEsT0FBTyxDQUFDLE1BQU07QUFDWixZQUFJLENBQUMyQixNQUFNLENBQUNNLFNBQVosRUFBdUI7QUFDckJOLFVBQUFBLE1BQU0sQ0FBQ00sU0FBUCxHQUFtQixJQUFuQjtBQUNBakIsVUFBQUEsbUJBQW1CLENBQUMsTUFBTTtBQUN4QixnQkFBSVcsTUFBTSxDQUFDTyxPQUFYLEVBQW9CO0FBQ3BCckIsWUFBQUEsWUFBWSxDQUFDO0FBQ1hzQyxjQUFBQSxNQUFNLEVBQUU5QixRQUFRLENBQUMrQixPQUROO0FBRVg3QixjQUFBQSxRQUZXO0FBR1g4QixjQUFBQSxRQUFRLEVBQUU1QyxRQUFRLENBQUM2QztBQUhSLGFBQUQsQ0FBWjtBQUtELFdBUGtCLENBQW5CO0FBUUQ7QUFDRixPQVpNLEVBWUosQ0FBQzNCLE1BQUQsQ0FaSSxDQUFQO0FBYUQ7O0FBRUQsVUFBTTtBQUFFNEIsTUFBQUE7QUFBRixRQUFrQnhELFVBQVUsQ0FBQ1MsbUJBQUQsQ0FBbEM7QUFFQVIsSUFBQUEsT0FBTyxDQUFDLE1BQU07QUFDWjtBQUNBLFlBQU13RCxPQUFPLEdBQUcsQ0FBQ3BELFNBQVMsQ0FBQ3FELEdBQVYsQ0FBY25DLFVBQWQsS0FBNkIsRUFBOUIsRUFBa0NvQyxLQUFsQyxFQUFoQjtBQUNBLFVBQUksQ0FBQ0YsT0FBTCxFQUFjLE9BSEYsQ0FLWjs7QUFDQSxZQUFNRyxTQUFTLEdBQ2J6RCxTQUFTLEdBQUcwRCxJQUFaLEtBQXFCekQsSUFBSSxDQUFDMEQsTUFBMUIsZ0JBQ0Usb0JBQUMseUJBQUQ7QUFBMkIsUUFBQSxFQUFFLEVBQUV2QyxVQUEvQjtBQUEyQyxRQUFBLE9BQU8sRUFBRWtDO0FBQXBELFFBREYsZ0JBR0Usb0JBQUMsMEJBQUQ7QUFBNEIsUUFBQSxFQUFFLEVBQUVsQyxVQUFoQztBQUE0QyxRQUFBLE9BQU8sRUFBRWtDO0FBQXJELFFBSko7QUFNQUQsTUFBQUEsV0FBVyxDQUFDSSxTQUFELENBQVg7QUFDRCxLQWJNLEVBYUosQ0FBQ0osV0FBRCxDQWJJLENBQVA7QUFlQSx3QkFBTyxvQkFBQyxZQUFELEVBQWtCN0IsS0FBbEIsQ0FBUDtBQUNELEdBMUZEO0FBMkZEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IGxhenksIHVzZUNvbnRleHQsIHVzZU1lbW8sIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHR5cGUgeyBDb21wb25lbnRQcm9wcywgQ29tcG9uZW50VHlwZSB9IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHsgZ2V0Q29uZmlnLCBNT0RFIH0gZnJvbSAnLi4vLi4vY29uZmlnJztcbmltcG9ydCB7IENPTExFQ1RFRCwgUEhBU0UgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgV2FpdENvbnRleHQgfSBmcm9tICcuLi8uLi9sYXp5LXdhaXQnO1xuaW1wb3J0IHsgTGF6eVBoYXNlQ29udGV4dCB9IGZyb20gJy4uLy4uL3BoYXNlJztcbmltcG9ydCB7IExhenlTdXNwZW5zZUNvbnRleHQgfSBmcm9tICcuLi8uLi9zdXNwZW5zZSc7XG5cbmltcG9ydCB7IFBSSU9SSVRZIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IERlZmVycmVkIH0gZnJvbSAnLi4vZGVmZXJyZWQnO1xuaW1wb3J0IHsgY3JlYXRlTG9hZGVyRXJyb3IgfSBmcm9tICcuLi9lcnJvcnMnO1xuaW1wb3J0IHsgUGxhY2Vob2xkZXJGYWxsYmFja1JlbmRlciB9IGZyb20gJy4uL3BsYWNlaG9sZGVycy9yZW5kZXInO1xuaW1wb3J0IHsgUGxhY2Vob2xkZXJGYWxsYmFja0h5ZHJhdGUgfSBmcm9tICcuLi9wbGFjZWhvbGRlcnMvaHlkcmF0ZSc7XG5pbXBvcnQgeyBwcmVsb2FkQXNzZXQgfSBmcm9tICcuLi9wcmVsb2FkJztcbmltcG9ydCB7IFByb2ZpbGVyQ29udGV4dCB9IGZyb20gJy4uLy4uL3Byb2ZpbGVyJztcblxuaW1wb3J0IHR5cGUgeyBTdGF0dXMgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IHVzZVN1YnNjcmlwdGlvbiB9IGZyb20gJy4vdXRpbHMnO1xuXG4vLyBAdHMtZXhwZWN0LWVycm9yIHJlcXVlc3RJZGxlQ2FsbGJhY2sgbWlnaHQgbm90IGV4aXN0XG5jb25zdCB7IHJlcXVlc3RJZGxlQ2FsbGJhY2sgPSBzZXRUaW1lb3V0IH0gPSB3aW5kb3c7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVDb21wb25lbnRDbGllbnQ8QyBleHRlbmRzIENvbXBvbmVudFR5cGU8YW55Pj4oe1xuICBkZWZlcixcbiAgZGVmZXJyZWQsXG4gIGRhdGFMYXp5SWQsXG4gIG1vZHVsZUlkLFxufToge1xuICBkZWZlcjogbnVtYmVyO1xuICBkZWZlcnJlZDogRGVmZXJyZWQ8Qz47XG4gIGRhdGFMYXp5SWQ6IHN0cmluZztcbiAgbW9kdWxlSWQ6IHN0cmluZztcbn0pIHtcbiAgY29uc3QgUmVzb2x2ZWRMYXp5ID0gbGF6eSgoKSA9PiBkZWZlcnJlZC5wcm9taXNlKTtcblxuICByZXR1cm4gKHByb3BzOiBDb21wb25lbnRQcm9wczxDPikgPT4ge1xuICAgIC8vIHVzZSBhIHNpbmdsZSBwaWVjZSBvZiBzdGF0ZSB0byBob2xkIGluZm8gYWJvdXQgcHJvZ3Jlc3Mgb3IgZXZlbnR1YWxseVxuICAgIC8vIHRocm93IGFuIGVycm9yLiBXZSBkbyBjaGFuZ2UgaXQgdmlhIGRpcmVjdCBtdXRhdGlvbiBhcyByZS1yZW5kZXJzXG4gICAgLy8gYnJlYWsgU3VzcGVuc2UgaW4gUmVhY3QgMTgsIG1ha2luZyBpdCBsb3NlIGh5ZHJhdGlvbiBzdGF0ZVxuICAgIGNvbnN0IFtzdGF0dXMsIGJ1YmJsZUVycm9yXSA9IHVzZVN0YXRlPFN0YXR1cz4oKCkgPT4gKHtcbiAgICAgIG5vV2FpdDogdW5kZWZpbmVkLFxuICAgICAgcGhhc2U6IGRlZmVyID09PSBQSEFTRS5BRlRFUl9QQUlOVCA/IGZhbHNlIDogdHJ1ZSxcbiAgICAgIHByZWxvYWRlZDogZGVmZXIgPT09IFBIQVNFLkFGVEVSX1BBSU5UID8gZmFsc2UgOiB0cnVlLFxuICAgICAgc3RhcnRlZDogZmFsc2UsXG4gICAgfSkpO1xuXG4gICAgY29uc3QgcHJvZmlsZXIgPSB1c2VDb250ZXh0KFByb2ZpbGVyQ29udGV4dCkuY3VycmVudDtcblxuICAgIGNvbnN0IGxvYWQgPSAoKSA9PiB7XG4gICAgICBpZiAoc3RhdHVzLnN0YXJ0ZWQgfHwgIXN0YXR1cy5waGFzZSB8fCAhc3RhdHVzLm5vV2FpdCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHN0YXR1cy5zdGFydGVkID0gdHJ1ZTtcbiAgICAgIGxldCBvblJlc29sdmU7XG4gICAgICBpZiAocHJvZmlsZXIpIHtcbiAgICAgICAgY29uc3QgZXZlbnRJbmZvID0geyBpZGVudGlmaWVyOiBtb2R1bGVJZCB9O1xuICAgICAgICBvblJlc29sdmUgPSAoKSA9PiB7XG4gICAgICAgICAgcHJvZmlsZXIub25Mb2FkQ29tcGxldGUoZXZlbnRJbmZvKTtcbiAgICAgICAgfTtcbiAgICAgICAgcHJvZmlsZXIub25Mb2FkU3RhcnQoZXZlbnRJbmZvKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgcmVzdWx0ID0gZGVmZXJyZWQuc3RhcnQoKS5jYXRjaCgoZXJyOiBFcnJvcikgPT4ge1xuICAgICAgICAvLyBUaHJvdyB0aGUgZXJyb3Igd2l0aGluIHRoZSBjb21wb25lbnQgbGlmZWN5Y2xlXG4gICAgICAgIC8vIHJlZmVyIHRvIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9pc3N1ZXMvMTE0MDlcbiAgICAgICAgYnViYmxlRXJyb3IoKCkgPT4ge1xuICAgICAgICAgIHRocm93IGNyZWF0ZUxvYWRlckVycm9yKGVycik7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG5cbiAgICAgIGlmIChvblJlc29sdmUpIHtcbiAgICAgICAgcmVzdWx0LnRoZW4ob25SZXNvbHZlKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgLy8gU3Vic2NyaWJlIHRvIExhenlXYWl0IGNvbnRleHQsIHRyaWdnZXJpbmcgbG9hZCB3aGVuIHVudGlsIGlzIHRydWVcbiAgICB1c2VTdWJzY3JpcHRpb24oe1xuICAgICAgY29udGV4dDogV2FpdENvbnRleHQsXG4gICAgICBsb2FkLFxuICAgICAgb25WYWx1ZTogdiA9PiAoc3RhdHVzLm5vV2FpdCA9IHYgPT09IDEpLFxuICAgIH0pO1xuXG4gICAgaWYgKGRlZmVyID09PSBQSEFTRS5BRlRFUl9QQUlOVCkge1xuICAgICAgLy8gU3Vic2NyaWJlIHRvIExhenlQaGFzZSBjb250ZXh0LCB0cmlnZ2VyaW5nIGxvYWQgd2hlbiBvd24gcGhhc2Ugc3RhcnRzXG4gICAgICB1c2VTdWJzY3JpcHRpb24oe1xuICAgICAgICBjb250ZXh0OiBMYXp5UGhhc2VDb250ZXh0LFxuICAgICAgICBsb2FkLFxuICAgICAgICBvblZhbHVlOiB2ID0+IChzdGF0dXMucGhhc2UgPSB2ID49IGRlZmVyKSxcbiAgICAgIH0pO1xuXG4gICAgICAvLyBTY2hlZHVsZSBwcmVsb2FkaW5nIGFzIHdpbGwgYmUgbmVlZGVkIHNvb25cbiAgICAgIHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICBpZiAoIXN0YXR1cy5wcmVsb2FkZWQpIHtcbiAgICAgICAgICBzdGF0dXMucHJlbG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgICByZXF1ZXN0SWRsZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgICAgICAgIGlmIChzdGF0dXMuc3RhcnRlZCkgcmV0dXJuO1xuICAgICAgICAgICAgcHJlbG9hZEFzc2V0KHtcbiAgICAgICAgICAgICAgbG9hZGVyOiBkZWZlcnJlZC5wcmVsb2FkLFxuICAgICAgICAgICAgICBtb2R1bGVJZCxcbiAgICAgICAgICAgICAgcHJpb3JpdHk6IFBSSU9SSVRZLkxPVyxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9LCBbc3RhdHVzXSk7XG4gICAgfVxuXG4gICAgY29uc3QgeyBzZXRGYWxsYmFjayB9ID0gdXNlQ29udGV4dChMYXp5U3VzcGVuc2VDb250ZXh0KTtcblxuICAgIHVzZU1lbW8oKCkgPT4ge1xuICAgICAgLy8gZmluZCBTU1IgY29udGVudCAob3IgZmFsbGJhY2tzKSB3cmFwcGVkIGluIGlucHV0cyBiYXNlZCBvbiBsYXp5SWRcbiAgICAgIGNvbnN0IGNvbnRlbnQgPSAoQ09MTEVDVEVELmdldChkYXRhTGF6eUlkKSB8fCBbXSkuc2hpZnQoKTtcbiAgICAgIGlmICghY29udGVudCkgcmV0dXJuO1xuXG4gICAgICAvLyBvdmVycmlkZSBTdXNwZW5zZSBmYWxsYmFjayB3aXRoIG1hZ2ljIGlucHV0IHdyYXBwZXJzXG4gICAgICBjb25zdCBjb21wb25lbnQgPVxuICAgICAgICBnZXRDb25maWcoKS5tb2RlID09PSBNT0RFLlJFTkRFUiA/IChcbiAgICAgICAgICA8UGxhY2Vob2xkZXJGYWxsYmFja1JlbmRlciBpZD17ZGF0YUxhenlJZH0gY29udGVudD17Y29udGVudH0gLz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8UGxhY2Vob2xkZXJGYWxsYmFja0h5ZHJhdGUgaWQ9e2RhdGFMYXp5SWR9IGNvbnRlbnQ9e2NvbnRlbnR9IC8+XG4gICAgICAgICk7XG4gICAgICBzZXRGYWxsYmFjayhjb21wb25lbnQpO1xuICAgIH0sIFtzZXRGYWxsYmFja10pO1xuXG4gICAgcmV0dXJuIDxSZXNvbHZlZExhenkgey4uLnByb3BzfSAvPjtcbiAgfTtcbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbXX0=
@@ -0,0 +1,24 @@
1
+ import { useContext, useMemo } from 'react';
2
+ export function useSubscription({
3
+ context,
4
+ load,
5
+ onValue
6
+ }) {
7
+ const {
8
+ subscribe,
9
+ currentValue
10
+ } = useContext(context);
11
+ useMemo(() => {
12
+ let unsubscribe = null;
13
+
14
+ const check = () => {
15
+ const done = onValue(currentValue());
16
+ if (done) load();
17
+ if (done && unsubscribe) unsubscribe();
18
+ return done;
19
+ };
20
+
21
+ unsubscribe = !check() ? subscribe(check) : null; // eslint-disable-next-line react-hooks/exhaustive-deps
22
+ }, []);
23
+ }
24
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9sYXp5L2NvbXBvbmVudHMvdXRpbHMudHMiXSwibmFtZXMiOlsidXNlQ29udGV4dCIsInVzZU1lbW8iLCJ1c2VTdWJzY3JpcHRpb24iLCJjb250ZXh0IiwibG9hZCIsIm9uVmFsdWUiLCJzdWJzY3JpYmUiLCJjdXJyZW50VmFsdWUiLCJ1bnN1YnNjcmliZSIsImNoZWNrIiwiZG9uZSJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsVUFBVCxFQUFxQkMsT0FBckIsUUFBb0MsT0FBcEM7QUFXQSxPQUFPLFNBQVNDLGVBQVQsQ0FBNkQ7QUFDbEVDLEVBQUFBLE9BRGtFO0FBRWxFQyxFQUFBQSxJQUZrRTtBQUdsRUMsRUFBQUE7QUFIa0UsQ0FBN0QsRUFJb0I7QUFDekIsUUFBTTtBQUFFQyxJQUFBQSxTQUFGO0FBQWFDLElBQUFBO0FBQWIsTUFBOEJQLFVBQVUsQ0FBQ0csT0FBRCxDQUE5QztBQUNBRixFQUFBQSxPQUFPLENBQUMsTUFBTTtBQUNaLFFBQUlPLFdBQWdDLEdBQUcsSUFBdkM7O0FBQ0EsVUFBTUMsS0FBSyxHQUFHLE1BQU07QUFDbEIsWUFBTUMsSUFBSSxHQUFHTCxPQUFPLENBQUNFLFlBQVksRUFBYixDQUFwQjtBQUNBLFVBQUlHLElBQUosRUFBVU4sSUFBSTtBQUNkLFVBQUlNLElBQUksSUFBSUYsV0FBWixFQUF5QkEsV0FBVztBQUVwQyxhQUFPRSxJQUFQO0FBQ0QsS0FORDs7QUFRQUYsSUFBQUEsV0FBVyxHQUFHLENBQUNDLEtBQUssRUFBTixHQUFXSCxTQUFTLENBQUNHLEtBQUQsQ0FBcEIsR0FBOEIsSUFBNUMsQ0FWWSxDQVdaO0FBQ0QsR0FaTSxFQVlKLEVBWkksQ0FBUDtBQWFEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlQ29udGV4dCwgdXNlTWVtbyB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB0eXBlIHsgQ29udGV4dCB9IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHR5cGUgeyBTdWJzY3JpcHRpb25Db250ZXh0VmFsdWUgfSBmcm9tICcuLi90eXBlcyc7XG5cbnR5cGUgVXNlU3Vic2NyaXB0aW9uQXJnczxDPiA9IHtcbiAgY29udGV4dDogQ29udGV4dDxDPjtcbiAgbG9hZDogKCkgPT4gdm9pZDtcbiAgb25WYWx1ZTogKHY6IG51bWJlcikgPT4gYm9vbGVhbjtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VTdWJzY3JpcHRpb248QyBleHRlbmRzIFN1YnNjcmlwdGlvbkNvbnRleHRWYWx1ZT4oe1xuICBjb250ZXh0LFxuICBsb2FkLFxuICBvblZhbHVlLFxufTogVXNlU3Vic2NyaXB0aW9uQXJnczxDPikge1xuICBjb25zdCB7IHN1YnNjcmliZSwgY3VycmVudFZhbHVlIH0gPSB1c2VDb250ZXh0KGNvbnRleHQpO1xuICB1c2VNZW1vKCgpID0+IHtcbiAgICBsZXQgdW5zdWJzY3JpYmU6ICgoKSA9PiB2b2lkKSB8IG51bGwgPSBudWxsO1xuICAgIGNvbnN0IGNoZWNrID0gKCkgPT4ge1xuICAgICAgY29uc3QgZG9uZSA9IG9uVmFsdWUoY3VycmVudFZhbHVlKCkpO1xuICAgICAgaWYgKGRvbmUpIGxvYWQoKTtcbiAgICAgIGlmIChkb25lICYmIHVuc3Vic2NyaWJlKSB1bnN1YnNjcmliZSgpO1xuXG4gICAgICByZXR1cm4gZG9uZTtcbiAgICB9O1xuXG4gICAgdW5zdWJzY3JpYmUgPSAhY2hlY2soKSA/IHN1YnNjcmliZShjaGVjaykgOiBudWxsO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgfSwgW10pO1xufVxuIl19
@@ -1,4 +1,7 @@
1
- export const createDeferred = loader => {
1
+ export const createDeferred = ({
2
+ loader,
3
+ preload
4
+ }) => {
2
5
  let resolve;
3
6
  const deferred = {
4
7
  promise: new Promise(res => {
@@ -16,25 +19,36 @@ export const createDeferred = loader => {
16
19
  };
17
20
  }),
18
21
  result: undefined,
19
- preload: () => {
22
+ preload: function (_preload) {
23
+ function preload() {
24
+ return _preload.apply(this, arguments);
25
+ }
26
+
27
+ preload.toString = function () {
28
+ return _preload.toString();
29
+ };
30
+
31
+ return preload;
32
+ }(() => {
20
33
  if (deferred.result) {
21
34
  return;
22
35
  }
23
36
 
24
- loader().then(m => {
37
+ preload().then(m => {
25
38
  deferred.result = m;
39
+ }).catch(() => {// Do nothing...
26
40
  });
27
- },
41
+ }),
28
42
  start: () => {
29
43
  if (deferred.result) {
30
44
  resolve(deferred.result);
31
- return deferred.promise.then(() => {// Return void...
32
- });
33
- } else {
34
- return loader().then(resolve);
35
- }
45
+ return Promise.resolve();
46
+ } // Make a new loader request when none have started or resolved yet
47
+
48
+
49
+ return loader().then(resolve);
36
50
  }
37
51
  };
38
52
  return deferred;
39
53
  };
40
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9sYXp5L2RlZmVycmVkLnRzIl0sIm5hbWVzIjpbImNyZWF0ZURlZmVycmVkIiwibG9hZGVyIiwicmVzb2x2ZSIsImRlZmVycmVkIiwicHJvbWlzZSIsIlByb21pc2UiLCJyZXMiLCJtIiwid2l0aERlZmF1bHQiLCJyZXN1bHQiLCJkZWZhdWx0IiwidW5kZWZpbmVkIiwicHJlbG9hZCIsInRoZW4iLCJzdGFydCJdLCJtYXBwaW5ncyI6IkFBVUEsT0FBTyxNQUFNQSxjQUFjLEdBQ3pCQyxNQUQ0QixJQUVaO0FBQ2hCLE1BQUlDLE9BQUo7QUFFQSxRQUFNQyxRQUFRLEdBQUc7QUFDZkMsSUFBQUEsT0FBTyxFQUFFLElBQUlDLE9BQUosQ0FBaUNDLEdBQUcsSUFBSTtBQUMvQ0osTUFBQUEsT0FBTyxHQUFJSyxDQUFELElBQVk7QUFDcEIsWUFBSUMsV0FBSjtBQUNBTCxRQUFBQSxRQUFRLENBQUNNLE1BQVQsR0FBa0JGLENBQWxCOztBQUVBLFlBQUksQ0FBQ0EsQ0FBQyxDQUFDRyxPQUFQLEVBQWdCO0FBQ2RGLFVBQUFBLFdBQVcsR0FBRztBQUFFRSxZQUFBQSxPQUFPLEVBQUVIO0FBQVgsV0FBZDtBQUNEOztBQUVERCxRQUFBQSxHQUFHLENBQUNFLFdBQVcsR0FBR0EsV0FBSCxHQUFpQkQsQ0FBN0IsQ0FBSDtBQUNELE9BVEQ7QUFVRCxLQVhRLENBRE07QUFhZkUsSUFBQUEsTUFBTSxFQUFFRSxTQWJPO0FBY2ZDLElBQUFBLE9BQU8sRUFBRSxNQUFNO0FBQ2IsVUFBSVQsUUFBUSxDQUFDTSxNQUFiLEVBQXFCO0FBQ25CO0FBQ0Q7O0FBRURSLE1BQUFBLE1BQU0sR0FBR1ksSUFBVCxDQUFlTixDQUFELElBQVk7QUFDeEJKLFFBQUFBLFFBQVEsQ0FBQ00sTUFBVCxHQUFrQkYsQ0FBbEI7QUFDRCxPQUZEO0FBR0QsS0F0QmM7QUF1QmZPLElBQUFBLEtBQUssRUFBRSxNQUFNO0FBQ1gsVUFBSVgsUUFBUSxDQUFDTSxNQUFiLEVBQXFCO0FBQ25CUCxRQUFBQSxPQUFPLENBQUNDLFFBQVEsQ0FBQ00sTUFBVixDQUFQO0FBRUEsZUFBT04sUUFBUSxDQUFDQyxPQUFULENBQWlCUyxJQUFqQixDQUFzQixNQUFNLENBQ2pDO0FBQ0QsU0FGTSxDQUFQO0FBR0QsT0FORCxNQU1PO0FBQ0wsZUFBT1osTUFBTSxHQUFHWSxJQUFULENBQWNYLE9BQWQsQ0FBUDtBQUNEO0FBQ0Y7QUFqQ2MsR0FBakI7QUFvQ0EsU0FBT0MsUUFBUDtBQUNELENBMUNNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50VHlwZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IENsaWVudExvYWRlciwgSmF2YVNjcmlwdE1vZHVsZSB9IGZyb20gJy4vbG9hZGVyJztcblxuZXhwb3J0IHR5cGUgRGVmZXJyZWQ8Qz4gPSB7XG4gIHByb21pc2U6IFByb21pc2U8SmF2YVNjcmlwdE1vZHVsZTxDPj47XG4gIHJlc3VsdDogSmF2YVNjcmlwdE1vZHVsZTxDPiB8IHZvaWQ7XG4gIHByZWxvYWQoKTogdm9pZDtcbiAgc3RhcnQoKTogUHJvbWlzZTx2b2lkPjtcbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVEZWZlcnJlZCA9IDxDIGV4dGVuZHMgQ29tcG9uZW50VHlwZTxhbnk+PihcbiAgbG9hZGVyOiBDbGllbnRMb2FkZXI8Qz5cbik6IERlZmVycmVkPEM+ID0+IHtcbiAgbGV0IHJlc29sdmU6IChtOiBhbnkpID0+IHZvaWQ7XG5cbiAgY29uc3QgZGVmZXJyZWQgPSB7XG4gICAgcHJvbWlzZTogbmV3IFByb21pc2U8SmF2YVNjcmlwdE1vZHVsZTxDPj4ocmVzID0+IHtcbiAgICAgIHJlc29sdmUgPSAobTogYW55KSA9PiB7XG4gICAgICAgIGxldCB3aXRoRGVmYXVsdDtcbiAgICAgICAgZGVmZXJyZWQucmVzdWx0ID0gbTtcblxuICAgICAgICBpZiAoIW0uZGVmYXVsdCkge1xuICAgICAgICAgIHdpdGhEZWZhdWx0ID0geyBkZWZhdWx0OiBtIH07XG4gICAgICAgIH1cblxuICAgICAgICByZXMod2l0aERlZmF1bHQgPyB3aXRoRGVmYXVsdCA6IG0pO1xuICAgICAgfTtcbiAgICB9KSxcbiAgICByZXN1bHQ6IHVuZGVmaW5lZCxcbiAgICBwcmVsb2FkOiAoKSA9PiB7XG4gICAgICBpZiAoZGVmZXJyZWQucmVzdWx0KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgbG9hZGVyKCkudGhlbigobTogYW55KSA9PiB7XG4gICAgICAgIGRlZmVycmVkLnJlc3VsdCA9IG07XG4gICAgICB9KTtcbiAgICB9LFxuICAgIHN0YXJ0OiAoKSA9PiB7XG4gICAgICBpZiAoZGVmZXJyZWQucmVzdWx0KSB7XG4gICAgICAgIHJlc29sdmUoZGVmZXJyZWQucmVzdWx0KTtcblxuICAgICAgICByZXR1cm4gZGVmZXJyZWQucHJvbWlzZS50aGVuKCgpID0+IHtcbiAgICAgICAgICAvLyBSZXR1cm4gdm9pZC4uLlxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBsb2FkZXIoKS50aGVuKHJlc29sdmUpO1xuICAgICAgfVxuICAgIH0sXG4gIH07XG5cbiAgcmV0dXJuIGRlZmVycmVkO1xufTtcbiJdfQ==
54
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9sYXp5L2RlZmVycmVkLnRzIl0sIm5hbWVzIjpbImNyZWF0ZURlZmVycmVkIiwibG9hZGVyIiwicHJlbG9hZCIsInJlc29sdmUiLCJkZWZlcnJlZCIsInByb21pc2UiLCJQcm9taXNlIiwicmVzIiwibSIsIndpdGhEZWZhdWx0IiwicmVzdWx0IiwiZGVmYXVsdCIsInVuZGVmaW5lZCIsInRoZW4iLCJjYXRjaCIsInN0YXJ0Il0sIm1hcHBpbmdzIjoiQUFlQSxPQUFPLE1BQU1BLGNBQWMsR0FBRyxDQUErQjtBQUMzREMsRUFBQUEsTUFEMkQ7QUFFM0RDLEVBQUFBO0FBRjJELENBQS9CLEtBR2U7QUFDM0MsTUFBSUMsT0FBSjtBQUVBLFFBQU1DLFFBQVEsR0FBRztBQUNmQyxJQUFBQSxPQUFPLEVBQUUsSUFBSUMsT0FBSixDQUFpQ0MsR0FBRyxJQUFJO0FBQy9DSixNQUFBQSxPQUFPLEdBQUlLLENBQUQsSUFBWTtBQUNwQixZQUFJQyxXQUFKO0FBQ0FMLFFBQUFBLFFBQVEsQ0FBQ00sTUFBVCxHQUFrQkYsQ0FBbEI7O0FBRUEsWUFBSSxDQUFDQSxDQUFDLENBQUNHLE9BQVAsRUFBZ0I7QUFDZEYsVUFBQUEsV0FBVyxHQUFHO0FBQUVFLFlBQUFBLE9BQU8sRUFBRUg7QUFBWCxXQUFkO0FBQ0Q7O0FBRURELFFBQUFBLEdBQUcsQ0FBQ0UsV0FBVyxHQUFHQSxXQUFILEdBQWlCRCxDQUE3QixDQUFIO0FBQ0QsT0FURDtBQVVELEtBWFEsQ0FETTtBQWFmRSxJQUFBQSxNQUFNLEVBQUVFLFNBYk87QUFjZlYsSUFBQUEsT0FBTztBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQSxNQUFFLE1BQU07QUFDYixVQUFJRSxRQUFRLENBQUNNLE1BQWIsRUFBcUI7QUFDbkI7QUFDRDs7QUFFRFIsTUFBQUEsT0FBTyxHQUNKVyxJQURILENBQ1NMLENBQUQsSUFBWTtBQUNoQkosUUFBQUEsUUFBUSxDQUFDTSxNQUFULEdBQWtCRixDQUFsQjtBQUNELE9BSEgsRUFJR00sS0FKSCxDQUlTLE1BQU0sQ0FDWDtBQUNELE9BTkg7QUFPRCxLQVpNLENBZFE7QUEyQmZDLElBQUFBLEtBQUssRUFBRSxNQUFNO0FBQ1gsVUFBSVgsUUFBUSxDQUFDTSxNQUFiLEVBQXFCO0FBQ25CUCxRQUFBQSxPQUFPLENBQUNDLFFBQVEsQ0FBQ00sTUFBVixDQUFQO0FBRUEsZUFBT0osT0FBTyxDQUFDSCxPQUFSLEVBQVA7QUFDRCxPQUxVLENBT1g7OztBQUNBLGFBQU9GLE1BQU0sR0FBR1ksSUFBVCxDQUFjVixPQUFkLENBQVA7QUFDRDtBQXBDYyxHQUFqQjtBQXVDQSxTQUFPQyxRQUFQO0FBQ0QsQ0E5Q00iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRUeXBlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgQ2xpZW50TG9hZGVyLCBKYXZhU2NyaXB0TW9kdWxlIH0gZnJvbSAnLi9sb2FkZXInO1xuXG5leHBvcnQgdHlwZSBDcmVhdGVEZWZlcnJlZE9wdGlvbnM8Qz4gPSB7XG4gIGxvYWRlcjogQ2xpZW50TG9hZGVyPEM+O1xuICBwcmVsb2FkOiBDbGllbnRMb2FkZXI8Qz47XG59O1xuXG5leHBvcnQgdHlwZSBEZWZlcnJlZDxDPiA9IHtcbiAgcHJlbG9hZCgpOiB2b2lkO1xuICBwcm9taXNlOiBQcm9taXNlPEphdmFTY3JpcHRNb2R1bGU8Qz4+O1xuICByZXN1bHQ6IEphdmFTY3JpcHRNb2R1bGU8Qz4gfCB2b2lkO1xuICBzdGFydCgpOiBQcm9taXNlPHZvaWQ+O1xufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZURlZmVycmVkID0gPEMgZXh0ZW5kcyBDb21wb25lbnRUeXBlPGFueT4+KHtcbiAgbG9hZGVyLFxuICBwcmVsb2FkLFxufTogQ3JlYXRlRGVmZXJyZWRPcHRpb25zPEM+KTogRGVmZXJyZWQ8Qz4gPT4ge1xuICBsZXQgcmVzb2x2ZTogKG06IGFueSkgPT4gdm9pZDtcblxuICBjb25zdCBkZWZlcnJlZCA9IHtcbiAgICBwcm9taXNlOiBuZXcgUHJvbWlzZTxKYXZhU2NyaXB0TW9kdWxlPEM+PihyZXMgPT4ge1xuICAgICAgcmVzb2x2ZSA9IChtOiBhbnkpID0+IHtcbiAgICAgICAgbGV0IHdpdGhEZWZhdWx0O1xuICAgICAgICBkZWZlcnJlZC5yZXN1bHQgPSBtO1xuXG4gICAgICAgIGlmICghbS5kZWZhdWx0KSB7XG4gICAgICAgICAgd2l0aERlZmF1bHQgPSB7IGRlZmF1bHQ6IG0gfTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJlcyh3aXRoRGVmYXVsdCA/IHdpdGhEZWZhdWx0IDogbSk7XG4gICAgICB9O1xuICAgIH0pLFxuICAgIHJlc3VsdDogdW5kZWZpbmVkLFxuICAgIHByZWxvYWQ6ICgpID0+IHtcbiAgICAgIGlmIChkZWZlcnJlZC5yZXN1bHQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBwcmVsb2FkKClcbiAgICAgICAgLnRoZW4oKG06IGFueSkgPT4ge1xuICAgICAgICAgIGRlZmVycmVkLnJlc3VsdCA9IG07XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaCgoKSA9PiB7XG4gICAgICAgICAgLy8gRG8gbm90aGluZy4uLlxuICAgICAgICB9KTtcbiAgICB9LFxuICAgIHN0YXJ0OiAoKSA9PiB7XG4gICAgICBpZiAoZGVmZXJyZWQucmVzdWx0KSB7XG4gICAgICAgIHJlc29sdmUoZGVmZXJyZWQucmVzdWx0KTtcblxuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgICB9XG5cbiAgICAgIC8vIE1ha2UgYSBuZXcgbG9hZGVyIHJlcXVlc3Qgd2hlbiBub25lIGhhdmUgc3RhcnRlZCBvciByZXNvbHZlZCB5ZXRcbiAgICAgIHJldHVybiBsb2FkZXIoKS50aGVuKHJlc29sdmUpO1xuICAgIH0sXG4gIH07XG5cbiAgcmV0dXJuIGRlZmVycmVkO1xufTtcbiJdfQ==