@react-navigation/core 7.21.5 → 7.21.7

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 (91) hide show
  1. package/lib/module/BaseNavigationContainer.js +14 -8
  2. package/lib/module/BaseNavigationContainer.js.map +1 -1
  3. package/lib/module/ConsumedParamsContext.js.map +1 -1
  4. package/lib/module/NavigationIndependentTree.js +8 -4
  5. package/lib/module/NavigationIndependentTree.js.map +1 -1
  6. package/lib/module/SceneView.js +16 -39
  7. package/lib/module/SceneView.js.map +1 -1
  8. package/lib/module/StaticNavigation.js +1 -1
  9. package/lib/module/StaticNavigation.js.map +1 -1
  10. package/lib/module/findFocusedRoute.js +3 -3
  11. package/lib/module/findFocusedRoute.js.map +1 -1
  12. package/lib/module/getActionFromState.js.map +1 -1
  13. package/lib/module/getPathFromState.js +75 -45
  14. package/lib/module/getPathFromState.js.map +1 -1
  15. package/lib/module/getPatternParts.js +15 -2
  16. package/lib/module/getPatternParts.js.map +1 -1
  17. package/lib/module/getStateFromPath.js +47 -21
  18. package/lib/module/getStateFromPath.js.map +1 -1
  19. package/lib/module/getStateFromRouteParams.js +24 -0
  20. package/lib/module/getStateFromRouteParams.js.map +1 -0
  21. package/lib/module/useFocusEvents.js +6 -2
  22. package/lib/module/useFocusEvents.js.map +1 -1
  23. package/lib/module/useLazyValue.js.map +1 -1
  24. package/lib/module/useNavigationBuilder.js +51 -27
  25. package/lib/module/useNavigationBuilder.js.map +1 -1
  26. package/lib/module/useOnAction.js +20 -2
  27. package/lib/module/useOnAction.js.map +1 -1
  28. package/lib/module/useOnPreventRemove.js +1 -3
  29. package/lib/module/useOnPreventRemove.js.map +1 -1
  30. package/lib/module/useRouteCache.js +1 -3
  31. package/lib/module/useRouteCache.js.map +1 -1
  32. package/lib/module/useSyncState.js +3 -2
  33. package/lib/module/useSyncState.js.map +1 -1
  34. package/lib/typescript/src/BaseNavigationContainer.d.ts.map +1 -1
  35. package/lib/typescript/src/ConsumedParamsContext.d.ts +1 -6
  36. package/lib/typescript/src/ConsumedParamsContext.d.ts.map +1 -1
  37. package/lib/typescript/src/EnsureSingleNavigator.d.ts +1 -1
  38. package/lib/typescript/src/EnsureSingleNavigator.d.ts.map +1 -1
  39. package/lib/typescript/src/NavigationIndependentTree.d.ts +1 -1
  40. package/lib/typescript/src/NavigationIndependentTree.d.ts.map +1 -1
  41. package/lib/typescript/src/NavigationProvider.d.ts +1 -1
  42. package/lib/typescript/src/NavigationProvider.d.ts.map +1 -1
  43. package/lib/typescript/src/PreventRemoveProvider.d.ts +1 -1
  44. package/lib/typescript/src/PreventRemoveProvider.d.ts.map +1 -1
  45. package/lib/typescript/src/SceneView.d.ts +2 -1
  46. package/lib/typescript/src/SceneView.d.ts.map +1 -1
  47. package/lib/typescript/src/StaticContainer.d.ts +1 -1
  48. package/lib/typescript/src/StaticContainer.d.ts.map +1 -1
  49. package/lib/typescript/src/findFocusedRoute.d.ts.map +1 -1
  50. package/lib/typescript/src/getPathFromState.d.ts.map +1 -1
  51. package/lib/typescript/src/getPatternParts.d.ts.map +1 -1
  52. package/lib/typescript/src/getStateFromPath.d.ts.map +1 -1
  53. package/lib/typescript/src/getStateFromRouteParams.d.ts +3 -0
  54. package/lib/typescript/src/getStateFromRouteParams.d.ts.map +1 -0
  55. package/lib/typescript/src/theming/ThemeProvider.d.ts +1 -1
  56. package/lib/typescript/src/theming/ThemeProvider.d.ts.map +1 -1
  57. package/lib/typescript/src/types.d.ts +15 -9
  58. package/lib/typescript/src/types.d.ts.map +1 -1
  59. package/lib/typescript/src/useComponent.d.ts +1 -1
  60. package/lib/typescript/src/useComponent.d.ts.map +1 -1
  61. package/lib/typescript/src/useFocusEvents.d.ts.map +1 -1
  62. package/lib/typescript/src/useLazyValue.d.ts.map +1 -1
  63. package/lib/typescript/src/useNavigationBuilder.d.ts +1 -1
  64. package/lib/typescript/src/useNavigationBuilder.d.ts.map +1 -1
  65. package/lib/typescript/src/useNavigationState.d.ts +1 -1
  66. package/lib/typescript/src/useNavigationState.d.ts.map +1 -1
  67. package/lib/typescript/src/useOnAction.d.ts.map +1 -1
  68. package/lib/typescript/src/useOnPreventRemove.d.ts.map +1 -1
  69. package/lib/typescript/src/useRouteCache.d.ts.map +1 -1
  70. package/lib/typescript/src/useSyncState.d.ts.map +1 -1
  71. package/package.json +7 -7
  72. package/src/BaseNavigationContainer.tsx +16 -10
  73. package/src/ConsumedParamsContext.tsx +1 -6
  74. package/src/NavigationIndependentTree.tsx +8 -5
  75. package/src/SceneView.tsx +18 -51
  76. package/src/StaticNavigation.tsx +2 -2
  77. package/src/findFocusedRoute.tsx +5 -3
  78. package/src/getActionFromState.tsx +3 -1
  79. package/src/getPathFromState.tsx +130 -59
  80. package/src/getPatternParts.tsx +15 -2
  81. package/src/getStateFromPath.tsx +76 -17
  82. package/src/getStateFromRouteParams.tsx +60 -0
  83. package/src/types.tsx +42 -24
  84. package/src/useDescriptors.tsx +1 -1
  85. package/src/useFocusEvents.tsx +7 -5
  86. package/src/useLazyValue.tsx +2 -2
  87. package/src/useNavigationBuilder.tsx +82 -37
  88. package/src/useOnAction.tsx +25 -0
  89. package/src/useOnPreventRemove.tsx +4 -3
  90. package/src/useRouteCache.tsx +1 -4
  91. package/src/useSyncState.tsx +3 -2
@@ -1 +1 @@
1
- {"version":3,"names":["queryString","getPatternParts","validatePathConfig","getActiveRoute","state","route","index","routes","length","cachedNormalizedConfigs","WeakMap","getNormalizedConfigs","options","screens","cached","get","normalizedConfigs","createNormalizedConfigs","set","getPathFromState","Error","String","process","env","NODE_ENV","configs","path","current","allParams","parts","focusedParams","currentOptions","focusedRoute","nestedRouteNames","hasNext","name","push","params","currentParams","Object","fromEntries","entries","map","key","value","undefined","optional","find","part","param","stringify","filter","entry","assign","forEach","nextRoute","nestedConfig","segment","Array","from","char","test","encodeURIComponent","join","query","sort","replace","startsWith","createConfigItem","config","parentParts","exact","c","result"],"sourceRoot":"../../src","sources":["getPathFromState.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["queryString","getPatternParts","getStateFromRouteParams","validatePathConfig","serializeParamValue","value","Array","isArray","map","String","getActiveRoute","state","configs","getRouteState","route","index","routes","length","config","name","routeState","screens","cachedNormalizedConfigs","WeakMap","getNormalizedConfigs","options","cached","get","normalizedConfigs","createNormalizedConfigs","set","getPathFromState","Error","process","env","NODE_ENV","cachedRouteStates","Map","hasScreenParams","params","screen","hasStateParams","undefined","has","focusedRoute","path","current","parts","partValues","focusedParams","currentOptions","nestedRouteNames","hasNext","ownParts","push","currentParams","Object","fromEntries","entries","key","optional","find","part","param","stringify","filter","entry","claimedParams","Set","add","nextRoute","nestedConfig","segment","from","char","test","encodeURIComponent","join","query","sort","replace","startsWith","createConfigItem","parentParts","exact","c","result"],"sourceRoot":"../../src","sources":["getPathFromState.tsx"],"mappings":";;AACA,OAAO,KAAKA,WAAW,MAAM,cAAc;AAE3C,SAASC,eAAe,QAA0B,sBAAmB;AACrE,SAASC,uBAAuB,QAAQ,8BAA2B;AAEnE,SAASC,kBAAkB,QAAQ,yBAAsB;AAqBzD,MAAMC,mBAAmB,GAAIC,KAAc,IACzCA,KAAK,KAAK,IAAI,GACV,IAAI,GACJC,KAAK,CAACC,OAAO,CAACF,KAAK,CAAC,GAClBA,KAAK,CAACG,GAAG,CAACC,MAAM,CAAC,GACjBA,MAAM,CAACJ,KAAK,CAAC;AAErB,MAAMK,cAAc,GAAGA,CACrBC,KAAY,EACZC,OAA+C,EAC/CC,aAGsB,KACgB;EACtC,MAAMC,KAAK,GACT,OAAOH,KAAK,CAACI,KAAK,KAAK,QAAQ,GAC3BJ,KAAK,CAACK,MAAM,CAACL,KAAK,CAACI,KAAK,CAAC,GACzBJ,KAAK,CAACK,MAAM,CAACL,KAAK,CAACK,MAAM,CAACC,MAAM,GAAG,CAAC,CAAC;EAE3C,MAAMC,MAAM,GAAGN,OAAO,GAAGE,KAAK,CAACK,IAAI,CAAC;EACpC,MAAMC,UAAU,GAAGP,aAAa,CAACC,KAAK,EAAEI,MAAM,CAAC;EAE/C,IAAIE,UAAU,EAAE;IACd,OAAOV,cAAc,CAACU,UAAU,EAAEF,MAAM,EAAEG,OAAO,EAAER,aAAa,CAAC;EACnE;EAEA,OAAOC,KAAK;AACd,CAAC;AAED,MAAMQ,uBAAuB,GAAG,IAAIC,OAAO,CAGzC,CAAC;AAEH,MAAMC,oBAAoB,GAAIC,OAAqB,IAAK;EACtD,IAAI,CAACA,OAAO,EAAEJ,OAAO,EAAE,OAAO,CAAC,CAAC;EAEhC,MAAMK,MAAM,GAAGJ,uBAAuB,CAACK,GAAG,CAACF,OAAO,EAAEJ,OAAO,CAAC;EAE5D,IAAIK,MAAM,EAAE,OAAOA,MAAM;EAEzB,MAAME,iBAAiB,GAAGC,uBAAuB,CAACJ,OAAO,CAACJ,OAAO,CAAC;EAElEC,uBAAuB,CAACQ,GAAG,CAACL,OAAO,CAACJ,OAAO,EAAEO,iBAAiB,CAAC;EAE/D,OAAOA,iBAAiB;AAC1B,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASG,gBAAgBA,CAC9BpB,KAAY,EACZc,OAA4B,EACpB;EACR,IAAId,KAAK,IAAI,IAAI,EAAE;IACjB,MAAMqB,KAAK,CACT,QAAQvB,MAAM,CAACE,KAAK,CAAC,iEACvB,CAAC;EACH;EAEA,IAAIsB,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,IAAIV,OAAO,EAAE;IACpDtB,kBAAkB,CAACsB,OAAO,CAAC;EAC7B;EAEA,MAAMb,OAAO,GAAGY,oBAAoB,CAACC,OAAO,CAAC;EAC7C,MAAMW,iBAAiB,GAAG,IAAIC,GAAG,CAA4B,CAAC;EAE9D,MAAMxB,aAAa,GAAGA,CACpBC,KAA8B,EAC9BI,MAA8B,KAC3B;IACH,IAAIJ,KAAK,CAACH,KAAK,EAAE;MACf,OAAOG,KAAK,CAACH,KAAK;IACpB;IAEA,MAAM2B,eAAe,GACnBxB,KAAK,CAACyB,MAAM,IACZ,QAAQ,IAAIzB,KAAK,CAACyB,MAAM,IACxB,OAAOzB,KAAK,CAACyB,MAAM,CAACC,MAAM,KAAK,QAAQ,IACvCtB,MAAM,EAAEG,OAAO,GAAGP,KAAK,CAACyB,MAAM,CAACC,MAAM,CAAC;IAExC,MAAMC,cAAc,GAClB3B,KAAK,CAACyB,MAAM,IAAI,OAAO,IAAIzB,KAAK,CAACyB,MAAM,IAAIrB,MAAM,EAAEG,OAAO;IAE5D,IACE,CAACP,KAAK,CAACyB,MAAM,IACb,CAACrB,MAAM,EAAEG,OAAO,IACf,CAACiB,eAAe,IAAI,CAACG,cAAe,EACrC;MACA,OAAOC,SAAS;IAClB;IAEA,IAAI,CAACN,iBAAiB,CAACO,GAAG,CAAC7B,KAAK,CAAC,EAAE;MACjCsB,iBAAiB,CAACN,GAAG,CAAChB,KAAK,EAAEZ,uBAAuB,CAACY,KAAK,CAACyB,MAAM,CAAC,CAAC;IACrE;IAEA,OAAOH,iBAAiB,CAACT,GAAG,CAACb,KAAK,CAAC;EACrC,CAAC;EAED,MAAM8B,YAAY,GAAGlC,cAAc,CAACC,KAAK,EAAEC,OAAO,EAAEC,aAAa,CAAC;EAElE,IAAIgC,IAAI,GAAG,GAAG;EACd,IAAIC,OAA0B,GAAGnC,KAAK;EAEtC,OAAOmC,OAAO,EAAE;IACd,IAAI/B,KAAK,GAAG,OAAO+B,OAAO,CAAC/B,KAAK,KAAK,QAAQ,GAAG+B,OAAO,CAAC/B,KAAK,GAAG,CAAC;IACjE,IAAID,KAAK,GAAGgC,OAAO,CAAC9B,MAAM,CAACD,KAAK,CAAC;IAEjC,IAAIgC,KAAgC;IAEpC,MAAMC,UAAU,GAAG,IAAIX,GAAG,CAAgD,CAAC;IAE3E,IAAIY,aAA+D;IACnE,IAAIC,cAAc,GAAGtC,OAAO;;IAE5B;IACA,MAAMuC,gBAAgB,GAAG,EAAE;IAE3B,IAAIC,OAAO,GAAG,IAAI;IAElB,OAAOtC,KAAK,CAACK,IAAI,IAAI+B,cAAc,IAAIE,OAAO,EAAE;MAC9C,MAAMlC,MAAM,GAAGgC,cAAc,CAACpC,KAAK,CAACK,IAAI,CAAC;MACzC4B,KAAK,GAAG7B,MAAM,CAAC6B,KAAK;MACpB,MAAMM,QAAQ,GAAGnC,MAAM,CAACmC,QAAQ;MAEhCF,gBAAgB,CAACG,IAAI,CAACxC,KAAK,CAACK,IAAI,CAAC;MAEjC,IAAIL,KAAK,CAACyB,MAAM,EAAE;QAChB,MAAMd,OAAO,GAAGP,MAAM;QAEtB,MAAMqC,aAAa,GAAGC,MAAM,CAACC,WAAW,CACtCD,MAAM,CAACE,OAAO,CAAC5C,KAAK,CAACyB,MAAM,CAAC,CACzB/B,GAAG,CAAC,CAAC,CAACmD,GAAG,EAAEtD,KAAK,CAAC,KAA4C;UAC5D,IAAIA,KAAK,KAAKqC,SAAS,EAAE;YACvB,IAAIjB,OAAO,EAAE;cACX,MAAMmC,QAAQ,GAAGP,QAAQ,CAACQ,IAAI,CAC3BC,IAAI,IAAKA,IAAI,CAACC,KAAK,KAAKJ,GAC3B,CAAC,EAAEC,QAAQ;cAEX,IAAIA,QAAQ,EAAE;gBACZ,OAAO,IAAI;cACb;YACF,CAAC,MAAM;cACL,OAAO,IAAI;YACb;UACF;UAEA,MAAMI,SAAS,GAAGvC,OAAO,EAAEuC,SAAS,GAAGL,GAAG,CAAC;UAE3C,OAAO,CACLA,GAAG,EACHK,SAAS,GAAGA,SAAS,CAAC3D,KAAK,CAAC,GAAGD,mBAAmB,CAACC,KAAK,CAAC,CAC1D;QACH,CAAC,CAAC,CACD4D,MAAM,CAAEC,KAAK,IAAKA,KAAK,IAAI,IAAI,CACpC,CAAC;QAED,MAAMC,aAAa,GAAG,IAAIC,GAAG,CAAS,CAAC;QAEvC,KAAK,MAAMN,IAAI,IAAIT,QAAQ,EAAE;UAC3B,IAAIS,IAAI,CAACC,KAAK,IAAID,IAAI,CAACC,KAAK,IAAIR,aAAa,EAAE;YAC7C,MAAMlD,KAAK,GAAGkD,aAAa,CAACO,IAAI,CAACC,KAAK,CAAC;YAEvC,IAAI1D,KAAK,KAAKqC,SAAS,EAAE;cACvBM,UAAU,CAAClB,GAAG,CAACgC,IAAI,EAAEzD,KAAK,CAAC;cAC3B8D,aAAa,CAACE,GAAG,CAACP,IAAI,CAACC,KAAK,CAAC;YAC/B;UACF;QACF;QAEA,IAAInB,YAAY,KAAK9B,KAAK,EAAE;UAC1B;UACA;UACAmC,aAAa,GAAG,CAAC,CAAC;UAElB,KAAK,MAAMU,GAAG,IAAIJ,aAAa,EAAE;YAC/B,MAAMlD,KAAK,GAAGkD,aAAa,CAACI,GAAG,CAAC;YAEhC,IACE,CAACQ,aAAa,CAACxB,GAAG,CAACgB,GAAG,CAAC,IACvBtD,KAAK,KAAKqC,SAAS,IACnBrC,KAAK,KAAK,WAAW,EACrB;cACA4C,aAAa,CAACU,GAAG,CAAC,GAAGtD,KAAK;YAC5B;UACF;QACF;MACF;MAEA,KAAK,MAAMyD,IAAI,IAAIT,QAAQ,EAAE;QAC3B,IAAIS,IAAI,CAACC,KAAK,IAAI,CAACf,UAAU,CAACL,GAAG,CAACmB,IAAI,CAAC,EAAE;UACvCd,UAAU,CAAClB,GAAG,CAACgC,IAAI,EAAEpB,SAAS,CAAC;QACjC;MACF;MAEA,MAAMtB,UAAU,GAAGP,aAAa,CAACC,KAAK,EAAEI,MAAM,CAAC;;MAE/C;MACA,IAAI,CAACA,MAAM,CAACG,OAAO,IAAID,UAAU,KAAKsB,SAAS,EAAE;QAC/CU,OAAO,GAAG,KAAK;MACjB,CAAC,MAAM;QACLrC,KAAK,GACH,OAAOK,UAAU,CAACL,KAAK,KAAK,QAAQ,GAChCK,UAAU,CAACL,KAAK,GAChBK,UAAU,CAACJ,MAAM,CAACC,MAAM,GAAG,CAAC;QAElC,MAAMqD,SAAS,GAAGlD,UAAU,CAACJ,MAAM,CAACD,KAAK,CAAC;QAC1C,MAAMwD,YAAY,GAAGrD,MAAM,CAACG,OAAO;;QAEnC;QACA,IAAIkD,YAAY,IAAID,SAAS,CAACnD,IAAI,IAAIoD,YAAY,EAAE;UAClDzD,KAAK,GAAGwD,SAAS;UACjBpB,cAAc,GAAGqB,YAAY;QAC/B,CAAC,MAAM;UACL;UACAnB,OAAO,GAAG,KAAK;QACjB;MACF;IACF;IAEA,MAAMhC,UAAU,GAAGP,aAAa,CAACC,KAAK,EAAEoC,cAAc,CAACpC,KAAK,CAACK,IAAI,CAAC,CAAC;IAEnE,IAAI+B,cAAc,CAACpC,KAAK,CAACK,IAAI,CAAC,KAAKuB,SAAS,EAAE;MAC5CG,IAAI,IAAIE,KAAK,EACTvC,GAAG,CAAEsD,IAAI,IAAK;QACd,MAAM;UAAEU,OAAO;UAAET,KAAK;UAAEH;QAAS,CAAC,GAAGE,IAAI;QACzC;QACA;QACA;QACA,IAAIU,OAAO,KAAK,GAAG,EAAE;UACnB,OAAO1D,KAAK,CAACK,IAAI;QACnB;;QAEA;QACA,IAAI4C,KAAK,EAAE;UACT,MAAM1D,KAAK,GAAG2C,UAAU,CAACrB,GAAG,CAACmC,IAAI,CAAC;UAElC,IAAIzD,KAAK,KAAKqC,SAAS,IAAIkB,QAAQ,EAAE;YACnC;YACA,OAAO,EAAE;UACX;;UAEA;UACA;UACA,OAAOtD,KAAK,CAACmE,IAAI,CAAChE,MAAM,CAACJ,KAAK,CAAC,CAAC,CAC7BG,GAAG,CAAEkE,IAAI,IACR,iCAAiC,CAACC,IAAI,CAACD,IAAI,CAAC,GACxCE,kBAAkB,CAACF,IAAI,CAAC,GACxBA,IACN,CAAC,CACAG,IAAI,CAAC,EAAE,CAAC;QACb;QAEA,OAAOD,kBAAkB,CAACJ,OAAO,CAAC;MACpC,CAAC,CAAC,CACDK,IAAI,CAAC,GAAG,CAAC;IACd,CAAC,MAAM;MACLhC,IAAI,IAAI+B,kBAAkB,CAAC9D,KAAK,CAACK,IAAI,CAAC;IACxC;IAEA,IAAI,CAAC8B,aAAa,IAAIL,YAAY,CAACL,MAAM,EAAE;MACzCU,aAAa,GAAGO,MAAM,CAACC,WAAW,CAChCD,MAAM,CAACE,OAAO,CAACd,YAAY,CAACL,MAAM,CAAC,CAAC/B,GAAG,CAAC,CAAC,CAACmD,GAAG,EAAEtD,KAAK,CAAC,KAAK,CACxDsD,GAAG,EACHvD,mBAAmB,CAACC,KAAK,CAAC,CAC3B,CACH,CAAC;IACH;IAEA,IAAIe,UAAU,EAAE;MACdyB,IAAI,IAAI,GAAG;IACb,CAAC,MAAM,IAAII,aAAa,EAAE;MACxB,KAAK,MAAMc,KAAK,IAAId,aAAa,EAAE;QACjC,IAAIA,aAAa,CAACc,KAAK,CAAC,KAAK,WAAW,EAAE;UACxC;UACA,OAAOd,aAAa,CAACc,KAAK,CAAC;QAC7B;MACF;MAEA,MAAMe,KAAK,GAAG9E,WAAW,CAACgE,SAAS,CAACf,aAAa,EAAE;QAAE8B,IAAI,EAAE;MAAM,CAAC,CAAC;MAEnE,IAAID,KAAK,EAAE;QACTjC,IAAI,IAAI,IAAIiC,KAAK,EAAE;MACrB;IACF;IAEAhC,OAAO,GAAG1B,UAAU;EACtB;;EAEA;EACA,IAAIK,OAAO,EAAEoB,IAAI,EAAE;IACjBA,IAAI,GAAG,GAAGpB,OAAO,CAACoB,IAAI,IAAIA,IAAI,EAAE;EAClC;;EAEA;EACAA,IAAI,GAAGA,IAAI,CAACmC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;EAChCnC,IAAI,GAAGA,IAAI,CAAC5B,MAAM,GAAG,CAAC,GAAG4B,IAAI,CAACmC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,GAAGnC,IAAI;;EAEvD;EACA;EACA,IAAI,CAACA,IAAI,CAACoC,UAAU,CAAC,GAAG,CAAC,EAAE;IACzBpC,IAAI,GAAG,IAAIA,IAAI,EAAE;EACnB;EAEA,OAAOA,IAAI;AACb;AAEA,MAAMqC,gBAAgB,GAAGA,CACvBhE,MAAmC,EACnCiE,WAA2B,KACZ;EACf,IAAI,OAAOjE,MAAM,KAAK,QAAQ,EAAE;IAC9B,MAAMmC,QAAQ,GAAGpD,eAAe,CAACiB,MAAM,CAAC;IAExC,IAAIiE,WAAW,EAAE;MACf,OAAO;QAAEpC,KAAK,EAAE,CAAC,GAAGoC,WAAW,EAAE,GAAG9B,QAAQ,CAAC;QAAEA;MAAS,CAAC;IAC3D;IAEA,OAAO;MAAEN,KAAK,EAAEM,QAAQ;MAAEA;IAAS,CAAC;EACtC;EAEA,IAAInC,MAAM,CAACkE,KAAK,IAAIlE,MAAM,CAAC2B,IAAI,KAAKH,SAAS,EAAE;IAC7C,MAAM,IAAIV,KAAK,CACb,sJACF,CAAC;EACH;;EAEA;EACA;EACA,MAAMqB,QAAQ,GAAGnC,MAAM,CAAC2B,IAAI,GAAG5C,eAAe,CAACiB,MAAM,CAAC2B,IAAI,CAAC,GAAG,EAAE;EAChE,MAAME,KAAK,GACT7B,MAAM,CAACkE,KAAK,KAAK,IAAI,GACjB,CAAC,IAAID,WAAW,IAAI,EAAE,CAAC,EAAE,GAAG9B,QAAQ,CAAC,GACrCA,QAAQ,CAACpC,MAAM,GACboC,QAAQ,GACRX,SAAS;EAEjB,MAAMrB,OAAO,GAAGH,MAAM,CAACG,OAAO,GAC1BQ,uBAAuB,CAACX,MAAM,CAACG,OAAO,EAAE0B,KAAK,CAAC,GAC9CL,SAAS;EAEb,OAAO;IACLK,KAAK;IACLM,QAAQ;IACRW,SAAS,EAAE9C,MAAM,CAAC8C,SAAS;IAC3B3C;EACF,CAAC;AACH,CAAC;AAED,MAAMQ,uBAAuB,GAAGA,CAC9BJ,OAA8B,EAC9BsB,KAAqB,KAErBS,MAAM,CAACC,WAAW,CAChBD,MAAM,CAACE,OAAO,CAACjC,OAAO,CAAC,CAACjB,GAAG,CAAC,CAAC,CAACW,IAAI,EAAEkE,CAAC,CAAC,KAAK;EACzC,MAAMC,MAAM,GAAGJ,gBAAgB,CAACG,CAAC,EAAEtC,KAAK,CAAC;EAEzC,OAAO,CAAC5B,IAAI,EAAEmE,MAAM,CAAC;AACvB,CAAC,CACH,CAAC","ignoreList":[]}
@@ -10,6 +10,8 @@ export function getPatternParts(path) {
10
10
  };
11
11
  let isRegex = false;
12
12
  let isParam = false;
13
+ let isEscaped = false;
14
+ let isInCharClass = false;
13
15
  let regexInnerParens = 0;
14
16
 
15
17
  // One extra iteration to add the last character
@@ -25,7 +27,7 @@ export function getPatternParts(path) {
25
27
  } else if (!isRegex) {
26
28
  throw new Error(`Encountered ':' in the middle of a segment in path: ${path}`);
27
29
  }
28
- } else if (char === '(') {
30
+ } else if (char === '(' && !isEscaped && !isInCharClass) {
29
31
  if (isParam) {
30
32
  if (isRegex) {
31
33
  // The '(' is part of the regex if we're already inside one
@@ -36,7 +38,7 @@ export function getPatternParts(path) {
36
38
  } else {
37
39
  throw new Error(`Encountered '(' without preceding ':' in path: ${path}`);
38
40
  }
39
- } else if (char === ')') {
41
+ } else if (char === ')' && !isEscaped && !isInCharClass) {
40
42
  if (isParam && isRegex) {
41
43
  if (regexInnerParens) {
42
44
  // The ')' is part of the regex if we're already inside one
@@ -81,6 +83,17 @@ export function getPatternParts(path) {
81
83
  if (isRegex) {
82
84
  current.regex = current.regex || '';
83
85
  current.regex += char;
86
+
87
+ // Track escapes and character classes so parens inside them are not special
88
+ if (isEscaped) {
89
+ isEscaped = false;
90
+ } else if (char === '\\') {
91
+ isEscaped = true;
92
+ } else if (char === '[') {
93
+ isInCharClass = true;
94
+ } else if (char === ']') {
95
+ isInCharClass = false;
96
+ }
84
97
  }
85
98
  if (isParam && !isRegex) {
86
99
  current.param = current.param || '';
@@ -1 +1 @@
1
- {"version":3,"names":["getPatternParts","path","parts","current","segment","isRegex","isParam","regexInnerParens","i","length","char","Error","regex","param","optional","replace","push","params","map","part","filter","Boolean","index","entries","indexOf"],"sourceRoot":"../../src","sources":["getPatternParts.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["getPatternParts","path","parts","current","segment","isRegex","isParam","isEscaped","isInCharClass","regexInnerParens","i","length","char","Error","regex","param","optional","replace","push","params","map","part","filter","Boolean","index","entries","indexOf"],"sourceRoot":"../../src","sources":["getPatternParts.tsx"],"mappings":"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","ignoreList":[]}
@@ -8,6 +8,11 @@ import { getPatternParts } from "./getPatternParts.js";
8
8
  import { isArrayEqual } from "./isArrayEqual.js";
9
9
  import { validatePathConfig } from "./validatePathConfig.js";
10
10
  const NESTED_SCREEN_PARAM_NAMES = ['screen', 'params', 'initial', 'path', 'merge', 'pop'];
11
+ const getStaticSegmentPattern = segment => Array.from(segment, char => {
12
+ const encoded = encodeURIComponent(char);
13
+ const percentEncoded = encoded === char ? `%${char.charCodeAt(0).toString(16).padStart(2, '0').toUpperCase()}` : encoded;
14
+ return `(?:${escape(char)}|${escape(percentEncoded)})`;
15
+ }).join('');
11
16
  const getExplicitParamNames = parse => {
12
17
  const names = Object.entries(parse ?? {}).map(([name]) => name);
13
18
  return names.length ? new Set(names) : undefined;
@@ -38,28 +43,23 @@ export function getStateFromPath(path, options) {
38
43
  const {
39
44
  initialRoutes,
40
45
  configs,
41
- configsByScreen
46
+ configsByScreen,
47
+ prefixRegex
42
48
  } = getConfigResources(options);
43
49
  const screens = options?.screens;
44
50
  let remaining = path.replace(/\/+/g, '/') // Replace multiple slash (//) with single ones
45
51
  .replace(/^\//, '') // Remove extra leading slash
46
- .replace(/\?.*$/, ''); // Remove query params which we will handle later
52
+ .replace(/\?.*$/, '') // Remove query params which we will handle later
53
+ .replace(/%[0-9a-f]{2}/gi, match => match.toUpperCase());
47
54
 
48
55
  // Make sure there is a trailing slash
49
56
  remaining = remaining.endsWith('/') ? remaining : `${remaining}/`;
50
- const prefix = options?.path?.replace(/^\//, ''); // Remove extra leading slash
51
-
52
- if (prefix) {
53
- // Make sure there is a trailing slash
54
- const normalizedPrefix = prefix.endsWith('/') ? prefix : `${prefix}/`;
55
-
56
- // If the path doesn't start with the prefix, it's not a match
57
- if (!remaining.startsWith(normalizedPrefix)) {
57
+ if (prefixRegex) {
58
+ const prefixMatch = remaining.match(prefixRegex);
59
+ if (prefixMatch == null) {
58
60
  return undefined;
59
61
  }
60
-
61
- // Remove the prefix from the path
62
- remaining = remaining.replace(normalizedPrefix, '');
62
+ remaining = remaining.slice(prefixMatch[0].length);
63
63
  }
64
64
  if (screens === undefined) {
65
65
  // When no config is specified, use the path segments as route names
@@ -130,6 +130,13 @@ function prepareConfigResources(options) {
130
130
  }
131
131
  const initialRoutes = getInitialRoutes(options);
132
132
  const configs = getSortedNormalizedConfigs(initialRoutes, options?.screens);
133
+ const prefix = options?.path?.replace(/^\//, '');
134
+ let prefixRegex;
135
+ if (prefix) {
136
+ const normalizedPrefix = prefix.endsWith('/') ? prefix : `${prefix}/`;
137
+ const prefixPattern = normalizedPrefix.split('/').map(getStaticSegmentPattern).join('/');
138
+ prefixRegex = new RegExp(`^${prefixPattern}`);
139
+ }
133
140
  const configsByScreen = {};
134
141
  const configsByPattern = new Map();
135
142
  for (const c of configs) {
@@ -142,7 +149,8 @@ function prepareConfigResources(options) {
142
149
  return {
143
150
  initialRoutes,
144
151
  configs,
145
- configsByScreen
152
+ configsByScreen,
153
+ prefixRegex
146
154
  };
147
155
  }
148
156
  function getInitialRoutes(options) {
@@ -157,7 +165,10 @@ function getInitialRoutes(options) {
157
165
  }
158
166
  function getSortedNormalizedConfigs(initialRoutes, screens = {}) {
159
167
  // Create a normalized configs array which will be easier to use
160
- return [].concat(...Object.keys(screens).map(key => createNormalizedConfigs(key, screens, initialRoutes, [], [], []))).sort((a, b) => {
168
+ return [].concat(...Object.keys(screens).map(key => createNormalizedConfigs(key, screens, initialRoutes, [], [], []))).map((config, order) => ({
169
+ ...config,
170
+ order
171
+ })).sort((a, b) => {
161
172
  // Sort config from most specific to least specific:
162
173
  // - more segments
163
174
  // - static segments
@@ -168,7 +179,13 @@ function getSortedNormalizedConfigs(initialRoutes, screens = {}) {
168
179
  // If 2 patterns are same, move the one with less route names up
169
180
  // This is an error state, so it's only useful for consistent error messages
170
181
  if (isArrayEqual(a.segments, b.segments)) {
171
- return b.routeNames.join('>').localeCompare(a.routeNames.join('>'));
182
+ if (a.routeNames.length > b.routeNames.length && arrayStartsWith(a.routeNames, b.routeNames)) {
183
+ return -1;
184
+ }
185
+ if (b.routeNames.length > a.routeNames.length && arrayStartsWith(b.routeNames, a.routeNames)) {
186
+ return 1;
187
+ }
188
+ return a.routeNames.length - b.routeNames.length || a.order - b.order;
172
189
  }
173
190
 
174
191
  // If one of the patterns starts with the other, it's more exhaustive
@@ -291,6 +308,10 @@ const matchAgainstConfigs = (remaining, firstDecodedSegment, firstRawSegment, co
291
308
  hasInvalidParam = true;
292
309
  break;
293
310
  }
311
+ if (param.regex && value !== decoded && !param.regex.test(decoded)) {
312
+ hasInvalidParam = true;
313
+ break;
314
+ }
294
315
  const parser = routeConfig.parse?.[param.name];
295
316
  paramEntries.push([param.name, parser ? parser(decoded) : decoded]);
296
317
  }
@@ -429,10 +450,13 @@ const createConfigItem = (screen, routeNames, paths, parse, hasNestedScreens = f
429
450
  }
430
451
  const regex = parts.length ? new RegExp(`^(${parts.map((it, i) => {
431
452
  if (it.param) {
432
- const reg = it.regex || '[^/]+';
453
+ const reg = it.regex ? `(?:${it.regex})|(?=[^/]*%[0-9A-F]{2})[^/]+` : '[^/]+';
433
454
  return `(((?<param_${i}>${reg})\\/)${it.optional ? '?' : ''})`;
434
455
  }
435
- return `${it.segment === '*' ? '.*' : escape(it.segment)}\\/`;
456
+ if (it.segment === '*') {
457
+ return `.*\\/`;
458
+ }
459
+ return `${getStaticSegmentPattern(it.segment)}\\/`;
436
460
  }).join('')})$`) : undefined;
437
461
  const segments = parts.map(it => it.segment);
438
462
  const params = [];
@@ -444,7 +468,8 @@ const createConfigItem = (screen, routeNames, paths, parse, hasNestedScreens = f
444
468
  params.push({
445
469
  index,
446
470
  screen: part.screen,
447
- name: part.param
471
+ name: part.param,
472
+ regex: part.regex ? new RegExp(`^(?:${part.regex})$`) : undefined
448
473
  });
449
474
  if (part.screen === screen) {
450
475
  pathParamNames.add(part.param);
@@ -553,8 +578,9 @@ const createNestedStateObject = (path, routes, initialRoutes, routeConfig) => {
553
578
  return state;
554
579
  };
555
580
  const parseQueryParams = (path, parseConfig, pathParamNames = new Set(), explicitParamNames, hasNestedScreens = false, routeParams) => {
556
- const query = path.split('?')[1];
557
- const params = queryString.parse(query);
581
+ const queryIndex = path.indexOf('?');
582
+ const query = queryIndex === -1 ? undefined : path.slice(queryIndex + 1);
583
+ const params = query ? queryString.parse(query) : {};
558
584
  for (const name of pathParamNames) {
559
585
  // eslint-disable-next-line @typescript-eslint/no-dynamic-delete
560
586
  delete params[name];
@@ -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","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":[]}
1
+ {"version":3,"names":["escape","queryString","arrayStartsWith","findFocusedRoute","getPatternParts","isArrayEqual","validatePathConfig","NESTED_SCREEN_PARAM_NAMES","getStaticSegmentPattern","segment","Array","from","char","encoded","encodeURIComponent","percentEncoded","charCodeAt","toString","padStart","toUpperCase","join","getExplicitParamNames","parse","names","Object","entries","map","name","length","Set","undefined","getStateFromPath","path","options","initialRoutes","configs","configsByScreen","prefixRegex","getConfigResources","screens","remaining","replace","match","endsWith","prefixMatch","slice","routes","split","push","decodeURIComponent","createNestedStateObject","find","config","segments","routeNames","firstRawSegment","firstDecodedSegment","matchAgainstConfigs","cachedConfigResources","WeakMap","prepareConfigResources","cached","get","resources","set","process","env","NODE_ENV","getInitialRoutes","getSortedNormalizedConfigs","prefix","normalizedPrefix","prefixPattern","RegExp","configsByPattern","Map","c","screen","pattern","existing","checkForDuplicatedConfigs","initialRouteName","parentScreens","concat","keys","key","createNormalizedConfigs","order","sort","a","b","i","Math","max","aWildCard","bWildCard","aParam","startsWith","bParam","aRegex","includes","bRegex","intersects","Error","remainingPath","matchingConfig","regex","canMatchFirstSegment","matchedRoutes","hasInvalidParam","routeName","routeConfig","params","groups","paramEntries","param","value","index","decoded","test","parser","fromEntries","configSegment","decodedSegment","rawSegment","initials","paths","createConfigItem","nestedScreens","hasNestedScreens","exact","aliasConfigs","alias","forEach","nestedConfig","result","pop","parts","pathScreen","part","it","reg","optional","pathParamNames","add","explicitParamNames","findInitialRoute","sameParents","localeCompare","createStateObject","initialRoute","route","isEmpty","state","shift","nestedState","nestedStateIndex","parseQueryParams","parseConfig","routeParams","queryIndex","indexOf","query","hasOwnProperty","call","has"],"sourceRoot":"../../src","sources":["getStateFromPath.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+
3
+ export function getStateFromRouteParams(params) {
4
+ if (params == null || typeof params !== 'object') {
5
+ return undefined;
6
+ }
7
+ if ('state' in params && params.state && typeof params.state === 'object' && 'routes' in params.state && Array.isArray(params.state.routes) && params.state.routes.every(route => typeof route === 'object' && route != null && 'name' in route && typeof route.name === 'string')) {
8
+ // @ts-expect-error this is fine 🔥
9
+ return params.state;
10
+ }
11
+ if ('screen' in params && params.screen && typeof params.screen === 'string') {
12
+ return {
13
+ routes: [{
14
+ name: params.screen,
15
+ params: 'params' in params && typeof params.params === 'object' && params.params != null ? params.params : undefined,
16
+ path: 'path' in params && typeof params.path === 'string' ? params.path : undefined,
17
+ // @ts-expect-error this is fine 🔥
18
+ state: 'params' in params && typeof params.params === 'object' && params.params != null ? getStateFromRouteParams(params.params) : undefined
19
+ }]
20
+ };
21
+ }
22
+ return undefined;
23
+ }
24
+ //# sourceMappingURL=getStateFromRouteParams.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["getStateFromRouteParams","params","undefined","state","Array","isArray","routes","every","route","name","screen","path"],"sourceRoot":"../../src","sources":["getStateFromRouteParams.tsx"],"mappings":";;AAEA,OAAO,SAASA,uBAAuBA,CACrCC,MAA0B,EACmC;EAC7D,IAAIA,MAAM,IAAI,IAAI,IAAI,OAAOA,MAAM,KAAK,QAAQ,EAAE;IAChD,OAAOC,SAAS;EAClB;EAEA,IACE,OAAO,IAAID,MAAM,IACjBA,MAAM,CAACE,KAAK,IACZ,OAAOF,MAAM,CAACE,KAAK,KAAK,QAAQ,IAChC,QAAQ,IAAIF,MAAM,CAACE,KAAK,IACxBC,KAAK,CAACC,OAAO,CAACJ,MAAM,CAACE,KAAK,CAACG,MAAM,CAAC,IAClCL,MAAM,CAACE,KAAK,CAACG,MAAM,CAACC,KAAK,CACtBC,KAAK,IACJ,OAAOA,KAAK,KAAK,QAAQ,IACzBA,KAAK,IAAI,IAAI,IACb,MAAM,IAAIA,KAAK,IACf,OAAOA,KAAK,CAACC,IAAI,KAAK,QAC1B,CAAC,EACD;IACA;IACA,OAAOR,MAAM,CAACE,KAAK;EACrB;EAEA,IACE,QAAQ,IAAIF,MAAM,IAClBA,MAAM,CAACS,MAAM,IACb,OAAOT,MAAM,CAACS,MAAM,KAAK,QAAQ,EACjC;IACA,OAAO;MACLJ,MAAM,EAAE,CACN;QACEG,IAAI,EAAER,MAAM,CAACS,MAAM;QACnBT,MAAM,EACJ,QAAQ,IAAIA,MAAM,IAClB,OAAOA,MAAM,CAACA,MAAM,KAAK,QAAQ,IACjCA,MAAM,CAACA,MAAM,IAAI,IAAI,GACjBA,MAAM,CAACA,MAAM,GACbC,SAAS;QACfS,IAAI,EACF,MAAM,IAAIV,MAAM,IAAI,OAAOA,MAAM,CAACU,IAAI,KAAK,QAAQ,GAC/CV,MAAM,CAACU,IAAI,GACXT,SAAS;QACf;QACAC,KAAK,EACH,QAAQ,IAAIF,MAAM,IAClB,OAAOA,MAAM,CAACA,MAAM,KAAK,QAAQ,IACjCA,MAAM,CAACA,MAAM,IAAI,IAAI,GACjBD,uBAAuB,CAACC,MAAM,CAACA,MAAM,CAAC,GACtCC;MACR,CAAC;IAEL,CAAC;EACH;EAEA,OAAOA,SAAS;AAClB","ignoreList":[]}
@@ -31,7 +31,11 @@ export function useFocusEvents({
31
31
  }), [currentFocusedKey, emitter, navigation]);
32
32
  React.useEffect(() => {
33
33
  const lastFocusedKey = lastFocusedKeyRef.current;
34
- lastFocusedKeyRef.current = currentFocusedKey;
34
+ const isFocused = navigation ? navigation.isFocused() : true;
35
+ if (isFocused) {
36
+ // Remember the current route as focused if the navigator is focused
37
+ lastFocusedKeyRef.current = currentFocusedKey;
38
+ }
35
39
 
36
40
  // We wouldn't have `lastFocusedKey` on initial mount
37
41
  // Fire focus event for the current route on mount if there's no parent navigator
@@ -44,7 +48,7 @@ export function useFocusEvents({
44
48
 
45
49
  // We should only emit events when the focused key changed and navigator is focused
46
50
  // When navigator is not focused, screens inside shouldn't receive focused status either
47
- if (lastFocusedKey === currentFocusedKey || !(navigation ? navigation.isFocused() : true)) {
51
+ if (lastFocusedKey === currentFocusedKey || !isFocused) {
48
52
  return;
49
53
  }
50
54
  if (lastFocusedKey === undefined) {
@@ -1 +1 @@
1
- {"version":3,"names":["React","NavigationContext","useFocusEvents","state","emitter","navigation","useContext","lastFocusedKeyRef","useRef","undefined","currentFocusedKey","routes","index","key","useEffect","addListener","current","emit","type","target","lastFocusedKey","isFocused"],"sourceRoot":"../../src","sources":["useFocusEvents.tsx"],"mappings":";;AACA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,SAASC,iBAAiB,QAAQ,wBAAqB;AASvD;AACA;AACA;AACA,OAAO,SAASC,cAAcA,CAAgC;EAC5DC,KAAK;EACLC;AACc,CAAC,EAAE;EACjB,MAAMC,UAAU,GAAGL,KAAK,CAACM,UAAU,CAACL,iBAAiB,CAAC;EACtD,MAAMM,iBAAiB,GAAGP,KAAK,CAACQ,MAAM,CAAqBC,SAAS,CAAC;EAErE,MAAMC,iBAAiB,GAAGP,KAAK,CAACQ,MAAM,CAACR,KAAK,CAACS,KAAK,CAAC,CAACC,GAAG;;EAEvD;EACA;EACAb,KAAK,CAACc,SAAS,CACb,MACET,UAAU,EAAEU,WAAW,CAAC,OAAO,EAAE,MAAM;IACrCR,iBAAiB,CAACS,OAAO,GAAGN,iBAAiB;IAC7CN,OAAO,CAACa,IAAI,CAAC;MAAEC,IAAI,EAAE,OAAO;MAAEC,MAAM,EAAET;IAAkB,CAAC,CAAC;EAC5D,CAAC,CAAC,EACJ,CAACA,iBAAiB,EAAEN,OAAO,EAAEC,UAAU,CACzC,CAAC;EAEDL,KAAK,CAACc,SAAS,CACb,MACET,UAAU,EAAEU,WAAW,CAAC,MAAM,EAAE,MAAM;IACpCR,iBAAiB,CAACS,OAAO,GAAGP,SAAS;IACrCL,OAAO,CAACa,IAAI,CAAC;MAAEC,IAAI,EAAE,MAAM;MAAEC,MAAM,EAAET;IAAkB,CAAC,CAAC;EAC3D,CAAC,CAAC,EACJ,CAACA,iBAAiB,EAAEN,OAAO,EAAEC,UAAU,CACzC,CAAC;EAEDL,KAAK,CAACc,SAAS,CAAC,MAAM;IACpB,MAAMM,cAAc,GAAGb,iBAAiB,CAACS,OAAO;IAEhDT,iBAAiB,CAACS,OAAO,GAAGN,iBAAiB;;IAE7C;IACA;IACA,IAAIU,cAAc,KAAKX,SAAS,IAAI,CAACJ,UAAU,EAAE;MAC/CD,OAAO,CAACa,IAAI,CAAC;QAAEC,IAAI,EAAE,OAAO;QAAEC,MAAM,EAAET;MAAkB,CAAC,CAAC;IAC5D;;IAEA;IACA;IACA,IACEU,cAAc,KAAKV,iBAAiB,IACpC,EAAEL,UAAU,GAAGA,UAAU,CAACgB,SAAS,CAAC,CAAC,GAAG,IAAI,CAAC,EAC7C;MACA;IACF;IAEA,IAAID,cAAc,KAAKX,SAAS,EAAE;MAChC;MACA;IACF;IAEAL,OAAO,CAACa,IAAI,CAAC;MAAEC,IAAI,EAAE,MAAM;MAAEC,MAAM,EAAEC;IAAe,CAAC,CAAC;IACtDhB,OAAO,CAACa,IAAI,CAAC;MAAEC,IAAI,EAAE,OAAO;MAAEC,MAAM,EAAET;IAAkB,CAAC,CAAC;EAC5D,CAAC,EAAE,CAACA,iBAAiB,EAAEN,OAAO,EAAEC,UAAU,CAAC,CAAC;AAC9C","ignoreList":[]}
1
+ {"version":3,"names":["React","NavigationContext","useFocusEvents","state","emitter","navigation","useContext","lastFocusedKeyRef","useRef","undefined","currentFocusedKey","routes","index","key","useEffect","addListener","current","emit","type","target","lastFocusedKey","isFocused"],"sourceRoot":"../../src","sources":["useFocusEvents.tsx"],"mappings":";;AACA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,SAASC,iBAAiB,QAAQ,wBAAqB;AASvD;AACA;AACA;AACA,OAAO,SAASC,cAAcA,CAAgC;EAC5DC,KAAK;EACLC;AACc,CAAC,EAAE;EACjB,MAAMC,UAAU,GAAGL,KAAK,CAACM,UAAU,CAACL,iBAAiB,CAAC;EACtD,MAAMM,iBAAiB,GAAGP,KAAK,CAACQ,MAAM,CAAqBC,SAAS,CAAC;EAErE,MAAMC,iBAAiB,GAAGP,KAAK,CAACQ,MAAM,CAACR,KAAK,CAACS,KAAK,CAAC,CAACC,GAAG;;EAEvD;EACA;EACAb,KAAK,CAACc,SAAS,CACb,MACET,UAAU,EAAEU,WAAW,CAAC,OAAO,EAAE,MAAM;IACrCR,iBAAiB,CAACS,OAAO,GAAGN,iBAAiB;IAC7CN,OAAO,CAACa,IAAI,CAAC;MAAEC,IAAI,EAAE,OAAO;MAAEC,MAAM,EAAET;IAAkB,CAAC,CAAC;EAC5D,CAAC,CAAC,EACJ,CAACA,iBAAiB,EAAEN,OAAO,EAAEC,UAAU,CACzC,CAAC;EAEDL,KAAK,CAACc,SAAS,CACb,MACET,UAAU,EAAEU,WAAW,CAAC,MAAM,EAAE,MAAM;IACpCR,iBAAiB,CAACS,OAAO,GAAGP,SAAS;IACrCL,OAAO,CAACa,IAAI,CAAC;MAAEC,IAAI,EAAE,MAAM;MAAEC,MAAM,EAAET;IAAkB,CAAC,CAAC;EAC3D,CAAC,CAAC,EACJ,CAACA,iBAAiB,EAAEN,OAAO,EAAEC,UAAU,CACzC,CAAC;EAEDL,KAAK,CAACc,SAAS,CAAC,MAAM;IACpB,MAAMM,cAAc,GAAGb,iBAAiB,CAACS,OAAO;IAEhD,MAAMK,SAAS,GAAGhB,UAAU,GAAGA,UAAU,CAACgB,SAAS,CAAC,CAAC,GAAG,IAAI;IAE5D,IAAIA,SAAS,EAAE;MACb;MACAd,iBAAiB,CAACS,OAAO,GAAGN,iBAAiB;IAC/C;;IAEA;IACA;IACA,IAAIU,cAAc,KAAKX,SAAS,IAAI,CAACJ,UAAU,EAAE;MAC/CD,OAAO,CAACa,IAAI,CAAC;QAAEC,IAAI,EAAE,OAAO;QAAEC,MAAM,EAAET;MAAkB,CAAC,CAAC;IAC5D;;IAEA;IACA;IACA,IAAIU,cAAc,KAAKV,iBAAiB,IAAI,CAACW,SAAS,EAAE;MACtD;IACF;IAEA,IAAID,cAAc,KAAKX,SAAS,EAAE;MAChC;MACA;IACF;IAEAL,OAAO,CAACa,IAAI,CAAC;MAAEC,IAAI,EAAE,MAAM;MAAEC,MAAM,EAAEC;IAAe,CAAC,CAAC;IACtDhB,OAAO,CAACa,IAAI,CAAC;MAAEC,IAAI,EAAE,OAAO;MAAEC,MAAM,EAAET;IAAkB,CAAC,CAAC;EAC5D,CAAC,EAAE,CAACA,iBAAiB,EAAEN,OAAO,EAAEC,UAAU,CAAC,CAAC;AAC9C","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["React","useLazyValue","create","lazyRef","useRef","undefined","current"],"sourceRoot":"../../src","sources":["useLazyValue.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,OAAO,SAASC,YAAYA,CAAIC,MAAe,EAAE;EAC/C,MAAMC,OAAO,GAAGH,KAAK,CAACI,MAAM,CAAIC,SAAS,CAAC;EAE1C,IAAIF,OAAO,CAACG,OAAO,KAAKD,SAAS,EAAE;IACjCF,OAAO,CAACG,OAAO,GAAGJ,MAAM,CAAC,CAAC;EAC5B;EAEA,OAAOC,OAAO,CAACG,OAAO;AACxB","ignoreList":[]}
1
+ {"version":3,"names":["React","useLazyValue","create","lazyRef","useRef","undefined","current"],"sourceRoot":"../../src","sources":["useLazyValue.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,OAAO,SAASC,YAAYA,CAAIC,MAAe,EAAK;EAClD,MAAMC,OAAO,GAAGH,KAAK,CAACI,MAAM,CAAIC,SAAS,CAAC;EAE1C,IAAIF,OAAO,CAACG,OAAO,KAAKD,SAAS,EAAE;IACjCF,OAAO,CAACG,OAAO,GAAGJ,MAAM,CAAC,CAAC;EAC5B;EAEA,OAAOC,OAAO,CAACG,OAAO;AACxB","ignoreList":[]}