@react-navigation/core 7.21.2 → 7.21.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/lib/module/PreventRemoveContext.js.map +1 -1
  2. package/lib/module/PreventRemoveProvider.js +34 -24
  3. package/lib/module/PreventRemoveProvider.js.map +1 -1
  4. package/lib/module/createNavigationContainerRef.js +6 -8
  5. package/lib/module/createNavigationContainerRef.js.map +1 -1
  6. package/lib/module/getStateFromPath.js +82 -58
  7. package/lib/module/getStateFromPath.js.map +1 -1
  8. package/lib/module/useEventEmitter.js +1 -1
  9. package/lib/module/useEventEmitter.js.map +1 -1
  10. package/lib/module/useKeyedChildListeners.js +4 -2
  11. package/lib/module/useKeyedChildListeners.js.map +1 -1
  12. package/lib/module/useNavigationBuilder.js +3 -15
  13. package/lib/module/useNavigationBuilder.js.map +1 -1
  14. package/lib/module/useNavigationCache.js +5 -2
  15. package/lib/module/useNavigationCache.js.map +1 -1
  16. package/lib/module/useNavigationHelpers.js +27 -9
  17. package/lib/module/useNavigationHelpers.js.map +1 -1
  18. package/lib/module/useNavigationState.js +1 -1
  19. package/lib/module/useNavigationState.js.map +1 -1
  20. package/lib/module/useOnAction.js +1 -1
  21. package/lib/module/useOnAction.js.map +1 -1
  22. package/lib/module/useOptionsGetters.js +3 -1
  23. package/lib/module/useOptionsGetters.js.map +1 -1
  24. package/lib/module/usePreventRemove.js +9 -2
  25. package/lib/module/usePreventRemove.js.map +1 -1
  26. package/lib/module/useRouteCache.js +14 -7
  27. package/lib/module/useRouteCache.js.map +1 -1
  28. package/lib/module/useScheduleUpdate.js +8 -8
  29. package/lib/module/useScheduleUpdate.js.map +1 -1
  30. package/lib/module/useSyncState.js +4 -1
  31. package/lib/module/useSyncState.js.map +1 -1
  32. package/lib/typescript/src/PreventRemoveContext.d.ts +1 -0
  33. package/lib/typescript/src/PreventRemoveContext.d.ts.map +1 -1
  34. package/lib/typescript/src/PreventRemoveProvider.d.ts.map +1 -1
  35. package/lib/typescript/src/StaticNavigation.d.ts +2 -2
  36. package/lib/typescript/src/StaticNavigation.d.ts.map +1 -1
  37. package/lib/typescript/src/createNavigationContainerRef.d.ts.map +1 -1
  38. package/lib/typescript/src/getStateFromPath.d.ts.map +1 -1
  39. package/lib/typescript/src/types.d.ts +3 -3
  40. package/lib/typescript/src/types.d.ts.map +1 -1
  41. package/lib/typescript/src/useKeyedChildListeners.d.ts.map +1 -1
  42. package/lib/typescript/src/useNavigationBuilder.d.ts.map +1 -1
  43. package/lib/typescript/src/useNavigationCache.d.ts.map +1 -1
  44. package/lib/typescript/src/useNavigationHelpers.d.ts +2 -3
  45. package/lib/typescript/src/useNavigationHelpers.d.ts.map +1 -1
  46. package/lib/typescript/src/useOptionsGetters.d.ts.map +1 -1
  47. package/lib/typescript/src/usePreventRemove.d.ts.map +1 -1
  48. package/lib/typescript/src/usePreventRemoveContext.d.ts +1 -0
  49. package/lib/typescript/src/usePreventRemoveContext.d.ts.map +1 -1
  50. package/lib/typescript/src/useRouteCache.d.ts.map +1 -1
  51. package/lib/typescript/src/useScheduleUpdate.d.ts +5 -4
  52. package/lib/typescript/src/useScheduleUpdate.d.ts.map +1 -1
  53. package/lib/typescript/src/useSyncState.d.ts.map +1 -1
  54. package/package.json +2 -2
  55. package/src/PreventRemoveContext.tsx +1 -0
  56. package/src/PreventRemoveProvider.tsx +48 -43
  57. package/src/StaticNavigation.tsx +2 -2
  58. package/src/createNavigationContainerRef.tsx +12 -9
  59. package/src/getStateFromPath.tsx +112 -74
  60. package/src/types.tsx +18 -16
  61. package/src/useEventEmitter.tsx +1 -1
  62. package/src/useKeyedChildListeners.tsx +4 -2
  63. package/src/useNavigationBuilder.tsx +2 -16
  64. package/src/useNavigationCache.tsx +6 -2
  65. package/src/useNavigationHelpers.tsx +26 -9
  66. package/src/useNavigationState.tsx +1 -1
  67. package/src/useOnAction.tsx +1 -1
  68. package/src/useOptionsGetters.tsx +4 -1
  69. package/src/usePreventRemove.tsx +11 -2
  70. package/src/useRouteCache.tsx +19 -11
  71. package/src/useScheduleUpdate.tsx +8 -7
  72. package/src/useSyncState.tsx +5 -1
@@ -1 +1 @@
1
- {"version":3,"names":["React","PreventRemoveContext","createContext","undefined"],"sourceRoot":"../../src","sources":["PreventRemoveContext.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;;AAE9B;AACA;AACA;AACA;;AAGA,OAAO,MAAMC,oBAAoB,gBAAGD,KAAK,CAACE,aAAa,CAUrDC,SAAS,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","PreventRemoveContext","createContext","undefined"],"sourceRoot":"../../src","sources":["PreventRemoveContext.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;;AAE9B;AACA;AACA;AACA;;AAGA,OAAO,MAAMC,oBAAoB,gBAAGD,KAAK,CAACE,aAAa,CAWrDC,SAAS,CAAC","ignoreList":[]}
@@ -11,16 +11,12 @@ import { jsx as _jsx } from "react/jsx-runtime";
11
11
  * Util function to transform map of prevented routes to a simpler object.
12
12
  */
13
13
  const transformPreventedRoutes = preventedRoutesMap => {
14
- const preventedRoutesToTransform = [...preventedRoutesMap.values()];
15
- const preventedRoutes = preventedRoutesToTransform.reduce((acc, {
16
- routeKey,
17
- preventRemove
18
- }) => {
19
- acc[routeKey] = {
20
- preventRemove: acc[routeKey]?.preventRemove || preventRemove
14
+ const preventedRoutes = {};
15
+ for (const routeKey of preventedRoutesMap.values()) {
16
+ preventedRoutes[routeKey] = {
17
+ preventRemove: true
21
18
  };
22
- return acc;
23
- }, {});
19
+ }
24
20
  return preventedRoutes;
25
21
  };
26
22
 
@@ -32,36 +28,49 @@ export function PreventRemoveProvider({
32
28
  }) {
33
29
  const [parentId] = React.useState(() => nanoid());
34
30
  const [preventedRoutesMap, setPreventedRoutesMap] = React.useState(() => new Map());
31
+ const registry = React.useRef(new Map());
35
32
  const navigation = React.useContext(NavigationHelpersContext);
36
33
  const route = React.useContext(NavigationRouteContext);
37
34
  const preventRemoveContextValue = React.useContext(PreventRemoveContext);
38
35
  // take `setPreventRemove` from parent context - if exist it means we're in a nested context
39
36
  const setParentPrevented = preventRemoveContextValue?.setPreventRemove;
37
+ const notifyParentPrevented = preventRemoveContextValue?.notifyPreventRemove;
40
38
  const setPreventRemove = useLatestCallback((id, routeKey, preventRemove) => {
41
39
  if (preventRemove && (navigation == null || navigation?.getState().routes.every(route => route.key !== routeKey))) {
42
40
  throw new Error(`Couldn't find a route with the key ${routeKey}. Is your component inside NavigationContent?`);
43
41
  }
42
+ if (preventRemove) {
43
+ registry.current.set(id, routeKey);
44
+ } else {
45
+ registry.current.delete(id);
46
+ }
47
+ });
48
+ const notifyPreventRemove = useLatestCallback(() => {
49
+ // eslint-disable-next-line @eslint-react/hooks-extra/no-direct-set-state-in-use-effect
44
50
  setPreventedRoutesMap(prevPrevented => {
51
+ const nextPrevented = registry.current;
52
+ const hasChanged = prevPrevented.size !== nextPrevented.size || [...nextPrevented].some(([id, routeKey]) => prevPrevented.get(id) !== routeKey);
53
+
45
54
  // values haven't changed - do nothing
46
- if (routeKey === prevPrevented.get(id)?.routeKey && preventRemove === prevPrevented.get(id)?.preventRemove) {
55
+ if (!hasChanged) {
47
56
  return prevPrevented;
48
57
  }
49
- const nextPrevented = new Map(prevPrevented);
50
- if (preventRemove) {
51
- nextPrevented.set(id, {
52
- routeKey,
53
- preventRemove
54
- });
55
- } else {
56
- nextPrevented.delete(id);
57
- }
58
- return nextPrevented;
58
+ return new Map(nextPrevented);
59
59
  });
60
60
  });
61
- const isPrevented = [...preventedRoutesMap.values()].some(({
62
- preventRemove
63
- }) => preventRemove);
61
+
62
+ // Sync the state on every commit in case the registry was changed by a screen
63
+ // unmounting while hidden with `<Activity>`, where no passive effects run
64
+ // Also notify the parent so nested prevention propagates upwards
64
65
  React.useEffect(() => {
66
+ notifyPreventRemove();
67
+ notifyParentPrevented?.();
68
+ return () => {
69
+ notifyParentPrevented?.();
70
+ };
71
+ });
72
+ const isPrevented = preventedRoutesMap.size > 0;
73
+ React.useInsertionEffect(() => {
65
74
  if (route?.key !== undefined && setParentPrevented !== undefined) {
66
75
  // when route is defined (and setParentPrevented) it means we're in a nested stack
67
76
  // route.key then will be the route key of parent
@@ -74,8 +83,9 @@ export function PreventRemoveProvider({
74
83
  }, [parentId, isPrevented, route?.key, setParentPrevented]);
75
84
  const value = React.useMemo(() => ({
76
85
  setPreventRemove,
86
+ notifyPreventRemove,
77
87
  preventedRoutes: transformPreventedRoutes(preventedRoutesMap)
78
- }), [setPreventRemove, preventedRoutesMap]);
88
+ }), [setPreventRemove, notifyPreventRemove, preventedRoutesMap]);
79
89
  return /*#__PURE__*/_jsx(PreventRemoveContext.Provider, {
80
90
  value: value,
81
91
  children: children
@@ -1 +1 @@
1
- {"version":3,"names":["nanoid","React","useLatestCallback","NavigationHelpersContext","NavigationRouteContext","PreventRemoveContext","jsx","_jsx","transformPreventedRoutes","preventedRoutesMap","preventedRoutesToTransform","values","preventedRoutes","reduce","acc","routeKey","preventRemove","PreventRemoveProvider","children","parentId","useState","setPreventedRoutesMap","Map","navigation","useContext","route","preventRemoveContextValue","setParentPrevented","setPreventRemove","id","getState","routes","every","key","Error","prevPrevented","get","nextPrevented","set","delete","isPrevented","some","useEffect","undefined","value","useMemo","Provider"],"sourceRoot":"../../src","sources":["PreventRemoveProvider.tsx"],"mappings":";;AAAA,SAASA,MAAM,QAAQ,mBAAmB;AAC1C,OAAO,KAAKC,KAAK,MAAM,OAAO;AAC9B,OAAOC,iBAAiB,MAAM,qBAAqB;AAEnD,SAASC,wBAAwB,QAAQ,+BAA4B;AACrE,SAASC,sBAAsB,QAAQ,yBAAsB;AAC7D,SAEEC,oBAAoB,QACf,2BAAwB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAchC;AACA;AACA;AACA,MAAMC,wBAAwB,GAC5BC,kBAAsC,IAClB;EACpB,MAAMC,0BAA0B,GAAG,CAAC,GAAGD,kBAAkB,CAACE,MAAM,CAAC,CAAC,CAAC;EAEnE,MAAMC,eAAe,GAAGF,0BAA0B,CAACG,MAAM,CACvD,CAACC,GAAG,EAAE;IAAEC,QAAQ;IAAEC;EAAc,CAAC,KAAK;IACpCF,GAAG,CAACC,QAAQ,CAAC,GAAG;MACdC,aAAa,EAAEF,GAAG,CAACC,QAAQ,CAAC,EAAEC,aAAa,IAAIA;IACjD,CAAC;IACD,OAAOF,GAAG;EACZ,CAAC,EACD,CAAC,CACH,CAAC;EAED,OAAOF,eAAe;AACxB,CAAC;;AAED;AACA;AACA;AACA,OAAO,SAASK,qBAAqBA,CAAC;EAAEC;AAAgB,CAAC,EAAE;EACzD,MAAM,CAACC,QAAQ,CAAC,GAAGlB,KAAK,CAACmB,QAAQ,CAAC,MAAMpB,MAAM,CAAC,CAAC,CAAC;EACjD,MAAM,CAACS,kBAAkB,EAAEY,qBAAqB,CAAC,GAC/CpB,KAAK,CAACmB,QAAQ,CAAqB,MAAM,IAAIE,GAAG,CAAC,CAAC,CAAC;EAErD,MAAMC,UAAU,GAAGtB,KAAK,CAACuB,UAAU,CAACrB,wBAAwB,CAAC;EAC7D,MAAMsB,KAAK,GAAGxB,KAAK,CAACuB,UAAU,CAACpB,sBAAsB,CAAC;EAEtD,MAAMsB,yBAAyB,GAAGzB,KAAK,CAACuB,UAAU,CAACnB,oBAAoB,CAAC;EACxE;EACA,MAAMsB,kBAAkB,GAAGD,yBAAyB,EAAEE,gBAAgB;EAEtE,MAAMA,gBAAgB,GAAG1B,iBAAiB,CACxC,CAAC2B,EAAU,EAAEd,QAAgB,EAAEC,aAAsB,KAAW;IAC9D,IACEA,aAAa,KACZO,UAAU,IAAI,IAAI,IACjBA,UAAU,EACNO,QAAQ,CAAC,CAAC,CACXC,MAAM,CAACC,KAAK,CAAEP,KAAK,IAAKA,KAAK,CAACQ,GAAG,KAAKlB,QAAQ,CAAC,CAAC,EACrD;MACA,MAAM,IAAImB,KAAK,CACb,sCAAsCnB,QAAQ,+CAChD,CAAC;IACH;IAEAM,qBAAqB,CAAEc,aAAa,IAAK;MACvC;MACA,IACEpB,QAAQ,KAAKoB,aAAa,CAACC,GAAG,CAACP,EAAE,CAAC,EAAEd,QAAQ,IAC5CC,aAAa,KAAKmB,aAAa,CAACC,GAAG,CAACP,EAAE,CAAC,EAAEb,aAAa,EACtD;QACA,OAAOmB,aAAa;MACtB;MAEA,MAAME,aAAa,GAAG,IAAIf,GAAG,CAACa,aAAa,CAAC;MAE5C,IAAInB,aAAa,EAAE;QACjBqB,aAAa,CAACC,GAAG,CAACT,EAAE,EAAE;UACpBd,QAAQ;UACRC;QACF,CAAC,CAAC;MACJ,CAAC,MAAM;QACLqB,aAAa,CAACE,MAAM,CAACV,EAAE,CAAC;MAC1B;MAEA,OAAOQ,aAAa;IACtB,CAAC,CAAC;EACJ,CACF,CAAC;EAED,MAAMG,WAAW,GAAG,CAAC,GAAG/B,kBAAkB,CAACE,MAAM,CAAC,CAAC,CAAC,CAAC8B,IAAI,CACvD,CAAC;IAAEzB;EAAc,CAAC,KAAKA,aACzB,CAAC;EAEDf,KAAK,CAACyC,SAAS,CAAC,MAAM;IACpB,IAAIjB,KAAK,EAAEQ,GAAG,KAAKU,SAAS,IAAIhB,kBAAkB,KAAKgB,SAAS,EAAE;MAChE;MACA;MACAhB,kBAAkB,CAACR,QAAQ,EAAEM,KAAK,CAACQ,GAAG,EAAEO,WAAW,CAAC;MACpD,OAAO,MAAM;QACXb,kBAAkB,CAACR,QAAQ,EAAEM,KAAK,CAACQ,GAAG,EAAE,KAAK,CAAC;MAChD,CAAC;IACH;IAEA;EACF,CAAC,EAAE,CAACd,QAAQ,EAAEqB,WAAW,EAAEf,KAAK,EAAEQ,GAAG,EAAEN,kBAAkB,CAAC,CAAC;EAE3D,MAAMiB,KAAK,GAAG3C,KAAK,CAAC4C,OAAO,CACzB,OAAO;IACLjB,gBAAgB;IAChBhB,eAAe,EAAEJ,wBAAwB,CAACC,kBAAkB;EAC9D,CAAC,CAAC,EACF,CAACmB,gBAAgB,EAAEnB,kBAAkB,CACvC,CAAC;EAED,oBACEF,IAAA,CAACF,oBAAoB,CAACyC,QAAQ;IAACF,KAAK,EAAEA,KAAM;IAAA1B,QAAA,EACzCA;EAAQ,CACoB,CAAC;AAEpC","ignoreList":[]}
1
+ {"version":3,"names":["nanoid","React","useLatestCallback","NavigationHelpersContext","NavigationRouteContext","PreventRemoveContext","jsx","_jsx","transformPreventedRoutes","preventedRoutesMap","preventedRoutes","routeKey","values","preventRemove","PreventRemoveProvider","children","parentId","useState","setPreventedRoutesMap","Map","registry","useRef","navigation","useContext","route","preventRemoveContextValue","setParentPrevented","setPreventRemove","notifyParentPrevented","notifyPreventRemove","id","getState","routes","every","key","Error","current","set","delete","prevPrevented","nextPrevented","hasChanged","size","some","get","useEffect","isPrevented","useInsertionEffect","undefined","value","useMemo","Provider"],"sourceRoot":"../../src","sources":["PreventRemoveProvider.tsx"],"mappings":"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","ignoreList":[]}
@@ -5,12 +5,13 @@ export const NOT_INITIALIZED_ERROR = "The 'navigation' object hasn't been initia
5
5
  export function createNavigationContainerRef() {
6
6
  const methods = [...Object.keys(CommonActions), 'addListener', 'removeListener', 'resetRoot', 'dispatch', 'isFocused', 'canGoBack', 'getRootState', 'getState', 'getParent', 'getCurrentRoute', 'getCurrentOptions'];
7
7
  const listeners = {};
8
+ let current = null;
8
9
  const removeListener = (event, callback) => {
9
10
  if (listeners[event]) {
10
11
  listeners[event] = listeners[event].filter(cb => cb !== callback);
11
12
  }
13
+ current?.removeListener(event, callback);
12
14
  };
13
- let current = null;
14
15
  const ref = {
15
16
  get current() {
16
17
  return current;
@@ -33,7 +34,10 @@ export function createNavigationContainerRef() {
33
34
  },
34
35
  ...methods.reduce((acc, name) => {
35
36
  acc[name] = (...args) => {
36
- if (current == null) {
37
+ if (name === 'removeListener') {
38
+ const [event, callback] = args;
39
+ removeListener(event, callback);
40
+ } else if (current == null) {
37
41
  switch (name) {
38
42
  case 'addListener':
39
43
  {
@@ -42,12 +46,6 @@ export function createNavigationContainerRef() {
42
46
  listeners[event].push(callback);
43
47
  return () => removeListener(event, callback);
44
48
  }
45
- case 'removeListener':
46
- {
47
- const [event, callback] = args;
48
- removeListener(event, callback);
49
- break;
50
- }
51
49
  default:
52
50
  console.error(NOT_INITIALIZED_ERROR);
53
51
  }
@@ -1 +1 @@
1
- {"version":3,"names":["CommonActions","NOT_INITIALIZED_ERROR","createNavigationContainerRef","methods","Object","keys","listeners","removeListener","event","callback","filter","cb","current","ref","value","entries","forEach","callbacks","addListener","isReady","reduce","acc","name","args","push","console","error"],"sourceRoot":"../../src","sources":["createNavigationContainerRef.tsx"],"mappings":";;AAAA,SAASA,aAAa,QAAQ,2BAA2B;AAQzD,OAAO,MAAMC,qBAAqB,GAChC,+QAA+Q;AAEjR,OAAO,SAASC,4BAA4BA,CAAA,EAEM;EAChD,MAAMC,OAAO,GAAG,CACd,GAAGC,MAAM,CAACC,IAAI,CAACL,aAAa,CAAC,EAC7B,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,UAAU,EACV,WAAW,EACX,WAAW,EACX,cAAc,EACd,UAAU,EACV,WAAW,EACX,iBAAiB,EACjB,mBAAmB,CACX;EAEV,MAAMM,SAAuD,GAAG,CAAC,CAAC;EAElE,MAAMC,cAAc,GAAGA,CACrBC,KAAa,EACbC,QAAkC,KAC/B;IACH,IAAIH,SAAS,CAACE,KAAK,CAAC,EAAE;MACpBF,SAAS,CAACE,KAAK,CAAC,GAAGF,SAAS,CAACE,KAAK,CAAC,CAACE,MAAM,CAAEC,EAAE,IAAKA,EAAE,KAAKF,QAAQ,CAAC;IACrE;EACF,CAAC;EAED,IAAIG,OAAiD,GAAG,IAAI;EAE5D,MAAMC,GAAiD,GAAG;IACxD,IAAID,OAAOA,CAAA,EAAG;MACZ,OAAOA,OAAO;IAChB,CAAC;IACD,IAAIA,OAAOA,CAACE,KAA+C,EAAE;MAC3DF,OAAO,GAAGE,KAAK;MAEf,IAAIA,KAAK,IAAI,IAAI,EAAE;QACjBV,MAAM,CAACW,OAAO,CAACT,SAAS,CAAC,CAACU,OAAO,CAAC,CAAC,CAACR,KAAK,EAAES,SAAS,CAAC,KAAK;UACxDA,SAAS,CAACD,OAAO,CAAEP,QAAQ,IAAK;YAC9BK,KAAK,CAACI,WAAW,CACfV,KAAK,EACLC,QACF,CAAC;UACH,CAAC,CAAC;QACJ,CAAC,CAAC;MACJ;IACF,CAAC;IACDU,OAAO,EAAEA,CAAA,KAAM;MACb,IAAIP,OAAO,IAAI,IAAI,EAAE;QACnB,OAAO,KAAK;MACd;MAEA,OAAOA,OAAO,CAACO,OAAO,CAAC,CAAC;IAC1B,CAAC;IACD,GAAGhB,OAAO,CAACiB,MAAM,CAAM,CAACC,GAAG,EAAEC,IAAI,KAAK;MACpCD,GAAG,CAACC,IAAI,CAAC,GAAG,CAAC,GAAGC,IAAW,KAAK;QAC9B,IAAIX,OAAO,IAAI,IAAI,EAAE;UACnB,QAAQU,IAAI;YACV,KAAK,aAAa;cAAE;gBAClB,MAAM,CAACd,KAAK,EAAEC,QAAQ,CAAC,GAAGc,IAAI;gBAE9BjB,SAAS,CAACE,KAAK,CAAC,GAAGF,SAAS,CAACE,KAAK,CAAC,IAAI,EAAE;gBACzCF,SAAS,CAACE,KAAK,CAAC,CAACgB,IAAI,CAACf,QAAQ,CAAC;gBAE/B,OAAO,MAAMF,cAAc,CAACC,KAAK,EAAEC,QAAQ,CAAC;cAC9C;YACA,KAAK,gBAAgB;cAAE;gBACrB,MAAM,CAACD,KAAK,EAAEC,QAAQ,CAAC,GAAGc,IAAI;gBAE9BhB,cAAc,CAACC,KAAK,EAAEC,QAAQ,CAAC;gBAC/B;cACF;YACA;cACEgB,OAAO,CAACC,KAAK,CAACzB,qBAAqB,CAAC;UACxC;QACF,CAAC,MAAM;UACL;UACA,OAAOW,OAAO,CAACU,IAAI,CAAC,CAAC,GAAGC,IAAI,CAAC;QAC/B;MACF,CAAC;MACD,OAAOF,GAAG;IACZ,CAAC,EAAE,CAAC,CAAC;EACP,CAAC;EAED,OAAOR,GAAG;AACZ","ignoreList":[]}
1
+ {"version":3,"names":["CommonActions","NOT_INITIALIZED_ERROR","createNavigationContainerRef","methods","Object","keys","listeners","current","removeListener","event","callback","filter","cb","ref","value","entries","forEach","callbacks","addListener","isReady","reduce","acc","name","args","push","console","error"],"sourceRoot":"../../src","sources":["createNavigationContainerRef.tsx"],"mappings":";;AAAA,SAASA,aAAa,QAAQ,2BAA2B;AAQzD,OAAO,MAAMC,qBAAqB,GAChC,+QAA+Q;AAEjR,OAAO,SAASC,4BAA4BA,CAAA,EAEM;EAChD,MAAMC,OAAO,GAAG,CACd,GAAGC,MAAM,CAACC,IAAI,CAACL,aAAa,CAAC,EAC7B,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,UAAU,EACV,WAAW,EACX,WAAW,EACX,cAAc,EACd,UAAU,EACV,WAAW,EACX,iBAAiB,EACjB,mBAAmB,CACX;EAEV,MAAMM,SAAuD,GAAG,CAAC,CAAC;EAElE,IAAIC,OAAiD,GAAG,IAAI;EAE5D,MAAMC,cAAc,GAAGA,CACrBC,KAAa,EACbC,QAAkC,KAC/B;IACH,IAAIJ,SAAS,CAACG,KAAK,CAAC,EAAE;MACpBH,SAAS,CAACG,KAAK,CAAC,GAAGH,SAAS,CAACG,KAAK,CAAC,CAACE,MAAM,CAAEC,EAAE,IAAKA,EAAE,KAAKF,QAAQ,CAAC;IACrE;IAEAH,OAAO,EAAEC,cAAc,CACrBC,KAAK,EACLC,QACF,CAAC;EACH,CAAC;EAED,MAAMG,GAAiD,GAAG;IACxD,IAAIN,OAAOA,CAAA,EAAG;MACZ,OAAOA,OAAO;IAChB,CAAC;IACD,IAAIA,OAAOA,CAACO,KAA+C,EAAE;MAC3DP,OAAO,GAAGO,KAAK;MAEf,IAAIA,KAAK,IAAI,IAAI,EAAE;QACjBV,MAAM,CAACW,OAAO,CAACT,SAAS,CAAC,CAACU,OAAO,CAAC,CAAC,CAACP,KAAK,EAAEQ,SAAS,CAAC,KAAK;UACxDA,SAAS,CAACD,OAAO,CAAEN,QAAQ,IAAK;YAC9BI,KAAK,CAACI,WAAW,CACfT,KAAK,EACLC,QACF,CAAC;UACH,CAAC,CAAC;QACJ,CAAC,CAAC;MACJ;IACF,CAAC;IACDS,OAAO,EAAEA,CAAA,KAAM;MACb,IAAIZ,OAAO,IAAI,IAAI,EAAE;QACnB,OAAO,KAAK;MACd;MAEA,OAAOA,OAAO,CAACY,OAAO,CAAC,CAAC;IAC1B,CAAC;IACD,GAAGhB,OAAO,CAACiB,MAAM,CAAM,CAACC,GAAG,EAAEC,IAAI,KAAK;MACpCD,GAAG,CAACC,IAAI,CAAC,GAAG,CAAC,GAAGC,IAAW,KAAK;QAC9B,IAAID,IAAI,KAAK,gBAAgB,EAAE;UAC7B,MAAM,CAACb,KAAK,EAAEC,QAAQ,CAAC,GAAGa,IAAI;UAE9Bf,cAAc,CAACC,KAAK,EAAEC,QAAQ,CAAC;QACjC,CAAC,MAAM,IAAIH,OAAO,IAAI,IAAI,EAAE;UAC1B,QAAQe,IAAI;YACV,KAAK,aAAa;cAAE;gBAClB,MAAM,CAACb,KAAK,EAAEC,QAAQ,CAAC,GAAGa,IAAI;gBAE9BjB,SAAS,CAACG,KAAK,CAAC,GAAGH,SAAS,CAACG,KAAK,CAAC,IAAI,EAAE;gBACzCH,SAAS,CAACG,KAAK,CAAC,CAACe,IAAI,CAACd,QAAQ,CAAC;gBAE/B,OAAO,MAAMF,cAAc,CAACC,KAAK,EAAEC,QAAQ,CAAC;cAC9C;YACA;cACEe,OAAO,CAACC,KAAK,CAACzB,qBAAqB,CAAC;UACxC;QACF,CAAC,MAAM;UACL;UACA,OAAOM,OAAO,CAACe,IAAI,CAAC,CAAC,GAAGC,IAAI,CAAC;QAC/B;MACF,CAAC;MACD,OAAOF,GAAG;IACZ,CAAC,EAAE,CAAC,CAAC;EACP,CAAC;EAED,OAAOR,GAAG;AACZ","ignoreList":[]}
@@ -61,22 +61,21 @@ export function getStateFromPath(path, options) {
61
61
  // Remove the prefix from the path
62
62
  remaining = remaining.replace(normalizedPrefix, '');
63
63
  }
64
- const decodedSegments = [];
65
- for (const segment of remaining.split('/')) {
66
- if (!segment) {
67
- continue;
68
- }
69
- try {
70
- decodedSegments.push(decodeURIComponent(segment));
71
- } catch {
72
- return undefined;
73
- }
74
- }
75
64
  if (screens === undefined) {
76
65
  // When no config is specified, use the path segments as route names
77
- const routes = decodedSegments.map(name => ({
78
- name
79
- }));
66
+ const routes = [];
67
+ for (const segment of remaining.split('/')) {
68
+ if (!segment) {
69
+ continue;
70
+ }
71
+ try {
72
+ routes.push({
73
+ name: decodeURIComponent(segment)
74
+ });
75
+ } catch {
76
+ return undefined;
77
+ }
78
+ }
80
79
  if (routes.length) {
81
80
  return createNestedStateObject(path, routes, initialRoutes);
82
81
  }
@@ -96,10 +95,17 @@ export function getStateFromPath(path, options) {
96
95
 
97
96
  // We match the whole path against the regex instead of segments
98
97
  // This makes sure matches such as wildcard will catch any unmatched routes, even if nested
98
+ const firstRawSegment = remaining.split('/')[0];
99
+ let firstDecodedSegment;
100
+ try {
101
+ firstDecodedSegment = firstRawSegment != null ? decodeURIComponent(firstRawSegment) : undefined;
102
+ } catch {
103
+ firstDecodedSegment = undefined;
104
+ }
99
105
  const {
100
106
  routes,
101
107
  config
102
- } = matchAgainstConfigs(remaining, decodedSegments, configs, configsByScreen);
108
+ } = matchAgainstConfigs(remaining, firstDecodedSegment, firstRawSegment, configs, configsByScreen);
103
109
  if (routes === undefined || config === undefined) {
104
110
  return undefined;
105
111
  }
@@ -124,10 +130,14 @@ function prepareConfigResources(options) {
124
130
  }
125
131
  const initialRoutes = getInitialRoutes(options);
126
132
  const configs = getSortedNormalizedConfigs(initialRoutes, options?.screens);
127
- checkForDuplicatedConfigs(configs);
128
133
  const configsByScreen = {};
134
+ const configsByPattern = new Map();
129
135
  for (const c of configs) {
130
136
  (configsByScreen[c.screen] ??= []).push(c);
137
+ const pattern = c.segments.join('/');
138
+ const existing = configsByPattern.get(pattern);
139
+ checkForDuplicatedConfigs(existing, c, pattern);
140
+ configsByPattern.set(pattern, c);
131
141
  }
132
142
  return {
133
143
  initialRoutes,
@@ -224,32 +234,26 @@ function getSortedNormalizedConfigs(initialRoutes, screens = {}) {
224
234
  return a.segments.length - b.segments.length;
225
235
  });
226
236
  }
227
- function checkForDuplicatedConfigs(configs) {
228
- // Check for duplicate patterns in the config
229
- configs.reduce((acc, config) => {
230
- const pattern = config.segments.join('/');
231
- if (acc[pattern]) {
232
- const a = acc[pattern].routeNames;
233
- const b = config.routeNames;
234
237
 
235
- // It's not a problem if the path string omitted from a inner most screen
236
- // For example, it's ok if a path resolves to `A > B > C` or `A > B`
237
- const intersects = a.length > b.length ? b.every((it, i) => a[i] === it) : a.every((it, i) => b[i] === it);
238
- if (!intersects) {
239
- throw new Error(`Found conflicting screens with the same pattern. The pattern '${pattern}' resolves to both '${a.join(' > ')}' and '${b.join(' > ')}'. Patterns must be unique and cannot resolve to more than one screen.`);
240
- }
241
- }
242
- return Object.assign(acc, {
243
- [pattern]: config
244
- });
245
- }, {});
238
+ // Throw if two configs resolve to the same pattern but conflicting screens
239
+ function checkForDuplicatedConfigs(existing, config, pattern) {
240
+ if (!existing) {
241
+ return;
242
+ }
243
+ const a = existing.routeNames;
244
+ const b = config.routeNames;
245
+
246
+ // It's not a problem if the path string omitted from a inner most screen
247
+ // For example, it's ok if a path resolves to `A > B > C` or `A > B`
248
+ const intersects = a.length > b.length ? arrayStartsWith(a, b) : arrayStartsWith(b, a);
249
+ if (!intersects) {
250
+ throw new Error(`Found conflicting screens with the same pattern. The pattern '${pattern}' resolves to both '${a.join(' > ')}' and '${b.join(' > ')}'. Patterns must be unique and cannot resolve to more than one screen.`);
251
+ }
246
252
  }
247
- const matchAgainstConfigs = (remaining, decodedSegments, configs, configsByScreen) => {
253
+ const matchAgainstConfigs = (remaining, firstDecodedSegment, firstRawSegment, configs, configsByScreen) => {
248
254
  let routes;
249
255
  let remainingPath = remaining;
250
256
  let matchingConfig;
251
- const firstDecodedSegment = decodedSegments[0];
252
- const firstRawSegment = remainingPath.split('/')[0];
253
257
 
254
258
  // Go through all configs, and see if the next path segment matches our regex
255
259
  for (const config of configs) {
@@ -263,20 +267,19 @@ const matchAgainstConfigs = (remaining, decodedSegments, configs, configsByScree
263
267
 
264
268
  // If our regex matches, we need to extract params from the path
265
269
  if (match) {
266
- routes = [];
267
- matchingConfig = config;
270
+ const matchedRoutes = [];
271
+ let hasInvalidParam = false;
268
272
  for (const routeName of config.routeNames) {
269
273
  // Check matching name AND pattern in case same screen is used at different levels in config
270
274
  const routeConfig = configsByScreen[routeName]?.find(c => arrayStartsWith(config.segments, c.segments));
271
275
  let params;
272
276
  if (routeConfig && match.groups) {
273
277
  const paramEntries = [];
274
- for (const [key, value] of Object.entries(match.groups)) {
275
- const index = Number(key.replace('param_', ''));
276
- const param = routeConfig.params.find(it => it.index === index);
277
- if (param?.screen !== routeName || !param.name) {
278
+ for (const param of routeConfig.params) {
279
+ if (param.screen !== routeName) {
278
280
  continue;
279
281
  }
282
+ const value = match.groups[`param_${param.index}`];
280
283
  if (value == null) {
281
284
  paramEntries.push([param.name, undefined]);
282
285
  continue;
@@ -285,29 +288,35 @@ const matchAgainstConfigs = (remaining, decodedSegments, configs, configsByScree
285
288
  try {
286
289
  decoded = decodeURIComponent(value);
287
290
  } catch {
288
- return {
289
- routes: undefined,
290
- remainingPath
291
- };
291
+ hasInvalidParam = true;
292
+ break;
292
293
  }
293
294
  const parser = routeConfig.parse?.[param.name];
294
295
  paramEntries.push([param.name, parser ? parser(decoded) : decoded]);
295
296
  }
297
+ if (hasInvalidParam) {
298
+ break;
299
+ }
296
300
  if (paramEntries.length) {
297
301
  params = Object.fromEntries(paramEntries);
298
302
  }
299
303
  }
300
304
  if (params && Object.keys(params).length) {
301
- routes.push({
305
+ matchedRoutes.push({
302
306
  name: routeName,
303
307
  params
304
308
  });
305
309
  } else {
306
- routes.push({
310
+ matchedRoutes.push({
307
311
  name: routeName
308
312
  });
309
313
  }
310
314
  }
315
+ if (hasInvalidParam) {
316
+ continue;
317
+ }
318
+ routes = matchedRoutes;
319
+ matchingConfig = config;
311
320
  remainingPath = remainingPath.replace(match[0], '');
312
321
  break;
313
322
  }
@@ -410,12 +419,12 @@ const createConfigItem = (screen, routeNames, paths, parse, hasNestedScreens = f
410
419
 
411
420
  // Parse the path string into parts for easier matching
412
421
  for (const {
413
- screen,
422
+ screen: pathScreen,
414
423
  path
415
424
  } of paths) {
416
425
  parts.push(...getPatternParts(path).map(part => ({
417
426
  ...part,
418
- screen
427
+ screen: pathScreen
419
428
  })));
420
429
  }
421
430
  const regex = parts.length ? new RegExp(`^(${parts.map((it, i) => {
@@ -426,11 +435,21 @@ const createConfigItem = (screen, routeNames, paths, parse, hasNestedScreens = f
426
435
  return `${it.segment === '*' ? '.*' : escape(it.segment)}\\/`;
427
436
  }).join('')})$`) : undefined;
428
437
  const segments = parts.map(it => it.segment);
429
- const params = parts.map((it, i) => it.param ? {
430
- index: i,
431
- screen: it.screen,
432
- name: it.param
433
- } : null).filter(it => it != null);
438
+ const params = [];
439
+ const pathParamNames = new Set();
440
+ for (const [index, part] of parts.entries()) {
441
+ if (!part.param) {
442
+ continue;
443
+ }
444
+ params.push({
445
+ index,
446
+ screen: part.screen,
447
+ name: part.param
448
+ });
449
+ if (part.screen === screen) {
450
+ pathParamNames.add(part.param);
451
+ }
452
+ }
434
453
  return {
435
454
  screen,
436
455
  regex,
@@ -439,6 +458,7 @@ const createConfigItem = (screen, routeNames, paths, parse, hasNestedScreens = f
439
458
  routeNames,
440
459
  parse,
441
460
  explicitParamNames: getExplicitParamNames(parse),
461
+ pathParamNames,
442
462
  hasNestedScreens
443
463
  };
444
464
  };
@@ -523,7 +543,7 @@ const createNestedStateObject = (path, routes, initialRoutes, routeConfig) => {
523
543
  }
524
544
  route = findFocusedRoute(state);
525
545
  route.path = path.replace(/\/$/, '');
526
- const params = parseQueryParams(path, routeConfig?.parse, routeConfig?.explicitParamNames, routeConfig?.hasNestedScreens, route.params);
546
+ const params = parseQueryParams(path, routeConfig?.parse, routeConfig?.pathParamNames, routeConfig?.explicitParamNames, routeConfig?.hasNestedScreens, route.params);
527
547
  if (params) {
528
548
  route.params = {
529
549
  ...route.params,
@@ -532,9 +552,13 @@ const createNestedStateObject = (path, routes, initialRoutes, routeConfig) => {
532
552
  }
533
553
  return state;
534
554
  };
535
- const parseQueryParams = (path, parseConfig, explicitParamNames, hasNestedScreens = false, routeParams) => {
555
+ const parseQueryParams = (path, parseConfig, pathParamNames = new Set(), explicitParamNames, hasNestedScreens = false, routeParams) => {
536
556
  const query = path.split('?')[1];
537
557
  const params = queryString.parse(query);
558
+ for (const name of pathParamNames) {
559
+ // eslint-disable-next-line @typescript-eslint/no-dynamic-delete
560
+ delete params[name];
561
+ }
538
562
  if (parseConfig) {
539
563
  Object.keys(params).forEach(name => {
540
564
  if (Object.hasOwnProperty.call(parseConfig, name) && typeof params[name] === 'string') {
@@ -1 +1 @@
1
- {"version":3,"names":["escape","queryString","arrayStartsWith","findFocusedRoute","getPatternParts","isArrayEqual","validatePathConfig","NESTED_SCREEN_PARAM_NAMES","getExplicitParamNames","parse","names","Object","entries","map","name","length","Set","undefined","getStateFromPath","path","options","initialRoutes","configs","configsByScreen","getConfigResources","screens","remaining","replace","endsWith","prefix","normalizedPrefix","startsWith","decodedSegments","segment","split","push","decodeURIComponent","routes","createNestedStateObject","match","find","config","segments","join","routeNames","matchAgainstConfigs","cachedConfigResources","WeakMap","prepareConfigResources","cached","get","resources","set","process","env","NODE_ENV","getInitialRoutes","getSortedNormalizedConfigs","checkForDuplicatedConfigs","c","screen","initialRouteName","parentScreens","concat","keys","key","createNormalizedConfigs","sort","a","b","localeCompare","i","Math","max","aWildCard","bWildCard","aParam","bParam","aRegex","includes","bRegex","reduce","acc","pattern","intersects","every","it","Error","assign","remainingPath","matchingConfig","firstDecodedSegment","firstRawSegment","regex","canMatchFirstSegment","routeName","routeConfig","params","groups","paramEntries","value","index","Number","param","decoded","parser","fromEntries","configSegment","decodedSegment","rawSegment","initials","paths","createConfigItem","nestedScreens","hasNestedScreens","exact","aliasConfigs","alias","forEach","nestedConfig","result","pop","parts","part","RegExp","reg","optional","filter","explicitParamNames","findInitialRoute","sameParents","createStateObject","initialRoute","route","isEmpty","state","shift","nestedState","nestedStateIndex","parseQueryParams","parseConfig","routeParams","query","hasOwnProperty","call","has"],"sourceRoot":"../../src","sources":["getStateFromPath.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["escape","queryString","arrayStartsWith","findFocusedRoute","getPatternParts","isArrayEqual","validatePathConfig","NESTED_SCREEN_PARAM_NAMES","getExplicitParamNames","parse","names","Object","entries","map","name","length","Set","undefined","getStateFromPath","path","options","initialRoutes","configs","configsByScreen","getConfigResources","screens","remaining","replace","endsWith","prefix","normalizedPrefix","startsWith","routes","segment","split","push","decodeURIComponent","createNestedStateObject","match","find","config","segments","join","routeNames","firstRawSegment","firstDecodedSegment","matchAgainstConfigs","cachedConfigResources","WeakMap","prepareConfigResources","cached","get","resources","set","process","env","NODE_ENV","getInitialRoutes","getSortedNormalizedConfigs","configsByPattern","Map","c","screen","pattern","existing","checkForDuplicatedConfigs","initialRouteName","parentScreens","concat","keys","key","createNormalizedConfigs","sort","a","b","localeCompare","i","Math","max","aWildCard","bWildCard","aParam","bParam","aRegex","includes","bRegex","intersects","Error","remainingPath","matchingConfig","regex","canMatchFirstSegment","matchedRoutes","hasInvalidParam","routeName","routeConfig","params","groups","paramEntries","param","value","index","decoded","parser","fromEntries","configSegment","decodedSegment","rawSegment","initials","paths","createConfigItem","nestedScreens","hasNestedScreens","exact","aliasConfigs","alias","forEach","nestedConfig","result","pop","parts","pathScreen","part","RegExp","it","reg","optional","pathParamNames","add","explicitParamNames","findInitialRoute","sameParents","createStateObject","initialRoute","route","isEmpty","state","shift","nestedState","nestedStateIndex","parseQueryParams","parseConfig","routeParams","query","hasOwnProperty","call","has"],"sourceRoot":"../../src","sources":["getStateFromPath.tsx"],"mappings":"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","ignoreList":[]}
@@ -7,7 +7,7 @@ import * as React from 'react';
7
7
  export function useEventEmitter(listen, onPostEmit) {
8
8
  const listenRef = React.useRef(listen);
9
9
  const onPostEmitRef = React.useRef(onPostEmit);
10
- React.useEffect(() => {
10
+ React.useInsertionEffect(() => {
11
11
  listenRef.current = listen;
12
12
  onPostEmitRef.current = onPostEmit;
13
13
  });
@@ -1 +1 @@
1
- {"version":3,"names":["React","useEventEmitter","listen","onPostEmit","listenRef","useRef","onPostEmitRef","useEffect","current","listeners","Object","create","useCallback","target","removeListener","type","callback","callbacks","undefined","index","indexOf","splice","addListener","push","removed","emit","data","canPreventDefault","items","slice","concat","keys","map","t","filter","cb","i","self","lastIndexOf","descriptors","enumerable","value","defaultPrevented","get","preventDefault","event","defineProperties","forEach","useMemo"],"sourceRoot":"../../src","sources":["useEventEmitter.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useEventEmitter","listen","onPostEmit","listenRef","useRef","onPostEmitRef","useInsertionEffect","current","listeners","Object","create","useCallback","target","removeListener","type","callback","callbacks","undefined","index","indexOf","splice","addListener","push","removed","emit","data","canPreventDefault","items","slice","concat","keys","map","t","filter","cb","i","self","lastIndexOf","descriptors","enumerable","value","defaultPrevented","get","preventDefault","event","defineProperties","forEach","useMemo"],"sourceRoot":"../../src","sources":["useEventEmitter.tsx"],"mappings":"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","ignoreList":[]}
@@ -15,8 +15,10 @@ export function useKeyedChildListeners() {
15
15
  // @ts-expect-error: according to ref stated above you can use `key` to index type
16
16
  keyedListeners[type][key] = listener;
17
17
  return () => {
18
- // @ts-expect-error: according to ref stated above you can use `key` to index type
19
- keyedListeners[type][key] = undefined;
18
+ if (keyedListeners[type][key] === listener) {
19
+ // @ts-expect-error: according to ref stated above you can use `key` to index type
20
+ keyedListeners[type][key] = undefined;
21
+ }
20
22
  };
21
23
  }, [keyedListeners]);
22
24
  return {
@@ -1 +1 @@
1
- {"version":3,"names":["React","useKeyedChildListeners","current","keyedListeners","useRef","Object","assign","create","getState","beforeRemove","addKeyedListener","useCallback","type","key","listener","undefined"],"sourceRoot":"../../src","sources":["useKeyedChildListeners.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAI9B;AACA;AACA;AACA,OAAO,SAASC,sBAAsBA,CAAA,EAAG;EACvC,MAAM;IAAEC,OAAO,EAAEC;EAAe,CAAC,GAAGH,KAAK,CAACI,MAAM,CAM9CC,MAAM,CAACC,MAAM,CAACD,MAAM,CAACE,MAAM,CAAC,IAAI,CAAC,EAAE;IACjCC,QAAQ,EAAE,CAAC,CAAC;IACZC,YAAY,EAAE,CAAC;EACjB,CAAC,CACH,CAAC;EAED,MAAMC,gBAAgB,GAAGV,KAAK,CAACW,WAAW,CACxC,CACEC,IAAO,EACPC,GAAW,EACXC,QAA6B,KAC1B;IACH;IACAX,cAAc,CAACS,IAAI,CAAC,CAACC,GAAG,CAAC,GAAGC,QAAQ;IAEpC,OAAO,MAAM;MACX;MACAX,cAAc,CAACS,IAAI,CAAC,CAACC,GAAG,CAAC,GAAGE,SAAS;IACvC,CAAC;EACH,CAAC,EACD,CAACZ,cAAc,CACjB,CAAC;EAED,OAAO;IACLA,cAAc;IACdO;EACF,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"names":["React","useKeyedChildListeners","current","keyedListeners","useRef","Object","assign","create","getState","beforeRemove","addKeyedListener","useCallback","type","key","listener","undefined"],"sourceRoot":"../../src","sources":["useKeyedChildListeners.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAI9B;AACA;AACA;AACA,OAAO,SAASC,sBAAsBA,CAAA,EAAG;EACvC,MAAM;IAAEC,OAAO,EAAEC;EAAe,CAAC,GAAGH,KAAK,CAACI,MAAM,CAM9CC,MAAM,CAACC,MAAM,CAACD,MAAM,CAACE,MAAM,CAAC,IAAI,CAAC,EAAE;IACjCC,QAAQ,EAAE,CAAC,CAAC;IACZC,YAAY,EAAE,CAAC;EACjB,CAAC,CACH,CAAC;EAED,MAAMC,gBAAgB,GAAGV,KAAK,CAACW,WAAW,CACxC,CACEC,IAAO,EACPC,GAAW,EACXC,QAA6B,KAC1B;IACH;IACAX,cAAc,CAACS,IAAI,CAAC,CAACC,GAAG,CAAC,GAAGC,QAAQ;IAEpC,OAAO,MAAM;MACX,IAAIX,cAAc,CAACS,IAAI,CAAC,CAACC,GAAG,CAAC,KAAKC,QAAQ,EAAE;QAC1C;QACAX,cAAc,CAACS,IAAI,CAAC,CAACC,GAAG,CAAC,GAAGE,SAAS;MACvC;IACF,CAAC;EACH,CAAC,EACD,CAACZ,cAAc,CACjB,CAAC;EAED,OAAO;IACLA,cAAc;IACdO;EACF,CAAC;AACH","ignoreList":[]}