react-relay 0.0.0-main-d80203a8 → 0.0.0-main-ba2080a3
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/ReactRelayContext.js +1 -1
- package/hooks.js +1 -1
- package/index.js +1 -1
- package/legacy.js +1 -1
- package/lib/relay-hooks/react-cache/useFragmentInternal_REACT_CACHE.js +89 -40
- package/lib/relay-hooks/react-cache/useFragment_REACT_CACHE.js +48 -0
- package/package.json +2 -2
- package/react-relay-hooks.js +1 -1
- package/react-relay-hooks.min.js +1 -1
- package/react-relay-legacy.js +1 -1
- package/react-relay-legacy.min.js +1 -1
- package/react-relay.js +1 -1
- package/react-relay.min.js +1 -1
- package/relay-hooks/react-cache/useFragmentInternal_REACT_CACHE.js.flow +94 -28
- package/relay-hooks/react-cache/useFragment_REACT_CACHE.js.flow +68 -0
package/ReactRelayContext.js
CHANGED
package/hooks.js
CHANGED
package/index.js
CHANGED
package/legacy.js
CHANGED
|
@@ -41,6 +41,8 @@ var _require2 = require('relay-runtime'),
|
|
|
41
41
|
handlePotentialSnapshotErrors = _require2.handlePotentialSnapshotErrors,
|
|
42
42
|
recycleNodesInto = _require2.recycleNodesInto;
|
|
43
43
|
|
|
44
|
+
var warning = require("fbjs/lib/warning");
|
|
45
|
+
|
|
44
46
|
function isMissingData(state) {
|
|
45
47
|
if (state.kind === 'bailout') {
|
|
46
48
|
return false;
|
|
@@ -123,7 +125,8 @@ function handlePotentialSnapshotErrorsForState(environment, state) {
|
|
|
123
125
|
function handleMissedUpdates(environment, state, setState) {
|
|
124
126
|
if (state.kind === 'bailout') {
|
|
125
127
|
return;
|
|
126
|
-
}
|
|
128
|
+
} // FIXME this is invalid if we've just switched environments.
|
|
129
|
+
|
|
127
130
|
|
|
128
131
|
var currentEpoch = environment.getStore().getEpoch();
|
|
129
132
|
|
|
@@ -206,10 +209,12 @@ function subscribeToSnapshot(environment, state, setState) {
|
|
|
206
209
|
return function () {};
|
|
207
210
|
} else if (state.kind === 'singular') {
|
|
208
211
|
var disposable = environment.subscribe(state.snapshot, function (latestSnapshot) {
|
|
209
|
-
setState({
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
212
|
+
setState(function (_) {
|
|
213
|
+
return {
|
|
214
|
+
kind: 'singular',
|
|
215
|
+
snapshot: latestSnapshot,
|
|
216
|
+
epoch: environment.getStore().getEpoch()
|
|
217
|
+
};
|
|
213
218
|
});
|
|
214
219
|
});
|
|
215
220
|
return function () {
|
|
@@ -248,10 +253,11 @@ function subscribeToSnapshot(environment, state, setState) {
|
|
|
248
253
|
}
|
|
249
254
|
}
|
|
250
255
|
|
|
251
|
-
function getFragmentState(environment, fragmentSelector) {
|
|
256
|
+
function getFragmentState(environment, fragmentSelector, isPlural) {
|
|
252
257
|
if (fragmentSelector == null) {
|
|
253
258
|
return {
|
|
254
|
-
kind: 'bailout'
|
|
259
|
+
kind: 'bailout',
|
|
260
|
+
plural: isPlural
|
|
255
261
|
};
|
|
256
262
|
} else if (fragmentSelector.kind === 'PluralReaderSelector') {
|
|
257
263
|
return {
|
|
@@ -275,43 +281,67 @@ function useFragmentInternal_REACT_CACHE(fragmentNode, fragmentRef, hookDisplayN
|
|
|
275
281
|
var _fragmentNode$metadat;
|
|
276
282
|
|
|
277
283
|
var fragmentSelector = getSelector(fragmentNode, fragmentRef);
|
|
284
|
+
var isPlural = (fragmentNode === null || fragmentNode === void 0 ? void 0 : (_fragmentNode$metadat = fragmentNode.metadata) === null || _fragmentNode$metadat === void 0 ? void 0 : _fragmentNode$metadat.plural) === true;
|
|
278
285
|
|
|
279
|
-
if (
|
|
286
|
+
if (isPlural) {
|
|
280
287
|
!Array.isArray(fragmentRef) ? process.env.NODE_ENV !== "production" ? invariant(false, 'Relay: Expected fragment pointer%s for fragment `%s` to be ' + 'an array, instead got `%s`. Remove `@relay(plural: true)` ' + 'from fragment `%s` to allow the prop to be an object.', fragmentKey != null ? " for key `".concat(fragmentKey, "`") : '', fragmentNode.name, typeof fragmentRef, fragmentNode.name) : invariant(false) : void 0;
|
|
281
288
|
} else {
|
|
282
289
|
!!Array.isArray(fragmentRef) ? process.env.NODE_ENV !== "production" ? invariant(false, 'Relay: Expected fragment pointer%s for fragment `%s` not to be ' + 'an array, instead got `%s`. Add `@relay(plural: true)` ' + 'to fragment `%s` to allow the prop to be an array.', fragmentKey != null ? " for key `".concat(fragmentKey, "`") : '', fragmentNode.name, typeof fragmentRef, fragmentNode.name) : invariant(false) : void 0;
|
|
283
290
|
}
|
|
284
291
|
|
|
285
|
-
!(fragmentRef == null || fragmentSelector != null) ? process.env.NODE_ENV !== "production" ? invariant(false, 'Relay: Expected to receive an object where `...%s` was spread, ' + 'but the fragment reference was not found`. This is most ' + 'likely the result of:\n' + "- Forgetting to spread `%s` in `%s`'s parent's fragment.\n" + '- Conditionally fetching `%s` but unconditionally passing %s prop ' + 'to `%s`. If the parent fragment only fetches the fragment conditionally ' + '- with e.g. `@include`, `@skip`, or inside a `... on SomeType { }` ' + 'spread - then the fragment reference will not exist. ' + 'In this case, pass `null` if the conditions for evaluating the ' + 'fragment are not met (e.g. if the `@include(if)` value is false.)', fragmentNode.name, fragmentNode.name, hookDisplayName, fragmentNode.name, fragmentKey == null ? 'a fragment reference' : "the `".concat(fragmentKey, "`"), hookDisplayName) : invariant(false) : void 0;
|
|
292
|
+
!(fragmentRef == null || isPlural && Array.isArray(fragmentRef) && fragmentRef.length === 0 || fragmentSelector != null) ? process.env.NODE_ENV !== "production" ? invariant(false, 'Relay: Expected to receive an object where `...%s` was spread, ' + 'but the fragment reference was not found`. This is most ' + 'likely the result of:\n' + "- Forgetting to spread `%s` in `%s`'s parent's fragment.\n" + '- Conditionally fetching `%s` but unconditionally passing %s prop ' + 'to `%s`. If the parent fragment only fetches the fragment conditionally ' + '- with e.g. `@include`, `@skip`, or inside a `... on SomeType { }` ' + 'spread - then the fragment reference will not exist. ' + 'In this case, pass `null` if the conditions for evaluating the ' + 'fragment are not met (e.g. if the `@include(if)` value is false.)', fragmentNode.name, fragmentNode.name, hookDisplayName, fragmentNode.name, fragmentKey == null ? 'a fragment reference' : "the `".concat(fragmentKey, "`"), hookDisplayName) : invariant(false) : void 0;
|
|
286
293
|
var environment = useRelayEnvironment();
|
|
287
294
|
|
|
288
295
|
var _useState = useState(function () {
|
|
289
|
-
return getFragmentState(environment, fragmentSelector);
|
|
296
|
+
return getFragmentState(environment, fragmentSelector, isPlural);
|
|
290
297
|
}),
|
|
291
298
|
rawState = _useState[0],
|
|
292
|
-
setState = _useState[1];
|
|
299
|
+
setState = _useState[1]; // On second look this separate rawState may not be needed at all, it can just be
|
|
300
|
+
// put into getFragmentState. Exception: can we properly handle the case where the
|
|
301
|
+
// fragmentRef goes from non-null to null?
|
|
302
|
+
|
|
303
|
+
|
|
304
|
+
var stateFromRawState = function stateFromRawState(state) {
|
|
305
|
+
if (fragmentRef == null) {
|
|
306
|
+
return {
|
|
307
|
+
kind: 'bailout',
|
|
308
|
+
plural: false
|
|
309
|
+
};
|
|
310
|
+
} else if (state.kind === 'plural' && state.snapshots.length === 0) {
|
|
311
|
+
return {
|
|
312
|
+
kind: 'bailout',
|
|
313
|
+
plural: true
|
|
314
|
+
};
|
|
315
|
+
} else {
|
|
316
|
+
return state;
|
|
317
|
+
}
|
|
318
|
+
};
|
|
293
319
|
|
|
294
|
-
var
|
|
295
|
-
|
|
296
|
-
|
|
320
|
+
var state = stateFromRawState(rawState); // This copy of the state we only update when something requires us to
|
|
321
|
+
// unsubscribe and re-subscribe, namely a changed environment or
|
|
322
|
+
// fragment selector.
|
|
297
323
|
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
}
|
|
324
|
+
var _useState2 = useState(state),
|
|
325
|
+
rawSubscribedState = _useState2[0],
|
|
326
|
+
setSubscribedState = _useState2[1]; // FIXME since this is used as an effect dependency, it needs to be memoized.
|
|
302
327
|
|
|
303
|
-
var state;
|
|
304
328
|
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
329
|
+
var subscribedState = stateFromRawState(rawSubscribedState);
|
|
330
|
+
|
|
331
|
+
var _useState3 = useState(fragmentSelector),
|
|
332
|
+
previousFragmentSelector = _useState3[0],
|
|
333
|
+
setPreviousFragmentSelector = _useState3[1];
|
|
334
|
+
|
|
335
|
+
var _useState4 = useState(environment),
|
|
336
|
+
previousEnvironment = _useState4[0],
|
|
337
|
+
setPreviousEnvironment = _useState4[1];
|
|
338
|
+
|
|
339
|
+
if (!areEqualSelectors(fragmentSelector, previousFragmentSelector) || environment !== previousEnvironment) {
|
|
340
|
+
setPreviousFragmentSelector(fragmentSelector);
|
|
341
|
+
setPreviousEnvironment(environment);
|
|
342
|
+
var newState = getFragmentState(environment, fragmentSelector, isPlural);
|
|
343
|
+
setState(newState);
|
|
344
|
+
setSubscribedState(newState); // This causes us to form a new subscription
|
|
315
345
|
} // Handle the queries for any missing client edges; this may suspend.
|
|
316
346
|
// FIXME handle client edges in parallel.
|
|
317
347
|
|
|
@@ -351,7 +381,6 @@ function useFragmentInternal_REACT_CACHE(fragmentNode, fragmentRef, hookDisplayN
|
|
|
351
381
|
} // Subscriptions:
|
|
352
382
|
|
|
353
383
|
|
|
354
|
-
var isMountedRef = useRef(false);
|
|
355
384
|
var isListeningForUpdatesRef = useRef(true);
|
|
356
385
|
|
|
357
386
|
function enableStoreUpdates() {
|
|
@@ -364,21 +393,41 @@ function useFragmentInternal_REACT_CACHE(fragmentNode, fragmentRef, hookDisplayN
|
|
|
364
393
|
}
|
|
365
394
|
|
|
366
395
|
useEffect(function () {
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
396
|
+
handleMissedUpdates(environment, subscribedState, setState);
|
|
397
|
+
return subscribeToSnapshot(environment, subscribedState, function (updater) {
|
|
398
|
+
if (isListeningForUpdatesRef.current) {
|
|
399
|
+
setState(function (latestState) {
|
|
400
|
+
var _latestState$snapshot, _subscribedState$snap;
|
|
401
|
+
|
|
402
|
+
if (((_latestState$snapshot = latestState.snapshot) === null || _latestState$snapshot === void 0 ? void 0 : _latestState$snapshot.selector) !== ((_subscribedState$snap = subscribedState.snapshot) === null || _subscribedState$snap === void 0 ? void 0 : _subscribedState$snap.selector)) {
|
|
403
|
+
// Ignore updates to the subscription if it's for a previous fragment selector
|
|
404
|
+
// than the latest one to be rendered. This can happen if the store is updated
|
|
405
|
+
// after we re-render with a new fragmentRef prop but before the effect fires
|
|
406
|
+
// in which we unsubscribe to the old one and subscribe to the new one.
|
|
407
|
+
// (NB: it's safe to compare the selectors by reference because the selector
|
|
408
|
+
// is recycled into new snapshots.)
|
|
409
|
+
return latestState;
|
|
410
|
+
} else {
|
|
411
|
+
return updater(latestState);
|
|
412
|
+
}
|
|
413
|
+
});
|
|
414
|
+
}
|
|
415
|
+
});
|
|
416
|
+
}, [environment, subscribedState]);
|
|
376
417
|
var data = useMemo(function () {
|
|
377
|
-
return state.kind === 'bailout' ?
|
|
418
|
+
return state.kind === 'bailout' ? state.plural ? [] : null : state.kind === 'singular' ? state.snapshot.data : state.snapshots.map(function (s) {
|
|
378
419
|
return s.data;
|
|
379
420
|
});
|
|
380
421
|
}, [state]);
|
|
381
422
|
|
|
423
|
+
if (process.env.NODE_ENV !== "production") {
|
|
424
|
+
if (fragmentRef != null && (data === undefined || Array.isArray(data) && data.length > 0 && data.every(function (d) {
|
|
425
|
+
return d === undefined;
|
|
426
|
+
}))) {
|
|
427
|
+
process.env.NODE_ENV !== "production" ? warning(false, 'Relay: Expected to have been able to read non-null data for ' + 'fragment `%s` declared in ' + '`%s`, since fragment reference was non-null. ' + "Make sure that that `%s`'s parent isn't " + 'holding on to and/or passing a fragment reference for data that ' + 'has been deleted.', fragmentNode.name, hookDisplayName, hookDisplayName) : void 0;
|
|
428
|
+
}
|
|
429
|
+
}
|
|
430
|
+
|
|
382
431
|
if (process.env.NODE_ENV !== "production") {
|
|
383
432
|
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
384
433
|
useDebugValue({
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*
|
|
7
|
+
* @emails oncall+relay
|
|
8
|
+
*
|
|
9
|
+
* @format
|
|
10
|
+
*/
|
|
11
|
+
// flowlint ambiguous-object-type:error
|
|
12
|
+
'use strict';
|
|
13
|
+
|
|
14
|
+
var _require = require('../loadQuery'),
|
|
15
|
+
useTrackLoadQueryInRender = _require.useTrackLoadQueryInRender;
|
|
16
|
+
|
|
17
|
+
var useStaticFragmentNodeWarning = require('../useStaticFragmentNodeWarning');
|
|
18
|
+
|
|
19
|
+
var useFragmentInternal = require('./useFragmentInternal_REACT_CACHE');
|
|
20
|
+
|
|
21
|
+
var _require2 = require('react'),
|
|
22
|
+
useDebugValue = _require2.useDebugValue;
|
|
23
|
+
|
|
24
|
+
var _require3 = require('relay-runtime'),
|
|
25
|
+
getFragment = _require3.getFragment;
|
|
26
|
+
|
|
27
|
+
function useFragment(fragment, key) {
|
|
28
|
+
// We need to use this hook in order to be able to track if
|
|
29
|
+
// loadQuery was called during render
|
|
30
|
+
useTrackLoadQueryInRender();
|
|
31
|
+
var fragmentNode = getFragment(fragment);
|
|
32
|
+
useStaticFragmentNodeWarning(fragmentNode, 'first argument of useFragment()');
|
|
33
|
+
|
|
34
|
+
var _useFragmentInternal = useFragmentInternal(fragmentNode, key, 'useFragment()'),
|
|
35
|
+
data = _useFragmentInternal.data;
|
|
36
|
+
|
|
37
|
+
if (process.env.NODE_ENV !== "production") {
|
|
38
|
+
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
39
|
+
useDebugValue({
|
|
40
|
+
fragment: fragmentNode.name,
|
|
41
|
+
data: data
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
return data;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
module.exports = useFragment;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-relay",
|
|
3
3
|
"description": "A framework for building GraphQL-driven React applications.",
|
|
4
|
-
"version": "0.0.0-main-
|
|
4
|
+
"version": "0.0.0-main-ba2080a3",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"graphql",
|
|
7
7
|
"relay",
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"fbjs": "^3.0.2",
|
|
21
21
|
"invariant": "^2.2.4",
|
|
22
22
|
"nullthrows": "^1.1.1",
|
|
23
|
-
"relay-runtime": "0.0.0-main-
|
|
23
|
+
"relay-runtime": "0.0.0-main-ba2080a3"
|
|
24
24
|
},
|
|
25
25
|
"peerDependencies": {
|
|
26
26
|
"react": "^16.9.0 || ^17 || ^18"
|
package/react-relay-hooks.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Relay v0.0.0-main-
|
|
2
|
+
* Relay v0.0.0-main-ba2080a3
|
|
3
3
|
*/
|
|
4
4
|
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react"),require("relay-runtime"),require("invariant"),require("@babel/runtime/helpers/interopRequireDefault"),require("fbjs/lib/warning"),require("@babel/runtime/helpers/objectSpread2"),require("@babel/runtime/helpers/defineProperty"),require("react-relay/ReactRelayContext"),require("@babel/runtime/helpers/createForOfIteratorHelper"),require("@babel/runtime/helpers/toConsumableArray"),require("fbjs/lib/areEqual")):"function"==typeof define&&define.amd?define(["react","relay-runtime","invariant","@babel/runtime/helpers/interopRequireDefault","fbjs/lib/warning","@babel/runtime/helpers/objectSpread2","@babel/runtime/helpers/defineProperty","react-relay/ReactRelayContext","@babel/runtime/helpers/createForOfIteratorHelper","@babel/runtime/helpers/toConsumableArray","fbjs/lib/areEqual"],t):"object"==typeof exports?exports.ReactRelayHooks=t(require("react"),require("relay-runtime"),require("invariant"),require("@babel/runtime/helpers/interopRequireDefault"),require("fbjs/lib/warning"),require("@babel/runtime/helpers/objectSpread2"),require("@babel/runtime/helpers/defineProperty"),require("react-relay/ReactRelayContext"),require("@babel/runtime/helpers/createForOfIteratorHelper"),require("@babel/runtime/helpers/toConsumableArray"),require("fbjs/lib/areEqual")):e.ReactRelayHooks=t(e.react,e["relay-runtime"],e.invariant,e["@babel/runtime/helpers/interopRequireDefault"],e["fbjs/lib/warning"],e["@babel/runtime/helpers/objectSpread2"],e["@babel/runtime/helpers/defineProperty"],e["react-relay/ReactRelayContext"],e["@babel/runtime/helpers/createForOfIteratorHelper"],e["@babel/runtime/helpers/toConsumableArray"],e["fbjs/lib/areEqual"])}(window,(function(e,t,r,n,a,i,o,u,s,l,c){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var a=t[n]={i:n,l:!1,exports:{}};return e[n].call(a.exports,a,a.exports,r),a.l=!0,a.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var a in e)r.d(n,a,function(t){return e[t]}.bind(null,a));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=25)}([function(t,r){t.exports=e},function(e,r){e.exports=t},function(e,t,r){"use strict";var n=r(3),a=r(0).useContext,i=r(14);e.exports=function(){var e=a(i);return null==e&&n(!1,"useRelayEnvironment: Expected to have found a Relay environment provided by a `RelayEnvironmentProvider` component. This usually means that useRelayEnvironment was used in a component that is not a descendant of a `RelayEnvironmentProvider`. Please make sure a `RelayEnvironmentProvider` has been rendered somewhere as a parent or ancestor of your component."),e.environment}},function(e,t){e.exports=r},function(e,t){e.exports=n},function(e,t){e.exports=a},function(e,t,r){"use strict";var n=r(4)(r(7)),a=r(3),i=r(0),o=r(1),u=o.Observable,s=o.PreloadableQueryRegistry,l=o.RelayFeatureFlags,c=o.ReplaySubject,f=o.__internal.fetchQueryDeduped,d=o.createOperationDescriptor,p=o.getRequest,h=o.getRequestIdentifier,v=r(5),m=null,y=100001;e.exports={loadQuery:function(e,t,r,o,g){var b,_,R,E,P=null===(b=i.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED)||void 0===b||null===(_=b.ReactCurrentDispatcher)||void 0===_?void 0:_.current;v(null==m||P!==m,"Relay: `%s` should not be called inside a React render function.",null!==(R=null==o?void 0:o.__nameForWarning)&&void 0!==R?R:"loadQuery"),y++;var k,C,x,S,w,q,I=null!==(E=null==o?void 0:o.fetchPolicy)&&void 0!==E?E:"store-or-network",D=(0,n.default)((0,n.default)({},null==o?void 0:o.networkCacheConfig),{},{force:!0}),F=!1,A=function(t,r){return F=!0,e.executeWithSource({operation:t,source:r})},N=new c,Q=u.create((function(e){return N.subscribe(e)})),T=null,O=!1,M=function(t){var n;O=!0;var a=new c;if(!0===l.ENABLE_LOAD_QUERY_REQUEST_DEDUPING){var i="raw-network-request-"+h(t,r);n=f(e,i,(function(){return e.getNetwork().execute(t,r,D)}))}else{n=e.getNetwork().execute(t,r,D)}var o=n.subscribe({error:function(e){T=e,a.error(e)},next:function(e){a.next(e)},complete:function(){a.complete()}}).unsubscribe;return C=o,u.create((function(e){var t=a.subscribe(e);return function(){t.unsubscribe(),C()}}))},L=function(t,r){!0===l.ENABLE_LOAD_QUERY_REQUEST_DEDUPING&&(O=!0);var n=f(e,t.request.identifier,r).subscribe({error:function(e){N.error(e)},next:function(e){N.next(e)},complete:function(){N.complete()}});x=n.unsubscribe},U=function(t){var n=d(t,r,D);(k=e.retain(n),"store-only"!==I)&&(("store-or-network"!==I||"available"!==e.check(n).status)&&L(n,(function(){var e=M(t.params);return A(n,e)})))};if("PreloadableConcreteRequest"===t.kind){null===(q=(S=t.params).id)&&a(!1,"Relay: `loadQuery` requires that preloadable query `%s` has a persisted query id",S.name);var j=s.get(q);if(null!=j)U(j);else{var W="store-only"===I?null:M(S),B=s.onLoad(q,(function(t){w();var n=d(t,r,D);k=e.retain(n),null!=W&&L(n,(function(){return A(n,W)}))}));w=B.dispose}}else{var K=p(t);q=null!=(S=K.params).cacheID?S.cacheID:S.id,U(K)}var V=!1,H=!1,G=!1,z=function(){H||(k&&k.dispose(),H=!0)},Y=function(){G||(F?x&&x():C&&C(),w&&w(),G=!0)};return{kind:"PreloadedQuery",environment:e,environmentProviderOptions:g,dispose:function(){V||(z(),Y(),V=!0)},releaseQuery:z,cancelNetworkRequest:Y,fetchKey:y,id:q,get isDisposed(){return V||H},get networkError(){return T},name:S.name,networkCacheConfig:D,fetchPolicy:I,source:O?Q:void 0,variables:r}},useTrackLoadQueryInRender:function(){var e,t;null===m&&(m=null===(e=i.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED)||void 0===e||null===(t=e.ReactCurrentDispatcher)||void 0===t?void 0:t.current)}}},function(e,t){e.exports=i},function(e,t,r){"use strict";var n=r(0),a=n.useEffect,i=n.useRef;e.exports=function(){var e=i(!0);return a((function(){return e.current=!0,function(){e.current=!1}}),[]),e}},function(e,t,r){"use strict";var n=r(0).createContext({wrapPrepareQueryResource:function(e){return e()}});e.exports=n},function(e,t,r){"use strict";var n=r(17).getFragmentResourceForEnvironment,a=r(2),i=r(0),o=i.useEffect,u=i.useRef,s=i.useState,l=r(1).getFragmentIdentifier,c=r(5);e.exports=function(e,t,r){var i=a(),f=n(i),d=u(!1),p=s(0)[1],h=l(e,t),v=f.readWithIdentifier(e,t,h,r),m=u(!0);function y(){!1!==d.current&&!1!==m.current&&p((function(e){return e+1}))}return o((function(){d.current=!0;var e=f.subscribe(v,y);return function(){d.current=!1,e.dispose()}}),[i,h]),null!=t&&(void 0===v.data||Array.isArray(v.data)&&v.data.length>0&&v.data.every((function(e){return void 0===e})))&&c(!1,"Relay: Expected to have been able to read non-null data for fragment `%s` declared in `%s`, since fragment reference was non-null. Make sure that that `%s`'s parent isn't holding on to and/or passing a fragment reference for data that has been deleted.",e.name,r,r),{data:v.data,disableStoreUpdates:function(){m.current=!1},enableStoreUpdates:function(){m.current=!0,f.checkMissedUpdates(v)[0]&&y()}}}},function(e,t){e.exports=o},function(e,t,r){"use strict";var n=r(4),a=n(r(7)),i=n(r(11)),o=r(18),u=r(19),s=r(3),l=r(1).isPromise,c=r(5),f="function"==typeof WeakMap;function d(e){return void 0!==e.request.node.params.metadata.live}function p(e,t,r,n,a){var i=null!=r?r:"store-or-network",o=null!=n?n:e.UNSTABLE_getDefaultRenderPolicy(),u="".concat(i,"-").concat(o,"-").concat(t.request.identifier);return null!=a?"".concat(u,"-").concat(a):u}function h(e,t){var r={__id:e.fragment.dataID,__fragments:(0,i.default)({},e.fragment.node.name,e.request.variables),__fragmentOwner:e.request};return{cacheIdentifier:t,fragmentNode:e.request.node.fragment,fragmentRef:r,operation:e}}var v=2e5;function m(e,t,r,n,a,i){var o=d(t),s=n,l=a,c=new u((function(e){var r=e.retain(t);return{dispose:function(){o&&null!=l&&l.unsubscribe(),r.dispose(),i(f)}}})),f={cacheIdentifier:e,id:v++,processedPayloadsCount:0,operationAvailability:r,getValue:function(){return s},setValue:function(e){s=e},setNetworkSubscription:function(e){o&&null!=l&&l.unsubscribe(),l=e},temporaryRetain:function(e){return c.temporaryRetain(e)},permanentRetain:function(e){return c.permanentRetain(e)},releaseTemporaryRetain:function(){c.releaseTemporaryRetain()}};return f}var y=function(){function e(e){var t=this;(0,i.default)(this,"_clearCacheEntry",(function(e){t._cache.delete(e.cacheIdentifier)})),this._environment=e,this._cache=o.create(1e3)}var t=e.prototype;return t.prepare=function(e,t,r,n,a,i,o){var u=p(this._environment,e,r,n,i);return this.prepareWithIdentifier(u,e,t,r,n,a,o)},t.prepareWithIdentifier=function(e,t,r,n,i,o,u){var s=this._environment,c=null!=n?n:"store-or-network",f=null!=i?i:s.UNSTABLE_getDefaultRenderPolicy(),d=this._cache.get(e),p=null,h=null!=d;null==d&&(d=this._fetchAndSaveQuery(e,t,r,c,f,u,(0,a.default)((0,a.default)({},o),{},{unsubscribe:function(e){null!=p&&p.dispose();var t=null==o?void 0:o.unsubscribe;t&&t(e)}}))),p=d.temporaryRetain(s);var v=d.getValue();if(l(v))throw s.__log({name:"suspense.query",fetchPolicy:c,isPromiseCached:h,operation:t,queryAvailability:d.operationAvailability,renderPolicy:f}),v;if(v instanceof Error)throw v;return v},t.retain=function(e,t){var r=this._environment,n=e.cacheIdentifier,a=e.operation,i=this._getOrCreateCacheEntry(n,a,null,e,null),o=i.permanentRetain(r);return r.__log({name:"queryresource.retain",profilerContext:t,resourceID:i.id}),{dispose:function(){o.dispose()}}},t.releaseTemporaryRetain=function(e){var t=this._cache.get(e.cacheIdentifier);null!=t&&t.releaseTemporaryRetain()},t.TESTS_ONLY__getCacheEntry=function(e,t,r,n){var a=p(this._environment,e,t,r,n);return this._cache.get(a)},t._getOrCreateCacheEntry=function(e,t,r,n,a){var i=this._cache.get(e);return null==i&&(i=m(e,t,r,n,a,this._clearCacheEntry),this._cache.set(e,i)),i},t._fetchAndSaveQuery=function(e,t,r,n,i,o,u){var l,f,p=this,v=this._environment,y=v.check(t),g=y.status,b="available"===g,_=b||"partial"===i&&"stale"!==g,R=function(){};switch(n){case"store-only":l=!1,f=!0;break;case"store-or-network":l=!b,f=_;break;case"store-and-network":l=!0,f=_;break;case"network-only":default:l=!0,f=!1}if(f){var E=h(t,e),P=m(e,t,y,E,null,this._clearCacheEntry);this._cache.set(e,P)}if(l){var k,C=h(t,e);r.subscribe({start:function(r){k=r;var n=p._cache.get(e);n&&n.setNetworkSubscription(k);var i=null==u?void 0:u.start;i&&i((0,a.default)((0,a.default)({},r),{},{unsubscribe:function(){d(t)&&r.unsubscribe()}}))},next:function(){var r=p._getOrCreateCacheEntry(e,t,y,C,k);r.processedPayloadsCount+=1,r.setValue(C),R();var n=null==u?void 0:u.next;null!=n&&n(v.lookup(t.fragment))},error:function(r){var n=p._getOrCreateCacheEntry(e,t,y,r,k);0===n.processedPayloadsCount?n.setValue(r):c(!1,"QueryResource: An incremental payload for query `%s` returned an error: `%s`.",t.fragment.node.name,String(r.message)),R(),k=null,n.setNetworkSubscription(null);var a=null==u?void 0:u.error;a&&a(r)},complete:function(){R(),k=null;var t=p._cache.get(e);t&&t.setNetworkSubscription(null);var r=null==u?void 0:u.complete;r&&r()},unsubscribe:null==u?void 0:u.unsubscribe});var x=this._cache.get(e);if(!x){var S=new Promise((function(e){R=e}));S.displayName="Relay("+t.fragment.node.name+")",x=m(e,t,y,S,k,this._clearCacheEntry),this._cache.set(e,x)}}else{var w=null==u?void 0:u.complete;w&&w()}var q=this._cache.get(e);return null==q&&s(!1,"Relay: Expected to have cached a result when attempting to fetch query.If you're seeing this, this is likely a bug in Relay."),v.__log({name:"queryresource.fetch",resourceID:q.id,operation:t,profilerContext:o,fetchPolicy:n,renderPolicy:i,queryAvailability:y,shouldFetch:l}),q},e}();function g(e){return new y(e)}var b=f?new WeakMap:new Map;e.exports={createQueryResource:g,getQueryResourceForEnvironment:function(e){var t=b.get(e);if(t)return t;var r=g(e);return b.set(e,r),r},getQueryCacheIdentifier:p}},function(e,t,r){"use strict";var n=r(0).useRef,a=r(5);e.exports=function(e,t){var r=n(e.name);a(r.current===e.name,"Relay: The %s has to remain the same over the lifetime of a component. Changing it is not supported and will result in unexpected behavior.",t)}},function(e,t){e.exports=u},function(e,t,r){"use strict";var n=r(6).loadQuery;e.exports=function e(t,r,a){var i=null;null==r.root.getModuleIfRequired()&&(i=r.root.load());var o=r.getPreloadProps(a),u=o.queries,s=o.entryPoints,l=o.extraProps,c={},f={};null!=u&&Object.keys(u).forEach((function(e){var r=u[e],a=r.environmentProviderOptions,i=r.options,o=r.parameters,s=r.variables,l=t.getEnvironment(a);c[e]=n(l,o,s,{fetchPolicy:null==i?void 0:i.fetchPolicy,networkCacheConfig:null==i?void 0:i.networkCacheConfig,__nameForWarning:"loadEntryPoint"},a)})),null!=s&&Object.keys(s).forEach((function(r){var n=s[r];if(null!=n){var a=n.entryPoint,i=n.entryPointParams;f[r]=e(t,a,i)}}));var d=!1;return{dispose:function(){d||(null!=c&&Object.values(c).forEach((function(e){(0,e.dispose)()})),null!=f&&Object.values(f).forEach((function(e){(0,e.dispose)()})),d=!0)},entryPoints:f,extraProps:null!=l?l:null,getComponent:function(){var e,t=r.root.getModuleIfRequired();if(null==t)throw i=null!==(e=i)&&void 0!==e?e:r.root.load();return null!=t.default?t.default:t},get isDisposed(){return d},queries:c,rootModuleID:r.root.getModuleId()}}},function(e,t){e.exports=s},function(e,t,r){"use strict";var n=r(4),a=n(r(7)),i=n(r(11)),o=n(r(30)),u=r(18),s=r(12).getQueryResourceForEnvironment,l=r(19),c=r(3),f=r(1),d=f.RelayFeatureFlags,p=f.__internal,h=p.fetchQuery,v=p.getPromiseForActiveRequest,m=f.createOperationDescriptor,y=f.getFragmentIdentifier,g=f.getPendingOperationsForFragment,b=f.getSelector,_=f.getVariablesFromFragment,R=f.handlePotentialSnapshotErrors,E=f.isPromise,P=f.recycleNodesInto,k="function"==typeof WeakMap,C=Object.freeze([]);function x(e){return Array.isArray(e)?e.some((function(e){return e.isMissingData})):e.isMissingData}function S(e,t,r){return Array.isArray(t)?{cacheKey:e,snapshot:t,data:t.map((function(e){return e.data})),isMissingData:x(t),storeEpoch:r}:{cacheKey:e,snapshot:t,data:t.data,isMissingData:x(t),storeEpoch:r}}var w=function(){function e(e){(0,i.default)(this,"_cache",new Map),(0,i.default)(this,"_retainCounts",new Map),this._environment=e}var t=e.prototype;return t.get=function(e){var t,r;return null!==(t=null===(r=this._cache.get(e))||void 0===r?void 0:r[0])&&void 0!==t?t:void 0},t.recordQueryResults=function(e,t){var r=this,n=this._cache.get(e);if(n){var a=n[0],i=n[1];t.forEach((function(e){a.push(e)})),i.temporaryRetain(this._environment)}else{var o=new l((function(){return r._retain(e)}));this._cache.set(e,[t,o]),o.temporaryRetain(this._environment)}},t._retain=function(e){var t,r=this,n=(null!==(t=this._retainCounts.get(e))&&void 0!==t?t:0)+1;return this._retainCounts.set(e,n),{dispose:function(){var t,n=(null!==(t=r._retainCounts.get(e))&&void 0!==t?t:0)-1;n>0?r._retainCounts.set(e,n):(r._retainCounts.delete(e),r._cache.delete(e))}}},e}(),q=function(){function e(e){this._environment=e,this._cache=u.create(1e6),d.ENABLE_CLIENT_EDGES&&(this._clientEdgeQueryResultsCache=new w(e))}var t=e.prototype;return t.read=function(e,t,r,n){return this.readWithIdentifier(e,t,y(e,t),r,n)},t.readWithIdentifier=function(e,t,r,n,a){var i,u,l=this,f=this._environment;if(null==t)return{cacheKey:r,data:null,isMissingData:!1,snapshot:null,storeEpoch:0};var p=f.getStore().getEpoch();if(!0===(null==e||null===(i=e.metadata)||void 0===i?void 0:i.plural)&&(Array.isArray(t)||c(!1,"Relay: Expected fragment pointer%s for fragment `%s` to be an array, instead got `%s`. Remove `@relay(plural: true)` from fragment `%s` to allow the prop to be an object.",null!=a?" for key `".concat(a,"`"):"",e.name,typeof t,e.name),0===t.length))return{cacheKey:r,data:C,isMissingData:!1,snapshot:C,storeEpoch:p};var h=this._cache.get(r);if(null!=h){if("pending"===h.kind&&E(h.promise))throw f.__log({name:"suspense.fragment",data:h.result.data,fragment:e,isRelayHooks:!0,isMissingData:h.result.isMissingData,isPromiseCached:!0,pendingOperations:h.pendingOperations}),h.promise;if("done"===h.kind&&h.result.snapshot)return this._handlePotentialSnapshotErrorsInSnapshot(h.result.snapshot),h.result}var m=b(e,t);null==m&&c(!1,"Relay: Expected to receive an object where `...%s` was spread, but the fragment reference was not found`. This is most likely the result of:\n- Forgetting to spread `%s` in `%s`'s parent's fragment.\n- Conditionally fetching `%s` but unconditionally passing %s prop to `%s`. If the parent fragment only fetches the fragment conditionally - with e.g. `@include`, `@skip`, or inside a `... on SomeType { }` spread - then the fragment reference will not exist. In this case, pass `null` if the conditions for evaluating the fragment are not met (e.g. if the `@include(if)` value is false.)",e.name,e.name,n,e.name,null==a?"a fragment reference":"the `".concat(a,"`"),n);var y="PluralReaderSelector"===m.kind?m.selectors.map((function(e){return f.lookup(e)})):f.lookup(m),g=S(r,y,p);if(!g.isMissingData)return this._handlePotentialSnapshotErrorsInSnapshot(y),this._cache.set(r,{kind:"done",result:g}),g;var _=null;if(d.ENABLE_CLIENT_EDGES&&function(e){var t,r;return Array.isArray(e)?e.some((function(e){var t,r;return(null!==(t=null===(r=e.missingClientEdges)||void 0===r?void 0:r.length)&&void 0!==t?t:0)>0})):(null!==(t=null===(r=e.missingClientEdges)||void 0===r?void 0:r.length)&&void 0!==t?t:0)>0}(y)){_=[];var R=s(this._environment),P=[];!function(e,t){Array.isArray(e)?e.forEach(t):t(e)}(y,(function(r){var n;null===(n=r.missingClientEdges)||void 0===n||n.forEach((function(r){var n,a=r.request,i=r.clientEdgeDestinationID,o=l._performClientEdgeQuery(R,e,t,a,i),u=o.queryResult,s=o.requestDescriptor;P.push(u),null===(n=_)||void 0===n||n.push(s)}))})),null==this._clientEdgeQueryResultsCache&&c(!1,"Client edge query result cache should exist when ENABLE_CLIENT_EDGES is on."),this._clientEdgeQueryResultsCache.recordQueryResults(r,P)}var k=null;d.ENABLE_CLIENT_EDGES&&_&&(k=_.map((function(e){return v(l._environment,e)})).filter((function(e){return null!=e})));var x,w,q,I="PluralReaderSelector"===m.kind?m.selectors[0].owner:m.owner,D=this._getAndSavePromiseForFragmentRequestInFlight(r,e,I,g),F=null==D?void 0:D.promise;if((null===(u=k)||void 0===u?void 0:u.length)||E(F))throw f.__log({name:"suspense.fragment",data:g.data,fragment:e,isRelayHooks:!0,isPromiseCached:!1,isMissingData:g.isMissingData,pendingOperations:[].concat((0,o.default)(null!==(x=null==D?void 0:D.pendingOperations)&&void 0!==x?x:[]),(0,o.default)(null!==(w=_)&&void 0!==w?w:[]))}),(null===(q=k)||void 0===q?void 0:q.length)?Promise.all([F].concat((0,o.default)(k))):F;return this._handlePotentialSnapshotErrorsInSnapshot(y),S(r,y,p)},t._performClientEdgeQuery=function(e,t,r,n,i){var o=_(t,r),u=(0,a.default)((0,a.default)({},o),{},{id:i}),s=m(n,u,{}),l=h(this._environment,s),c=e.prepare(s,l);return{requestDescriptor:s.request,queryResult:c}},t._handlePotentialSnapshotErrorsInSnapshot=function(e){var t=this;Array.isArray(e)?e.forEach((function(e){R(t._environment,e.missingRequiredFields,e.relayResolverErrors)})):R(this._environment,e.missingRequiredFields,e.relayResolverErrors)},t.readSpec=function(e,t,r){var n={};for(var a in e)n[a]=this.read(e[a],t[a],r,a);return n},t.subscribe=function(e,t){var r=this,n=this._environment,a=e.cacheKey,i=e.snapshot;if(!i)return{dispose:function(){}};var o=this.checkMissedUpdates(e),u=o[0],l=o[1];u&&t();var f=[];if(Array.isArray(i)?(Array.isArray(l)||c(!1,"Relay: Expected snapshots to be plural. If you're seeing this, this is likely a bug in Relay."),l.forEach((function(e,i){f.push(n.subscribe(e,(function(e){var o=n.getStore().getEpoch();r._updatePluralSnapshot(a,l,e,i,o),t()})))}))):((null==l||Array.isArray(l))&&c(!1,"Relay: Expected snapshot to be singular. If you're seeing this, this is likely a bug in Relay."),f.push(n.subscribe(l,(function(e){var i=n.getStore().getEpoch();r._cache.set(a,{kind:"done",result:S(a,e,i)}),t()})))),d.ENABLE_CLIENT_EDGES){var p,h,v=null!==(p=null===(h=this._clientEdgeQueryResultsCache)||void 0===h?void 0:h.get(a))&&void 0!==p?p:void 0;if(null==v?void 0:v.length){var m=s(this._environment);v.forEach((function(e){f.push(m.retain(e))}))}}return{dispose:function(){f.forEach((function(e){return e.dispose()})),r._cache.delete(a)}}},t.subscribeSpec=function(e,t){var r=this,n=Object.keys(e).map((function(n){return r.subscribe(e[n],t)}));return{dispose:function(){n.forEach((function(e){e.dispose()}))}}},t.checkMissedUpdates=function(e){var t=this._environment,r=e.snapshot;if(!r)return[!1,null];var n;if(n=t.getStore().getEpoch(),e.storeEpoch===n)return[!1,e.snapshot];var i=e.cacheKey;if(Array.isArray(r)){var o=!1,u=[];return r.forEach((function(e,r){var n=t.lookup(e.selector),i=e.data,s=n.data,l=P(i,s);l!==i&&(n=(0,a.default)((0,a.default)({},n),{},{data:l}),o=!0),u[r]=n})),o&&this._cache.set(i,{kind:"done",result:S(i,u,n)}),[o,u]}var s=t.lookup(r.selector),l=r.data,c=s.data,f=P(l,c),d={data:f,isMissingData:s.isMissingData,missingClientEdges:s.missingClientEdges,seenRecords:s.seenRecords,selector:s.selector,missingRequiredFields:s.missingRequiredFields,relayResolverErrors:s.relayResolverErrors};return f!==l&&this._cache.set(i,{kind:"done",result:S(i,d,n)}),[f!==l,d]},t.checkMissedUpdatesSpec=function(e){var t=this;return Object.keys(e).some((function(r){return t.checkMissedUpdates(e[r])[0]}))},t._getAndSavePromiseForFragmentRequestInFlight=function(e,t,r,n){var a=this,i=g(this._environment,t,r);if(null==i)return null;var o=i.promise,u=i.pendingOperations,s=o.then((function(){a._cache.delete(e)})).catch((function(t){a._cache.delete(e)}));return s.displayName=o.displayName,this._cache.set(e,{kind:"pending",pendingOperations:u,promise:s,result:n}),{promise:s,pendingOperations:u}},t._updatePluralSnapshot=function(e,t,r,n,a){var i,u=this._cache.get(e);if(E(u))I(r.selector.node.name);else{var s=null==u||null===(i=u.result)||void 0===i?void 0:i.snapshot;if(!s||Array.isArray(s)){var l=s?(0,o.default)(s):(0,o.default)(t);l[n]=r,this._cache.set(e,{kind:"done",result:S(e,l,a)})}else I(r.selector.node.name)}},e}();function I(e){c(!1,"Relay: Expected to find cached data for plural fragment `%s` when receiving a subscription. If you're seeing this, this is likely a bug in Relay.",e)}function D(e){return new q(e)}var F=k?new WeakMap:new Map;e.exports={createFragmentResource:D,getFragmentResourceForEnvironment:function(e){var t=F.get(e);if(t)return t;var r=D(e);return F.set(e,r),r}}},function(e,t,r){"use strict";var n=r(3),a=function(){function e(e){this._capacity=e,this._capacity>0||n(!1,"LRUCache: Unable to create instance of cache with zero or negative capacity."),this._map=new Map}var t=e.prototype;return t.set=function(e,t){if(this._map.delete(e),this._map.set(e,t),this._map.size>this._capacity){var r=this._map.keys().next();r.done||this._map.delete(r.value)}},t.get=function(e){var t=this._map.get(e);return null!=t&&(this._map.delete(e),this._map.set(e,t)),t},t.has=function(e){return this._map.has(e)},t.delete=function(e){this._map.delete(e)},t.size=function(){return this._map.size},t.capacity=function(){return this._capacity-this._map.size},t.clear=function(){this._map.clear()},e}();e.exports={create:function(e){return new a(e)}}},function(e,t,r){"use strict";var n=r(4)(r(11)),a=r(3),i=function(){function e(e){var t=this;(0,n.default)(this,"_retainCount",0),(0,n.default)(this,"_retainDisposable",null),(0,n.default)(this,"_releaseTemporaryRetain",null),this._retain=function(r){return t._retainCount++,1===t._retainCount&&(t._retainDisposable=e(r)),{dispose:function(){t._retainCount=Math.max(0,t._retainCount-1),0===t._retainCount&&(null==t._retainDisposable&&a(!1,"Relay: Expected disposable to release query to be defined.If you're seeing this, this is likely a bug in Relay."),t._retainDisposable.dispose(),t._retainDisposable=null)}}}}var t=e.prototype;return t.temporaryRetain=function(e){var t,r=this;if(e.isServer())return{dispose:function(){}};var n=this._retain(e),a=null,i=function(){clearTimeout(a),a=null,r._releaseTemporaryRetain=null,n.dispose()};return a=setTimeout(i,3e5),null===(t=this._releaseTemporaryRetain)||void 0===t||t.call(this),this._releaseTemporaryRetain=i,{dispose:function(){var e;null===(e=r._releaseTemporaryRetain)||void 0===e||e.call(r)}}},t.permanentRetain=function(e){var t=this._retain(e);return this.releaseTemporaryRetain(),t},t.releaseTemporaryRetain=function(){var e;null===(e=this._releaseTemporaryRetain)||void 0===e||e.call(this),this._releaseTemporaryRetain=null},t.getRetainCount=function(){return this._retainCount},e}();e.exports=i},function(e,t,r){"use strict";var n=r(9),a=r(12),i=a.getQueryCacheIdentifier,o=a.getQueryResourceForEnvironment,u=r(21),s=r(10),l=r(2),c=r(0),f=c.useContext,d=c.useEffect,p=c.useState,h=c.useRef;e.exports=function(e){var t=e.query,r=e.componentDisplayName,a=e.fetchObservable,c=e.fetchPolicy,v=e.fetchKey,m=e.renderPolicy,y=l(),g=f(n),b=o(y),_=p(0),R=_[0],E=_[1],P=u(),k=P.startFetch,C=P.completeFetch,x="".concat(R,"-").concat(null!=v?v:""),S=i(y,t,c,m,x),w=g.wrapPrepareQueryResource((function(){return b.prepareWithIdentifier(S,t,a,c,m,{start:k,complete:C,error:C},g)})),q=h(!1);d((function(){return function(){q.current=!0}}),[]),d((function(){if(!0===q.current)return q.current=!1,void E((function(e){return e+1}));var e=b.retain(w,g);return function(){e.dispose()}}),[y,S]),d((function(){b.releaseTemporaryRetain(w)}));var I=w.fragmentNode,D=w.fragmentRef;return s(I,D,r).data}},function(e,t,r){"use strict";var n=r(0),a=n.useCallback,i=n.useEffect,o=n.useRef;e.exports=function(){var e=o(null),t=o(!1),r=a((function(){null!=e.current&&(e.current.unsubscribe(),e.current=null),t.current=!1}),[]),n=a((function(r){e.current=r,t.current=!0}),[]),u=a((function(){e.current=null,t.current=!1}),[]);return i((function(){return r}),[r]),{isFetchingRef:t,startFetch:n,disposeFetch:r,completeFetch:u}}},function(e,t,r){"use strict";var n=r(32),a=r(0),i=r(1),o=i.createOperationDescriptor,u=i.getRequest,s=a.useMemo;e.exports=function(e,t,r){var a=n(t)[0],i=n(r||{})[0];return s((function(){return o(u(e),a,i)}),[e,a,i])}},function(e,t,r){"use strict";var n,a=r(4)(r(7)),i=r(17).getFragmentResourceForEnvironment,o=r(9),u=r(12).getQueryResourceForEnvironment,s=r(10),l=r(8),c=r(24),f=r(2),d=r(3),p=r(0),h=p.useCallback,v=p.useContext,m=p.useReducer,y=r(1),g=y.__internal.fetchQuery,b=y.createOperationDescriptor,_=y.getFragmentIdentifier,R=y.getRefetchMetadata,E=y.getSelector,P=y.getValueAtPath,k=r(5);function C(e,t){switch(t.type){case"refetch":var r;return(0,a.default)((0,a.default)({},e),{},{fetchPolicy:t.fetchPolicy,mirroredEnvironment:null!==(r=t.refetchEnvironment)&&void 0!==r?r:e.mirroredEnvironment,onComplete:t.onComplete,refetchEnvironment:t.refetchEnvironment,refetchQuery:t.refetchQuery,renderPolicy:t.renderPolicy});case"reset":return{fetchPolicy:void 0,mirroredEnvironment:t.environment,mirroredFragmentIdentifier:t.fragmentIdentifier,onComplete:void 0,refetchQuery:null,renderPolicy:void 0};default:throw t.type,new Error("useRefetchableFragmentNode: Unexpected action type")}}n={getInitialIDAndType:function(e,t,n){var a=r(1).Record,i=null==e?void 0:e.id;if(1!==t.length||"node"!==t[0]||null==i)return null;var o=n.getStore().getSource().get(i),u=o&&a.getType(o);return null==u?null:{id:i,typename:u}},checkSameTypeAfterRefetch:function(e,t,n,a){var i=r(1).Record;if(e){var o=t.getStore().getSource().get(e.id),u=o&&i.getType(o);u!==e.typename&&k(!1,"Relay: Call to `refetch` returned data with a different __typename: was `%s`, now `%s`, on `%s` in `%s`. Please make sure the server correctly implementsunique id requirement.",e.typename,u,n.name,a)}},checkSameIDAfterRefetch:function(e,t,n,a){if(null!=e){var i=t[r(1).ID_KEY];null!=i&&i!==e.id&&k(!1,"Relay: Call to `refetch` returned a different id, expected `%s`, got `%s`, on `%s` in `%s`. Please make sure the server correctly implements unique id requirement.",i,e.id,n.name,a)}}},e.exports=function(e,t,r){var p=f(),y=R(e,r),x=y.refetchableRequest,S=y.fragmentRefPathInResponse,w=y.identifierField,q=_(e,t),I=m(C,{fetchPolicy:void 0,mirroredEnvironment:p,mirroredFragmentIdentifier:q,onComplete:void 0,refetchEnvironment:null,refetchQuery:null,renderPolicy:void 0}),D=I[0],F=I[1],A=D.fetchPolicy,N=D.mirroredEnvironment,Q=D.mirroredFragmentIdentifier,T=D.onComplete,O=D.refetchEnvironment,M=D.refetchQuery,L=D.renderPolicy,U=null!=O?O:p,j=u(U),W=i(U),B=v(o),K=U!==N||q!==Q,V=c(x),H=V[0],G=V[1],z=V[2],Y=t;if(K)F({type:"reset",environment:U,fragmentIdentifier:q}),z();else if(null!=M&&null!=H){var X;X=n.getInitialIDAndType(M.request.variables,S,U);var J=function(e){T&&T(null!=e?e:null)},Z=null!=H.source?H.source:g(U,M),$=B.wrapPrepareQueryResource((function(){return j.prepare(M,Z,A,L,{error:J,complete:function(){n.checkSameTypeAfterRefetch(X,U,e,r),J()}},H.fetchKey,B)})),ee=W.read($.fragmentNode,$.fragmentRef,r).data;null==ee&&d(!1,"Relay: Expected to be able to read refetch query response. If you're seeing this, this is likely a bug in Relay."),Y=P(ee,S),n.checkSameIDAfterRefetch(X,Y,e,r)}var te=s(e,Y,r),re=te.data,ne=te.disableStoreUpdates,ae=te.enableStoreUpdates;return{fragmentData:re,fragmentRef:Y,refetch:function(e,t,r,n,i,o,u,s,c,f,d){var p=l(),v=null!=s&&null!=n&&"object"==typeof n?n[s]:null;return h((function(n,i){if(!0!==p.current)return k(!1,"Relay: Unexpected call to `refetch` on unmounted component for fragment `%s` in `%s`. It looks like some instances of your component are still trying to fetch data but they already unmounted. Please make sure you clear all timers, intervals, async calls, etc that may trigger a fetch.",o.name,e),{dispose:function(){}};null==f&&k(!1,"Relay: Unexpected call to `refetch` while using a null fragment ref for fragment `%s` in `%s`. When calling `refetch`, we expect initial fragment data to be non-null. Please make sure you're passing a valid fragment ref to `%s` before calling `refetch`, or make sure you pass all required variables to `refetch`.",o.name,e,e);var u,l,h=null==i?void 0:i.__environment,m=null==i?void 0:i.fetchPolicy,y=null==i?void 0:i.UNSTABLE_renderPolicy,g=null==i?void 0:i.onComplete,_=E(o,f);if(null==_)u={},l={};else if("PluralReaderSelector"===_.kind){var R,P,C,x;u=null!==(R=null===(P=_.selectors[0])||void 0===P?void 0:P.owner.variables)&&void 0!==R?R:{},l=null!==(C=null===(x=_.selectors[0])||void 0===x?void 0:x.variables)&&void 0!==C?C:{}}else u=_.owner.variables,l=_.variables;var S=(0,a.default)((0,a.default)((0,a.default)({},u),l),n);null==s||n.hasOwnProperty("id")||("string"!=typeof v&&k(!1,"Relay: Expected result to have a string `%s` in order to refetch, got `%s`.",s,v),S.id=v);var w=b(d,S,{force:!0});return c(w.request.variables,{fetchPolicy:m,__environment:h,__nameForWarning:"refetch"}),t({type:"refetch",fetchPolicy:m,onComplete:g,refetchEnvironment:h,refetchQuery:w,renderPolicy:y}),{dispose:r}}),[i,t,r,v,c])}(r,F,z,re,q,e,0,w,G,t,x),disableStoreUpdates:ne,enableStoreUpdates:ae}}},function(e,t,r){"use strict";var n=r(4)(r(16)),a=r(6),i=a.loadQuery,o=a.useTrackLoadQueryInRender,u=r(8),s=r(2),l=r(0),c=l.useCallback,f=l.useEffect,d=l.useRef,p=l.useState,h=r(1).getRequest,v={kind:"NullQueryReference"};function m(e){return"PreloadableConcreteRequest"===e.kind?void 0!==e.params.metadata.live:void 0!==h(e).params.metadata.live}e.exports=function(e,t){var r=null!=t?t:v,a=s();o();var l=u(),h=d(new Set([r])),y=p((function(){return r})),g=y[0],b=y[1],_=p((function(){return r})),R=_[0],E=_[1];r!==R&&(h.current.add(r),E(r),b(r));var P=c((function(){l.current&&(h.current.add(v),b(v))}),[l]),k=c((function(t,r){var n=null!=r&&r.hasOwnProperty("__environment")?{fetchPolicy:r.fetchPolicy,networkCacheConfig:r.networkCacheConfig,__nameForWarning:r.__nameForWarning}:r;if(l.current){var o,u=i(null!==(o=null==r?void 0:r.__environment)&&void 0!==o?o:a,e,t,n);h.current.add(u),b(u)}}),[a,e,b,l]),C=d(!1);return f((function(){return function(){C.current=!0}}),[]),f((function(){if(!0===C.current)return C.current=!1,void("NullQueryReference"!==g.kind&&k(g.variables,{fetchPolicy:g.fetchPolicy,networkCacheConfig:g.networkCacheConfig}));var t=h.current;if(l.current){var r,a=(0,n.default)(t);try{for(a.s();!(r=a.n()).done;){var i=r.value;if(i===g)break;t.delete(i),"NullQueryReference"!==i.kind&&(m(e)?i.dispose&&i.dispose():i.releaseQuery&&i.releaseQuery())}}catch(e){a.e(e)}finally{a.f()}}}),[g,l,k,e]),f((function(){return function(){var t,r=(0,n.default)(h.current);try{for(r.s();!(t=r.n()).done;){var a=t.value;"NullQueryReference"!==a.kind&&(m(e)?a.dispose&&a.dispose():a.releaseQuery&&a.releaseQuery())}}catch(e){r.e(e)}finally{r.f()}}}),[e]),["NullQueryReference"===g.kind?null:g,k,P]}},function(e,t,r){"use strict";var n=r(26),a=r(15),i=r(6).loadQuery,o=r(27),u=r(28),s=r(29),l=r(31),c=r(34),f=r(35),d=r(38),p=r(24),h=r(39),v=r(2),m=r(40),y=r(41),g=r(1);e.exports={ConnectionHandler:g.ConnectionHandler,applyOptimisticMutation:g.applyOptimisticMutation,commitLocalUpdate:g.commitLocalUpdate,commitMutation:g.commitMutation,graphql:g.graphql,readInlineData:g.readInlineData,requestSubscription:g.requestSubscription,EntryPointContainer:n,RelayEnvironmentProvider:o,fetchQuery:g.fetchQuery,loadQuery:i,loadEntryPoint:a,useFragment:s,useLazyLoadQuery:l,useEntryPointLoader:u,useQueryLoader:p,useMutation:c,usePaginationFragment:f,usePreloadedQuery:d,useRefetchableFragment:h,useRelayEnvironment:v,useSubscribeToInvalidationState:m,useSubscription:y}},function(e,t,r){"use strict";var n=r(9),a=r(2),i=r(0),o=r(0),u=o.useContext,s=o.useEffect,l=r(5);e.exports=function(e){var t=e.entryPointReference,r=e.props;l(!1===t.isDisposed,"<EntryPointContainer>: Expected entryPointReference to not be disposed yet. This is because disposing the entrypoint marks it for future garbage collection, and as such may no longer be present in the Relay store. In the future, this will become a hard error.");var o=t.getComponent,c=t.queries,f=t.entryPoints,d=t.extraProps,p=t.rootModuleID,h=o(),v=u(n),m=a();return s((function(){m.__log({name:"entrypoint.root.consume",profilerContext:v,rootModuleID:p})}),[m,v,p]),i.createElement(h,{entryPoints:f,extraProps:d,props:r,queries:c})}},function(e,t,r){"use strict";var n=r(0),a=r(14),i=n.useMemo;e.exports=function(e){var t=e.children,r=e.environment,o=e.getEnvironmentForActor,u=i((function(){return{environment:r,getEnvironmentForActor:o}}),[r,o]);return n.createElement(a.Provider,{value:u},t)}},function(e,t,r){"use strict";var n=r(4)(r(16)),a=r(15),i=r(6).useTrackLoadQueryInRender,o=r(8),u=r(0),s=u.useCallback,l=u.useEffect,c=u.useRef,f=u.useState,d={kind:"NullEntryPointReference"};e.exports=function(e,t,r){var u,p,h,v;i();var m=null!==(u=null==r||null===(p=r.TEST_ONLY__initialEntryPointData)||void 0===p?void 0:p.entryPointReference)&&void 0!==u?u:d,y=null!==(h=null==r||null===(v=r.TEST_ONLY__initialEntryPointData)||void 0===v?void 0:v.entryPointParams)&&void 0!==h?h:null,g=o(),b=c(new Set([m])),_=f(m),R=_[0],E=_[1],P=f(y),k=P[0],C=P[1],x=s((function(){if(g.current){var e={kind:"NullEntryPointReference"};b.current.add(e),E(e)}}),[E,g]),S=s((function(r){if(g.current){var n=a(e,t,r);b.current.add(n),E(n),C(r)}}),[e,t,E,g]),w=c(!1);return l((function(){return function(){w.current=!0}}),[]),l((function(){if(!0===w.current)return w.current=!1,void("NullEntryPointReference"!==R.kind&&null!=k&&S(k));var e=b.current;if(g.current){var t,r=(0,n.default)(e);try{for(r.s();!(t=r.n()).done;){var a=t.value;if(a===R)break;e.delete(a),"NullEntryPointReference"!==a.kind&&a.dispose()}}catch(e){r.e(e)}finally{r.f()}}}),[R,k,S,g]),l((function(){return function(){var e,t=(0,n.default)(b.current);try{for(t.s();!(e=t.n()).done;){var r=e.value;"NullEntryPointReference"!==r.kind&&r.dispose()}}catch(e){t.e(e)}finally{t.f()}}}),[]),["NullEntryPointReference"===R.kind?null:R,S,x]}},function(e,t,r){"use strict";var n=r(6).useTrackLoadQueryInRender,a=r(10),i=r(13),o=r(0).useDebugValue,u=r(1).getFragment;e.exports=function(e,t){n();var r=u(e);i(r,"first argument of useFragment()");var s=a(r,t,"useFragment()").data;return o({fragment:r.name,data:s}),s}},function(e,t){e.exports=l},function(e,t,r){"use strict";var n=r(6).useTrackLoadQueryInRender,a=r(20),i=r(22),o=r(2),u=r(1).__internal.fetchQuery;e.exports=function(e,t,r){n();var s=o(),l=i(e,t,r&&r.networkCacheConfig?r.networkCacheConfig:{force:!0});return a({componentDisplayName:"useLazyLoadQuery()",fetchKey:null==r?void 0:r.fetchKey,fetchObservable:u(s,l),fetchPolicy:null==r?void 0:r.fetchPolicy,query:l,renderPolicy:null==r?void 0:r.UNSTABLE_renderPolicy})}},function(e,t,r){"use strict";var n=r(33),a=r(0),i=a.useMemo,o=a.useRef,u=a.useState;e.exports=function(e){var t,r,a=o(0),s=u(e),l=s[0],c=s[1];return n(e,l)||(a.current=(null!==(r=a.current)&&void 0!==r?r:0)+1,c(e)),[i((function(){return e}),[a.current]),null!==(t=a.current)&&void 0!==t?t:0]}},function(e,t){e.exports=c},function(e,t,r){"use strict";var n=r(4)(r(7)),a=r(8),i=r(2),o=r(0),u=r(1).commitMutation,s=o.useState,l=o.useEffect,c=o.useRef,f=o.useCallback;e.exports=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:u,r=i(),o=a(),d=c(r),p=c(e),h=c(new Set),v=s(!1),m=v[0],y=v[1],g=f((function(t){d.current===r&&p.current===e&&(h.current.delete(t),o.current&&y(h.current.size>0))}),[r,o,e]);l((function(){d.current===r&&p.current===e||(h.current=new Set,o.current&&y(!1),d.current=r,p.current=e)}),[r,o,e]);var b=f((function(a){o.current&&y(!0);var i=t(r,(0,n.default)((0,n.default)({},a),{},{mutation:e,onCompleted:function(e,t){var r;g(i),null===(r=a.onCompleted)||void 0===r||r.call(a,e,t)},onError:function(e){var t;g(i),null===(t=a.onError)||void 0===t||t.call(a,e)},onUnsubscribe:function(){var e;g(i),null===(e=a.onUnsubscribe)||void 0===e||e.call(a)},onNext:function(){var e;null===(e=a.onNext)||void 0===e||e.call(a)}}));return h.current.add(i),i}),[g,t,r,o,e]);return[b,m]}},function(e,t,r){"use strict";var n=r(4)(r(7)),a=r(36),i=r(23),o=r(13),u=r(0),s=u.useCallback,l=u.useDebugValue,c=u.useState,f=r(1),d=f.getFragment,p=f.getFragmentIdentifier,h=f.getPaginationMetadata;function v(e){var t=c(!1),r=t[0],i=t[1],o={start:function(){return i(!0)},complete:function(){return i(!1)},error:function(){return i(!1)}},u=a((0,n.default)((0,n.default)({},e),{},{observer:o,onReset:function(){return i(!1)}}));return[u[0],u[1],r,u[2]]}e.exports=function(e,t){var r=d(e);o(r,"first argument of usePaginationFragment()");var a=h(r,"usePaginationFragment()"),u=a.connectionPathInFragmentData,c=a.paginationRequest,f=a.paginationMetadata,m=a.identifierField,y=i(r,t,"usePaginationFragment()"),g=y.fragmentData,b=y.fragmentRef,_=y.refetch,R=p(r,b),E=v({componentDisplayName:"usePaginationFragment()",connectionPathInFragmentData:u,direction:"backward",fragmentData:g,fragmentIdentifier:R,fragmentNode:r,fragmentRef:b,identifierField:m,paginationMetadata:f,paginationRequest:c}),P=E[0],k=E[1],C=E[2],x=E[3],S=v({componentDisplayName:"usePaginationFragment()",connectionPathInFragmentData:u,direction:"forward",fragmentData:g,fragmentIdentifier:R,fragmentNode:r,fragmentRef:b,identifierField:m,paginationMetadata:f,paginationRequest:c}),w=S[0],q=S[1],I=S[2],D=S[3],F=s((function(e,t){return D(),x(),_(e,(0,n.default)((0,n.default)({},t),{},{__environment:void 0}))}),[D,x,_]);return l({fragment:r.name,data:g,hasNext:q,isLoadingNext:I,hasPrevious:k,isLoadingPrevious:C}),{data:g,loadNext:w,loadPrevious:P,hasNext:q,hasPrevious:k,isLoadingNext:I,isLoadingPrevious:C,refetch:F}}},function(e,t,r){"use strict";var n=r(4)(r(7)),a=r(21),i=r(8),o=r(37),u=r(2),s=r(3),l=r(0),c=l.useCallback,f=l.useEffect,d=l.useState,p=r(1),h=p.ConnectionInterface,v=p.__internal.fetchQuery,m=p.createOperationDescriptor,y=p.getPaginationVariables,g=p.getSelector,b=p.getValueAtPath,_=r(5);e.exports=function(e){var t=e.direction,r=e.fragmentNode,l=e.fragmentRef,p=e.fragmentIdentifier,R=e.fragmentData,E=e.connectionPathInFragmentData,P=e.paginationRequest,k=e.paginationMetadata,C=e.componentDisplayName,x=e.observer,S=e.onReset,w=e.identifierField,q=u(),I=a(),D=I.isFetchingRef,F=I.startFetch,A=I.disposeFetch,N=I.completeFetch,Q=null!=w&&null!=R&&"object"==typeof R?R[w]:null,T=i(),O=d(q),M=O[0],L=O[1],U=d(p),j=U[0],W=U[1],B=o(r,l);(q!==M||p!==j)&&(A(),S(),L(q),W(p));var K=function(e,t,r,n){var a,i,o=h.get(),u=o.EDGES,l=o.PAGE_INFO,c=o.HAS_NEXT_PAGE,f=o.HAS_PREV_PAGE,d=o.END_CURSOR,p=o.START_CURSOR,v=b(r,n);if(null==v)return{cursor:null,hasMore:!1};"object"!=typeof v&&s(!1,"Relay: Expected connection in fragment `%s` to have been `null`, or a plain object with %s and %s properties. Instead got `%s`.",t.name,u,l,v);var m=v[u],y=v[l];if(null==m||null==y)return{cursor:null,hasMore:!1};Array.isArray(m)||s(!1,"Relay: Expected connection in fragment `%s` to have a plural `%s` field. Instead got `%s`.",t.name,u,m),"object"!=typeof y&&s(!1,"Relay: Expected connection in fragment `%s` to have a `%s` field. Instead got `%s`.",t.name,l,y);var g,_="forward"===e?null!==(a=y[d])&&void 0!==a?a:null:null!==(i=y[p])&&void 0!==i?i:null;null!==_&&"string"!=typeof _&&s(!1,"Relay: Expected page info for connection in fragment `%s` to have a valid `%s`. Instead got `%s`.",t.name,p,_),g="forward"===e?null!=_&&!0===y[c]:null!=_&&!0===y[f];return{cursor:_,hasMore:g}}(t,r,R,E),V=K.cursor,H=K.hasMore;return f((function(){return function(){A()}}),[A]),[c((function(e,a){var i=null==a?void 0:a.onComplete;if(!0!==T.current)return _(!1,"Relay: Unexpected fetch on unmounted component for fragment `%s` in `%s`. It looks like some instances of your component are still trying to fetch data but they already unmounted. Please make sure you clear all timers, intervals, async calls, etc that may trigger a fetch.",r.name,C),{dispose:function(){}};var o=g(r,l);if(!0===D.current||null==R||B)return null==o&&_(!1,"Relay: Unexpected fetch while using a null fragment ref for fragment `%s` in `%s`. When fetching more items, we expect initial fragment data to be non-null. Please make sure you're passing a valid fragment ref to `%s` before paginating.",r.name,C,C),i&&i(null),{dispose:function(){}};(null==o||"PluralReaderSelector"===o.kind)&&s(!1,"Relay: Expected to be able to find a non-plural fragment owner for fragment `%s` when using `%s`. If you're seeing this, this is likely a bug in Relay.",r.name,C);var u=o.owner.variables,c=o.variables,f=null==a?void 0:a.UNSTABLE_extraVariables,d=(0,n.default)((0,n.default)({},u),c),p=y(t,e,V,d,(0,n.default)({},f),k);null!=w&&("string"!=typeof Q&&_(!1,"Relay: Expected result to have a string `%s` in order to refetch, got `%s`.",w,Q),p.id=Q);var h=m(P,p,{force:!0});return v(q,h).subscribe((0,n.default)((0,n.default)({},x),{},{start:function(e){F(e),x.start&&x.start(e)},complete:function(){N(),x.complete&&x.complete(),i&&i(null)},error:function(e){N(),x.error&&x.error(e),i&&i(e)}})),{dispose:A}}),[q,Q,t,V,F,A,N,D,B,R,r.name,l,C]),H,A]}},function(e,t,r){"use strict";var n=r(2),a=r(3),i=r(0),o=r(1),u=o.__internal.getObservableForActiveRequest,s=o.getSelector,l=i.useEffect,c=i.useState,f=i.useMemo;e.exports=function(e,t){var r=n(),i=f((function(){var n=s(e,t);return null==n?null:("SingularReaderSelector"!==n.kind&&a(!1,"useIsOperationNodeActive: Plural fragments are not supported."),u(r,n.owner))}),[r,e,t]),o=c(null!=i),d=o[0],p=o[1];return l((function(){var e;if(p(null!=i),null!=i){var t=function(){p(!1)};e=i.subscribe({complete:t,error:t})}return function(){e&&e.unsubscribe()}}),[i]),d}},function(e,t,r){"use strict";var n=r(6).useTrackLoadQueryInRender,a=r(20),i=r(22),o=r(2),u=r(3),s=r(0).useDebugValue,l=r(1).__internal,c=l.fetchQueryDeduped,f=l.fetchQuery,d=r(5);e.exports=function(e,t,r){n();var l,p=o(),h=t.fetchKey,v=t.fetchPolicy,m=t.source,y=t.variables,g=t.networkCacheConfig,b=i(e,y,g);if("PreloadedQuery_DEPRECATED"===t.kind)b.request.node.params.name!==t.name&&u(!1,"usePreloadedQuery(): Expected data to be prefetched for query `%s`, got prefetch results for query `%s`.",b.request.node.params.name,t.name),l={componentDisplayName:"usePreloadedQuery()",fetchKey:h,fetchObservable:c(p,b.request.identifier,(function(){return p===t.environment&&null!=m?p.executeWithSource({operation:b,source:m}):p.execute({operation:b})})),fetchPolicy:v,query:b,renderPolicy:null==r?void 0:r.UNSTABLE_renderPolicy};else{d(!1===t.isDisposed,"usePreloadedQuery(): Expected preloadedQuery to not be disposed yet. This is because disposing the query marks it for future garbage collection, and as such query results may no longer be present in the Relay store. In the future, this will become a hard error.");var _,R=f(p,b);null!=m&&p===t.environment?_=m.ifEmpty(R):p!==t.environment?(d(!1,"usePreloadedQuery(): usePreloadedQuery was passed a preloaded query that was created with a different environment than the one that is currently in context. In the future, this will become a hard error."),_=R):_=R,l={componentDisplayName:"usePreloadedQuery()",fetchObservable:_,fetchKey:h,fetchPolicy:v,query:b,renderPolicy:null==r?void 0:r.UNSTABLE_renderPolicy}}var E=a(l);return s({query:t.name,variables:t.variables,data:E,fetchKey:h,fetchPolicy:v,renderPolicy:null==r?void 0:r.UNSTABLE_renderPolicy}),E}},function(e,t,r){"use strict";var n=r(23),a=r(13),i=r(0).useDebugValue,o=r(1).getFragment;e.exports=function(e,t){var r=o(e);a(r,"first argument of useRefetchableFragment()");var u=n(r,t,"useRefetchableFragment()"),s=u.fragmentData,l=u.refetch;return i({fragment:r.name,data:s}),[s,l]}},function(e,t,r){"use strict";var n=r(2),a=r(0),i=a.useEffect,o=a.useRef;e.exports=function(e,t){var r=n(),a=o(null),u=Array.from(e).sort().join("");return i((function(){var n=r.getStore(),i=n.lookupInvalidationState(e),o=n.subscribeToInvalidationState(i,t);return a.current=o,function(){return o.dispose()}}),[u,t,r]),{dispose:function(){null!=a.current&&a.current.dispose()}}}},function(e,t,r){"use strict";var n=r(2),a=r(0).useEffect,i=r(1).requestSubscription;e.exports=function(e,t){var r=null!=t?t:i,o=n();a((function(){return r(o,e).dispose}),[o,e,r])}}])}));
|
package/react-relay-hooks.min.js
CHANGED
package/react-relay-legacy.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Relay v0.0.0-main-
|
|
2
|
+
* Relay v0.0.0-main-ba2080a3
|
|
3
3
|
*/
|
|
4
4
|
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("relay-runtime"),require("react"),require("@babel/runtime/helpers/interopRequireDefault"),require("@babel/runtime/helpers/objectSpread2"),require("@babel/runtime/helpers/defineProperty"),require("invariant"),require("fbjs/lib/areEqual"),require("@babel/runtime/helpers/assertThisInitialized"),require("@babel/runtime/helpers/inheritsLoose"),require("@babel/runtime/helpers/objectWithoutPropertiesLoose"),require("@babel/runtime/helpers/extends"),require("fbjs/lib/warning")):"function"==typeof define&&define.amd?define(["relay-runtime","react","@babel/runtime/helpers/interopRequireDefault","@babel/runtime/helpers/objectSpread2","@babel/runtime/helpers/defineProperty","invariant","fbjs/lib/areEqual","@babel/runtime/helpers/assertThisInitialized","@babel/runtime/helpers/inheritsLoose","@babel/runtime/helpers/objectWithoutPropertiesLoose","@babel/runtime/helpers/extends","fbjs/lib/warning"],t):"object"==typeof exports?exports.ReactRelayLegacy=t(require("relay-runtime"),require("react"),require("@babel/runtime/helpers/interopRequireDefault"),require("@babel/runtime/helpers/objectSpread2"),require("@babel/runtime/helpers/defineProperty"),require("invariant"),require("fbjs/lib/areEqual"),require("@babel/runtime/helpers/assertThisInitialized"),require("@babel/runtime/helpers/inheritsLoose"),require("@babel/runtime/helpers/objectWithoutPropertiesLoose"),require("@babel/runtime/helpers/extends"),require("fbjs/lib/warning")):e.ReactRelayLegacy=t(e["relay-runtime"],e.react,e["@babel/runtime/helpers/interopRequireDefault"],e["@babel/runtime/helpers/objectSpread2"],e["@babel/runtime/helpers/defineProperty"],e.invariant,e["fbjs/lib/areEqual"],e["@babel/runtime/helpers/assertThisInitialized"],e["@babel/runtime/helpers/inheritsLoose"],e["@babel/runtime/helpers/objectWithoutPropertiesLoose"],e["@babel/runtime/helpers/extends"],e["fbjs/lib/warning"])}(window,(function(e,t,r,n,o,a,s,i,u,l,c,h){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=19)}([function(t,r){t.exports=e},function(e,r){e.exports=t},function(e,t){e.exports=r},function(e,t,r){"use strict";var n=r(1),o=r(0).__internal.createRelayContext;e.exports=o(n)},function(e,t){e.exports=n},function(e,t){e.exports=o},function(e,t){e.exports=a},function(e,t){e.exports=s},function(e,t){e.exports=i},function(e,t){e.exports=u},function(e,t,r){"use strict";function n(e){return e.displayName||e.name||"Component"}e.exports={getComponentName:n,getContainerName:function(e){return"Relay("+n(e)+")"}}},function(e,t){e.exports=l},function(e,t,r){"use strict";var n=r(2)(r(13)),o=r(21),a=r(10),s=a.getComponentName,i=a.getContainerName,u=r(3),l=r(14),c=r(22),h=r(6),f=r(1),p=r(0).getFragment;e.exports=function(e,t,r){var a=i(e);o(s(e),t);var d={};for(var v in t)d[v]=p(t[v]);var _=r(e,d);function y(e,t){var r,o=c(u);null==o&&h(!1,"`%s` tried to render a context that was not valid this means that `%s` was rendered outside of a query renderer.",a,a);var s=c(l);return f.createElement(_,(0,n.default)({},e,{__relayContext:o,__rootIsQueryRenderer:null!==(r=null==s?void 0:s.rootIsQueryRenderer)&&void 0!==r&&r,componentRef:e.componentRef||t}))}_.displayName=a,y.displayName=a;var b=f.forwardRef(y);return b.__ComponentClass=e,b.displayName=a,b}},function(e,t){e.exports=c},function(e,t,r){"use strict";var n=r(1);e.exports=n.createContext({rootIsQueryRenderer:!1})},function(e,t,r){"use strict";var n=r(23),o=r(6);function a(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)&&n(e.environment)}e.exports={assertRelayContext:function(e){return a(e)||o(!1,"RelayContext: Expected `context.relay` to be an object conforming to the `RelayContext` interface, got `%s`.",e),e},isRelayContext:a}},function(e,t,r){"use strict";var n=r(2)(r(5)),o=r(6),a=r(0),s=a.__internal.fetchQuery,i=a.createOperationDescriptor,u=a.isRelayModernEnvironment,l=function(){function e(e){(0,n.default)(this,"_selectionReferences",[]),(0,n.default)(this,"_callOnDataChangeWhenSet",!1),null!=e&&(this._cacheSelectionReference=e.cacheSelectionReference,this._selectionReferences=e.selectionReferences)}var t=e.prototype;return t.getSelectionReferences=function(){return{cacheSelectionReference:this._cacheSelectionReference,selectionReferences:this._selectionReferences}},t.lookupInStore=function(e,t,r){return"store-and-network"!==r&&"store-or-network"!==r||"available"!==e.check(t).status?null:(this._retainCachedOperation(e,t),e.lookup(t.fragment))},t.execute=function(e){var t=this,r=e.environment,n=e.operation,o=e.preservePreviousReferences,a=void 0!==o&&o,i=r.retain(n),l=function(){t._selectionReferences=t._selectionReferences.concat(i)},c=function(){a||t.disposeSelectionReferences(),t._selectionReferences=t._selectionReferences.concat(i)},h=function(){t._selectionReferences=t._selectionReferences.concat(i)};return u(r)?s(r,n).do({error:l,complete:c,unsubscribe:h}):r.execute({operation:n}).do({error:l,complete:c,unsubscribe:h})},t.setOnDataChange=function(e){this._fetchOptions||o(!1,"ReactRelayQueryFetcher: `setOnDataChange` should have been called after having called `fetch`"),"function"==typeof e&&(this._fetchOptions.onDataChangeCallbacks=this._fetchOptions.onDataChangeCallbacks||[],this._fetchOptions.onDataChangeCallbacks.push(e),this._callOnDataChangeWhenSet&&(null!=this._error?e({error:this._error}):null!=this._snapshot&&e({snapshot:this._snapshot})))},t.fetch=function(e,t){var r,n=this,o=e.environment,a=e.operation,s=e.onDataChange,u=!1;this.disposeRequest();var l=this._fetchOptions&&this._fetchOptions.onDataChangeCallbacks;this._fetchOptions={environment:o,onDataChangeCallbacks:l||[],operation:a},s&&-1===this._fetchOptions.onDataChangeCallbacks.indexOf(s)&&this._fetchOptions.onDataChangeCallbacks.push(s);var c=t?i(a.request.node,a.request.variables,t):a,h=this.execute({environment:o,operation:c}).finally((function(){n._pendingRequest=null})).subscribe({next:function(){n._callOnDataChangeWhenSet=!0,n._error=null,n._onQueryDataAvailable({notifyFirstResult:u})},error:function(e){n._callOnDataChangeWhenSet=!0,n._error=e,n._snapshot=null;var t=n._fetchOptions&&n._fetchOptions.onDataChangeCallbacks;u?t&&t.forEach((function(t){t({error:e})})):r=e}});if(this._pendingRequest={dispose:function(){h.unsubscribe()}},u=!0,r)throw r;return this._snapshot},t.retry=function(e){return this._fetchOptions||o(!1,"ReactRelayQueryFetcher: `retry` should be called after having called `fetch`"),this.fetch({environment:this._fetchOptions.environment,operation:this._fetchOptions.operation,onDataChange:null},e)},t.dispose=function(){this.disposeRequest(),this.disposeSelectionReferences()},t.disposeRequest=function(){this._error=null,this._snapshot=null,this._pendingRequest&&this._pendingRequest.dispose(),this._rootSubscription&&(this._rootSubscription.dispose(),this._rootSubscription=null)},t._retainCachedOperation=function(e,t){this._disposeCacheSelectionReference(),this._cacheSelectionReference=e.retain(t)},t._disposeCacheSelectionReference=function(){this._cacheSelectionReference&&this._cacheSelectionReference.dispose(),this._cacheSelectionReference=null},t.disposeSelectionReferences=function(){this._disposeCacheSelectionReference(),this._selectionReferences.forEach((function(e){return e.dispose()})),this._selectionReferences=[]},t._onQueryDataAvailable=function(e){var t=this,r=e.notifyFirstResult;this._fetchOptions||o(!1,"ReactRelayQueryFetcher: `_onQueryDataAvailable` should have been called after having called `fetch`");var n=this._fetchOptions,a=n.environment,s=n.onDataChangeCallbacks,i=n.operation;if(!this._snapshot&&(this._snapshot=a.lookup(i.fragment),this._rootSubscription=a.subscribe(this._snapshot,(function(e){if(null!=t._fetchOptions){var r=t._fetchOptions.onDataChangeCallbacks;Array.isArray(r)&&r.forEach((function(t){return t({snapshot:e})}))}})),this._snapshot&&r&&Array.isArray(s))){var u=this._snapshot;s.forEach((function(e){return e({snapshot:u})}))}},e}();e.exports=l},function(e,t,r){"use strict";var n=r(2)(r(4)),o=r(0).getSelector;e.exports=function(e,t){var r={};return Object.keys(e).forEach((function(a){var s,i,u,l=e[a],c=t[a],h=o(l,c),f=null!=h&&"PluralReaderSelector"===h.kind?null!==(s=null===(i=h.selectors[0])||void 0===i?void 0:i.owner.variables)&&void 0!==s?s:{}:null!==(u=null==h?void 0:h.owner.variables)&&void 0!==u?u:{};r=(0,n.default)((0,n.default)({},r),f)})),r}},function(e,t){e.exports=h},function(e,t,r){"use strict";var n=r(3),o=r(20),a=r(24),s=r(25),i=r(26),u=r(27),l=r(0);e.exports={ConnectionHandler:l.ConnectionHandler,QueryRenderer:i,LocalQueryRenderer:a,MutationTypes:l.MutationTypes,RangeOperations:l.RangeOperations,ReactRelayContext:n,applyOptimisticMutation:l.applyOptimisticMutation,commitLocalUpdate:l.commitLocalUpdate,commitMutation:l.commitMutation,createFragmentContainer:o.createContainer,createPaginationContainer:s.createContainer,createRefetchContainer:u.createContainer,fetchQuery_DEPRECATED:l.fetchQuery_DEPRECATED,graphql:l.graphql,readInlineData:l.readInlineData,requestSubscription:l.requestSubscription}},function(e,t,r){"use strict";var n=r(2),o=n(r(4)),a=n(r(11)),s=n(r(8)),i=n(r(9)),u=n(r(5)),l=r(12),c=r(10).getContainerName,h=r(15).assertRelayContext,f=r(7),p=r(1),d=r(0),v=d.createFragmentSpecResolver,_=d.getDataIDsFromObject,y=d.isScalarAndEqual;function b(e,t){var r,n,l=c(e);return n=r=function(r){function n(e){var n,o;o=r.call(this,e)||this,(0,u.default)((0,s.default)(o),"_handleFragmentDataUpdate",(function(){var e=o.state.resolver;o.setState((function(t){return e===t.resolver?{data:t.resolver.resolve(),relayProp:m(t.relayProp.environment)}:null}))}));var a=h(e.__relayContext),i=null!==(n=e.__rootIsQueryRenderer)&&void 0!==n&&n,c=v(a,l,t,e,i);return o.state={data:c.resolve(),prevProps:e,prevPropsContext:a,relayProp:m(a.environment),resolver:c},o}(0,i.default)(n,r),n.getDerivedStateFromProps=function(e,r){var n,o=r.prevProps,a=h(e.__relayContext),s=null!==(n=e.__rootIsQueryRenderer)&&void 0!==n&&n,i=_(t,o),u=_(t,e),c=r.resolver;if(r.prevPropsContext.environment!==a.environment||!f(i,u))return{data:(c=v(a,l,t,e,s)).resolve(),prevPropsContext:a,prevProps:e,relayProp:m(a.environment),resolver:c};c.setProps(e);var p=c.resolve();return p!==r.data?{data:p,prevProps:e,prevPropsContext:a,relayProp:m(a.environment)}:null};var c=n.prototype;return c.componentDidMount=function(){this._subscribeToNewResolverAndRerenderIfStoreHasChanged()},c.componentDidUpdate=function(e,t){this.state.resolver!==t.resolver?(t.resolver.dispose(),this._subscribeToNewResolverAndRerenderIfStoreHasChanged()):this._rerenderIfStoreHasChanged()},c.componentWillUnmount=function(){this.state.resolver.dispose()},c.shouldComponentUpdate=function(e,r){if(r.data!==this.state.data)return!0;for(var n=Object.keys(e),o=0;o<n.length;o++){var a=n[o];if("__relayContext"===a){if(r.prevPropsContext.environment!==this.state.prevPropsContext.environment)return!0}else if(!t.hasOwnProperty(a)&&!y(e[a],this.props[a]))return!0}return!1},c._rerenderIfStoreHasChanged=function(){var e=this.state,t=e.data,r=e.resolver.resolve();t!==r&&this.setState({data:r})},c._subscribeToNewResolverAndRerenderIfStoreHasChanged=function(){var e=this.state,t=e.data,r=e.resolver,n=r.resolve();r.setCallback(this.props,this._handleFragmentDataUpdate),t!==n&&this.setState({data:n})},c.render=function(){var t=this.props,r=t.componentRef,n=(t.__relayContext,t.__rootIsQueryRenderer,(0,a.default)(t,["componentRef","__relayContext","__rootIsQueryRenderer"]));return p.createElement(e,(0,o.default)((0,o.default)((0,o.default)({},n),this.state.data),{},{ref:r,relay:this.state.relayProp}))},n}(p.Component),(0,u.default)(r,"displayName",l),n}function m(e){return{environment:e}}e.exports={createContainer:function(e,t){return l(e,t,b)}}},function(e,t,r){"use strict";var n=r(6);e.exports=function(e,t){for(var r in t&&"object"==typeof t||n(!1,"Could not create Relay Container for `%s`. Expected a set of GraphQL fragments, got `%s` instead.",e,t),t)if(t.hasOwnProperty(r)){var o=t[r];(!o||"object"!=typeof o&&"function"!=typeof o)&&n(!1,"Could not create Relay Container for `%s`. The value of fragment `%s` was expected to be a fragment, got `%s` instead.",e,r,o)}}},function(e,t,r){"use strict";var n=r(1).__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,o=n.ReactCurrentDispatcher,a=n.ReactCurrentOwner;e.exports=function(e){return(null!=o?o.current:a.currentDispatcher).readContext(e)}},function(e,t,r){"use strict";e.exports=function(e){return"object"==typeof e&&null!==e&&"function"==typeof e.check&&"function"==typeof e.lookup&&"function"==typeof e.retain&&"function"==typeof e.execute&&"function"==typeof e.subscribe}},function(e,t,r){"use strict";var n=r(3),o=r(14),a=r(7),s=r(1),i=r(0),u=i.createOperationDescriptor,l=i.deepFreeze,c=i.getRequest,h=s.useLayoutEffect,f=s.useState,p=s.useRef,d=s.useMemo,v={rootIsQueryRenderer:!0};e.exports=function(e){var t,r,i=e.environment,_=e.query,y=e.variables,b=e.render,m=(t=y,r=s.useRef(t),a(r.current,t)||(l(t),r.current=t),r.current),C=d((function(){var e=c(_);return u(e,m)}),[_,m]),R=d((function(){return{environment:i}}),[i]),g=p(null),x=f(null)[1],S=p(null),P=d((function(){i.check(C);var e=i.lookup(C.fragment);g.current=e.data;var t=i.retain(C),r=i.subscribe(e,(function(e){g.current=e.data,x(g.current)})),n=!1;return S.current&&S.current(),S.current=function(){n||(n=!0,S.current=null,t.dispose(),r.dispose())},e}),[i,C]);return h((function(){var e=S.current;return function(){e&&e()}}),[P]),s.createElement(n.Provider,{value:R},s.createElement(o.Provider,{value:v},b({props:g.current})))}},function(e,t,r){"use strict";var n=r(2),o=n(r(13)),a=n(r(11)),s=n(r(8)),i=n(r(9)),u=n(r(5)),l=n(r(4)),c=r(12),h=r(17),f=r(10),p=f.getComponentName,d=f.getContainerName,v=r(3),_=r(16),y=r(15).assertRelayContext,b=r(7),m=r(6),C=r(1),R=r(0),g=R.ConnectionInterface,x=R.Observable,S=R.RelayFeatureFlags,P=R.createFragmentSpecResolver,q=R.createOperationDescriptor,F=R.getDataIDsFromObject,O=R.getRequest,D=R.getVariablesFromObject,E=R.isScalarAndEqual,I=r(18);function A(e){return"function"==typeof e?{error:e,complete:e,unsubscribe:function(t){"function"==typeof e&&e()}}:e||{}}function N(e,t,r){var n,c,f=p(e),R=d(e),N=function(e){var t=null,r=!1;for(var n in e){var o=e[n],a=o.metadata&&o.metadata.connection;void 0!==o.metadata&&(r=!0),a&&(1!==a.length&&m(!1,"ReactRelayPaginationContainer: Only a single @connection is supported, `%s` has %s.",n,a.length),t&&m(!1,"ReactRelayPaginationContainer: Only a single fragment with @connection is supported."),t=(0,l.default)((0,l.default)({},a[0]),{},{fragmentName:n}))}return r&&null===t&&m(!1,"ReactRelayPaginationContainer: A @connection directive must be present."),t||{}}(t),j=r.getConnectionFromProps||function(e){var t=e.path;return t||m(!1,"ReactRelayPaginationContainer: Unable to synthesize a getConnectionFromProps function."),function(r){for(var n=r[e.fragmentName],o=0;o<t.length;o++){if(!n||"object"!=typeof n)return null;n=n[t[o]]}return n}}(N),w=r.direction||N.direction;w||m(!1,"ReactRelayPaginationContainer: Unable to infer direction of the connection, possibly because both first and last are provided.");var U=r.getFragmentVariables||function(e){var t=e.count;return t||m(!1,"ReactRelayPaginationContainer: Unable to synthesize a getFragmentVariables function."),function(e,r){return(0,l.default)((0,l.default)({},e),{},(0,u.default)({},t,r))}}(N);return c=n=function(n){function c(e){var r,o;o=n.call(this,e)||this,(0,u.default)((0,s.default)(o),"_handleFragmentDataUpdate",(function(){o.setState({data:o._resolver.resolve()})})),(0,u.default)((0,s.default)(o),"_hasMore",(function(){var e=o._getConnectionData();return!!(e&&e.hasMore&&e.cursor)})),(0,u.default)((0,s.default)(o),"_isLoading",(function(){return!!o._refetchSubscription})),(0,u.default)((0,s.default)(o),"_refetchConnection",(function(e,t,r){if(!o._canFetchPage("refetchConnection"))return{dispose:function(){}};o._refetchVariables=r;var n={count:e,cursor:null,totalCount:e};return{dispose:o._fetchPage(n,A(t),{force:!0}).unsubscribe}})),(0,u.default)((0,s.default)(o),"_loadMore",(function(e,t,r){if(!o._canFetchPage("loadMore"))return{dispose:function(){}};var n=A(t),a=o._getConnectionData();if(!a)return x.create((function(e){return e.complete()})).subscribe(n),null;var s=a.edgeCount+e;if(r&&r.force)return o._refetchConnection(s,t);var i=g.get(),u=i.END_CURSOR,l=i.START_CURSOR,c=a.cursor;I(null!=c&&""!==c,"ReactRelayPaginationContainer: Cannot `loadMore` without valid `%s` (got `%s`)","forward"===w?u:l,c);var h={count:e,cursor:c,totalCount:s};return{dispose:o._fetchPage(h,n,r).unsubscribe}}));var a=y(e.__relayContext),i=null!==(r=e.__rootIsQueryRenderer)&&void 0!==r&&r;return o._isARequestInFlight=!1,o._refetchSubscription=null,o._refetchVariables=null,!0===S.ENABLE_CONTAINERS_SUBSCRIBE_ON_COMMIT?o._resolver=P(a,R,t,e,i):o._resolver=P(a,R,t,e,i,o._handleFragmentDataUpdate),o.state={data:o._resolver.resolve(),prevContext:a,contextForChildren:a,relayProp:o._buildRelayProp(a),resolverGeneration:0},o._isUnmounted=!1,o._hasFetched=!1,o}(0,i.default)(c,n);var p=c.prototype;return p.componentDidMount=function(){this._isUnmounted=!1,!0===S.ENABLE_CONTAINERS_SUBSCRIBE_ON_COMMIT&&this._subscribeToNewResolverAndRerenderIfStoreHasChanged()},p.componentDidUpdate=function(e,t){!0===S.ENABLE_CONTAINERS_SUBSCRIBE_ON_COMMIT&&(t.resolverGeneration!==this.state.resolverGeneration?this._subscribeToNewResolverAndRerenderIfStoreHasChanged():this._rerenderIfStoreHasChanged())},p.UNSAFE_componentWillReceiveProps=function(e){var r,n=this,o=y(e.__relayContext),a=null!==(r=e.__rootIsQueryRenderer)&&void 0!==r&&r,s=F(t,this.props),i=F(t,e),u=h(t,this.props),l=h(t,e);o.environment===this.state.prevContext.environment&&b(u,l)&&b(s,i)?this._hasFetched||this._resolver.setProps(e):(this._cleanup(),!0===S.ENABLE_CONTAINERS_SUBSCRIBE_ON_COMMIT?this._resolver=P(o,R,t,e,a):this._resolver=P(o,R,t,e,a,this._handleFragmentDataUpdate),this.setState((function(e){return{prevContext:o,contextForChildren:o,relayProp:n._buildRelayProp(o),resolverGeneration:e.resolverGeneration+1}})));var c=this._resolver.resolve();c!==this.state.data&&this.setState({data:c})},p.componentWillUnmount=function(){this._isUnmounted=!0,this._cleanup()},p.shouldComponentUpdate=function(e,r){if(r.data!==this.state.data||r.relayProp!==this.state.relayProp||r.resolverGeneration!==this.state.resolverGeneration)return!0;for(var n=Object.keys(e),o=0;o<n.length;o++){var a=n[o];if("__relayContext"===a){if(r.prevContext.environment!==this.state.prevContext.environment)return!0}else if(!t.hasOwnProperty(a)&&!E(e[a],this.props[a]))return!0}return!1},p._buildRelayProp=function(e){return{hasMore:this._hasMore,isLoading:this._isLoading,loadMore:this._loadMore,refetchConnection:this._refetchConnection,environment:e.environment}},p._rerenderIfStoreHasChanged=function(){var e=this.state.data,t=this._resolver.resolve();e!==t&&this.setState({data:t})},p._subscribeToNewResolverAndRerenderIfStoreHasChanged=function(){var e=this.state.data,t=this._resolver.resolve();this._resolver.setCallback(this.props,this._handleFragmentDataUpdate),e!==t&&this.setState({data:t})},p._getConnectionData=function(){var e=this.props,t=(e.componentRef,(0,a.default)(e,["componentRef"])),r=(0,l.default)((0,l.default)({},t),this.state.data),n=j(r);if(null==n)return null;var o=g.get(),s=o.EDGES,i=o.PAGE_INFO,u=o.HAS_NEXT_PAGE,c=o.HAS_PREV_PAGE,h=o.END_CURSOR,p=o.START_CURSOR;"object"!=typeof n&&m(!1,"ReactRelayPaginationContainer: Expected `getConnectionFromProps()` in `%s`to return `null` or a plain object with %s and %s properties, got `%s`.",f,s,i,n);var d=n[s],v=n[i];if(null==d||null==v)return null;Array.isArray(d)||m(!1,"ReactRelayPaginationContainer: Expected `getConnectionFromProps()` in `%s`to return an object with %s: Array, got `%s`.",f,s,d),"object"!=typeof v&&m(!1,"ReactRelayPaginationContainer: Expected `getConnectionFromProps()` in `%s`to return an object with %s: Object, got `%s`.",f,i,v);var _="forward"===w?v[u]:v[c],y="forward"===w?v[h]:v[p];return"boolean"!=typeof _||0!==d.length&&void 0===y?(I(!1,"ReactRelayPaginationContainer: Cannot paginate without %s fields in `%s`. Be sure to fetch %s (got `%s`) and %s (got `%s`).",i,f,"forward"===w?u:c,_,"forward"===w?h:p,y),null):{cursor:y,edgeCount:d.length,hasMore:_}},p._getQueryFetcher=function(){return this._queryFetcher||(this._queryFetcher=new _),this._queryFetcher},p._canFetchPage=function(e){return!this._isUnmounted||(I(!1,"ReactRelayPaginationContainer: Unexpected call of `%s` on unmounted container `%s`. It looks like some instances of your container still trying to fetch data but they already unmounted. Please make sure you clear all timers, intervals, async calls, etc that may trigger `%s` call.",e,R,e),!1)},p._fetchPage=function(e,n,o){var s,i=this,u=y(this.props.__relayContext).environment,c=this.props,p=(c.componentRef,c.__relayContext,c.__rootIsQueryRenderer,(0,a.default)(c,["componentRef","__relayContext","__rootIsQueryRenderer"])),d=(0,l.default)((0,l.default)({},p),this.state.data),v=h(t,p);s=D(t,p),s=(0,l.default)((0,l.default)((0,l.default)({},v),s),this._refetchVariables);var _=r.getVariables(d,{count:e.count,cursor:e.cursor},s);("object"!=typeof _||null===_)&&m(!1,"ReactRelayPaginationContainer: Expected `getVariables()` to return an object, got `%s` in `%s`.",_,f),_=(0,l.default)((0,l.default)({},_),this._refetchVariables),s=(0,l.default)((0,l.default)({},_),s);var C=o?{force:!!o.force}:void 0;null!=C&&null!=(null==o?void 0:o.metadata)&&(C.metadata=null==o?void 0:o.metadata);var R=O(r.query),g=q(R,_,C),S=null;this._refetchSubscription&&this._refetchSubscription.unsubscribe(),this._hasFetched=!0;var P=function(){i._refetchSubscription===S&&(i._refetchSubscription=null,i._isARequestInFlight=!1)};return this._isARequestInFlight=!0,S=this._getQueryFetcher().execute({environment:u,operation:g,preservePreviousReferences:!0}).mergeMap((function(t){return x.create((function(t){!function(t,r){var n=i._resolver.resolve();i._resolver.setVariables(U(s,e.totalCount),g.request.node);var o=i._resolver.resolve();b(n,o)?r():i.setState({data:o,contextForChildren:{environment:i.props.__relayContext.environment}},r)}(0,(function(){t.next(),t.complete()}))}))})).do({error:P,complete:P,unsubscribe:P}).subscribe(n||{}),this._refetchSubscription=this._isARequestInFlight?S:null,S},p._cleanup=function(){this._resolver.dispose(),this._refetchVariables=null,this._hasFetched=!1,this._refetchSubscription&&(this._refetchSubscription.unsubscribe(),this._refetchSubscription=null,this._isARequestInFlight=!1),this._queryFetcher&&this._queryFetcher.dispose()},p.render=function(){var t=this.props,r=t.componentRef,n=(t.__relayContext,t.__rootIsQueryRenderer,(0,a.default)(t,["componentRef","__relayContext","__rootIsQueryRenderer"]));return C.createElement(v.Provider,{value:this.state.contextForChildren},C.createElement(e,(0,o.default)({},n,this.state.data,{ref:r,relay:this.state.relayProp})))},c}(C.Component),(0,u.default)(n,"displayName",R),c}e.exports={createContainer:function(e,t,r){return c(e,t,(function(e,t){return N(e,t,r)}))}}},function(e,t,r){"use strict";var n=r(2),o=n(r(4)),a=n(r(8)),s=n(r(9)),i=n(r(5)),u=r(3),l=r(16),c=r(14),h=r(7),f=r(1),p=r(0),d=p.createOperationDescriptor,v=p.deepFreeze,_=p.getRequest,y={},b={rootIsQueryRenderer:!0},m=function(e){function t(t){var r;r=e.call(this,t)||this,(0,i.default)((0,a.default)(r),"_handleDataChange",(function(e){var t=null==e.error?null:e.error,n=null==e.snapshot?null:e.snapshot;r.setState((function(e){var r=e.requestCacheKey;return r&&delete y[r],n===e.snapshot&&t===e.error?null:{renderProps:C(t,n,e.queryFetcher,e.retryCallbacks),snapshot:n,requestCacheKey:null}}))}));var n,s,u={handleDataChange:null,handleRetryAfterError:null};if(t.query){var c=t.query;s=R(_(c).params,t.variables),n=y[s]?y[s].queryFetcher:new l}else n=new l;return r._maybeHiddenOrFastRefresh=!1,r.state=(0,o.default)({prevPropsEnvironment:t.environment,prevPropsVariables:t.variables,prevQuery:t.query,queryFetcher:n,retryCallbacks:u},x(t,n,u,s)),r}(0,s.default)(t,e),t.getDerivedStateFromProps=function(e,t){return t.prevQuery===e.query&&t.prevPropsEnvironment===e.environment&&h(t.prevPropsVariables,e.variables)?null:g(e,t)};var r=t.prototype;return r.componentDidMount=function(){var e=this;if(!0===this._maybeHiddenOrFastRefresh)return this._maybeHiddenOrFastRefresh=!1,void this.setState((function(t){return g(e.props,t)}));var t=this.state,r=t.retryCallbacks,n=t.queryFetcher,o=t.requestCacheKey;o&&delete y[o],r.handleDataChange=this._handleDataChange,r.handleRetryAfterError=function(t){return e.setState((function(e){var t=e.requestCacheKey;return t&&delete y[t],{renderProps:{error:null,props:null,retry:null},requestCacheKey:null}}))},this.props.query&&n.setOnDataChange(this._handleDataChange)},r.componentDidUpdate=function(e,t){var r=this.state,n=r.queryFetcher,o=r.requestCacheKey;o&&(delete y[o],delete this.state.requestCacheKey),this.props.query&&n!==t.queryFetcher&&n.setOnDataChange(this._handleDataChange)},r.componentWillUnmount=function(){this.state.queryFetcher.dispose(),this._maybeHiddenOrFastRefresh=!0},r.shouldComponentUpdate=function(e,t){return e.render!==this.props.render||t.renderProps!==this.state.renderProps},r.render=function(){var e=this.state,t=e.renderProps,r=e.relayContext;return v(t),f.createElement(u.Provider,{value:r},f.createElement(c.Provider,{value:b},this.props.render(t)))},t}(f.Component);function C(e,t,r,n){return{error:e||null,props:t?t.data:null,retry:function(t){var o=r.retry(t);o&&"function"==typeof n.handleDataChange?n.handleDataChange({snapshot:o}):e&&"function"==typeof n.handleRetryAfterError&&n.handleRetryAfterError(e)}}}function R(e,t){return JSON.stringify({id:e.cacheID?e.cacheID:e.id,variables:t})}function g(e,t){var r,n=e.query,a=t.queryFetcher.getSelectionReferences();if(t.queryFetcher.disposeRequest(),n){var s=R(_(n).params,e.variables);r=y[s]?y[s].queryFetcher:new l(a)}else r=new l(a);return(0,o.default)({prevQuery:e.query,prevPropsEnvironment:e.environment,prevPropsVariables:e.variables,queryFetcher:r},x(e,r,t.retryCallbacks))}function x(e,t,r,n){var o=e.environment,a=e.query,s=e.variables,i=e.cacheConfig,u=o;if(!a)return t.dispose(),{error:null,relayContext:{environment:u},renderProps:{error:null,props:{},retry:null},requestCacheKey:null};var l=_(a),c=d(l,s,i),h={environment:u};if("string"==typeof n&&y[n]){var f=y[n].snapshot;return f?{error:null,relayContext:h,renderProps:C(null,f,t,r),snapshot:f,requestCacheKey:n}:{error:null,relayContext:h,renderProps:{error:null,props:null,retry:null},snapshot:null,requestCacheKey:n}}try{var p=t.lookupInStore(u,c,e.fetchPolicy),v=t.fetch({environment:u,onDataChange:null,operation:c})||p;return n=n||R(l.params,e.variables),y[n]={queryFetcher:t,snapshot:v},v?{error:null,relayContext:h,renderProps:C(null,v,t,r),snapshot:v,requestCacheKey:n}:{error:null,relayContext:h,renderProps:{error:null,props:null,retry:null},snapshot:null,requestCacheKey:n}}catch(e){return{error:e,relayContext:h,renderProps:C(e,null,t,r),snapshot:null,requestCacheKey:n}}}e.exports=m},function(e,t,r){"use strict";var n=r(2),o=n(r(13)),a=n(r(11)),s=n(r(4)),i=n(r(8)),u=n(r(9)),l=n(r(5)),c=r(12),h=r(17),f=r(10).getContainerName,p=r(3),d=r(16),v=r(15).assertRelayContext,_=r(7),y=r(1),b=r(0),m=b.Observable,C=b.createFragmentSpecResolver,R=b.createOperationDescriptor,g=b.getDataIDsFromObject,x=b.getRequest,S=b.getVariablesFromObject,P=b.isScalarAndEqual,q=r(18);function F(e,t){return{environment:e,refetch:t}}e.exports={createContainer:function(e,t,r){return c(e,t,(function(e,t){return function(e,t,r){var n,c,b=f(e);return c=n=function(n){function c(e){var o,a;a=n.call(this,e)||this,(0,l.default)((0,i.default)(a),"_handleFragmentDataUpdate",(function(){var e=a.state.resolver;a.setState((function(t){return e===t.resolver?{data:t.resolver.resolve()}:null}))})),(0,l.default)((0,i.default)(a),"_refetch",(function(e,n,o,i){if(a._isUnmounted)return q(!1,"ReactRelayRefetchContainer: Unexpected call of `refetch` on unmounted container `%s`. It looks like some instances of your container still trying to refetch the data but they already unmounted. Please make sure you clear all timers, intervals, async calls, etc that may trigger `refetch`.",b),{dispose:function(){}};var u=v(a.props.__relayContext).environment,l=h(t,a.props),c="function"==typeof e?e(a._getFragmentVariables()):e;c=(0,s.default)((0,s.default)({},l),c);var f=n?(0,s.default)((0,s.default)({},c),n):c,p=i?{force:!!i.force}:void 0;null!=p&&null!=(null==i?void 0:i.metadata)&&(p.metadata=null==i?void 0:i.metadata);var d,_="function"==typeof o?{next:o,error:o}:o||{},y=x(r),C=R(y,c,p);return a.state.localVariables=c,a._refetchSubscription&&a._refetchSubscription.unsubscribe(),null!=a._getQueryFetcher().lookupInStore(u,C,null==i?void 0:i.fetchPolicy)?(a.state.resolver.setVariables(f,C.request.node),a.setState((function(e){return{data:e.resolver.resolve(),contextForChildren:{environment:a.props.__relayContext.environment}}}),(function(){_.next&&_.next(),_.complete&&_.complete()})),{dispose:function(){}}):(a._getQueryFetcher().execute({environment:u,operation:C,preservePreviousReferences:!0}).mergeMap((function(e){return a.state.resolver.setVariables(f,C.request.node),m.create((function(e){return a.setState((function(e){return{data:e.resolver.resolve(),contextForChildren:{environment:a.props.__relayContext.environment}}}),(function(){e.next(),e.complete()}))}))})).finally((function(){a._refetchSubscription===d&&(a._refetchSubscription=null)})).subscribe((0,s.default)((0,s.default)({},_),{},{start:function(e){a._refetchSubscription=d=e,_.start&&_.start(e)}})),{dispose:function(){d&&d.unsubscribe()}})}));var u=v(e.__relayContext),c=null!==(o=e.__rootIsQueryRenderer)&&void 0!==o&&o;a._refetchSubscription=null;var f=C(u,b,t,e,c);return a.state={data:f.resolve(),localVariables:null,prevProps:e,prevPropsContext:u,contextForChildren:u,relayProp:F(u.environment,a._refetch),resolver:f},a._isUnmounted=!1,a}(0,u.default)(c,n);var f=c.prototype;return f.componentDidMount=function(){this._isUnmounted=!1,this._subscribeToNewResolverAndRerenderIfStoreHasChanged()},f.componentDidUpdate=function(e,t){this.state.resolver!==t.resolver?(t.resolver.dispose(),this._queryFetcher&&this._queryFetcher.dispose(),this._refetchSubscription&&this._refetchSubscription.unsubscribe(),this._subscribeToNewResolverAndRerenderIfStoreHasChanged()):this._rerenderIfStoreHasChanged()},c.getDerivedStateFromProps=function(e,r){var n,o=r.prevProps,a=v(e.__relayContext),s=null!==(n=e.__rootIsQueryRenderer)&&void 0!==n&&n,i=g(t,o),u=g(t,e),l=h(t,o),c=h(t,e),f=r.resolver;if(r.prevPropsContext.environment!==a.environment||!_(l,c)||!_(i,u))return{data:(f=C(a,b,t,e,s)).resolve(),localVariables:null,prevProps:e,prevPropsContext:a,contextForChildren:a,relayProp:F(a.environment,r.relayProp.refetch),resolver:f};r.localVariables||f.setProps(e);var p=f.resolve();return p!==r.data?{data:p,prevProps:e}:null},f.componentWillUnmount=function(){this._isUnmounted=!0,this.state.resolver.dispose(),this._queryFetcher&&this._queryFetcher.dispose(),this._refetchSubscription&&this._refetchSubscription.unsubscribe()},f.shouldComponentUpdate=function(e,r){if(r.data!==this.state.data||r.relayProp!==this.state.relayProp)return!0;for(var n=Object.keys(e),o=0;o<n.length;o++){var a=n[o];if("__relayContext"===a){if(this.state.prevPropsContext.environment!==r.prevPropsContext.environment)return!0}else if(!t.hasOwnProperty(a)&&!P(e[a],this.props[a]))return!0}return!1},f._rerenderIfStoreHasChanged=function(){var e=this.state,t=e.data,r=e.resolver.resolve();t!==r&&this.setState({data:r})},f._subscribeToNewResolverAndRerenderIfStoreHasChanged=function(){var e=this.state,t=e.data,r=e.resolver,n=r.resolve();r.setCallback(this.props,this._handleFragmentDataUpdate),t!==n&&this.setState({data:n})},f._getFragmentVariables=function(){return S(t,this.props)},f._getQueryFetcher=function(){return this._queryFetcher||(this._queryFetcher=new d),this._queryFetcher},f.render=function(){var t=this.props,r=t.componentRef,n=(t.__relayContext,t.__rootIsQueryRenderer,(0,a.default)(t,["componentRef","__relayContext","__rootIsQueryRenderer"])),s=this.state,i=s.relayProp,u=s.contextForChildren;return y.createElement(p.Provider,{value:u},y.createElement(e,(0,o.default)({},n,this.state.data,{ref:r,relay:i})))},c}(y.Component),(0,l.default)(n,"displayName",b),c}(e,t,r)}))}}}])}));
|
package/react-relay.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Relay v0.0.0-main-
|
|
2
|
+
* Relay v0.0.0-main-ba2080a3
|
|
3
3
|
*/
|
|
4
4
|
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react"),require("relay-runtime"),require("@babel/runtime/helpers/interopRequireDefault"),require("invariant"),require("@babel/runtime/helpers/objectSpread2"),require("fbjs/lib/warning"),require("@babel/runtime/helpers/defineProperty"),require("fbjs/lib/areEqual"),require("@babel/runtime/helpers/assertThisInitialized"),require("@babel/runtime/helpers/inheritsLoose"),require("@babel/runtime/helpers/objectWithoutPropertiesLoose"),require("@babel/runtime/helpers/extends"),require("react-relay/ReactRelayContext"),require("@babel/runtime/helpers/createForOfIteratorHelper"),require("@babel/runtime/helpers/toConsumableArray")):"function"==typeof define&&define.amd?define(["react","relay-runtime","@babel/runtime/helpers/interopRequireDefault","invariant","@babel/runtime/helpers/objectSpread2","fbjs/lib/warning","@babel/runtime/helpers/defineProperty","fbjs/lib/areEqual","@babel/runtime/helpers/assertThisInitialized","@babel/runtime/helpers/inheritsLoose","@babel/runtime/helpers/objectWithoutPropertiesLoose","@babel/runtime/helpers/extends","react-relay/ReactRelayContext","@babel/runtime/helpers/createForOfIteratorHelper","@babel/runtime/helpers/toConsumableArray"],t):"object"==typeof exports?exports.ReactRelay=t(require("react"),require("relay-runtime"),require("@babel/runtime/helpers/interopRequireDefault"),require("invariant"),require("@babel/runtime/helpers/objectSpread2"),require("fbjs/lib/warning"),require("@babel/runtime/helpers/defineProperty"),require("fbjs/lib/areEqual"),require("@babel/runtime/helpers/assertThisInitialized"),require("@babel/runtime/helpers/inheritsLoose"),require("@babel/runtime/helpers/objectWithoutPropertiesLoose"),require("@babel/runtime/helpers/extends"),require("react-relay/ReactRelayContext"),require("@babel/runtime/helpers/createForOfIteratorHelper"),require("@babel/runtime/helpers/toConsumableArray")):e.ReactRelay=t(e.react,e["relay-runtime"],e["@babel/runtime/helpers/interopRequireDefault"],e.invariant,e["@babel/runtime/helpers/objectSpread2"],e["fbjs/lib/warning"],e["@babel/runtime/helpers/defineProperty"],e["fbjs/lib/areEqual"],e["@babel/runtime/helpers/assertThisInitialized"],e["@babel/runtime/helpers/inheritsLoose"],e["@babel/runtime/helpers/objectWithoutPropertiesLoose"],e["@babel/runtime/helpers/extends"],e["react-relay/ReactRelayContext"],e["@babel/runtime/helpers/createForOfIteratorHelper"],e["@babel/runtime/helpers/toConsumableArray"])}(window,(function(e,t,r,n,a,o,i,s,u,l,c,f,d,h,p){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var a=t[n]={i:n,l:!1,exports:{}};return e[n].call(a.exports,a,a.exports,r),a.l=!0,a.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var a in e)r.d(n,a,function(t){return e[t]}.bind(null,a));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=37)}([function(t,r){t.exports=e},function(e,r){e.exports=t},function(e,t){e.exports=r},function(e,t){e.exports=n},function(e,t,r){"use strict";var n=r(3),a=r(0).useContext,o=r(26);e.exports=function(){var e=a(o);return null==e&&n(!1,"useRelayEnvironment: Expected to have found a Relay environment provided by a `RelayEnvironmentProvider` component. This usually means that useRelayEnvironment was used in a component that is not a descendant of a `RelayEnvironmentProvider`. Please make sure a `RelayEnvironmentProvider` has been rendered somewhere as a parent or ancestor of your component."),e.environment}},function(e,t){e.exports=a},function(e,t){e.exports=o},function(e,t){e.exports=i},function(e,t,r){"use strict";var n=r(2)(r(5)),a=r(3),o=r(0),i=r(1),s=i.Observable,u=i.PreloadableQueryRegistry,l=i.RelayFeatureFlags,c=i.ReplaySubject,f=i.__internal.fetchQueryDeduped,d=i.createOperationDescriptor,h=i.getRequest,p=i.getRequestIdentifier,v=r(6),y=null,m=100001;e.exports={loadQuery:function(e,t,r,i,g){var _,b,R,C,P=null===(_=o.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED)||void 0===_||null===(b=_.ReactCurrentDispatcher)||void 0===b?void 0:b.current;v(null==y||P!==y,"Relay: `%s` should not be called inside a React render function.",null!==(R=null==i?void 0:i.__nameForWarning)&&void 0!==R?R:"loadQuery"),m++;var E,S,x,q,F,D,I=null!==(C=null==i?void 0:i.fetchPolicy)&&void 0!==C?C:"store-or-network",k=(0,n.default)((0,n.default)({},null==i?void 0:i.networkCacheConfig),{},{force:!0}),w=!1,O=function(t,r){return w=!0,e.executeWithSource({operation:t,source:r})},A=new c,N=s.create((function(e){return A.subscribe(e)})),Q=null,T=!1,M=function(t){var n;T=!0;var a=new c;if(!0===l.ENABLE_LOAD_QUERY_REQUEST_DEDUPING){var o="raw-network-request-"+p(t,r);n=f(e,o,(function(){return e.getNetwork().execute(t,r,k)}))}else{n=e.getNetwork().execute(t,r,k)}var i=n.subscribe({error:function(e){Q=e,a.error(e)},next:function(e){a.next(e)},complete:function(){a.complete()}}).unsubscribe;return S=i,s.create((function(e){var t=a.subscribe(e);return function(){t.unsubscribe(),S()}}))},U=function(t,r){!0===l.ENABLE_LOAD_QUERY_REQUEST_DEDUPING&&(T=!0);var n=f(e,t.request.identifier,r).subscribe({error:function(e){A.error(e)},next:function(e){A.next(e)},complete:function(){A.complete()}});x=n.unsubscribe},L=function(t){var n=d(t,r,k);(E=e.retain(n),"store-only"!==I)&&(("store-or-network"!==I||"available"!==e.check(n).status)&&U(n,(function(){var e=M(t.params);return O(n,e)})))};if("PreloadableConcreteRequest"===t.kind){null===(D=(q=t.params).id)&&a(!1,"Relay: `loadQuery` requires that preloadable query `%s` has a persisted query id",q.name);var j=u.get(D);if(null!=j)L(j);else{var V="store-only"===I?null:M(q),W=u.onLoad(D,(function(t){F();var n=d(t,r,k);E=e.retain(n),null!=V&&U(n,(function(){return O(n,V)}))}));F=W.dispose}}else{var B=h(t);D=null!=(q=B.params).cacheID?q.cacheID:q.id,L(B)}var H=!1,K=!1,G=!1,z=function(){K||(E&&E.dispose(),K=!0)},Y=function(){G||(w?x&&x():S&&S(),F&&F(),G=!0)};return{kind:"PreloadedQuery",environment:e,environmentProviderOptions:g,dispose:function(){H||(z(),Y(),H=!0)},releaseQuery:z,cancelNetworkRequest:Y,fetchKey:m,id:D,get isDisposed(){return H||K},get networkError(){return Q},name:q.name,networkCacheConfig:k,fetchPolicy:I,source:T?N:void 0,variables:r}},useTrackLoadQueryInRender:function(){var e,t;null===y&&(y=null===(e=o.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED)||void 0===e||null===(t=e.ReactCurrentDispatcher)||void 0===t?void 0:t.current)}}},function(e,t,r){"use strict";var n=r(0),a=r(1).__internal.createRelayContext;e.exports=a(n)},function(e,t){e.exports=s},function(e,t,r){"use strict";var n=r(0),a=n.useEffect,o=n.useRef;e.exports=function(){var e=o(!0);return a((function(){return e.current=!0,function(){e.current=!1}}),[]),e}},function(e,t){e.exports=u},function(e,t){e.exports=l},function(e,t,r){"use strict";function n(e){return e.displayName||e.name||"Component"}e.exports={getComponentName:n,getContainerName:function(e){return"Relay("+n(e)+")"}}},function(e,t){e.exports=c},function(e,t,r){"use strict";var n=r(2)(r(17)),a=r(39),o=r(14),i=o.getComponentName,s=o.getContainerName,u=r(9),l=r(18),c=r(40),f=r(3),d=r(0),h=r(1).getFragment;e.exports=function(e,t,r){var o=s(e);a(i(e),t);var p={};for(var v in t)p[v]=h(t[v]);var y=r(e,p);function m(e,t){var r,a=c(u);null==a&&f(!1,"`%s` tried to render a context that was not valid this means that `%s` was rendered outside of a query renderer.",o,o);var i=c(l);return d.createElement(y,(0,n.default)({},e,{__relayContext:a,__rootIsQueryRenderer:null!==(r=null==i?void 0:i.rootIsQueryRenderer)&&void 0!==r&&r,componentRef:e.componentRef||t}))}y.displayName=o,m.displayName=o;var g=d.forwardRef(m);return g.__ComponentClass=e,g.displayName=o,g}},function(e,t){e.exports=f},function(e,t,r){"use strict";var n=r(0);e.exports=n.createContext({rootIsQueryRenderer:!1})},function(e,t,r){"use strict";var n=r(41),a=r(3);function o(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)&&n(e.environment)}e.exports={assertRelayContext:function(e){return o(e)||a(!1,"RelayContext: Expected `context.relay` to be an object conforming to the `RelayContext` interface, got `%s`.",e),e},isRelayContext:o}},function(e,t,r){"use strict";var n=r(2)(r(7)),a=r(3),o=r(1),i=o.__internal.fetchQuery,s=o.createOperationDescriptor,u=o.isRelayModernEnvironment,l=function(){function e(e){(0,n.default)(this,"_selectionReferences",[]),(0,n.default)(this,"_callOnDataChangeWhenSet",!1),null!=e&&(this._cacheSelectionReference=e.cacheSelectionReference,this._selectionReferences=e.selectionReferences)}var t=e.prototype;return t.getSelectionReferences=function(){return{cacheSelectionReference:this._cacheSelectionReference,selectionReferences:this._selectionReferences}},t.lookupInStore=function(e,t,r){return"store-and-network"!==r&&"store-or-network"!==r||"available"!==e.check(t).status?null:(this._retainCachedOperation(e,t),e.lookup(t.fragment))},t.execute=function(e){var t=this,r=e.environment,n=e.operation,a=e.preservePreviousReferences,o=void 0!==a&&a,s=r.retain(n),l=function(){t._selectionReferences=t._selectionReferences.concat(s)},c=function(){o||t.disposeSelectionReferences(),t._selectionReferences=t._selectionReferences.concat(s)},f=function(){t._selectionReferences=t._selectionReferences.concat(s)};return u(r)?i(r,n).do({error:l,complete:c,unsubscribe:f}):r.execute({operation:n}).do({error:l,complete:c,unsubscribe:f})},t.setOnDataChange=function(e){this._fetchOptions||a(!1,"ReactRelayQueryFetcher: `setOnDataChange` should have been called after having called `fetch`"),"function"==typeof e&&(this._fetchOptions.onDataChangeCallbacks=this._fetchOptions.onDataChangeCallbacks||[],this._fetchOptions.onDataChangeCallbacks.push(e),this._callOnDataChangeWhenSet&&(null!=this._error?e({error:this._error}):null!=this._snapshot&&e({snapshot:this._snapshot})))},t.fetch=function(e,t){var r,n=this,a=e.environment,o=e.operation,i=e.onDataChange,u=!1;this.disposeRequest();var l=this._fetchOptions&&this._fetchOptions.onDataChangeCallbacks;this._fetchOptions={environment:a,onDataChangeCallbacks:l||[],operation:o},i&&-1===this._fetchOptions.onDataChangeCallbacks.indexOf(i)&&this._fetchOptions.onDataChangeCallbacks.push(i);var c=t?s(o.request.node,o.request.variables,t):o,f=this.execute({environment:a,operation:c}).finally((function(){n._pendingRequest=null})).subscribe({next:function(){n._callOnDataChangeWhenSet=!0,n._error=null,n._onQueryDataAvailable({notifyFirstResult:u})},error:function(e){n._callOnDataChangeWhenSet=!0,n._error=e,n._snapshot=null;var t=n._fetchOptions&&n._fetchOptions.onDataChangeCallbacks;u?t&&t.forEach((function(t){t({error:e})})):r=e}});if(this._pendingRequest={dispose:function(){f.unsubscribe()}},u=!0,r)throw r;return this._snapshot},t.retry=function(e){return this._fetchOptions||a(!1,"ReactRelayQueryFetcher: `retry` should be called after having called `fetch`"),this.fetch({environment:this._fetchOptions.environment,operation:this._fetchOptions.operation,onDataChange:null},e)},t.dispose=function(){this.disposeRequest(),this.disposeSelectionReferences()},t.disposeRequest=function(){this._error=null,this._snapshot=null,this._pendingRequest&&this._pendingRequest.dispose(),this._rootSubscription&&(this._rootSubscription.dispose(),this._rootSubscription=null)},t._retainCachedOperation=function(e,t){this._disposeCacheSelectionReference(),this._cacheSelectionReference=e.retain(t)},t._disposeCacheSelectionReference=function(){this._cacheSelectionReference&&this._cacheSelectionReference.dispose(),this._cacheSelectionReference=null},t.disposeSelectionReferences=function(){this._disposeCacheSelectionReference(),this._selectionReferences.forEach((function(e){return e.dispose()})),this._selectionReferences=[]},t._onQueryDataAvailable=function(e){var t=this,r=e.notifyFirstResult;this._fetchOptions||a(!1,"ReactRelayQueryFetcher: `_onQueryDataAvailable` should have been called after having called `fetch`");var n=this._fetchOptions,o=n.environment,i=n.onDataChangeCallbacks,s=n.operation;if(!this._snapshot&&(this._snapshot=o.lookup(s.fragment),this._rootSubscription=o.subscribe(this._snapshot,(function(e){if(null!=t._fetchOptions){var r=t._fetchOptions.onDataChangeCallbacks;Array.isArray(r)&&r.forEach((function(t){return t({snapshot:e})}))}})),this._snapshot&&r&&Array.isArray(i))){var u=this._snapshot;i.forEach((function(e){return e({snapshot:u})}))}},e}();e.exports=l},function(e,t,r){"use strict";var n=r(0).createContext({wrapPrepareQueryResource:function(e){return e()}});e.exports=n},function(e,t,r){"use strict";var n=r(29).getFragmentResourceForEnvironment,a=r(4),o=r(0),i=o.useEffect,s=o.useRef,u=o.useState,l=r(1).getFragmentIdentifier,c=r(6);e.exports=function(e,t,r){var o=a(),f=n(o),d=s(!1),h=u(0)[1],p=l(e,t),v=f.readWithIdentifier(e,t,p,r),y=s(!0);function m(){!1!==d.current&&!1!==y.current&&h((function(e){return e+1}))}return i((function(){d.current=!0;var e=f.subscribe(v,m);return function(){d.current=!1,e.dispose()}}),[o,p]),null!=t&&(void 0===v.data||Array.isArray(v.data)&&v.data.length>0&&v.data.every((function(e){return void 0===e})))&&c(!1,"Relay: Expected to have been able to read non-null data for fragment `%s` declared in `%s`, since fragment reference was non-null. Make sure that that `%s`'s parent isn't holding on to and/or passing a fragment reference for data that has been deleted.",e.name,r,r),{data:v.data,disableStoreUpdates:function(){y.current=!1},enableStoreUpdates:function(){y.current=!0,f.checkMissedUpdates(v)[0]&&m()}}}},function(e,t,r){"use strict";var n=r(2),a=n(r(5)),o=n(r(7)),i=r(30),s=r(31),u=r(3),l=r(1).isPromise,c=r(6),f="function"==typeof WeakMap;function d(e){return void 0!==e.request.node.params.metadata.live}function h(e,t,r,n,a){var o=null!=r?r:"store-or-network",i=null!=n?n:e.UNSTABLE_getDefaultRenderPolicy(),s="".concat(o,"-").concat(i,"-").concat(t.request.identifier);return null!=a?"".concat(s,"-").concat(a):s}function p(e,t){var r={__id:e.fragment.dataID,__fragments:(0,o.default)({},e.fragment.node.name,e.request.variables),__fragmentOwner:e.request};return{cacheIdentifier:t,fragmentNode:e.request.node.fragment,fragmentRef:r,operation:e}}var v=2e5;function y(e,t,r,n,a,o){var i=d(t),u=n,l=a,c=new s((function(e){var r=e.retain(t);return{dispose:function(){i&&null!=l&&l.unsubscribe(),r.dispose(),o(f)}}})),f={cacheIdentifier:e,id:v++,processedPayloadsCount:0,operationAvailability:r,getValue:function(){return u},setValue:function(e){u=e},setNetworkSubscription:function(e){i&&null!=l&&l.unsubscribe(),l=e},temporaryRetain:function(e){return c.temporaryRetain(e)},permanentRetain:function(e){return c.permanentRetain(e)},releaseTemporaryRetain:function(){c.releaseTemporaryRetain()}};return f}var m=function(){function e(e){var t=this;(0,o.default)(this,"_clearCacheEntry",(function(e){t._cache.delete(e.cacheIdentifier)})),this._environment=e,this._cache=i.create(1e3)}var t=e.prototype;return t.prepare=function(e,t,r,n,a,o,i){var s=h(this._environment,e,r,n,o);return this.prepareWithIdentifier(s,e,t,r,n,a,i)},t.prepareWithIdentifier=function(e,t,r,n,o,i,s){var u=this._environment,c=null!=n?n:"store-or-network",f=null!=o?o:u.UNSTABLE_getDefaultRenderPolicy(),d=this._cache.get(e),h=null,p=null!=d;null==d&&(d=this._fetchAndSaveQuery(e,t,r,c,f,s,(0,a.default)((0,a.default)({},i),{},{unsubscribe:function(e){null!=h&&h.dispose();var t=null==i?void 0:i.unsubscribe;t&&t(e)}}))),h=d.temporaryRetain(u);var v=d.getValue();if(l(v))throw u.__log({name:"suspense.query",fetchPolicy:c,isPromiseCached:p,operation:t,queryAvailability:d.operationAvailability,renderPolicy:f}),v;if(v instanceof Error)throw v;return v},t.retain=function(e,t){var r=this._environment,n=e.cacheIdentifier,a=e.operation,o=this._getOrCreateCacheEntry(n,a,null,e,null),i=o.permanentRetain(r);return r.__log({name:"queryresource.retain",profilerContext:t,resourceID:o.id}),{dispose:function(){i.dispose()}}},t.releaseTemporaryRetain=function(e){var t=this._cache.get(e.cacheIdentifier);null!=t&&t.releaseTemporaryRetain()},t.TESTS_ONLY__getCacheEntry=function(e,t,r,n){var a=h(this._environment,e,t,r,n);return this._cache.get(a)},t._getOrCreateCacheEntry=function(e,t,r,n,a){var o=this._cache.get(e);return null==o&&(o=y(e,t,r,n,a,this._clearCacheEntry),this._cache.set(e,o)),o},t._fetchAndSaveQuery=function(e,t,r,n,o,i,s){var l,f,h=this,v=this._environment,m=v.check(t),g=m.status,_="available"===g,b=_||"partial"===o&&"stale"!==g,R=function(){};switch(n){case"store-only":l=!1,f=!0;break;case"store-or-network":l=!_,f=b;break;case"store-and-network":l=!0,f=b;break;case"network-only":default:l=!0,f=!1}if(f){var C=p(t,e),P=y(e,t,m,C,null,this._clearCacheEntry);this._cache.set(e,P)}if(l){var E,S=p(t,e);r.subscribe({start:function(r){E=r;var n=h._cache.get(e);n&&n.setNetworkSubscription(E);var o=null==s?void 0:s.start;o&&o((0,a.default)((0,a.default)({},r),{},{unsubscribe:function(){d(t)&&r.unsubscribe()}}))},next:function(){var r=h._getOrCreateCacheEntry(e,t,m,S,E);r.processedPayloadsCount+=1,r.setValue(S),R();var n=null==s?void 0:s.next;null!=n&&n(v.lookup(t.fragment))},error:function(r){var n=h._getOrCreateCacheEntry(e,t,m,r,E);0===n.processedPayloadsCount?n.setValue(r):c(!1,"QueryResource: An incremental payload for query `%s` returned an error: `%s`.",t.fragment.node.name,String(r.message)),R(),E=null,n.setNetworkSubscription(null);var a=null==s?void 0:s.error;a&&a(r)},complete:function(){R(),E=null;var t=h._cache.get(e);t&&t.setNetworkSubscription(null);var r=null==s?void 0:s.complete;r&&r()},unsubscribe:null==s?void 0:s.unsubscribe});var x=this._cache.get(e);if(!x){var q=new Promise((function(e){R=e}));q.displayName="Relay("+t.fragment.node.name+")",x=y(e,t,m,q,E,this._clearCacheEntry),this._cache.set(e,x)}}else{var F=null==s?void 0:s.complete;F&&F()}var D=this._cache.get(e);return null==D&&u(!1,"Relay: Expected to have cached a result when attempting to fetch query.If you're seeing this, this is likely a bug in Relay."),v.__log({name:"queryresource.fetch",resourceID:D.id,operation:t,profilerContext:i,fetchPolicy:n,renderPolicy:o,queryAvailability:m,shouldFetch:l}),D},e}();function g(e){return new m(e)}var _=f?new WeakMap:new Map;e.exports={createQueryResource:g,getQueryResourceForEnvironment:function(e){var t=_.get(e);if(t)return t;var r=g(e);return _.set(e,r),r},getQueryCacheIdentifier:h}},function(e,t,r){"use strict";var n=r(0).useRef,a=r(6);e.exports=function(e,t){var r=n(e.name);a(r.current===e.name,"Relay: The %s has to remain the same over the lifetime of a component. Changing it is not supported and will result in unexpected behavior.",t)}},function(e,t,r){"use strict";var n=r(2)(r(5)),a=r(1).getSelector;e.exports=function(e,t){var r={};return Object.keys(e).forEach((function(o){var i,s,u,l=e[o],c=t[o],f=a(l,c),d=null!=f&&"PluralReaderSelector"===f.kind?null!==(i=null===(s=f.selectors[0])||void 0===s?void 0:s.owner.variables)&&void 0!==i?i:{}:null!==(u=null==f?void 0:f.owner.variables)&&void 0!==u?u:{};r=(0,n.default)((0,n.default)({},r),d)})),r}},function(e,t){e.exports=d},function(e,t,r){"use strict";var n=r(8).loadQuery;e.exports=function e(t,r,a){var o=null;null==r.root.getModuleIfRequired()&&(o=r.root.load());var i=r.getPreloadProps(a),s=i.queries,u=i.entryPoints,l=i.extraProps,c={},f={};null!=s&&Object.keys(s).forEach((function(e){var r=s[e],a=r.environmentProviderOptions,o=r.options,i=r.parameters,u=r.variables,l=t.getEnvironment(a);c[e]=n(l,i,u,{fetchPolicy:null==o?void 0:o.fetchPolicy,networkCacheConfig:null==o?void 0:o.networkCacheConfig,__nameForWarning:"loadEntryPoint"},a)})),null!=u&&Object.keys(u).forEach((function(r){var n=u[r];if(null!=n){var a=n.entryPoint,o=n.entryPointParams;f[r]=e(t,a,o)}}));var d=!1;return{dispose:function(){d||(null!=c&&Object.values(c).forEach((function(e){(0,e.dispose)()})),null!=f&&Object.values(f).forEach((function(e){(0,e.dispose)()})),d=!0)},entryPoints:f,extraProps:null!=l?l:null,getComponent:function(){var e,t=r.root.getModuleIfRequired();if(null==t)throw o=null!==(e=o)&&void 0!==e?e:r.root.load();return null!=t.default?t.default:t},get isDisposed(){return d},queries:c,rootModuleID:r.root.getModuleId()}}},function(e,t){e.exports=h},function(e,t,r){"use strict";var n=r(2),a=n(r(5)),o=n(r(7)),i=n(r(50)),s=r(30),u=r(23).getQueryResourceForEnvironment,l=r(31),c=r(3),f=r(1),d=f.RelayFeatureFlags,h=f.__internal,p=h.fetchQuery,v=h.getPromiseForActiveRequest,y=f.createOperationDescriptor,m=f.getFragmentIdentifier,g=f.getPendingOperationsForFragment,_=f.getSelector,b=f.getVariablesFromFragment,R=f.handlePotentialSnapshotErrors,C=f.isPromise,P=f.recycleNodesInto,E="function"==typeof WeakMap,S=Object.freeze([]);function x(e){return Array.isArray(e)?e.some((function(e){return e.isMissingData})):e.isMissingData}function q(e,t,r){return Array.isArray(t)?{cacheKey:e,snapshot:t,data:t.map((function(e){return e.data})),isMissingData:x(t),storeEpoch:r}:{cacheKey:e,snapshot:t,data:t.data,isMissingData:x(t),storeEpoch:r}}var F=function(){function e(e){(0,o.default)(this,"_cache",new Map),(0,o.default)(this,"_retainCounts",new Map),this._environment=e}var t=e.prototype;return t.get=function(e){var t,r;return null!==(t=null===(r=this._cache.get(e))||void 0===r?void 0:r[0])&&void 0!==t?t:void 0},t.recordQueryResults=function(e,t){var r=this,n=this._cache.get(e);if(n){var a=n[0],o=n[1];t.forEach((function(e){a.push(e)})),o.temporaryRetain(this._environment)}else{var i=new l((function(){return r._retain(e)}));this._cache.set(e,[t,i]),i.temporaryRetain(this._environment)}},t._retain=function(e){var t,r=this,n=(null!==(t=this._retainCounts.get(e))&&void 0!==t?t:0)+1;return this._retainCounts.set(e,n),{dispose:function(){var t,n=(null!==(t=r._retainCounts.get(e))&&void 0!==t?t:0)-1;n>0?r._retainCounts.set(e,n):(r._retainCounts.delete(e),r._cache.delete(e))}}},e}(),D=function(){function e(e){this._environment=e,this._cache=s.create(1e6),d.ENABLE_CLIENT_EDGES&&(this._clientEdgeQueryResultsCache=new F(e))}var t=e.prototype;return t.read=function(e,t,r,n){return this.readWithIdentifier(e,t,m(e,t),r,n)},t.readWithIdentifier=function(e,t,r,n,a){var o,s,l=this,f=this._environment;if(null==t)return{cacheKey:r,data:null,isMissingData:!1,snapshot:null,storeEpoch:0};var h=f.getStore().getEpoch();if(!0===(null==e||null===(o=e.metadata)||void 0===o?void 0:o.plural)&&(Array.isArray(t)||c(!1,"Relay: Expected fragment pointer%s for fragment `%s` to be an array, instead got `%s`. Remove `@relay(plural: true)` from fragment `%s` to allow the prop to be an object.",null!=a?" for key `".concat(a,"`"):"",e.name,typeof t,e.name),0===t.length))return{cacheKey:r,data:S,isMissingData:!1,snapshot:S,storeEpoch:h};var p=this._cache.get(r);if(null!=p){if("pending"===p.kind&&C(p.promise))throw f.__log({name:"suspense.fragment",data:p.result.data,fragment:e,isRelayHooks:!0,isMissingData:p.result.isMissingData,isPromiseCached:!0,pendingOperations:p.pendingOperations}),p.promise;if("done"===p.kind&&p.result.snapshot)return this._handlePotentialSnapshotErrorsInSnapshot(p.result.snapshot),p.result}var y=_(e,t);null==y&&c(!1,"Relay: Expected to receive an object where `...%s` was spread, but the fragment reference was not found`. This is most likely the result of:\n- Forgetting to spread `%s` in `%s`'s parent's fragment.\n- Conditionally fetching `%s` but unconditionally passing %s prop to `%s`. If the parent fragment only fetches the fragment conditionally - with e.g. `@include`, `@skip`, or inside a `... on SomeType { }` spread - then the fragment reference will not exist. In this case, pass `null` if the conditions for evaluating the fragment are not met (e.g. if the `@include(if)` value is false.)",e.name,e.name,n,e.name,null==a?"a fragment reference":"the `".concat(a,"`"),n);var m="PluralReaderSelector"===y.kind?y.selectors.map((function(e){return f.lookup(e)})):f.lookup(y),g=q(r,m,h);if(!g.isMissingData)return this._handlePotentialSnapshotErrorsInSnapshot(m),this._cache.set(r,{kind:"done",result:g}),g;var b=null;if(d.ENABLE_CLIENT_EDGES&&function(e){var t,r;return Array.isArray(e)?e.some((function(e){var t,r;return(null!==(t=null===(r=e.missingClientEdges)||void 0===r?void 0:r.length)&&void 0!==t?t:0)>0})):(null!==(t=null===(r=e.missingClientEdges)||void 0===r?void 0:r.length)&&void 0!==t?t:0)>0}(m)){b=[];var R=u(this._environment),P=[];!function(e,t){Array.isArray(e)?e.forEach(t):t(e)}(m,(function(r){var n;null===(n=r.missingClientEdges)||void 0===n||n.forEach((function(r){var n,a=r.request,o=r.clientEdgeDestinationID,i=l._performClientEdgeQuery(R,e,t,a,o),s=i.queryResult,u=i.requestDescriptor;P.push(s),null===(n=b)||void 0===n||n.push(u)}))})),null==this._clientEdgeQueryResultsCache&&c(!1,"Client edge query result cache should exist when ENABLE_CLIENT_EDGES is on."),this._clientEdgeQueryResultsCache.recordQueryResults(r,P)}var E=null;d.ENABLE_CLIENT_EDGES&&b&&(E=b.map((function(e){return v(l._environment,e)})).filter((function(e){return null!=e})));var x,F,D,I="PluralReaderSelector"===y.kind?y.selectors[0].owner:y.owner,k=this._getAndSavePromiseForFragmentRequestInFlight(r,e,I,g),w=null==k?void 0:k.promise;if((null===(s=E)||void 0===s?void 0:s.length)||C(w))throw f.__log({name:"suspense.fragment",data:g.data,fragment:e,isRelayHooks:!0,isPromiseCached:!1,isMissingData:g.isMissingData,pendingOperations:[].concat((0,i.default)(null!==(x=null==k?void 0:k.pendingOperations)&&void 0!==x?x:[]),(0,i.default)(null!==(F=b)&&void 0!==F?F:[]))}),(null===(D=E)||void 0===D?void 0:D.length)?Promise.all([w].concat((0,i.default)(E))):w;return this._handlePotentialSnapshotErrorsInSnapshot(m),q(r,m,h)},t._performClientEdgeQuery=function(e,t,r,n,o){var i=b(t,r),s=(0,a.default)((0,a.default)({},i),{},{id:o}),u=y(n,s,{}),l=p(this._environment,u),c=e.prepare(u,l);return{requestDescriptor:u.request,queryResult:c}},t._handlePotentialSnapshotErrorsInSnapshot=function(e){var t=this;Array.isArray(e)?e.forEach((function(e){R(t._environment,e.missingRequiredFields,e.relayResolverErrors)})):R(this._environment,e.missingRequiredFields,e.relayResolverErrors)},t.readSpec=function(e,t,r){var n={};for(var a in e)n[a]=this.read(e[a],t[a],r,a);return n},t.subscribe=function(e,t){var r=this,n=this._environment,a=e.cacheKey,o=e.snapshot;if(!o)return{dispose:function(){}};var i=this.checkMissedUpdates(e),s=i[0],l=i[1];s&&t();var f=[];if(Array.isArray(o)?(Array.isArray(l)||c(!1,"Relay: Expected snapshots to be plural. If you're seeing this, this is likely a bug in Relay."),l.forEach((function(e,o){f.push(n.subscribe(e,(function(e){var i=n.getStore().getEpoch();r._updatePluralSnapshot(a,l,e,o,i),t()})))}))):((null==l||Array.isArray(l))&&c(!1,"Relay: Expected snapshot to be singular. If you're seeing this, this is likely a bug in Relay."),f.push(n.subscribe(l,(function(e){var o=n.getStore().getEpoch();r._cache.set(a,{kind:"done",result:q(a,e,o)}),t()})))),d.ENABLE_CLIENT_EDGES){var h,p,v=null!==(h=null===(p=this._clientEdgeQueryResultsCache)||void 0===p?void 0:p.get(a))&&void 0!==h?h:void 0;if(null==v?void 0:v.length){var y=u(this._environment);v.forEach((function(e){f.push(y.retain(e))}))}}return{dispose:function(){f.forEach((function(e){return e.dispose()})),r._cache.delete(a)}}},t.subscribeSpec=function(e,t){var r=this,n=Object.keys(e).map((function(n){return r.subscribe(e[n],t)}));return{dispose:function(){n.forEach((function(e){e.dispose()}))}}},t.checkMissedUpdates=function(e){var t=this._environment,r=e.snapshot;if(!r)return[!1,null];var n;if(n=t.getStore().getEpoch(),e.storeEpoch===n)return[!1,e.snapshot];var o=e.cacheKey;if(Array.isArray(r)){var i=!1,s=[];return r.forEach((function(e,r){var n=t.lookup(e.selector),o=e.data,u=n.data,l=P(o,u);l!==o&&(n=(0,a.default)((0,a.default)({},n),{},{data:l}),i=!0),s[r]=n})),i&&this._cache.set(o,{kind:"done",result:q(o,s,n)}),[i,s]}var u=t.lookup(r.selector),l=r.data,c=u.data,f=P(l,c),d={data:f,isMissingData:u.isMissingData,missingClientEdges:u.missingClientEdges,seenRecords:u.seenRecords,selector:u.selector,missingRequiredFields:u.missingRequiredFields,relayResolverErrors:u.relayResolverErrors};return f!==l&&this._cache.set(o,{kind:"done",result:q(o,d,n)}),[f!==l,d]},t.checkMissedUpdatesSpec=function(e){var t=this;return Object.keys(e).some((function(r){return t.checkMissedUpdates(e[r])[0]}))},t._getAndSavePromiseForFragmentRequestInFlight=function(e,t,r,n){var a=this,o=g(this._environment,t,r);if(null==o)return null;var i=o.promise,s=o.pendingOperations,u=i.then((function(){a._cache.delete(e)})).catch((function(t){a._cache.delete(e)}));return u.displayName=i.displayName,this._cache.set(e,{kind:"pending",pendingOperations:s,promise:u,result:n}),{promise:u,pendingOperations:s}},t._updatePluralSnapshot=function(e,t,r,n,a){var o,s=this._cache.get(e);if(C(s))I(r.selector.node.name);else{var u=null==s||null===(o=s.result)||void 0===o?void 0:o.snapshot;if(!u||Array.isArray(u)){var l=u?(0,i.default)(u):(0,i.default)(t);l[n]=r,this._cache.set(e,{kind:"done",result:q(e,l,a)})}else I(r.selector.node.name)}},e}();function I(e){c(!1,"Relay: Expected to find cached data for plural fragment `%s` when receiving a subscription. If you're seeing this, this is likely a bug in Relay.",e)}function k(e){return new D(e)}var w=E?new WeakMap:new Map;e.exports={createFragmentResource:k,getFragmentResourceForEnvironment:function(e){var t=w.get(e);if(t)return t;var r=k(e);return w.set(e,r),r}}},function(e,t,r){"use strict";var n=r(3),a=function(){function e(e){this._capacity=e,this._capacity>0||n(!1,"LRUCache: Unable to create instance of cache with zero or negative capacity."),this._map=new Map}var t=e.prototype;return t.set=function(e,t){if(this._map.delete(e),this._map.set(e,t),this._map.size>this._capacity){var r=this._map.keys().next();r.done||this._map.delete(r.value)}},t.get=function(e){var t=this._map.get(e);return null!=t&&(this._map.delete(e),this._map.set(e,t)),t},t.has=function(e){return this._map.has(e)},t.delete=function(e){this._map.delete(e)},t.size=function(){return this._map.size},t.capacity=function(){return this._capacity-this._map.size},t.clear=function(){this._map.clear()},e}();e.exports={create:function(e){return new a(e)}}},function(e,t,r){"use strict";var n=r(2)(r(7)),a=r(3),o=function(){function e(e){var t=this;(0,n.default)(this,"_retainCount",0),(0,n.default)(this,"_retainDisposable",null),(0,n.default)(this,"_releaseTemporaryRetain",null),this._retain=function(r){return t._retainCount++,1===t._retainCount&&(t._retainDisposable=e(r)),{dispose:function(){t._retainCount=Math.max(0,t._retainCount-1),0===t._retainCount&&(null==t._retainDisposable&&a(!1,"Relay: Expected disposable to release query to be defined.If you're seeing this, this is likely a bug in Relay."),t._retainDisposable.dispose(),t._retainDisposable=null)}}}}var t=e.prototype;return t.temporaryRetain=function(e){var t,r=this;if(e.isServer())return{dispose:function(){}};var n=this._retain(e),a=null,o=function(){clearTimeout(a),a=null,r._releaseTemporaryRetain=null,n.dispose()};return a=setTimeout(o,3e5),null===(t=this._releaseTemporaryRetain)||void 0===t||t.call(this),this._releaseTemporaryRetain=o,{dispose:function(){var e;null===(e=r._releaseTemporaryRetain)||void 0===e||e.call(r)}}},t.permanentRetain=function(e){var t=this._retain(e);return this.releaseTemporaryRetain(),t},t.releaseTemporaryRetain=function(){var e;null===(e=this._releaseTemporaryRetain)||void 0===e||e.call(this),this._releaseTemporaryRetain=null},t.getRetainCount=function(){return this._retainCount},e}();e.exports=o},function(e,t,r){"use strict";var n=r(21),a=r(23),o=a.getQueryCacheIdentifier,i=a.getQueryResourceForEnvironment,s=r(33),u=r(22),l=r(4),c=r(0),f=c.useContext,d=c.useEffect,h=c.useState,p=c.useRef;e.exports=function(e){var t=e.query,r=e.componentDisplayName,a=e.fetchObservable,c=e.fetchPolicy,v=e.fetchKey,y=e.renderPolicy,m=l(),g=f(n),_=i(m),b=h(0),R=b[0],C=b[1],P=s(),E=P.startFetch,S=P.completeFetch,x="".concat(R,"-").concat(null!=v?v:""),q=o(m,t,c,y,x),F=g.wrapPrepareQueryResource((function(){return _.prepareWithIdentifier(q,t,a,c,y,{start:E,complete:S,error:S},g)})),D=p(!1);d((function(){return function(){D.current=!0}}),[]),d((function(){if(!0===D.current)return D.current=!1,void C((function(e){return e+1}));var e=_.retain(F,g);return function(){e.dispose()}}),[m,q]),d((function(){_.releaseTemporaryRetain(F)}));var I=F.fragmentNode,k=F.fragmentRef;return u(I,k,r).data}},function(e,t,r){"use strict";var n=r(0),a=n.useCallback,o=n.useEffect,i=n.useRef;e.exports=function(){var e=i(null),t=i(!1),r=a((function(){null!=e.current&&(e.current.unsubscribe(),e.current=null),t.current=!1}),[]),n=a((function(r){e.current=r,t.current=!0}),[]),s=a((function(){e.current=null,t.current=!1}),[]);return o((function(){return r}),[r]),{isFetchingRef:t,startFetch:n,disposeFetch:r,completeFetch:s}}},function(e,t,r){"use strict";var n=r(52),a=r(0),o=r(1),i=o.createOperationDescriptor,s=o.getRequest,u=a.useMemo;e.exports=function(e,t,r){var a=n(t)[0],o=n(r||{})[0];return u((function(){return i(s(e),a,o)}),[e,a,o])}},function(e,t,r){"use strict";var n,a=r(2)(r(5)),o=r(29).getFragmentResourceForEnvironment,i=r(21),s=r(23).getQueryResourceForEnvironment,u=r(22),l=r(11),c=r(36),f=r(4),d=r(3),h=r(0),p=h.useCallback,v=h.useContext,y=h.useReducer,m=r(1),g=m.__internal.fetchQuery,_=m.createOperationDescriptor,b=m.getFragmentIdentifier,R=m.getRefetchMetadata,C=m.getSelector,P=m.getValueAtPath,E=r(6);function S(e,t){switch(t.type){case"refetch":var r;return(0,a.default)((0,a.default)({},e),{},{fetchPolicy:t.fetchPolicy,mirroredEnvironment:null!==(r=t.refetchEnvironment)&&void 0!==r?r:e.mirroredEnvironment,onComplete:t.onComplete,refetchEnvironment:t.refetchEnvironment,refetchQuery:t.refetchQuery,renderPolicy:t.renderPolicy});case"reset":return{fetchPolicy:void 0,mirroredEnvironment:t.environment,mirroredFragmentIdentifier:t.fragmentIdentifier,onComplete:void 0,refetchQuery:null,renderPolicy:void 0};default:throw t.type,new Error("useRefetchableFragmentNode: Unexpected action type")}}n={getInitialIDAndType:function(e,t,n){var a=r(1).Record,o=null==e?void 0:e.id;if(1!==t.length||"node"!==t[0]||null==o)return null;var i=n.getStore().getSource().get(o),s=i&&a.getType(i);return null==s?null:{id:o,typename:s}},checkSameTypeAfterRefetch:function(e,t,n,a){var o=r(1).Record;if(e){var i=t.getStore().getSource().get(e.id),s=i&&o.getType(i);s!==e.typename&&E(!1,"Relay: Call to `refetch` returned data with a different __typename: was `%s`, now `%s`, on `%s` in `%s`. Please make sure the server correctly implementsunique id requirement.",e.typename,s,n.name,a)}},checkSameIDAfterRefetch:function(e,t,n,a){if(null!=e){var o=t[r(1).ID_KEY];null!=o&&o!==e.id&&E(!1,"Relay: Call to `refetch` returned a different id, expected `%s`, got `%s`, on `%s` in `%s`. Please make sure the server correctly implements unique id requirement.",o,e.id,n.name,a)}}},e.exports=function(e,t,r){var h=f(),m=R(e,r),x=m.refetchableRequest,q=m.fragmentRefPathInResponse,F=m.identifierField,D=b(e,t),I=y(S,{fetchPolicy:void 0,mirroredEnvironment:h,mirroredFragmentIdentifier:D,onComplete:void 0,refetchEnvironment:null,refetchQuery:null,renderPolicy:void 0}),k=I[0],w=I[1],O=k.fetchPolicy,A=k.mirroredEnvironment,N=k.mirroredFragmentIdentifier,Q=k.onComplete,T=k.refetchEnvironment,M=k.refetchQuery,U=k.renderPolicy,L=null!=T?T:h,j=s(L),V=o(L),W=v(i),B=L!==A||D!==N,H=c(x),K=H[0],G=H[1],z=H[2],Y=t;if(B)w({type:"reset",environment:L,fragmentIdentifier:D}),z();else if(null!=M&&null!=K){var X;X=n.getInitialIDAndType(M.request.variables,q,L);var J=function(e){Q&&Q(null!=e?e:null)},Z=null!=K.source?K.source:g(L,M),$=W.wrapPrepareQueryResource((function(){return j.prepare(M,Z,O,U,{error:J,complete:function(){n.checkSameTypeAfterRefetch(X,L,e,r),J()}},K.fetchKey,W)})),ee=V.read($.fragmentNode,$.fragmentRef,r).data;null==ee&&d(!1,"Relay: Expected to be able to read refetch query response. If you're seeing this, this is likely a bug in Relay."),Y=P(ee,q),n.checkSameIDAfterRefetch(X,Y,e,r)}var te=u(e,Y,r),re=te.data,ne=te.disableStoreUpdates,ae=te.enableStoreUpdates;return{fragmentData:re,fragmentRef:Y,refetch:function(e,t,r,n,o,i,s,u,c,f,d){var h=l(),v=null!=u&&null!=n&&"object"==typeof n?n[u]:null;return p((function(n,o){if(!0!==h.current)return E(!1,"Relay: Unexpected call to `refetch` on unmounted component for fragment `%s` in `%s`. It looks like some instances of your component are still trying to fetch data but they already unmounted. Please make sure you clear all timers, intervals, async calls, etc that may trigger a fetch.",i.name,e),{dispose:function(){}};null==f&&E(!1,"Relay: Unexpected call to `refetch` while using a null fragment ref for fragment `%s` in `%s`. When calling `refetch`, we expect initial fragment data to be non-null. Please make sure you're passing a valid fragment ref to `%s` before calling `refetch`, or make sure you pass all required variables to `refetch`.",i.name,e,e);var s,l,p=null==o?void 0:o.__environment,y=null==o?void 0:o.fetchPolicy,m=null==o?void 0:o.UNSTABLE_renderPolicy,g=null==o?void 0:o.onComplete,b=C(i,f);if(null==b)s={},l={};else if("PluralReaderSelector"===b.kind){var R,P,S,x;s=null!==(R=null===(P=b.selectors[0])||void 0===P?void 0:P.owner.variables)&&void 0!==R?R:{},l=null!==(S=null===(x=b.selectors[0])||void 0===x?void 0:x.variables)&&void 0!==S?S:{}}else s=b.owner.variables,l=b.variables;var q=(0,a.default)((0,a.default)((0,a.default)({},s),l),n);null==u||n.hasOwnProperty("id")||("string"!=typeof v&&E(!1,"Relay: Expected result to have a string `%s` in order to refetch, got `%s`.",u,v),q.id=v);var F=_(d,q,{force:!0});return c(F.request.variables,{fetchPolicy:y,__environment:p,__nameForWarning:"refetch"}),t({type:"refetch",fetchPolicy:y,onComplete:g,refetchEnvironment:p,refetchQuery:F,renderPolicy:m}),{dispose:r}}),[o,t,r,v,c])}(r,w,z,re,D,e,0,F,G,t,x),disableStoreUpdates:ne,enableStoreUpdates:ae}}},function(e,t,r){"use strict";var n=r(2)(r(28)),a=r(8),o=a.loadQuery,i=a.useTrackLoadQueryInRender,s=r(11),u=r(4),l=r(0),c=l.useCallback,f=l.useEffect,d=l.useRef,h=l.useState,p=r(1).getRequest,v={kind:"NullQueryReference"};function y(e){return"PreloadableConcreteRequest"===e.kind?void 0!==e.params.metadata.live:void 0!==p(e).params.metadata.live}e.exports=function(e,t){var r=null!=t?t:v,a=u();i();var l=s(),p=d(new Set([r])),m=h((function(){return r})),g=m[0],_=m[1],b=h((function(){return r})),R=b[0],C=b[1];r!==R&&(p.current.add(r),C(r),_(r));var P=c((function(){l.current&&(p.current.add(v),_(v))}),[l]),E=c((function(t,r){var n=null!=r&&r.hasOwnProperty("__environment")?{fetchPolicy:r.fetchPolicy,networkCacheConfig:r.networkCacheConfig,__nameForWarning:r.__nameForWarning}:r;if(l.current){var i,s=o(null!==(i=null==r?void 0:r.__environment)&&void 0!==i?i:a,e,t,n);p.current.add(s),_(s)}}),[a,e,_,l]),S=d(!1);return f((function(){return function(){S.current=!0}}),[]),f((function(){if(!0===S.current)return S.current=!1,void("NullQueryReference"!==g.kind&&E(g.variables,{fetchPolicy:g.fetchPolicy,networkCacheConfig:g.networkCacheConfig}));var t=p.current;if(l.current){var r,a=(0,n.default)(t);try{for(a.s();!(r=a.n()).done;){var o=r.value;if(o===g)break;t.delete(o),"NullQueryReference"!==o.kind&&(y(e)?o.dispose&&o.dispose():o.releaseQuery&&o.releaseQuery())}}catch(e){a.e(e)}finally{a.f()}}}),[g,l,E,e]),f((function(){return function(){var t,r=(0,n.default)(p.current);try{for(r.s();!(t=r.n()).done;){var a=t.value;"NullQueryReference"!==a.kind&&(y(e)?a.dispose&&a.dispose():a.releaseQuery&&a.releaseQuery())}}catch(e){r.e(e)}finally{r.f()}}}),[e]),["NullQueryReference"===g.kind?null:g,E,P]}},function(e,t,r){"use strict";var n=r(9),a=r(38),o=r(42),i=r(43),s=r(44),u=r(45),l=r(46),c=r(27),f=r(8).loadQuery,d=r(47),h=r(48),p=r(49),v=r(51),y=r(53),m=r(54),g=r(57),_=r(36),b=r(58),R=r(4),C=r(59),P=r(60),E=r(1);e.exports={ConnectionHandler:E.ConnectionHandler,QueryRenderer:s,LocalQueryRenderer:o,MutationTypes:E.MutationTypes,RangeOperations:E.RangeOperations,ReactRelayContext:n,applyOptimisticMutation:E.applyOptimisticMutation,commitLocalUpdate:E.commitLocalUpdate,commitMutation:E.commitMutation,createFragmentContainer:a.createContainer,createPaginationContainer:i.createContainer,createRefetchContainer:u.createContainer,fetchQuery_DEPRECATED:E.fetchQuery_DEPRECATED,graphql:E.graphql,readInlineData:E.readInlineData,requestSubscription:E.requestSubscription,EntryPointContainer:l,RelayEnvironmentProvider:d,fetchQuery:E.fetchQuery,loadQuery:f,loadEntryPoint:c,useFragment:p,useLazyLoadQuery:v,useEntryPointLoader:h,useQueryLoader:_,useMutation:y,usePaginationFragment:m,usePreloadedQuery:g,useRefetchableFragment:b,useRelayEnvironment:R,useSubscribeToInvalidationState:C,useSubscription:P}},function(e,t,r){"use strict";var n=r(2),a=n(r(5)),o=n(r(15)),i=n(r(12)),s=n(r(13)),u=n(r(7)),l=r(16),c=r(14).getContainerName,f=r(19).assertRelayContext,d=r(10),h=r(0),p=r(1),v=p.createFragmentSpecResolver,y=p.getDataIDsFromObject,m=p.isScalarAndEqual;function g(e,t){var r,n,l=c(e);return n=r=function(r){function n(e){var n,a;a=r.call(this,e)||this,(0,u.default)((0,i.default)(a),"_handleFragmentDataUpdate",(function(){var e=a.state.resolver;a.setState((function(t){return e===t.resolver?{data:t.resolver.resolve(),relayProp:_(t.relayProp.environment)}:null}))}));var o=f(e.__relayContext),s=null!==(n=e.__rootIsQueryRenderer)&&void 0!==n&&n,c=v(o,l,t,e,s);return a.state={data:c.resolve(),prevProps:e,prevPropsContext:o,relayProp:_(o.environment),resolver:c},a}(0,s.default)(n,r),n.getDerivedStateFromProps=function(e,r){var n,a=r.prevProps,o=f(e.__relayContext),i=null!==(n=e.__rootIsQueryRenderer)&&void 0!==n&&n,s=y(t,a),u=y(t,e),c=r.resolver;if(r.prevPropsContext.environment!==o.environment||!d(s,u))return{data:(c=v(o,l,t,e,i)).resolve(),prevPropsContext:o,prevProps:e,relayProp:_(o.environment),resolver:c};c.setProps(e);var h=c.resolve();return h!==r.data?{data:h,prevProps:e,prevPropsContext:o,relayProp:_(o.environment)}:null};var c=n.prototype;return c.componentDidMount=function(){this._subscribeToNewResolverAndRerenderIfStoreHasChanged()},c.componentDidUpdate=function(e,t){this.state.resolver!==t.resolver?(t.resolver.dispose(),this._subscribeToNewResolverAndRerenderIfStoreHasChanged()):this._rerenderIfStoreHasChanged()},c.componentWillUnmount=function(){this.state.resolver.dispose()},c.shouldComponentUpdate=function(e,r){if(r.data!==this.state.data)return!0;for(var n=Object.keys(e),a=0;a<n.length;a++){var o=n[a];if("__relayContext"===o){if(r.prevPropsContext.environment!==this.state.prevPropsContext.environment)return!0}else if(!t.hasOwnProperty(o)&&!m(e[o],this.props[o]))return!0}return!1},c._rerenderIfStoreHasChanged=function(){var e=this.state,t=e.data,r=e.resolver.resolve();t!==r&&this.setState({data:r})},c._subscribeToNewResolverAndRerenderIfStoreHasChanged=function(){var e=this.state,t=e.data,r=e.resolver,n=r.resolve();r.setCallback(this.props,this._handleFragmentDataUpdate),t!==n&&this.setState({data:n})},c.render=function(){var t=this.props,r=t.componentRef,n=(t.__relayContext,t.__rootIsQueryRenderer,(0,o.default)(t,["componentRef","__relayContext","__rootIsQueryRenderer"]));return h.createElement(e,(0,a.default)((0,a.default)((0,a.default)({},n),this.state.data),{},{ref:r,relay:this.state.relayProp}))},n}(h.Component),(0,u.default)(r,"displayName",l),n}function _(e){return{environment:e}}e.exports={createContainer:function(e,t){return l(e,t,g)}}},function(e,t,r){"use strict";var n=r(3);e.exports=function(e,t){for(var r in t&&"object"==typeof t||n(!1,"Could not create Relay Container for `%s`. Expected a set of GraphQL fragments, got `%s` instead.",e,t),t)if(t.hasOwnProperty(r)){var a=t[r];(!a||"object"!=typeof a&&"function"!=typeof a)&&n(!1,"Could not create Relay Container for `%s`. The value of fragment `%s` was expected to be a fragment, got `%s` instead.",e,r,a)}}},function(e,t,r){"use strict";var n=r(0).__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,a=n.ReactCurrentDispatcher,o=n.ReactCurrentOwner;e.exports=function(e){return(null!=a?a.current:o.currentDispatcher).readContext(e)}},function(e,t,r){"use strict";e.exports=function(e){return"object"==typeof e&&null!==e&&"function"==typeof e.check&&"function"==typeof e.lookup&&"function"==typeof e.retain&&"function"==typeof e.execute&&"function"==typeof e.subscribe}},function(e,t,r){"use strict";var n=r(9),a=r(18),o=r(10),i=r(0),s=r(1),u=s.createOperationDescriptor,l=s.deepFreeze,c=s.getRequest,f=i.useLayoutEffect,d=i.useState,h=i.useRef,p=i.useMemo,v={rootIsQueryRenderer:!0};e.exports=function(e){var t,r,s=e.environment,y=e.query,m=e.variables,g=e.render,_=(t=m,r=i.useRef(t),o(r.current,t)||(l(t),r.current=t),r.current),b=p((function(){var e=c(y);return u(e,_)}),[y,_]),R=p((function(){return{environment:s}}),[s]),C=h(null),P=d(null)[1],E=h(null),S=p((function(){s.check(b);var e=s.lookup(b.fragment);C.current=e.data;var t=s.retain(b),r=s.subscribe(e,(function(e){C.current=e.data,P(C.current)})),n=!1;return E.current&&E.current(),E.current=function(){n||(n=!0,E.current=null,t.dispose(),r.dispose())},e}),[s,b]);return f((function(){var e=E.current;return function(){e&&e()}}),[S]),i.createElement(n.Provider,{value:R},i.createElement(a.Provider,{value:v},g({props:C.current})))}},function(e,t,r){"use strict";var n=r(2),a=n(r(17)),o=n(r(15)),i=n(r(12)),s=n(r(13)),u=n(r(7)),l=n(r(5)),c=r(16),f=r(25),d=r(14),h=d.getComponentName,p=d.getContainerName,v=r(9),y=r(20),m=r(19).assertRelayContext,g=r(10),_=r(3),b=r(0),R=r(1),C=R.ConnectionInterface,P=R.Observable,E=R.RelayFeatureFlags,S=R.createFragmentSpecResolver,x=R.createOperationDescriptor,q=R.getDataIDsFromObject,F=R.getRequest,D=R.getVariablesFromObject,I=R.isScalarAndEqual,k=r(6);function w(e){return"function"==typeof e?{error:e,complete:e,unsubscribe:function(t){"function"==typeof e&&e()}}:e||{}}function O(e,t,r){var n,c,d=h(e),R=p(e),O=function(e){var t=null,r=!1;for(var n in e){var a=e[n],o=a.metadata&&a.metadata.connection;void 0!==a.metadata&&(r=!0),o&&(1!==o.length&&_(!1,"ReactRelayPaginationContainer: Only a single @connection is supported, `%s` has %s.",n,o.length),t&&_(!1,"ReactRelayPaginationContainer: Only a single fragment with @connection is supported."),t=(0,l.default)((0,l.default)({},o[0]),{},{fragmentName:n}))}return r&&null===t&&_(!1,"ReactRelayPaginationContainer: A @connection directive must be present."),t||{}}(t),A=r.getConnectionFromProps||function(e){var t=e.path;return t||_(!1,"ReactRelayPaginationContainer: Unable to synthesize a getConnectionFromProps function."),function(r){for(var n=r[e.fragmentName],a=0;a<t.length;a++){if(!n||"object"!=typeof n)return null;n=n[t[a]]}return n}}(O),N=r.direction||O.direction;N||_(!1,"ReactRelayPaginationContainer: Unable to infer direction of the connection, possibly because both first and last are provided.");var Q=r.getFragmentVariables||function(e){var t=e.count;return t||_(!1,"ReactRelayPaginationContainer: Unable to synthesize a getFragmentVariables function."),function(e,r){return(0,l.default)((0,l.default)({},e),{},(0,u.default)({},t,r))}}(O);return c=n=function(n){function c(e){var r,a;a=n.call(this,e)||this,(0,u.default)((0,i.default)(a),"_handleFragmentDataUpdate",(function(){a.setState({data:a._resolver.resolve()})})),(0,u.default)((0,i.default)(a),"_hasMore",(function(){var e=a._getConnectionData();return!!(e&&e.hasMore&&e.cursor)})),(0,u.default)((0,i.default)(a),"_isLoading",(function(){return!!a._refetchSubscription})),(0,u.default)((0,i.default)(a),"_refetchConnection",(function(e,t,r){if(!a._canFetchPage("refetchConnection"))return{dispose:function(){}};a._refetchVariables=r;var n={count:e,cursor:null,totalCount:e};return{dispose:a._fetchPage(n,w(t),{force:!0}).unsubscribe}})),(0,u.default)((0,i.default)(a),"_loadMore",(function(e,t,r){if(!a._canFetchPage("loadMore"))return{dispose:function(){}};var n=w(t),o=a._getConnectionData();if(!o)return P.create((function(e){return e.complete()})).subscribe(n),null;var i=o.edgeCount+e;if(r&&r.force)return a._refetchConnection(i,t);var s=C.get(),u=s.END_CURSOR,l=s.START_CURSOR,c=o.cursor;k(null!=c&&""!==c,"ReactRelayPaginationContainer: Cannot `loadMore` without valid `%s` (got `%s`)","forward"===N?u:l,c);var f={count:e,cursor:c,totalCount:i};return{dispose:a._fetchPage(f,n,r).unsubscribe}}));var o=m(e.__relayContext),s=null!==(r=e.__rootIsQueryRenderer)&&void 0!==r&&r;return a._isARequestInFlight=!1,a._refetchSubscription=null,a._refetchVariables=null,!0===E.ENABLE_CONTAINERS_SUBSCRIBE_ON_COMMIT?a._resolver=S(o,R,t,e,s):a._resolver=S(o,R,t,e,s,a._handleFragmentDataUpdate),a.state={data:a._resolver.resolve(),prevContext:o,contextForChildren:o,relayProp:a._buildRelayProp(o),resolverGeneration:0},a._isUnmounted=!1,a._hasFetched=!1,a}(0,s.default)(c,n);var h=c.prototype;return h.componentDidMount=function(){this._isUnmounted=!1,!0===E.ENABLE_CONTAINERS_SUBSCRIBE_ON_COMMIT&&this._subscribeToNewResolverAndRerenderIfStoreHasChanged()},h.componentDidUpdate=function(e,t){!0===E.ENABLE_CONTAINERS_SUBSCRIBE_ON_COMMIT&&(t.resolverGeneration!==this.state.resolverGeneration?this._subscribeToNewResolverAndRerenderIfStoreHasChanged():this._rerenderIfStoreHasChanged())},h.UNSAFE_componentWillReceiveProps=function(e){var r,n=this,a=m(e.__relayContext),o=null!==(r=e.__rootIsQueryRenderer)&&void 0!==r&&r,i=q(t,this.props),s=q(t,e),u=f(t,this.props),l=f(t,e);a.environment===this.state.prevContext.environment&&g(u,l)&&g(i,s)?this._hasFetched||this._resolver.setProps(e):(this._cleanup(),!0===E.ENABLE_CONTAINERS_SUBSCRIBE_ON_COMMIT?this._resolver=S(a,R,t,e,o):this._resolver=S(a,R,t,e,o,this._handleFragmentDataUpdate),this.setState((function(e){return{prevContext:a,contextForChildren:a,relayProp:n._buildRelayProp(a),resolverGeneration:e.resolverGeneration+1}})));var c=this._resolver.resolve();c!==this.state.data&&this.setState({data:c})},h.componentWillUnmount=function(){this._isUnmounted=!0,this._cleanup()},h.shouldComponentUpdate=function(e,r){if(r.data!==this.state.data||r.relayProp!==this.state.relayProp||r.resolverGeneration!==this.state.resolverGeneration)return!0;for(var n=Object.keys(e),a=0;a<n.length;a++){var o=n[a];if("__relayContext"===o){if(r.prevContext.environment!==this.state.prevContext.environment)return!0}else if(!t.hasOwnProperty(o)&&!I(e[o],this.props[o]))return!0}return!1},h._buildRelayProp=function(e){return{hasMore:this._hasMore,isLoading:this._isLoading,loadMore:this._loadMore,refetchConnection:this._refetchConnection,environment:e.environment}},h._rerenderIfStoreHasChanged=function(){var e=this.state.data,t=this._resolver.resolve();e!==t&&this.setState({data:t})},h._subscribeToNewResolverAndRerenderIfStoreHasChanged=function(){var e=this.state.data,t=this._resolver.resolve();this._resolver.setCallback(this.props,this._handleFragmentDataUpdate),e!==t&&this.setState({data:t})},h._getConnectionData=function(){var e=this.props,t=(e.componentRef,(0,o.default)(e,["componentRef"])),r=(0,l.default)((0,l.default)({},t),this.state.data),n=A(r);if(null==n)return null;var a=C.get(),i=a.EDGES,s=a.PAGE_INFO,u=a.HAS_NEXT_PAGE,c=a.HAS_PREV_PAGE,f=a.END_CURSOR,h=a.START_CURSOR;"object"!=typeof n&&_(!1,"ReactRelayPaginationContainer: Expected `getConnectionFromProps()` in `%s`to return `null` or a plain object with %s and %s properties, got `%s`.",d,i,s,n);var p=n[i],v=n[s];if(null==p||null==v)return null;Array.isArray(p)||_(!1,"ReactRelayPaginationContainer: Expected `getConnectionFromProps()` in `%s`to return an object with %s: Array, got `%s`.",d,i,p),"object"!=typeof v&&_(!1,"ReactRelayPaginationContainer: Expected `getConnectionFromProps()` in `%s`to return an object with %s: Object, got `%s`.",d,s,v);var y="forward"===N?v[u]:v[c],m="forward"===N?v[f]:v[h];return"boolean"!=typeof y||0!==p.length&&void 0===m?(k(!1,"ReactRelayPaginationContainer: Cannot paginate without %s fields in `%s`. Be sure to fetch %s (got `%s`) and %s (got `%s`).",s,d,"forward"===N?u:c,y,"forward"===N?f:h,m),null):{cursor:m,edgeCount:p.length,hasMore:y}},h._getQueryFetcher=function(){return this._queryFetcher||(this._queryFetcher=new y),this._queryFetcher},h._canFetchPage=function(e){return!this._isUnmounted||(k(!1,"ReactRelayPaginationContainer: Unexpected call of `%s` on unmounted container `%s`. It looks like some instances of your container still trying to fetch data but they already unmounted. Please make sure you clear all timers, intervals, async calls, etc that may trigger `%s` call.",e,R,e),!1)},h._fetchPage=function(e,n,a){var i,s=this,u=m(this.props.__relayContext).environment,c=this.props,h=(c.componentRef,c.__relayContext,c.__rootIsQueryRenderer,(0,o.default)(c,["componentRef","__relayContext","__rootIsQueryRenderer"])),p=(0,l.default)((0,l.default)({},h),this.state.data),v=f(t,h);i=D(t,h),i=(0,l.default)((0,l.default)((0,l.default)({},v),i),this._refetchVariables);var y=r.getVariables(p,{count:e.count,cursor:e.cursor},i);("object"!=typeof y||null===y)&&_(!1,"ReactRelayPaginationContainer: Expected `getVariables()` to return an object, got `%s` in `%s`.",y,d),y=(0,l.default)((0,l.default)({},y),this._refetchVariables),i=(0,l.default)((0,l.default)({},y),i);var b=a?{force:!!a.force}:void 0;null!=b&&null!=(null==a?void 0:a.metadata)&&(b.metadata=null==a?void 0:a.metadata);var R=F(r.query),C=x(R,y,b),E=null;this._refetchSubscription&&this._refetchSubscription.unsubscribe(),this._hasFetched=!0;var S=function(){s._refetchSubscription===E&&(s._refetchSubscription=null,s._isARequestInFlight=!1)};return this._isARequestInFlight=!0,E=this._getQueryFetcher().execute({environment:u,operation:C,preservePreviousReferences:!0}).mergeMap((function(t){return P.create((function(t){!function(t,r){var n=s._resolver.resolve();s._resolver.setVariables(Q(i,e.totalCount),C.request.node);var a=s._resolver.resolve();g(n,a)?r():s.setState({data:a,contextForChildren:{environment:s.props.__relayContext.environment}},r)}(0,(function(){t.next(),t.complete()}))}))})).do({error:S,complete:S,unsubscribe:S}).subscribe(n||{}),this._refetchSubscription=this._isARequestInFlight?E:null,E},h._cleanup=function(){this._resolver.dispose(),this._refetchVariables=null,this._hasFetched=!1,this._refetchSubscription&&(this._refetchSubscription.unsubscribe(),this._refetchSubscription=null,this._isARequestInFlight=!1),this._queryFetcher&&this._queryFetcher.dispose()},h.render=function(){var t=this.props,r=t.componentRef,n=(t.__relayContext,t.__rootIsQueryRenderer,(0,o.default)(t,["componentRef","__relayContext","__rootIsQueryRenderer"]));return b.createElement(v.Provider,{value:this.state.contextForChildren},b.createElement(e,(0,a.default)({},n,this.state.data,{ref:r,relay:this.state.relayProp})))},c}(b.Component),(0,u.default)(n,"displayName",R),c}e.exports={createContainer:function(e,t,r){return c(e,t,(function(e,t){return O(e,t,r)}))}}},function(e,t,r){"use strict";var n=r(2),a=n(r(5)),o=n(r(12)),i=n(r(13)),s=n(r(7)),u=r(9),l=r(20),c=r(18),f=r(10),d=r(0),h=r(1),p=h.createOperationDescriptor,v=h.deepFreeze,y=h.getRequest,m={},g={rootIsQueryRenderer:!0},_=function(e){function t(t){var r;r=e.call(this,t)||this,(0,s.default)((0,o.default)(r),"_handleDataChange",(function(e){var t=null==e.error?null:e.error,n=null==e.snapshot?null:e.snapshot;r.setState((function(e){var r=e.requestCacheKey;return r&&delete m[r],n===e.snapshot&&t===e.error?null:{renderProps:b(t,n,e.queryFetcher,e.retryCallbacks),snapshot:n,requestCacheKey:null}}))}));var n,i,u={handleDataChange:null,handleRetryAfterError:null};if(t.query){var c=t.query;i=R(y(c).params,t.variables),n=m[i]?m[i].queryFetcher:new l}else n=new l;return r._maybeHiddenOrFastRefresh=!1,r.state=(0,a.default)({prevPropsEnvironment:t.environment,prevPropsVariables:t.variables,prevQuery:t.query,queryFetcher:n,retryCallbacks:u},P(t,n,u,i)),r}(0,i.default)(t,e),t.getDerivedStateFromProps=function(e,t){return t.prevQuery===e.query&&t.prevPropsEnvironment===e.environment&&f(t.prevPropsVariables,e.variables)?null:C(e,t)};var r=t.prototype;return r.componentDidMount=function(){var e=this;if(!0===this._maybeHiddenOrFastRefresh)return this._maybeHiddenOrFastRefresh=!1,void this.setState((function(t){return C(e.props,t)}));var t=this.state,r=t.retryCallbacks,n=t.queryFetcher,a=t.requestCacheKey;a&&delete m[a],r.handleDataChange=this._handleDataChange,r.handleRetryAfterError=function(t){return e.setState((function(e){var t=e.requestCacheKey;return t&&delete m[t],{renderProps:{error:null,props:null,retry:null},requestCacheKey:null}}))},this.props.query&&n.setOnDataChange(this._handleDataChange)},r.componentDidUpdate=function(e,t){var r=this.state,n=r.queryFetcher,a=r.requestCacheKey;a&&(delete m[a],delete this.state.requestCacheKey),this.props.query&&n!==t.queryFetcher&&n.setOnDataChange(this._handleDataChange)},r.componentWillUnmount=function(){this.state.queryFetcher.dispose(),this._maybeHiddenOrFastRefresh=!0},r.shouldComponentUpdate=function(e,t){return e.render!==this.props.render||t.renderProps!==this.state.renderProps},r.render=function(){var e=this.state,t=e.renderProps,r=e.relayContext;return v(t),d.createElement(u.Provider,{value:r},d.createElement(c.Provider,{value:g},this.props.render(t)))},t}(d.Component);function b(e,t,r,n){return{error:e||null,props:t?t.data:null,retry:function(t){var a=r.retry(t);a&&"function"==typeof n.handleDataChange?n.handleDataChange({snapshot:a}):e&&"function"==typeof n.handleRetryAfterError&&n.handleRetryAfterError(e)}}}function R(e,t){return JSON.stringify({id:e.cacheID?e.cacheID:e.id,variables:t})}function C(e,t){var r,n=e.query,o=t.queryFetcher.getSelectionReferences();if(t.queryFetcher.disposeRequest(),n){var i=R(y(n).params,e.variables);r=m[i]?m[i].queryFetcher:new l(o)}else r=new l(o);return(0,a.default)({prevQuery:e.query,prevPropsEnvironment:e.environment,prevPropsVariables:e.variables,queryFetcher:r},P(e,r,t.retryCallbacks))}function P(e,t,r,n){var a=e.environment,o=e.query,i=e.variables,s=e.cacheConfig,u=a;if(!o)return t.dispose(),{error:null,relayContext:{environment:u},renderProps:{error:null,props:{},retry:null},requestCacheKey:null};var l=y(o),c=p(l,i,s),f={environment:u};if("string"==typeof n&&m[n]){var d=m[n].snapshot;return d?{error:null,relayContext:f,renderProps:b(null,d,t,r),snapshot:d,requestCacheKey:n}:{error:null,relayContext:f,renderProps:{error:null,props:null,retry:null},snapshot:null,requestCacheKey:n}}try{var h=t.lookupInStore(u,c,e.fetchPolicy),v=t.fetch({environment:u,onDataChange:null,operation:c})||h;return n=n||R(l.params,e.variables),m[n]={queryFetcher:t,snapshot:v},v?{error:null,relayContext:f,renderProps:b(null,v,t,r),snapshot:v,requestCacheKey:n}:{error:null,relayContext:f,renderProps:{error:null,props:null,retry:null},snapshot:null,requestCacheKey:n}}catch(e){return{error:e,relayContext:f,renderProps:b(e,null,t,r),snapshot:null,requestCacheKey:n}}}e.exports=_},function(e,t,r){"use strict";var n=r(2),a=n(r(17)),o=n(r(15)),i=n(r(5)),s=n(r(12)),u=n(r(13)),l=n(r(7)),c=r(16),f=r(25),d=r(14).getContainerName,h=r(9),p=r(20),v=r(19).assertRelayContext,y=r(10),m=r(0),g=r(1),_=g.Observable,b=g.createFragmentSpecResolver,R=g.createOperationDescriptor,C=g.getDataIDsFromObject,P=g.getRequest,E=g.getVariablesFromObject,S=g.isScalarAndEqual,x=r(6);function q(e,t){return{environment:e,refetch:t}}e.exports={createContainer:function(e,t,r){return c(e,t,(function(e,t){return function(e,t,r){var n,c,g=d(e);return c=n=function(n){function c(e){var a,o;o=n.call(this,e)||this,(0,l.default)((0,s.default)(o),"_handleFragmentDataUpdate",(function(){var e=o.state.resolver;o.setState((function(t){return e===t.resolver?{data:t.resolver.resolve()}:null}))})),(0,l.default)((0,s.default)(o),"_refetch",(function(e,n,a,s){if(o._isUnmounted)return x(!1,"ReactRelayRefetchContainer: Unexpected call of `refetch` on unmounted container `%s`. It looks like some instances of your container still trying to refetch the data but they already unmounted. Please make sure you clear all timers, intervals, async calls, etc that may trigger `refetch`.",g),{dispose:function(){}};var u=v(o.props.__relayContext).environment,l=f(t,o.props),c="function"==typeof e?e(o._getFragmentVariables()):e;c=(0,i.default)((0,i.default)({},l),c);var d=n?(0,i.default)((0,i.default)({},c),n):c,h=s?{force:!!s.force}:void 0;null!=h&&null!=(null==s?void 0:s.metadata)&&(h.metadata=null==s?void 0:s.metadata);var p,y="function"==typeof a?{next:a,error:a}:a||{},m=P(r),b=R(m,c,h);return o.state.localVariables=c,o._refetchSubscription&&o._refetchSubscription.unsubscribe(),null!=o._getQueryFetcher().lookupInStore(u,b,null==s?void 0:s.fetchPolicy)?(o.state.resolver.setVariables(d,b.request.node),o.setState((function(e){return{data:e.resolver.resolve(),contextForChildren:{environment:o.props.__relayContext.environment}}}),(function(){y.next&&y.next(),y.complete&&y.complete()})),{dispose:function(){}}):(o._getQueryFetcher().execute({environment:u,operation:b,preservePreviousReferences:!0}).mergeMap((function(e){return o.state.resolver.setVariables(d,b.request.node),_.create((function(e){return o.setState((function(e){return{data:e.resolver.resolve(),contextForChildren:{environment:o.props.__relayContext.environment}}}),(function(){e.next(),e.complete()}))}))})).finally((function(){o._refetchSubscription===p&&(o._refetchSubscription=null)})).subscribe((0,i.default)((0,i.default)({},y),{},{start:function(e){o._refetchSubscription=p=e,y.start&&y.start(e)}})),{dispose:function(){p&&p.unsubscribe()}})}));var u=v(e.__relayContext),c=null!==(a=e.__rootIsQueryRenderer)&&void 0!==a&&a;o._refetchSubscription=null;var d=b(u,g,t,e,c);return o.state={data:d.resolve(),localVariables:null,prevProps:e,prevPropsContext:u,contextForChildren:u,relayProp:q(u.environment,o._refetch),resolver:d},o._isUnmounted=!1,o}(0,u.default)(c,n);var d=c.prototype;return d.componentDidMount=function(){this._isUnmounted=!1,this._subscribeToNewResolverAndRerenderIfStoreHasChanged()},d.componentDidUpdate=function(e,t){this.state.resolver!==t.resolver?(t.resolver.dispose(),this._queryFetcher&&this._queryFetcher.dispose(),this._refetchSubscription&&this._refetchSubscription.unsubscribe(),this._subscribeToNewResolverAndRerenderIfStoreHasChanged()):this._rerenderIfStoreHasChanged()},c.getDerivedStateFromProps=function(e,r){var n,a=r.prevProps,o=v(e.__relayContext),i=null!==(n=e.__rootIsQueryRenderer)&&void 0!==n&&n,s=C(t,a),u=C(t,e),l=f(t,a),c=f(t,e),d=r.resolver;if(r.prevPropsContext.environment!==o.environment||!y(l,c)||!y(s,u))return{data:(d=b(o,g,t,e,i)).resolve(),localVariables:null,prevProps:e,prevPropsContext:o,contextForChildren:o,relayProp:q(o.environment,r.relayProp.refetch),resolver:d};r.localVariables||d.setProps(e);var h=d.resolve();return h!==r.data?{data:h,prevProps:e}:null},d.componentWillUnmount=function(){this._isUnmounted=!0,this.state.resolver.dispose(),this._queryFetcher&&this._queryFetcher.dispose(),this._refetchSubscription&&this._refetchSubscription.unsubscribe()},d.shouldComponentUpdate=function(e,r){if(r.data!==this.state.data||r.relayProp!==this.state.relayProp)return!0;for(var n=Object.keys(e),a=0;a<n.length;a++){var o=n[a];if("__relayContext"===o){if(this.state.prevPropsContext.environment!==r.prevPropsContext.environment)return!0}else if(!t.hasOwnProperty(o)&&!S(e[o],this.props[o]))return!0}return!1},d._rerenderIfStoreHasChanged=function(){var e=this.state,t=e.data,r=e.resolver.resolve();t!==r&&this.setState({data:r})},d._subscribeToNewResolverAndRerenderIfStoreHasChanged=function(){var e=this.state,t=e.data,r=e.resolver,n=r.resolve();r.setCallback(this.props,this._handleFragmentDataUpdate),t!==n&&this.setState({data:n})},d._getFragmentVariables=function(){return E(t,this.props)},d._getQueryFetcher=function(){return this._queryFetcher||(this._queryFetcher=new p),this._queryFetcher},d.render=function(){var t=this.props,r=t.componentRef,n=(t.__relayContext,t.__rootIsQueryRenderer,(0,o.default)(t,["componentRef","__relayContext","__rootIsQueryRenderer"])),i=this.state,s=i.relayProp,u=i.contextForChildren;return m.createElement(h.Provider,{value:u},m.createElement(e,(0,a.default)({},n,this.state.data,{ref:r,relay:s})))},c}(m.Component),(0,l.default)(n,"displayName",g),c}(e,t,r)}))}}},function(e,t,r){"use strict";var n=r(21),a=r(4),o=r(0),i=r(0),s=i.useContext,u=i.useEffect,l=r(6);e.exports=function(e){var t=e.entryPointReference,r=e.props;l(!1===t.isDisposed,"<EntryPointContainer>: Expected entryPointReference to not be disposed yet. This is because disposing the entrypoint marks it for future garbage collection, and as such may no longer be present in the Relay store. In the future, this will become a hard error.");var i=t.getComponent,c=t.queries,f=t.entryPoints,d=t.extraProps,h=t.rootModuleID,p=i(),v=s(n),y=a();return u((function(){y.__log({name:"entrypoint.root.consume",profilerContext:v,rootModuleID:h})}),[y,v,h]),o.createElement(p,{entryPoints:f,extraProps:d,props:r,queries:c})}},function(e,t,r){"use strict";var n=r(0),a=r(26),o=n.useMemo;e.exports=function(e){var t=e.children,r=e.environment,i=e.getEnvironmentForActor,s=o((function(){return{environment:r,getEnvironmentForActor:i}}),[r,i]);return n.createElement(a.Provider,{value:s},t)}},function(e,t,r){"use strict";var n=r(2)(r(28)),a=r(27),o=r(8).useTrackLoadQueryInRender,i=r(11),s=r(0),u=s.useCallback,l=s.useEffect,c=s.useRef,f=s.useState,d={kind:"NullEntryPointReference"};e.exports=function(e,t,r){var s,h,p,v;o();var y=null!==(s=null==r||null===(h=r.TEST_ONLY__initialEntryPointData)||void 0===h?void 0:h.entryPointReference)&&void 0!==s?s:d,m=null!==(p=null==r||null===(v=r.TEST_ONLY__initialEntryPointData)||void 0===v?void 0:v.entryPointParams)&&void 0!==p?p:null,g=i(),_=c(new Set([y])),b=f(y),R=b[0],C=b[1],P=f(m),E=P[0],S=P[1],x=u((function(){if(g.current){var e={kind:"NullEntryPointReference"};_.current.add(e),C(e)}}),[C,g]),q=u((function(r){if(g.current){var n=a(e,t,r);_.current.add(n),C(n),S(r)}}),[e,t,C,g]),F=c(!1);return l((function(){return function(){F.current=!0}}),[]),l((function(){if(!0===F.current)return F.current=!1,void("NullEntryPointReference"!==R.kind&&null!=E&&q(E));var e=_.current;if(g.current){var t,r=(0,n.default)(e);try{for(r.s();!(t=r.n()).done;){var a=t.value;if(a===R)break;e.delete(a),"NullEntryPointReference"!==a.kind&&a.dispose()}}catch(e){r.e(e)}finally{r.f()}}}),[R,E,q,g]),l((function(){return function(){var e,t=(0,n.default)(_.current);try{for(t.s();!(e=t.n()).done;){var r=e.value;"NullEntryPointReference"!==r.kind&&r.dispose()}}catch(e){t.e(e)}finally{t.f()}}}),[]),["NullEntryPointReference"===R.kind?null:R,q,x]}},function(e,t,r){"use strict";var n=r(8).useTrackLoadQueryInRender,a=r(22),o=r(24),i=r(0).useDebugValue,s=r(1).getFragment;e.exports=function(e,t){n();var r=s(e);o(r,"first argument of useFragment()");var u=a(r,t,"useFragment()").data;return i({fragment:r.name,data:u}),u}},function(e,t){e.exports=p},function(e,t,r){"use strict";var n=r(8).useTrackLoadQueryInRender,a=r(32),o=r(34),i=r(4),s=r(1).__internal.fetchQuery;e.exports=function(e,t,r){n();var u=i(),l=o(e,t,r&&r.networkCacheConfig?r.networkCacheConfig:{force:!0});return a({componentDisplayName:"useLazyLoadQuery()",fetchKey:null==r?void 0:r.fetchKey,fetchObservable:s(u,l),fetchPolicy:null==r?void 0:r.fetchPolicy,query:l,renderPolicy:null==r?void 0:r.UNSTABLE_renderPolicy})}},function(e,t,r){"use strict";var n=r(10),a=r(0),o=a.useMemo,i=a.useRef,s=a.useState;e.exports=function(e){var t,r,a=i(0),u=s(e),l=u[0],c=u[1];return n(e,l)||(a.current=(null!==(r=a.current)&&void 0!==r?r:0)+1,c(e)),[o((function(){return e}),[a.current]),null!==(t=a.current)&&void 0!==t?t:0]}},function(e,t,r){"use strict";var n=r(2)(r(5)),a=r(11),o=r(4),i=r(0),s=r(1).commitMutation,u=i.useState,l=i.useEffect,c=i.useRef,f=i.useCallback;e.exports=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:s,r=o(),i=a(),d=c(r),h=c(e),p=c(new Set),v=u(!1),y=v[0],m=v[1],g=f((function(t){d.current===r&&h.current===e&&(p.current.delete(t),i.current&&m(p.current.size>0))}),[r,i,e]);l((function(){d.current===r&&h.current===e||(p.current=new Set,i.current&&m(!1),d.current=r,h.current=e)}),[r,i,e]);var _=f((function(a){i.current&&m(!0);var o=t(r,(0,n.default)((0,n.default)({},a),{},{mutation:e,onCompleted:function(e,t){var r;g(o),null===(r=a.onCompleted)||void 0===r||r.call(a,e,t)},onError:function(e){var t;g(o),null===(t=a.onError)||void 0===t||t.call(a,e)},onUnsubscribe:function(){var e;g(o),null===(e=a.onUnsubscribe)||void 0===e||e.call(a)},onNext:function(){var e;null===(e=a.onNext)||void 0===e||e.call(a)}}));return p.current.add(o),o}),[g,t,r,i,e]);return[_,y]}},function(e,t,r){"use strict";var n=r(2)(r(5)),a=r(55),o=r(35),i=r(24),s=r(0),u=s.useCallback,l=s.useDebugValue,c=s.useState,f=r(1),d=f.getFragment,h=f.getFragmentIdentifier,p=f.getPaginationMetadata;function v(e){var t=c(!1),r=t[0],o=t[1],i={start:function(){return o(!0)},complete:function(){return o(!1)},error:function(){return o(!1)}},s=a((0,n.default)((0,n.default)({},e),{},{observer:i,onReset:function(){return o(!1)}}));return[s[0],s[1],r,s[2]]}e.exports=function(e,t){var r=d(e);i(r,"first argument of usePaginationFragment()");var a=p(r,"usePaginationFragment()"),s=a.connectionPathInFragmentData,c=a.paginationRequest,f=a.paginationMetadata,y=a.identifierField,m=o(r,t,"usePaginationFragment()"),g=m.fragmentData,_=m.fragmentRef,b=m.refetch,R=h(r,_),C=v({componentDisplayName:"usePaginationFragment()",connectionPathInFragmentData:s,direction:"backward",fragmentData:g,fragmentIdentifier:R,fragmentNode:r,fragmentRef:_,identifierField:y,paginationMetadata:f,paginationRequest:c}),P=C[0],E=C[1],S=C[2],x=C[3],q=v({componentDisplayName:"usePaginationFragment()",connectionPathInFragmentData:s,direction:"forward",fragmentData:g,fragmentIdentifier:R,fragmentNode:r,fragmentRef:_,identifierField:y,paginationMetadata:f,paginationRequest:c}),F=q[0],D=q[1],I=q[2],k=q[3],w=u((function(e,t){return k(),x(),b(e,(0,n.default)((0,n.default)({},t),{},{__environment:void 0}))}),[k,x,b]);return l({fragment:r.name,data:g,hasNext:D,isLoadingNext:I,hasPrevious:E,isLoadingPrevious:S}),{data:g,loadNext:F,loadPrevious:P,hasNext:D,hasPrevious:E,isLoadingNext:I,isLoadingPrevious:S,refetch:w}}},function(e,t,r){"use strict";var n=r(2)(r(5)),a=r(33),o=r(11),i=r(56),s=r(4),u=r(3),l=r(0),c=l.useCallback,f=l.useEffect,d=l.useState,h=r(1),p=h.ConnectionInterface,v=h.__internal.fetchQuery,y=h.createOperationDescriptor,m=h.getPaginationVariables,g=h.getSelector,_=h.getValueAtPath,b=r(6);e.exports=function(e){var t=e.direction,r=e.fragmentNode,l=e.fragmentRef,h=e.fragmentIdentifier,R=e.fragmentData,C=e.connectionPathInFragmentData,P=e.paginationRequest,E=e.paginationMetadata,S=e.componentDisplayName,x=e.observer,q=e.onReset,F=e.identifierField,D=s(),I=a(),k=I.isFetchingRef,w=I.startFetch,O=I.disposeFetch,A=I.completeFetch,N=null!=F&&null!=R&&"object"==typeof R?R[F]:null,Q=o(),T=d(D),M=T[0],U=T[1],L=d(h),j=L[0],V=L[1],W=i(r,l);(D!==M||h!==j)&&(O(),q(),U(D),V(h));var B=function(e,t,r,n){var a,o,i=p.get(),s=i.EDGES,l=i.PAGE_INFO,c=i.HAS_NEXT_PAGE,f=i.HAS_PREV_PAGE,d=i.END_CURSOR,h=i.START_CURSOR,v=_(r,n);if(null==v)return{cursor:null,hasMore:!1};"object"!=typeof v&&u(!1,"Relay: Expected connection in fragment `%s` to have been `null`, or a plain object with %s and %s properties. Instead got `%s`.",t.name,s,l,v);var y=v[s],m=v[l];if(null==y||null==m)return{cursor:null,hasMore:!1};Array.isArray(y)||u(!1,"Relay: Expected connection in fragment `%s` to have a plural `%s` field. Instead got `%s`.",t.name,s,y),"object"!=typeof m&&u(!1,"Relay: Expected connection in fragment `%s` to have a `%s` field. Instead got `%s`.",t.name,l,m);var g,b="forward"===e?null!==(a=m[d])&&void 0!==a?a:null:null!==(o=m[h])&&void 0!==o?o:null;null!==b&&"string"!=typeof b&&u(!1,"Relay: Expected page info for connection in fragment `%s` to have a valid `%s`. Instead got `%s`.",t.name,h,b),g="forward"===e?null!=b&&!0===m[c]:null!=b&&!0===m[f];return{cursor:b,hasMore:g}}(t,r,R,C),H=B.cursor,K=B.hasMore;return f((function(){return function(){O()}}),[O]),[c((function(e,a){var o=null==a?void 0:a.onComplete;if(!0!==Q.current)return b(!1,"Relay: Unexpected fetch on unmounted component for fragment `%s` in `%s`. It looks like some instances of your component are still trying to fetch data but they already unmounted. Please make sure you clear all timers, intervals, async calls, etc that may trigger a fetch.",r.name,S),{dispose:function(){}};var i=g(r,l);if(!0===k.current||null==R||W)return null==i&&b(!1,"Relay: Unexpected fetch while using a null fragment ref for fragment `%s` in `%s`. When fetching more items, we expect initial fragment data to be non-null. Please make sure you're passing a valid fragment ref to `%s` before paginating.",r.name,S,S),o&&o(null),{dispose:function(){}};(null==i||"PluralReaderSelector"===i.kind)&&u(!1,"Relay: Expected to be able to find a non-plural fragment owner for fragment `%s` when using `%s`. If you're seeing this, this is likely a bug in Relay.",r.name,S);var s=i.owner.variables,c=i.variables,f=null==a?void 0:a.UNSTABLE_extraVariables,d=(0,n.default)((0,n.default)({},s),c),h=m(t,e,H,d,(0,n.default)({},f),E);null!=F&&("string"!=typeof N&&b(!1,"Relay: Expected result to have a string `%s` in order to refetch, got `%s`.",F,N),h.id=N);var p=y(P,h,{force:!0});return v(D,p).subscribe((0,n.default)((0,n.default)({},x),{},{start:function(e){w(e),x.start&&x.start(e)},complete:function(){A(),x.complete&&x.complete(),o&&o(null)},error:function(e){A(),x.error&&x.error(e),o&&o(e)}})),{dispose:O}}),[D,N,t,H,w,O,A,k,W,R,r.name,l,S]),K,O]}},function(e,t,r){"use strict";var n=r(4),a=r(3),o=r(0),i=r(1),s=i.__internal.getObservableForActiveRequest,u=i.getSelector,l=o.useEffect,c=o.useState,f=o.useMemo;e.exports=function(e,t){var r=n(),o=f((function(){var n=u(e,t);return null==n?null:("SingularReaderSelector"!==n.kind&&a(!1,"useIsOperationNodeActive: Plural fragments are not supported."),s(r,n.owner))}),[r,e,t]),i=c(null!=o),d=i[0],h=i[1];return l((function(){var e;if(h(null!=o),null!=o){var t=function(){h(!1)};e=o.subscribe({complete:t,error:t})}return function(){e&&e.unsubscribe()}}),[o]),d}},function(e,t,r){"use strict";var n=r(8).useTrackLoadQueryInRender,a=r(32),o=r(34),i=r(4),s=r(3),u=r(0).useDebugValue,l=r(1).__internal,c=l.fetchQueryDeduped,f=l.fetchQuery,d=r(6);e.exports=function(e,t,r){n();var l,h=i(),p=t.fetchKey,v=t.fetchPolicy,y=t.source,m=t.variables,g=t.networkCacheConfig,_=o(e,m,g);if("PreloadedQuery_DEPRECATED"===t.kind)_.request.node.params.name!==t.name&&s(!1,"usePreloadedQuery(): Expected data to be prefetched for query `%s`, got prefetch results for query `%s`.",_.request.node.params.name,t.name),l={componentDisplayName:"usePreloadedQuery()",fetchKey:p,fetchObservable:c(h,_.request.identifier,(function(){return h===t.environment&&null!=y?h.executeWithSource({operation:_,source:y}):h.execute({operation:_})})),fetchPolicy:v,query:_,renderPolicy:null==r?void 0:r.UNSTABLE_renderPolicy};else{d(!1===t.isDisposed,"usePreloadedQuery(): Expected preloadedQuery to not be disposed yet. This is because disposing the query marks it for future garbage collection, and as such query results may no longer be present in the Relay store. In the future, this will become a hard error.");var b,R=f(h,_);null!=y&&h===t.environment?b=y.ifEmpty(R):h!==t.environment?(d(!1,"usePreloadedQuery(): usePreloadedQuery was passed a preloaded query that was created with a different environment than the one that is currently in context. In the future, this will become a hard error."),b=R):b=R,l={componentDisplayName:"usePreloadedQuery()",fetchObservable:b,fetchKey:p,fetchPolicy:v,query:_,renderPolicy:null==r?void 0:r.UNSTABLE_renderPolicy}}var C=a(l);return u({query:t.name,variables:t.variables,data:C,fetchKey:p,fetchPolicy:v,renderPolicy:null==r?void 0:r.UNSTABLE_renderPolicy}),C}},function(e,t,r){"use strict";var n=r(35),a=r(24),o=r(0).useDebugValue,i=r(1).getFragment;e.exports=function(e,t){var r=i(e);a(r,"first argument of useRefetchableFragment()");var s=n(r,t,"useRefetchableFragment()"),u=s.fragmentData,l=s.refetch;return o({fragment:r.name,data:u}),[u,l]}},function(e,t,r){"use strict";var n=r(4),a=r(0),o=a.useEffect,i=a.useRef;e.exports=function(e,t){var r=n(),a=i(null),s=Array.from(e).sort().join("");return o((function(){var n=r.getStore(),o=n.lookupInvalidationState(e),i=n.subscribeToInvalidationState(o,t);return a.current=i,function(){return i.dispose()}}),[s,t,r]),{dispose:function(){null!=a.current&&a.current.dispose()}}}},function(e,t,r){"use strict";var n=r(4),a=r(0).useEffect,o=r(1).requestSubscription;e.exports=function(e,t){var r=null!=t?t:o,i=n();a((function(){return r(i,e).dispose}),[i,e,r])}}])}));
|
package/react-relay.min.js
CHANGED
|
@@ -37,6 +37,7 @@ const {
|
|
|
37
37
|
handlePotentialSnapshotErrors,
|
|
38
38
|
recycleNodesInto,
|
|
39
39
|
} = require('relay-runtime');
|
|
40
|
+
const warning = require('warning');
|
|
40
41
|
|
|
41
42
|
type FragmentQueryOptions = {|
|
|
42
43
|
fetchPolicy?: FetchPolicy,
|
|
@@ -44,12 +45,13 @@ type FragmentQueryOptions = {|
|
|
|
44
45
|
|};
|
|
45
46
|
|
|
46
47
|
type FragmentState = $ReadOnly<
|
|
47
|
-
| {|kind: 'bailout'|}
|
|
48
|
+
| {|kind: 'bailout', plural: boolean|}
|
|
48
49
|
| {|kind: 'singular', snapshot: Snapshot, epoch: number|}
|
|
49
50
|
| {|kind: 'plural', snapshots: $ReadOnlyArray<Snapshot>, epoch: number|},
|
|
50
51
|
>;
|
|
51
52
|
|
|
52
53
|
type StateUpdater<T> = (T | (T => T)) => void;
|
|
54
|
+
type StateUpdaterFunction<T> = ((T) => T) => void;
|
|
53
55
|
|
|
54
56
|
function isMissingData(state: FragmentState): boolean {
|
|
55
57
|
if (state.kind === 'bailout') {
|
|
@@ -111,6 +113,7 @@ function handleMissedUpdates(
|
|
|
111
113
|
if (state.kind === 'bailout') {
|
|
112
114
|
return;
|
|
113
115
|
}
|
|
116
|
+
// FIXME this is invalid if we've just switched environments.
|
|
114
117
|
const currentEpoch = environment.getStore().getEpoch();
|
|
115
118
|
if (currentEpoch === state.epoch) {
|
|
116
119
|
return;
|
|
@@ -194,17 +197,17 @@ function handleMissingClientEdge(
|
|
|
194
197
|
function subscribeToSnapshot(
|
|
195
198
|
environment: IEnvironment,
|
|
196
199
|
state: FragmentState,
|
|
197
|
-
setState:
|
|
200
|
+
setState: StateUpdaterFunction<FragmentState>,
|
|
198
201
|
): () => void {
|
|
199
202
|
if (state.kind === 'bailout') {
|
|
200
203
|
return () => {};
|
|
201
204
|
} else if (state.kind === 'singular') {
|
|
202
205
|
const disposable = environment.subscribe(state.snapshot, latestSnapshot => {
|
|
203
|
-
setState({
|
|
206
|
+
setState(_ => ({
|
|
204
207
|
kind: 'singular',
|
|
205
208
|
snapshot: latestSnapshot,
|
|
206
209
|
epoch: environment.getStore().getEpoch(),
|
|
207
|
-
});
|
|
210
|
+
}));
|
|
208
211
|
});
|
|
209
212
|
return () => {
|
|
210
213
|
disposable.dispose();
|
|
@@ -238,9 +241,10 @@ function subscribeToSnapshot(
|
|
|
238
241
|
function getFragmentState(
|
|
239
242
|
environment: IEnvironment,
|
|
240
243
|
fragmentSelector: ?ReaderSelector,
|
|
244
|
+
isPlural: boolean,
|
|
241
245
|
): FragmentState {
|
|
242
246
|
if (fragmentSelector == null) {
|
|
243
|
-
return {kind: 'bailout'};
|
|
247
|
+
return {kind: 'bailout', plural: isPlural};
|
|
244
248
|
} else if (fragmentSelector.kind === 'PluralReaderSelector') {
|
|
245
249
|
return {
|
|
246
250
|
kind: 'plural',
|
|
@@ -270,7 +274,9 @@ function useFragmentInternal_REACT_CACHE(
|
|
|
270
274
|
|} {
|
|
271
275
|
const fragmentSelector = getSelector(fragmentNode, fragmentRef);
|
|
272
276
|
|
|
273
|
-
|
|
277
|
+
const isPlural = fragmentNode?.metadata?.plural === true;
|
|
278
|
+
|
|
279
|
+
if (isPlural) {
|
|
274
280
|
invariant(
|
|
275
281
|
Array.isArray(fragmentRef),
|
|
276
282
|
'Relay: Expected fragment pointer%s for fragment `%s` to be ' +
|
|
@@ -294,7 +300,9 @@ function useFragmentInternal_REACT_CACHE(
|
|
|
294
300
|
);
|
|
295
301
|
}
|
|
296
302
|
invariant(
|
|
297
|
-
fragmentRef == null ||
|
|
303
|
+
fragmentRef == null ||
|
|
304
|
+
(isPlural && Array.isArray(fragmentRef) && fragmentRef.length === 0) ||
|
|
305
|
+
fragmentSelector != null,
|
|
298
306
|
'Relay: Expected to receive an object where `...%s` was spread, ' +
|
|
299
307
|
'but the fragment reference was not found`. This is most ' +
|
|
300
308
|
'likely the result of:\n' +
|
|
@@ -315,23 +323,41 @@ function useFragmentInternal_REACT_CACHE(
|
|
|
315
323
|
|
|
316
324
|
const environment = useRelayEnvironment();
|
|
317
325
|
const [rawState, setState] = useState<FragmentState>(() =>
|
|
318
|
-
getFragmentState(environment, fragmentSelector),
|
|
326
|
+
getFragmentState(environment, fragmentSelector, isPlural),
|
|
319
327
|
);
|
|
328
|
+
// On second look this separate rawState may not be needed at all, it can just be
|
|
329
|
+
// put into getFragmentState. Exception: can we properly handle the case where the
|
|
330
|
+
// fragmentRef goes from non-null to null?
|
|
331
|
+
const stateFromRawState = state => {
|
|
332
|
+
if (fragmentRef == null) {
|
|
333
|
+
return {kind: 'bailout', plural: false};
|
|
334
|
+
} else if (state.kind === 'plural' && state.snapshots.length === 0) {
|
|
335
|
+
return {kind: 'bailout', plural: true};
|
|
336
|
+
} else {
|
|
337
|
+
return state;
|
|
338
|
+
}
|
|
339
|
+
};
|
|
340
|
+
const state = stateFromRawState(rawState);
|
|
341
|
+
|
|
342
|
+
// This copy of the state we only update when something requires us to
|
|
343
|
+
// unsubscribe and re-subscribe, namely a changed environment or
|
|
344
|
+
// fragment selector.
|
|
345
|
+
const [rawSubscribedState, setSubscribedState] = useState(state);
|
|
346
|
+
// FIXME since this is used as an effect dependency, it needs to be memoized.
|
|
347
|
+
const subscribedState = stateFromRawState(rawSubscribedState);
|
|
320
348
|
|
|
321
349
|
const [previousFragmentSelector, setPreviousFragmentSelector] =
|
|
322
350
|
useState(fragmentSelector);
|
|
323
|
-
|
|
351
|
+
const [previousEnvironment, setPreviousEnvironment] = useState(environment);
|
|
352
|
+
if (
|
|
353
|
+
!areEqualSelectors(fragmentSelector, previousFragmentSelector) ||
|
|
354
|
+
environment !== previousEnvironment
|
|
355
|
+
) {
|
|
324
356
|
setPreviousFragmentSelector(fragmentSelector);
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
if (fragmentRef == null) {
|
|
330
|
-
state = {kind: 'bailout'};
|
|
331
|
-
} else if (rawState.kind === 'plural' && rawState.snapshots.length === 0) {
|
|
332
|
-
state = {kind: 'bailout'};
|
|
333
|
-
} else {
|
|
334
|
-
state = rawState;
|
|
357
|
+
setPreviousEnvironment(environment);
|
|
358
|
+
const newState = getFragmentState(environment, fragmentSelector, isPlural);
|
|
359
|
+
setState(newState);
|
|
360
|
+
setSubscribedState(newState); // This causes us to form a new subscription
|
|
335
361
|
}
|
|
336
362
|
|
|
337
363
|
// Handle the queries for any missing client edges; this may suspend.
|
|
@@ -371,7 +397,6 @@ function useFragmentInternal_REACT_CACHE(
|
|
|
371
397
|
}
|
|
372
398
|
|
|
373
399
|
// Subscriptions:
|
|
374
|
-
const isMountedRef = useRef(false);
|
|
375
400
|
const isListeningForUpdatesRef = useRef(true);
|
|
376
401
|
function enableStoreUpdates() {
|
|
377
402
|
isListeningForUpdatesRef.current = true;
|
|
@@ -380,25 +405,66 @@ function useFragmentInternal_REACT_CACHE(
|
|
|
380
405
|
function disableStoreUpdates() {
|
|
381
406
|
isListeningForUpdatesRef.current = false;
|
|
382
407
|
}
|
|
408
|
+
|
|
383
409
|
useEffect(() => {
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
410
|
+
handleMissedUpdates(environment, subscribedState, setState);
|
|
411
|
+
return subscribeToSnapshot(environment, subscribedState, updater => {
|
|
412
|
+
if (isListeningForUpdatesRef.current) {
|
|
413
|
+
setState(latestState => {
|
|
414
|
+
if (
|
|
415
|
+
latestState.snapshot?.selector !==
|
|
416
|
+
subscribedState.snapshot?.selector
|
|
417
|
+
) {
|
|
418
|
+
// Ignore updates to the subscription if it's for a previous fragment selector
|
|
419
|
+
// than the latest one to be rendered. This can happen if the store is updated
|
|
420
|
+
// after we re-render with a new fragmentRef prop but before the effect fires
|
|
421
|
+
// in which we unsubscribe to the old one and subscribe to the new one.
|
|
422
|
+
// (NB: it's safe to compare the selectors by reference because the selector
|
|
423
|
+
// is recycled into new snapshots.)
|
|
424
|
+
return latestState;
|
|
425
|
+
} else {
|
|
426
|
+
return updater(latestState);
|
|
427
|
+
}
|
|
428
|
+
});
|
|
429
|
+
}
|
|
430
|
+
});
|
|
431
|
+
}, [environment, subscribedState]);
|
|
391
432
|
|
|
392
433
|
const data = useMemo(
|
|
393
434
|
() =>
|
|
394
435
|
state.kind === 'bailout'
|
|
395
|
-
?
|
|
436
|
+
? state.plural
|
|
437
|
+
? []
|
|
438
|
+
: null
|
|
396
439
|
: state.kind === 'singular'
|
|
397
440
|
? state.snapshot.data
|
|
398
441
|
: state.snapshots.map(s => s.data),
|
|
399
442
|
[state],
|
|
400
443
|
);
|
|
401
444
|
|
|
445
|
+
if (__DEV__) {
|
|
446
|
+
if (
|
|
447
|
+
fragmentRef != null &&
|
|
448
|
+
(data === undefined ||
|
|
449
|
+
(Array.isArray(data) &&
|
|
450
|
+
data.length > 0 &&
|
|
451
|
+
data.every(d => d === undefined)))
|
|
452
|
+
) {
|
|
453
|
+
warning(
|
|
454
|
+
false,
|
|
455
|
+
'Relay: Expected to have been able to read non-null data for ' +
|
|
456
|
+
'fragment `%s` declared in ' +
|
|
457
|
+
'`%s`, since fragment reference was non-null. ' +
|
|
458
|
+
"Make sure that that `%s`'s parent isn't " +
|
|
459
|
+
'holding on to and/or passing a fragment reference for data that ' +
|
|
460
|
+
'has been deleted.',
|
|
461
|
+
fragmentNode.name,
|
|
462
|
+
hookDisplayName,
|
|
463
|
+
hookDisplayName,
|
|
464
|
+
);
|
|
465
|
+
}
|
|
466
|
+
}
|
|
467
|
+
|
|
402
468
|
if (__DEV__) {
|
|
403
469
|
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
404
470
|
useDebugValue({fragment: fragmentNode.name, data});
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*
|
|
7
|
+
* @emails oncall+relay
|
|
8
|
+
* @flow strict-local
|
|
9
|
+
* @format
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
// flowlint ambiguous-object-type:error
|
|
13
|
+
|
|
14
|
+
'use strict';
|
|
15
|
+
|
|
16
|
+
import type {Fragment, FragmentType, GraphQLTaggedNode} from 'relay-runtime';
|
|
17
|
+
|
|
18
|
+
const {useTrackLoadQueryInRender} = require('../loadQuery');
|
|
19
|
+
const useStaticFragmentNodeWarning = require('../useStaticFragmentNodeWarning');
|
|
20
|
+
const useFragmentInternal = require('./useFragmentInternal_REACT_CACHE');
|
|
21
|
+
const {useDebugValue} = require('react');
|
|
22
|
+
const {getFragment} = require('relay-runtime');
|
|
23
|
+
|
|
24
|
+
type HasSpread<TFragmentType> = {
|
|
25
|
+
+$fragmentSpreads: TFragmentType,
|
|
26
|
+
...
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
// if the key is non-nullable, return non-nullable value
|
|
30
|
+
declare function useFragment<TFragmentType: FragmentType, TData>(
|
|
31
|
+
fragment: Fragment<TFragmentType, TData>,
|
|
32
|
+
key: HasSpread<TFragmentType>,
|
|
33
|
+
): TData;
|
|
34
|
+
|
|
35
|
+
// if the key is nullable, return nullable value
|
|
36
|
+
declare function useFragment<TFragmentType: FragmentType, TData>(
|
|
37
|
+
fragment: Fragment<TFragmentType, TData>,
|
|
38
|
+
key: ?HasSpread<TFragmentType>,
|
|
39
|
+
): ?TData;
|
|
40
|
+
|
|
41
|
+
// if the key is a non-nullable array of keys, return non-nullable array
|
|
42
|
+
declare function useFragment<TFragmentType: FragmentType, TData>(
|
|
43
|
+
fragment: Fragment<TFragmentType, TData>,
|
|
44
|
+
key: $ReadOnlyArray<HasSpread<TFragmentType>>,
|
|
45
|
+
): TData;
|
|
46
|
+
|
|
47
|
+
// if the key is a nullable array of keys, return nullable array
|
|
48
|
+
declare function useFragment<TFragmentType: FragmentType, TData>(
|
|
49
|
+
fragment: Fragment<TFragmentType, TData>,
|
|
50
|
+
key: ?$ReadOnlyArray<HasSpread<TFragmentType>>,
|
|
51
|
+
): ?TData;
|
|
52
|
+
|
|
53
|
+
function useFragment(fragment: GraphQLTaggedNode, key: mixed): mixed {
|
|
54
|
+
// We need to use this hook in order to be able to track if
|
|
55
|
+
// loadQuery was called during render
|
|
56
|
+
useTrackLoadQueryInRender();
|
|
57
|
+
|
|
58
|
+
const fragmentNode = getFragment(fragment);
|
|
59
|
+
useStaticFragmentNodeWarning(fragmentNode, 'first argument of useFragment()');
|
|
60
|
+
const {data} = useFragmentInternal(fragmentNode, key, 'useFragment()');
|
|
61
|
+
if (__DEV__) {
|
|
62
|
+
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
63
|
+
useDebugValue({fragment: fragmentNode.name, data});
|
|
64
|
+
}
|
|
65
|
+
return data;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
module.exports = useFragment;
|