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.
- package/dist/cjs/index.js +21 -1
- package/dist/cjs/lazy/components/client.js +74 -50
- package/dist/cjs/lazy/components/types.js +2 -0
- package/dist/cjs/lazy/components/utils.js +32 -0
- package/dist/cjs/lazy/deferred.js +12 -8
- package/dist/cjs/lazy/index.js +16 -12
- package/dist/cjs/lazy/placeholders/render.js +5 -3
- package/dist/cjs/lazy/preload/index.js +6 -1
- package/dist/cjs/lazy/preload/utils.js +26 -1
- package/dist/cjs/lazy-wait/context.js +5 -7
- package/dist/cjs/lazy-wait/index.js +7 -7
- package/dist/cjs/lazy-wait/main.js +11 -14
- package/dist/cjs/phase/context.js +2 -2
- package/dist/cjs/phase/index.js +1 -9
- package/dist/cjs/profiler/index.js +16 -0
- package/dist/cjs/suspense/context.js +2 -3
- package/dist/cjs/utils/index.js +2 -10
- package/dist/esm/index.js +3 -2
- package/dist/esm/lazy/components/client.js +72 -51
- package/dist/esm/lazy/components/types.js +2 -0
- package/dist/esm/lazy/components/utils.js +24 -0
- package/dist/esm/lazy/deferred.js +24 -10
- package/dist/esm/lazy/index.js +19 -15
- package/dist/esm/lazy/placeholders/render.js +5 -3
- package/dist/esm/lazy/preload/index.js +5 -1
- package/dist/esm/lazy/preload/utils.js +25 -1
- package/dist/esm/lazy-wait/context.js +3 -5
- package/dist/esm/lazy-wait/index.js +2 -2
- package/dist/esm/lazy-wait/main.js +12 -15
- package/dist/esm/phase/context.js +2 -2
- package/dist/esm/phase/index.js +1 -2
- package/dist/esm/profiler/index.js +6 -0
- package/dist/esm/suspense/context.js +2 -3
- package/dist/esm/utils/index.js +2 -10
- package/dist/types/index.d.ts +3 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/lazy/components/client.d.ts +2 -3
- package/dist/types/lazy/components/client.d.ts.map +1 -1
- package/dist/types/lazy/components/types.d.ts +7 -0
- package/dist/types/lazy/components/types.d.ts.map +1 -0
- package/dist/types/lazy/components/utils.d.ts +10 -0
- package/dist/types/lazy/components/utils.d.ts.map +1 -0
- package/dist/types/lazy/deferred.d.ts +6 -2
- package/dist/types/lazy/deferred.d.ts.map +1 -1
- package/dist/types/lazy/index.d.ts.map +1 -1
- package/dist/types/lazy/placeholders/render.d.ts.map +1 -1
- package/dist/types/lazy/preload/index.d.ts.map +1 -1
- package/dist/types/lazy/preload/utils.d.ts.map +1 -1
- package/dist/types/lazy/types.d.ts +4 -0
- package/dist/types/lazy/types.d.ts.map +1 -1
- package/dist/types/lazy-wait/context.d.ts +3 -8
- package/dist/types/lazy-wait/context.d.ts.map +1 -1
- package/dist/types/lazy-wait/index.d.ts +1 -1
- package/dist/types/lazy-wait/index.d.ts.map +1 -1
- package/dist/types/lazy-wait/main.d.ts.map +1 -1
- package/dist/types/phase/context.d.ts +5 -5
- package/dist/types/phase/context.d.ts.map +1 -1
- package/dist/types/phase/index.d.ts +0 -1
- package/dist/types/phase/index.d.ts.map +1 -1
- package/dist/types/profiler/index.d.ts +17 -0
- package/dist/types/profiler/index.d.ts.map +1 -0
- package/dist/types/suspense/context.d.ts +1 -1
- package/dist/types/suspense/context.d.ts.map +1 -1
- package/dist/types/suspense/types.d.ts +2 -1
- package/dist/types/suspense/types.d.ts.map +1 -1
- package/dist/types/utils/index.d.ts.map +1 -1
- package/package.json +2 -2
- package/dist/cjs/lazy-wait/utils.js +0 -25
- package/dist/cjs/phase/controller.js +0 -28
- package/dist/esm/lazy-wait/utils.js +0 -14
- package/dist/esm/phase/controller.js +0 -17
- package/dist/types/lazy-wait/utils.d.ts +0 -2
- package/dist/types/lazy-wait/utils.d.ts.map +0 -1
- package/dist/types/phase/controller.d.ts +0 -2
- 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, "
|
|
6
|
+
Object.defineProperty(exports, "WaitContext", {
|
|
7
7
|
enumerable: true,
|
|
8
8
|
get: function () {
|
|
9
|
-
return
|
|
9
|
+
return _context.WaitContext;
|
|
10
10
|
}
|
|
11
11
|
});
|
|
12
|
-
Object.defineProperty(exports, "
|
|
12
|
+
Object.defineProperty(exports, "LazyWait", {
|
|
13
13
|
enumerable: true,
|
|
14
14
|
get: function () {
|
|
15
|
-
return
|
|
15
|
+
return _main.LazyWait;
|
|
16
16
|
}
|
|
17
17
|
});
|
|
18
18
|
|
|
19
|
-
var
|
|
19
|
+
var _context = require("./context");
|
|
20
20
|
|
|
21
|
-
var
|
|
22
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
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
|
|
21
|
-
const value = (0, _react.useRef)(until &&
|
|
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 =
|
|
35
|
-
value.current =
|
|
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(
|
|
43
|
-
return
|
|
44
|
-
}, [
|
|
45
|
-
return /*#__PURE__*/_react.default.createElement(_context.
|
|
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,
|
|
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
|
-
|
|
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,
|
|
43
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9waGFzZS9jb250ZXh0LnRzeCJdLCJuYW1lcyI6WyJDVVJSRU5UX1BIQVNFIiwiUEhBU0UiLCJQQUlOVCIsInNldEN1cnJlbnQiLCJwaGFzZSIsIkxJU1RFTkVSUyIsInNsaWNlIiwiZm9yRWFjaCIsImxpc3RlbmVyIiwiTGF6eVBoYXNlQ29udGV4dCIsInN1YnNjcmliZSIsImN1cnJlbnRWYWx1ZSIsImFwaSIsInN0YXJ0TmV4dFBoYXNlIiwiQUZURVJfUEFJTlQiLCJyZXNldFBoYXNlIiwidXNlTGF6eVBoYXNlIiwidiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQUVBOztBQUdBOztBQUVBOztBQUVBLElBQUlBLGFBQWEsR0FBR0MsaUJBQU1DLEtBQTFCOztBQUVPLE1BQU1DLFVBQVUsR0FBSUMsS0FBRCxJQUFtQjtBQUMzQ0osRUFBQUEsYUFBYSxHQUFHSSxLQUFoQjs7QUFDQUMsdUJBQVVDLEtBQVYsQ0FBZ0IsQ0FBaEIsRUFBbUJDLE9BQW5CLENBQTRCQyxRQUFELElBQXdCQSxRQUFRLENBQUNKLEtBQUQsQ0FBM0Q7QUFDRCxDQUhNOzs7QUFZQSxNQUFNSyxnQkFBZ0IsZ0JBQUcsMEJBQW1DO0FBQ2pFQyxFQUFBQSxTQUFTLEVBQUUsNEJBQWdCTCxvQkFBaEIsQ0FEc0Q7QUFFakVNLEVBQUFBLFlBQVksRUFBRSxNQUFNWCxhQUY2QztBQUdqRVksRUFBQUEsR0FBRyxFQUFFO0FBQ0hDLElBQUFBLGNBQWMsRUFBRSxNQUFNO0FBQ3BCVixNQUFBQSxVQUFVLENBQUNGLGlCQUFNYSxXQUFQLENBQVY7QUFDRCxLQUhFO0FBSUhDLElBQUFBLFVBQVUsRUFBRSxNQUFNWixVQUFVLENBQUNGLGlCQUFNQyxLQUFQO0FBSnpCO0FBSDRELENBQW5DLENBQXpCOzs7QUFXQSxNQUFNYyxZQUFZLEdBQUcsTUFBTTtBQUNoQyxRQUFNQyxDQUFDLEdBQUcsdUJBQVdSLGdCQUFYLENBQVY7QUFFQSxTQUFPUSxDQUFDLENBQUNMLEdBQVQ7QUFDRCxDQUpNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlQ29udGV4dCwgdXNlQ29udGV4dCB9IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHsgUEhBU0UgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHR5cGUgeyBTdWJzY3JpcHRpb25Db250ZXh0VmFsdWUgfSBmcm9tICcuLi9sYXp5L3R5cGVzJztcblxuaW1wb3J0IHsgTElTVEVORVJTIH0gZnJvbSAnLi9saXN0ZW5lcnMnO1xuaW1wb3J0IHR5cGUgeyBMaXN0ZW5lciB9IGZyb20gJy4vbGlzdGVuZXJzJztcbmltcG9ydCB7IGNyZWF0ZVN1YnNjcmliZSB9IGZyb20gJy4vdXRpbHMnO1xuXG5sZXQgQ1VSUkVOVF9QSEFTRSA9IFBIQVNFLlBBSU5UO1xuXG5leHBvcnQgY29uc3Qgc2V0Q3VycmVudCA9IChwaGFzZTogbnVtYmVyKSA9PiB7XG4gIENVUlJFTlRfUEhBU0UgPSBwaGFzZTtcbiAgTElTVEVORVJTLnNsaWNlKDApLmZvckVhY2goKGxpc3RlbmVyOiBMaXN0ZW5lcikgPT4gbGlzdGVuZXIocGhhc2UpKTtcbn07XG5cbmludGVyZmFjZSBMYXp5UGhhc2VDb250ZXh0QXBpIGV4dGVuZHMgU3Vic2NyaXB0aW9uQ29udGV4dFZhbHVlIHtcbiAgYXBpOiB7XG4gICAgc3RhcnROZXh0UGhhc2U6ICgpID0+IHZvaWQ7XG4gICAgcmVzZXRQaGFzZTogKCkgPT4gdm9pZDtcbiAgfTtcbn1cblxuZXhwb3J0IGNvbnN0IExhenlQaGFzZUNvbnRleHQgPSBjcmVhdGVDb250ZXh0PExhenlQaGFzZUNvbnRleHRBcGk+KHtcbiAgc3Vic2NyaWJlOiBjcmVhdGVTdWJzY3JpYmUoTElTVEVORVJTKSxcbiAgY3VycmVudFZhbHVlOiAoKSA9PiBDVVJSRU5UX1BIQVNFLFxuICBhcGk6IHtcbiAgICBzdGFydE5leHRQaGFzZTogKCkgPT4ge1xuICAgICAgc2V0Q3VycmVudChQSEFTRS5BRlRFUl9QQUlOVCk7XG4gICAgfSxcbiAgICByZXNldFBoYXNlOiAoKSA9PiBzZXRDdXJyZW50KFBIQVNFLlBBSU5UKSxcbiAgfSxcbn0pO1xuXG5leHBvcnQgY29uc3QgdXNlTGF6eVBoYXNlID0gKCkgPT4ge1xuICBjb25zdCB2ID0gdXNlQ29udGV4dChMYXp5UGhhc2VDb250ZXh0KTtcblxuICByZXR1cm4gdi5hcGk7XG59O1xuIl19
|
package/dist/cjs/phase/index.js
CHANGED
|
@@ -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,
|
|
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
|
-
|
|
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,
|
|
21
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zdXNwZW5zZS9jb250ZXh0LnRzeCJdLCJuYW1lcyI6WyJMYXp5U3VzcGVuc2VDb250ZXh0IiwiZmFsbGJhY2siLCJzZXRGYWxsYmFjayIsImNvbnNvbGUiLCJ3YXJuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7Ozs7OztBQUdPLE1BQU1BLG1CQUFtQixnQkFBRywwQkFBdUM7QUFDeEVDLEVBQUFBLFFBQVEsZUFBRSw2QkFBQyxlQUFELE9BRDhEO0FBRXhFQyxFQUFBQSxXQUFXLEVBQUUsTUFBTTtBQUNqQkMsSUFBQUEsT0FBTyxDQUFDQyxJQUFSLENBQWEsc0NBQWI7QUFDRDtBQUp1RSxDQUF2QyxDQUE1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBGcmFnbWVudCwgY3JlYXRlQ29udGV4dCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB0eXBlIHsgTGF6eVN1c3BlbnNlQ29udGV4dFR5cGUgfSBmcm9tICcuL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IExhenlTdXNwZW5zZUNvbnRleHQgPSBjcmVhdGVDb250ZXh0PExhenlTdXNwZW5zZUNvbnRleHRUeXBlPih7XG4gIGZhbGxiYWNrOiA8RnJhZ21lbnQgLz4sXG4gIHNldEZhbGxiYWNrOiAoKSA9PiB7XG4gICAgY29uc29sZS53YXJuKCdNaXNzaW5nIDxMb29zZWx5U3VzcGVuc2UgLz4gYm91bmRhcnknKTtcbiAgfSxcbn0pO1xuIl19
|
package/dist/cjs/utils/index.js
CHANGED
|
@@ -35,15 +35,7 @@ const displayNameFromId = id => {
|
|
|
35
35
|
exports.displayNameFromId = displayNameFromId;
|
|
36
36
|
|
|
37
37
|
const isNodeEnvironment = () => {
|
|
38
|
-
|
|
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,
|
|
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
|
-
|
|
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,
|
|
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 {
|
|
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
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
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
|
|
33
|
-
|
|
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
|
-
|
|
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.
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
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
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
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
|
-
}
|
|
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9sYXp5L2NvbXBvbmVudHMvY2xpZW50LnRzeCJdLCJuYW1lcyI6WyJSZWFjdCIsImxhenkiLCJ1c2VDb250ZXh0IiwidXNlTWVtbyIsInVzZVN0YXRlIiwiZ2V0Q29uZmlnIiwiTU9ERSIsIkNPTExFQ1RFRCIsIlBIQVNFIiwiV2FpdENvbnRleHQiLCJMYXp5UGhhc2VDb250ZXh0IiwiTGF6eVN1c3BlbnNlQ29udGV4dCIsIlBSSU9SSVRZIiwiY3JlYXRlTG9hZGVyRXJyb3IiLCJQbGFjZWhvbGRlckZhbGxiYWNrUmVuZGVyIiwiUGxhY2Vob2xkZXJGYWxsYmFja0h5ZHJhdGUiLCJwcmVsb2FkQXNzZXQiLCJQcm9maWxlckNvbnRleHQiLCJ1c2VTdWJzY3JpcHRpb24iLCJyZXF1ZXN0SWRsZUNhbGxiYWNrIiwic2V0VGltZW91dCIsIndpbmRvdyIsImNyZWF0ZUNvbXBvbmVudENsaWVudCIsImRlZmVyIiwiZGVmZXJyZWQiLCJkYXRhTGF6eUlkIiwibW9kdWxlSWQiLCJSZXNvbHZlZExhenkiLCJwcm9taXNlIiwicHJvcHMiLCJzdGF0dXMiLCJidWJibGVFcnJvciIsIm5vV2FpdCIsInVuZGVmaW5lZCIsInBoYXNlIiwiQUZURVJfUEFJTlQiLCJwcmVsb2FkZWQiLCJzdGFydGVkIiwicHJvZmlsZXIiLCJjdXJyZW50IiwibG9hZCIsIm9uUmVzb2x2ZSIsImV2ZW50SW5mbyIsImlkZW50aWZpZXIiLCJvbkxvYWRDb21wbGV0ZSIsIm9uTG9hZFN0YXJ0IiwicmVzdWx0Iiwic3RhcnQiLCJjYXRjaCIsImVyciIsInRoZW4iLCJjb250ZXh0Iiwib25WYWx1ZSIsInYiLCJsb2FkZXIiLCJwcmVsb2FkIiwicHJpb3JpdHkiLCJMT1ciLCJzZXRGYWxsYmFjayIsImNvbnRlbnQiLCJnZXQiLCJzaGlmdCIsImNvbXBvbmVudCIsIm1vZGUiLCJSRU5ERVIiXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLEtBQVAsSUFBZ0JDLElBQWhCLEVBQXNC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QUFTLEdBQUcwRCxJQUFaLEtBQXFCekQsSUFBSSxDQUFDMEQsTUFBMUIsZ0JBQ0Usb0JBQUMseUJBQUQ7QUFBMkIsUUFBQSxFQUFFLEVBQUV2QyxVQUEvQjtBQUEyQyxRQUFBLE9BQU8sRUFBRWtDO0FBQXBELFFBREYsZ0JBR0Usb0JBQUMsMEJBQUQ7QUFBNEIsUUFBQSxFQUFFLEVBQUVsQyxVQUFoQztBQUE0QyxRQUFBLE9BQU8sRUFBRWtDO0FBQXJELFFBSko7QUFNQUQsTUFBQUEsV0FBVyxDQUFDSSxTQUFELENBQVg7QUFDRCxLQWJNLEVBYUosQ0FBQ0osV0FBRCxDQWJJLENBQVA7QUFlQSx3QkFBTyxvQkFBQyxZQUFELEVBQWtCN0IsS0FBbEIsQ0FBUDtBQUNELEdBMUZEO0FBMkZEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IGxhenksIHVzZUNvbnRleHQsIHVzZU1lbW8sIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHR5cGUgeyBDb21wb25lbnRQcm9wcywgQ29tcG9uZW50VHlwZSB9IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHsgZ2V0Q29uZmlnLCBNT0RFIH0gZnJvbSAnLi4vLi4vY29uZmlnJztcbmltcG9ydCB7IENPTExFQ1RFRCwgUEhBU0UgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgV2FpdENvbnRleHQgfSBmcm9tICcuLi8uLi9sYXp5LXdhaXQnO1xuaW1wb3J0IHsgTGF6eVBoYXNlQ29udGV4dCB9IGZyb20gJy4uLy4uL3BoYXNlJztcbmltcG9ydCB7IExhenlTdXNwZW5zZUNvbnRleHQgfSBmcm9tICcuLi8uLi9zdXNwZW5zZSc7XG5cbmltcG9ydCB7IFBSSU9SSVRZIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IERlZmVycmVkIH0gZnJvbSAnLi4vZGVmZXJyZWQnO1xuaW1wb3J0IHsgY3JlYXRlTG9hZGVyRXJyb3IgfSBmcm9tICcuLi9lcnJvcnMnO1xuaW1wb3J0IHsgUGxhY2Vob2xkZXJGYWxsYmFja1JlbmRlciB9IGZyb20gJy4uL3BsYWNlaG9sZGVycy9yZW5kZXInO1xuaW1wb3J0IHsgUGxhY2Vob2xkZXJGYWxsYmFja0h5ZHJhdGUgfSBmcm9tICcuLi9wbGFjZWhvbGRlcnMvaHlkcmF0ZSc7XG5pbXBvcnQgeyBwcmVsb2FkQXNzZXQgfSBmcm9tICcuLi9wcmVsb2FkJztcbmltcG9ydCB7IFByb2ZpbGVyQ29udGV4dCB9IGZyb20gJy4uLy4uL3Byb2ZpbGVyJztcblxuaW1wb3J0IHR5cGUgeyBTdGF0dXMgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IHVzZVN1YnNjcmlwdGlvbiB9IGZyb20gJy4vdXRpbHMnO1xuXG4vLyBAdHMtZXhwZWN0LWVycm9yIHJlcXVlc3RJZGxlQ2FsbGJhY2sgbWlnaHQgbm90IGV4aXN0XG5jb25zdCB7IHJlcXVlc3RJZGxlQ2FsbGJhY2sgPSBzZXRUaW1lb3V0IH0gPSB3aW5kb3c7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVDb21wb25lbnRDbGllbnQ8QyBleHRlbmRzIENvbXBvbmVudFR5cGU8YW55Pj4oe1xuICBkZWZlcixcbiAgZGVmZXJyZWQsXG4gIGRhdGFMYXp5SWQsXG4gIG1vZHVsZUlkLFxufToge1xuICBkZWZlcjogbnVtYmVyO1xuICBkZWZlcnJlZDogRGVmZXJyZWQ8Qz47XG4gIGRhdGFMYXp5SWQ6IHN0cmluZztcbiAgbW9kdWxlSWQ6IHN0cmluZztcbn0pIHtcbiAgY29uc3QgUmVzb2x2ZWRMYXp5ID0gbGF6eSgoKSA9PiBkZWZlcnJlZC5wcm9taXNlKTtcblxuICByZXR1cm4gKHByb3BzOiBDb21wb25lbnRQcm9wczxDPikgPT4ge1xuICAgIC8vIHVzZSBhIHNpbmdsZSBwaWVjZSBvZiBzdGF0ZSB0byBob2xkIGluZm8gYWJvdXQgcHJvZ3Jlc3Mgb3IgZXZlbnR1YWxseVxuICAgIC8vIHRocm93IGFuIGVycm9yLiBXZSBkbyBjaGFuZ2UgaXQgdmlhIGRpcmVjdCBtdXRhdGlvbiBhcyByZS1yZW5kZXJzXG4gICAgLy8gYnJlYWsgU3VzcGVuc2UgaW4gUmVhY3QgMTgsIG1ha2luZyBpdCBsb3NlIGh5ZHJhdGlvbiBzdGF0ZVxuICAgIGNvbnN0IFtzdGF0dXMsIGJ1YmJsZUVycm9yXSA9IHVzZVN0YXRlPFN0YXR1cz4oKCkgPT4gKHtcbiAgICAgIG5vV2FpdDogdW5kZWZpbmVkLFxuICAgICAgcGhhc2U6IGRlZmVyID09PSBQSEFTRS5BRlRFUl9QQUlOVCA/IGZhbHNlIDogdHJ1ZSxcbiAgICAgIHByZWxvYWRlZDogZGVmZXIgPT09IFBIQVNFLkFGVEVSX1BBSU5UID8gZmFsc2UgOiB0cnVlLFxuICAgICAgc3RhcnRlZDogZmFsc2UsXG4gICAgfSkpO1xuXG4gICAgY29uc3QgcHJvZmlsZXIgPSB1c2VDb250ZXh0KFByb2ZpbGVyQ29udGV4dCkuY3VycmVudDtcblxuICAgIGNvbnN0IGxvYWQgPSAoKSA9PiB7XG4gICAgICBpZiAoc3RhdHVzLnN0YXJ0ZWQgfHwgIXN0YXR1cy5waGFzZSB8fCAhc3RhdHVzLm5vV2FpdCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHN0YXR1cy5zdGFydGVkID0gdHJ1ZTtcbiAgICAgIGxldCBvblJlc29sdmU7XG4gICAgICBpZiAocHJvZmlsZXIpIHtcbiAgICAgICAgY29uc3QgZXZlbnRJbmZvID0geyBpZGVudGlmaWVyOiBtb2R1bGVJZCB9O1xuICAgICAgICBvblJlc29sdmUgPSAoKSA9PiB7XG4gICAgICAgICAgcHJvZmlsZXIub25Mb2FkQ29tcGxldGUoZXZlbnRJbmZvKTtcbiAgICAgICAgfTtcbiAgICAgICAgcHJvZmlsZXIub25Mb2FkU3RhcnQoZXZlbnRJbmZvKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgcmVzdWx0ID0gZGVmZXJyZWQuc3RhcnQoKS5jYXRjaCgoZXJyOiBFcnJvcikgPT4ge1xuICAgICAgICAvLyBUaHJvdyB0aGUgZXJyb3Igd2l0aGluIHRoZSBjb21wb25lbnQgbGlmZWN5Y2xlXG4gICAgICAgIC8vIHJlZmVyIHRvIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9pc3N1ZXMvMTE0MDlcbiAgICAgICAgYnViYmxlRXJyb3IoKCkgPT4ge1xuICAgICAgICAgIHRocm93IGNyZWF0ZUxvYWRlckVycm9yKGVycik7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG5cbiAgICAgIGlmIChvblJlc29sdmUpIHtcbiAgICAgICAgcmVzdWx0LnRoZW4ob25SZXNvbHZlKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgLy8gU3Vic2NyaWJlIHRvIExhenlXYWl0IGNvbnRleHQsIHRyaWdnZXJpbmcgbG9hZCB3aGVuIHVudGlsIGlzIHRydWVcbiAgICB1c2VTdWJzY3JpcHRpb24oe1xuICAgICAgY29udGV4dDogV2FpdENvbnRleHQsXG4gICAgICBsb2FkLFxuICAgICAgb25WYWx1ZTogdiA9PiAoc3RhdHVzLm5vV2FpdCA9IHYgPT09IDEpLFxuICAgIH0pO1xuXG4gICAgaWYgKGRlZmVyID09PSBQSEFTRS5BRlRFUl9QQUlOVCkge1xuICAgICAgLy8gU3Vic2NyaWJlIHRvIExhenlQaGFzZSBjb250ZXh0LCB0cmlnZ2VyaW5nIGxvYWQgd2hlbiBvd24gcGhhc2Ugc3RhcnRzXG4gICAgICB1c2VTdWJzY3JpcHRpb24oe1xuICAgICAgICBjb250ZXh0OiBMYXp5UGhhc2VDb250ZXh0LFxuICAgICAgICBsb2FkLFxuICAgICAgICBvblZhbHVlOiB2ID0+IChzdGF0dXMucGhhc2UgPSB2ID49IGRlZmVyKSxcbiAgICAgIH0pO1xuXG4gICAgICAvLyBTY2hlZHVsZSBwcmVsb2FkaW5nIGFzIHdpbGwgYmUgbmVlZGVkIHNvb25cbiAgICAgIHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICBpZiAoIXN0YXR1cy5wcmVsb2FkZWQpIHtcbiAgICAgICAgICBzdGF0dXMucHJlbG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgICByZXF1ZXN0SWRsZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgICAgICAgIGlmIChzdGF0dXMuc3RhcnRlZCkgcmV0dXJuO1xuICAgICAgICAgICAgcHJlbG9hZEFzc2V0KHtcbiAgICAgICAgICAgICAgbG9hZGVyOiBkZWZlcnJlZC5wcmVsb2FkLFxuICAgICAgICAgICAgICBtb2R1bGVJZCxcbiAgICAgICAgICAgICAgcHJpb3JpdHk6IFBSSU9SSVRZLkxPVyxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9LCBbc3RhdHVzXSk7XG4gICAgfVxuXG4gICAgY29uc3QgeyBzZXRGYWxsYmFjayB9ID0gdXNlQ29udGV4dChMYXp5U3VzcGVuc2VDb250ZXh0KTtcblxuICAgIHVzZU1lbW8oKCkgPT4ge1xuICAgICAgLy8gZmluZCBTU1IgY29udGVudCAob3IgZmFsbGJhY2tzKSB3cmFwcGVkIGluIGlucHV0cyBiYXNlZCBvbiBsYXp5SWRcbiAgICAgIGNvbnN0IGNvbnRlbnQgPSAoQ09MTEVDVEVELmdldChkYXRhTGF6eUlkKSB8fCBbXSkuc2hpZnQoKTtcbiAgICAgIGlmICghY29udGVudCkgcmV0dXJuO1xuXG4gICAgICAvLyBvdmVycmlkZSBTdXNwZW5zZSBmYWxsYmFjayB3aXRoIG1hZ2ljIGlucHV0IHdyYXBwZXJzXG4gICAgICBjb25zdCBjb21wb25lbnQgPVxuICAgICAgICBnZXRDb25maWcoKS5tb2RlID09PSBNT0RFLlJFTkRFUiA/IChcbiAgICAgICAgICA8UGxhY2Vob2xkZXJGYWxsYmFja1JlbmRlciBpZD17ZGF0YUxhenlJZH0gY29udGVudD17Y29udGVudH0gLz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8UGxhY2Vob2xkZXJGYWxsYmFja0h5ZHJhdGUgaWQ9e2RhdGFMYXp5SWR9IGNvbnRlbnQ9e2NvbnRlbnR9IC8+XG4gICAgICAgICk7XG4gICAgICBzZXRGYWxsYmFjayhjb21wb25lbnQpO1xuICAgIH0sIFtzZXRGYWxsYmFja10pO1xuXG4gICAgcmV0dXJuIDxSZXNvbHZlZExhenkgey4uLnByb3BzfSAvPjtcbiAgfTtcbn1cbiJdfQ==
|
|
@@ -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 =
|
|
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
|
-
|
|
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
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
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,
|
|
54
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9sYXp5L2RlZmVycmVkLnRzIl0sIm5hbWVzIjpbImNyZWF0ZURlZmVycmVkIiwibG9hZGVyIiwicHJlbG9hZCIsInJlc29sdmUiLCJkZWZlcnJlZCIsInByb21pc2UiLCJQcm9taXNlIiwicmVzIiwibSIsIndpdGhEZWZhdWx0IiwicmVzdWx0IiwiZGVmYXVsdCIsInVuZGVmaW5lZCIsInRoZW4iLCJjYXRjaCIsInN0YXJ0Il0sIm1hcHBpbmdzIjoiQUFlQSxPQUFPLE1BQU1BLGNBQWMsR0FBRyxDQUErQjtBQUMzREMsRUFBQUEsTUFEMkQ7QUFFM0RDLEVBQUFBO0FBRjJELENBQS9CLEtBR2U7QUFDM0MsTUFBSUMsT0FBSjtBQUVBLFFBQU1DLFFBQVEsR0FBRztBQUNmQyxJQUFBQSxPQUFPLEVBQUUsSUFBSUMsT0FBSixDQUFpQ0MsR0FBRyxJQUFJO0FBQy9DSixNQUFBQSxPQUFPLEdBQUlLLENBQUQsSUFBWTtBQUNwQixZQUFJQyxXQUFKO0FBQ0FMLFFBQUFBLFFBQVEsQ0FBQ00sTUFBVCxHQUFrQkYsQ0FBbEI7O0FBRUEsWUFBSSxDQUFDQSxDQUFDLENBQUNHLE9BQVAsRUFBZ0I7QUFDZEYsVUFBQUEsV0FBVyxHQUFHO0FBQUVFLFlBQUFBLE9BQU8sRUFBRUg7QUFBWCxXQUFkO0FBQ0Q7O0FBRURELFFBQUFBLEdBQUcsQ0FBQ0UsV0FBVyxHQUFHQSxXQUFILEdBQWlCRCxDQUE3QixDQUFIO0FBQ0QsT0FURDtBQVVELEtBWFEsQ0FETTtBQWFmRSxJQUFBQSxNQUFNLEVBQUVFLFNBYk87QUFjZlYsSUFBQUEsT0FBTztBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQSxNQUFFLE1BQU07QUFDYixVQUFJRSxRQUFRLENBQUNNLE1BQWIsRUFBcUI7QUFDbkI7QUFDRDs7QUFFRFIsTUFBQUEsT0FBTyxHQUNKVyxJQURILENBQ1NMLENBQUQsSUFBWTtBQUNoQkosUUFBQUEsUUFBUSxDQUFDTSxNQUFULEdBQWtCRixDQUFsQjtBQUNELE9BSEgsRUFJR00sS0FKSCxDQUlTLE1BQU0sQ0FDWDtBQUNELE9BTkg7QUFPRCxLQVpNLENBZFE7QUEyQmZDLElBQUFBLEtBQUssRUFBRSxNQUFNO0FBQ1gsVUFBSVgsUUFBUSxDQUFDTSxNQUFiLEVBQXFCO0FBQ25CUCxRQUFBQSxPQUFPLENBQUNDLFFBQVEsQ0FBQ00sTUFBVixDQUFQO0FBRUEsZUFBT0osT0FBTyxDQUFDSCxPQUFSLEVBQVA7QUFDRCxPQUxVLENBT1g7OztBQUNBLGFBQU9GLE1BQU0sR0FBR1ksSUFBVCxDQUFjVixPQUFkLENBQVA7QUFDRDtBQXBDYyxHQUFqQjtBQXVDQSxTQUFPQyxRQUFQO0FBQ0QsQ0E5Q00iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRUeXBlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgQ2xpZW50TG9hZGVyLCBKYXZhU2NyaXB0TW9kdWxlIH0gZnJvbSAnLi9sb2FkZXInO1xuXG5leHBvcnQgdHlwZSBDcmVhdGVEZWZlcnJlZE9wdGlvbnM8Qz4gPSB7XG4gIGxvYWRlcjogQ2xpZW50TG9hZGVyPEM+O1xuICBwcmVsb2FkOiBDbGllbnRMb2FkZXI8Qz47XG59O1xuXG5leHBvcnQgdHlwZSBEZWZlcnJlZDxDPiA9IHtcbiAgcHJlbG9hZCgpOiB2b2lkO1xuICBwcm9taXNlOiBQcm9taXNlPEphdmFTY3JpcHRNb2R1bGU8Qz4+O1xuICByZXN1bHQ6IEphdmFTY3JpcHRNb2R1bGU8Qz4gfCB2b2lkO1xuICBzdGFydCgpOiBQcm9taXNlPHZvaWQ+O1xufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZURlZmVycmVkID0gPEMgZXh0ZW5kcyBDb21wb25lbnRUeXBlPGFueT4+KHtcbiAgbG9hZGVyLFxuICBwcmVsb2FkLFxufTogQ3JlYXRlRGVmZXJyZWRPcHRpb25zPEM+KTogRGVmZXJyZWQ8Qz4gPT4ge1xuICBsZXQgcmVzb2x2ZTogKG06IGFueSkgPT4gdm9pZDtcblxuICBjb25zdCBkZWZlcnJlZCA9IHtcbiAgICBwcm9taXNlOiBuZXcgUHJvbWlzZTxKYXZhU2NyaXB0TW9kdWxlPEM+PihyZXMgPT4ge1xuICAgICAgcmVzb2x2ZSA9IChtOiBhbnkpID0+IHtcbiAgICAgICAgbGV0IHdpdGhEZWZhdWx0O1xuICAgICAgICBkZWZlcnJlZC5yZXN1bHQgPSBtO1xuXG4gICAgICAgIGlmICghbS5kZWZhdWx0KSB7XG4gICAgICAgICAgd2l0aERlZmF1bHQgPSB7IGRlZmF1bHQ6IG0gfTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJlcyh3aXRoRGVmYXVsdCA/IHdpdGhEZWZhdWx0IDogbSk7XG4gICAgICB9O1xuICAgIH0pLFxuICAgIHJlc3VsdDogdW5kZWZpbmVkLFxuICAgIHByZWxvYWQ6ICgpID0+IHtcbiAgICAgIGlmIChkZWZlcnJlZC5yZXN1bHQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBwcmVsb2FkKClcbiAgICAgICAgLnRoZW4oKG06IGFueSkgPT4ge1xuICAgICAgICAgIGRlZmVycmVkLnJlc3VsdCA9IG07XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaCgoKSA9PiB7XG4gICAgICAgICAgLy8gRG8gbm90aGluZy4uLlxuICAgICAgICB9KTtcbiAgICB9LFxuICAgIHN0YXJ0OiAoKSA9PiB7XG4gICAgICBpZiAoZGVmZXJyZWQucmVzdWx0KSB7XG4gICAgICAgIHJlc29sdmUoZGVmZXJyZWQucmVzdWx0KTtcblxuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgICB9XG5cbiAgICAgIC8vIE1ha2UgYSBuZXcgbG9hZGVyIHJlcXVlc3Qgd2hlbiBub25lIGhhdmUgc3RhcnRlZCBvciByZXNvbHZlZCB5ZXRcbiAgICAgIHJldHVybiBsb2FkZXIoKS50aGVuKHJlc29sdmUpO1xuICAgIH0sXG4gIH07XG5cbiAgcmV0dXJuIGRlZmVycmVkO1xufTtcbiJdfQ==
|