diff --git a/packages/stack/patches/@react-navigation+core+3.4.1.patch b/packages/stack/patches/@react-navigation+core+3.4.1.patch
new file mode 100644
index 00000000..326c4476
--- /dev/null
+++ b/packages/stack/patches/@react-navigation+core+3.4.1.patch
@@ -0,0 +1,688 @@
+diff --git a/node_modules/@react-navigation/core/.DS_Store b/node_modules/@react-navigation/core/.DS_Store
+new file mode 100644
+index 0000000..5008ddf
+Binary files /dev/null and b/node_modules/@react-navigation/core/.DS_Store differ
+diff --git a/node_modules/@react-navigation/core/lib/commonjs/__tests__/NavigationStateUtils-test.js b/node_modules/@react-navigation/core/lib/commonjs/__tests__/NavigationStateUtils-test.js
+index 1075ba2..c8975fe 100644
+--- a/node_modules/@react-navigation/core/lib/commonjs/__tests__/NavigationStateUtils-test.js
++++ b/node_modules/@react-navigation/core/lib/commonjs/__tests__/NavigationStateUtils-test.js
+@@ -1,2 +1,2 @@
+-var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _objectSpread2=_interopRequireDefault(require("@babel/runtime/helpers/objectSpread"));var _StateUtils=_interopRequireDefault(require("../StateUtils"));var routeName='Anything';describe('StateUtils',function(){it('gets route',function(){var state={index:0,routes:[{key:'a',routeName:routeName}],isTransitioning:false};expect(_StateUtils.default.get(state,'a')).toEqual({key:'a',routeName:routeName});expect(_StateUtils.default.get(state,'b')).toBe(null);});it('gets route index',function(){var state={index:1,routes:[{key:'a',routeName:routeName},{key:'b',routeName:routeName}],isTransitioning:false};expect(_StateUtils.default.indexOf(state,'a')).toBe(0);expect(_StateUtils.default.indexOf(state,'b')).toBe(1);expect(_StateUtils.default.indexOf(state,'c')).toBe(-1);});it('has a route',function(){var state={index:0,routes:[{key:'a',routeName:routeName},{key:'b',routeName:routeName}],isTransitioning:false};expect(_StateUtils.default.has(state,'b')).toBe(true);expect(_StateUtils.default.has(state,'c')).toBe(false);});it('pushes a route',function(){var state={index:0,routes:[{key:'a',routeName:routeName}],isTransitioning:false};var newState={index:1,isTransitioning:false,routes:[{key:'a',routeName:routeName},{key:'b',routeName:routeName}]};expect(_StateUtils.default.push(state,{key:'b',routeName:routeName})).toEqual(newState);});it('does not push duplicated route',function(){var state={index:0,routes:[{key:'a',routeName:routeName}],isTransitioning:false};expect(function(){return _StateUtils.default.push(state,{key:'a',routeName:routeName});}).toThrow('should not push route with duplicated key a');});it('pops route',function(){var state={index:1,routes:[{key:'a',routeName:routeName},{key:'b',routeName:routeName}],isTransitioning:false};var newState={index:0,routes:[{key:'a',routeName:routeName}],isTransitioning:false};expect(_StateUtils.default.pop(state)).toEqual(newState);});it('does not pop route if not applicable',function(){var state={index:0,routes:[{key:'a',routeName:routeName}],isTransitioning:false};expect(_StateUtils.default.pop(state)).toBe(state);});it('jumps to new index',function(){var state={index:0,routes:[{key:'a',routeName:routeName},{key:'b',routeName:routeName}],isTransitioning:false};var newState={index:1,routes:[{key:'a',routeName:routeName},{key:'b',routeName:routeName}],isTransitioning:false};expect(_StateUtils.default.jumpToIndex(state,0)).toBe(state);expect(_StateUtils.default.jumpToIndex(state,1)).toEqual(newState);});it('throws if jumps to invalid index',function(){var state={index:0,routes:[{key:'a',routeName:routeName},{key:'b',routeName:routeName}],isTransitioning:false};expect(function(){return _StateUtils.default.jumpToIndex(state,2);}).toThrow('invalid index 2 to jump to');});it('jumps to new key',function(){var state={index:0,routes:[{key:'a',routeName:routeName},{key:'b',routeName:routeName}],isTransitioning:false};var newState={index:1,routes:[{key:'a',routeName:routeName},{key:'b',routeName:routeName}],isTransitioning:false};expect(_StateUtils.default.jumpTo(state,'a')).toBe(state);expect(_StateUtils.default.jumpTo(state,'b')).toEqual(newState);});it('throws if jumps to invalid key',function(){var state={index:0,routes:[{key:'a',routeName:routeName},{key:'b',routeName:routeName}],isTransitioning:false};expect(function(){return _StateUtils.default.jumpTo(state,'c');}).toThrow('invalid index -1 to jump to');});it('move backwards',function(){var state={index:1,routes:[{key:'a',routeName:routeName},{key:'b',routeName:routeName}],isTransitioning:false};var newState={index:0,routes:[{key:'a',routeName:routeName},{key:'b',routeName:routeName}],isTransitioning:false};expect(_StateUtils.default.back(state)).toEqual(newState);expect(_StateUtils.default.back(newState)).toBe(newState);});it('move forwards',function(){var state={index:0,routes:[{key:'a',routeName:routeName},{key:'b',routeName:routeName}],isTransitioning:false};var newState={index:1,routes:[{key:'a',routeName:routeName},{key:'b',routeName:routeName}],isTransitioning:false};expect(_StateUtils.default.forward(state)).toEqual(newState);expect(_StateUtils.default.forward(newState)).toBe(newState);});it('Replaces by key',function(){var state={index:0,routes:[{key:'a',routeName:routeName},{key:'b',routeName:routeName}],isTransitioning:false};var newState={index:1,routes:[{key:'a',routeName:routeName},{key:'c',routeName:routeName}],isTransitioning:false};expect(_StateUtils.default.replaceAt(state,'b',{key:'c',routeName:routeName})).toEqual(newState);});it('Replaces by index',function(){var state={index:0,routes:[{key:'a',routeName:routeName},{key:'b',routeName:routeName}],isTransitioning:false};var newState={index:1,routes:[{key:'a',routeName:routeName},{key:'c',routeName:routeName}],isTransitioning:false};expect(_StateUtils.default.replaceAtIndex(state,1,{key:'c',routeName:routeName})).toEqual(newState);});it('Returns the state with updated index if route is unchanged but index changes',function(){var state={index:0,routes:[{key:'a',routeName:routeName},{key:'b',routeName:routeName}],isTransitioning:false};expect(_StateUtils.default.replaceAtIndex(state,1,state.routes[1])).toEqual((0,_objectSpread2.default)({},state,{index:1}));});it('Resets routes',function(){var state={index:0,routes:[{key:'a',routeName:routeName},{key:'b',routeName:routeName}],isTransitioning:false};var newState={index:1,routes:[{key:'x',routeName:routeName},{key:'y',routeName:routeName}],isTransitioning:false};expect(_StateUtils.default.reset(state,[{key:'x',routeName:routeName},{key:'y',routeName:routeName}])).toEqual(newState);expect(function(){_StateUtils.default.reset(state,[]);}).toThrow('invalid routes to replace');});it('Resets routes with index',function(){var state={index:0,routes:[{key:'a',routeName:routeName},{key:'b',routeName:routeName}],isTransitioning:false};var newState={index:0,routes:[{key:'x',routeName:routeName},{key:'y',routeName:routeName}],isTransitioning:false};expect(_StateUtils.default.reset(state,[{key:'x',routeName:routeName},{key:'y',routeName:routeName}],0)).toEqual(newState);expect(function(){_StateUtils.default.reset(state,[{key:'x',routeName:routeName},{key:'y',routeName:routeName}],100);}).toThrow('invalid index 100 to reset');});});
++var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _objectSpread2=_interopRequireDefault(require("@babel/runtime/helpers/objectSpread"));var _StateUtils=_interopRequireDefault(require("../StateUtils"));var routeName='Anything';describe('StateUtils',function(){it('gets route',function(){var state={index:0,routes:[{key:'a',routeName:routeName}]};expect(_StateUtils.default.get(state,'a')).toEqual({key:'a',routeName:routeName});expect(_StateUtils.default.get(state,'b')).toBe(null);});it('gets route index',function(){var state={index:1,routes:[{key:'a',routeName:routeName},{key:'b',routeName:routeName}]};expect(_StateUtils.default.indexOf(state,'a')).toBe(0);expect(_StateUtils.default.indexOf(state,'b')).toBe(1);expect(_StateUtils.default.indexOf(state,'c')).toBe(-1);});it('has a route',function(){var state={index:0,routes:[{key:'a',routeName:routeName},{key:'b',routeName:routeName}]};expect(_StateUtils.default.has(state,'b')).toBe(true);expect(_StateUtils.default.has(state,'c')).toBe(false);});it('pushes a route',function(){var state={index:0,routes:[{key:'a',routeName:routeName}]};var newState={index:1,routes:[{key:'a',routeName:routeName},{key:'b',routeName:routeName}]};expect(_StateUtils.default.push(state,{key:'b',routeName:routeName})).toEqual(newState);});it('does not push duplicated route',function(){var state={index:0,routes:[{key:'a',routeName:routeName}]};expect(function(){return _StateUtils.default.push(state,{key:'a',routeName:routeName});}).toThrow('should not push route with duplicated key a');});it('pops route',function(){var state={index:1,routes:[{key:'a',routeName:routeName},{key:'b',routeName:routeName}]};var newState={index:0,routes:[{key:'a',routeName:routeName}]};expect(_StateUtils.default.pop(state)).toEqual(newState);});it('does not pop route if not applicable',function(){var state={index:0,routes:[{key:'a',routeName:routeName}]};expect(_StateUtils.default.pop(state)).toBe(state);});it('jumps to new index',function(){var state={index:0,routes:[{key:'a',routeName:routeName},{key:'b',routeName:routeName}]};var newState={index:1,routes:[{key:'a',routeName:routeName},{key:'b',routeName:routeName}]};expect(_StateUtils.default.jumpToIndex(state,0)).toBe(state);expect(_StateUtils.default.jumpToIndex(state,1)).toEqual(newState);});it('throws if jumps to invalid index',function(){var state={index:0,routes:[{key:'a',routeName:routeName},{key:'b',routeName:routeName}]};expect(function(){return _StateUtils.default.jumpToIndex(state,2);}).toThrow('invalid index 2 to jump to');});it('jumps to new key',function(){var state={index:0,routes:[{key:'a',routeName:routeName},{key:'b',routeName:routeName}]};var newState={index:1,routes:[{key:'a',routeName:routeName},{key:'b',routeName:routeName}]};expect(_StateUtils.default.jumpTo(state,'a')).toBe(state);expect(_StateUtils.default.jumpTo(state,'b')).toEqual(newState);});it('throws if jumps to invalid key',function(){var state={index:0,routes:[{key:'a',routeName:routeName},{key:'b',routeName:routeName}]};expect(function(){return _StateUtils.default.jumpTo(state,'c');}).toThrow('invalid index -1 to jump to');});it('move backwards',function(){var state={index:1,routes:[{key:'a',routeName:routeName},{key:'b',routeName:routeName}]};var newState={index:0,routes:[{key:'a',routeName:routeName},{key:'b',routeName:routeName}]};expect(_StateUtils.default.back(state)).toEqual(newState);expect(_StateUtils.default.back(newState)).toBe(newState);});it('move forwards',function(){var state={index:0,routes:[{key:'a',routeName:routeName},{key:'b',routeName:routeName}]};var newState={index:1,routes:[{key:'a',routeName:routeName},{key:'b',routeName:routeName}]};expect(_StateUtils.default.forward(state)).toEqual(newState);expect(_StateUtils.default.forward(newState)).toBe(newState);});it('Replaces by key',function(){var state={index:0,routes:[{key:'a',routeName:routeName},{key:'b',routeName:routeName}]};var newState={index:1,routes:[{key:'a',routeName:routeName},{key:'c',routeName:routeName}]};expect(_StateUtils.default.replaceAt(state,'b',{key:'c',routeName:routeName})).toEqual(newState);});it('Replaces by index',function(){var state={index:0,routes:[{key:'a',routeName:routeName},{key:'b',routeName:routeName}]};var newState={index:1,routes:[{key:'a',routeName:routeName},{key:'c',routeName:routeName}]};expect(_StateUtils.default.replaceAtIndex(state,1,{key:'c',routeName:routeName})).toEqual(newState);});it('Returns the state with updated index if route is unchanged but index changes',function(){var state={index:0,routes:[{key:'a',routeName:routeName},{key:'b',routeName:routeName}]};expect(_StateUtils.default.replaceAtIndex(state,1,state.routes[1])).toEqual((0,_objectSpread2.default)({},state,{index:1}));});it('Resets routes',function(){var state={index:0,routes:[{key:'a',routeName:routeName},{key:'b',routeName:routeName}]};var newState={index:1,routes:[{key:'x',routeName:routeName},{key:'y',routeName:routeName}]};expect(_StateUtils.default.reset(state,[{key:'x',routeName:routeName},{key:'y',routeName:routeName}])).toEqual(newState);expect(function(){_StateUtils.default.reset(state,[]);}).toThrow('invalid routes to replace');});it('Resets routes with index',function(){var state={index:0,routes:[{key:'a',routeName:routeName},{key:'b',routeName:routeName}]};var newState={index:0,routes:[{key:'x',routeName:routeName},{key:'y',routeName:routeName}]};expect(_StateUtils.default.reset(state,[{key:'x',routeName:routeName},{key:'y',routeName:routeName}],0)).toEqual(newState);expect(function(){_StateUtils.default.reset(state,[{key:'x',routeName:routeName},{key:'y',routeName:routeName}],100);}).toThrow('invalid index 100 to reset');});});
+ //# sourceMappingURL=NavigationStateUtils-test.js.map
+\ No newline at end of file
+diff --git a/node_modules/@react-navigation/core/lib/commonjs/__tests__/NavigationStateUtils-test.js.map b/node_modules/@react-navigation/core/lib/commonjs/__tests__/NavigationStateUtils-test.js.map
+index 77c6e01..f616b3d 100644
+--- a/node_modules/@react-navigation/core/lib/commonjs/__tests__/NavigationStateUtils-test.js.map
++++ b/node_modules/@react-navigation/core/lib/commonjs/__tests__/NavigationStateUtils-test.js.map
+@@ -1 +1 @@
+-{"version":3,"sources":["NavigationStateUtils-test.js"],"names":["routeName","describe","it","state","index","routes","key","isTransitioning","expect","NavigationStateUtils","get","toEqual","toBe","indexOf","has","newState","push","toThrow","pop","jumpToIndex","jumpTo","back","forward","replaceAt","replaceAtIndex","reset"],"mappings":"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","sourcesContent":["import NavigationStateUtils from '../StateUtils';\n\nconst routeName = 'Anything';\n\ndescribe('StateUtils', () => {\n // Getters\n it('gets route', () => {\n const state = {\n index: 0,\n routes: [{ key: 'a', routeName }],\n isTransitioning: false,\n };\n expect(NavigationStateUtils.get(state, 'a')).toEqual({\n key: 'a',\n routeName,\n });\n expect(NavigationStateUtils.get(state, 'b')).toBe(null);\n });\n\n it('gets route index', () => {\n const state = {\n index: 1,\n routes: [{ key: 'a', routeName }, { key: 'b', routeName }],\n isTransitioning: false,\n };\n expect(NavigationStateUtils.indexOf(state, 'a')).toBe(0);\n expect(NavigationStateUtils.indexOf(state, 'b')).toBe(1);\n expect(NavigationStateUtils.indexOf(state, 'c')).toBe(-1);\n });\n\n it('has a route', () => {\n const state = {\n index: 0,\n routes: [{ key: 'a', routeName }, { key: 'b', routeName }],\n isTransitioning: false,\n };\n expect(NavigationStateUtils.has(state, 'b')).toBe(true);\n expect(NavigationStateUtils.has(state, 'c')).toBe(false);\n });\n\n // Push\n it('pushes a route', () => {\n const state = {\n index: 0,\n routes: [{ key: 'a', routeName }],\n isTransitioning: false,\n };\n const newState = {\n index: 1,\n isTransitioning: false,\n routes: [{ key: 'a', routeName }, { key: 'b', routeName }],\n };\n expect(NavigationStateUtils.push(state, { key: 'b', routeName })).toEqual(\n newState\n );\n });\n\n it('does not push duplicated route', () => {\n const state = {\n index: 0,\n routes: [{ key: 'a', routeName }],\n isTransitioning: false,\n };\n expect(() =>\n NavigationStateUtils.push(state, { key: 'a', routeName })\n ).toThrow('should not push route with duplicated key a');\n });\n\n // Pop\n it('pops route', () => {\n const state = {\n index: 1,\n routes: [{ key: 'a', routeName }, { key: 'b', routeName }],\n isTransitioning: false,\n };\n const newState = {\n index: 0,\n routes: [{ key: 'a', routeName }],\n isTransitioning: false,\n };\n expect(NavigationStateUtils.pop(state)).toEqual(newState);\n });\n\n it('does not pop route if not applicable', () => {\n const state = {\n index: 0,\n routes: [{ key: 'a', routeName }],\n isTransitioning: false,\n };\n expect(NavigationStateUtils.pop(state)).toBe(state);\n });\n\n // Jump\n it('jumps to new index', () => {\n const state = {\n index: 0,\n routes: [{ key: 'a', routeName }, { key: 'b', routeName }],\n isTransitioning: false,\n };\n const newState = {\n index: 1,\n routes: [{ key: 'a', routeName }, { key: 'b', routeName }],\n isTransitioning: false,\n };\n expect(NavigationStateUtils.jumpToIndex(state, 0)).toBe(state);\n expect(NavigationStateUtils.jumpToIndex(state, 1)).toEqual(newState);\n });\n\n it('throws if jumps to invalid index', () => {\n const state = {\n index: 0,\n routes: [{ key: 'a', routeName }, { key: 'b', routeName }],\n isTransitioning: false,\n };\n expect(() => NavigationStateUtils.jumpToIndex(state, 2)).toThrow(\n 'invalid index 2 to jump to'\n );\n });\n\n it('jumps to new key', () => {\n const state = {\n index: 0,\n routes: [{ key: 'a', routeName }, { key: 'b', routeName }],\n isTransitioning: false,\n };\n const newState = {\n index: 1,\n routes: [{ key: 'a', routeName }, { key: 'b', routeName }],\n isTransitioning: false,\n };\n expect(NavigationStateUtils.jumpTo(state, 'a')).toBe(state);\n expect(NavigationStateUtils.jumpTo(state, 'b')).toEqual(newState);\n });\n\n it('throws if jumps to invalid key', () => {\n const state = {\n index: 0,\n routes: [{ key: 'a', routeName }, { key: 'b', routeName }],\n isTransitioning: false,\n };\n expect(() => NavigationStateUtils.jumpTo(state, 'c')).toThrow(\n 'invalid index -1 to jump to'\n );\n });\n\n it('move backwards', () => {\n const state = {\n index: 1,\n routes: [{ key: 'a', routeName }, { key: 'b', routeName }],\n isTransitioning: false,\n };\n const newState = {\n index: 0,\n routes: [{ key: 'a', routeName }, { key: 'b', routeName }],\n isTransitioning: false,\n };\n expect(NavigationStateUtils.back(state)).toEqual(newState);\n expect(NavigationStateUtils.back(newState)).toBe(newState);\n });\n\n it('move forwards', () => {\n const state = {\n index: 0,\n routes: [{ key: 'a', routeName }, { key: 'b', routeName }],\n isTransitioning: false,\n };\n const newState = {\n index: 1,\n routes: [{ key: 'a', routeName }, { key: 'b', routeName }],\n isTransitioning: false,\n };\n expect(NavigationStateUtils.forward(state)).toEqual(newState);\n expect(NavigationStateUtils.forward(newState)).toBe(newState);\n });\n\n // Replace\n it('Replaces by key', () => {\n const state = {\n index: 0,\n routes: [{ key: 'a', routeName }, { key: 'b', routeName }],\n isTransitioning: false,\n };\n const newState = {\n index: 1,\n routes: [{ key: 'a', routeName }, { key: 'c', routeName }],\n isTransitioning: false,\n };\n expect(\n NavigationStateUtils.replaceAt(state, 'b', { key: 'c', routeName })\n ).toEqual(newState);\n });\n\n it('Replaces by index', () => {\n const state = {\n index: 0,\n routes: [{ key: 'a', routeName }, { key: 'b', routeName }],\n isTransitioning: false,\n };\n const newState = {\n index: 1,\n routes: [{ key: 'a', routeName }, { key: 'c', routeName }],\n isTransitioning: false,\n };\n expect(\n NavigationStateUtils.replaceAtIndex(state, 1, { key: 'c', routeName })\n ).toEqual(newState);\n });\n\n it('Returns the state with updated index if route is unchanged but index changes', () => {\n const state = {\n index: 0,\n routes: [{ key: 'a', routeName }, { key: 'b', routeName }],\n isTransitioning: false,\n };\n expect(\n NavigationStateUtils.replaceAtIndex(state, 1, state.routes[1])\n ).toEqual({ ...state, index: 1 });\n });\n\n // Reset\n it('Resets routes', () => {\n const state = {\n index: 0,\n routes: [{ key: 'a', routeName }, { key: 'b', routeName }],\n isTransitioning: false,\n };\n const newState = {\n index: 1,\n routes: [{ key: 'x', routeName }, { key: 'y', routeName }],\n isTransitioning: false,\n };\n expect(\n NavigationStateUtils.reset(state, [\n { key: 'x', routeName },\n { key: 'y', routeName },\n ])\n ).toEqual(newState);\n\n expect(() => {\n NavigationStateUtils.reset(state, []);\n }).toThrow('invalid routes to replace');\n });\n\n it('Resets routes with index', () => {\n const state = {\n index: 0,\n routes: [{ key: 'a', routeName }, { key: 'b', routeName }],\n isTransitioning: false,\n };\n const newState = {\n index: 0,\n routes: [{ key: 'x', routeName }, { key: 'y', routeName }],\n isTransitioning: false,\n };\n expect(\n NavigationStateUtils.reset(\n state,\n [{ key: 'x', routeName }, { key: 'y', routeName }],\n 0\n )\n ).toEqual(newState);\n\n expect(() => {\n NavigationStateUtils.reset(\n state,\n [{ key: 'x', routeName }, { key: 'y', routeName }],\n 100\n );\n }).toThrow('invalid index 100 to reset');\n });\n});\n"]}
+\ No newline at end of file
++{"version":3,"sources":["NavigationStateUtils-test.js"],"names":["routeName","describe","it","state","index","routes","key","expect","NavigationStateUtils","get","toEqual","toBe","indexOf","has","newState","push","toThrow","pop","jumpToIndex","jumpTo","back","forward","replaceAt","replaceAtIndex","reset"],"mappings":"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","sourcesContent":["import NavigationStateUtils from '../StateUtils';\n\nconst routeName = 'Anything';\n\ndescribe('StateUtils', () => {\n // Getters\n it('gets route', () => {\n const state = {\n index: 0,\n routes: [{ key: 'a', routeName }],\n };\n expect(NavigationStateUtils.get(state, 'a')).toEqual({\n key: 'a',\n routeName,\n });\n expect(NavigationStateUtils.get(state, 'b')).toBe(null);\n });\n\n it('gets route index', () => {\n const state = {\n index: 1,\n routes: [{ key: 'a', routeName }, { key: 'b', routeName }],\n };\n expect(NavigationStateUtils.indexOf(state, 'a')).toBe(0);\n expect(NavigationStateUtils.indexOf(state, 'b')).toBe(1);\n expect(NavigationStateUtils.indexOf(state, 'c')).toBe(-1);\n });\n\n it('has a route', () => {\n const state = {\n index: 0,\n routes: [{ key: 'a', routeName }, { key: 'b', routeName }],\n };\n expect(NavigationStateUtils.has(state, 'b')).toBe(true);\n expect(NavigationStateUtils.has(state, 'c')).toBe(false);\n });\n\n // Push\n it('pushes a route', () => {\n const state = {\n index: 0,\n routes: [{ key: 'a', routeName }],\n };\n const newState = {\n index: 1,\n\n routes: [{ key: 'a', routeName }, { key: 'b', routeName }],\n };\n expect(NavigationStateUtils.push(state, { key: 'b', routeName })).toEqual(\n newState\n );\n });\n\n it('does not push duplicated route', () => {\n const state = {\n index: 0,\n routes: [{ key: 'a', routeName }],\n };\n expect(() =>\n NavigationStateUtils.push(state, { key: 'a', routeName })\n ).toThrow('should not push route with duplicated key a');\n });\n\n // Pop\n it('pops route', () => {\n const state = {\n index: 1,\n routes: [{ key: 'a', routeName }, { key: 'b', routeName }],\n };\n const newState = {\n index: 0,\n routes: [{ key: 'a', routeName }],\n };\n expect(NavigationStateUtils.pop(state)).toEqual(newState);\n });\n\n it('does not pop route if not applicable', () => {\n const state = {\n index: 0,\n routes: [{ key: 'a', routeName }],\n };\n expect(NavigationStateUtils.pop(state)).toBe(state);\n });\n\n // Jump\n it('jumps to new index', () => {\n const state = {\n index: 0,\n routes: [{ key: 'a', routeName }, { key: 'b', routeName }],\n };\n const newState = {\n index: 1,\n routes: [{ key: 'a', routeName }, { key: 'b', routeName }],\n };\n expect(NavigationStateUtils.jumpToIndex(state, 0)).toBe(state);\n expect(NavigationStateUtils.jumpToIndex(state, 1)).toEqual(newState);\n });\n\n it('throws if jumps to invalid index', () => {\n const state = {\n index: 0,\n routes: [{ key: 'a', routeName }, { key: 'b', routeName }],\n };\n expect(() => NavigationStateUtils.jumpToIndex(state, 2)).toThrow(\n 'invalid index 2 to jump to'\n );\n });\n\n it('jumps to new key', () => {\n const state = {\n index: 0,\n routes: [{ key: 'a', routeName }, { key: 'b', routeName }],\n };\n const newState = {\n index: 1,\n routes: [{ key: 'a', routeName }, { key: 'b', routeName }],\n };\n expect(NavigationStateUtils.jumpTo(state, 'a')).toBe(state);\n expect(NavigationStateUtils.jumpTo(state, 'b')).toEqual(newState);\n });\n\n it('throws if jumps to invalid key', () => {\n const state = {\n index: 0,\n routes: [{ key: 'a', routeName }, { key: 'b', routeName }],\n };\n expect(() => NavigationStateUtils.jumpTo(state, 'c')).toThrow(\n 'invalid index -1 to jump to'\n );\n });\n\n it('move backwards', () => {\n const state = {\n index: 1,\n routes: [{ key: 'a', routeName }, { key: 'b', routeName }],\n };\n const newState = {\n index: 0,\n routes: [{ key: 'a', routeName }, { key: 'b', routeName }],\n };\n expect(NavigationStateUtils.back(state)).toEqual(newState);\n expect(NavigationStateUtils.back(newState)).toBe(newState);\n });\n\n it('move forwards', () => {\n const state = {\n index: 0,\n routes: [{ key: 'a', routeName }, { key: 'b', routeName }],\n };\n const newState = {\n index: 1,\n routes: [{ key: 'a', routeName }, { key: 'b', routeName }],\n };\n expect(NavigationStateUtils.forward(state)).toEqual(newState);\n expect(NavigationStateUtils.forward(newState)).toBe(newState);\n });\n\n // Replace\n it('Replaces by key', () => {\n const state = {\n index: 0,\n routes: [{ key: 'a', routeName }, { key: 'b', routeName }],\n };\n const newState = {\n index: 1,\n routes: [{ key: 'a', routeName }, { key: 'c', routeName }],\n };\n expect(\n NavigationStateUtils.replaceAt(state, 'b', { key: 'c', routeName })\n ).toEqual(newState);\n });\n\n it('Replaces by index', () => {\n const state = {\n index: 0,\n routes: [{ key: 'a', routeName }, { key: 'b', routeName }],\n };\n const newState = {\n index: 1,\n routes: [{ key: 'a', routeName }, { key: 'c', routeName }],\n };\n expect(\n NavigationStateUtils.replaceAtIndex(state, 1, { key: 'c', routeName })\n ).toEqual(newState);\n });\n\n it('Returns the state with updated index if route is unchanged but index changes', () => {\n const state = {\n index: 0,\n routes: [{ key: 'a', routeName }, { key: 'b', routeName }],\n };\n expect(\n NavigationStateUtils.replaceAtIndex(state, 1, state.routes[1])\n ).toEqual({ ...state, index: 1 });\n });\n\n // Reset\n it('Resets routes', () => {\n const state = {\n index: 0,\n routes: [{ key: 'a', routeName }, { key: 'b', routeName }],\n };\n const newState = {\n index: 1,\n routes: [{ key: 'x', routeName }, { key: 'y', routeName }],\n };\n expect(\n NavigationStateUtils.reset(state, [\n { key: 'x', routeName },\n { key: 'y', routeName },\n ])\n ).toEqual(newState);\n\n expect(() => {\n NavigationStateUtils.reset(state, []);\n }).toThrow('invalid routes to replace');\n });\n\n it('Resets routes with index', () => {\n const state = {\n index: 0,\n routes: [{ key: 'a', routeName }, { key: 'b', routeName }],\n };\n const newState = {\n index: 0,\n routes: [{ key: 'x', routeName }, { key: 'y', routeName }],\n };\n expect(\n NavigationStateUtils.reset(\n state,\n [{ key: 'x', routeName }, { key: 'y', routeName }],\n 0\n )\n ).toEqual(newState);\n\n expect(() => {\n NavigationStateUtils.reset(\n state,\n [{ key: 'x', routeName }, { key: 'y', routeName }],\n 100\n );\n }).toThrow('invalid index 100 to reset');\n });\n});\n"]}
+\ No newline at end of file
+diff --git a/node_modules/@react-navigation/core/lib/commonjs/__tests__/getChildEventSubscriber-test.js b/node_modules/@react-navigation/core/lib/commonjs/__tests__/getChildEventSubscriber-test.js
+index 75b6c44..d962691 100644
+--- a/node_modules/@react-navigation/core/lib/commonjs/__tests__/getChildEventSubscriber-test.js
++++ b/node_modules/@react-navigation/core/lib/commonjs/__tests__/getChildEventSubscriber-test.js
+@@ -1,2 +1,2 @@
+-var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _objectSpread2=_interopRequireDefault(require("@babel/runtime/helpers/objectSpread"));var _getChildEventSubscriber=_interopRequireDefault(require("../getChildEventSubscriber"));it('child action events only flow when focused',function(){var parentSubscriber=jest.fn();var emitParentAction=function emitParentAction(payload){parentSubscriber.mock.calls.forEach(function(subs){if(subs[0]===payload.type){subs[1](payload);}});};var subscriptionRemove=function subscriptionRemove(){};parentSubscriber.mockReturnValueOnce({remove:subscriptionRemove});var childEventSubscriber=(0,_getChildEventSubscriber.default)(parentSubscriber,'key1').addListener;var testState={key:'foo',routeName:'FooRoute',routes:[{key:'key0'},{key:'key1'}],index:0,isTransitioning:false};var focusedTestState=(0,_objectSpread2.default)({},testState,{index:1});var childActionHandler=jest.fn();var childWillFocusHandler=jest.fn();var childDidFocusHandler=jest.fn();childEventSubscriber('action',childActionHandler);childEventSubscriber('willFocus',childWillFocusHandler);childEventSubscriber('didFocus',childDidFocusHandler);emitParentAction({type:'action',state:focusedTestState,lastState:testState,action:{type:'FooAction'}});expect(childActionHandler.mock.calls.length).toBe(0);expect(childWillFocusHandler.mock.calls.length).toBe(1);expect(childDidFocusHandler.mock.calls.length).toBe(1);emitParentAction({type:'action',state:focusedTestState,lastState:focusedTestState,action:{type:'FooAction'}});expect(childActionHandler.mock.calls.length).toBe(1);expect(childWillFocusHandler.mock.calls.length).toBe(1);expect(childDidFocusHandler.mock.calls.length).toBe(1);});it('grandchildren subscription',function(){var grandParentSubscriber=jest.fn();var emitGrandParentAction=function emitGrandParentAction(payload){grandParentSubscriber.mock.calls.forEach(function(subs){if(subs[0]===payload.type){subs[1](payload);}});};var subscriptionRemove=function subscriptionRemove(){};grandParentSubscriber.mockReturnValueOnce({remove:subscriptionRemove});var parentSubscriber=(0,_getChildEventSubscriber.default)(grandParentSubscriber,'parent').addListener;var childEventSubscriber=(0,_getChildEventSubscriber.default)(parentSubscriber,'key1').addListener;var parentBlurState={key:'foo',routeName:'FooRoute',routes:[{key:'aunt'},{key:'parent',routes:[{key:'key0'},{key:'key1'}],index:1,isTransitioning:false}],index:0,isTransitioning:false};var parentTransitionState=(0,_objectSpread2.default)({},parentBlurState,{index:1,isTransitioning:true});var parentFocusState=(0,_objectSpread2.default)({},parentTransitionState,{isTransitioning:false});var childActionHandler=jest.fn();var childWillFocusHandler=jest.fn();var childDidFocusHandler=jest.fn();childEventSubscriber('action',childActionHandler);childEventSubscriber('willFocus',childWillFocusHandler);childEventSubscriber('didFocus',childDidFocusHandler);emitGrandParentAction({type:'action',state:parentTransitionState,lastState:parentBlurState,action:{type:'FooAction'}});expect(childActionHandler.mock.calls.length).toBe(0);expect(childWillFocusHandler.mock.calls.length).toBe(1);expect(childDidFocusHandler.mock.calls.length).toBe(0);emitGrandParentAction({type:'action',state:parentFocusState,lastState:parentTransitionState,action:{type:'FooAction'}});expect(childActionHandler.mock.calls.length).toBe(0);expect(childWillFocusHandler.mock.calls.length).toBe(1);expect(childDidFocusHandler.mock.calls.length).toBe(1);});it('grandchildren transitions',function(){var grandParentSubscriber=jest.fn();var emitGrandParentAction=function emitGrandParentAction(payload){grandParentSubscriber.mock.calls.forEach(function(subs){if(subs[0]===payload.type){subs[1](payload);}});};var subscriptionRemove=function subscriptionRemove(){};grandParentSubscriber.mockReturnValueOnce({remove:subscriptionRemove});var parentSubscriber=(0,_getChildEventSubscriber.default)(grandParentSubscriber,'parent').addListener;var childEventSubscriber=(0,_getChildEventSubscriber.default)(parentSubscriber,'key1').addListener;var makeFakeState=function makeFakeState(childIndex,childIsTransitioning){return{index:1,isTransitioning:false,routes:[{key:'nothing'},{key:'parent',index:childIndex,isTransitioning:childIsTransitioning,routes:[{key:'key0'},{key:'key1'},{key:'key2'}]}]};};var blurredState=makeFakeState(0,false);var transitionState=makeFakeState(1,true);var focusState=makeFakeState(1,false);var transition2State=makeFakeState(2,true);var blurred2State=makeFakeState(2,false);var childActionHandler=jest.fn();var childWillFocusHandler=jest.fn();var childDidFocusHandler=jest.fn();var childWillBlurHandler=jest.fn();var childDidBlurHandler=jest.fn();childEventSubscriber('action',childActionHandler);childEventSubscriber('willFocus',childWillFocusHandler);childEventSubscriber('didFocus',childDidFocusHandler);childEventSubscriber('willBlur',childWillBlurHandler);childEventSubscriber('didBlur',childDidBlurHandler);emitGrandParentAction({type:'action',state:transitionState,lastState:blurredState,action:{type:'FooAction'}});expect(childActionHandler.mock.calls.length).toBe(0);expect(childWillFocusHandler.mock.calls.length).toBe(1);expect(childDidFocusHandler.mock.calls.length).toBe(0);emitGrandParentAction({type:'action',state:focusState,lastState:transitionState,action:{type:'FooAction'}});expect(childActionHandler.mock.calls.length).toBe(0);expect(childWillFocusHandler.mock.calls.length).toBe(1);expect(childDidFocusHandler.mock.calls.length).toBe(1);emitGrandParentAction({type:'action',state:focusState,lastState:focusState,action:{type:'TestAction'}});expect(childWillFocusHandler.mock.calls.length).toBe(1);expect(childDidFocusHandler.mock.calls.length).toBe(1);expect(childActionHandler.mock.calls.length).toBe(1);emitGrandParentAction({type:'action',state:transition2State,lastState:focusState,action:{type:'CauseWillBlurAction'}});expect(childWillBlurHandler.mock.calls.length).toBe(1);expect(childDidBlurHandler.mock.calls.length).toBe(0);expect(childActionHandler.mock.calls.length).toBe(1);emitGrandParentAction({type:'action',state:blurred2State,lastState:transition2State,action:{type:'CauseDidBlurAction'}});expect(childWillBlurHandler.mock.calls.length).toBe(1);expect(childDidBlurHandler.mock.calls.length).toBe(1);expect(childActionHandler.mock.calls.length).toBe(1);});it('grandchildren pass through transitions',function(){var grandParentSubscriber=jest.fn();var emitGrandParentAction=function emitGrandParentAction(payload){grandParentSubscriber.mock.calls.forEach(function(subs){if(subs[0]===payload.type){subs[1](payload);}});};var subscriptionRemove=function subscriptionRemove(){};grandParentSubscriber.mockReturnValueOnce({remove:subscriptionRemove});var parentSubscriber=(0,_getChildEventSubscriber.default)(grandParentSubscriber,'parent').addListener;var childEventSubscriber=(0,_getChildEventSubscriber.default)(parentSubscriber,'key1').addListener;var makeFakeState=function makeFakeState(childIndex,childIsTransitioning){return{index:childIndex,isTransitioning:childIsTransitioning,routes:[{key:'nothing'},{key:'parent',index:1,isTransitioning:false,routes:[{key:'key0'},{key:'key1'},{key:'key2'}]}].slice(0,childIndex+1)};};var blurredState=makeFakeState(0,false);var transitionState=makeFakeState(1,true);var focusState=makeFakeState(1,false);var transition2State=makeFakeState(0,true);var blurred2State=makeFakeState(0,false);var childActionHandler=jest.fn();var childWillFocusHandler=jest.fn();var childDidFocusHandler=jest.fn();var childWillBlurHandler=jest.fn();var childDidBlurHandler=jest.fn();childEventSubscriber('action',childActionHandler);childEventSubscriber('willFocus',childWillFocusHandler);childEventSubscriber('didFocus',childDidFocusHandler);childEventSubscriber('willBlur',childWillBlurHandler);childEventSubscriber('didBlur',childDidBlurHandler);emitGrandParentAction({type:'action',state:transitionState,lastState:blurredState,action:{type:'FooAction'}});expect(childActionHandler.mock.calls.length).toBe(0);expect(childWillFocusHandler.mock.calls.length).toBe(1);expect(childDidFocusHandler.mock.calls.length).toBe(0);emitGrandParentAction({type:'action',state:focusState,lastState:transitionState,action:{type:'FooAction'}});expect(childActionHandler.mock.calls.length).toBe(0);expect(childWillFocusHandler.mock.calls.length).toBe(1);expect(childDidFocusHandler.mock.calls.length).toBe(1);emitGrandParentAction({type:'action',state:focusState,lastState:focusState,action:{type:'TestAction'}});expect(childWillFocusHandler.mock.calls.length).toBe(1);expect(childDidFocusHandler.mock.calls.length).toBe(1);expect(childActionHandler.mock.calls.length).toBe(1);emitGrandParentAction({type:'action',state:transition2State,lastState:focusState,action:{type:'CauseWillBlurAction'}});expect(childWillBlurHandler.mock.calls.length).toBe(1);expect(childDidBlurHandler.mock.calls.length).toBe(0);expect(childActionHandler.mock.calls.length).toBe(1);emitGrandParentAction({type:'action',state:blurred2State,lastState:transition2State,action:{type:'CauseDidBlurAction'}});expect(childWillBlurHandler.mock.calls.length).toBe(1);expect(childDidBlurHandler.mock.calls.length).toBe(1);expect(childActionHandler.mock.calls.length).toBe(1);});it('child focus with transition',function(){var parentSubscriber=jest.fn();var emitParentAction=function emitParentAction(payload){parentSubscriber.mock.calls.forEach(function(subs){if(subs[0]===payload.type){subs[1](payload);}});};var subscriptionRemove=function subscriptionRemove(){};parentSubscriber.mockReturnValueOnce({remove:subscriptionRemove});var childEventSubscriber=(0,_getChildEventSubscriber.default)(parentSubscriber,'key1').addListener;var randomAction={type:'FooAction'};var testState={key:'foo',routeName:'FooRoute',routes:[{key:'key0'},{key:'key1'}],index:0,isTransitioning:false};var childWillFocusHandler=jest.fn();var childDidFocusHandler=jest.fn();var childWillBlurHandler=jest.fn();var childDidBlurHandler=jest.fn();childEventSubscriber('willFocus',childWillFocusHandler);childEventSubscriber('didFocus',childDidFocusHandler);childEventSubscriber('willBlur',childWillBlurHandler);childEventSubscriber('didBlur',childDidBlurHandler);emitParentAction({type:'didFocus',action:randomAction,lastState:testState,state:testState});emitParentAction({type:'action',action:randomAction,lastState:testState,state:(0,_objectSpread2.default)({},testState,{index:1,isTransitioning:true})});expect(childWillFocusHandler.mock.calls.length).toBe(1);emitParentAction({type:'action',action:randomAction,lastState:(0,_objectSpread2.default)({},testState,{index:1,isTransitioning:true}),state:(0,_objectSpread2.default)({},testState,{index:1,isTransitioning:false})});expect(childDidFocusHandler.mock.calls.length).toBe(1);emitParentAction({type:'action',action:randomAction,lastState:(0,_objectSpread2.default)({},testState,{index:1,isTransitioning:false}),state:(0,_objectSpread2.default)({},testState,{index:0,isTransitioning:true})});expect(childWillBlurHandler.mock.calls.length).toBe(1);emitParentAction({type:'action',action:randomAction,lastState:(0,_objectSpread2.default)({},testState,{index:0,isTransitioning:true}),state:(0,_objectSpread2.default)({},testState,{index:0,isTransitioning:false})});expect(childDidBlurHandler.mock.calls.length).toBe(1);});it('child focus with immediate transition',function(){var parentSubscriber=jest.fn();var emitParentAction=function emitParentAction(payload){parentSubscriber.mock.calls.forEach(function(subs){if(subs[0]===payload.type){subs[1](payload);}});};var subscriptionRemove=function subscriptionRemove(){};parentSubscriber.mockReturnValueOnce({remove:subscriptionRemove});var childEventSubscriber=(0,_getChildEventSubscriber.default)(parentSubscriber,'key1').addListener;var randomAction={type:'FooAction'};var testState={key:'foo',routeName:'FooRoute',routes:[{key:'key0'},{key:'key1'}],index:0,isTransitioning:false};var childWillFocusHandler=jest.fn();var childDidFocusHandler=jest.fn();var childWillBlurHandler=jest.fn();var childDidBlurHandler=jest.fn();childEventSubscriber('willFocus',childWillFocusHandler);childEventSubscriber('didFocus',childDidFocusHandler);childEventSubscriber('willBlur',childWillBlurHandler);childEventSubscriber('didBlur',childDidBlurHandler);emitParentAction({type:'didFocus',action:randomAction,lastState:testState,state:testState});emitParentAction({type:'action',action:randomAction,lastState:testState,state:(0,_objectSpread2.default)({},testState,{index:1})});expect(childWillFocusHandler.mock.calls.length).toBe(1);expect(childDidFocusHandler.mock.calls.length).toBe(1);emitParentAction({type:'action',action:randomAction,lastState:(0,_objectSpread2.default)({},testState,{index:1}),state:(0,_objectSpread2.default)({},testState,{index:0})});expect(childWillBlurHandler.mock.calls.length).toBe(1);expect(childDidBlurHandler.mock.calls.length).toBe(1);});var setupEventTest=function setupEventTest(subscriptionKey,initialLastFocusEvent){var parentSubscriber=jest.fn();var emitEvent=function emitEvent(payload){parentSubscriber.mock.calls.forEach(function(subs){if(subs[0]===payload.type){subs[1](payload);}});};var subscriptionRemove=function subscriptionRemove(){};parentSubscriber.mockReturnValueOnce({remove:subscriptionRemove});var evtProvider=(0,_getChildEventSubscriber.default)(parentSubscriber,subscriptionKey,initialLastFocusEvent);var handlers={};evtProvider.addListener('action',handlers.action=jest.fn());evtProvider.addListener('willFocus',handlers.willFocus=jest.fn());evtProvider.addListener('didFocus',handlers.didFocus=jest.fn());evtProvider.addListener('willBlur',handlers.willBlur=jest.fn());evtProvider.addListener('didBlur',handlers.didBlur=jest.fn());return{emitEvent:emitEvent,handlers:handlers,evtProvider:evtProvider};};it('immediate back with uncompleted transition will focus first screen again',function(){var _setupEventTest=setupEventTest('key0','didFocus'),handlers=_setupEventTest.handlers,emitEvent=_setupEventTest.emitEvent;emitEvent({type:'action',state:{index:1,routes:[{key:'key0'},{key:'key1'}],isTransitioning:true},lastState:{index:0,routes:[{key:'key0'}],isTransitioning:false},action:{type:'Any action, does not matter here'}});expect(handlers.willFocus.mock.calls.length).toBe(0);expect(handlers.didFocus.mock.calls.length).toBe(0);expect(handlers.willBlur.mock.calls.length).toBe(1);expect(handlers.didBlur.mock.calls.length).toBe(0);emitEvent({type:'action',state:{index:0,routes:[{key:'key0'}],isTransitioning:true},lastState:{index:1,routes:[{key:'key0'},{key:'key1'}],isTransitioning:true},action:{type:'Any action, does not matter here'}});expect(handlers.willFocus.mock.calls.length).toBe(1);expect(handlers.didFocus.mock.calls.length).toBe(0);expect(handlers.willBlur.mock.calls.length).toBe(1);expect(handlers.didBlur.mock.calls.length).toBe(0);emitEvent({type:'action',state:{index:0,routes:[{key:'key0'}],isTransitioning:false},lastState:{index:0,routes:[{key:'key0'}],isTransitioning:true},action:{type:'Any action, does not matter here'}});expect(handlers.willFocus.mock.calls.length).toBe(1);expect(handlers.didFocus.mock.calls.length).toBe(1);expect(handlers.willBlur.mock.calls.length).toBe(1);expect(handlers.didBlur.mock.calls.length).toBe(0);});
++var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _objectSpread2=_interopRequireDefault(require("@babel/runtime/helpers/objectSpread"));var _getChildEventSubscriber=_interopRequireDefault(require("../getChildEventSubscriber"));it('child action events only flow when focused',function(){var parentSubscriber=jest.fn();var emitParentAction=function emitParentAction(payload){parentSubscriber.mock.calls.forEach(function(subs){if(subs[0]===payload.type){subs[1](payload);}});};var subscriptionRemove=function subscriptionRemove(){};parentSubscriber.mockReturnValueOnce({remove:subscriptionRemove});var childEventSubscriber=(0,_getChildEventSubscriber.default)(parentSubscriber,'key1').addListener;var testState={key:'foo',routeName:'FooRoute',routes:[{key:'key0'},{key:'key1'}],index:0};var focusedTestState=(0,_objectSpread2.default)({},testState,{index:1});var childActionHandler=jest.fn();var childWillFocusHandler=jest.fn();var childDidFocusHandler=jest.fn();childEventSubscriber('action',childActionHandler);childEventSubscriber('willFocus',childWillFocusHandler);childEventSubscriber('didFocus',childDidFocusHandler);emitParentAction({type:'action',state:focusedTestState,lastState:testState,action:{type:'FooAction'}});expect(childActionHandler.mock.calls.length).toBe(0);expect(childWillFocusHandler.mock.calls.length).toBe(1);expect(childDidFocusHandler.mock.calls.length).toBe(1);emitParentAction({type:'action',state:focusedTestState,lastState:focusedTestState,action:{type:'FooAction'}});expect(childActionHandler.mock.calls.length).toBe(1);expect(childWillFocusHandler.mock.calls.length).toBe(1);expect(childDidFocusHandler.mock.calls.length).toBe(1);});it('grandchildren subscription',function(){var grandParentSubscriber=jest.fn();var emitGrandParentAction=function emitGrandParentAction(payload){grandParentSubscriber.mock.calls.forEach(function(subs){if(subs[0]===payload.type){subs[1](payload);}});};var subscriptionRemove=function subscriptionRemove(){};grandParentSubscriber.mockReturnValueOnce({remove:subscriptionRemove});var parentSubscriber=(0,_getChildEventSubscriber.default)(grandParentSubscriber,'parent').addListener;var childEventSubscriber=(0,_getChildEventSubscriber.default)(parentSubscriber,'key1').addListener;var parentBlurState={key:'foo',routeName:'FooRoute',routes:[{key:'aunt'},{key:'parent',routes:[{key:'key0'},{key:'key1'}],index:1}],transitions:{pushing:[],popping:['parent']},index:0};var parentTransitionState=(0,_objectSpread2.default)({},parentBlurState,{index:1,transitions:{pushing:['key1'],popping:[]}});var parentFocusState=(0,_objectSpread2.default)({},parentTransitionState);var childActionHandler=jest.fn();var childWillFocusHandler=jest.fn();var childDidFocusHandler=jest.fn();childEventSubscriber('action',childActionHandler);childEventSubscriber('willFocus',childWillFocusHandler);childEventSubscriber('didFocus',childDidFocusHandler);emitGrandParentAction({type:'action',state:parentTransitionState,lastState:parentBlurState,action:{type:'FooAction'}});expect(childActionHandler.mock.calls.length).toBe(0);expect(childWillFocusHandler.mock.calls.length).toBe(1);expect(childDidFocusHandler.mock.calls.length).toBe(0);emitGrandParentAction({type:'action',state:parentFocusState,lastState:parentTransitionState,action:{type:'FooAction'}});expect(childActionHandler.mock.calls.length).toBe(0);expect(childWillFocusHandler.mock.calls.length).toBe(1);expect(childDidFocusHandler.mock.calls.length).toBe(1);});it('grandchildren transitions',function(){var grandParentSubscriber=jest.fn();var emitGrandParentAction=function emitGrandParentAction(payload){grandParentSubscriber.mock.calls.forEach(function(subs){if(subs[0]===payload.type){subs[1](payload);}});};var subscriptionRemove=function subscriptionRemove(){};grandParentSubscriber.mockReturnValueOnce({remove:subscriptionRemove});var parentSubscriber=(0,_getChildEventSubscriber.default)(grandParentSubscriber,'parent').addListener;var childEventSubscriber=(0,_getChildEventSubscriber.default)(parentSubscriber,'key1').addListener;var makeFakeState=function makeFakeState(childIndex,childIsTransitioning){return{index:1,routes:[{key:'nothing'},{key:'parent',index:childIndex,transitions:{pushing:[],popping:childIsTransitioning?['key2']:[]},routes:[{key:'key0'},{key:'key1'},{key:'key2'}]}]};};var blurredState=makeFakeState(0,false);var transitionState=makeFakeState(1,true);var focusState=makeFakeState(1,false);var transition2State=makeFakeState(2,true);var blurred2State=makeFakeState(2,false);var childActionHandler=jest.fn();var childWillFocusHandler=jest.fn();var childDidFocusHandler=jest.fn();var childWillBlurHandler=jest.fn();var childDidBlurHandler=jest.fn();childEventSubscriber('action',childActionHandler);childEventSubscriber('willFocus',childWillFocusHandler);childEventSubscriber('didFocus',childDidFocusHandler);childEventSubscriber('willBlur',childWillBlurHandler);childEventSubscriber('didBlur',childDidBlurHandler);emitGrandParentAction({type:'action',state:transitionState,lastState:blurredState,action:{type:'FooAction'}});expect(childActionHandler.mock.calls.length).toBe(0);expect(childWillFocusHandler.mock.calls.length).toBe(1);expect(childDidFocusHandler.mock.calls.length).toBe(0);emitGrandParentAction({type:'action',state:focusState,lastState:transitionState,action:{type:'FooAction'}});expect(childActionHandler.mock.calls.length).toBe(0);expect(childWillFocusHandler.mock.calls.length).toBe(1);expect(childDidFocusHandler.mock.calls.length).toBe(1);emitGrandParentAction({type:'action',state:focusState,lastState:focusState,action:{type:'TestAction'}});expect(childWillFocusHandler.mock.calls.length).toBe(1);expect(childDidFocusHandler.mock.calls.length).toBe(1);expect(childActionHandler.mock.calls.length).toBe(1);emitGrandParentAction({type:'action',state:transition2State,lastState:focusState,action:{type:'CauseWillBlurAction'}});expect(childWillBlurHandler.mock.calls.length).toBe(1);expect(childDidBlurHandler.mock.calls.length).toBe(0);expect(childActionHandler.mock.calls.length).toBe(1);emitGrandParentAction({type:'action',state:blurred2State,lastState:transition2State,action:{type:'CauseDidBlurAction'}});expect(childWillBlurHandler.mock.calls.length).toBe(1);expect(childDidBlurHandler.mock.calls.length).toBe(1);expect(childActionHandler.mock.calls.length).toBe(1);});it('grandchildren pass through transitions',function(){var grandParentSubscriber=jest.fn();var emitGrandParentAction=function emitGrandParentAction(payload){grandParentSubscriber.mock.calls.forEach(function(subs){if(subs[0]===payload.type){subs[1](payload);}});};var subscriptionRemove=function subscriptionRemove(){};grandParentSubscriber.mockReturnValueOnce({remove:subscriptionRemove});var parentSubscriber=(0,_getChildEventSubscriber.default)(grandParentSubscriber,'parent').addListener;var childEventSubscriber=(0,_getChildEventSubscriber.default)(parentSubscriber,'key1').addListener;var makeFakeState=function makeFakeState(childIndex,childIsTransitioning){return{index:childIndex,transitions:{pushing:[],popping:childIsTransitioning?['key2']:[]},routes:[{key:'nothing'},{key:'parent',index:1,routes:[{key:'key0'},{key:'key1'},{key:'key2'}]}].slice(0,childIndex+1)};};var blurredState=makeFakeState(0,false);var transitionState=makeFakeState(1,true);var focusState=makeFakeState(1,false);var transition2State=makeFakeState(0,true);var blurred2State=makeFakeState(0,false);var childActionHandler=jest.fn();var childWillFocusHandler=jest.fn();var childDidFocusHandler=jest.fn();var childWillBlurHandler=jest.fn();var childDidBlurHandler=jest.fn();childEventSubscriber('action',childActionHandler);childEventSubscriber('willFocus',childWillFocusHandler);childEventSubscriber('didFocus',childDidFocusHandler);childEventSubscriber('willBlur',childWillBlurHandler);childEventSubscriber('didBlur',childDidBlurHandler);emitGrandParentAction({type:'action',state:transitionState,lastState:blurredState,action:{type:'FooAction'}});expect(childActionHandler.mock.calls.length).toBe(0);expect(childWillFocusHandler.mock.calls.length).toBe(1);expect(childDidFocusHandler.mock.calls.length).toBe(0);emitGrandParentAction({type:'action',state:focusState,lastState:transitionState,action:{type:'FooAction'}});expect(childActionHandler.mock.calls.length).toBe(0);expect(childWillFocusHandler.mock.calls.length).toBe(1);expect(childDidFocusHandler.mock.calls.length).toBe(1);emitGrandParentAction({type:'action',state:focusState,lastState:focusState,action:{type:'TestAction'}});expect(childWillFocusHandler.mock.calls.length).toBe(1);expect(childDidFocusHandler.mock.calls.length).toBe(1);expect(childActionHandler.mock.calls.length).toBe(1);emitGrandParentAction({type:'action',state:transition2State,lastState:focusState,action:{type:'CauseWillBlurAction'}});expect(childWillBlurHandler.mock.calls.length).toBe(1);expect(childDidBlurHandler.mock.calls.length).toBe(0);expect(childActionHandler.mock.calls.length).toBe(1);emitGrandParentAction({type:'action',state:blurred2State,lastState:transition2State,action:{type:'CauseDidBlurAction'}});expect(childWillBlurHandler.mock.calls.length).toBe(1);expect(childDidBlurHandler.mock.calls.length).toBe(1);expect(childActionHandler.mock.calls.length).toBe(1);});it('child focus with transition',function(){var parentSubscriber=jest.fn();var emitParentAction=function emitParentAction(payload){parentSubscriber.mock.calls.forEach(function(subs){if(subs[0]===payload.type){subs[1](payload);}});};var subscriptionRemove=function subscriptionRemove(){};parentSubscriber.mockReturnValueOnce({remove:subscriptionRemove});var childEventSubscriber=(0,_getChildEventSubscriber.default)(parentSubscriber,'key1').addListener;var randomAction={type:'FooAction'};var testState={key:'foo',routeName:'FooRoute',routes:[{key:'key0'},{key:'key1'}],index:0};var childWillFocusHandler=jest.fn();var childDidFocusHandler=jest.fn();var childWillBlurHandler=jest.fn();var childDidBlurHandler=jest.fn();childEventSubscriber('willFocus',childWillFocusHandler);childEventSubscriber('didFocus',childDidFocusHandler);childEventSubscriber('willBlur',childWillBlurHandler);childEventSubscriber('didBlur',childDidBlurHandler);emitParentAction({type:'didFocus',action:randomAction,lastState:testState,state:testState});emitParentAction({type:'action',action:randomAction,lastState:testState,state:(0,_objectSpread2.default)({},testState,{index:1,transitions:{pushing:[],popping:['key1']}})});expect(childWillFocusHandler.mock.calls.length).toBe(1);emitParentAction({type:'action',action:randomAction,lastState:(0,_objectSpread2.default)({},testState,{index:1,transitions:{pushing:[],popping:['key1']}}),state:(0,_objectSpread2.default)({},testState,{index:1})});expect(childDidFocusHandler.mock.calls.length).toBe(1);emitParentAction({type:'action',action:randomAction,lastState:(0,_objectSpread2.default)({},testState,{index:1}),state:(0,_objectSpread2.default)({},testState,{index:0,transitions:{pushing:[],popping:['key1']}})});expect(childWillBlurHandler.mock.calls.length).toBe(1);emitParentAction({type:'action',action:randomAction,lastState:(0,_objectSpread2.default)({},testState,{index:0,transitions:{pushing:[],popping:['key1']}}),state:(0,_objectSpread2.default)({},testState,{index:0})});expect(childDidBlurHandler.mock.calls.length).toBe(1);});it('child focus with immediate transition',function(){var parentSubscriber=jest.fn();var emitParentAction=function emitParentAction(payload){parentSubscriber.mock.calls.forEach(function(subs){if(subs[0]===payload.type){subs[1](payload);}});};var subscriptionRemove=function subscriptionRemove(){};parentSubscriber.mockReturnValueOnce({remove:subscriptionRemove});var childEventSubscriber=(0,_getChildEventSubscriber.default)(parentSubscriber,'key1').addListener;var randomAction={type:'FooAction'};var testState={key:'foo',routeName:'FooRoute',routes:[{key:'key0'},{key:'key1'}],index:0};var childWillFocusHandler=jest.fn();var childDidFocusHandler=jest.fn();var childWillBlurHandler=jest.fn();var childDidBlurHandler=jest.fn();childEventSubscriber('willFocus',childWillFocusHandler);childEventSubscriber('didFocus',childDidFocusHandler);childEventSubscriber('willBlur',childWillBlurHandler);childEventSubscriber('didBlur',childDidBlurHandler);emitParentAction({type:'didFocus',action:randomAction,lastState:testState,state:testState});emitParentAction({type:'action',action:randomAction,lastState:testState,state:(0,_objectSpread2.default)({},testState,{index:1})});expect(childWillFocusHandler.mock.calls.length).toBe(1);expect(childDidFocusHandler.mock.calls.length).toBe(1);emitParentAction({type:'action',action:randomAction,lastState:(0,_objectSpread2.default)({},testState,{index:1}),state:(0,_objectSpread2.default)({},testState,{index:0})});expect(childWillBlurHandler.mock.calls.length).toBe(1);expect(childDidBlurHandler.mock.calls.length).toBe(1);});var setupEventTest=function setupEventTest(subscriptionKey,initialLastFocusEvent){var parentSubscriber=jest.fn();var emitEvent=function emitEvent(payload){parentSubscriber.mock.calls.forEach(function(subs){if(subs[0]===payload.type){subs[1](payload);}});};var subscriptionRemove=function subscriptionRemove(){};parentSubscriber.mockReturnValueOnce({remove:subscriptionRemove});var evtProvider=(0,_getChildEventSubscriber.default)(parentSubscriber,subscriptionKey,initialLastFocusEvent);var handlers={};evtProvider.addListener('action',handlers.action=jest.fn());evtProvider.addListener('willFocus',handlers.willFocus=jest.fn());evtProvider.addListener('didFocus',handlers.didFocus=jest.fn());evtProvider.addListener('willBlur',handlers.willBlur=jest.fn());evtProvider.addListener('didBlur',handlers.didBlur=jest.fn());return{emitEvent:emitEvent,handlers:handlers,evtProvider:evtProvider};};it('immediate back with uncompleted transition will focus first screen again',function(){var _setupEventTest=setupEventTest('key0','didFocus'),handlers=_setupEventTest.handlers,emitEvent=_setupEventTest.emitEvent;emitEvent({type:'action',state:{index:1,routes:[{key:'key0'},{key:'key1'}],transitions:{pushing:[],popping:['key1']}},lastState:{index:0,routes:[{key:'key0'}]},action:{type:'Any action, does not matter here'}});expect(handlers.willFocus.mock.calls.length).toBe(0);expect(handlers.didFocus.mock.calls.length).toBe(0);expect(handlers.willBlur.mock.calls.length).toBe(1);expect(handlers.didBlur.mock.calls.length).toBe(0);emitEvent({type:'action',state:{index:0,routes:[{key:'key0'}],transitions:{pushing:[],popping:['key0']}},lastState:{index:1,routes:[{key:'key0'},{key:'key1'}],transitions:{pushing:[],popping:['key1']}},action:{type:'Any action, does not matter here'}});expect(handlers.willFocus.mock.calls.length).toBe(1);expect(handlers.didFocus.mock.calls.length).toBe(0);expect(handlers.willBlur.mock.calls.length).toBe(1);expect(handlers.didBlur.mock.calls.length).toBe(0);emitEvent({type:'action',state:{index:0,routes:[{key:'key0'}]},lastState:{index:0,routes:[{key:'key0'}],transitions:{pushing:[],popping:['key0']}},action:{type:'Any action, does not matter here'}});expect(handlers.willFocus.mock.calls.length).toBe(1);expect(handlers.didFocus.mock.calls.length).toBe(1);expect(handlers.willBlur.mock.calls.length).toBe(1);expect(handlers.didBlur.mock.calls.length).toBe(0);});
+ //# sourceMappingURL=getChildEventSubscriber-test.js.map
+\ No newline at end of file
+diff --git a/node_modules/@react-navigation/core/lib/commonjs/__tests__/getChildEventSubscriber-test.js.map b/node_modules/@react-navigation/core/lib/commonjs/__tests__/getChildEventSubscriber-test.js.map
+index 56b55f9..0df62f6 100644
+--- a/node_modules/@react-navigation/core/lib/commonjs/__tests__/getChildEventSubscriber-test.js.map
++++ b/node_modules/@react-navigation/core/lib/commonjs/__tests__/getChildEventSubscriber-test.js.map
+@@ -1 +1 @@
+-{"version":3,"sources":["getChildEventSubscriber-test.js"],"names":["it","parentSubscriber","jest","fn","emitParentAction","payload","mock","calls","forEach","subs","type","subscriptionRemove","mockReturnValueOnce","remove","childEventSubscriber","addListener","testState","key","routeName","routes","index","isTransitioning","focusedTestState","childActionHandler","childWillFocusHandler","childDidFocusHandler","state","lastState","action","expect","length","toBe","grandParentSubscriber","emitGrandParentAction","parentBlurState","parentTransitionState","parentFocusState","makeFakeState","childIndex","childIsTransitioning","blurredState","transitionState","focusState","transition2State","blurred2State","childWillBlurHandler","childDidBlurHandler","slice","randomAction","setupEventTest","subscriptionKey","initialLastFocusEvent","emitEvent","evtProvider","handlers","willFocus","didFocus","willBlur","didBlur"],"mappings":"6KAAA,2FAEAA,EAAE,CAAC,4CAAD,CAA+C,UAAM,CACrD,GAAMC,CAAAA,gBAAgB,CAAGC,IAAI,CAACC,EAAL,EAAzB,CACA,GAAMC,CAAAA,gBAAgB,CAAG,QAAnBA,CAAAA,gBAAmB,CAAAC,OAAO,CAAI,CAClCJ,gBAAgB,CAACK,IAAjB,CAAsBC,KAAtB,CAA4BC,OAA5B,CAAoC,SAAAC,IAAI,CAAI,CAC1C,GAAIA,IAAI,CAAC,CAAD,CAAJ,GAAYJ,OAAO,CAACK,IAAxB,CAA8B,CAC5BD,IAAI,CAAC,CAAD,CAAJ,CAAQJ,OAAR,EACD,CACF,CAJD,EAKD,CAND,CAOA,GAAMM,CAAAA,kBAAkB,CAAG,QAArBA,CAAAA,kBAAqB,EAAM,CAAE,CAAnC,CACAV,gBAAgB,CAACW,mBAAjB,CAAqC,CAAEC,MAAM,CAAEF,kBAAV,CAArC,EACA,GAAMG,CAAAA,oBAAoB,CAAG,qCAAwBb,gBAAxB,CAA0C,MAA1C,EAC1Bc,WADH,CAEA,GAAMC,CAAAA,SAAS,CAAG,CAChBC,GAAG,CAAE,KADW,CAEhBC,SAAS,CAAE,UAFK,CAGhBC,MAAM,CAAE,CAAC,CAAEF,GAAG,CAAE,MAAP,CAAD,CAAkB,CAAEA,GAAG,CAAE,MAAP,CAAlB,CAHQ,CAIhBG,KAAK,CAAE,CAJS,CAKhBC,eAAe,CAAE,KALD,CAAlB,CAOA,GAAMC,CAAAA,gBAAgB,+BACjBN,SADiB,EAEpBI,KAAK,CAAE,CAFa,EAAtB,CAIA,GAAMG,CAAAA,kBAAkB,CAAGrB,IAAI,CAACC,EAAL,EAA3B,CACA,GAAMqB,CAAAA,qBAAqB,CAAGtB,IAAI,CAACC,EAAL,EAA9B,CACA,GAAMsB,CAAAA,oBAAoB,CAAGvB,IAAI,CAACC,EAAL,EAA7B,CACAW,oBAAoB,CAAC,QAAD,CAAWS,kBAAX,CAApB,CACAT,oBAAoB,CAAC,WAAD,CAAcU,qBAAd,CAApB,CACAV,oBAAoB,CAAC,UAAD,CAAaW,oBAAb,CAApB,CACArB,gBAAgB,CAAC,CACfM,IAAI,CAAE,QADS,CAEfgB,KAAK,CAAEJ,gBAFQ,CAGfK,SAAS,CAAEX,SAHI,CAIfY,MAAM,CAAE,CAAElB,IAAI,CAAE,WAAR,CAJO,CAAD,CAAhB,CAMAmB,MAAM,CAACN,kBAAkB,CAACjB,IAAnB,CAAwBC,KAAxB,CAA8BuB,MAA/B,CAAN,CAA6CC,IAA7C,CAAkD,CAAlD,EACAF,MAAM,CAACL,qBAAqB,CAAClB,IAAtB,CAA2BC,KAA3B,CAAiCuB,MAAlC,CAAN,CAAgDC,IAAhD,CAAqD,CAArD,EACAF,MAAM,CAACJ,oBAAoB,CAACnB,IAArB,CAA0BC,KAA1B,CAAgCuB,MAAjC,CAAN,CAA+CC,IAA/C,CAAoD,CAApD,EACA3B,gBAAgB,CAAC,CACfM,IAAI,CAAE,QADS,CAEfgB,KAAK,CAAEJ,gBAFQ,CAGfK,SAAS,CAAEL,gBAHI,CAIfM,MAAM,CAAE,CAAElB,IAAI,CAAE,WAAR,CAJO,CAAD,CAAhB,CAMAmB,MAAM,CAACN,kBAAkB,CAACjB,IAAnB,CAAwBC,KAAxB,CAA8BuB,MAA/B,CAAN,CAA6CC,IAA7C,CAAkD,CAAlD,EACAF,MAAM,CAACL,qBAAqB,CAAClB,IAAtB,CAA2BC,KAA3B,CAAiCuB,MAAlC,CAAN,CAAgDC,IAAhD,CAAqD,CAArD,EACAF,MAAM,CAACJ,oBAAoB,CAACnB,IAArB,CAA0BC,KAA1B,CAAgCuB,MAAjC,CAAN,CAA+CC,IAA/C,CAAoD,CAApD,EACD,CAhDC,CAAF,CAkDA/B,EAAE,CAAC,4BAAD,CAA+B,UAAM,CACrC,GAAMgC,CAAAA,qBAAqB,CAAG9B,IAAI,CAACC,EAAL,EAA9B,CACA,GAAM8B,CAAAA,qBAAqB,CAAG,QAAxBA,CAAAA,qBAAwB,CAAA5B,OAAO,CAAI,CACvC2B,qBAAqB,CAAC1B,IAAtB,CAA2BC,KAA3B,CAAiCC,OAAjC,CAAyC,SAAAC,IAAI,CAAI,CAC/C,GAAIA,IAAI,CAAC,CAAD,CAAJ,GAAYJ,OAAO,CAACK,IAAxB,CAA8B,CAC5BD,IAAI,CAAC,CAAD,CAAJ,CAAQJ,OAAR,EACD,CACF,CAJD,EAKD,CAND,CAOA,GAAMM,CAAAA,kBAAkB,CAAG,QAArBA,CAAAA,kBAAqB,EAAM,CAAE,CAAnC,CACAqB,qBAAqB,CAACpB,mBAAtB,CAA0C,CAAEC,MAAM,CAAEF,kBAAV,CAA1C,EACA,GAAMV,CAAAA,gBAAgB,CAAG,qCACvB+B,qBADuB,CAEvB,QAFuB,EAGvBjB,WAHF,CAIA,GAAMD,CAAAA,oBAAoB,CAAG,qCAAwBb,gBAAxB,CAA0C,MAA1C,EAC1Bc,WADH,CAEA,GAAMmB,CAAAA,eAAe,CAAG,CACtBjB,GAAG,CAAE,KADiB,CAEtBC,SAAS,CAAE,UAFW,CAGtBC,MAAM,CAAE,CACN,CAAEF,GAAG,CAAE,MAAP,CADM,CAEN,CACEA,GAAG,CAAE,QADP,CAEEE,MAAM,CAAE,CAAC,CAAEF,GAAG,CAAE,MAAP,CAAD,CAAkB,CAAEA,GAAG,CAAE,MAAP,CAAlB,CAFV,CAGEG,KAAK,CAAE,CAHT,CAIEC,eAAe,CAAE,KAJnB,CAFM,CAHc,CAYtBD,KAAK,CAAE,CAZe,CAatBC,eAAe,CAAE,KAbK,CAAxB,CAeA,GAAMc,CAAAA,qBAAqB,+BACtBD,eADsB,EAEzBd,KAAK,CAAE,CAFkB,CAGzBC,eAAe,CAAE,IAHQ,EAA3B,CAKA,GAAMe,CAAAA,gBAAgB,+BACjBD,qBADiB,EAEpBd,eAAe,CAAE,KAFG,EAAtB,CAIA,GAAME,CAAAA,kBAAkB,CAAGrB,IAAI,CAACC,EAAL,EAA3B,CACA,GAAMqB,CAAAA,qBAAqB,CAAGtB,IAAI,CAACC,EAAL,EAA9B,CACA,GAAMsB,CAAAA,oBAAoB,CAAGvB,IAAI,CAACC,EAAL,EAA7B,CACAW,oBAAoB,CAAC,QAAD,CAAWS,kBAAX,CAApB,CACAT,oBAAoB,CAAC,WAAD,CAAcU,qBAAd,CAApB,CACAV,oBAAoB,CAAC,UAAD,CAAaW,oBAAb,CAApB,CACAQ,qBAAqB,CAAC,CACpBvB,IAAI,CAAE,QADc,CAEpBgB,KAAK,CAAES,qBAFa,CAGpBR,SAAS,CAAEO,eAHS,CAIpBN,MAAM,CAAE,CAAElB,IAAI,CAAE,WAAR,CAJY,CAAD,CAArB,CAMAmB,MAAM,CAACN,kBAAkB,CAACjB,IAAnB,CAAwBC,KAAxB,CAA8BuB,MAA/B,CAAN,CAA6CC,IAA7C,CAAkD,CAAlD,EACAF,MAAM,CAACL,qBAAqB,CAAClB,IAAtB,CAA2BC,KAA3B,CAAiCuB,MAAlC,CAAN,CAAgDC,IAAhD,CAAqD,CAArD,EACAF,MAAM,CAACJ,oBAAoB,CAACnB,IAArB,CAA0BC,KAA1B,CAAgCuB,MAAjC,CAAN,CAA+CC,IAA/C,CAAoD,CAApD,EACAE,qBAAqB,CAAC,CACpBvB,IAAI,CAAE,QADc,CAEpBgB,KAAK,CAAEU,gBAFa,CAGpBT,SAAS,CAAEQ,qBAHS,CAIpBP,MAAM,CAAE,CAAElB,IAAI,CAAE,WAAR,CAJY,CAAD,CAArB,CAMAmB,MAAM,CAACN,kBAAkB,CAACjB,IAAnB,CAAwBC,KAAxB,CAA8BuB,MAA/B,CAAN,CAA6CC,IAA7C,CAAkD,CAAlD,EACAF,MAAM,CAACL,qBAAqB,CAAClB,IAAtB,CAA2BC,KAA3B,CAAiCuB,MAAlC,CAAN,CAAgDC,IAAhD,CAAqD,CAArD,EACAF,MAAM,CAACJ,oBAAoB,CAACnB,IAArB,CAA0BC,KAA1B,CAAgCuB,MAAjC,CAAN,CAA+CC,IAA/C,CAAoD,CAApD,EACD,CAjEC,CAAF,CAmEA/B,EAAE,CAAC,2BAAD,CAA8B,UAAM,CACpC,GAAMgC,CAAAA,qBAAqB,CAAG9B,IAAI,CAACC,EAAL,EAA9B,CACA,GAAM8B,CAAAA,qBAAqB,CAAG,QAAxBA,CAAAA,qBAAwB,CAAA5B,OAAO,CAAI,CACvC2B,qBAAqB,CAAC1B,IAAtB,CAA2BC,KAA3B,CAAiCC,OAAjC,CAAyC,SAAAC,IAAI,CAAI,CAC/C,GAAIA,IAAI,CAAC,CAAD,CAAJ,GAAYJ,OAAO,CAACK,IAAxB,CAA8B,CAC5BD,IAAI,CAAC,CAAD,CAAJ,CAAQJ,OAAR,EACD,CACF,CAJD,EAKD,CAND,CAOA,GAAMM,CAAAA,kBAAkB,CAAG,QAArBA,CAAAA,kBAAqB,EAAM,CAAE,CAAnC,CACAqB,qBAAqB,CAACpB,mBAAtB,CAA0C,CAAEC,MAAM,CAAEF,kBAAV,CAA1C,EACA,GAAMV,CAAAA,gBAAgB,CAAG,qCACvB+B,qBADuB,CAEvB,QAFuB,EAGvBjB,WAHF,CAIA,GAAMD,CAAAA,oBAAoB,CAAG,qCAAwBb,gBAAxB,CAA0C,MAA1C,EAC1Bc,WADH,CAEA,GAAMsB,CAAAA,aAAa,CAAG,QAAhBA,CAAAA,aAAgB,CAACC,UAAD,CAAaC,oBAAb,QAAuC,CAC3DnB,KAAK,CAAE,CADoD,CAE3DC,eAAe,CAAE,KAF0C,CAG3DF,MAAM,CAAE,CACN,CAAEF,GAAG,CAAE,SAAP,CADM,CAEN,CACEA,GAAG,CAAE,QADP,CAEEG,KAAK,CAAEkB,UAFT,CAGEjB,eAAe,CAAEkB,oBAHnB,CAIEpB,MAAM,CAAE,CAAC,CAAEF,GAAG,CAAE,MAAP,CAAD,CAAkB,CAAEA,GAAG,CAAE,MAAP,CAAlB,CAAmC,CAAEA,GAAG,CAAE,MAAP,CAAnC,CAJV,CAFM,CAHmD,CAAvC,EAAtB,CAaA,GAAMuB,CAAAA,YAAY,CAAGH,aAAa,CAAC,CAAD,CAAI,KAAJ,CAAlC,CACA,GAAMI,CAAAA,eAAe,CAAGJ,aAAa,CAAC,CAAD,CAAI,IAAJ,CAArC,CACA,GAAMK,CAAAA,UAAU,CAAGL,aAAa,CAAC,CAAD,CAAI,KAAJ,CAAhC,CACA,GAAMM,CAAAA,gBAAgB,CAAGN,aAAa,CAAC,CAAD,CAAI,IAAJ,CAAtC,CACA,GAAMO,CAAAA,aAAa,CAAGP,aAAa,CAAC,CAAD,CAAI,KAAJ,CAAnC,CAEA,GAAMd,CAAAA,kBAAkB,CAAGrB,IAAI,CAACC,EAAL,EAA3B,CACA,GAAMqB,CAAAA,qBAAqB,CAAGtB,IAAI,CAACC,EAAL,EAA9B,CACA,GAAMsB,CAAAA,oBAAoB,CAAGvB,IAAI,CAACC,EAAL,EAA7B,CACA,GAAM0C,CAAAA,oBAAoB,CAAG3C,IAAI,CAACC,EAAL,EAA7B,CACA,GAAM2C,CAAAA,mBAAmB,CAAG5C,IAAI,CAACC,EAAL,EAA5B,CACAW,oBAAoB,CAAC,QAAD,CAAWS,kBAAX,CAApB,CACAT,oBAAoB,CAAC,WAAD,CAAcU,qBAAd,CAApB,CACAV,oBAAoB,CAAC,UAAD,CAAaW,oBAAb,CAApB,CACAX,oBAAoB,CAAC,UAAD,CAAa+B,oBAAb,CAApB,CACA/B,oBAAoB,CAAC,SAAD,CAAYgC,mBAAZ,CAApB,CACAb,qBAAqB,CAAC,CACpBvB,IAAI,CAAE,QADc,CAEpBgB,KAAK,CAAEe,eAFa,CAGpBd,SAAS,CAAEa,YAHS,CAIpBZ,MAAM,CAAE,CAAElB,IAAI,CAAE,WAAR,CAJY,CAAD,CAArB,CAMAmB,MAAM,CAACN,kBAAkB,CAACjB,IAAnB,CAAwBC,KAAxB,CAA8BuB,MAA/B,CAAN,CAA6CC,IAA7C,CAAkD,CAAlD,EACAF,MAAM,CAACL,qBAAqB,CAAClB,IAAtB,CAA2BC,KAA3B,CAAiCuB,MAAlC,CAAN,CAAgDC,IAAhD,CAAqD,CAArD,EACAF,MAAM,CAACJ,oBAAoB,CAACnB,IAArB,CAA0BC,KAA1B,CAAgCuB,MAAjC,CAAN,CAA+CC,IAA/C,CAAoD,CAApD,EACAE,qBAAqB,CAAC,CACpBvB,IAAI,CAAE,QADc,CAEpBgB,KAAK,CAAEgB,UAFa,CAGpBf,SAAS,CAAEc,eAHS,CAIpBb,MAAM,CAAE,CAAElB,IAAI,CAAE,WAAR,CAJY,CAAD,CAArB,CAMAmB,MAAM,CAACN,kBAAkB,CAACjB,IAAnB,CAAwBC,KAAxB,CAA8BuB,MAA/B,CAAN,CAA6CC,IAA7C,CAAkD,CAAlD,EACAF,MAAM,CAACL,qBAAqB,CAAClB,IAAtB,CAA2BC,KAA3B,CAAiCuB,MAAlC,CAAN,CAAgDC,IAAhD,CAAqD,CAArD,EACAF,MAAM,CAACJ,oBAAoB,CAACnB,IAArB,CAA0BC,KAA1B,CAAgCuB,MAAjC,CAAN,CAA+CC,IAA/C,CAAoD,CAApD,EACAE,qBAAqB,CAAC,CACpBvB,IAAI,CAAE,QADc,CAEpBgB,KAAK,CAAEgB,UAFa,CAGpBf,SAAS,CAAEe,UAHS,CAIpBd,MAAM,CAAE,CAAElB,IAAI,CAAE,YAAR,CAJY,CAAD,CAArB,CAMAmB,MAAM,CAACL,qBAAqB,CAAClB,IAAtB,CAA2BC,KAA3B,CAAiCuB,MAAlC,CAAN,CAAgDC,IAAhD,CAAqD,CAArD,EACAF,MAAM,CAACJ,oBAAoB,CAACnB,IAArB,CAA0BC,KAA1B,CAAgCuB,MAAjC,CAAN,CAA+CC,IAA/C,CAAoD,CAApD,EACAF,MAAM,CAACN,kBAAkB,CAACjB,IAAnB,CAAwBC,KAAxB,CAA8BuB,MAA/B,CAAN,CAA6CC,IAA7C,CAAkD,CAAlD,EACAE,qBAAqB,CAAC,CACpBvB,IAAI,CAAE,QADc,CAEpBgB,KAAK,CAAEiB,gBAFa,CAGpBhB,SAAS,CAAEe,UAHS,CAIpBd,MAAM,CAAE,CAAElB,IAAI,CAAE,qBAAR,CAJY,CAAD,CAArB,CAMAmB,MAAM,CAACgB,oBAAoB,CAACvC,IAArB,CAA0BC,KAA1B,CAAgCuB,MAAjC,CAAN,CAA+CC,IAA/C,CAAoD,CAApD,EACAF,MAAM,CAACiB,mBAAmB,CAACxC,IAApB,CAAyBC,KAAzB,CAA+BuB,MAAhC,CAAN,CAA8CC,IAA9C,CAAmD,CAAnD,EACAF,MAAM,CAACN,kBAAkB,CAACjB,IAAnB,CAAwBC,KAAxB,CAA8BuB,MAA/B,CAAN,CAA6CC,IAA7C,CAAkD,CAAlD,EACAE,qBAAqB,CAAC,CACpBvB,IAAI,CAAE,QADc,CAEpBgB,KAAK,CAAEkB,aAFa,CAGpBjB,SAAS,CAAEgB,gBAHS,CAIpBf,MAAM,CAAE,CAAElB,IAAI,CAAE,oBAAR,CAJY,CAAD,CAArB,CAMAmB,MAAM,CAACgB,oBAAoB,CAACvC,IAArB,CAA0BC,KAA1B,CAAgCuB,MAAjC,CAAN,CAA+CC,IAA/C,CAAoD,CAApD,EACAF,MAAM,CAACiB,mBAAmB,CAACxC,IAApB,CAAyBC,KAAzB,CAA+BuB,MAAhC,CAAN,CAA8CC,IAA9C,CAAmD,CAAnD,EACAF,MAAM,CAACN,kBAAkB,CAACjB,IAAnB,CAAwBC,KAAxB,CAA8BuB,MAA/B,CAAN,CAA6CC,IAA7C,CAAkD,CAAlD,EACD,CA3FC,CAAF,CA6FA/B,EAAE,CAAC,wCAAD,CAA2C,UAAM,CACjD,GAAMgC,CAAAA,qBAAqB,CAAG9B,IAAI,CAACC,EAAL,EAA9B,CACA,GAAM8B,CAAAA,qBAAqB,CAAG,QAAxBA,CAAAA,qBAAwB,CAAA5B,OAAO,CAAI,CACvC2B,qBAAqB,CAAC1B,IAAtB,CAA2BC,KAA3B,CAAiCC,OAAjC,CAAyC,SAAAC,IAAI,CAAI,CAC/C,GAAIA,IAAI,CAAC,CAAD,CAAJ,GAAYJ,OAAO,CAACK,IAAxB,CAA8B,CAC5BD,IAAI,CAAC,CAAD,CAAJ,CAAQJ,OAAR,EACD,CACF,CAJD,EAKD,CAND,CAOA,GAAMM,CAAAA,kBAAkB,CAAG,QAArBA,CAAAA,kBAAqB,EAAM,CAAE,CAAnC,CACAqB,qBAAqB,CAACpB,mBAAtB,CAA0C,CAAEC,MAAM,CAAEF,kBAAV,CAA1C,EACA,GAAMV,CAAAA,gBAAgB,CAAG,qCACvB+B,qBADuB,CAEvB,QAFuB,EAGvBjB,WAHF,CAIA,GAAMD,CAAAA,oBAAoB,CAAG,qCAAwBb,gBAAxB,CAA0C,MAA1C,EAC1Bc,WADH,CAEA,GAAMsB,CAAAA,aAAa,CAAG,QAAhBA,CAAAA,aAAgB,CAACC,UAAD,CAAaC,oBAAb,QAAuC,CAC3DnB,KAAK,CAAEkB,UADoD,CAE3DjB,eAAe,CAAEkB,oBAF0C,CAG3DpB,MAAM,CAAE,CACN,CAAEF,GAAG,CAAE,SAAP,CADM,CAEN,CACEA,GAAG,CAAE,QADP,CAEEG,KAAK,CAAE,CAFT,CAGEC,eAAe,CAAE,KAHnB,CAIEF,MAAM,CAAE,CAAC,CAAEF,GAAG,CAAE,MAAP,CAAD,CAAkB,CAAEA,GAAG,CAAE,MAAP,CAAlB,CAAmC,CAAEA,GAAG,CAAE,MAAP,CAAnC,CAJV,CAFM,EAQN8B,KARM,CAQA,CARA,CAQGT,UAAU,CAAG,CARhB,CAHmD,CAAvC,EAAtB,CAaA,GAAME,CAAAA,YAAY,CAAGH,aAAa,CAAC,CAAD,CAAI,KAAJ,CAAlC,CACA,GAAMI,CAAAA,eAAe,CAAGJ,aAAa,CAAC,CAAD,CAAI,IAAJ,CAArC,CACA,GAAMK,CAAAA,UAAU,CAAGL,aAAa,CAAC,CAAD,CAAI,KAAJ,CAAhC,CACA,GAAMM,CAAAA,gBAAgB,CAAGN,aAAa,CAAC,CAAD,CAAI,IAAJ,CAAtC,CACA,GAAMO,CAAAA,aAAa,CAAGP,aAAa,CAAC,CAAD,CAAI,KAAJ,CAAnC,CAEA,GAAMd,CAAAA,kBAAkB,CAAGrB,IAAI,CAACC,EAAL,EAA3B,CACA,GAAMqB,CAAAA,qBAAqB,CAAGtB,IAAI,CAACC,EAAL,EAA9B,CACA,GAAMsB,CAAAA,oBAAoB,CAAGvB,IAAI,CAACC,EAAL,EAA7B,CACA,GAAM0C,CAAAA,oBAAoB,CAAG3C,IAAI,CAACC,EAAL,EAA7B,CACA,GAAM2C,CAAAA,mBAAmB,CAAG5C,IAAI,CAACC,EAAL,EAA5B,CACAW,oBAAoB,CAAC,QAAD,CAAWS,kBAAX,CAApB,CACAT,oBAAoB,CAAC,WAAD,CAAcU,qBAAd,CAApB,CACAV,oBAAoB,CAAC,UAAD,CAAaW,oBAAb,CAApB,CACAX,oBAAoB,CAAC,UAAD,CAAa+B,oBAAb,CAApB,CACA/B,oBAAoB,CAAC,SAAD,CAAYgC,mBAAZ,CAApB,CACAb,qBAAqB,CAAC,CACpBvB,IAAI,CAAE,QADc,CAEpBgB,KAAK,CAAEe,eAFa,CAGpBd,SAAS,CAAEa,YAHS,CAIpBZ,MAAM,CAAE,CAAElB,IAAI,CAAE,WAAR,CAJY,CAAD,CAArB,CAMAmB,MAAM,CAACN,kBAAkB,CAACjB,IAAnB,CAAwBC,KAAxB,CAA8BuB,MAA/B,CAAN,CAA6CC,IAA7C,CAAkD,CAAlD,EACAF,MAAM,CAACL,qBAAqB,CAAClB,IAAtB,CAA2BC,KAA3B,CAAiCuB,MAAlC,CAAN,CAAgDC,IAAhD,CAAqD,CAArD,EACAF,MAAM,CAACJ,oBAAoB,CAACnB,IAArB,CAA0BC,KAA1B,CAAgCuB,MAAjC,CAAN,CAA+CC,IAA/C,CAAoD,CAApD,EACAE,qBAAqB,CAAC,CACpBvB,IAAI,CAAE,QADc,CAEpBgB,KAAK,CAAEgB,UAFa,CAGpBf,SAAS,CAAEc,eAHS,CAIpBb,MAAM,CAAE,CAAElB,IAAI,CAAE,WAAR,CAJY,CAAD,CAArB,CAMAmB,MAAM,CAACN,kBAAkB,CAACjB,IAAnB,CAAwBC,KAAxB,CAA8BuB,MAA/B,CAAN,CAA6CC,IAA7C,CAAkD,CAAlD,EACAF,MAAM,CAACL,qBAAqB,CAAClB,IAAtB,CAA2BC,KAA3B,CAAiCuB,MAAlC,CAAN,CAAgDC,IAAhD,CAAqD,CAArD,EACAF,MAAM,CAACJ,oBAAoB,CAACnB,IAArB,CAA0BC,KAA1B,CAAgCuB,MAAjC,CAAN,CAA+CC,IAA/C,CAAoD,CAApD,EACAE,qBAAqB,CAAC,CACpBvB,IAAI,CAAE,QADc,CAEpBgB,KAAK,CAAEgB,UAFa,CAGpBf,SAAS,CAAEe,UAHS,CAIpBd,MAAM,CAAE,CAAElB,IAAI,CAAE,YAAR,CAJY,CAAD,CAArB,CAMAmB,MAAM,CAACL,qBAAqB,CAAClB,IAAtB,CAA2BC,KAA3B,CAAiCuB,MAAlC,CAAN,CAAgDC,IAAhD,CAAqD,CAArD,EACAF,MAAM,CAACJ,oBAAoB,CAACnB,IAArB,CAA0BC,KAA1B,CAAgCuB,MAAjC,CAAN,CAA+CC,IAA/C,CAAoD,CAApD,EACAF,MAAM,CAACN,kBAAkB,CAACjB,IAAnB,CAAwBC,KAAxB,CAA8BuB,MAA/B,CAAN,CAA6CC,IAA7C,CAAkD,CAAlD,EACAE,qBAAqB,CAAC,CACpBvB,IAAI,CAAE,QADc,CAEpBgB,KAAK,CAAEiB,gBAFa,CAGpBhB,SAAS,CAAEe,UAHS,CAIpBd,MAAM,CAAE,CAAElB,IAAI,CAAE,qBAAR,CAJY,CAAD,CAArB,CAMAmB,MAAM,CAACgB,oBAAoB,CAACvC,IAArB,CAA0BC,KAA1B,CAAgCuB,MAAjC,CAAN,CAA+CC,IAA/C,CAAoD,CAApD,EACAF,MAAM,CAACiB,mBAAmB,CAACxC,IAApB,CAAyBC,KAAzB,CAA+BuB,MAAhC,CAAN,CAA8CC,IAA9C,CAAmD,CAAnD,EACAF,MAAM,CAACN,kBAAkB,CAACjB,IAAnB,CAAwBC,KAAxB,CAA8BuB,MAA/B,CAAN,CAA6CC,IAA7C,CAAkD,CAAlD,EACAE,qBAAqB,CAAC,CACpBvB,IAAI,CAAE,QADc,CAEpBgB,KAAK,CAAEkB,aAFa,CAGpBjB,SAAS,CAAEgB,gBAHS,CAIpBf,MAAM,CAAE,CAAElB,IAAI,CAAE,oBAAR,CAJY,CAAD,CAArB,CAMAmB,MAAM,CAACgB,oBAAoB,CAACvC,IAArB,CAA0BC,KAA1B,CAAgCuB,MAAjC,CAAN,CAA+CC,IAA/C,CAAoD,CAApD,EACAF,MAAM,CAACiB,mBAAmB,CAACxC,IAApB,CAAyBC,KAAzB,CAA+BuB,MAAhC,CAAN,CAA8CC,IAA9C,CAAmD,CAAnD,EACAF,MAAM,CAACN,kBAAkB,CAACjB,IAAnB,CAAwBC,KAAxB,CAA8BuB,MAA/B,CAAN,CAA6CC,IAA7C,CAAkD,CAAlD,EACD,CA3FC,CAAF,CA6FA/B,EAAE,CAAC,6BAAD,CAAgC,UAAM,CACtC,GAAMC,CAAAA,gBAAgB,CAAGC,IAAI,CAACC,EAAL,EAAzB,CACA,GAAMC,CAAAA,gBAAgB,CAAG,QAAnBA,CAAAA,gBAAmB,CAAAC,OAAO,CAAI,CAClCJ,gBAAgB,CAACK,IAAjB,CAAsBC,KAAtB,CAA4BC,OAA5B,CAAoC,SAAAC,IAAI,CAAI,CAC1C,GAAIA,IAAI,CAAC,CAAD,CAAJ,GAAYJ,OAAO,CAACK,IAAxB,CAA8B,CAC5BD,IAAI,CAAC,CAAD,CAAJ,CAAQJ,OAAR,EACD,CACF,CAJD,EAKD,CAND,CAOA,GAAMM,CAAAA,kBAAkB,CAAG,QAArBA,CAAAA,kBAAqB,EAAM,CAAE,CAAnC,CACAV,gBAAgB,CAACW,mBAAjB,CAAqC,CAAEC,MAAM,CAAEF,kBAAV,CAArC,EACA,GAAMG,CAAAA,oBAAoB,CAAG,qCAAwBb,gBAAxB,CAA0C,MAA1C,EAC1Bc,WADH,CAEA,GAAMiC,CAAAA,YAAY,CAAG,CAAEtC,IAAI,CAAE,WAAR,CAArB,CACA,GAAMM,CAAAA,SAAS,CAAG,CAChBC,GAAG,CAAE,KADW,CAEhBC,SAAS,CAAE,UAFK,CAGhBC,MAAM,CAAE,CAAC,CAAEF,GAAG,CAAE,MAAP,CAAD,CAAkB,CAAEA,GAAG,CAAE,MAAP,CAAlB,CAHQ,CAIhBG,KAAK,CAAE,CAJS,CAKhBC,eAAe,CAAE,KALD,CAAlB,CAOA,GAAMG,CAAAA,qBAAqB,CAAGtB,IAAI,CAACC,EAAL,EAA9B,CACA,GAAMsB,CAAAA,oBAAoB,CAAGvB,IAAI,CAACC,EAAL,EAA7B,CACA,GAAM0C,CAAAA,oBAAoB,CAAG3C,IAAI,CAACC,EAAL,EAA7B,CACA,GAAM2C,CAAAA,mBAAmB,CAAG5C,IAAI,CAACC,EAAL,EAA5B,CACAW,oBAAoB,CAAC,WAAD,CAAcU,qBAAd,CAApB,CACAV,oBAAoB,CAAC,UAAD,CAAaW,oBAAb,CAApB,CACAX,oBAAoB,CAAC,UAAD,CAAa+B,oBAAb,CAApB,CACA/B,oBAAoB,CAAC,SAAD,CAAYgC,mBAAZ,CAApB,CACA1C,gBAAgB,CAAC,CACfM,IAAI,CAAE,UADS,CAEfkB,MAAM,CAAEoB,YAFO,CAGfrB,SAAS,CAAEX,SAHI,CAIfU,KAAK,CAAEV,SAJQ,CAAD,CAAhB,CAMAZ,gBAAgB,CAAC,CACfM,IAAI,CAAE,QADS,CAEfkB,MAAM,CAAEoB,YAFO,CAGfrB,SAAS,CAAEX,SAHI,CAIfU,KAAK,+BACAV,SADA,EAEHI,KAAK,CAAE,CAFJ,CAGHC,eAAe,CAAE,IAHd,EAJU,CAAD,CAAhB,CAUAQ,MAAM,CAACL,qBAAqB,CAAClB,IAAtB,CAA2BC,KAA3B,CAAiCuB,MAAlC,CAAN,CAAgDC,IAAhD,CAAqD,CAArD,EACA3B,gBAAgB,CAAC,CACfM,IAAI,CAAE,QADS,CAEfkB,MAAM,CAAEoB,YAFO,CAGfrB,SAAS,+BACJX,SADI,EAEPI,KAAK,CAAE,CAFA,CAGPC,eAAe,CAAE,IAHV,EAHM,CAQfK,KAAK,+BACAV,SADA,EAEHI,KAAK,CAAE,CAFJ,CAGHC,eAAe,CAAE,KAHd,EARU,CAAD,CAAhB,CAcAQ,MAAM,CAACJ,oBAAoB,CAACnB,IAArB,CAA0BC,KAA1B,CAAgCuB,MAAjC,CAAN,CAA+CC,IAA/C,CAAoD,CAApD,EACA3B,gBAAgB,CAAC,CACfM,IAAI,CAAE,QADS,CAEfkB,MAAM,CAAEoB,YAFO,CAGfrB,SAAS,+BACJX,SADI,EAEPI,KAAK,CAAE,CAFA,CAGPC,eAAe,CAAE,KAHV,EAHM,CAQfK,KAAK,+BACAV,SADA,EAEHI,KAAK,CAAE,CAFJ,CAGHC,eAAe,CAAE,IAHd,EARU,CAAD,CAAhB,CAcAQ,MAAM,CAACgB,oBAAoB,CAACvC,IAArB,CAA0BC,KAA1B,CAAgCuB,MAAjC,CAAN,CAA+CC,IAA/C,CAAoD,CAApD,EACA3B,gBAAgB,CAAC,CACfM,IAAI,CAAE,QADS,CAEfkB,MAAM,CAAEoB,YAFO,CAGfrB,SAAS,+BACJX,SADI,EAEPI,KAAK,CAAE,CAFA,CAGPC,eAAe,CAAE,IAHV,EAHM,CAQfK,KAAK,+BACAV,SADA,EAEHI,KAAK,CAAE,CAFJ,CAGHC,eAAe,CAAE,KAHd,EARU,CAAD,CAAhB,CAcAQ,MAAM,CAACiB,mBAAmB,CAACxC,IAApB,CAAyBC,KAAzB,CAA+BuB,MAAhC,CAAN,CAA8CC,IAA9C,CAAmD,CAAnD,EACD,CA3FC,CAAF,CA6FA/B,EAAE,CAAC,uCAAD,CAA0C,UAAM,CAChD,GAAMC,CAAAA,gBAAgB,CAAGC,IAAI,CAACC,EAAL,EAAzB,CACA,GAAMC,CAAAA,gBAAgB,CAAG,QAAnBA,CAAAA,gBAAmB,CAAAC,OAAO,CAAI,CAClCJ,gBAAgB,CAACK,IAAjB,CAAsBC,KAAtB,CAA4BC,OAA5B,CAAoC,SAAAC,IAAI,CAAI,CAC1C,GAAIA,IAAI,CAAC,CAAD,CAAJ,GAAYJ,OAAO,CAACK,IAAxB,CAA8B,CAC5BD,IAAI,CAAC,CAAD,CAAJ,CAAQJ,OAAR,EACD,CACF,CAJD,EAKD,CAND,CAOA,GAAMM,CAAAA,kBAAkB,CAAG,QAArBA,CAAAA,kBAAqB,EAAM,CAAE,CAAnC,CACAV,gBAAgB,CAACW,mBAAjB,CAAqC,CAAEC,MAAM,CAAEF,kBAAV,CAArC,EACA,GAAMG,CAAAA,oBAAoB,CAAG,qCAAwBb,gBAAxB,CAA0C,MAA1C,EAC1Bc,WADH,CAEA,GAAMiC,CAAAA,YAAY,CAAG,CAAEtC,IAAI,CAAE,WAAR,CAArB,CACA,GAAMM,CAAAA,SAAS,CAAG,CAChBC,GAAG,CAAE,KADW,CAEhBC,SAAS,CAAE,UAFK,CAGhBC,MAAM,CAAE,CAAC,CAAEF,GAAG,CAAE,MAAP,CAAD,CAAkB,CAAEA,GAAG,CAAE,MAAP,CAAlB,CAHQ,CAIhBG,KAAK,CAAE,CAJS,CAKhBC,eAAe,CAAE,KALD,CAAlB,CAOA,GAAMG,CAAAA,qBAAqB,CAAGtB,IAAI,CAACC,EAAL,EAA9B,CACA,GAAMsB,CAAAA,oBAAoB,CAAGvB,IAAI,CAACC,EAAL,EAA7B,CACA,GAAM0C,CAAAA,oBAAoB,CAAG3C,IAAI,CAACC,EAAL,EAA7B,CACA,GAAM2C,CAAAA,mBAAmB,CAAG5C,IAAI,CAACC,EAAL,EAA5B,CACAW,oBAAoB,CAAC,WAAD,CAAcU,qBAAd,CAApB,CACAV,oBAAoB,CAAC,UAAD,CAAaW,oBAAb,CAApB,CACAX,oBAAoB,CAAC,UAAD,CAAa+B,oBAAb,CAApB,CACA/B,oBAAoB,CAAC,SAAD,CAAYgC,mBAAZ,CAApB,CACA1C,gBAAgB,CAAC,CACfM,IAAI,CAAE,UADS,CAEfkB,MAAM,CAAEoB,YAFO,CAGfrB,SAAS,CAAEX,SAHI,CAIfU,KAAK,CAAEV,SAJQ,CAAD,CAAhB,CAMAZ,gBAAgB,CAAC,CACfM,IAAI,CAAE,QADS,CAEfkB,MAAM,CAAEoB,YAFO,CAGfrB,SAAS,CAAEX,SAHI,CAIfU,KAAK,+BACAV,SADA,EAEHI,KAAK,CAAE,CAFJ,EAJU,CAAD,CAAhB,CASAS,MAAM,CAACL,qBAAqB,CAAClB,IAAtB,CAA2BC,KAA3B,CAAiCuB,MAAlC,CAAN,CAAgDC,IAAhD,CAAqD,CAArD,EACAF,MAAM,CAACJ,oBAAoB,CAACnB,IAArB,CAA0BC,KAA1B,CAAgCuB,MAAjC,CAAN,CAA+CC,IAA/C,CAAoD,CAApD,EAEA3B,gBAAgB,CAAC,CACfM,IAAI,CAAE,QADS,CAEfkB,MAAM,CAAEoB,YAFO,CAGfrB,SAAS,+BACJX,SADI,EAEPI,KAAK,CAAE,CAFA,EAHM,CAOfM,KAAK,+BACAV,SADA,EAEHI,KAAK,CAAE,CAFJ,EAPU,CAAD,CAAhB,CAYAS,MAAM,CAACgB,oBAAoB,CAACvC,IAArB,CAA0BC,KAA1B,CAAgCuB,MAAjC,CAAN,CAA+CC,IAA/C,CAAoD,CAApD,EACAF,MAAM,CAACiB,mBAAmB,CAACxC,IAApB,CAAyBC,KAAzB,CAA+BuB,MAAhC,CAAN,CAA8CC,IAA9C,CAAmD,CAAnD,EACD,CA7DC,CAAF,CA+DA,GAAMkB,CAAAA,cAAc,CAAG,QAAjBA,CAAAA,cAAiB,CAACC,eAAD,CAAkBC,qBAAlB,CAA4C,CACjE,GAAMlD,CAAAA,gBAAgB,CAAGC,IAAI,CAACC,EAAL,EAAzB,CACA,GAAMiD,CAAAA,SAAS,CAAG,QAAZA,CAAAA,SAAY,CAAA/C,OAAO,CAAI,CAC3BJ,gBAAgB,CAACK,IAAjB,CAAsBC,KAAtB,CAA4BC,OAA5B,CAAoC,SAAAC,IAAI,CAAI,CAC1C,GAAIA,IAAI,CAAC,CAAD,CAAJ,GAAYJ,OAAO,CAACK,IAAxB,CAA8B,CAC5BD,IAAI,CAAC,CAAD,CAAJ,CAAQJ,OAAR,EACD,CACF,CAJD,EAKD,CAND,CAOA,GAAMM,CAAAA,kBAAkB,CAAG,QAArBA,CAAAA,kBAAqB,EAAM,CAAE,CAAnC,CACAV,gBAAgB,CAACW,mBAAjB,CAAqC,CAAEC,MAAM,CAAEF,kBAAV,CAArC,EACA,GAAM0C,CAAAA,WAAW,CAAG,qCAClBpD,gBADkB,CAElBiD,eAFkB,CAGlBC,qBAHkB,CAApB,CAKA,GAAMG,CAAAA,QAAQ,CAAG,EAAjB,CACAD,WAAW,CAACtC,WAAZ,CAAwB,QAAxB,CAAmCuC,QAAQ,CAAC1B,MAAT,CAAkB1B,IAAI,CAACC,EAAL,EAArD,EACAkD,WAAW,CAACtC,WAAZ,CAAwB,WAAxB,CAAsCuC,QAAQ,CAACC,SAAT,CAAqBrD,IAAI,CAACC,EAAL,EAA3D,EACAkD,WAAW,CAACtC,WAAZ,CAAwB,UAAxB,CAAqCuC,QAAQ,CAACE,QAAT,CAAoBtD,IAAI,CAACC,EAAL,EAAzD,EACAkD,WAAW,CAACtC,WAAZ,CAAwB,UAAxB,CAAqCuC,QAAQ,CAACG,QAAT,CAAoBvD,IAAI,CAACC,EAAL,EAAzD,EACAkD,WAAW,CAACtC,WAAZ,CAAwB,SAAxB,CAAoCuC,QAAQ,CAACI,OAAT,CAAmBxD,IAAI,CAACC,EAAL,EAAvD,EACA,MAAO,CAAEiD,SAAS,CAATA,SAAF,CAAaE,QAAQ,CAARA,QAAb,CAAuBD,WAAW,CAAXA,WAAvB,CAAP,CACD,CAvBD,CAyBArD,EAAE,CAAC,0EAAD,CAA6E,UAAM,qBACnDiD,cAAc,CAAC,MAAD,CAAS,UAAT,CADqC,CAC3EK,QAD2E,iBAC3EA,QAD2E,CACjEF,SADiE,iBACjEA,SADiE,CAEnFA,SAAS,CAAC,CACR1C,IAAI,CAAE,QADE,CAERgB,KAAK,CAAE,CACLN,KAAK,CAAE,CADF,CAELD,MAAM,CAAE,CAAC,CAAEF,GAAG,CAAE,MAAP,CAAD,CAAkB,CAAEA,GAAG,CAAE,MAAP,CAAlB,CAFH,CAGLI,eAAe,CAAE,IAHZ,CAFC,CAORM,SAAS,CAAE,CACTP,KAAK,CAAE,CADE,CAETD,MAAM,CAAE,CAAC,CAAEF,GAAG,CAAE,MAAP,CAAD,CAFC,CAGTI,eAAe,CAAE,KAHR,CAPH,CAYRO,MAAM,CAAE,CAAElB,IAAI,CAAE,kCAAR,CAZA,CAAD,CAAT,CAcAmB,MAAM,CAACyB,QAAQ,CAACC,SAAT,CAAmBjD,IAAnB,CAAwBC,KAAxB,CAA8BuB,MAA/B,CAAN,CAA6CC,IAA7C,CAAkD,CAAlD,EACAF,MAAM,CAACyB,QAAQ,CAACE,QAAT,CAAkBlD,IAAlB,CAAuBC,KAAvB,CAA6BuB,MAA9B,CAAN,CAA4CC,IAA5C,CAAiD,CAAjD,EACAF,MAAM,CAACyB,QAAQ,CAACG,QAAT,CAAkBnD,IAAlB,CAAuBC,KAAvB,CAA6BuB,MAA9B,CAAN,CAA4CC,IAA5C,CAAiD,CAAjD,EACAF,MAAM,CAACyB,QAAQ,CAACI,OAAT,CAAiBpD,IAAjB,CAAsBC,KAAtB,CAA4BuB,MAA7B,CAAN,CAA2CC,IAA3C,CAAgD,CAAhD,EACAqB,SAAS,CAAC,CACR1C,IAAI,CAAE,QADE,CAERgB,KAAK,CAAE,CACLN,KAAK,CAAE,CADF,CAELD,MAAM,CAAE,CAAC,CAAEF,GAAG,CAAE,MAAP,CAAD,CAFH,CAGLI,eAAe,CAAE,IAHZ,CAFC,CAORM,SAAS,CAAE,CACTP,KAAK,CAAE,CADE,CAETD,MAAM,CAAE,CAAC,CAAEF,GAAG,CAAE,MAAP,CAAD,CAAkB,CAAEA,GAAG,CAAE,MAAP,CAAlB,CAFC,CAGTI,eAAe,CAAE,IAHR,CAPH,CAYRO,MAAM,CAAE,CAAElB,IAAI,CAAE,kCAAR,CAZA,CAAD,CAAT,CAcAmB,MAAM,CAACyB,QAAQ,CAACC,SAAT,CAAmBjD,IAAnB,CAAwBC,KAAxB,CAA8BuB,MAA/B,CAAN,CAA6CC,IAA7C,CAAkD,CAAlD,EACAF,MAAM,CAACyB,QAAQ,CAACE,QAAT,CAAkBlD,IAAlB,CAAuBC,KAAvB,CAA6BuB,MAA9B,CAAN,CAA4CC,IAA5C,CAAiD,CAAjD,EACAF,MAAM,CAACyB,QAAQ,CAACG,QAAT,CAAkBnD,IAAlB,CAAuBC,KAAvB,CAA6BuB,MAA9B,CAAN,CAA4CC,IAA5C,CAAiD,CAAjD,EACAF,MAAM,CAACyB,QAAQ,CAACI,OAAT,CAAiBpD,IAAjB,CAAsBC,KAAtB,CAA4BuB,MAA7B,CAAN,CAA2CC,IAA3C,CAAgD,CAAhD,EACAqB,SAAS,CAAC,CACR1C,IAAI,CAAE,QADE,CAERgB,KAAK,CAAE,CACLN,KAAK,CAAE,CADF,CAELD,MAAM,CAAE,CAAC,CAAEF,GAAG,CAAE,MAAP,CAAD,CAFH,CAGLI,eAAe,CAAE,KAHZ,CAFC,CAORM,SAAS,CAAE,CACTP,KAAK,CAAE,CADE,CAETD,MAAM,CAAE,CAAC,CAAEF,GAAG,CAAE,MAAP,CAAD,CAFC,CAGTI,eAAe,CAAE,IAHR,CAPH,CAYRO,MAAM,CAAE,CAAElB,IAAI,CAAE,kCAAR,CAZA,CAAD,CAAT,CAcAmB,MAAM,CAACyB,QAAQ,CAACC,SAAT,CAAmBjD,IAAnB,CAAwBC,KAAxB,CAA8BuB,MAA/B,CAAN,CAA6CC,IAA7C,CAAkD,CAAlD,EACAF,MAAM,CAACyB,QAAQ,CAACE,QAAT,CAAkBlD,IAAlB,CAAuBC,KAAvB,CAA6BuB,MAA9B,CAAN,CAA4CC,IAA5C,CAAiD,CAAjD,EACAF,MAAM,CAACyB,QAAQ,CAACG,QAAT,CAAkBnD,IAAlB,CAAuBC,KAAvB,CAA6BuB,MAA9B,CAAN,CAA4CC,IAA5C,CAAiD,CAAjD,EACAF,MAAM,CAACyB,QAAQ,CAACI,OAAT,CAAiBpD,IAAjB,CAAsBC,KAAtB,CAA4BuB,MAA7B,CAAN,CAA2CC,IAA3C,CAAgD,CAAhD,EACD,CAxDC,CAAF","sourcesContent":["import getChildEventSubscriber from '../getChildEventSubscriber';\n\nit('child action events only flow when focused', () => {\n const parentSubscriber = jest.fn();\n const emitParentAction = payload => {\n parentSubscriber.mock.calls.forEach(subs => {\n if (subs[0] === payload.type) {\n subs[1](payload);\n }\n });\n };\n const subscriptionRemove = () => {};\n parentSubscriber.mockReturnValueOnce({ remove: subscriptionRemove });\n const childEventSubscriber = getChildEventSubscriber(parentSubscriber, 'key1')\n .addListener;\n const testState = {\n key: 'foo',\n routeName: 'FooRoute',\n routes: [{ key: 'key0' }, { key: 'key1' }],\n index: 0,\n isTransitioning: false,\n };\n const focusedTestState = {\n ...testState,\n index: 1,\n };\n const childActionHandler = jest.fn();\n const childWillFocusHandler = jest.fn();\n const childDidFocusHandler = jest.fn();\n childEventSubscriber('action', childActionHandler);\n childEventSubscriber('willFocus', childWillFocusHandler);\n childEventSubscriber('didFocus', childDidFocusHandler);\n emitParentAction({\n type: 'action',\n state: focusedTestState,\n lastState: testState,\n action: { type: 'FooAction' },\n });\n expect(childActionHandler.mock.calls.length).toBe(0);\n expect(childWillFocusHandler.mock.calls.length).toBe(1);\n expect(childDidFocusHandler.mock.calls.length).toBe(1);\n emitParentAction({\n type: 'action',\n state: focusedTestState,\n lastState: focusedTestState,\n action: { type: 'FooAction' },\n });\n expect(childActionHandler.mock.calls.length).toBe(1);\n expect(childWillFocusHandler.mock.calls.length).toBe(1);\n expect(childDidFocusHandler.mock.calls.length).toBe(1);\n});\n\nit('grandchildren subscription', () => {\n const grandParentSubscriber = jest.fn();\n const emitGrandParentAction = payload => {\n grandParentSubscriber.mock.calls.forEach(subs => {\n if (subs[0] === payload.type) {\n subs[1](payload);\n }\n });\n };\n const subscriptionRemove = () => {};\n grandParentSubscriber.mockReturnValueOnce({ remove: subscriptionRemove });\n const parentSubscriber = getChildEventSubscriber(\n grandParentSubscriber,\n 'parent'\n ).addListener;\n const childEventSubscriber = getChildEventSubscriber(parentSubscriber, 'key1')\n .addListener;\n const parentBlurState = {\n key: 'foo',\n routeName: 'FooRoute',\n routes: [\n { key: 'aunt' },\n {\n key: 'parent',\n routes: [{ key: 'key0' }, { key: 'key1' }],\n index: 1,\n isTransitioning: false,\n },\n ],\n index: 0,\n isTransitioning: false,\n };\n const parentTransitionState = {\n ...parentBlurState,\n index: 1,\n isTransitioning: true,\n };\n const parentFocusState = {\n ...parentTransitionState,\n isTransitioning: false,\n };\n const childActionHandler = jest.fn();\n const childWillFocusHandler = jest.fn();\n const childDidFocusHandler = jest.fn();\n childEventSubscriber('action', childActionHandler);\n childEventSubscriber('willFocus', childWillFocusHandler);\n childEventSubscriber('didFocus', childDidFocusHandler);\n emitGrandParentAction({\n type: 'action',\n state: parentTransitionState,\n lastState: parentBlurState,\n action: { type: 'FooAction' },\n });\n expect(childActionHandler.mock.calls.length).toBe(0);\n expect(childWillFocusHandler.mock.calls.length).toBe(1);\n expect(childDidFocusHandler.mock.calls.length).toBe(0);\n emitGrandParentAction({\n type: 'action',\n state: parentFocusState,\n lastState: parentTransitionState,\n action: { type: 'FooAction' },\n });\n expect(childActionHandler.mock.calls.length).toBe(0);\n expect(childWillFocusHandler.mock.calls.length).toBe(1);\n expect(childDidFocusHandler.mock.calls.length).toBe(1);\n});\n\nit('grandchildren transitions', () => {\n const grandParentSubscriber = jest.fn();\n const emitGrandParentAction = payload => {\n grandParentSubscriber.mock.calls.forEach(subs => {\n if (subs[0] === payload.type) {\n subs[1](payload);\n }\n });\n };\n const subscriptionRemove = () => {};\n grandParentSubscriber.mockReturnValueOnce({ remove: subscriptionRemove });\n const parentSubscriber = getChildEventSubscriber(\n grandParentSubscriber,\n 'parent'\n ).addListener;\n const childEventSubscriber = getChildEventSubscriber(parentSubscriber, 'key1')\n .addListener;\n const makeFakeState = (childIndex, childIsTransitioning) => ({\n index: 1,\n isTransitioning: false,\n routes: [\n { key: 'nothing' },\n {\n key: 'parent',\n index: childIndex,\n isTransitioning: childIsTransitioning,\n routes: [{ key: 'key0' }, { key: 'key1' }, { key: 'key2' }],\n },\n ],\n });\n const blurredState = makeFakeState(0, false);\n const transitionState = makeFakeState(1, true);\n const focusState = makeFakeState(1, false);\n const transition2State = makeFakeState(2, true);\n const blurred2State = makeFakeState(2, false);\n\n const childActionHandler = jest.fn();\n const childWillFocusHandler = jest.fn();\n const childDidFocusHandler = jest.fn();\n const childWillBlurHandler = jest.fn();\n const childDidBlurHandler = jest.fn();\n childEventSubscriber('action', childActionHandler);\n childEventSubscriber('willFocus', childWillFocusHandler);\n childEventSubscriber('didFocus', childDidFocusHandler);\n childEventSubscriber('willBlur', childWillBlurHandler);\n childEventSubscriber('didBlur', childDidBlurHandler);\n emitGrandParentAction({\n type: 'action',\n state: transitionState,\n lastState: blurredState,\n action: { type: 'FooAction' },\n });\n expect(childActionHandler.mock.calls.length).toBe(0);\n expect(childWillFocusHandler.mock.calls.length).toBe(1);\n expect(childDidFocusHandler.mock.calls.length).toBe(0);\n emitGrandParentAction({\n type: 'action',\n state: focusState,\n lastState: transitionState,\n action: { type: 'FooAction' },\n });\n expect(childActionHandler.mock.calls.length).toBe(0);\n expect(childWillFocusHandler.mock.calls.length).toBe(1);\n expect(childDidFocusHandler.mock.calls.length).toBe(1);\n emitGrandParentAction({\n type: 'action',\n state: focusState,\n lastState: focusState,\n action: { type: 'TestAction' },\n });\n expect(childWillFocusHandler.mock.calls.length).toBe(1);\n expect(childDidFocusHandler.mock.calls.length).toBe(1);\n expect(childActionHandler.mock.calls.length).toBe(1);\n emitGrandParentAction({\n type: 'action',\n state: transition2State,\n lastState: focusState,\n action: { type: 'CauseWillBlurAction' },\n });\n expect(childWillBlurHandler.mock.calls.length).toBe(1);\n expect(childDidBlurHandler.mock.calls.length).toBe(0);\n expect(childActionHandler.mock.calls.length).toBe(1);\n emitGrandParentAction({\n type: 'action',\n state: blurred2State,\n lastState: transition2State,\n action: { type: 'CauseDidBlurAction' },\n });\n expect(childWillBlurHandler.mock.calls.length).toBe(1);\n expect(childDidBlurHandler.mock.calls.length).toBe(1);\n expect(childActionHandler.mock.calls.length).toBe(1);\n});\n\nit('grandchildren pass through transitions', () => {\n const grandParentSubscriber = jest.fn();\n const emitGrandParentAction = payload => {\n grandParentSubscriber.mock.calls.forEach(subs => {\n if (subs[0] === payload.type) {\n subs[1](payload);\n }\n });\n };\n const subscriptionRemove = () => {};\n grandParentSubscriber.mockReturnValueOnce({ remove: subscriptionRemove });\n const parentSubscriber = getChildEventSubscriber(\n grandParentSubscriber,\n 'parent'\n ).addListener;\n const childEventSubscriber = getChildEventSubscriber(parentSubscriber, 'key1')\n .addListener;\n const makeFakeState = (childIndex, childIsTransitioning) => ({\n index: childIndex,\n isTransitioning: childIsTransitioning,\n routes: [\n { key: 'nothing' },\n {\n key: 'parent',\n index: 1,\n isTransitioning: false,\n routes: [{ key: 'key0' }, { key: 'key1' }, { key: 'key2' }],\n },\n ].slice(0, childIndex + 1),\n });\n const blurredState = makeFakeState(0, false);\n const transitionState = makeFakeState(1, true);\n const focusState = makeFakeState(1, false);\n const transition2State = makeFakeState(0, true);\n const blurred2State = makeFakeState(0, false);\n\n const childActionHandler = jest.fn();\n const childWillFocusHandler = jest.fn();\n const childDidFocusHandler = jest.fn();\n const childWillBlurHandler = jest.fn();\n const childDidBlurHandler = jest.fn();\n childEventSubscriber('action', childActionHandler);\n childEventSubscriber('willFocus', childWillFocusHandler);\n childEventSubscriber('didFocus', childDidFocusHandler);\n childEventSubscriber('willBlur', childWillBlurHandler);\n childEventSubscriber('didBlur', childDidBlurHandler);\n emitGrandParentAction({\n type: 'action',\n state: transitionState,\n lastState: blurredState,\n action: { type: 'FooAction' },\n });\n expect(childActionHandler.mock.calls.length).toBe(0);\n expect(childWillFocusHandler.mock.calls.length).toBe(1);\n expect(childDidFocusHandler.mock.calls.length).toBe(0);\n emitGrandParentAction({\n type: 'action',\n state: focusState,\n lastState: transitionState,\n action: { type: 'FooAction' },\n });\n expect(childActionHandler.mock.calls.length).toBe(0);\n expect(childWillFocusHandler.mock.calls.length).toBe(1);\n expect(childDidFocusHandler.mock.calls.length).toBe(1);\n emitGrandParentAction({\n type: 'action',\n state: focusState,\n lastState: focusState,\n action: { type: 'TestAction' },\n });\n expect(childWillFocusHandler.mock.calls.length).toBe(1);\n expect(childDidFocusHandler.mock.calls.length).toBe(1);\n expect(childActionHandler.mock.calls.length).toBe(1);\n emitGrandParentAction({\n type: 'action',\n state: transition2State,\n lastState: focusState,\n action: { type: 'CauseWillBlurAction' },\n });\n expect(childWillBlurHandler.mock.calls.length).toBe(1);\n expect(childDidBlurHandler.mock.calls.length).toBe(0);\n expect(childActionHandler.mock.calls.length).toBe(1);\n emitGrandParentAction({\n type: 'action',\n state: blurred2State,\n lastState: transition2State,\n action: { type: 'CauseDidBlurAction' },\n });\n expect(childWillBlurHandler.mock.calls.length).toBe(1);\n expect(childDidBlurHandler.mock.calls.length).toBe(1);\n expect(childActionHandler.mock.calls.length).toBe(1);\n});\n\nit('child focus with transition', () => {\n const parentSubscriber = jest.fn();\n const emitParentAction = payload => {\n parentSubscriber.mock.calls.forEach(subs => {\n if (subs[0] === payload.type) {\n subs[1](payload);\n }\n });\n };\n const subscriptionRemove = () => {};\n parentSubscriber.mockReturnValueOnce({ remove: subscriptionRemove });\n const childEventSubscriber = getChildEventSubscriber(parentSubscriber, 'key1')\n .addListener;\n const randomAction = { type: 'FooAction' };\n const testState = {\n key: 'foo',\n routeName: 'FooRoute',\n routes: [{ key: 'key0' }, { key: 'key1' }],\n index: 0,\n isTransitioning: false,\n };\n const childWillFocusHandler = jest.fn();\n const childDidFocusHandler = jest.fn();\n const childWillBlurHandler = jest.fn();\n const childDidBlurHandler = jest.fn();\n childEventSubscriber('willFocus', childWillFocusHandler);\n childEventSubscriber('didFocus', childDidFocusHandler);\n childEventSubscriber('willBlur', childWillBlurHandler);\n childEventSubscriber('didBlur', childDidBlurHandler);\n emitParentAction({\n type: 'didFocus',\n action: randomAction,\n lastState: testState,\n state: testState,\n });\n emitParentAction({\n type: 'action',\n action: randomAction,\n lastState: testState,\n state: {\n ...testState,\n index: 1,\n isTransitioning: true,\n },\n });\n expect(childWillFocusHandler.mock.calls.length).toBe(1);\n emitParentAction({\n type: 'action',\n action: randomAction,\n lastState: {\n ...testState,\n index: 1,\n isTransitioning: true,\n },\n state: {\n ...testState,\n index: 1,\n isTransitioning: false,\n },\n });\n expect(childDidFocusHandler.mock.calls.length).toBe(1);\n emitParentAction({\n type: 'action',\n action: randomAction,\n lastState: {\n ...testState,\n index: 1,\n isTransitioning: false,\n },\n state: {\n ...testState,\n index: 0,\n isTransitioning: true,\n },\n });\n expect(childWillBlurHandler.mock.calls.length).toBe(1);\n emitParentAction({\n type: 'action',\n action: randomAction,\n lastState: {\n ...testState,\n index: 0,\n isTransitioning: true,\n },\n state: {\n ...testState,\n index: 0,\n isTransitioning: false,\n },\n });\n expect(childDidBlurHandler.mock.calls.length).toBe(1);\n});\n\nit('child focus with immediate transition', () => {\n const parentSubscriber = jest.fn();\n const emitParentAction = payload => {\n parentSubscriber.mock.calls.forEach(subs => {\n if (subs[0] === payload.type) {\n subs[1](payload);\n }\n });\n };\n const subscriptionRemove = () => {};\n parentSubscriber.mockReturnValueOnce({ remove: subscriptionRemove });\n const childEventSubscriber = getChildEventSubscriber(parentSubscriber, 'key1')\n .addListener;\n const randomAction = { type: 'FooAction' };\n const testState = {\n key: 'foo',\n routeName: 'FooRoute',\n routes: [{ key: 'key0' }, { key: 'key1' }],\n index: 0,\n isTransitioning: false,\n };\n const childWillFocusHandler = jest.fn();\n const childDidFocusHandler = jest.fn();\n const childWillBlurHandler = jest.fn();\n const childDidBlurHandler = jest.fn();\n childEventSubscriber('willFocus', childWillFocusHandler);\n childEventSubscriber('didFocus', childDidFocusHandler);\n childEventSubscriber('willBlur', childWillBlurHandler);\n childEventSubscriber('didBlur', childDidBlurHandler);\n emitParentAction({\n type: 'didFocus',\n action: randomAction,\n lastState: testState,\n state: testState,\n });\n emitParentAction({\n type: 'action',\n action: randomAction,\n lastState: testState,\n state: {\n ...testState,\n index: 1,\n },\n });\n expect(childWillFocusHandler.mock.calls.length).toBe(1);\n expect(childDidFocusHandler.mock.calls.length).toBe(1);\n\n emitParentAction({\n type: 'action',\n action: randomAction,\n lastState: {\n ...testState,\n index: 1,\n },\n state: {\n ...testState,\n index: 0,\n },\n });\n expect(childWillBlurHandler.mock.calls.length).toBe(1);\n expect(childDidBlurHandler.mock.calls.length).toBe(1);\n});\n\nconst setupEventTest = (subscriptionKey, initialLastFocusEvent) => {\n const parentSubscriber = jest.fn();\n const emitEvent = payload => {\n parentSubscriber.mock.calls.forEach(subs => {\n if (subs[0] === payload.type) {\n subs[1](payload);\n }\n });\n };\n const subscriptionRemove = () => {};\n parentSubscriber.mockReturnValueOnce({ remove: subscriptionRemove });\n const evtProvider = getChildEventSubscriber(\n parentSubscriber,\n subscriptionKey,\n initialLastFocusEvent\n );\n const handlers = {};\n evtProvider.addListener('action', (handlers.action = jest.fn()));\n evtProvider.addListener('willFocus', (handlers.willFocus = jest.fn()));\n evtProvider.addListener('didFocus', (handlers.didFocus = jest.fn()));\n evtProvider.addListener('willBlur', (handlers.willBlur = jest.fn()));\n evtProvider.addListener('didBlur', (handlers.didBlur = jest.fn()));\n return { emitEvent, handlers, evtProvider };\n};\n\nit('immediate back with uncompleted transition will focus first screen again', () => {\n const { handlers, emitEvent } = setupEventTest('key0', 'didFocus');\n emitEvent({\n type: 'action',\n state: {\n index: 1,\n routes: [{ key: 'key0' }, { key: 'key1' }],\n isTransitioning: true,\n },\n lastState: {\n index: 0,\n routes: [{ key: 'key0' }],\n isTransitioning: false,\n },\n action: { type: 'Any action, does not matter here' },\n });\n expect(handlers.willFocus.mock.calls.length).toBe(0);\n expect(handlers.didFocus.mock.calls.length).toBe(0);\n expect(handlers.willBlur.mock.calls.length).toBe(1);\n expect(handlers.didBlur.mock.calls.length).toBe(0);\n emitEvent({\n type: 'action',\n state: {\n index: 0,\n routes: [{ key: 'key0' }],\n isTransitioning: true,\n },\n lastState: {\n index: 1,\n routes: [{ key: 'key0' }, { key: 'key1' }],\n isTransitioning: true,\n },\n action: { type: 'Any action, does not matter here' },\n });\n expect(handlers.willFocus.mock.calls.length).toBe(1);\n expect(handlers.didFocus.mock.calls.length).toBe(0);\n expect(handlers.willBlur.mock.calls.length).toBe(1);\n expect(handlers.didBlur.mock.calls.length).toBe(0);\n emitEvent({\n type: 'action',\n state: {\n index: 0,\n routes: [{ key: 'key0' }],\n isTransitioning: false,\n },\n lastState: {\n index: 0,\n routes: [{ key: 'key0' }],\n isTransitioning: true,\n },\n action: { type: 'Any action, does not matter here' },\n });\n expect(handlers.willFocus.mock.calls.length).toBe(1);\n expect(handlers.didFocus.mock.calls.length).toBe(1);\n expect(handlers.willBlur.mock.calls.length).toBe(1);\n expect(handlers.didBlur.mock.calls.length).toBe(0);\n});\n"]}
+\ No newline at end of file
++{"version":3,"sources":["getChildEventSubscriber-test.js"],"names":["it","parentSubscriber","jest","fn","emitParentAction","payload","mock","calls","forEach","subs","type","subscriptionRemove","mockReturnValueOnce","remove","childEventSubscriber","addListener","testState","key","routeName","routes","index","focusedTestState","childActionHandler","childWillFocusHandler","childDidFocusHandler","state","lastState","action","expect","length","toBe","grandParentSubscriber","emitGrandParentAction","parentBlurState","transitions","pushing","popping","parentTransitionState","parentFocusState","makeFakeState","childIndex","childIsTransitioning","blurredState","transitionState","focusState","transition2State","blurred2State","childWillBlurHandler","childDidBlurHandler","slice","randomAction","setupEventTest","subscriptionKey","initialLastFocusEvent","emitEvent","evtProvider","handlers","willFocus","didFocus","willBlur","didBlur"],"mappings":"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","sourcesContent":["import getChildEventSubscriber from '../getChildEventSubscriber';\n\nit('child action events only flow when focused', () => {\n const parentSubscriber = jest.fn();\n const emitParentAction = payload => {\n parentSubscriber.mock.calls.forEach(subs => {\n if (subs[0] === payload.type) {\n subs[1](payload);\n }\n });\n };\n const subscriptionRemove = () => {};\n parentSubscriber.mockReturnValueOnce({ remove: subscriptionRemove });\n const childEventSubscriber = getChildEventSubscriber(parentSubscriber, 'key1')\n .addListener;\n const testState = {\n key: 'foo',\n routeName: 'FooRoute',\n routes: [{ key: 'key0' }, { key: 'key1' }],\n index: 0,\n };\n const focusedTestState = {\n ...testState,\n index: 1,\n };\n const childActionHandler = jest.fn();\n const childWillFocusHandler = jest.fn();\n const childDidFocusHandler = jest.fn();\n childEventSubscriber('action', childActionHandler);\n childEventSubscriber('willFocus', childWillFocusHandler);\n childEventSubscriber('didFocus', childDidFocusHandler);\n emitParentAction({\n type: 'action',\n state: focusedTestState,\n lastState: testState,\n action: { type: 'FooAction' },\n });\n expect(childActionHandler.mock.calls.length).toBe(0);\n expect(childWillFocusHandler.mock.calls.length).toBe(1);\n expect(childDidFocusHandler.mock.calls.length).toBe(1);\n emitParentAction({\n type: 'action',\n state: focusedTestState,\n lastState: focusedTestState,\n action: { type: 'FooAction' },\n });\n expect(childActionHandler.mock.calls.length).toBe(1);\n expect(childWillFocusHandler.mock.calls.length).toBe(1);\n expect(childDidFocusHandler.mock.calls.length).toBe(1);\n});\n\nit('grandchildren subscription', () => {\n const grandParentSubscriber = jest.fn();\n const emitGrandParentAction = payload => {\n grandParentSubscriber.mock.calls.forEach(subs => {\n if (subs[0] === payload.type) {\n subs[1](payload);\n }\n });\n };\n const subscriptionRemove = () => {};\n grandParentSubscriber.mockReturnValueOnce({ remove: subscriptionRemove });\n const parentSubscriber = getChildEventSubscriber(\n grandParentSubscriber,\n 'parent'\n ).addListener;\n const childEventSubscriber = getChildEventSubscriber(parentSubscriber, 'key1')\n .addListener;\n const parentBlurState = {\n key: 'foo',\n routeName: 'FooRoute',\n routes: [\n { key: 'aunt' },\n {\n key: 'parent',\n routes: [{ key: 'key0' }, { key: 'key1' }],\n index: 1,\n },\n ],\n transitions: {\n pushing: [],\n popping: ['parent'],\n },\n index: 0,\n };\n const parentTransitionState = {\n ...parentBlurState,\n index: 1,\n transitions: { pushing: ['key1'], popping: [] },\n };\n const parentFocusState = {\n ...parentTransitionState,\n };\n const childActionHandler = jest.fn();\n const childWillFocusHandler = jest.fn();\n const childDidFocusHandler = jest.fn();\n childEventSubscriber('action', childActionHandler);\n childEventSubscriber('willFocus', childWillFocusHandler);\n childEventSubscriber('didFocus', childDidFocusHandler);\n emitGrandParentAction({\n type: 'action',\n state: parentTransitionState,\n lastState: parentBlurState,\n action: { type: 'FooAction' },\n });\n expect(childActionHandler.mock.calls.length).toBe(0);\n expect(childWillFocusHandler.mock.calls.length).toBe(1);\n expect(childDidFocusHandler.mock.calls.length).toBe(0);\n emitGrandParentAction({\n type: 'action',\n state: parentFocusState,\n lastState: parentTransitionState,\n action: { type: 'FooAction' },\n });\n expect(childActionHandler.mock.calls.length).toBe(0);\n expect(childWillFocusHandler.mock.calls.length).toBe(1);\n expect(childDidFocusHandler.mock.calls.length).toBe(1);\n});\n\nit('grandchildren transitions', () => {\n const grandParentSubscriber = jest.fn();\n const emitGrandParentAction = payload => {\n grandParentSubscriber.mock.calls.forEach(subs => {\n if (subs[0] === payload.type) {\n subs[1](payload);\n }\n });\n };\n const subscriptionRemove = () => {};\n grandParentSubscriber.mockReturnValueOnce({ remove: subscriptionRemove });\n const parentSubscriber = getChildEventSubscriber(\n grandParentSubscriber,\n 'parent'\n ).addListener;\n const childEventSubscriber = getChildEventSubscriber(parentSubscriber, 'key1')\n .addListener;\n const makeFakeState = (childIndex, childIsTransitioning) => ({\n index: 1,\n\n routes: [\n { key: 'nothing' },\n {\n key: 'parent',\n index: childIndex,\n transitions: {\n pushing: [],\n popping: childIsTransitioning ? ['key2'] : [],\n },\n routes: [{ key: 'key0' }, { key: 'key1' }, { key: 'key2' }],\n },\n ],\n });\n const blurredState = makeFakeState(0, false);\n const transitionState = makeFakeState(1, true);\n const focusState = makeFakeState(1, false);\n const transition2State = makeFakeState(2, true);\n const blurred2State = makeFakeState(2, false);\n\n const childActionHandler = jest.fn();\n const childWillFocusHandler = jest.fn();\n const childDidFocusHandler = jest.fn();\n const childWillBlurHandler = jest.fn();\n const childDidBlurHandler = jest.fn();\n childEventSubscriber('action', childActionHandler);\n childEventSubscriber('willFocus', childWillFocusHandler);\n childEventSubscriber('didFocus', childDidFocusHandler);\n childEventSubscriber('willBlur', childWillBlurHandler);\n childEventSubscriber('didBlur', childDidBlurHandler);\n emitGrandParentAction({\n type: 'action',\n state: transitionState,\n lastState: blurredState,\n action: { type: 'FooAction' },\n });\n expect(childActionHandler.mock.calls.length).toBe(0);\n expect(childWillFocusHandler.mock.calls.length).toBe(1);\n expect(childDidFocusHandler.mock.calls.length).toBe(0);\n emitGrandParentAction({\n type: 'action',\n state: focusState,\n lastState: transitionState,\n action: { type: 'FooAction' },\n });\n expect(childActionHandler.mock.calls.length).toBe(0);\n expect(childWillFocusHandler.mock.calls.length).toBe(1);\n expect(childDidFocusHandler.mock.calls.length).toBe(1);\n emitGrandParentAction({\n type: 'action',\n state: focusState,\n lastState: focusState,\n action: { type: 'TestAction' },\n });\n expect(childWillFocusHandler.mock.calls.length).toBe(1);\n expect(childDidFocusHandler.mock.calls.length).toBe(1);\n expect(childActionHandler.mock.calls.length).toBe(1);\n emitGrandParentAction({\n type: 'action',\n state: transition2State,\n lastState: focusState,\n action: { type: 'CauseWillBlurAction' },\n });\n expect(childWillBlurHandler.mock.calls.length).toBe(1);\n expect(childDidBlurHandler.mock.calls.length).toBe(0);\n expect(childActionHandler.mock.calls.length).toBe(1);\n emitGrandParentAction({\n type: 'action',\n state: blurred2State,\n lastState: transition2State,\n action: { type: 'CauseDidBlurAction' },\n });\n expect(childWillBlurHandler.mock.calls.length).toBe(1);\n expect(childDidBlurHandler.mock.calls.length).toBe(1);\n expect(childActionHandler.mock.calls.length).toBe(1);\n});\n\nit('grandchildren pass through transitions', () => {\n const grandParentSubscriber = jest.fn();\n const emitGrandParentAction = payload => {\n grandParentSubscriber.mock.calls.forEach(subs => {\n if (subs[0] === payload.type) {\n subs[1](payload);\n }\n });\n };\n const subscriptionRemove = () => {};\n grandParentSubscriber.mockReturnValueOnce({ remove: subscriptionRemove });\n const parentSubscriber = getChildEventSubscriber(\n grandParentSubscriber,\n 'parent'\n ).addListener;\n const childEventSubscriber = getChildEventSubscriber(parentSubscriber, 'key1')\n .addListener;\n const makeFakeState = (childIndex, childIsTransitioning) => ({\n index: childIndex,\n transitions: {\n pushing: [],\n popping: childIsTransitioning ? ['key2'] : [],\n },\n routes: [\n { key: 'nothing' },\n {\n key: 'parent',\n index: 1,\n\n routes: [{ key: 'key0' }, { key: 'key1' }, { key: 'key2' }],\n },\n ].slice(0, childIndex + 1),\n });\n const blurredState = makeFakeState(0, false);\n const transitionState = makeFakeState(1, true);\n const focusState = makeFakeState(1, false);\n const transition2State = makeFakeState(0, true);\n const blurred2State = makeFakeState(0, false);\n\n const childActionHandler = jest.fn();\n const childWillFocusHandler = jest.fn();\n const childDidFocusHandler = jest.fn();\n const childWillBlurHandler = jest.fn();\n const childDidBlurHandler = jest.fn();\n childEventSubscriber('action', childActionHandler);\n childEventSubscriber('willFocus', childWillFocusHandler);\n childEventSubscriber('didFocus', childDidFocusHandler);\n childEventSubscriber('willBlur', childWillBlurHandler);\n childEventSubscriber('didBlur', childDidBlurHandler);\n emitGrandParentAction({\n type: 'action',\n state: transitionState,\n lastState: blurredState,\n action: { type: 'FooAction' },\n });\n expect(childActionHandler.mock.calls.length).toBe(0);\n expect(childWillFocusHandler.mock.calls.length).toBe(1);\n expect(childDidFocusHandler.mock.calls.length).toBe(0);\n emitGrandParentAction({\n type: 'action',\n state: focusState,\n lastState: transitionState,\n action: { type: 'FooAction' },\n });\n expect(childActionHandler.mock.calls.length).toBe(0);\n expect(childWillFocusHandler.mock.calls.length).toBe(1);\n expect(childDidFocusHandler.mock.calls.length).toBe(1);\n emitGrandParentAction({\n type: 'action',\n state: focusState,\n lastState: focusState,\n action: { type: 'TestAction' },\n });\n expect(childWillFocusHandler.mock.calls.length).toBe(1);\n expect(childDidFocusHandler.mock.calls.length).toBe(1);\n expect(childActionHandler.mock.calls.length).toBe(1);\n emitGrandParentAction({\n type: 'action',\n state: transition2State,\n lastState: focusState,\n action: { type: 'CauseWillBlurAction' },\n });\n expect(childWillBlurHandler.mock.calls.length).toBe(1);\n expect(childDidBlurHandler.mock.calls.length).toBe(0);\n expect(childActionHandler.mock.calls.length).toBe(1);\n emitGrandParentAction({\n type: 'action',\n state: blurred2State,\n lastState: transition2State,\n action: { type: 'CauseDidBlurAction' },\n });\n expect(childWillBlurHandler.mock.calls.length).toBe(1);\n expect(childDidBlurHandler.mock.calls.length).toBe(1);\n expect(childActionHandler.mock.calls.length).toBe(1);\n});\n\nit('child focus with transition', () => {\n const parentSubscriber = jest.fn();\n const emitParentAction = payload => {\n parentSubscriber.mock.calls.forEach(subs => {\n if (subs[0] === payload.type) {\n subs[1](payload);\n }\n });\n };\n const subscriptionRemove = () => {};\n parentSubscriber.mockReturnValueOnce({ remove: subscriptionRemove });\n const childEventSubscriber = getChildEventSubscriber(parentSubscriber, 'key1')\n .addListener;\n const randomAction = { type: 'FooAction' };\n const testState = {\n key: 'foo',\n routeName: 'FooRoute',\n routes: [{ key: 'key0' }, { key: 'key1' }],\n index: 0,\n };\n const childWillFocusHandler = jest.fn();\n const childDidFocusHandler = jest.fn();\n const childWillBlurHandler = jest.fn();\n const childDidBlurHandler = jest.fn();\n childEventSubscriber('willFocus', childWillFocusHandler);\n childEventSubscriber('didFocus', childDidFocusHandler);\n childEventSubscriber('willBlur', childWillBlurHandler);\n childEventSubscriber('didBlur', childDidBlurHandler);\n emitParentAction({\n type: 'didFocus',\n action: randomAction,\n lastState: testState,\n state: testState,\n });\n emitParentAction({\n type: 'action',\n action: randomAction,\n lastState: testState,\n state: {\n ...testState,\n index: 1,\n transitions: { pushing: [], popping: ['key1'] },\n },\n });\n expect(childWillFocusHandler.mock.calls.length).toBe(1);\n emitParentAction({\n type: 'action',\n action: randomAction,\n lastState: {\n ...testState,\n index: 1,\n transitions: { pushing: [], popping: ['key1'] },\n },\n state: {\n ...testState,\n index: 1,\n },\n });\n expect(childDidFocusHandler.mock.calls.length).toBe(1);\n emitParentAction({\n type: 'action',\n action: randomAction,\n lastState: {\n ...testState,\n index: 1,\n },\n state: {\n ...testState,\n index: 0,\n transitions: { pushing: [], popping: ['key1'] },\n },\n });\n expect(childWillBlurHandler.mock.calls.length).toBe(1);\n emitParentAction({\n type: 'action',\n action: randomAction,\n lastState: {\n ...testState,\n index: 0,\n transitions: { pushing: [], popping: ['key1'] },\n },\n state: {\n ...testState,\n index: 0,\n },\n });\n expect(childDidBlurHandler.mock.calls.length).toBe(1);\n});\n\nit('child focus with immediate transition', () => {\n const parentSubscriber = jest.fn();\n const emitParentAction = payload => {\n parentSubscriber.mock.calls.forEach(subs => {\n if (subs[0] === payload.type) {\n subs[1](payload);\n }\n });\n };\n const subscriptionRemove = () => {};\n parentSubscriber.mockReturnValueOnce({ remove: subscriptionRemove });\n const childEventSubscriber = getChildEventSubscriber(parentSubscriber, 'key1')\n .addListener;\n const randomAction = { type: 'FooAction' };\n const testState = {\n key: 'foo',\n routeName: 'FooRoute',\n routes: [{ key: 'key0' }, { key: 'key1' }],\n index: 0,\n };\n const childWillFocusHandler = jest.fn();\n const childDidFocusHandler = jest.fn();\n const childWillBlurHandler = jest.fn();\n const childDidBlurHandler = jest.fn();\n childEventSubscriber('willFocus', childWillFocusHandler);\n childEventSubscriber('didFocus', childDidFocusHandler);\n childEventSubscriber('willBlur', childWillBlurHandler);\n childEventSubscriber('didBlur', childDidBlurHandler);\n emitParentAction({\n type: 'didFocus',\n action: randomAction,\n lastState: testState,\n state: testState,\n });\n emitParentAction({\n type: 'action',\n action: randomAction,\n lastState: testState,\n state: {\n ...testState,\n index: 1,\n },\n });\n expect(childWillFocusHandler.mock.calls.length).toBe(1);\n expect(childDidFocusHandler.mock.calls.length).toBe(1);\n\n emitParentAction({\n type: 'action',\n action: randomAction,\n lastState: {\n ...testState,\n index: 1,\n },\n state: {\n ...testState,\n index: 0,\n },\n });\n expect(childWillBlurHandler.mock.calls.length).toBe(1);\n expect(childDidBlurHandler.mock.calls.length).toBe(1);\n});\n\nconst setupEventTest = (subscriptionKey, initialLastFocusEvent) => {\n const parentSubscriber = jest.fn();\n const emitEvent = payload => {\n parentSubscriber.mock.calls.forEach(subs => {\n if (subs[0] === payload.type) {\n subs[1](payload);\n }\n });\n };\n const subscriptionRemove = () => {};\n parentSubscriber.mockReturnValueOnce({ remove: subscriptionRemove });\n const evtProvider = getChildEventSubscriber(\n parentSubscriber,\n subscriptionKey,\n initialLastFocusEvent\n );\n const handlers = {};\n evtProvider.addListener('action', (handlers.action = jest.fn()));\n evtProvider.addListener('willFocus', (handlers.willFocus = jest.fn()));\n evtProvider.addListener('didFocus', (handlers.didFocus = jest.fn()));\n evtProvider.addListener('willBlur', (handlers.willBlur = jest.fn()));\n evtProvider.addListener('didBlur', (handlers.didBlur = jest.fn()));\n return { emitEvent, handlers, evtProvider };\n};\n\nit('immediate back with uncompleted transition will focus first screen again', () => {\n const { handlers, emitEvent } = setupEventTest('key0', 'didFocus');\n emitEvent({\n type: 'action',\n state: {\n index: 1,\n routes: [{ key: 'key0' }, { key: 'key1' }],\n transitions: { pushing: [], popping: ['key1'] },\n },\n lastState: {\n index: 0,\n routes: [{ key: 'key0' }],\n },\n action: { type: 'Any action, does not matter here' },\n });\n expect(handlers.willFocus.mock.calls.length).toBe(0);\n expect(handlers.didFocus.mock.calls.length).toBe(0);\n expect(handlers.willBlur.mock.calls.length).toBe(1);\n expect(handlers.didBlur.mock.calls.length).toBe(0);\n emitEvent({\n type: 'action',\n state: {\n index: 0,\n routes: [{ key: 'key0' }],\n transitions: { pushing: [], popping: ['key0'] },\n },\n lastState: {\n index: 1,\n routes: [{ key: 'key0' }, { key: 'key1' }],\n transitions: { pushing: [], popping: ['key1'] },\n },\n action: { type: 'Any action, does not matter here' },\n });\n expect(handlers.willFocus.mock.calls.length).toBe(1);\n expect(handlers.didFocus.mock.calls.length).toBe(0);\n expect(handlers.willBlur.mock.calls.length).toBe(1);\n expect(handlers.didBlur.mock.calls.length).toBe(0);\n emitEvent({\n type: 'action',\n state: {\n index: 0,\n routes: [{ key: 'key0' }],\n },\n lastState: {\n index: 0,\n routes: [{ key: 'key0' }],\n transitions: { pushing: [], popping: ['key0'] },\n },\n action: { type: 'Any action, does not matter here' },\n });\n expect(handlers.willFocus.mock.calls.length).toBe(1);\n expect(handlers.didFocus.mock.calls.length).toBe(1);\n expect(handlers.willBlur.mock.calls.length).toBe(1);\n expect(handlers.didBlur.mock.calls.length).toBe(0);\n});\n"]}
+\ No newline at end of file
+diff --git a/node_modules/@react-navigation/core/lib/commonjs/getChildEventSubscriber.js b/node_modules/@react-navigation/core/lib/commonjs/getChildEventSubscriber.js
+index e5b2514..7dbee48 100644
+--- a/node_modules/@react-navigation/core/lib/commonjs/getChildEventSubscriber.js
++++ b/node_modules/@react-navigation/core/lib/commonjs/getChildEventSubscriber.js
+@@ -1,2 +1,2 @@
+-var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.default=getChildEventSubscriber;var _objectSpread2=_interopRequireDefault(require("@babel/runtime/helpers/objectSpread"));function getChildEventSubscriber(addListener,key){var initialLastFocusEvent=arguments.length>2&&arguments[2]!==undefined?arguments[2]:'didBlur';var actionSubscribers=new Set();var willFocusSubscribers=new Set();var didFocusSubscribers=new Set();var willBlurSubscribers=new Set();var didBlurSubscribers=new Set();var refocusSubscribers=new Set();var removeAll=function removeAll(){[actionSubscribers,willFocusSubscribers,didFocusSubscribers,willBlurSubscribers,didBlurSubscribers,refocusSubscribers].forEach(function(set){return set.clear();});upstreamSubscribers.forEach(function(subs){return subs&&subs.remove();});};var getChildSubscribers=function getChildSubscribers(evtName){switch(evtName){case'action':return actionSubscribers;case'willFocus':return willFocusSubscribers;case'didFocus':return didFocusSubscribers;case'willBlur':return willBlurSubscribers;case'didBlur':return didBlurSubscribers;case'refocus':return refocusSubscribers;default:return null;}};var _emit=function emit(type,payload){var payloadWithType=(0,_objectSpread2.default)({},payload,{type:type});var subscribers=getChildSubscribers(type);subscribers&&subscribers.forEach(function(subs){subs(payloadWithType);});};var lastFocusEvent=initialLastFocusEvent;var upstreamEvents=['willFocus','didFocus','willBlur','didBlur','refocus','action'];var upstreamSubscribers=upstreamEvents.map(function(eventName){return addListener(eventName,function(payload){if(eventName==='refocus'){_emit(eventName,payload);return;}var state=payload.state,lastState=payload.lastState,action=payload.action;var lastRoutes=lastState&&lastState.routes;var routes=state&&state.routes;var focusKey=routes&&routes[state.index].key;var isChildFocused=focusKey===key;var lastRoute=lastRoutes&&lastRoutes.find(function(route){return route.key===key;});var newRoute=routes&&routes.find(function(route){return route.key===key;});var childPayload={context:key+":"+action.type+"_"+(payload.context||'Root'),state:newRoute,lastState:lastRoute,action:action,type:eventName};var isTransitioning=!!state&&state.isTransitioning;var previouslylastFocusEvent=lastFocusEvent;if(lastFocusEvent==='didBlur'){if(eventName==='willFocus'&&isChildFocused){_emit(lastFocusEvent='willFocus',childPayload);}else if(eventName==='action'&&isChildFocused){_emit(lastFocusEvent='willFocus',childPayload);}}if(lastFocusEvent==='willFocus'){if(eventName==='didFocus'&&isChildFocused&&!isTransitioning){_emit(lastFocusEvent='didFocus',childPayload);}else if(eventName==='action'&&isChildFocused&&!isTransitioning){_emit(lastFocusEvent='didFocus',childPayload);}}if(lastFocusEvent==='didFocus'){if(!isChildFocused){_emit(lastFocusEvent='willBlur',childPayload);}else if(eventName==='willBlur'){_emit(lastFocusEvent='willBlur',childPayload);}else if(eventName==='action'&&previouslylastFocusEvent==='didFocus'){_emit('action',childPayload);}}if(lastFocusEvent==='willBlur'){if(eventName==='action'&&!isChildFocused&&!isTransitioning){_emit(lastFocusEvent='didBlur',childPayload);}else if(eventName==='didBlur'){_emit(lastFocusEvent='didBlur',childPayload);}else if(eventName==='action'&&isChildFocused&&!isTransitioning){_emit(lastFocusEvent='didFocus',childPayload);}else if(eventName==='action'&&isChildFocused&&isTransitioning){_emit(lastFocusEvent='willFocus',childPayload);}}if(lastFocusEvent==='didBlur'&&!newRoute){removeAll();}});});return{addListener:function addListener(eventName,eventHandler){var subscribers=getChildSubscribers(eventName);if(!subscribers){throw new Error("Invalid event name \""+eventName+"\"");}subscribers.add(eventHandler);var remove=function remove(){subscribers.delete(eventHandler);};return{remove:remove};},emit:function emit(eventName,payload){if(eventName!=='refocus'){console.error("navigation.emit only supports the 'refocus' event currently.");return;}_emit(eventName,payload);}};}
++var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.default=getChildEventSubscriber;var _objectSpread2=_interopRequireDefault(require("@babel/runtime/helpers/objectSpread"));function getChildEventSubscriber(addListener,key){var initialLastFocusEvent=arguments.length>2&&arguments[2]!==undefined?arguments[2]:'didBlur';var actionSubscribers=new Set();var willFocusSubscribers=new Set();var didFocusSubscribers=new Set();var willBlurSubscribers=new Set();var didBlurSubscribers=new Set();var refocusSubscribers=new Set();var removeAll=function removeAll(){[actionSubscribers,willFocusSubscribers,didFocusSubscribers,willBlurSubscribers,didBlurSubscribers,refocusSubscribers].forEach(function(set){return set.clear();});upstreamSubscribers.forEach(function(subs){return subs&&subs.remove();});};var getChildSubscribers=function getChildSubscribers(evtName){switch(evtName){case'action':return actionSubscribers;case'willFocus':return willFocusSubscribers;case'didFocus':return didFocusSubscribers;case'willBlur':return willBlurSubscribers;case'didBlur':return didBlurSubscribers;case'refocus':return refocusSubscribers;default:return null;}};var _emit=function emit(type,payload){var payloadWithType=(0,_objectSpread2.default)({},payload,{type:type});var subscribers=getChildSubscribers(type);subscribers&&subscribers.forEach(function(subs){subs(payloadWithType);});};var lastFocusEvent=initialLastFocusEvent;var upstreamEvents=['willFocus','didFocus','willBlur','didBlur','refocus','action'];var upstreamSubscribers=upstreamEvents.map(function(eventName){return addListener(eventName,function(payload){if(eventName==='refocus'){_emit(eventName,payload);return;}var state=payload.state,lastState=payload.lastState,action=payload.action;var lastRoutes=lastState&&lastState.routes;var routes=state&&state.routes;var focusKey=routes&&routes[state.index].key;var isChildFocused=focusKey===key;var lastRoute=lastRoutes&&lastRoutes.find(function(route){return route.key===key;});var newRoute=routes&&routes.find(function(route){return route.key===key;});var childPayload={context:key+":"+action.type+"_"+(payload.context||'Root'),state:newRoute,lastState:lastRoute,action:action,type:eventName};var isTransitioning=!!state&&state.transitions&&(state.transitions.pushing.length||state.transitions.popping.length);var previouslylastFocusEvent=lastFocusEvent;if(lastFocusEvent==='didBlur'){if(eventName==='willFocus'&&isChildFocused){_emit(lastFocusEvent='willFocus',childPayload);}else if(eventName==='action'&&isChildFocused){_emit(lastFocusEvent='willFocus',childPayload);}}if(lastFocusEvent==='willFocus'){if(eventName==='didFocus'&&isChildFocused&&!isTransitioning){_emit(lastFocusEvent='didFocus',childPayload);}else if(eventName==='action'&&isChildFocused&&!isTransitioning){_emit(lastFocusEvent='didFocus',childPayload);}}if(lastFocusEvent==='didFocus'){if(!isChildFocused){_emit(lastFocusEvent='willBlur',childPayload);}else if(eventName==='willBlur'){_emit(lastFocusEvent='willBlur',childPayload);}else if(eventName==='action'&&previouslylastFocusEvent==='didFocus'){_emit('action',childPayload);}}if(lastFocusEvent==='willBlur'){if(eventName==='action'&&!isChildFocused&&!isTransitioning){_emit(lastFocusEvent='didBlur',childPayload);}else if(eventName==='didBlur'){_emit(lastFocusEvent='didBlur',childPayload);}else if(eventName==='action'&&isChildFocused&&!isTransitioning){_emit(lastFocusEvent='didFocus',childPayload);}else if(eventName==='action'&&isChildFocused&&isTransitioning){_emit(lastFocusEvent='willFocus',childPayload);}}if(lastFocusEvent==='didBlur'&&!newRoute){removeAll();}});});return{addListener:function addListener(eventName,eventHandler){var subscribers=getChildSubscribers(eventName);if(!subscribers){throw new Error("Invalid event name \""+eventName+"\"");}subscribers.add(eventHandler);var remove=function remove(){subscribers.delete(eventHandler);};return{remove:remove};},emit:function emit(eventName,payload){if(eventName!=='refocus'){console.error("navigation.emit only supports the 'refocus' event currently.");return;}_emit(eventName,payload);}};}
+ //# sourceMappingURL=getChildEventSubscriber.js.map
+\ No newline at end of file
+diff --git a/node_modules/@react-navigation/core/lib/commonjs/getChildEventSubscriber.js.map b/node_modules/@react-navigation/core/lib/commonjs/getChildEventSubscriber.js.map
+index 8848cce..ea2b9fd 100644
+--- a/node_modules/@react-navigation/core/lib/commonjs/getChildEventSubscriber.js.map
++++ b/node_modules/@react-navigation/core/lib/commonjs/getChildEventSubscriber.js.map
+@@ -1 +1 @@
+-{"version":3,"sources":["getChildEventSubscriber.js"],"names":["getChildEventSubscriber","addListener","key","initialLastFocusEvent","actionSubscribers","Set","willFocusSubscribers","didFocusSubscribers","willBlurSubscribers","didBlurSubscribers","refocusSubscribers","removeAll","forEach","set","clear","upstreamSubscribers","subs","remove","getChildSubscribers","evtName","emit","type","payload","payloadWithType","subscribers","lastFocusEvent","upstreamEvents","map","eventName","state","lastState","action","lastRoutes","routes","focusKey","index","isChildFocused","lastRoute","find","route","newRoute","childPayload","context","isTransitioning","previouslylastFocusEvent","eventHandler","Error","add","delete","console","error"],"mappings":"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","sourcesContent":["/*\n * This is used to extract one children's worth of events from a stream of navigation action events\n *\n * Based on the 'action' events that get fired for this navigation state, this utility will fire\n * focus and blur events for this child\n */\nexport default function getChildEventSubscriber(\n addListener,\n key,\n initialLastFocusEvent = 'didBlur'\n) {\n const actionSubscribers = new Set();\n const willFocusSubscribers = new Set();\n const didFocusSubscribers = new Set();\n const willBlurSubscribers = new Set();\n const didBlurSubscribers = new Set();\n const refocusSubscribers = new Set();\n\n const removeAll = () => {\n [\n actionSubscribers,\n willFocusSubscribers,\n didFocusSubscribers,\n willBlurSubscribers,\n didBlurSubscribers,\n refocusSubscribers,\n ].forEach(set => set.clear());\n\n upstreamSubscribers.forEach(subs => subs && subs.remove());\n };\n\n const getChildSubscribers = evtName => {\n switch (evtName) {\n case 'action':\n return actionSubscribers;\n case 'willFocus':\n return willFocusSubscribers;\n case 'didFocus':\n return didFocusSubscribers;\n case 'willBlur':\n return willBlurSubscribers;\n case 'didBlur':\n return didBlurSubscribers;\n case 'refocus':\n return refocusSubscribers;\n default:\n return null;\n }\n };\n\n const emit = (type, payload) => {\n const payloadWithType = { ...payload, type };\n const subscribers = getChildSubscribers(type);\n subscribers &&\n subscribers.forEach(subs => {\n subs(payloadWithType);\n });\n };\n\n // lastFocusEvent keeps track of focus state for one route. First we assume\n // we are blurred. If we are focused on initialization, the first 'action'\n // event will cause onFocus+willFocus events because we had previously been\n // considered blurred\n let lastFocusEvent = initialLastFocusEvent;\n\n const upstreamEvents = [\n 'willFocus',\n 'didFocus',\n 'willBlur',\n 'didBlur',\n 'refocus',\n 'action',\n ];\n\n const upstreamSubscribers = upstreamEvents.map(eventName =>\n addListener(eventName, payload => {\n if (eventName === 'refocus') {\n emit(eventName, payload);\n return;\n }\n\n const { state, lastState, action } = payload;\n const lastRoutes = lastState && lastState.routes;\n const routes = state && state.routes;\n\n // const lastFocusKey =\n // lastState && lastState.routes && lastState.routes[lastState.index].key;\n const focusKey = routes && routes[state.index].key;\n\n const isChildFocused = focusKey === key;\n const lastRoute =\n lastRoutes && lastRoutes.find(route => route.key === key);\n const newRoute = routes && routes.find(route => route.key === key);\n const childPayload = {\n context: `${key}:${action.type}_${payload.context || 'Root'}`,\n state: newRoute,\n lastState: lastRoute,\n action,\n type: eventName,\n };\n const isTransitioning = !!state && state.isTransitioning;\n\n const previouslylastFocusEvent = lastFocusEvent;\n\n if (lastFocusEvent === 'didBlur') {\n // The child is currently blurred. Look for willFocus conditions\n if (eventName === 'willFocus' && isChildFocused) {\n emit((lastFocusEvent = 'willFocus'), childPayload);\n } else if (eventName === 'action' && isChildFocused) {\n emit((lastFocusEvent = 'willFocus'), childPayload);\n }\n }\n if (lastFocusEvent === 'willFocus') {\n // We are currently mid-focus. Look for didFocus conditions.\n // If state.isTransitioning is false, this child event happens immediately after willFocus\n if (eventName === 'didFocus' && isChildFocused && !isTransitioning) {\n emit((lastFocusEvent = 'didFocus'), childPayload);\n } else if (\n eventName === 'action' &&\n isChildFocused &&\n !isTransitioning\n ) {\n emit((lastFocusEvent = 'didFocus'), childPayload);\n }\n }\n\n if (lastFocusEvent === 'didFocus') {\n // The child is currently focused. Look for blurring events\n if (!isChildFocused) {\n // The child is no longer focused within this navigation state\n emit((lastFocusEvent = 'willBlur'), childPayload);\n } else if (eventName === 'willBlur') {\n // The parent is getting a willBlur event\n emit((lastFocusEvent = 'willBlur'), childPayload);\n } else if (\n eventName === 'action' &&\n previouslylastFocusEvent === 'didFocus'\n ) {\n // While focused, pass action events to children for grandchildren focus\n emit('action', childPayload);\n }\n }\n\n if (lastFocusEvent === 'willBlur') {\n // The child is mid-blur. Wait for transition to end\n if (eventName === 'action' && !isChildFocused && !isTransitioning) {\n // The child is done blurring because transitioning is over, or isTransitioning\n // never began and didBlur fires immediately after willBlur\n emit((lastFocusEvent = 'didBlur'), childPayload);\n } else if (eventName === 'didBlur') {\n // Pass through the parent didBlur event if it happens\n emit((lastFocusEvent = 'didBlur'), childPayload);\n } else if (\n eventName === 'action' &&\n isChildFocused &&\n !isTransitioning\n ) {\n emit((lastFocusEvent = 'didFocus'), childPayload);\n } else if (\n eventName === 'action' &&\n isChildFocused &&\n isTransitioning\n ) {\n emit((lastFocusEvent = 'willFocus'), childPayload);\n }\n }\n\n if (lastFocusEvent === 'didBlur' && !newRoute) {\n removeAll();\n }\n })\n );\n\n return {\n addListener(eventName, eventHandler) {\n const subscribers = getChildSubscribers(eventName);\n if (!subscribers) {\n throw new Error(`Invalid event name \"${eventName}\"`);\n }\n subscribers.add(eventHandler);\n const remove = () => {\n subscribers.delete(eventHandler);\n };\n return { remove };\n },\n emit(eventName, payload) {\n if (eventName !== 'refocus') {\n console.error(\n `navigation.emit only supports the 'refocus' event currently.`\n );\n return;\n }\n emit(eventName, payload);\n },\n };\n}\n"]}
+\ No newline at end of file
++{"version":3,"sources":["getChildEventSubscriber.js"],"names":["getChildEventSubscriber","addListener","key","initialLastFocusEvent","actionSubscribers","Set","willFocusSubscribers","didFocusSubscribers","willBlurSubscribers","didBlurSubscribers","refocusSubscribers","removeAll","forEach","set","clear","upstreamSubscribers","subs","remove","getChildSubscribers","evtName","emit","type","payload","payloadWithType","subscribers","lastFocusEvent","upstreamEvents","map","eventName","state","lastState","action","lastRoutes","routes","focusKey","index","isChildFocused","lastRoute","find","route","newRoute","childPayload","context","isTransitioning","transitions","pushing","length","popping","previouslylastFocusEvent","eventHandler","Error","add","delete","console","error"],"mappings":"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","sourcesContent":["/*\n * This is used to extract one children's worth of events from a stream of navigation action events\n *\n * Based on the 'action' events that get fired for this navigation state, this utility will fire\n * focus and blur events for this child\n */\nexport default function getChildEventSubscriber(\n addListener,\n key,\n initialLastFocusEvent = 'didBlur'\n) {\n const actionSubscribers = new Set();\n const willFocusSubscribers = new Set();\n const didFocusSubscribers = new Set();\n const willBlurSubscribers = new Set();\n const didBlurSubscribers = new Set();\n const refocusSubscribers = new Set();\n\n const removeAll = () => {\n [\n actionSubscribers,\n willFocusSubscribers,\n didFocusSubscribers,\n willBlurSubscribers,\n didBlurSubscribers,\n refocusSubscribers,\n ].forEach(set => set.clear());\n\n upstreamSubscribers.forEach(subs => subs && subs.remove());\n };\n\n const getChildSubscribers = evtName => {\n switch (evtName) {\n case 'action':\n return actionSubscribers;\n case 'willFocus':\n return willFocusSubscribers;\n case 'didFocus':\n return didFocusSubscribers;\n case 'willBlur':\n return willBlurSubscribers;\n case 'didBlur':\n return didBlurSubscribers;\n case 'refocus':\n return refocusSubscribers;\n default:\n return null;\n }\n };\n\n const emit = (type, payload) => {\n const payloadWithType = { ...payload, type };\n const subscribers = getChildSubscribers(type);\n subscribers &&\n subscribers.forEach(subs => {\n subs(payloadWithType);\n });\n };\n\n // lastFocusEvent keeps track of focus state for one route. First we assume\n // we are blurred. If we are focused on initialization, the first 'action'\n // event will cause onFocus+willFocus events because we had previously been\n // considered blurred\n let lastFocusEvent = initialLastFocusEvent;\n\n const upstreamEvents = [\n 'willFocus',\n 'didFocus',\n 'willBlur',\n 'didBlur',\n 'refocus',\n 'action',\n ];\n\n const upstreamSubscribers = upstreamEvents.map(eventName =>\n addListener(eventName, payload => {\n if (eventName === 'refocus') {\n emit(eventName, payload);\n return;\n }\n\n const { state, lastState, action } = payload;\n const lastRoutes = lastState && lastState.routes;\n const routes = state && state.routes;\n\n // const lastFocusKey =\n // lastState && lastState.routes && lastState.routes[lastState.index].key;\n const focusKey = routes && routes[state.index].key;\n\n const isChildFocused = focusKey === key;\n const lastRoute =\n lastRoutes && lastRoutes.find(route => route.key === key);\n const newRoute = routes && routes.find(route => route.key === key);\n const childPayload = {\n context: `${key}:${action.type}_${payload.context || 'Root'}`,\n state: newRoute,\n lastState: lastRoute,\n action,\n type: eventName,\n };\n const isTransitioning =\n !!state &&\n state.transitions &&\n (state.transitions.pushing.length || state.transitions.popping.length);\n\n const previouslylastFocusEvent = lastFocusEvent;\n\n if (lastFocusEvent === 'didBlur') {\n // The child is currently blurred. Look for willFocus conditions\n if (eventName === 'willFocus' && isChildFocused) {\n emit((lastFocusEvent = 'willFocus'), childPayload);\n } else if (eventName === 'action' && isChildFocused) {\n emit((lastFocusEvent = 'willFocus'), childPayload);\n }\n }\n if (lastFocusEvent === 'willFocus') {\n // We are currently mid-focus. Look for didFocus conditions.\n // If state.isTransitioning is false, this child event happens immediately after willFocus\n if (eventName === 'didFocus' && isChildFocused && !isTransitioning) {\n emit((lastFocusEvent = 'didFocus'), childPayload);\n } else if (\n eventName === 'action' &&\n isChildFocused &&\n !isTransitioning\n ) {\n emit((lastFocusEvent = 'didFocus'), childPayload);\n }\n }\n\n if (lastFocusEvent === 'didFocus') {\n // The child is currently focused. Look for blurring events\n if (!isChildFocused) {\n // The child is no longer focused within this navigation state\n emit((lastFocusEvent = 'willBlur'), childPayload);\n } else if (eventName === 'willBlur') {\n // The parent is getting a willBlur event\n emit((lastFocusEvent = 'willBlur'), childPayload);\n } else if (\n eventName === 'action' &&\n previouslylastFocusEvent === 'didFocus'\n ) {\n // While focused, pass action events to children for grandchildren focus\n emit('action', childPayload);\n }\n }\n\n if (lastFocusEvent === 'willBlur') {\n // The child is mid-blur. Wait for transition to end\n if (eventName === 'action' && !isChildFocused && !isTransitioning) {\n // The child is done blurring because transitioning is over, or isTransitioning\n // never began and didBlur fires immediately after willBlur\n emit((lastFocusEvent = 'didBlur'), childPayload);\n } else if (eventName === 'didBlur') {\n // Pass through the parent didBlur event if it happens\n emit((lastFocusEvent = 'didBlur'), childPayload);\n } else if (\n eventName === 'action' &&\n isChildFocused &&\n !isTransitioning\n ) {\n emit((lastFocusEvent = 'didFocus'), childPayload);\n } else if (\n eventName === 'action' &&\n isChildFocused &&\n isTransitioning\n ) {\n emit((lastFocusEvent = 'willFocus'), childPayload);\n }\n }\n\n if (lastFocusEvent === 'didBlur' && !newRoute) {\n removeAll();\n }\n })\n );\n\n return {\n addListener(eventName, eventHandler) {\n const subscribers = getChildSubscribers(eventName);\n if (!subscribers) {\n throw new Error(`Invalid event name \"${eventName}\"`);\n }\n subscribers.add(eventHandler);\n const remove = () => {\n subscribers.delete(eventHandler);\n };\n return { remove };\n },\n emit(eventName, payload) {\n if (eventName !== 'refocus') {\n console.error(\n `navigation.emit only supports the 'refocus' event currently.`\n );\n return;\n }\n emit(eventName, payload);\n },\n };\n}\n"]}
+\ No newline at end of file
+diff --git a/node_modules/@react-navigation/core/lib/commonjs/getChildrenNavigationCache.js b/node_modules/@react-navigation/core/lib/commonjs/getChildrenNavigationCache.js
+index 187e9ad..45bedd7 100644
+--- a/node_modules/@react-navigation/core/lib/commonjs/getChildrenNavigationCache.js
++++ b/node_modules/@react-navigation/core/lib/commonjs/getChildrenNavigationCache.js
+@@ -1,2 +1,2 @@
+-Object.defineProperty(exports,"__esModule",{value:true});exports.default=getChildrenNavigationCache;function getChildrenNavigationCache(navigation){if(!navigation){return{};}var childrenNavigationCache=navigation._childrenNavigation||(navigation._childrenNavigation={});var childKeys=navigation.state.routes.map(function(route){return route.key;});Object.keys(childrenNavigationCache).forEach(function(cacheKey){if(!childKeys.includes(cacheKey)&&!navigation.state.isTransitioning){delete childrenNavigationCache[cacheKey];}});return navigation._childrenNavigation;}
++Object.defineProperty(exports,"__esModule",{value:true});exports.default=getChildrenNavigationCache;function getChildrenNavigationCache(navigation){if(!navigation){return{};}var childrenNavigationCache=navigation._childrenNavigation||(navigation._childrenNavigation={});var childKeys=navigation.state.routes.map(function(route){return route.key;});Object.keys(childrenNavigationCache).forEach(function(cacheKey){if(!childKeys.includes(cacheKey)){delete childrenNavigationCache[cacheKey];}});return navigation._childrenNavigation;}
+ //# sourceMappingURL=getChildrenNavigationCache.js.map
+\ No newline at end of file
+diff --git a/node_modules/@react-navigation/core/lib/commonjs/getChildrenNavigationCache.js.map b/node_modules/@react-navigation/core/lib/commonjs/getChildrenNavigationCache.js.map
+index 116123d..dda563d 100644
+--- a/node_modules/@react-navigation/core/lib/commonjs/getChildrenNavigationCache.js.map
++++ b/node_modules/@react-navigation/core/lib/commonjs/getChildrenNavigationCache.js.map
+@@ -1 +1 @@
+-{"version":3,"sources":["getChildrenNavigationCache.js"],"names":["getChildrenNavigationCache","navigation","childrenNavigationCache","_childrenNavigation","childKeys","state","routes","map","route","key","Object","keys","forEach","cacheKey","includes","isTransitioning"],"mappings":"oGAAe,QAASA,CAAAA,0BAAT,CAAoCC,UAApC,CAAgD,CAC7D,GAAI,CAACA,UAAL,CAAiB,CACf,MAAO,EAAP,CACD,CAED,GAAIC,CAAAA,uBAAuB,CACzBD,UAAU,CAACE,mBAAX,GAAmCF,UAAU,CAACE,mBAAX,CAAiC,EAApE,CADF,CAEA,GAAIC,CAAAA,SAAS,CAAGH,UAAU,CAACI,KAAX,CAAiBC,MAAjB,CAAwBC,GAAxB,CAA4B,SAAAC,KAAK,QAAIA,CAAAA,KAAK,CAACC,GAAV,EAAjC,CAAhB,CACAC,MAAM,CAACC,IAAP,CAAYT,uBAAZ,EAAqCU,OAArC,CAA6C,SAAAC,QAAQ,CAAI,CACvD,GAAI,CAACT,SAAS,CAACU,QAAV,CAAmBD,QAAnB,CAAD,EAAiC,CAACZ,UAAU,CAACI,KAAX,CAAiBU,eAAvD,CAAwE,CACtE,MAAOb,CAAAA,uBAAuB,CAACW,QAAD,CAA9B,CACD,CACF,CAJD,EAMA,MAAOZ,CAAAA,UAAU,CAACE,mBAAlB,CACD","sourcesContent":["export default function getChildrenNavigationCache(navigation) {\n if (!navigation) {\n return {};\n }\n\n let childrenNavigationCache =\n navigation._childrenNavigation || (navigation._childrenNavigation = {});\n let childKeys = navigation.state.routes.map(route => route.key);\n Object.keys(childrenNavigationCache).forEach(cacheKey => {\n if (!childKeys.includes(cacheKey) && !navigation.state.isTransitioning) {\n delete childrenNavigationCache[cacheKey];\n }\n });\n\n return navigation._childrenNavigation;\n}\n"]}
+\ No newline at end of file
++{"version":3,"sources":["getChildrenNavigationCache.js"],"names":["getChildrenNavigationCache","navigation","childrenNavigationCache","_childrenNavigation","childKeys","state","routes","map","route","key","Object","keys","forEach","cacheKey","includes"],"mappings":"oGAAe,QAASA,CAAAA,0BAAT,CAAoCC,UAApC,CAAgD,CAC7D,GAAI,CAACA,UAAL,CAAiB,CACf,MAAO,EAAP,CACD,CAED,GAAIC,CAAAA,uBAAuB,CACzBD,UAAU,CAACE,mBAAX,GAAmCF,UAAU,CAACE,mBAAX,CAAiC,EAApE,CADF,CAEA,GAAIC,CAAAA,SAAS,CAAGH,UAAU,CAACI,KAAX,CAAiBC,MAAjB,CAAwBC,GAAxB,CAA4B,SAAAC,KAAK,QAAIA,CAAAA,KAAK,CAACC,GAAV,EAAjC,CAAhB,CACAC,MAAM,CAACC,IAAP,CAAYT,uBAAZ,EAAqCU,OAArC,CAA6C,SAAAC,QAAQ,CAAI,CACvD,GAAI,CAACT,SAAS,CAACU,QAAV,CAAmBD,QAAnB,CAAL,CAAmC,CACjC,MAAOX,CAAAA,uBAAuB,CAACW,QAAD,CAA9B,CACD,CACF,CAJD,EAMA,MAAOZ,CAAAA,UAAU,CAACE,mBAAlB,CACD","sourcesContent":["export default function getChildrenNavigationCache(navigation) {\n if (!navigation) {\n return {};\n }\n\n let childrenNavigationCache =\n navigation._childrenNavigation || (navigation._childrenNavigation = {});\n let childKeys = navigation.state.routes.map(route => route.key);\n Object.keys(childrenNavigationCache).forEach(cacheKey => {\n if (!childKeys.includes(cacheKey)) {\n delete childrenNavigationCache[cacheKey];\n }\n });\n\n return navigation._childrenNavigation;\n}\n"]}
+\ No newline at end of file
+diff --git a/node_modules/@react-navigation/core/lib/commonjs/navigators/__tests__/createSwitchnavigator-test.js b/node_modules/@react-navigation/core/lib/commonjs/navigators/__tests__/createSwitchnavigator-test.js
+index a0a6447..45efe64 100644
+--- a/node_modules/@react-navigation/core/lib/commonjs/navigators/__tests__/createSwitchnavigator-test.js
++++ b/node_modules/@react-navigation/core/lib/commonjs/navigators/__tests__/createSwitchnavigator-test.js
+@@ -1,2 +1,2 @@
+-var _interopRequireWildcard=require("@babel/runtime/helpers/interopRequireWildcard");var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var React=_interopRequireWildcard(require("react"));var _reactNative=require("react-native");var _reactNativeTestingLibrary=require("react-native-testing-library");var _native=require("@react-navigation/native");var _createSwitchNavigator=_interopRequireDefault(require("../createSwitchNavigator"));var _jsxFileName="/Users/satya/Workspace/Callstack/react-navigation-core/src/navigators/__tests__/createSwitchnavigator-test.js";jest.mock('@react-navigation/core',function(){return require('../../index');});var getActiveRouteName=function getActiveRouteName(state){return state.routes[state.index].routeName;};var createScreen=function createScreen(routeName,nextRouteName){return function(props){return React.createElement(_reactNative.View,{__source:{fileName:_jsxFileName,lineNumber:11}},React.createElement(_reactNative.Text,{testID:"title",__source:{fileName:_jsxFileName,lineNumber:12}},routeName),React.createElement(_reactNative.Text,{testID:routeName+'-isFirstRoute',__source:{fileName:_jsxFileName,lineNumber:13}},String(props.navigation.isFirstRouteInParent())),React.createElement(_reactNative.TouchableOpacity,{testID:routeName+'-next',onPress:function onPress(){return props.navigation.navigate(nextRouteName);},__source:{fileName:_jsxFileName,lineNumber:16}},"Go to ",nextRouteName),React.createElement(_reactNative.TouchableOpacity,{testID:routeName+'-back',onPress:function onPress(){return props.navigation.goBack();},__source:{fileName:_jsxFileName,lineNumber:22}},"Go back"));};};it('renders switch navigator with initialRouteName',function(){var SwitchNavigator=(0,_createSwitchNavigator.default)({First:createScreen('First','Third'),Second:createScreen('Second','First'),Third:createScreen('Third','Second')},{initialRouteName:'Second'});var App=(0,_native.createAppContainer)(SwitchNavigator);var _render=(0,_reactNativeTestingLibrary.render)(React.createElement(App,{__source:{fileName:_jsxFileName,lineNumber:45}})),queryByText=_render.queryByText,getByTestId=_render.getByTestId;expect(queryByText('First')).toBeNull();expect(queryByText('Third')).toBeNull();expect(queryByText('Second')).not.toBeNull();_reactNativeTestingLibrary.fireEvent.press(getByTestId('Second-next'));expect(queryByText('First')).not.toBeNull();expect(queryByText('Third')).toBeNull();expect(queryByText('Second')).toBeNull();});it('uses backBehavior=none by default',function(){var SwitchNavigator=(0,_createSwitchNavigator.default)({First:createScreen('First','Third'),Second:createScreen('Second','First'),Third:createScreen('Third','Second')});var App=(0,_native.createAppContainer)(SwitchNavigator);var navigationRef=React.createRef();var _render2=(0,_reactNativeTestingLibrary.render)(React.createElement(App,{ref:navigationRef,__source:{fileName:_jsxFileName,lineNumber:69}})),getByTestId=_render2.getByTestId;expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');_reactNativeTestingLibrary.fireEvent.press(getByTestId('First-next'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Third');_reactNativeTestingLibrary.fireEvent.press(getByTestId('Third-next'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');_reactNativeTestingLibrary.fireEvent.press(getByTestId('Second-back'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');});it('uses backBehavior=initialRoute when specified',function(){var SwitchNavigator=(0,_createSwitchNavigator.default)({First:createScreen('First','Third'),Second:createScreen('Second','First'),Third:createScreen('Third','Second')},{backBehavior:'initialRoute'});var App=(0,_native.createAppContainer)(SwitchNavigator);var navigationRef=React.createRef();var _render3=(0,_reactNativeTestingLibrary.render)(React.createElement(App,{ref:navigationRef,__source:{fileName:_jsxFileName,lineNumber:102}})),getByTestId=_render3.getByTestId;expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');_reactNativeTestingLibrary.fireEvent.press(getByTestId('First-next'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Third');_reactNativeTestingLibrary.fireEvent.press(getByTestId('Third-next'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');_reactNativeTestingLibrary.fireEvent.press(getByTestId('Second-back'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');});it('uses backBehavior=order when specified',function(){var SwitchNavigator=(0,_createSwitchNavigator.default)({First:createScreen('First','Third'),Second:createScreen('Second','First'),Third:createScreen('Third','Second')},{backBehavior:'order'});var App=(0,_native.createAppContainer)(SwitchNavigator);var navigationRef=React.createRef();var _render4=(0,_reactNativeTestingLibrary.render)(React.createElement(App,{ref:navigationRef,__source:{fileName:_jsxFileName,lineNumber:135}})),getByTestId=_render4.getByTestId;expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');_reactNativeTestingLibrary.fireEvent.press(getByTestId('First-next'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Third');_reactNativeTestingLibrary.fireEvent.press(getByTestId('Third-back'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');_reactNativeTestingLibrary.fireEvent.press(getByTestId('Second-back'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');});it('uses backBehavior=history when specified',function(){var SwitchNavigator=(0,_createSwitchNavigator.default)({First:createScreen('First','Third'),Second:createScreen('Second','First'),Third:createScreen('Third','Second')},{backBehavior:'history'});var App=(0,_native.createAppContainer)(SwitchNavigator);var navigationRef=React.createRef();var _render5=(0,_reactNativeTestingLibrary.render)(React.createElement(App,{ref:navigationRef,__source:{fileName:_jsxFileName,lineNumber:168}})),getByTestId=_render5.getByTestId;expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');_reactNativeTestingLibrary.fireEvent.press(getByTestId('First-next'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Third');_reactNativeTestingLibrary.fireEvent.press(getByTestId('Third-next'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');_reactNativeTestingLibrary.fireEvent.press(getByTestId('Second-next'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');_reactNativeTestingLibrary.fireEvent.press(getByTestId('First-next'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Third');_reactNativeTestingLibrary.fireEvent.press(getByTestId('Third-back'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');_reactNativeTestingLibrary.fireEvent.press(getByTestId('First-back'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');_reactNativeTestingLibrary.fireEvent.press(getByTestId('Second-back'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');});it('returns correct value for canGoBack in a simple navigator',function(){var SwitchNavigator=(0,_createSwitchNavigator.default)({First:createScreen('First','Third'),Second:createScreen('Second','First'),Third:createScreen('Third','Second')},{backBehavior:'history'});var App=(0,_native.createAppContainer)(SwitchNavigator);var navigationRef=React.createRef();var _render6=(0,_reactNativeTestingLibrary.render)(React.createElement(App,{ref:navigationRef,__source:{fileName:_jsxFileName,lineNumber:217}})),getByTestId=_render6.getByTestId;expect(getByTestId('First-isFirstRoute').props.children).toBe('true');_reactNativeTestingLibrary.fireEvent.press(getByTestId('First-next'));expect(getByTestId('Third-isFirstRoute').props.children).toBe('false');_reactNativeTestingLibrary.fireEvent.press(getByTestId('Third-next'));expect(getByTestId('Second-isFirstRoute').props.children).toBe('false');_reactNativeTestingLibrary.fireEvent.press(getByTestId('Second-back'));expect(getByTestId('Third-isFirstRoute').props.children).toBe('false');});
++var _interopRequireWildcard=require("@babel/runtime/helpers/interopRequireWildcard");var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var React=_interopRequireWildcard(require("react"));var _reactNative=require("react-native");var _reactNativeTestingLibrary=require("react-native-testing-library");var _native=require("@react-navigation/native");var _createSwitchNavigator=_interopRequireDefault(require("../createSwitchNavigator"));var _jsxFileName="/Users/brentvatne/coding/react-navigation-core/src/navigators/__tests__/createSwitchnavigator-test.js";jest.mock('@react-navigation/core',function(){return require('../../index');});var getActiveRouteName=function getActiveRouteName(state){return state.routes[state.index].routeName;};var createScreen=function createScreen(routeName,nextRouteName){return function(props){return React.createElement(_reactNative.View,{__source:{fileName:_jsxFileName,lineNumber:11}},React.createElement(_reactNative.Text,{testID:"title",__source:{fileName:_jsxFileName,lineNumber:12}},routeName),React.createElement(_reactNative.Text,{testID:routeName+'-isFirstRoute',__source:{fileName:_jsxFileName,lineNumber:13}},String(props.navigation.isFirstRouteInParent())),React.createElement(_reactNative.TouchableOpacity,{testID:routeName+'-next',onPress:function onPress(){return props.navigation.navigate(nextRouteName);},__source:{fileName:_jsxFileName,lineNumber:16}},"Go to ",nextRouteName),React.createElement(_reactNative.TouchableOpacity,{testID:routeName+'-back',onPress:function onPress(){return props.navigation.goBack();},__source:{fileName:_jsxFileName,lineNumber:22}},"Go back"));};};it('renders switch navigator with initialRouteName',function(){var SwitchNavigator=(0,_createSwitchNavigator.default)({First:createScreen('First','Third'),Second:createScreen('Second','First'),Third:createScreen('Third','Second')},{initialRouteName:'Second'});var App=(0,_native.createAppContainer)(SwitchNavigator);var _render=(0,_reactNativeTestingLibrary.render)(React.createElement(App,{__source:{fileName:_jsxFileName,lineNumber:45}})),queryByText=_render.queryByText,getByTestId=_render.getByTestId;expect(queryByText('First')).toBeNull();expect(queryByText('Third')).toBeNull();expect(queryByText('Second')).not.toBeNull();_reactNativeTestingLibrary.fireEvent.press(getByTestId('Second-next'));expect(queryByText('First')).not.toBeNull();expect(queryByText('Third')).toBeNull();expect(queryByText('Second')).toBeNull();});it('uses backBehavior=none by default',function(){var SwitchNavigator=(0,_createSwitchNavigator.default)({First:createScreen('First','Third'),Second:createScreen('Second','First'),Third:createScreen('Third','Second')});var App=(0,_native.createAppContainer)(SwitchNavigator);var navigationRef=React.createRef();var _render2=(0,_reactNativeTestingLibrary.render)(React.createElement(App,{ref:navigationRef,__source:{fileName:_jsxFileName,lineNumber:69}})),getByTestId=_render2.getByTestId;expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');_reactNativeTestingLibrary.fireEvent.press(getByTestId('First-next'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Third');_reactNativeTestingLibrary.fireEvent.press(getByTestId('Third-next'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');_reactNativeTestingLibrary.fireEvent.press(getByTestId('Second-back'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');});it('uses backBehavior=initialRoute when specified',function(){var SwitchNavigator=(0,_createSwitchNavigator.default)({First:createScreen('First','Third'),Second:createScreen('Second','First'),Third:createScreen('Third','Second')},{backBehavior:'initialRoute'});var App=(0,_native.createAppContainer)(SwitchNavigator);var navigationRef=React.createRef();var _render3=(0,_reactNativeTestingLibrary.render)(React.createElement(App,{ref:navigationRef,__source:{fileName:_jsxFileName,lineNumber:102}})),getByTestId=_render3.getByTestId;expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');_reactNativeTestingLibrary.fireEvent.press(getByTestId('First-next'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Third');_reactNativeTestingLibrary.fireEvent.press(getByTestId('Third-next'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');_reactNativeTestingLibrary.fireEvent.press(getByTestId('Second-back'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');});it('uses backBehavior=order when specified',function(){var SwitchNavigator=(0,_createSwitchNavigator.default)({First:createScreen('First','Third'),Second:createScreen('Second','First'),Third:createScreen('Third','Second')},{backBehavior:'order'});var App=(0,_native.createAppContainer)(SwitchNavigator);var navigationRef=React.createRef();var _render4=(0,_reactNativeTestingLibrary.render)(React.createElement(App,{ref:navigationRef,__source:{fileName:_jsxFileName,lineNumber:135}})),getByTestId=_render4.getByTestId;expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');_reactNativeTestingLibrary.fireEvent.press(getByTestId('First-next'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Third');_reactNativeTestingLibrary.fireEvent.press(getByTestId('Third-back'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');_reactNativeTestingLibrary.fireEvent.press(getByTestId('Second-back'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');});it('uses backBehavior=history when specified',function(){var SwitchNavigator=(0,_createSwitchNavigator.default)({First:createScreen('First','Third'),Second:createScreen('Second','First'),Third:createScreen('Third','Second')},{backBehavior:'history'});var App=(0,_native.createAppContainer)(SwitchNavigator);var navigationRef=React.createRef();var _render5=(0,_reactNativeTestingLibrary.render)(React.createElement(App,{ref:navigationRef,__source:{fileName:_jsxFileName,lineNumber:168}})),getByTestId=_render5.getByTestId;expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');_reactNativeTestingLibrary.fireEvent.press(getByTestId('First-next'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Third');_reactNativeTestingLibrary.fireEvent.press(getByTestId('Third-next'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');_reactNativeTestingLibrary.fireEvent.press(getByTestId('Second-next'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');_reactNativeTestingLibrary.fireEvent.press(getByTestId('First-next'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Third');_reactNativeTestingLibrary.fireEvent.press(getByTestId('Third-back'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');_reactNativeTestingLibrary.fireEvent.press(getByTestId('First-back'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');_reactNativeTestingLibrary.fireEvent.press(getByTestId('Second-back'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');});it('returns correct value for canGoBack in a simple navigator',function(){var SwitchNavigator=(0,_createSwitchNavigator.default)({First:createScreen('First','Third'),Second:createScreen('Second','First'),Third:createScreen('Third','Second')},{backBehavior:'history'});var App=(0,_native.createAppContainer)(SwitchNavigator);var navigationRef=React.createRef();var _render6=(0,_reactNativeTestingLibrary.render)(React.createElement(App,{ref:navigationRef,__source:{fileName:_jsxFileName,lineNumber:217}})),getByTestId=_render6.getByTestId;expect(getByTestId('First-isFirstRoute').props.children).toBe('true');_reactNativeTestingLibrary.fireEvent.press(getByTestId('First-next'));expect(getByTestId('Third-isFirstRoute').props.children).toBe('false');_reactNativeTestingLibrary.fireEvent.press(getByTestId('Third-next'));expect(getByTestId('Second-isFirstRoute').props.children).toBe('false');_reactNativeTestingLibrary.fireEvent.press(getByTestId('Second-back'));expect(getByTestId('Third-isFirstRoute').props.children).toBe('false');});
+ //# sourceMappingURL=createSwitchnavigator-test.js.map
+\ No newline at end of file
+diff --git a/node_modules/@react-navigation/core/lib/commonjs/navigators/__tests__/createSwitchnavigator-test.js.map b/node_modules/@react-navigation/core/lib/commonjs/navigators/__tests__/createSwitchnavigator-test.js.map
+index 5bc492a..5ee1438 100644
+--- a/node_modules/@react-navigation/core/lib/commonjs/navigators/__tests__/createSwitchnavigator-test.js.map
++++ b/node_modules/@react-navigation/core/lib/commonjs/navigators/__tests__/createSwitchnavigator-test.js.map
+@@ -1 +1 @@
+-{"version":3,"sources":["createSwitchnavigator-test.js"],"names":["jest","mock","require","getActiveRouteName","state","routes","index","routeName","createScreen","nextRouteName","props","String","navigation","isFirstRouteInParent","navigate","goBack","it","SwitchNavigator","First","Second","Third","initialRouteName","App","queryByText","getByTestId","expect","toBeNull","not","fireEvent","press","navigationRef","React","createRef","current","nav","toBe","backBehavior","children"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { Text, View, TouchableOpacity } from 'react-native';\nimport { render, fireEvent } from 'react-native-testing-library';\nimport { createAppContainer } from '@react-navigation/native';\nimport createSwitchNavigator from '../createSwitchNavigator';\n\njest.mock('@react-navigation/core', () => require('../../index'));\n\nconst getActiveRouteName = state => state.routes[state.index].routeName;\nconst createScreen = (routeName, nextRouteName) => props => (\n \n {routeName}\n \n {String(props.navigation.isFirstRouteInParent())}\n \n props.navigation.navigate(nextRouteName)}\n >\n Go to {nextRouteName}\n \n props.navigation.goBack()}\n >\n Go back\n \n \n);\n\nit('renders switch navigator with initialRouteName', () => {\n const SwitchNavigator = createSwitchNavigator(\n {\n First: createScreen('First', 'Third'),\n Second: createScreen('Second', 'First'),\n Third: createScreen('Third', 'Second'),\n },\n {\n initialRouteName: 'Second',\n }\n );\n\n const App = createAppContainer(SwitchNavigator);\n\n const { queryByText, getByTestId } = render();\n\n expect(queryByText('First')).toBeNull();\n expect(queryByText('Third')).toBeNull();\n expect(queryByText('Second')).not.toBeNull();\n\n fireEvent.press(getByTestId('Second-next'));\n\n expect(queryByText('First')).not.toBeNull();\n expect(queryByText('Third')).toBeNull();\n expect(queryByText('Second')).toBeNull();\n});\n\nit('uses backBehavior=none by default', () => {\n const SwitchNavigator = createSwitchNavigator({\n First: createScreen('First', 'Third'),\n Second: createScreen('Second', 'First'),\n Third: createScreen('Third', 'Second'),\n });\n\n const App = createAppContainer(SwitchNavigator);\n\n const navigationRef = React.createRef();\n\n const { getByTestId } = render();\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');\n\n fireEvent.press(getByTestId('First-next'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Third');\n\n fireEvent.press(getByTestId('Third-next'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');\n\n fireEvent.press(getByTestId('Second-back'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');\n});\n\nit('uses backBehavior=initialRoute when specified', () => {\n const SwitchNavigator = createSwitchNavigator(\n {\n First: createScreen('First', 'Third'),\n Second: createScreen('Second', 'First'),\n Third: createScreen('Third', 'Second'),\n },\n {\n backBehavior: 'initialRoute',\n }\n );\n\n const App = createAppContainer(SwitchNavigator);\n\n const navigationRef = React.createRef();\n\n const { getByTestId } = render();\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');\n\n fireEvent.press(getByTestId('First-next'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Third');\n\n fireEvent.press(getByTestId('Third-next'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');\n\n fireEvent.press(getByTestId('Second-back'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');\n});\n\nit('uses backBehavior=order when specified', () => {\n const SwitchNavigator = createSwitchNavigator(\n {\n First: createScreen('First', 'Third'),\n Second: createScreen('Second', 'First'),\n Third: createScreen('Third', 'Second'),\n },\n {\n backBehavior: 'order',\n }\n );\n\n const App = createAppContainer(SwitchNavigator);\n\n const navigationRef = React.createRef();\n\n const { getByTestId } = render();\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');\n\n fireEvent.press(getByTestId('First-next'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Third');\n\n fireEvent.press(getByTestId('Third-back'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');\n\n fireEvent.press(getByTestId('Second-back'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');\n});\n\nit('uses backBehavior=history when specified', () => {\n const SwitchNavigator = createSwitchNavigator(\n {\n First: createScreen('First', 'Third'),\n Second: createScreen('Second', 'First'),\n Third: createScreen('Third', 'Second'),\n },\n {\n backBehavior: 'history',\n }\n );\n\n const App = createAppContainer(SwitchNavigator);\n\n const navigationRef = React.createRef();\n\n const { getByTestId } = render();\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');\n\n fireEvent.press(getByTestId('First-next'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Third');\n\n fireEvent.press(getByTestId('Third-next'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');\n\n fireEvent.press(getByTestId('Second-next'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');\n\n fireEvent.press(getByTestId('First-next'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Third');\n\n fireEvent.press(getByTestId('Third-back'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');\n\n fireEvent.press(getByTestId('First-back'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');\n\n fireEvent.press(getByTestId('Second-back'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');\n});\n\nit('returns correct value for canGoBack in a simple navigator', () => {\n const SwitchNavigator = createSwitchNavigator(\n {\n First: createScreen('First', 'Third'),\n Second: createScreen('Second', 'First'),\n Third: createScreen('Third', 'Second'),\n },\n {\n backBehavior: 'history',\n }\n );\n\n const App = createAppContainer(SwitchNavigator);\n\n const navigationRef = React.createRef();\n\n const { getByTestId } = render();\n\n expect(getByTestId('First-isFirstRoute').props.children).toBe('true');\n\n fireEvent.press(getByTestId('First-next'));\n\n expect(getByTestId('Third-isFirstRoute').props.children).toBe('false');\n\n fireEvent.press(getByTestId('Third-next'));\n\n expect(getByTestId('Second-isFirstRoute').props.children).toBe('false');\n\n fireEvent.press(getByTestId('Second-back'));\n\n expect(getByTestId('Third-isFirstRoute').props.children).toBe('false');\n});\n"]}
+\ No newline at end of file
++{"version":3,"sources":["createSwitchnavigator-test.js"],"names":["jest","mock","require","getActiveRouteName","state","routes","index","routeName","createScreen","nextRouteName","props","String","navigation","isFirstRouteInParent","navigate","goBack","it","SwitchNavigator","First","Second","Third","initialRouteName","App","queryByText","getByTestId","expect","toBeNull","not","fireEvent","press","navigationRef","React","createRef","current","nav","toBe","backBehavior","children"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { Text, View, TouchableOpacity } from 'react-native';\nimport { render, fireEvent } from 'react-native-testing-library';\nimport { createAppContainer } from '@react-navigation/native';\nimport createSwitchNavigator from '../createSwitchNavigator';\n\njest.mock('@react-navigation/core', () => require('../../index'));\n\nconst getActiveRouteName = state => state.routes[state.index].routeName;\nconst createScreen = (routeName, nextRouteName) => props => (\n \n {routeName}\n \n {String(props.navigation.isFirstRouteInParent())}\n \n props.navigation.navigate(nextRouteName)}\n >\n Go to {nextRouteName}\n \n props.navigation.goBack()}\n >\n Go back\n \n \n);\n\nit('renders switch navigator with initialRouteName', () => {\n const SwitchNavigator = createSwitchNavigator(\n {\n First: createScreen('First', 'Third'),\n Second: createScreen('Second', 'First'),\n Third: createScreen('Third', 'Second'),\n },\n {\n initialRouteName: 'Second',\n }\n );\n\n const App = createAppContainer(SwitchNavigator);\n\n const { queryByText, getByTestId } = render();\n\n expect(queryByText('First')).toBeNull();\n expect(queryByText('Third')).toBeNull();\n expect(queryByText('Second')).not.toBeNull();\n\n fireEvent.press(getByTestId('Second-next'));\n\n expect(queryByText('First')).not.toBeNull();\n expect(queryByText('Third')).toBeNull();\n expect(queryByText('Second')).toBeNull();\n});\n\nit('uses backBehavior=none by default', () => {\n const SwitchNavigator = createSwitchNavigator({\n First: createScreen('First', 'Third'),\n Second: createScreen('Second', 'First'),\n Third: createScreen('Third', 'Second'),\n });\n\n const App = createAppContainer(SwitchNavigator);\n\n const navigationRef = React.createRef();\n\n const { getByTestId } = render();\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');\n\n fireEvent.press(getByTestId('First-next'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Third');\n\n fireEvent.press(getByTestId('Third-next'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');\n\n fireEvent.press(getByTestId('Second-back'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');\n});\n\nit('uses backBehavior=initialRoute when specified', () => {\n const SwitchNavigator = createSwitchNavigator(\n {\n First: createScreen('First', 'Third'),\n Second: createScreen('Second', 'First'),\n Third: createScreen('Third', 'Second'),\n },\n {\n backBehavior: 'initialRoute',\n }\n );\n\n const App = createAppContainer(SwitchNavigator);\n\n const navigationRef = React.createRef();\n\n const { getByTestId } = render();\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');\n\n fireEvent.press(getByTestId('First-next'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Third');\n\n fireEvent.press(getByTestId('Third-next'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');\n\n fireEvent.press(getByTestId('Second-back'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');\n});\n\nit('uses backBehavior=order when specified', () => {\n const SwitchNavigator = createSwitchNavigator(\n {\n First: createScreen('First', 'Third'),\n Second: createScreen('Second', 'First'),\n Third: createScreen('Third', 'Second'),\n },\n {\n backBehavior: 'order',\n }\n );\n\n const App = createAppContainer(SwitchNavigator);\n\n const navigationRef = React.createRef();\n\n const { getByTestId } = render();\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');\n\n fireEvent.press(getByTestId('First-next'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Third');\n\n fireEvent.press(getByTestId('Third-back'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');\n\n fireEvent.press(getByTestId('Second-back'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');\n});\n\nit('uses backBehavior=history when specified', () => {\n const SwitchNavigator = createSwitchNavigator(\n {\n First: createScreen('First', 'Third'),\n Second: createScreen('Second', 'First'),\n Third: createScreen('Third', 'Second'),\n },\n {\n backBehavior: 'history',\n }\n );\n\n const App = createAppContainer(SwitchNavigator);\n\n const navigationRef = React.createRef();\n\n const { getByTestId } = render();\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');\n\n fireEvent.press(getByTestId('First-next'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Third');\n\n fireEvent.press(getByTestId('Third-next'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');\n\n fireEvent.press(getByTestId('Second-next'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');\n\n fireEvent.press(getByTestId('First-next'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Third');\n\n fireEvent.press(getByTestId('Third-back'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');\n\n fireEvent.press(getByTestId('First-back'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');\n\n fireEvent.press(getByTestId('Second-back'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');\n});\n\nit('returns correct value for canGoBack in a simple navigator', () => {\n const SwitchNavigator = createSwitchNavigator(\n {\n First: createScreen('First', 'Third'),\n Second: createScreen('Second', 'First'),\n Third: createScreen('Third', 'Second'),\n },\n {\n backBehavior: 'history',\n }\n );\n\n const App = createAppContainer(SwitchNavigator);\n\n const navigationRef = React.createRef();\n\n const { getByTestId } = render();\n\n expect(getByTestId('First-isFirstRoute').props.children).toBe('true');\n\n fireEvent.press(getByTestId('First-next'));\n\n expect(getByTestId('Third-isFirstRoute').props.children).toBe('false');\n\n fireEvent.press(getByTestId('Third-next'));\n\n expect(getByTestId('Second-isFirstRoute').props.children).toBe('false');\n\n fireEvent.press(getByTestId('Second-back'));\n\n expect(getByTestId('Third-isFirstRoute').props.children).toBe('false');\n});\n"]}
+\ No newline at end of file
+diff --git a/node_modules/@react-navigation/core/lib/commonjs/navigators/createNavigator.js b/node_modules/@react-navigation/core/lib/commonjs/navigators/createNavigator.js
+index 1ba5d62..e551cd2 100644
+--- a/node_modules/@react-navigation/core/lib/commonjs/navigators/createNavigator.js
++++ b/node_modules/@react-navigation/core/lib/commonjs/navigators/createNavigator.js
+@@ -1,2 +1,2 @@
+-var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _classCallCheck2=_interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));var _createClass2=_interopRequireDefault(require("@babel/runtime/helpers/createClass"));var _possibleConstructorReturn2=_interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));var _getPrototypeOf3=_interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));var _inherits2=_interopRequireDefault(require("@babel/runtime/helpers/inherits"));var _react=_interopRequireDefault(require("react"));var _invariant=_interopRequireDefault(require("../utils/invariant"));var _jsxFileName="/Users/satya/Workspace/Callstack/react-navigation-core/src/navigators/createNavigator.js";function createNavigator(NavigatorView,router,navigationConfig){var Navigator=function(_React$Component){(0,_inherits2.default)(Navigator,_React$Component);function Navigator(){var _getPrototypeOf2;var _this;(0,_classCallCheck2.default)(this,Navigator);for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key];}_this=(0,_possibleConstructorReturn2.default)(this,(_getPrototypeOf2=(0,_getPrototypeOf3.default)(Navigator)).call.apply(_getPrototypeOf2,[this].concat(args)));_this.state={descriptors:{},screenProps:_this.props.screenProps};return _this;}(0,_createClass2.default)(Navigator,[{key:"render",value:function render(){return _react.default.createElement(NavigatorView,(0,_extends2.default)({},this.props,{screenProps:this.state.screenProps,navigation:this.props.navigation,navigationConfig:navigationConfig,descriptors:this.state.descriptors,__source:{fileName:_jsxFileName,lineNumber:61}}));}}],[{key:"getDerivedStateFromProps",value:function getDerivedStateFromProps(nextProps,prevState){var prevDescriptors=prevState.descriptors;var navigation=nextProps.navigation,screenProps=nextProps.screenProps;(0,_invariant.default)(navigation!=null,'The navigation prop is missing for this navigator. In react-navigation 3 you must set up your app container directly. More info: https://reactnavigation.org/docs/en/app-containers.html');var state=navigation.state;var routes=state.routes;if(typeof routes==='undefined'){throw new TypeError('No "routes" found in navigation state. Did you try to pass the navigation prop of a React component to a Navigator child? See https://reactnavigation.org/docs/en/custom-navigators.html#navigator-navigation-prop');}var descriptors={};routes.forEach(function(route){if(prevDescriptors&&prevDescriptors[route.key]&&route===prevDescriptors[route.key].state&&screenProps===prevState.screenProps){descriptors[route.key]=prevDescriptors[route.key];return;}var getComponent=router.getComponentForRouteName.bind(null,route.routeName);var childNavigation=navigation.getChildNavigation(route.key);var options=router.getScreenOptions(childNavigation,screenProps);descriptors[route.key]={key:route.key,getComponent:getComponent,options:options,state:route,navigation:childNavigation};});return{descriptors:descriptors,screenProps:screenProps};}}]);return Navigator;}(_react.default.Component);Navigator.router=router;Navigator.navigationOptions=navigationConfig.navigationOptions;return Navigator;}var _default=createNavigator;exports.default=_default;
++var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _classCallCheck2=_interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));var _createClass2=_interopRequireDefault(require("@babel/runtime/helpers/createClass"));var _possibleConstructorReturn2=_interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));var _getPrototypeOf3=_interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));var _inherits2=_interopRequireDefault(require("@babel/runtime/helpers/inherits"));var _react=_interopRequireDefault(require("react"));var _invariant=_interopRequireDefault(require("../utils/invariant"));var _jsxFileName="/Users/brentvatne/coding/react-navigation-core/src/navigators/createNavigator.js";function createNavigator(NavigatorView,router,navigationConfig){var Navigator=function(_React$Component){(0,_inherits2.default)(Navigator,_React$Component);function Navigator(){var _getPrototypeOf2;var _this;(0,_classCallCheck2.default)(this,Navigator);for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key];}_this=(0,_possibleConstructorReturn2.default)(this,(_getPrototypeOf2=(0,_getPrototypeOf3.default)(Navigator)).call.apply(_getPrototypeOf2,[this].concat(args)));_this.state={descriptors:{},screenProps:_this.props.screenProps};return _this;}(0,_createClass2.default)(Navigator,[{key:"render",value:function render(){return _react.default.createElement(NavigatorView,(0,_extends2.default)({},this.props,{screenProps:this.state.screenProps,navigation:this.props.navigation,navigationConfig:navigationConfig,descriptors:this.state.descriptors,__source:{fileName:_jsxFileName,lineNumber:61}}));}}],[{key:"getDerivedStateFromProps",value:function getDerivedStateFromProps(nextProps,prevState){var prevDescriptors=prevState.descriptors;var navigation=nextProps.navigation,screenProps=nextProps.screenProps;(0,_invariant.default)(navigation!=null,'The navigation prop is missing for this navigator. In react-navigation 3 you must set up your app container directly. More info: https://reactnavigation.org/docs/en/app-containers.html');var state=navigation.state;var routes=state.routes;if(typeof routes==='undefined'){throw new TypeError('No "routes" found in navigation state. Did you try to pass the navigation prop of a React component to a Navigator child? See https://reactnavigation.org/docs/en/custom-navigators.html#navigator-navigation-prop');}var descriptors={};routes.forEach(function(route){if(prevDescriptors&&prevDescriptors[route.key]&&route===prevDescriptors[route.key].state&&screenProps===prevState.screenProps){descriptors[route.key]=prevDescriptors[route.key];return;}var getComponent=router.getComponentForRouteName.bind(null,route.routeName);var childNavigation=navigation.getChildNavigation(route.key);var options=router.getScreenOptions(childNavigation,screenProps);descriptors[route.key]={key:route.key,getComponent:getComponent,options:options,state:route,navigation:childNavigation};});return{descriptors:descriptors,screenProps:screenProps};}}]);return Navigator;}(_react.default.Component);Navigator.router=router;Navigator.navigationOptions=navigationConfig.navigationOptions;return Navigator;}var _default=createNavigator;exports.default=_default;
+ //# sourceMappingURL=createNavigator.js.map
+\ No newline at end of file
+diff --git a/node_modules/@react-navigation/core/lib/commonjs/navigators/createNavigator.js.map b/node_modules/@react-navigation/core/lib/commonjs/navigators/createNavigator.js.map
+index 63a4558..a121244 100644
+--- a/node_modules/@react-navigation/core/lib/commonjs/navigators/createNavigator.js.map
++++ b/node_modules/@react-navigation/core/lib/commonjs/navigators/createNavigator.js.map
+@@ -1 +1 @@
+-{"version":3,"sources":["createNavigator.js"],"names":["createNavigator","NavigatorView","router","navigationConfig","Navigator","state","descriptors","screenProps","props","navigation","nextProps","prevState","prevDescriptors","routes","TypeError","forEach","route","key","getComponent","getComponentForRouteName","bind","routeName","childNavigation","getChildNavigation","options","getScreenOptions","React","Component","navigationOptions"],"mappings":"6sBAAA,oDACA,qE,4GAEA,QAASA,CAAAA,eAAT,CAAyBC,aAAzB,CAAwCC,MAAxC,CAAgDC,gBAAhD,CAAkE,IAC1DC,CAAAA,SAD0D,8bAK9DC,KAL8D,CAKtD,CACNC,WAAW,CAAE,EADP,CAENC,WAAW,CAAE,MAAKC,KAAL,CAAWD,WAFlB,CALsD,yFAuDrD,CACP,MACE,8BAAC,aAAD,0BACM,KAAKC,KADX,EAEE,WAAW,CAAE,KAAKH,KAAL,CAAWE,WAF1B,CAGE,UAAU,CAAE,KAAKC,KAAL,CAAWC,UAHzB,CAIE,gBAAgB,CAAEN,gBAJpB,CAKE,WAAW,CAAE,KAAKE,KAAL,CAAWC,WAL1B,kDADF,CASD,CAjE6D,4EAU9BI,SAV8B,CAUnBC,SAVmB,CAUR,CACpD,GAAMC,CAAAA,eAAe,CAAGD,SAAS,CAACL,WAAlC,CADoD,GAE5CG,CAAAA,UAF4C,CAEhBC,SAFgB,CAE5CD,UAF4C,CAEhCF,WAFgC,CAEhBG,SAFgB,CAEhCH,WAFgC,CAGpD,uBACEE,UAAU,EAAI,IADhB,CAEE,0LAFF,EAHoD,GAO5CJ,CAAAA,KAP4C,CAOlCI,UAPkC,CAO5CJ,KAP4C,IAQ5CQ,CAAAA,MAR4C,CAQjCR,KARiC,CAQ5CQ,MAR4C,CASpD,GAAI,MAAOA,CAAAA,MAAP,GAAkB,WAAtB,CAAmC,CACjC,KAAM,IAAIC,CAAAA,SAAJ,CACJ,oNADI,CAAN,CAGD,CAED,GAAMR,CAAAA,WAAW,CAAG,EAApB,CAEAO,MAAM,CAACE,OAAP,CAAe,SAAAC,KAAK,CAAI,CACtB,GACEJ,eAAe,EACfA,eAAe,CAACI,KAAK,CAACC,GAAP,CADf,EAEAD,KAAK,GAAKJ,eAAe,CAACI,KAAK,CAACC,GAAP,CAAf,CAA2BZ,KAFrC,EAGAE,WAAW,GAAKI,SAAS,CAACJ,WAJ5B,CAKE,CACAD,WAAW,CAACU,KAAK,CAACC,GAAP,CAAX,CAAyBL,eAAe,CAACI,KAAK,CAACC,GAAP,CAAxC,CACA,OACD,CACD,GAAMC,CAAAA,YAAY,CAAGhB,MAAM,CAACiB,wBAAP,CAAgCC,IAAhC,CACnB,IADmB,CAEnBJ,KAAK,CAACK,SAFa,CAArB,CAIA,GAAMC,CAAAA,eAAe,CAAGb,UAAU,CAACc,kBAAX,CAA8BP,KAAK,CAACC,GAApC,CAAxB,CACA,GAAMO,CAAAA,OAAO,CAAGtB,MAAM,CAACuB,gBAAP,CAAwBH,eAAxB,CAAyCf,WAAzC,CAAhB,CACAD,WAAW,CAACU,KAAK,CAACC,GAAP,CAAX,CAAyB,CACvBA,GAAG,CAAED,KAAK,CAACC,GADY,CAEvBC,YAAY,CAAZA,YAFuB,CAGvBM,OAAO,CAAPA,OAHuB,CAIvBnB,KAAK,CAAEW,KAJgB,CAKvBP,UAAU,CAAEa,eALW,CAAzB,CAOD,CAvBD,EAyBA,MAAO,CAAEhB,WAAW,CAAXA,WAAF,CAAeC,WAAW,CAAXA,WAAf,CAAP,CACD,CArD6D,uBACxCmB,eAAMC,SADkC,EAC1DvB,SAD0D,CAEvDF,MAFuD,CAE9CA,MAF8C,CAC1DE,SAD0D,CAGvDwB,iBAHuD,CAGnCzB,gBAAgB,CAACyB,iBAHkB,CAoEhE,MAAOxB,CAAAA,SAAP,CACD,C,aAEcJ,e","sourcesContent":["import React from 'react';\nimport invariant from '../utils/invariant';\n\nfunction createNavigator(NavigatorView, router, navigationConfig) {\n class Navigator extends React.Component {\n static router = router;\n static navigationOptions = navigationConfig.navigationOptions;\n\n state = {\n descriptors: {},\n screenProps: this.props.screenProps,\n };\n\n static getDerivedStateFromProps(nextProps, prevState) {\n const prevDescriptors = prevState.descriptors;\n const { navigation, screenProps } = nextProps;\n invariant(\n navigation != null,\n 'The navigation prop is missing for this navigator. In react-navigation 3 you must set up your app container directly. More info: https://reactnavigation.org/docs/en/app-containers.html'\n );\n const { state } = navigation;\n const { routes } = state;\n if (typeof routes === 'undefined') {\n throw new TypeError(\n 'No \"routes\" found in navigation state. Did you try to pass the navigation prop of a React component to a Navigator child? See https://reactnavigation.org/docs/en/custom-navigators.html#navigator-navigation-prop'\n );\n }\n\n const descriptors = {};\n\n routes.forEach(route => {\n if (\n prevDescriptors &&\n prevDescriptors[route.key] &&\n route === prevDescriptors[route.key].state &&\n screenProps === prevState.screenProps\n ) {\n descriptors[route.key] = prevDescriptors[route.key];\n return;\n }\n const getComponent = router.getComponentForRouteName.bind(\n null,\n route.routeName\n );\n const childNavigation = navigation.getChildNavigation(route.key);\n const options = router.getScreenOptions(childNavigation, screenProps);\n descriptors[route.key] = {\n key: route.key,\n getComponent,\n options,\n state: route,\n navigation: childNavigation,\n };\n });\n\n return { descriptors, screenProps };\n }\n\n render() {\n return (\n \n );\n }\n }\n\n return Navigator;\n}\n\nexport default createNavigator;\n"]}
+\ No newline at end of file
++{"version":3,"sources":["createNavigator.js"],"names":["createNavigator","NavigatorView","router","navigationConfig","Navigator","state","descriptors","screenProps","props","navigation","nextProps","prevState","prevDescriptors","routes","TypeError","forEach","route","key","getComponent","getComponentForRouteName","bind","routeName","childNavigation","getChildNavigation","options","getScreenOptions","React","Component","navigationOptions"],"mappings":"6sBAAA,oDACA,qE,oGAEA,QAASA,CAAAA,eAAT,CAAyBC,aAAzB,CAAwCC,MAAxC,CAAgDC,gBAAhD,CAAkE,IAC1DC,CAAAA,SAD0D,8bAK9DC,KAL8D,CAKtD,CACNC,WAAW,CAAE,EADP,CAENC,WAAW,CAAE,MAAKC,KAAL,CAAWD,WAFlB,CALsD,yFAuDrD,CACP,MACE,8BAAC,aAAD,0BACM,KAAKC,KADX,EAEE,WAAW,CAAE,KAAKH,KAAL,CAAWE,WAF1B,CAGE,UAAU,CAAE,KAAKC,KAAL,CAAWC,UAHzB,CAIE,gBAAgB,CAAEN,gBAJpB,CAKE,WAAW,CAAE,KAAKE,KAAL,CAAWC,WAL1B,kDADF,CASD,CAjE6D,4EAU9BI,SAV8B,CAUnBC,SAVmB,CAUR,CACpD,GAAMC,CAAAA,eAAe,CAAGD,SAAS,CAACL,WAAlC,CADoD,GAE5CG,CAAAA,UAF4C,CAEhBC,SAFgB,CAE5CD,UAF4C,CAEhCF,WAFgC,CAEhBG,SAFgB,CAEhCH,WAFgC,CAGpD,uBACEE,UAAU,EAAI,IADhB,CAEE,0LAFF,EAHoD,GAO5CJ,CAAAA,KAP4C,CAOlCI,UAPkC,CAO5CJ,KAP4C,IAQ5CQ,CAAAA,MAR4C,CAQjCR,KARiC,CAQ5CQ,MAR4C,CASpD,GAAI,MAAOA,CAAAA,MAAP,GAAkB,WAAtB,CAAmC,CACjC,KAAM,IAAIC,CAAAA,SAAJ,CACJ,oNADI,CAAN,CAGD,CAED,GAAMR,CAAAA,WAAW,CAAG,EAApB,CAEAO,MAAM,CAACE,OAAP,CAAe,SAAAC,KAAK,CAAI,CACtB,GACEJ,eAAe,EACfA,eAAe,CAACI,KAAK,CAACC,GAAP,CADf,EAEAD,KAAK,GAAKJ,eAAe,CAACI,KAAK,CAACC,GAAP,CAAf,CAA2BZ,KAFrC,EAGAE,WAAW,GAAKI,SAAS,CAACJ,WAJ5B,CAKE,CACAD,WAAW,CAACU,KAAK,CAACC,GAAP,CAAX,CAAyBL,eAAe,CAACI,KAAK,CAACC,GAAP,CAAxC,CACA,OACD,CACD,GAAMC,CAAAA,YAAY,CAAGhB,MAAM,CAACiB,wBAAP,CAAgCC,IAAhC,CACnB,IADmB,CAEnBJ,KAAK,CAACK,SAFa,CAArB,CAIA,GAAMC,CAAAA,eAAe,CAAGb,UAAU,CAACc,kBAAX,CAA8BP,KAAK,CAACC,GAApC,CAAxB,CACA,GAAMO,CAAAA,OAAO,CAAGtB,MAAM,CAACuB,gBAAP,CAAwBH,eAAxB,CAAyCf,WAAzC,CAAhB,CACAD,WAAW,CAACU,KAAK,CAACC,GAAP,CAAX,CAAyB,CACvBA,GAAG,CAAED,KAAK,CAACC,GADY,CAEvBC,YAAY,CAAZA,YAFuB,CAGvBM,OAAO,CAAPA,OAHuB,CAIvBnB,KAAK,CAAEW,KAJgB,CAKvBP,UAAU,CAAEa,eALW,CAAzB,CAOD,CAvBD,EAyBA,MAAO,CAAEhB,WAAW,CAAXA,WAAF,CAAeC,WAAW,CAAXA,WAAf,CAAP,CACD,CArD6D,uBACxCmB,eAAMC,SADkC,EAC1DvB,SAD0D,CAEvDF,MAFuD,CAE9CA,MAF8C,CAC1DE,SAD0D,CAGvDwB,iBAHuD,CAGnCzB,gBAAgB,CAACyB,iBAHkB,CAoEhE,MAAOxB,CAAAA,SAAP,CACD,C,aAEcJ,e","sourcesContent":["import React from 'react';\nimport invariant from '../utils/invariant';\n\nfunction createNavigator(NavigatorView, router, navigationConfig) {\n class Navigator extends React.Component {\n static router = router;\n static navigationOptions = navigationConfig.navigationOptions;\n\n state = {\n descriptors: {},\n screenProps: this.props.screenProps,\n };\n\n static getDerivedStateFromProps(nextProps, prevState) {\n const prevDescriptors = prevState.descriptors;\n const { navigation, screenProps } = nextProps;\n invariant(\n navigation != null,\n 'The navigation prop is missing for this navigator. In react-navigation 3 you must set up your app container directly. More info: https://reactnavigation.org/docs/en/app-containers.html'\n );\n const { state } = navigation;\n const { routes } = state;\n if (typeof routes === 'undefined') {\n throw new TypeError(\n 'No \"routes\" found in navigation state. Did you try to pass the navigation prop of a React component to a Navigator child? See https://reactnavigation.org/docs/en/custom-navigators.html#navigator-navigation-prop'\n );\n }\n\n const descriptors = {};\n\n routes.forEach(route => {\n if (\n prevDescriptors &&\n prevDescriptors[route.key] &&\n route === prevDescriptors[route.key].state &&\n screenProps === prevState.screenProps\n ) {\n descriptors[route.key] = prevDescriptors[route.key];\n return;\n }\n const getComponent = router.getComponentForRouteName.bind(\n null,\n route.routeName\n );\n const childNavigation = navigation.getChildNavigation(route.key);\n const options = router.getScreenOptions(childNavigation, screenProps);\n descriptors[route.key] = {\n key: route.key,\n getComponent,\n options,\n state: route,\n navigation: childNavigation,\n };\n });\n\n return { descriptors, screenProps };\n }\n\n render() {\n return (\n \n );\n }\n }\n\n return Navigator;\n}\n\nexport default createNavigator;\n"]}
+\ No newline at end of file
+diff --git a/node_modules/@react-navigation/core/lib/commonjs/routers/StackRouter.js b/node_modules/@react-navigation/core/lib/commonjs/routers/StackRouter.js
+index 76253bb..7f3cb51 100644
+--- a/node_modules/@react-navigation/core/lib/commonjs/routers/StackRouter.js
++++ b/node_modules/@react-navigation/core/lib/commonjs/routers/StackRouter.js
+@@ -1,2 +1,2 @@
+-var _interopRequireWildcard=require("@babel/runtime/helpers/interopRequireWildcard");var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var _toConsumableArray2=_interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));var _objectSpread2=_interopRequireDefault(require("@babel/runtime/helpers/objectSpread"));var NavigationActions=_interopRequireWildcard(require("../NavigationActions"));var StackActions=_interopRequireWildcard(require("./StackActions"));var _createConfigGetter=_interopRequireDefault(require("./createConfigGetter"));var _getScreenForRouteName=_interopRequireDefault(require("./getScreenForRouteName"));var _StateUtils=_interopRequireDefault(require("../StateUtils"));var _validateRouteConfigMap=_interopRequireDefault(require("./validateRouteConfigMap"));var _invariant=_interopRequireDefault(require("../utils/invariant"));var _KeyGenerator=require("./KeyGenerator");var _pathUtils=require("./pathUtils");function behavesLikePushAction(action){return action.type===NavigationActions.NAVIGATE||action.type===StackActions.PUSH;}var defaultActionCreators=function defaultActionCreators(){return{};};function isResetToRootStack(action){return action.type===StackActions.RESET&&action.key===null;}var _default=function _default(routeConfigs){var stackConfig=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};(0,_validateRouteConfigMap.default)(routeConfigs);var childRouters={};var routeNames=Object.keys(routeConfigs);routeNames.forEach(function(routeName){var screen=(0,_getScreenForRouteName.default)(routeConfigs,routeName);if(screen&&screen.router){childRouters[routeName]=screen.router;}else{childRouters[routeName]=null;}});var initialRouteParams=stackConfig.initialRouteParams;var getCustomActionCreators=stackConfig.getCustomActionCreators||defaultActionCreators;var initialRouteName=stackConfig.initialRouteName||routeNames[0];var initialChildRouter=childRouters[initialRouteName];function getInitialState(action){var route={};var childRouter=childRouters[action.routeName];if(behavesLikePushAction(action)&&childRouter!==undefined){var childState={};if(childRouter!==null){var childAction=action.action||NavigationActions.init({params:action.params});childState=childRouter.getStateForAction(childAction);}return{key:'StackRouterRoot',isTransitioning:false,index:0,routes:[(0,_objectSpread2.default)({params:action.params},childState,{key:action.key||(0,_KeyGenerator.generateKey)(),routeName:action.routeName})]};}if(initialChildRouter){route=initialChildRouter.getStateForAction(NavigationActions.navigate({routeName:initialRouteName,params:initialRouteParams}));}var params=(routeConfigs[initialRouteName].params||route.params||action.params||initialRouteParams)&&(0,_objectSpread2.default)({},routeConfigs[initialRouteName].params||{},route.params||{},action.params||{},initialRouteParams||{});var initialRouteKey=stackConfig.initialRouteKey;route=(0,_objectSpread2.default)({},route,params?{params:params}:{},{routeName:initialRouteName,key:action.key||initialRouteKey||(0,_KeyGenerator.generateKey)()});return{key:'StackRouterRoot',isTransitioning:false,index:0,routes:[route]};}function getParamsForRouteAndAction(routeName,action){var routeConfig=routeConfigs[routeName];if(routeConfig&&routeConfig.params){return(0,_objectSpread2.default)({},routeConfig.params,action.params);}else{return action.params;}}var _createPathParser=(0,_pathUtils.createPathParser)(childRouters,routeConfigs,stackConfig),getPathAndParamsForRoute=_createPathParser.getPathAndParamsForRoute,_getActionForPathAndParams=_createPathParser.getActionForPathAndParams;return{childRouters:childRouters,getComponentForState:function getComponentForState(state){var activeChildRoute=state.routes[state.index];var routeName=activeChildRoute.routeName;if(childRouters[routeName]){return childRouters[routeName].getComponentForState(activeChildRoute);}return(0,_getScreenForRouteName.default)(routeConfigs,routeName);},getComponentForRouteName:function getComponentForRouteName(routeName){return(0,_getScreenForRouteName.default)(routeConfigs,routeName);},getActionCreators:function getActionCreators(route,navStateKey){return(0,_objectSpread2.default)({},getCustomActionCreators(route,navStateKey),{pop:function pop(n,params){return StackActions.pop((0,_objectSpread2.default)({n:n},params));},popToTop:function popToTop(params){return StackActions.popToTop(params);},push:function push(routeName,params,action){return StackActions.push({routeName:routeName,params:params,action:action});},replace:function replace(replaceWith,params,action,newKey){if(typeof replaceWith==='string'){return StackActions.replace({routeName:replaceWith,params:params,action:action,key:route.key,newKey:newKey});}(0,_invariant.default)(typeof replaceWith==='object','Must replaceWith an object or a string');(0,_invariant.default)(params==null,'Params must not be provided to .replace() when specifying an object');(0,_invariant.default)(action==null,'Child action must not be provided to .replace() when specifying an object');(0,_invariant.default)(newKey==null,'Child action must not be provided to .replace() when specifying an object');return StackActions.replace(replaceWith);},reset:function reset(actions,index){return StackActions.reset({actions:actions,index:index==null?actions.length-1:index,key:navStateKey});},dismiss:function dismiss(){return NavigationActions.back({key:navStateKey});}});},getStateForAction:function getStateForAction(action,state){if(!state){return getInitialState(action);}var activeChildRoute=state.routes[state.index];if(!isResetToRootStack(action)&&action.type!==NavigationActions.NAVIGATE){var activeChildRouter=childRouters[activeChildRoute.routeName];if(activeChildRouter){var route=activeChildRouter.getStateForAction(action,activeChildRoute);if(route!==null&&route!==activeChildRoute){return _StateUtils.default.replaceAt(state,activeChildRoute.key,route,action.type===NavigationActions.SET_PARAMS);}}}else if(action.type===NavigationActions.NAVIGATE){for(var _iterator=state.routes.slice().reverse(),_isArray=Array.isArray(_iterator),_i=0,_iterator=_isArray?_iterator:_iterator[typeof Symbol==="function"?Symbol.iterator:"@@iterator"]();;){var _ref;if(_isArray){if(_i>=_iterator.length)break;_ref=_iterator[_i++];}else{_i=_iterator.next();if(_i.done)break;_ref=_i.value;}var _childRoute=_ref;var childRouter=childRouters[_childRoute.routeName];var childAction=action.routeName===_childRoute.routeName&&action.action?action.action:action;if(childRouter){var nextRouteState=childRouter.getStateForAction(childAction,_childRoute);if(nextRouteState===null||nextRouteState!==_childRoute){var newState=_StateUtils.default.replaceAndPrune(state,nextRouteState?nextRouteState.key:_childRoute.key,nextRouteState?nextRouteState:_childRoute);return(0,_objectSpread2.default)({},newState,{isTransitioning:state.index!==newState.index?action.immediate!==true:state.isTransitioning});}}}}if(behavesLikePushAction(action)&&childRouters[action.routeName]!==undefined){var _childRouter=childRouters[action.routeName];var _route;(0,_invariant.default)(action.type!==StackActions.PUSH||action.key==null,'StackRouter does not support key on the push action');var lastRouteIndex=state.routes.findIndex(function(r){if(action.key){return r.key===action.key;}else{return r.routeName===action.routeName;}});if(action.type!==StackActions.PUSH&&lastRouteIndex!==-1){if(state.index===lastRouteIndex&&!action.params){return null;}var routes=state.routes.slice(0,lastRouteIndex+1);if(action.params){var _route2=state.routes[lastRouteIndex];routes[lastRouteIndex]=(0,_objectSpread2.default)({},_route2,{params:(0,_objectSpread2.default)({},_route2.params,action.params)});}return(0,_objectSpread2.default)({},state,{isTransitioning:state.index!==lastRouteIndex?action.immediate!==true:state.isTransitioning,index:lastRouteIndex,routes:routes});}if(_childRouter){var _childAction=action.action||NavigationActions.init({params:getParamsForRouteAndAction(action.routeName,action)});_route=(0,_objectSpread2.default)({params:getParamsForRouteAndAction(action.routeName,action)},_childRouter.getStateForAction(_childAction),{routeName:action.routeName,key:action.key||(0,_KeyGenerator.generateKey)()});}else{_route={params:getParamsForRouteAndAction(action.routeName,action),routeName:action.routeName,key:action.key||(0,_KeyGenerator.generateKey)()};}return(0,_objectSpread2.default)({},_StateUtils.default.push(state,_route),{isTransitioning:action.immediate!==true});}else if(action.type===StackActions.PUSH&&childRouters[action.routeName]===undefined){return state;}if(behavesLikePushAction(action)){var childRouterNames=Object.keys(childRouters);for(var i=0;i0){return(0,_objectSpread2.default)({},state,{isTransitioning:action.immediate!==true,index:0,routes:[state.routes[0]]});}return state;}if(action.type===StackActions.REPLACE){var routeIndex;if(action.key===undefined&&state.routes.length){routeIndex=state.routes.length-1;}else{routeIndex=state.routes.findIndex(function(r){return r.key===action.key;});}if(routeIndex!==-1){var _childRouter3=childRouters[action.routeName];var childState={};if(_childRouter3){var _childAction2=action.action||NavigationActions.init({params:getParamsForRouteAndAction(action.routeName,action)});childState=_childRouter3.getStateForAction(_childAction2);}var _routes=(0,_toConsumableArray2.default)(state.routes);_routes[routeIndex]=(0,_objectSpread2.default)({params:getParamsForRouteAndAction(action.routeName,action)},childState,{routeName:action.routeName,key:action.newKey||(0,_KeyGenerator.generateKey)()});return(0,_objectSpread2.default)({},state,{routes:_routes});}}if(action.type===StackActions.COMPLETE_TRANSITION&&(action.key==null||action.key===state.key)&&action.toChildKey===state.routes[state.index].key&&state.isTransitioning){return(0,_objectSpread2.default)({},state,{isTransitioning:false});}if(action.type===NavigationActions.SET_PARAMS){var key=action.key;var lastRoute=state.routes.find(function(route){return route.key===key;});if(lastRoute){var params=(0,_objectSpread2.default)({},lastRoute.params,action.params);var _routes2=(0,_toConsumableArray2.default)(state.routes);_routes2[state.routes.indexOf(lastRoute)]=(0,_objectSpread2.default)({},lastRoute,{params:params});return(0,_objectSpread2.default)({},state,{routes:_routes2});}}if(action.type===StackActions.RESET){if(action.key!=null&&action.key!=state.key){return state;}var newStackActions=action.actions;return(0,_objectSpread2.default)({},state,{routes:newStackActions.map(function(newStackAction){var router=childRouters[newStackAction.routeName];var childState={};if(router){var _childAction3=newStackAction.action||NavigationActions.init({params:getParamsForRouteAndAction(newStackAction.routeName,newStackAction)});childState=router.getStateForAction(_childAction3);}return(0,_objectSpread2.default)({params:getParamsForRouteAndAction(newStackAction.routeName,newStackAction)},childState,{routeName:newStackAction.routeName,key:newStackAction.key||(0,_KeyGenerator.generateKey)()});}),index:action.index});}if(action.type===NavigationActions.BACK||action.type===StackActions.POP){var _key=action.key,n=action.n,immediate=action.immediate;var backRouteIndex=state.index;if(action.type===StackActions.POP&&n!=null){backRouteIndex=Math.max(1,state.index-n+1);}else if(_key){var backRoute=state.routes.find(function(route){return route.key===_key;});backRouteIndex=state.routes.indexOf(backRoute);}if(backRouteIndex>0){return(0,_objectSpread2.default)({},state,{routes:state.routes.slice(0,backRouteIndex),index:backRouteIndex-1,isTransitioning:immediate!==true});}}var keyIndex=action.key?_StateUtils.default.indexOf(state,action.key):-1;for(var _iterator2=state.routes.slice().reverse(),_isArray2=Array.isArray(_iterator2),_i2=0,_iterator2=_isArray2?_iterator2:_iterator2[typeof Symbol==="function"?Symbol.iterator:"@@iterator"]();;){var _ref2;if(_isArray2){if(_i2>=_iterator2.length)break;_ref2=_iterator2[_i2++];}else{_i2=_iterator2.next();if(_i2.done)break;_ref2=_i2.value;}var _childRoute3=_ref2;if(_childRoute3.key===activeChildRoute.key){continue;}if(keyIndex>=0&&_childRoute3.key!==action.key){continue;}var _childRouter5=childRouters[_childRoute3.routeName];if(_childRouter5){var _route4=_childRouter5.getStateForAction(action,_childRoute3);if(_route4===null){return state;}else if(_route4&&_route4!==_childRoute3){return _StateUtils.default.replaceAt(state,_childRoute3.key,_route4,action.preserveFocus||action.type.includes('DRAWER'));}}}return state;},getPathAndParamsForState:function getPathAndParamsForState(state){var route=state.routes[state.index];return getPathAndParamsForRoute(route);},getActionForPathAndParams:function getActionForPathAndParams(path,params){return _getActionForPathAndParams(path,params);},getScreenOptions:(0,_createConfigGetter.default)(routeConfigs,stackConfig.defaultNavigationOptions)};};exports.default=_default;
++var _interopRequireWildcard=require("@babel/runtime/helpers/interopRequireWildcard");var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var _toConsumableArray2=_interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));var _objectSpread2=_interopRequireDefault(require("@babel/runtime/helpers/objectSpread"));var NavigationActions=_interopRequireWildcard(require("../NavigationActions"));var StackActions=_interopRequireWildcard(require("./StackActions"));var _createConfigGetter=_interopRequireDefault(require("./createConfigGetter"));var _getScreenForRouteName=_interopRequireDefault(require("./getScreenForRouteName"));var _StateUtils=_interopRequireDefault(require("../StateUtils"));var _validateRouteConfigMap=_interopRequireDefault(require("./validateRouteConfigMap"));var _invariant=_interopRequireDefault(require("../utils/invariant"));var _KeyGenerator=require("./KeyGenerator");var _pathUtils=require("./pathUtils");function behavesLikePushAction(action){return action.type===NavigationActions.NAVIGATE||action.type===StackActions.PUSH;}var defaultActionCreators=function defaultActionCreators(){return{};};function isResetToRootStack(action){return action.type===StackActions.RESET&&action.key===null;}var _default=function _default(routeConfigs){var stackConfig=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};(0,_validateRouteConfigMap.default)(routeConfigs);var childRouters={};var routeNames=Object.keys(routeConfigs);routeNames.forEach(function(routeName){var routeConfig=routeConfigs[routeName];var screen=routeConfig&&routeConfig.screen?routeConfig.screen:routeConfig;if(screen&&screen.router){childRouters[routeName]=screen.router;}else{childRouters[routeName]=null;}});var initialRouteParams=stackConfig.initialRouteParams;var getCustomActionCreators=stackConfig.getCustomActionCreators||defaultActionCreators;var initialRouteName=stackConfig.initialRouteName||routeNames[0];var initialChildRouter=childRouters[initialRouteName];function getInitialState(action){var route={};var childRouter=childRouters[action.routeName];if(behavesLikePushAction(action)&&childRouter!==undefined){var childState={};if(childRouter!==null){var childAction=action.action||NavigationActions.init({params:action.params});childState=childRouter.getStateForAction(childAction);}return{key:'StackRouterRoot',index:0,transitions:{pushing:[],popping:[]},routes:[(0,_objectSpread2.default)({params:action.params},childState,{key:action.key||(0,_KeyGenerator.generateKey)(),routeName:action.routeName})]};}if(initialChildRouter){route=initialChildRouter.getStateForAction(NavigationActions.navigate({routeName:initialRouteName,params:initialRouteParams}));}var params=(routeConfigs[initialRouteName].params||route.params||action.params||initialRouteParams)&&(0,_objectSpread2.default)({},routeConfigs[initialRouteName].params||{},route.params||{},action.params||{},initialRouteParams||{});var initialRouteKey=stackConfig.initialRouteKey;route=(0,_objectSpread2.default)({},route,params?{params:params}:{},{routeName:initialRouteName,key:action.key||initialRouteKey||(0,_KeyGenerator.generateKey)()});return{key:'StackRouterRoot',transitions:{pushing:[],popping:[]},index:0,routes:[route]};}function getParamsForRouteAndAction(routeName,action){var routeConfig=routeConfigs[routeName];if(routeConfig&&routeConfig.params){return(0,_objectSpread2.default)({},routeConfig.params,action.params);}else{return action.params;}}var _createPathParser=(0,_pathUtils.createPathParser)(childRouters,routeConfigs,stackConfig),getPathAndParamsForRoute=_createPathParser.getPathAndParamsForRoute,_getActionForPathAndParams=_createPathParser.getActionForPathAndParams;return{childRouters:childRouters,getComponentForState:function getComponentForState(state){var activeChildRoute=state.routes[state.index];var routeName=activeChildRoute.routeName;if(childRouters[routeName]){return childRouters[routeName].getComponentForState(activeChildRoute);}return(0,_getScreenForRouteName.default)(routeConfigs,routeName);},getComponentForRouteName:function getComponentForRouteName(routeName){return(0,_getScreenForRouteName.default)(routeConfigs,routeName);},getActionCreators:function getActionCreators(route,navStateKey){return(0,_objectSpread2.default)({},getCustomActionCreators(route,navStateKey),{pop:function pop(n,params){return StackActions.pop((0,_objectSpread2.default)({n:n},params));},popToTop:function popToTop(params){return StackActions.popToTop(params);},push:function push(routeName,params,action){return StackActions.push({routeName:routeName,params:params,action:action});},replace:function replace(replaceWith,params,action,newKey){if(typeof replaceWith==='string'){return StackActions.replace({routeName:replaceWith,params:params,action:action,key:route.key,newKey:newKey});}(0,_invariant.default)(typeof replaceWith==='object','Must replaceWith an object or a string');(0,_invariant.default)(params==null,'Params must not be provided to .replace() when specifying an object');(0,_invariant.default)(action==null,'Child action must not be provided to .replace() when specifying an object');(0,_invariant.default)(newKey==null,'Child action must not be provided to .replace() when specifying an object');return StackActions.replace(replaceWith);},reset:function reset(actions,index){return StackActions.reset({actions:actions,index:index==null?actions.length-1:index,key:navStateKey});},dismiss:function dismiss(){return NavigationActions.back({key:navStateKey});}});},getStateForAction:function getStateForAction(action,state){if(!state){return getInitialState(action);}var activeChildRoute=state.routes[state.index];if(!isResetToRootStack(action)&&action.type!==NavigationActions.NAVIGATE){var activeChildRouter=childRouters[activeChildRoute.routeName];if(activeChildRouter){var route=activeChildRouter.getStateForAction(action,activeChildRoute);if(route!==null&&route!==activeChildRoute){return _StateUtils.default.replaceAt(state,activeChildRoute.key,route,action.type===NavigationActions.SET_PARAMS);}}}else if(action.type===NavigationActions.NAVIGATE){for(var _iterator=state.routes.slice().reverse(),_isArray=Array.isArray(_iterator),_i=0,_iterator=_isArray?_iterator:_iterator[typeof Symbol==="function"?Symbol.iterator:"@@iterator"]();;){var _ref;if(_isArray){if(_i>=_iterator.length)break;_ref=_iterator[_i++];}else{_i=_iterator.next();if(_i.done)break;_ref=_i.value;}var _childRoute=_ref;var childRouter=childRouters[_childRoute.routeName];var childAction=action.routeName===_childRoute.routeName&&action.action?action.action:action;if(childRouter){var nextRouteState=childRouter.getStateForAction(childAction,_childRoute);if(nextRouteState===null||nextRouteState!==_childRoute){var newState=_StateUtils.default.replaceAndPrune(state,nextRouteState?nextRouteState.key:_childRoute.key,nextRouteState?nextRouteState:_childRoute);return(0,_objectSpread2.default)({},newState,{transitions:state.index!==newState.index&&action.immediate!==true?{pushing:[],popping:[]}:{pushing:[],popping:[]}});}}}}if(behavesLikePushAction(action)&&childRouters[action.routeName]!==undefined){var _childRouter=childRouters[action.routeName];var _route;(0,_invariant.default)(action.type!==StackActions.PUSH||action.key==null,'StackRouter does not support key on the push action');var lastRouteIndex=state.routes.findIndex(function(r){if(action.key){return r.key===action.key;}else{return r.routeName===action.routeName;}});if(action.type!==StackActions.PUSH&&lastRouteIndex!==-1){if(state.index===lastRouteIndex&&!action.params){return null;}var routes=state.routes.slice(0,lastRouteIndex+1);var _route2=state.routes[lastRouteIndex];if(action.params){routes[lastRouteIndex]=(0,_objectSpread2.default)({},_route2,{params:(0,_objectSpread2.default)({},_route2.params,action.params)});}return(0,_objectSpread2.default)({},state,{transitions:(0,_objectSpread2.default)({},state.transitions,{pushing:state.index!==lastRouteIndex&&action.immediate!==true?[].concat((0,_toConsumableArray2.default)(state.transitions.pushing),[_route2.key]):state.transitions.pushing}),index:lastRouteIndex,routes:routes});}if(_childRouter){var _childAction=action.action||NavigationActions.init({params:getParamsForRouteAndAction(action.routeName,action)});_route=(0,_objectSpread2.default)({params:getParamsForRouteAndAction(action.routeName,action)},_childRouter.getStateForAction(_childAction),{routeName:action.routeName,key:action.key||(0,_KeyGenerator.generateKey)()});}else{_route={params:getParamsForRouteAndAction(action.routeName,action),routeName:action.routeName,key:action.key||(0,_KeyGenerator.generateKey)()};}return(0,_objectSpread2.default)({},_StateUtils.default.push(state,_route),{transitions:(0,_objectSpread2.default)({},state.transitions,{pushing:action.immediate!==true?[].concat((0,_toConsumableArray2.default)(state.transitions.pushing),[_route.key]):state.transitions.pushing})});}else if(action.type===StackActions.PUSH&&childRouters[action.routeName]===undefined){return state;}if(behavesLikePushAction(action)){var childRouterNames=Object.keys(childRouters);for(var i=0;i0){return(0,_objectSpread2.default)({},state,{transitions:(0,_objectSpread2.default)({},state.transitions,{popping:action.immediate!==true&&state.routes.length>1?[].concat((0,_toConsumableArray2.default)(state.transitions.popping),[state.routes[state.routes.length-1].key]):state.transitions.popping}),index:0,routes:[state.routes[0]]});}return state;}if(action.type===StackActions.REPLACE){var routeIndex;if(action.key===undefined&&state.routes.length){routeIndex=state.routes.length-1;}else{routeIndex=state.routes.findIndex(function(r){return r.key===action.key;});}if(routeIndex!==-1){var _childRouter3=childRouters[action.routeName];var childState={};if(_childRouter3){var _childAction2=action.action||NavigationActions.init({params:getParamsForRouteAndAction(action.routeName,action)});childState=_childRouter3.getStateForAction(_childAction2);}var _routes=(0,_toConsumableArray2.default)(state.routes);_routes[routeIndex]=(0,_objectSpread2.default)({params:getParamsForRouteAndAction(action.routeName,action)},childState,{routeName:action.routeName,key:action.newKey||(0,_KeyGenerator.generateKey)()});return(0,_objectSpread2.default)({},state,{routes:_routes});}}if(action.type===StackActions.COMPLETE_TRANSITION&&(action.key==null||action.key===state.key)&&(state.transitions.pushing.length||state.transitions.popping.length)){var _state$transitions=state.transitions,pushing=_state$transitions.pushing,popping=_state$transitions.popping;return(0,_objectSpread2.default)({},state,{transitions:{pushing:action.toChildKey?pushing.filter(function(key){return key!==action.toChildKey;}):[],popping:action.toChildKey?popping.filter(function(key){return key!==action.toChildKey;}):[]}});}if(action.type===NavigationActions.SET_PARAMS){var key=action.key;var lastRoute=state.routes.find(function(route){return route.key===key;});if(lastRoute){var params=(0,_objectSpread2.default)({},lastRoute.params,action.params);var _routes2=(0,_toConsumableArray2.default)(state.routes);_routes2[state.routes.indexOf(lastRoute)]=(0,_objectSpread2.default)({},lastRoute,{params:params});return(0,_objectSpread2.default)({},state,{routes:_routes2});}}if(action.type===StackActions.RESET){if(action.key!=null&&action.key!=state.key){return state;}var newStackActions=action.actions;return(0,_objectSpread2.default)({},state,{routes:newStackActions.map(function(newStackAction){var router=childRouters[newStackAction.routeName];var childState={};if(router){var _childAction3=newStackAction.action||NavigationActions.init({params:getParamsForRouteAndAction(newStackAction.routeName,newStackAction)});childState=router.getStateForAction(_childAction3);}return(0,_objectSpread2.default)({params:getParamsForRouteAndAction(newStackAction.routeName,newStackAction)},childState,{routeName:newStackAction.routeName,key:newStackAction.key||(0,_KeyGenerator.generateKey)()});}),index:action.index});}if(action.type===NavigationActions.BACK||action.type===StackActions.POP){var _key=action.key,n=action.n,immediate=action.immediate;var backRoute;var backRouteIndex=state.index;if(action.type===StackActions.POP&&n!=null){backRouteIndex=Math.max(1,state.index-n+1);backRoute=state.routes[state.index];}else if(_key){backRoute=state.routes.find(function(route){return route.key===_key;});backRouteIndex=state.routes.indexOf(backRoute);}else{backRoute=state.routes[state.index];}if(backRouteIndex>0){return(0,_objectSpread2.default)({},state,{routes:state.routes.slice(0,backRouteIndex),index:backRouteIndex-1,transitions:(0,_objectSpread2.default)({},state.transitions,{popping:immediate!==true&&backRoute?[].concat((0,_toConsumableArray2.default)(state.transitions.popping),[backRoute.key]):state.transitions.popping})});}}var keyIndex=action.key?_StateUtils.default.indexOf(state,action.key):-1;for(var _iterator2=state.routes.slice().reverse(),_isArray2=Array.isArray(_iterator2),_i2=0,_iterator2=_isArray2?_iterator2:_iterator2[typeof Symbol==="function"?Symbol.iterator:"@@iterator"]();;){var _ref2;if(_isArray2){if(_i2>=_iterator2.length)break;_ref2=_iterator2[_i2++];}else{_i2=_iterator2.next();if(_i2.done)break;_ref2=_i2.value;}var _childRoute3=_ref2;if(_childRoute3.key===activeChildRoute.key){continue;}if(keyIndex>=0&&_childRoute3.key!==action.key){continue;}var _childRouter5=childRouters[_childRoute3.routeName];if(_childRouter5){var _route4=_childRouter5.getStateForAction(action,_childRoute3);if(_route4===null){return state;}else if(_route4&&_route4!==_childRoute3){return _StateUtils.default.replaceAt(state,_childRoute3.key,_route4,action.preserveFocus||action.type.includes('DRAWER'));}}}return state;},getPathAndParamsForState:function getPathAndParamsForState(state){var route=state.routes[state.index];return getPathAndParamsForRoute(route);},getActionForPathAndParams:function getActionForPathAndParams(path,params){return _getActionForPathAndParams(path,params);},getScreenOptions:(0,_createConfigGetter.default)(routeConfigs,stackConfig.defaultNavigationOptions)};};exports.default=_default;
+ //# sourceMappingURL=StackRouter.js.map
+\ No newline at end of file
+diff --git a/node_modules/@react-navigation/core/lib/commonjs/routers/StackRouter.js.map b/node_modules/@react-navigation/core/lib/commonjs/routers/StackRouter.js.map
+index d01a067..9e82bfa 100644
+--- a/node_modules/@react-navigation/core/lib/commonjs/routers/StackRouter.js.map
++++ b/node_modules/@react-navigation/core/lib/commonjs/routers/StackRouter.js.map
+@@ -1 +1 @@
+-{"version":3,"sources":["StackRouter.js"],"names":["behavesLikePushAction","action","type","NavigationActions","NAVIGATE","StackActions","PUSH","defaultActionCreators","isResetToRootStack","RESET","key","routeConfigs","stackConfig","childRouters","routeNames","Object","keys","forEach","routeName","screen","router","initialRouteParams","getCustomActionCreators","initialRouteName","initialChildRouter","getInitialState","route","childRouter","undefined","childState","childAction","init","params","getStateForAction","isTransitioning","index","routes","navigate","initialRouteKey","getParamsForRouteAndAction","routeConfig","getPathAndParamsForRoute","getActionForPathAndParams","getComponentForState","state","activeChildRoute","getComponentForRouteName","getActionCreators","navStateKey","pop","n","popToTop","push","replace","replaceWith","newKey","reset","actions","length","dismiss","back","activeChildRouter","StateUtils","replaceAt","SET_PARAMS","slice","reverse","childRoute","nextRouteState","newState","replaceAndPrune","immediate","lastRouteIndex","findIndex","r","childRouterNames","i","childRouterName","initChildRoute","navigatedChildRoute","routeToPush","POP_TO_TOP","REPLACE","routeIndex","COMPLETE_TRANSITION","toChildKey","lastRoute","find","indexOf","newStackActions","map","newStackAction","BACK","POP","backRouteIndex","Math","max","backRoute","keyIndex","preserveFocus","includes","getPathAndParamsForState","path","getScreenOptions","defaultNavigationOptions"],"mappings":"sbAAA,+EACA,oEACA,gFACA,sFACA,iEACA,wFACA,qEACA,4CACA,sCAEA,QAASA,CAAAA,qBAAT,CAA+BC,MAA/B,CAAuC,CACrC,MACEA,CAAAA,MAAM,CAACC,IAAP,GAAgBC,iBAAiB,CAACC,QAAlC,EACAH,MAAM,CAACC,IAAP,GAAgBG,YAAY,CAACC,IAF/B,CAID,CAED,GAAMC,CAAAA,qBAAqB,CAAG,QAAxBA,CAAAA,qBAAwB,SAAO,EAAP,EAA9B,CAEA,QAASC,CAAAA,kBAAT,CAA4BP,MAA5B,CAAoC,CAClC,MAAOA,CAAAA,MAAM,CAACC,IAAP,GAAgBG,YAAY,CAACI,KAA7B,EAAsCR,MAAM,CAACS,GAAP,GAAe,IAA5D,CACD,C,aAEc,kBAACC,YAAD,CAAoC,IAArBC,CAAAA,WAAqB,2DAAP,EAAO,CAEjD,oCAAuBD,YAAvB,EAEA,GAAME,CAAAA,YAAY,CAAG,EAArB,CACA,GAAMC,CAAAA,UAAU,CAAGC,MAAM,CAACC,IAAP,CAAYL,YAAZ,CAAnB,CAGAG,UAAU,CAACG,OAAX,CAAmB,SAAAC,SAAS,CAAI,CAC9B,GAAMC,CAAAA,MAAM,CAAG,mCAAsBR,YAAtB,CAAoCO,SAApC,CAAf,CACA,GAAIC,MAAM,EAAIA,MAAM,CAACC,MAArB,CAA6B,CAE3BP,YAAY,CAACK,SAAD,CAAZ,CAA0BC,MAAM,CAACC,MAAjC,CACD,CAHD,IAGO,CAELP,YAAY,CAACK,SAAD,CAAZ,CAA0B,IAA1B,CACD,CACF,CATD,EARiD,GAmBzCG,CAAAA,kBAnByC,CAmBlBT,WAnBkB,CAmBzCS,kBAnByC,CAoBjD,GAAMC,CAAAA,uBAAuB,CAC3BV,WAAW,CAACU,uBAAZ,EAAuCf,qBADzC,CAGA,GAAMgB,CAAAA,gBAAgB,CAAGX,WAAW,CAACW,gBAAZ,EAAgCT,UAAU,CAAC,CAAD,CAAnE,CAEA,GAAMU,CAAAA,kBAAkB,CAAGX,YAAY,CAACU,gBAAD,CAAvC,CAEA,QAASE,CAAAA,eAAT,CAAyBxB,MAAzB,CAAiC,CAC/B,GAAIyB,CAAAA,KAAK,CAAG,EAAZ,CACA,GAAMC,CAAAA,WAAW,CAAGd,YAAY,CAACZ,MAAM,CAACiB,SAAR,CAAhC,CAGA,GAAIlB,qBAAqB,CAACC,MAAD,CAArB,EAAiC0B,WAAW,GAAKC,SAArD,CAAgE,CAC9D,GAAIC,CAAAA,UAAU,CAAG,EAAjB,CAEA,GAAIF,WAAW,GAAK,IAApB,CAA0B,CACxB,GAAMG,CAAAA,WAAW,CACf7B,MAAM,CAACA,MAAP,EAAiBE,iBAAiB,CAAC4B,IAAlB,CAAuB,CAAEC,MAAM,CAAE/B,MAAM,CAAC+B,MAAjB,CAAvB,CADnB,CAEAH,UAAU,CAAGF,WAAW,CAACM,iBAAZ,CAA8BH,WAA9B,CAAb,CACD,CAED,MAAO,CACLpB,GAAG,CAAE,iBADA,CAELwB,eAAe,CAAE,KAFZ,CAGLC,KAAK,CAAE,CAHF,CAILC,MAAM,CAAE,6BAEJJ,MAAM,CAAE/B,MAAM,CAAC+B,MAFX,EAGDH,UAHC,EAIJnB,GAAG,CAAET,MAAM,CAACS,GAAP,EAAc,+BAJf,CAKJQ,SAAS,CAAEjB,MAAM,CAACiB,SALd,GAJH,CAAP,CAaD,CAED,GAAIM,kBAAJ,CAAwB,CACtBE,KAAK,CAAGF,kBAAkB,CAACS,iBAAnB,CACN9B,iBAAiB,CAACkC,QAAlB,CAA2B,CACzBnB,SAAS,CAAEK,gBADc,CAEzBS,MAAM,CAAEX,kBAFiB,CAA3B,CADM,CAAR,CAMD,CACD,GAAMW,CAAAA,MAAM,CAAG,CAACrB,YAAY,CAACY,gBAAD,CAAZ,CAA+BS,MAA/B,EACdN,KAAK,CAACM,MADQ,EAEd/B,MAAM,CAAC+B,MAFO,EAGdX,kBAHa,iCAITV,YAAY,CAACY,gBAAD,CAAZ,CAA+BS,MAA/B,EAAyC,EAJhC,CAKTN,KAAK,CAACM,MAAN,EAAgB,EALP,CAMT/B,MAAM,CAAC+B,MAAP,EAAiB,EANR,CAOTX,kBAAkB,EAAI,EAPb,CAAf,CArC+B,GA8CvBiB,CAAAA,eA9CuB,CA8CH1B,WA9CG,CA8CvB0B,eA9CuB,CA+C/BZ,KAAK,+BACAA,KADA,CAECM,MAAM,CAAG,CAAEA,MAAM,CAANA,MAAF,CAAH,CAAgB,EAFvB,EAGHd,SAAS,CAAEK,gBAHR,CAIHb,GAAG,CAAET,MAAM,CAACS,GAAP,EAAe4B,eAAe,EAAI,+BAJpC,EAAL,CAMA,MAAO,CACL5B,GAAG,CAAE,iBADA,CAELwB,eAAe,CAAE,KAFZ,CAGLC,KAAK,CAAE,CAHF,CAILC,MAAM,CAAE,CAACV,KAAD,CAJH,CAAP,CAMD,CAED,QAASa,CAAAA,0BAAT,CAAoCrB,SAApC,CAA+CjB,MAA/C,CAAuD,CACrD,GAAIuC,CAAAA,WAAW,CAAG7B,YAAY,CAACO,SAAD,CAA9B,CACA,GAAIsB,WAAW,EAAIA,WAAW,CAACR,MAA/B,CAAuC,CACrC,oCAAYQ,WAAW,CAACR,MAAxB,CAAmC/B,MAAM,CAAC+B,MAA1C,EACD,CAFD,IAEO,CACL,MAAO/B,CAAAA,MAAM,CAAC+B,MAAd,CACD,CACF,CA/FgD,sBAoG7C,gCAAiBnB,YAAjB,CAA+BF,YAA/B,CAA6CC,WAA7C,CApG6C,CAkG/C6B,wBAlG+C,mBAkG/CA,wBAlG+C,CAmG/CC,0BAnG+C,mBAmG/CA,yBAnG+C,CAsGjD,MAAO,CACL7B,YAAY,CAAZA,YADK,CAGL8B,oBAHK,+BAGgBC,KAHhB,CAGuB,CAC1B,GAAMC,CAAAA,gBAAgB,CAAGD,KAAK,CAACR,MAAN,CAAaQ,KAAK,CAACT,KAAnB,CAAzB,CAD0B,GAElBjB,CAAAA,SAFkB,CAEJ2B,gBAFI,CAElB3B,SAFkB,CAG1B,GAAIL,YAAY,CAACK,SAAD,CAAhB,CAA6B,CAC3B,MAAOL,CAAAA,YAAY,CAACK,SAAD,CAAZ,CAAwByB,oBAAxB,CAA6CE,gBAA7C,CAAP,CACD,CACD,MAAO,mCAAsBlC,YAAtB,CAAoCO,SAApC,CAAP,CACD,CAVI,CAYL4B,wBAZK,mCAYoB5B,SAZpB,CAY+B,CAClC,MAAO,mCAAsBP,YAAtB,CAAoCO,SAApC,CAAP,CACD,CAdI,CAgBL6B,iBAhBK,4BAgBarB,KAhBb,CAgBoBsB,WAhBpB,CAgBiC,CACpC,oCACK1B,uBAAuB,CAACI,KAAD,CAAQsB,WAAR,CAD5B,EAEEC,GAAG,CAAE,aAACC,CAAD,CAAIlB,MAAJ,QACH3B,CAAAA,YAAY,CAAC4C,GAAb,6BACEC,CAAC,CAADA,CADF,EAEKlB,MAFL,EADG,EAFP,CAOEmB,QAAQ,CAAE,kBAAAnB,MAAM,QAAI3B,CAAAA,YAAY,CAAC8C,QAAb,CAAsBnB,MAAtB,CAAJ,EAPlB,CAQEoB,IAAI,CAAE,cAAClC,SAAD,CAAYc,MAAZ,CAAoB/B,MAApB,QACJI,CAAAA,YAAY,CAAC+C,IAAb,CAAkB,CAChBlC,SAAS,CAATA,SADgB,CAEhBc,MAAM,CAANA,MAFgB,CAGhB/B,MAAM,CAANA,MAHgB,CAAlB,CADI,EARR,CAcEoD,OAAO,CAAE,iBAACC,WAAD,CAActB,MAAd,CAAsB/B,MAAtB,CAA8BsD,MAA9B,CAAyC,CAChD,GAAI,MAAOD,CAAAA,WAAP,GAAuB,QAA3B,CAAqC,CACnC,MAAOjD,CAAAA,YAAY,CAACgD,OAAb,CAAqB,CAC1BnC,SAAS,CAAEoC,WADe,CAE1BtB,MAAM,CAANA,MAF0B,CAG1B/B,MAAM,CAANA,MAH0B,CAI1BS,GAAG,CAAEgB,KAAK,CAAChB,GAJe,CAK1B6C,MAAM,CAANA,MAL0B,CAArB,CAAP,CAOD,CACD,uBACE,MAAOD,CAAAA,WAAP,GAAuB,QADzB,CAEE,wCAFF,EAIA,uBACEtB,MAAM,EAAI,IADZ,CAEE,qEAFF,EAIA,uBACE/B,MAAM,EAAI,IADZ,CAEE,2EAFF,EAIA,uBACEsD,MAAM,EAAI,IADZ,CAEE,2EAFF,EAIA,MAAOlD,CAAAA,YAAY,CAACgD,OAAb,CAAqBC,WAArB,CAAP,CACD,CAzCH,CA0CEE,KAAK,CAAE,eAACC,OAAD,CAAUtB,KAAV,QACL9B,CAAAA,YAAY,CAACmD,KAAb,CAAmB,CACjBC,OAAO,CAAPA,OADiB,CAEjBtB,KAAK,CAAEA,KAAK,EAAI,IAAT,CAAgBsB,OAAO,CAACC,MAAR,CAAiB,CAAjC,CAAqCvB,KAF3B,CAGjBzB,GAAG,CAAEsC,WAHY,CAAnB,CADK,EA1CT,CAgDEW,OAAO,CAAE,yBACPxD,CAAAA,iBAAiB,CAACyD,IAAlB,CAAuB,CACrBlD,GAAG,CAAEsC,WADgB,CAAvB,CADO,EAhDX,GAqDD,CAtEI,CAwELf,iBAxEK,4BAwEahC,MAxEb,CAwEqB2C,KAxErB,CAwE4B,CAE/B,GAAI,CAACA,KAAL,CAAY,CACV,MAAOnB,CAAAA,eAAe,CAACxB,MAAD,CAAtB,CACD,CAED,GAAM4C,CAAAA,gBAAgB,CAAGD,KAAK,CAACR,MAAN,CAAaQ,KAAK,CAACT,KAAnB,CAAzB,CAEA,GACE,CAAC3B,kBAAkB,CAACP,MAAD,CAAnB,EACAA,MAAM,CAACC,IAAP,GAAgBC,iBAAiB,CAACC,QAFpC,CAGE,CAEA,GAAMyD,CAAAA,iBAAiB,CAAGhD,YAAY,CAACgC,gBAAgB,CAAC3B,SAAlB,CAAtC,CACA,GAAI2C,iBAAJ,CAAuB,CACrB,GAAMnC,CAAAA,KAAK,CAAGmC,iBAAiB,CAAC5B,iBAAlB,CACZhC,MADY,CAEZ4C,gBAFY,CAAd,CAIA,GAAInB,KAAK,GAAK,IAAV,EAAkBA,KAAK,GAAKmB,gBAAhC,CAAkD,CAChD,MAAOiB,qBAAWC,SAAX,CACLnB,KADK,CAELC,gBAAgB,CAACnC,GAFZ,CAGLgB,KAHK,CAKLzB,MAAM,CAACC,IAAP,GAAgBC,iBAAiB,CAAC6D,UAL7B,CAAP,CAOD,CACF,CACF,CArBD,IAqBO,IAAI/D,MAAM,CAACC,IAAP,GAAgBC,iBAAiB,CAACC,QAAtC,CAAgD,CAIrD,kBAAuBwC,KAAK,CAACR,MAAN,CAAa6B,KAAb,GAAqBC,OAArB,EAAvB,4IAAuD,uIAA9CC,CAAAA,WAA8C,MACrD,GAAIxC,CAAAA,WAAW,CAAGd,YAAY,CAACsD,WAAU,CAACjD,SAAZ,CAA9B,CACA,GAAIY,CAAAA,WAAW,CACb7B,MAAM,CAACiB,SAAP,GAAqBiD,WAAU,CAACjD,SAAhC,EAA6CjB,MAAM,CAACA,MAApD,CACIA,MAAM,CAACA,MADX,CAEIA,MAHN,CAKA,GAAI0B,WAAJ,CAAiB,CACf,GAAMyC,CAAAA,cAAc,CAAGzC,WAAW,CAACM,iBAAZ,CACrBH,WADqB,CAErBqC,WAFqB,CAAvB,CAKA,GAAIC,cAAc,GAAK,IAAnB,EAA2BA,cAAc,GAAKD,WAAlD,CAA8D,CAC5D,GAAME,CAAAA,QAAQ,CAAGP,oBAAWQ,eAAX,CACf1B,KADe,CAEfwB,cAAc,CAAGA,cAAc,CAAC1D,GAAlB,CAAwByD,WAAU,CAACzD,GAFlC,CAGf0D,cAAc,CAAGA,cAAH,CAAoBD,WAHnB,CAAjB,CAKA,oCACKE,QADL,EAEEnC,eAAe,CACbU,KAAK,CAACT,KAAN,GAAgBkC,QAAQ,CAAClC,KAAzB,CACIlC,MAAM,CAACsE,SAAP,GAAqB,IADzB,CAEI3B,KAAK,CAACV,eALd,GAOD,CACF,CACF,CACF,CAID,GACElC,qBAAqB,CAACC,MAAD,CAArB,EACAY,YAAY,CAACZ,MAAM,CAACiB,SAAR,CAAZ,GAAmCU,SAFrC,CAGE,CACA,GAAMD,CAAAA,YAAW,CAAGd,YAAY,CAACZ,MAAM,CAACiB,SAAR,CAAhC,CACA,GAAIQ,CAAAA,MAAJ,CAEA,uBACEzB,MAAM,CAACC,IAAP,GAAgBG,YAAY,CAACC,IAA7B,EAAqCL,MAAM,CAACS,GAAP,EAAc,IADrD,CAEE,qDAFF,EAOA,GAAM8D,CAAAA,cAAc,CAAG5B,KAAK,CAACR,MAAN,CAAaqC,SAAb,CAAuB,SAAAC,CAAC,CAAI,CACjD,GAAIzE,MAAM,CAACS,GAAX,CAAgB,CACd,MAAOgE,CAAAA,CAAC,CAAChE,GAAF,GAAUT,MAAM,CAACS,GAAxB,CACD,CAFD,IAEO,CACL,MAAOgE,CAAAA,CAAC,CAACxD,SAAF,GAAgBjB,MAAM,CAACiB,SAA9B,CACD,CACF,CANsB,CAAvB,CASA,GAAIjB,MAAM,CAACC,IAAP,GAAgBG,YAAY,CAACC,IAA7B,EAAqCkE,cAAc,GAAK,CAAC,CAA7D,CAAgE,CAE9D,GAAI5B,KAAK,CAACT,KAAN,GAAgBqC,cAAhB,EAAkC,CAACvE,MAAM,CAAC+B,MAA9C,CAAsD,CACpD,MAAO,KAAP,CACD,CAGD,GAAMI,CAAAA,MAAM,CAAGQ,KAAK,CAACR,MAAN,CAAa6B,KAAb,CAAmB,CAAnB,CAAsBO,cAAc,CAAG,CAAvC,CAAf,CAGA,GAAIvE,MAAM,CAAC+B,MAAX,CAAmB,CACjB,GAAMN,CAAAA,OAAK,CAAGkB,KAAK,CAACR,MAAN,CAAaoC,cAAb,CAAd,CACApC,MAAM,CAACoC,cAAD,CAAN,+BACK9C,OADL,EAEEM,MAAM,+BACDN,OAAK,CAACM,MADL,CAED/B,MAAM,CAAC+B,MAFN,CAFR,GAOD,CAED,oCACKY,KADL,EAEEV,eAAe,CACbU,KAAK,CAACT,KAAN,GAAgBqC,cAAhB,CACIvE,MAAM,CAACsE,SAAP,GAAqB,IADzB,CAEI3B,KAAK,CAACV,eALd,CAMEC,KAAK,CAAEqC,cANT,CAOEpC,MAAM,CAANA,MAPF,GASD,CAED,GAAIT,YAAJ,CAAiB,CAEf,GAAMG,CAAAA,YAAW,CACf7B,MAAM,CAACA,MAAP,EACAE,iBAAiB,CAAC4B,IAAlB,CAAuB,CACrBC,MAAM,CAAEO,0BAA0B,CAACtC,MAAM,CAACiB,SAAR,CAAmBjB,MAAnB,CADb,CAAvB,CAFF,CAKAyB,MAAK,6BACHM,MAAM,CAAEO,0BAA0B,CAACtC,MAAM,CAACiB,SAAR,CAAmBjB,MAAnB,CAD/B,EAKA0B,YAAW,CAACM,iBAAZ,CAA8BH,YAA9B,CALA,EAMHZ,SAAS,CAAEjB,MAAM,CAACiB,SANf,CAOHR,GAAG,CAAET,MAAM,CAACS,GAAP,EAAc,+BAPhB,EAAL,CASD,CAhBD,IAgBO,CAELgB,MAAK,CAAG,CACNM,MAAM,CAAEO,0BAA0B,CAACtC,MAAM,CAACiB,SAAR,CAAmBjB,MAAnB,CAD5B,CAENiB,SAAS,CAAEjB,MAAM,CAACiB,SAFZ,CAGNR,GAAG,CAAET,MAAM,CAACS,GAAP,EAAc,+BAHb,CAAR,CAKD,CACD,oCACKoD,oBAAWV,IAAX,CAAgBR,KAAhB,CAAuBlB,MAAvB,CADL,EAEEQ,eAAe,CAAEjC,MAAM,CAACsE,SAAP,GAAqB,IAFxC,GAID,CAnFD,IAmFO,IACLtE,MAAM,CAACC,IAAP,GAAgBG,YAAY,CAACC,IAA7B,EACAO,YAAY,CAACZ,MAAM,CAACiB,SAAR,CAAZ,GAAmCU,SAF9B,CAGL,CAEA,MAAOgB,CAAAA,KAAP,CACD,CAGD,GAAI5C,qBAAqB,CAACC,MAAD,CAAzB,CAAmC,CACjC,GAAM0E,CAAAA,gBAAgB,CAAG5D,MAAM,CAACC,IAAP,CAAYH,YAAZ,CAAzB,CACA,IAAK,GAAI+D,CAAAA,CAAC,CAAG,CAAb,CAAgBA,CAAC,CAAGD,gBAAgB,CAACjB,MAArC,CAA6CkB,CAAC,EAA9C,CAAkD,CAChD,GAAMC,CAAAA,eAAe,CAAGF,gBAAgB,CAACC,CAAD,CAAxC,CACA,GAAMjD,CAAAA,aAAW,CAAGd,YAAY,CAACgE,eAAD,CAAhC,CACA,GAAIlD,aAAJ,CAAiB,CAEf,GAAMmD,CAAAA,cAAc,CAAGnD,aAAW,CAACM,iBAAZ,CACrB9B,iBAAiB,CAAC4B,IAAlB,EADqB,CAAvB,CAIA,GAAMgD,CAAAA,mBAAmB,CAAGpD,aAAW,CAACM,iBAAZ,CAC1BhC,MAD0B,CAE1B6E,cAF0B,CAA5B,CAIA,GAAIE,CAAAA,WAAW,CAAG,IAAlB,CACA,GAAID,mBAAmB,GAAK,IAA5B,CAAkC,CAEhCC,WAAW,CAAGF,cAAd,CACD,CAHD,IAGO,IAAIC,mBAAmB,GAAKD,cAA5B,CAA4C,CAEjDE,WAAW,CAAGD,mBAAd,CACD,CACD,GAAIC,WAAJ,CAAiB,CACf,GAAMtD,CAAAA,OAAK,+BACNsD,WADM,EAET9D,SAAS,CAAE2D,eAFF,CAGTnE,GAAG,CAAET,MAAM,CAACS,GAAP,EAAc,+BAHV,EAAX,CAKA,oCACKoD,oBAAWV,IAAX,CAAgBR,KAAhB,CAAuBlB,OAAvB,CADL,EAEEQ,eAAe,CAAEjC,MAAM,CAACsE,SAAP,GAAqB,IAFxC,GAID,CACF,CACF,CACF,CAGD,GAAItE,MAAM,CAACC,IAAP,GAAgBG,YAAY,CAAC4E,UAAjC,CAA6C,CAG3C,GAAIhF,MAAM,CAACS,GAAP,EAAckC,KAAK,CAAClC,GAAN,GAAcT,MAAM,CAACS,GAAvC,CAA4C,CAC1C,MAAOkC,CAAAA,KAAP,CACD,CAID,GAAIA,KAAK,CAACT,KAAN,CAAc,CAAlB,CAAqB,CACnB,oCACKS,KADL,EAEEV,eAAe,CAAEjC,MAAM,CAACsE,SAAP,GAAqB,IAFxC,CAGEpC,KAAK,CAAE,CAHT,CAIEC,MAAM,CAAE,CAACQ,KAAK,CAACR,MAAN,CAAa,CAAb,CAAD,CAJV,GAMD,CACD,MAAOQ,CAAAA,KAAP,CACD,CAGD,GAAI3C,MAAM,CAACC,IAAP,GAAgBG,YAAY,CAAC6E,OAAjC,CAA0C,CACxC,GAAIC,CAAAA,UAAJ,CAGA,GAAIlF,MAAM,CAACS,GAAP,GAAekB,SAAf,EAA4BgB,KAAK,CAACR,MAAN,CAAasB,MAA7C,CAAqD,CACnDyB,UAAU,CAAGvC,KAAK,CAACR,MAAN,CAAasB,MAAb,CAAsB,CAAnC,CACD,CAFD,IAEO,CACLyB,UAAU,CAAGvC,KAAK,CAACR,MAAN,CAAaqC,SAAb,CAAuB,SAAAC,CAAC,QAAIA,CAAAA,CAAC,CAAChE,GAAF,GAAUT,MAAM,CAACS,GAArB,EAAxB,CAAb,CACD,CAGD,GAAIyE,UAAU,GAAK,CAAC,CAApB,CAAuB,CACrB,GAAMxD,CAAAA,aAAW,CAAGd,YAAY,CAACZ,MAAM,CAACiB,SAAR,CAAhC,CACA,GAAIW,CAAAA,UAAU,CAAG,EAAjB,CACA,GAAIF,aAAJ,CAAiB,CACf,GAAMG,CAAAA,aAAW,CACf7B,MAAM,CAACA,MAAP,EACAE,iBAAiB,CAAC4B,IAAlB,CAAuB,CACrBC,MAAM,CAAEO,0BAA0B,CAACtC,MAAM,CAACiB,SAAR,CAAmBjB,MAAnB,CADb,CAAvB,CAFF,CAKA4B,UAAU,CAAGF,aAAW,CAACM,iBAAZ,CAA8BH,aAA9B,CAAb,CACD,CACD,GAAMM,CAAAA,OAAM,iCAAOQ,KAAK,CAACR,MAAb,CAAZ,CACAA,OAAM,CAAC+C,UAAD,CAAN,6BACEnD,MAAM,CAAEO,0BAA0B,CAACtC,MAAM,CAACiB,SAAR,CAAmBjB,MAAnB,CADpC,EAGK4B,UAHL,EAIEX,SAAS,CAAEjB,MAAM,CAACiB,SAJpB,CAKER,GAAG,CAAET,MAAM,CAACsD,MAAP,EAAiB,+BALxB,GAOA,oCAAYX,KAAZ,EAAmBR,MAAM,CAANA,OAAnB,GACD,CACF,CAGD,GACEnC,MAAM,CAACC,IAAP,GAAgBG,YAAY,CAAC+E,mBAA7B,GACCnF,MAAM,CAACS,GAAP,EAAc,IAAd,EAAsBT,MAAM,CAACS,GAAP,GAAekC,KAAK,CAAClC,GAD5C,GAEAT,MAAM,CAACoF,UAAP,GAAsBzC,KAAK,CAACR,MAAN,CAAaQ,KAAK,CAACT,KAAnB,EAA0BzB,GAFhD,EAGAkC,KAAK,CAACV,eAJR,CAKE,CACA,oCACKU,KADL,EAEEV,eAAe,CAAE,KAFnB,GAID,CAED,GAAIjC,MAAM,CAACC,IAAP,GAAgBC,iBAAiB,CAAC6D,UAAtC,CAAkD,CAChD,GAAMtD,CAAAA,GAAG,CAAGT,MAAM,CAACS,GAAnB,CACA,GAAM4E,CAAAA,SAAS,CAAG1C,KAAK,CAACR,MAAN,CAAamD,IAAb,CAAkB,SAAA7D,KAAK,QAAIA,CAAAA,KAAK,CAAChB,GAAN,GAAcA,GAAlB,EAAvB,CAAlB,CACA,GAAI4E,SAAJ,CAAe,CACb,GAAMtD,CAAAA,MAAM,+BACPsD,SAAS,CAACtD,MADH,CAEP/B,MAAM,CAAC+B,MAFA,CAAZ,CAIA,GAAMI,CAAAA,QAAM,iCAAOQ,KAAK,CAACR,MAAb,CAAZ,CACAA,QAAM,CAACQ,KAAK,CAACR,MAAN,CAAaoD,OAAb,CAAqBF,SAArB,CAAD,CAAN,+BACKA,SADL,EAEEtD,MAAM,CAANA,MAFF,GAIA,oCACKY,KADL,EAEER,MAAM,CAANA,QAFF,GAID,CACF,CAED,GAAInC,MAAM,CAACC,IAAP,GAAgBG,YAAY,CAACI,KAAjC,CAAwC,CAEtC,GAAIR,MAAM,CAACS,GAAP,EAAc,IAAd,EAAsBT,MAAM,CAACS,GAAP,EAAckC,KAAK,CAAClC,GAA9C,CAAmD,CAGjD,MAAOkC,CAAAA,KAAP,CACD,CACD,GAAM6C,CAAAA,eAAe,CAAGxF,MAAM,CAACwD,OAA/B,CAEA,oCACKb,KADL,EAEER,MAAM,CAAEqD,eAAe,CAACC,GAAhB,CAAoB,SAAAC,cAAc,CAAI,CAC5C,GAAMvE,CAAAA,MAAM,CAAGP,YAAY,CAAC8E,cAAc,CAACzE,SAAhB,CAA3B,CAEA,GAAIW,CAAAA,UAAU,CAAG,EAAjB,CAEA,GAAIT,MAAJ,CAAY,CACV,GAAMU,CAAAA,aAAW,CACf6D,cAAc,CAAC1F,MAAf,EACAE,iBAAiB,CAAC4B,IAAlB,CAAuB,CACrBC,MAAM,CAAEO,0BAA0B,CAChCoD,cAAc,CAACzE,SADiB,CAEhCyE,cAFgC,CADb,CAAvB,CAFF,CASA9D,UAAU,CAAGT,MAAM,CAACa,iBAAP,CAAyBH,aAAzB,CAAb,CACD,CAED,kCACEE,MAAM,CAAEO,0BAA0B,CAChCoD,cAAc,CAACzE,SADiB,CAEhCyE,cAFgC,CADpC,EAKK9D,UALL,EAMEX,SAAS,CAAEyE,cAAc,CAACzE,SAN5B,CAOER,GAAG,CAAEiF,cAAc,CAACjF,GAAf,EAAsB,+BAP7B,GASD,CA3BO,CAFV,CA8BEyB,KAAK,CAAElC,MAAM,CAACkC,KA9BhB,GAgCD,CAED,GACElC,MAAM,CAACC,IAAP,GAAgBC,iBAAiB,CAACyF,IAAlC,EACA3F,MAAM,CAACC,IAAP,GAAgBG,YAAY,CAACwF,GAF/B,CAGE,IACQnF,CAAAA,IADR,CAC8BT,MAD9B,CACQS,GADR,CACawC,CADb,CAC8BjD,MAD9B,CACaiD,CADb,CACgBqB,SADhB,CAC8BtE,MAD9B,CACgBsE,SADhB,CAEA,GAAIuB,CAAAA,cAAc,CAAGlD,KAAK,CAACT,KAA3B,CACA,GAAIlC,MAAM,CAACC,IAAP,GAAgBG,YAAY,CAACwF,GAA7B,EAAoC3C,CAAC,EAAI,IAA7C,CAAmD,CAGjD4C,cAAc,CAAGC,IAAI,CAACC,GAAL,CAAS,CAAT,CAAYpD,KAAK,CAACT,KAAN,CAAce,CAAd,CAAkB,CAA9B,CAAjB,CACD,CAJD,IAIO,IAAIxC,IAAJ,CAAS,CACd,GAAMuF,CAAAA,SAAS,CAAGrD,KAAK,CAACR,MAAN,CAAamD,IAAb,CAAkB,SAAA7D,KAAK,QAAIA,CAAAA,KAAK,CAAChB,GAAN,GAAcA,IAAlB,EAAvB,CAAlB,CACAoF,cAAc,CAAGlD,KAAK,CAACR,MAAN,CAAaoD,OAAb,CAAqBS,SAArB,CAAjB,CACD,CAED,GAAIH,cAAc,CAAG,CAArB,CAAwB,CACtB,oCACKlD,KADL,EAEER,MAAM,CAAEQ,KAAK,CAACR,MAAN,CAAa6B,KAAb,CAAmB,CAAnB,CAAsB6B,cAAtB,CAFV,CAGE3D,KAAK,CAAE2D,cAAc,CAAG,CAH1B,CAIE5D,eAAe,CAAEqC,SAAS,GAAK,IAJjC,GAMD,CACF,CAKD,GAAM2B,CAAAA,QAAQ,CAAGjG,MAAM,CAACS,GAAP,CAAaoD,oBAAW0B,OAAX,CAAmB5C,KAAnB,CAA0B3C,MAAM,CAACS,GAAjC,CAAb,CAAqD,CAAC,CAAvE,CAIA,mBAAuBkC,KAAK,CAACR,MAAN,CAAa6B,KAAb,GAAqBC,OAArB,EAAvB,mJAAuD,mJAA9CC,CAAAA,YAA8C,OACrD,GAAIA,YAAU,CAACzD,GAAX,GAAmBmC,gBAAgB,CAACnC,GAAxC,CAA6C,CAE3C,SACD,CAID,GAAIwF,QAAQ,EAAI,CAAZ,EAAiB/B,YAAU,CAACzD,GAAX,GAAmBT,MAAM,CAACS,GAA/C,CAAoD,CAClD,SACD,CACD,GAAIiB,CAAAA,aAAW,CAAGd,YAAY,CAACsD,YAAU,CAACjD,SAAZ,CAA9B,CACA,GAAIS,aAAJ,CAAiB,CACf,GAAMD,CAAAA,OAAK,CAAGC,aAAW,CAACM,iBAAZ,CAA8BhC,MAA9B,CAAsCkE,YAAtC,CAAd,CAEA,GAAIzC,OAAK,GAAK,IAAd,CAAoB,CAClB,MAAOkB,CAAAA,KAAP,CACD,CAFD,IAEO,IAAIlB,OAAK,EAAIA,OAAK,GAAKyC,YAAvB,CAAmC,CACxC,MAAOL,qBAAWC,SAAX,CACLnB,KADK,CAELuB,YAAU,CAACzD,GAFN,CAGLgB,OAHK,CAMLzB,MAAM,CAACkG,aAAP,EAAwBlG,MAAM,CAACC,IAAP,CAAYkG,QAAZ,CAAqB,QAArB,CANnB,CAAP,CAQD,CACF,CACF,CAED,MAAOxD,CAAAA,KAAP,CACD,CA/cI,CAidLyD,wBAjdK,mCAidoBzD,KAjdpB,CAid2B,CAC9B,GAAMlB,CAAAA,KAAK,CAAGkB,KAAK,CAACR,MAAN,CAAaQ,KAAK,CAACT,KAAnB,CAAd,CACA,MAAOM,CAAAA,wBAAwB,CAACf,KAAD,CAA/B,CACD,CApdI,CAsdLgB,yBAtdK,oCAsdqB4D,IAtdrB,CAsd2BtE,MAtd3B,CAsdmC,CACtC,MAAOU,CAAAA,0BAAyB,CAAC4D,IAAD,CAAOtE,MAAP,CAAhC,CACD,CAxdI,CA0dLuE,gBAAgB,CAAE,gCAChB5F,YADgB,CAEhBC,WAAW,CAAC4F,wBAFI,CA1db,CAAP,CA+dD,C","sourcesContent":["import * as NavigationActions from '../NavigationActions';\nimport * as StackActions from './StackActions';\nimport createConfigGetter from './createConfigGetter';\nimport getScreenForRouteName from './getScreenForRouteName';\nimport StateUtils from '../StateUtils';\nimport validateRouteConfigMap from './validateRouteConfigMap';\nimport invariant from '../utils/invariant';\nimport { generateKey } from './KeyGenerator';\nimport { createPathParser } from './pathUtils';\n\nfunction behavesLikePushAction(action) {\n return (\n action.type === NavigationActions.NAVIGATE ||\n action.type === StackActions.PUSH\n );\n}\n\nconst defaultActionCreators = () => ({});\n\nfunction isResetToRootStack(action) {\n return action.type === StackActions.RESET && action.key === null;\n}\n\nexport default (routeConfigs, stackConfig = {}) => {\n // Fail fast on invalid route definitions\n validateRouteConfigMap(routeConfigs);\n\n const childRouters = {};\n const routeNames = Object.keys(routeConfigs);\n\n // Loop through routes and find child routers\n routeNames.forEach(routeName => {\n const screen = getScreenForRouteName(routeConfigs, routeName);\n if (screen && screen.router) {\n // If it has a router it's a navigator.\n childRouters[routeName] = screen.router;\n } else {\n // If it doesn't have router it's an ordinary React component.\n childRouters[routeName] = null;\n }\n });\n\n const { initialRouteParams } = stackConfig;\n const getCustomActionCreators =\n stackConfig.getCustomActionCreators || defaultActionCreators;\n\n const initialRouteName = stackConfig.initialRouteName || routeNames[0];\n\n const initialChildRouter = childRouters[initialRouteName];\n\n function getInitialState(action) {\n let route = {};\n const childRouter = childRouters[action.routeName];\n\n // This is a push-like action, and childRouter will be a router or null if we are responsible for this routeName\n if (behavesLikePushAction(action) && childRouter !== undefined) {\n let childState = {};\n // The router is null for normal leaf routes\n if (childRouter !== null) {\n const childAction =\n action.action || NavigationActions.init({ params: action.params });\n childState = childRouter.getStateForAction(childAction);\n }\n\n return {\n key: 'StackRouterRoot',\n isTransitioning: false,\n index: 0,\n routes: [\n {\n params: action.params,\n ...childState,\n key: action.key || generateKey(),\n routeName: action.routeName,\n },\n ],\n };\n }\n\n if (initialChildRouter) {\n route = initialChildRouter.getStateForAction(\n NavigationActions.navigate({\n routeName: initialRouteName,\n params: initialRouteParams,\n })\n );\n }\n const params = (routeConfigs[initialRouteName].params ||\n route.params ||\n action.params ||\n initialRouteParams) && {\n ...(routeConfigs[initialRouteName].params || {}),\n ...(route.params || {}),\n ...(action.params || {}),\n ...(initialRouteParams || {}),\n };\n const { initialRouteKey } = stackConfig;\n route = {\n ...route,\n ...(params ? { params } : {}),\n routeName: initialRouteName,\n key: action.key || (initialRouteKey || generateKey()),\n };\n return {\n key: 'StackRouterRoot',\n isTransitioning: false,\n index: 0,\n routes: [route],\n };\n }\n\n function getParamsForRouteAndAction(routeName, action) {\n let routeConfig = routeConfigs[routeName];\n if (routeConfig && routeConfig.params) {\n return { ...routeConfig.params, ...action.params };\n } else {\n return action.params;\n }\n }\n\n const {\n getPathAndParamsForRoute,\n getActionForPathAndParams,\n } = createPathParser(childRouters, routeConfigs, stackConfig);\n\n return {\n childRouters,\n\n getComponentForState(state) {\n const activeChildRoute = state.routes[state.index];\n const { routeName } = activeChildRoute;\n if (childRouters[routeName]) {\n return childRouters[routeName].getComponentForState(activeChildRoute);\n }\n return getScreenForRouteName(routeConfigs, routeName);\n },\n\n getComponentForRouteName(routeName) {\n return getScreenForRouteName(routeConfigs, routeName);\n },\n\n getActionCreators(route, navStateKey) {\n return {\n ...getCustomActionCreators(route, navStateKey),\n pop: (n, params) =>\n StackActions.pop({\n n,\n ...params,\n }),\n popToTop: params => StackActions.popToTop(params),\n push: (routeName, params, action) =>\n StackActions.push({\n routeName,\n params,\n action,\n }),\n replace: (replaceWith, params, action, newKey) => {\n if (typeof replaceWith === 'string') {\n return StackActions.replace({\n routeName: replaceWith,\n params,\n action,\n key: route.key,\n newKey,\n });\n }\n invariant(\n typeof replaceWith === 'object',\n 'Must replaceWith an object or a string'\n );\n invariant(\n params == null,\n 'Params must not be provided to .replace() when specifying an object'\n );\n invariant(\n action == null,\n 'Child action must not be provided to .replace() when specifying an object'\n );\n invariant(\n newKey == null,\n 'Child action must not be provided to .replace() when specifying an object'\n );\n return StackActions.replace(replaceWith);\n },\n reset: (actions, index) =>\n StackActions.reset({\n actions,\n index: index == null ? actions.length - 1 : index,\n key: navStateKey,\n }),\n dismiss: () =>\n NavigationActions.back({\n key: navStateKey,\n }),\n };\n },\n\n getStateForAction(action, state) {\n // Set up the initial state if needed\n if (!state) {\n return getInitialState(action);\n }\n\n const activeChildRoute = state.routes[state.index];\n\n if (\n !isResetToRootStack(action) &&\n action.type !== NavigationActions.NAVIGATE\n ) {\n // Let the active child router handle the action\n const activeChildRouter = childRouters[activeChildRoute.routeName];\n if (activeChildRouter) {\n const route = activeChildRouter.getStateForAction(\n action,\n activeChildRoute\n );\n if (route !== null && route !== activeChildRoute) {\n return StateUtils.replaceAt(\n state,\n activeChildRoute.key,\n route,\n // the following tells replaceAt to NOT change the index to this route for the setParam action, because people don't expect param-setting actions to switch the active route\n action.type === NavigationActions.SET_PARAMS\n );\n }\n }\n } else if (action.type === NavigationActions.NAVIGATE) {\n // Traverse routes from the top of the stack to the bottom, so the\n // active route has the first opportunity, then the one before it, etc.\n\n for (let childRoute of state.routes.slice().reverse()) {\n let childRouter = childRouters[childRoute.routeName];\n let childAction =\n action.routeName === childRoute.routeName && action.action\n ? action.action\n : action;\n\n if (childRouter) {\n const nextRouteState = childRouter.getStateForAction(\n childAction,\n childRoute\n );\n\n if (nextRouteState === null || nextRouteState !== childRoute) {\n const newState = StateUtils.replaceAndPrune(\n state,\n nextRouteState ? nextRouteState.key : childRoute.key,\n nextRouteState ? nextRouteState : childRoute\n );\n return {\n ...newState,\n isTransitioning:\n state.index !== newState.index\n ? action.immediate !== true\n : state.isTransitioning,\n };\n }\n }\n }\n }\n\n // Handle push and navigate actions. This must happen after the focused\n // child router has had a chance to handle the action.\n if (\n behavesLikePushAction(action) &&\n childRouters[action.routeName] !== undefined // undefined means it's not a childRouter or a screen\n ) {\n const childRouter = childRouters[action.routeName];\n let route;\n\n invariant(\n action.type !== StackActions.PUSH || action.key == null,\n 'StackRouter does not support key on the push action'\n );\n\n // Before pushing a new route we first try to find one in the existing route stack\n // More information on this: https://github.com/react-navigation/rfcs/blob/master/text/0004-less-pushy-navigate.md\n const lastRouteIndex = state.routes.findIndex(r => {\n if (action.key) {\n return r.key === action.key;\n } else {\n return r.routeName === action.routeName;\n }\n });\n\n // An instance of this route exists already and we're dealing with a navigate action\n if (action.type !== StackActions.PUSH && lastRouteIndex !== -1) {\n // If index is unchanged and params are not being set, leave state identity intact\n if (state.index === lastRouteIndex && !action.params) {\n return null;\n }\n\n // Remove the now unused routes at the tail of the routes array\n const routes = state.routes.slice(0, lastRouteIndex + 1);\n\n // Apply params if provided, otherwise leave route identity intact\n if (action.params) {\n const route = state.routes[lastRouteIndex];\n routes[lastRouteIndex] = {\n ...route,\n params: {\n ...route.params,\n ...action.params,\n },\n };\n }\n // Return state with new index. Change isTransitioning only if index has changed\n return {\n ...state,\n isTransitioning:\n state.index !== lastRouteIndex\n ? action.immediate !== true\n : state.isTransitioning,\n index: lastRouteIndex,\n routes,\n };\n }\n\n if (childRouter) {\n // Delegate to the child router with the given action, or init it\n const childAction =\n action.action ||\n NavigationActions.init({\n params: getParamsForRouteAndAction(action.routeName, action),\n });\n route = {\n params: getParamsForRouteAndAction(action.routeName, action),\n // note(brentvatne): does it make sense to wipe out the params\n // here? or even to add params at all? need more info about what\n // this solves\n ...childRouter.getStateForAction(childAction),\n routeName: action.routeName,\n key: action.key || generateKey(),\n };\n } else {\n // Create the route from scratch\n route = {\n params: getParamsForRouteAndAction(action.routeName, action),\n routeName: action.routeName,\n key: action.key || generateKey(),\n };\n }\n return {\n ...StateUtils.push(state, route),\n isTransitioning: action.immediate !== true,\n };\n } else if (\n action.type === StackActions.PUSH &&\n childRouters[action.routeName] === undefined\n ) {\n // Return the state identity to bubble the action up\n return state;\n }\n\n // Handle navigation to other child routers that are not yet pushed\n if (behavesLikePushAction(action)) {\n const childRouterNames = Object.keys(childRouters);\n for (let i = 0; i < childRouterNames.length; i++) {\n const childRouterName = childRouterNames[i];\n const childRouter = childRouters[childRouterName];\n if (childRouter) {\n // For each child router, start with a blank state\n const initChildRoute = childRouter.getStateForAction(\n NavigationActions.init()\n );\n // Then check to see if the router handles our navigate action\n const navigatedChildRoute = childRouter.getStateForAction(\n action,\n initChildRoute\n );\n let routeToPush = null;\n if (navigatedChildRoute === null) {\n // Push the route if the router has 'handled' the action and returned null\n routeToPush = initChildRoute;\n } else if (navigatedChildRoute !== initChildRoute) {\n // Push the route if the state has changed in response to this navigation\n routeToPush = navigatedChildRoute;\n }\n if (routeToPush) {\n const route = {\n ...routeToPush,\n routeName: childRouterName,\n key: action.key || generateKey(),\n };\n return {\n ...StateUtils.push(state, route),\n isTransitioning: action.immediate !== true,\n };\n }\n }\n }\n }\n\n // Handle pop-to-top behavior. Make sure this happens after children have had a chance to handle the action, so that the inner stack pops to top first.\n if (action.type === StackActions.POP_TO_TOP) {\n // Refuse to handle pop to top if a key is given that doesn't correspond\n // to this router\n if (action.key && state.key !== action.key) {\n return state;\n }\n\n // If we're already at the top, then we return the state with a new\n // identity so that the action is handled by this router.\n if (state.index > 0) {\n return {\n ...state,\n isTransitioning: action.immediate !== true,\n index: 0,\n routes: [state.routes[0]],\n };\n }\n return state;\n }\n\n // Handle replace action\n if (action.type === StackActions.REPLACE) {\n let routeIndex;\n\n // If the key param is undefined, set the index to the last route in the stack\n if (action.key === undefined && state.routes.length) {\n routeIndex = state.routes.length - 1;\n } else {\n routeIndex = state.routes.findIndex(r => r.key === action.key);\n }\n\n // Only replace if the key matches one of our routes\n if (routeIndex !== -1) {\n const childRouter = childRouters[action.routeName];\n let childState = {};\n if (childRouter) {\n const childAction =\n action.action ||\n NavigationActions.init({\n params: getParamsForRouteAndAction(action.routeName, action),\n });\n childState = childRouter.getStateForAction(childAction);\n }\n const routes = [...state.routes];\n routes[routeIndex] = {\n params: getParamsForRouteAndAction(action.routeName, action),\n // merge the child state in this order to allow params override\n ...childState,\n routeName: action.routeName,\n key: action.newKey || generateKey(),\n };\n return { ...state, routes };\n }\n }\n\n // Update transitioning state\n if (\n action.type === StackActions.COMPLETE_TRANSITION &&\n (action.key == null || action.key === state.key) &&\n action.toChildKey === state.routes[state.index].key &&\n state.isTransitioning\n ) {\n return {\n ...state,\n isTransitioning: false,\n };\n }\n\n if (action.type === NavigationActions.SET_PARAMS) {\n const key = action.key;\n const lastRoute = state.routes.find(route => route.key === key);\n if (lastRoute) {\n const params = {\n ...lastRoute.params,\n ...action.params,\n };\n const routes = [...state.routes];\n routes[state.routes.indexOf(lastRoute)] = {\n ...lastRoute,\n params,\n };\n return {\n ...state,\n routes,\n };\n }\n }\n\n if (action.type === StackActions.RESET) {\n // Only handle reset actions that are unspecified or match this state key\n if (action.key != null && action.key != state.key) {\n // Deliberately use != instead of !== so we can match null with\n // undefined on either the state or the action\n return state;\n }\n const newStackActions = action.actions;\n\n return {\n ...state,\n routes: newStackActions.map(newStackAction => {\n const router = childRouters[newStackAction.routeName];\n\n let childState = {};\n\n if (router) {\n const childAction =\n newStackAction.action ||\n NavigationActions.init({\n params: getParamsForRouteAndAction(\n newStackAction.routeName,\n newStackAction\n ),\n });\n\n childState = router.getStateForAction(childAction);\n }\n\n return {\n params: getParamsForRouteAndAction(\n newStackAction.routeName,\n newStackAction\n ),\n ...childState,\n routeName: newStackAction.routeName,\n key: newStackAction.key || generateKey(),\n };\n }),\n index: action.index,\n };\n }\n\n if (\n action.type === NavigationActions.BACK ||\n action.type === StackActions.POP\n ) {\n const { key, n, immediate } = action;\n let backRouteIndex = state.index;\n if (action.type === StackActions.POP && n != null) {\n // determine the index to go back *from*. In this case, n=1 means to go\n // back from state.index, as if it were a normal \"BACK\" action\n backRouteIndex = Math.max(1, state.index - n + 1);\n } else if (key) {\n const backRoute = state.routes.find(route => route.key === key);\n backRouteIndex = state.routes.indexOf(backRoute);\n }\n\n if (backRouteIndex > 0) {\n return {\n ...state,\n routes: state.routes.slice(0, backRouteIndex),\n index: backRouteIndex - 1,\n isTransitioning: immediate !== true,\n };\n }\n }\n\n // By this point in the router's state handling logic, we have handled the behavior of the active route, and handled any stack actions.\n // If we haven't returned by now, we should allow non-active child routers to handle this action, and switch to that index if the child state (route) does change..\n\n const keyIndex = action.key ? StateUtils.indexOf(state, action.key) : -1;\n\n // Traverse routes from the top of the stack to the bottom, so the\n // active route has the first opportunity, then the one before it, etc.\n for (let childRoute of state.routes.slice().reverse()) {\n if (childRoute.key === activeChildRoute.key) {\n // skip over the active child because we let it attempt to handle the action earlier\n continue;\n }\n // If a key is provided and in routes state then let's use that\n // knowledge to skip extra getStateForAction calls on other child\n // routers\n if (keyIndex >= 0 && childRoute.key !== action.key) {\n continue;\n }\n let childRouter = childRouters[childRoute.routeName];\n if (childRouter) {\n const route = childRouter.getStateForAction(action, childRoute);\n\n if (route === null) {\n return state;\n } else if (route && route !== childRoute) {\n return StateUtils.replaceAt(\n state,\n childRoute.key,\n route,\n // People don't expect these actions to switch the active route\n // TODO: We should switch to action.preserveFocus: true for drawer in future\n action.preserveFocus || action.type.includes('DRAWER')\n );\n }\n }\n }\n\n return state;\n },\n\n getPathAndParamsForState(state) {\n const route = state.routes[state.index];\n return getPathAndParamsForRoute(route);\n },\n\n getActionForPathAndParams(path, params) {\n return getActionForPathAndParams(path, params);\n },\n\n getScreenOptions: createConfigGetter(\n routeConfigs,\n stackConfig.defaultNavigationOptions\n ),\n };\n};\n"]}
+\ No newline at end of file
++{"version":3,"sources":["StackRouter.js"],"names":["behavesLikePushAction","action","type","NavigationActions","NAVIGATE","StackActions","PUSH","defaultActionCreators","isResetToRootStack","RESET","key","routeConfigs","stackConfig","childRouters","routeNames","Object","keys","forEach","routeName","routeConfig","screen","router","initialRouteParams","getCustomActionCreators","initialRouteName","initialChildRouter","getInitialState","route","childRouter","undefined","childState","childAction","init","params","getStateForAction","index","transitions","pushing","popping","routes","navigate","initialRouteKey","getParamsForRouteAndAction","getPathAndParamsForRoute","getActionForPathAndParams","getComponentForState","state","activeChildRoute","getComponentForRouteName","getActionCreators","navStateKey","pop","n","popToTop","push","replace","replaceWith","newKey","reset","actions","length","dismiss","back","activeChildRouter","StateUtils","replaceAt","SET_PARAMS","slice","reverse","childRoute","nextRouteState","newState","replaceAndPrune","immediate","lastRouteIndex","findIndex","r","childRouterNames","i","childRouterName","initChildRoute","navigatedChildRoute","routeToPush","POP_TO_TOP","REPLACE","routeIndex","COMPLETE_TRANSITION","toChildKey","filter","lastRoute","find","indexOf","newStackActions","map","newStackAction","BACK","POP","backRoute","backRouteIndex","Math","max","keyIndex","preserveFocus","includes","getPathAndParamsForState","path","getScreenOptions","defaultNavigationOptions"],"mappings":"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","sourcesContent":["import * as NavigationActions from '../NavigationActions';\nimport * as StackActions from './StackActions';\nimport createConfigGetter from './createConfigGetter';\nimport getScreenForRouteName from './getScreenForRouteName';\nimport StateUtils from '../StateUtils';\nimport validateRouteConfigMap from './validateRouteConfigMap';\nimport invariant from '../utils/invariant';\nimport { generateKey } from './KeyGenerator';\nimport { createPathParser } from './pathUtils';\n\nfunction behavesLikePushAction(action) {\n return (\n action.type === NavigationActions.NAVIGATE ||\n action.type === StackActions.PUSH\n );\n}\n\nconst defaultActionCreators = () => ({});\n\nfunction isResetToRootStack(action) {\n return action.type === StackActions.RESET && action.key === null;\n}\n\nexport default (routeConfigs, stackConfig = {}) => {\n // Fail fast on invalid route definitions\n validateRouteConfigMap(routeConfigs);\n\n const childRouters = {};\n const routeNames = Object.keys(routeConfigs);\n\n // Loop through routes and find child routers\n routeNames.forEach(routeName => {\n // We're not using `getScreenForRouteName` here to preserve the lazy loading\n // behaviour of routes. This means that routes with child routers must be\n // defined using a component directly or with an object with a screen prop.\n const routeConfig = routeConfigs[routeName];\n const screen =\n routeConfig && routeConfig.screen ? routeConfig.screen : routeConfig;\n if (screen && screen.router) {\n // If it has a router it's a navigator.\n childRouters[routeName] = screen.router;\n } else {\n // If it doesn't have router it's an ordinary React component.\n childRouters[routeName] = null;\n }\n });\n\n const { initialRouteParams } = stackConfig;\n const getCustomActionCreators =\n stackConfig.getCustomActionCreators || defaultActionCreators;\n\n const initialRouteName = stackConfig.initialRouteName || routeNames[0];\n\n const initialChildRouter = childRouters[initialRouteName];\n\n function getInitialState(action) {\n let route = {};\n const childRouter = childRouters[action.routeName];\n\n // This is a push-like action, and childRouter will be a router or null if we are responsible for this routeName\n if (behavesLikePushAction(action) && childRouter !== undefined) {\n let childState = {};\n // The router is null for normal leaf routes\n if (childRouter !== null) {\n const childAction =\n action.action || NavigationActions.init({ params: action.params });\n childState = childRouter.getStateForAction(childAction);\n }\n\n return {\n key: 'StackRouterRoot',\n index: 0,\n transitions: {\n pushing: [],\n popping: [],\n },\n routes: [\n {\n params: action.params,\n ...childState,\n key: action.key || generateKey(),\n routeName: action.routeName,\n },\n ],\n };\n }\n\n if (initialChildRouter) {\n route = initialChildRouter.getStateForAction(\n NavigationActions.navigate({\n routeName: initialRouteName,\n params: initialRouteParams,\n })\n );\n }\n const params = (routeConfigs[initialRouteName].params ||\n route.params ||\n action.params ||\n initialRouteParams) && {\n ...(routeConfigs[initialRouteName].params || {}),\n ...(route.params || {}),\n ...(action.params || {}),\n ...(initialRouteParams || {}),\n };\n const { initialRouteKey } = stackConfig;\n route = {\n ...route,\n ...(params ? { params } : {}),\n routeName: initialRouteName,\n key: action.key || (initialRouteKey || generateKey()),\n };\n return {\n key: 'StackRouterRoot',\n transitions: {\n pushing: [],\n popping: [],\n },\n index: 0,\n routes: [route],\n };\n }\n\n function getParamsForRouteAndAction(routeName, action) {\n let routeConfig = routeConfigs[routeName];\n if (routeConfig && routeConfig.params) {\n return { ...routeConfig.params, ...action.params };\n } else {\n return action.params;\n }\n }\n\n const {\n getPathAndParamsForRoute,\n getActionForPathAndParams,\n } = createPathParser(childRouters, routeConfigs, stackConfig);\n\n return {\n childRouters,\n\n getComponentForState(state) {\n const activeChildRoute = state.routes[state.index];\n const { routeName } = activeChildRoute;\n if (childRouters[routeName]) {\n return childRouters[routeName].getComponentForState(activeChildRoute);\n }\n return getScreenForRouteName(routeConfigs, routeName);\n },\n\n getComponentForRouteName(routeName) {\n return getScreenForRouteName(routeConfigs, routeName);\n },\n\n getActionCreators(route, navStateKey) {\n return {\n ...getCustomActionCreators(route, navStateKey),\n pop: (n, params) =>\n StackActions.pop({\n n,\n ...params,\n }),\n popToTop: params => StackActions.popToTop(params),\n push: (routeName, params, action) =>\n StackActions.push({\n routeName,\n params,\n action,\n }),\n replace: (replaceWith, params, action, newKey) => {\n if (typeof replaceWith === 'string') {\n return StackActions.replace({\n routeName: replaceWith,\n params,\n action,\n key: route.key,\n newKey,\n });\n }\n invariant(\n typeof replaceWith === 'object',\n 'Must replaceWith an object or a string'\n );\n invariant(\n params == null,\n 'Params must not be provided to .replace() when specifying an object'\n );\n invariant(\n action == null,\n 'Child action must not be provided to .replace() when specifying an object'\n );\n invariant(\n newKey == null,\n 'Child action must not be provided to .replace() when specifying an object'\n );\n return StackActions.replace(replaceWith);\n },\n reset: (actions, index) =>\n StackActions.reset({\n actions,\n index: index == null ? actions.length - 1 : index,\n key: navStateKey,\n }),\n dismiss: () =>\n NavigationActions.back({\n key: navStateKey,\n }),\n };\n },\n\n getStateForAction(action, state) {\n // Set up the initial state if needed\n if (!state) {\n return getInitialState(action);\n }\n\n const activeChildRoute = state.routes[state.index];\n\n if (\n !isResetToRootStack(action) &&\n action.type !== NavigationActions.NAVIGATE\n ) {\n // Let the active child router handle the action\n const activeChildRouter = childRouters[activeChildRoute.routeName];\n if (activeChildRouter) {\n const route = activeChildRouter.getStateForAction(\n action,\n activeChildRoute\n );\n if (route !== null && route !== activeChildRoute) {\n return StateUtils.replaceAt(\n state,\n activeChildRoute.key,\n route,\n // the following tells replaceAt to NOT change the index to this route for the setParam action, because people don't expect param-setting actions to switch the active route\n action.type === NavigationActions.SET_PARAMS\n );\n }\n }\n } else if (action.type === NavigationActions.NAVIGATE) {\n // Traverse routes from the top of the stack to the bottom, so the\n // active route has the first opportunity, then the one before it, etc.\n\n for (let childRoute of state.routes.slice().reverse()) {\n let childRouter = childRouters[childRoute.routeName];\n let childAction =\n action.routeName === childRoute.routeName && action.action\n ? action.action\n : action;\n\n if (childRouter) {\n const nextRouteState = childRouter.getStateForAction(\n childAction,\n childRoute\n );\n\n if (nextRouteState === null || nextRouteState !== childRoute) {\n const newState = StateUtils.replaceAndPrune(\n state,\n nextRouteState ? nextRouteState.key : childRoute.key,\n nextRouteState ? nextRouteState : childRoute\n );\n return {\n ...newState,\n transitions:\n state.index !== newState.index && action.immediate !== true\n ? {\n // Figure out which routes should transition\n pushing: [],\n popping: [],\n }\n : {\n pushing: [],\n popping: [],\n },\n };\n }\n }\n }\n }\n\n // Handle push and navigate actions. This must happen after the focused\n // child router has had a chance to handle the action.\n if (\n behavesLikePushAction(action) &&\n childRouters[action.routeName] !== undefined // undefined means it's not a childRouter or a screen\n ) {\n const childRouter = childRouters[action.routeName];\n let route;\n\n invariant(\n action.type !== StackActions.PUSH || action.key == null,\n 'StackRouter does not support key on the push action'\n );\n\n // Before pushing a new route we first try to find one in the existing route stack\n // More information on this: https://github.com/react-navigation/rfcs/blob/master/text/0004-less-pushy-navigate.md\n const lastRouteIndex = state.routes.findIndex(r => {\n if (action.key) {\n return r.key === action.key;\n } else {\n return r.routeName === action.routeName;\n }\n });\n\n // An instance of this route exists already and we're dealing with a navigate action\n if (action.type !== StackActions.PUSH && lastRouteIndex !== -1) {\n // If index is unchanged and params are not being set, leave state identity intact\n if (state.index === lastRouteIndex && !action.params) {\n return null;\n }\n\n // Remove the now unused routes at the tail of the routes array\n const routes = state.routes.slice(0, lastRouteIndex + 1);\n const route = state.routes[lastRouteIndex];\n\n // Apply params if provided, otherwise leave route identity intact\n if (action.params) {\n routes[lastRouteIndex] = {\n ...route,\n params: {\n ...route.params,\n ...action.params,\n },\n };\n }\n\n return {\n ...state,\n transitions: {\n ...state.transitions,\n pushing:\n // Return state with new index. Change transitioning routes only if index has changed\n state.index !== lastRouteIndex && action.immediate !== true\n ? [...state.transitions.pushing, route.key]\n : state.transitions.pushing,\n },\n index: lastRouteIndex,\n routes,\n };\n }\n\n if (childRouter) {\n // Delegate to the child router with the given action, or init it\n const childAction =\n action.action ||\n NavigationActions.init({\n params: getParamsForRouteAndAction(action.routeName, action),\n });\n route = {\n params: getParamsForRouteAndAction(action.routeName, action),\n // note(brentvatne): does it make sense to wipe out the params\n // here? or even to add params at all? need more info about what\n // this solves\n ...childRouter.getStateForAction(childAction),\n routeName: action.routeName,\n key: action.key || generateKey(),\n };\n } else {\n // Create the route from scratch\n route = {\n params: getParamsForRouteAndAction(action.routeName, action),\n routeName: action.routeName,\n key: action.key || generateKey(),\n };\n }\n return {\n ...StateUtils.push(state, route),\n transitions: {\n ...state.transitions,\n pushing:\n action.immediate !== true\n ? [...state.transitions.pushing, route.key]\n : state.transitions.pushing,\n },\n };\n } else if (\n action.type === StackActions.PUSH &&\n childRouters[action.routeName] === undefined\n ) {\n // Return the state identity to bubble the action up\n return state;\n }\n\n // Handle navigation to other child routers that are not yet pushed\n if (behavesLikePushAction(action)) {\n const childRouterNames = Object.keys(childRouters);\n for (let i = 0; i < childRouterNames.length; i++) {\n const childRouterName = childRouterNames[i];\n const childRouter = childRouters[childRouterName];\n if (childRouter) {\n // For each child router, start with a blank state\n const initChildRoute = childRouter.getStateForAction(\n NavigationActions.init()\n );\n // Then check to see if the router handles our navigate action\n const navigatedChildRoute = childRouter.getStateForAction(\n action,\n initChildRoute\n );\n let routeToPush = null;\n if (navigatedChildRoute === null) {\n // Push the route if the router has 'handled' the action and returned null\n routeToPush = initChildRoute;\n } else if (navigatedChildRoute !== initChildRoute) {\n // Push the route if the state has changed in response to this navigation\n routeToPush = navigatedChildRoute;\n }\n if (routeToPush) {\n const route = {\n ...routeToPush,\n routeName: childRouterName,\n key: action.key || generateKey(),\n };\n return {\n ...StateUtils.push(state, route),\n transitions: {\n ...state.transitions,\n pushing:\n action.immediate !== true\n ? [...state.transitions.pushing, route.key]\n : state.transitions.pushing,\n },\n };\n }\n }\n }\n }\n\n // Handle pop-to-top behavior. Make sure this happens after children have had a chance to handle the action, so that the inner stack pops to top first.\n if (action.type === StackActions.POP_TO_TOP) {\n // Refuse to handle pop to top if a key is given that doesn't correspond\n // to this router\n if (action.key && state.key !== action.key) {\n return state;\n }\n\n // If we're already at the top, then we return the state with a new\n // identity so that the action is handled by this router.\n if (state.index > 0) {\n return {\n ...state,\n transitions: {\n ...state.transitions,\n popping:\n action.immediate !== true && state.routes.length > 1\n ? [\n ...state.transitions.popping,\n state.routes[state.routes.length - 1].key,\n ]\n : state.transitions.popping,\n },\n index: 0,\n routes: [state.routes[0]],\n };\n }\n return state;\n }\n\n // Handle replace action\n if (action.type === StackActions.REPLACE) {\n let routeIndex;\n\n // If the key param is undefined, set the index to the last route in the stack\n if (action.key === undefined && state.routes.length) {\n routeIndex = state.routes.length - 1;\n } else {\n routeIndex = state.routes.findIndex(r => r.key === action.key);\n }\n\n // Only replace if the key matches one of our routes\n if (routeIndex !== -1) {\n const childRouter = childRouters[action.routeName];\n let childState = {};\n if (childRouter) {\n const childAction =\n action.action ||\n NavigationActions.init({\n params: getParamsForRouteAndAction(action.routeName, action),\n });\n childState = childRouter.getStateForAction(childAction);\n }\n const routes = [...state.routes];\n routes[routeIndex] = {\n params: getParamsForRouteAndAction(action.routeName, action),\n // merge the child state in this order to allow params override\n ...childState,\n routeName: action.routeName,\n key: action.newKey || generateKey(),\n };\n return { ...state, routes };\n }\n }\n\n // Update transitioning state\n if (\n action.type === StackActions.COMPLETE_TRANSITION &&\n (action.key == null || action.key === state.key) &&\n (state.transitions.pushing.length || state.transitions.popping.length)\n ) {\n const { pushing, popping } = state.transitions;\n\n return {\n ...state,\n transitions: {\n pushing: action.toChildKey\n ? pushing.filter(key => key !== action.toChildKey)\n : [],\n popping: action.toChildKey\n ? popping.filter(key => key !== action.toChildKey)\n : [],\n },\n };\n }\n\n if (action.type === NavigationActions.SET_PARAMS) {\n const key = action.key;\n const lastRoute = state.routes.find(route => route.key === key);\n if (lastRoute) {\n const params = {\n ...lastRoute.params,\n ...action.params,\n };\n const routes = [...state.routes];\n routes[state.routes.indexOf(lastRoute)] = {\n ...lastRoute,\n params,\n };\n return {\n ...state,\n routes,\n };\n }\n }\n\n if (action.type === StackActions.RESET) {\n // Only handle reset actions that are unspecified or match this state key\n if (action.key != null && action.key != state.key) {\n // Deliberately use != instead of !== so we can match null with\n // undefined on either the state or the action\n return state;\n }\n const newStackActions = action.actions;\n\n return {\n ...state,\n routes: newStackActions.map(newStackAction => {\n const router = childRouters[newStackAction.routeName];\n\n let childState = {};\n\n if (router) {\n const childAction =\n newStackAction.action ||\n NavigationActions.init({\n params: getParamsForRouteAndAction(\n newStackAction.routeName,\n newStackAction\n ),\n });\n\n childState = router.getStateForAction(childAction);\n }\n\n return {\n params: getParamsForRouteAndAction(\n newStackAction.routeName,\n newStackAction\n ),\n ...childState,\n routeName: newStackAction.routeName,\n key: newStackAction.key || generateKey(),\n };\n }),\n index: action.index,\n };\n }\n\n if (\n action.type === NavigationActions.BACK ||\n action.type === StackActions.POP\n ) {\n const { key, n, immediate } = action;\n let backRoute;\n let backRouteIndex = state.index;\n if (action.type === StackActions.POP && n != null) {\n // determine the index to go back *from*. In this case, n=1 means to go\n // back from state.index, as if it were a normal \"BACK\" action\n backRouteIndex = Math.max(1, state.index - n + 1);\n backRoute = state.routes[state.index];\n } else if (key) {\n backRoute = state.routes.find(route => route.key === key);\n backRouteIndex = state.routes.indexOf(backRoute);\n } else {\n backRoute = state.routes[state.index];\n }\n\n if (backRouteIndex > 0) {\n return {\n ...state,\n routes: state.routes.slice(0, backRouteIndex),\n index: backRouteIndex - 1,\n transitions: {\n ...state.transitions,\n popping:\n immediate !== true && backRoute\n ? [...state.transitions.popping, backRoute.key]\n : state.transitions.popping,\n },\n };\n }\n }\n\n // By this point in the router's state handling logic, we have handled the behavior of the active route, and handled any stack actions.\n // If we haven't returned by now, we should allow non-active child routers to handle this action, and switch to that index if the child state (route) does change..\n\n const keyIndex = action.key ? StateUtils.indexOf(state, action.key) : -1;\n\n // Traverse routes from the top of the stack to the bottom, so the\n // active route has the first opportunity, then the one before it, etc.\n for (let childRoute of state.routes.slice().reverse()) {\n if (childRoute.key === activeChildRoute.key) {\n // skip over the active child because we let it attempt to handle the action earlier\n continue;\n }\n // If a key is provided and in routes state then let's use that\n // knowledge to skip extra getStateForAction calls on other child\n // routers\n if (keyIndex >= 0 && childRoute.key !== action.key) {\n continue;\n }\n let childRouter = childRouters[childRoute.routeName];\n if (childRouter) {\n const route = childRouter.getStateForAction(action, childRoute);\n\n if (route === null) {\n return state;\n } else if (route && route !== childRoute) {\n return StateUtils.replaceAt(\n state,\n childRoute.key,\n route,\n // People don't expect these actions to switch the active route\n // TODO: We should switch to action.preserveFocus: true for drawer in future\n action.preserveFocus || action.type.includes('DRAWER')\n );\n }\n }\n }\n\n return state;\n },\n\n getPathAndParamsForState(state) {\n const route = state.routes[state.index];\n return getPathAndParamsForRoute(route);\n },\n\n getActionForPathAndParams(path, params) {\n return getActionForPathAndParams(path, params);\n },\n\n getScreenOptions: createConfigGetter(\n routeConfigs,\n stackConfig.defaultNavigationOptions\n ),\n };\n};\n"]}
+\ No newline at end of file
+diff --git a/node_modules/@react-navigation/core/lib/commonjs/routers/SwitchRouter.js b/node_modules/@react-navigation/core/lib/commonjs/routers/SwitchRouter.js
+index 71af814..87bc15e 100644
+--- a/node_modules/@react-navigation/core/lib/commonjs/routers/SwitchRouter.js
++++ b/node_modules/@react-navigation/core/lib/commonjs/routers/SwitchRouter.js
+@@ -1,2 +1,2 @@
+-var _interopRequireWildcard=require("@babel/runtime/helpers/interopRequireWildcard");var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var _toConsumableArray2=_interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));var _objectSpread2=_interopRequireDefault(require("@babel/runtime/helpers/objectSpread"));var _invariant=_interopRequireDefault(require("../utils/invariant"));var _getScreenForRouteName=_interopRequireDefault(require("./getScreenForRouteName"));var _createConfigGetter=_interopRequireDefault(require("./createConfigGetter"));var NavigationActions=_interopRequireWildcard(require("../NavigationActions"));var SwitchActions=_interopRequireWildcard(require("./SwitchActions"));var _validateRouteConfigMap=_interopRequireDefault(require("./validateRouteConfigMap"));var _pathUtils=require("./pathUtils");var defaultActionCreators=function defaultActionCreators(){return{};};var _default=function _default(routeConfigs){var config=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};(0,_validateRouteConfigMap.default)(routeConfigs);var order=config.order||Object.keys(routeConfigs);var getCustomActionCreators=config.getCustomActionCreators||defaultActionCreators;var initialRouteParams=config.initialRouteParams;var initialRouteName=config.initialRouteName||order[0];var backBehavior=config.backBehavior||'none';var resetOnBlur=config.hasOwnProperty('resetOnBlur')?config.resetOnBlur:true;var initialRouteIndex=order.indexOf(initialRouteName);if(initialRouteIndex===-1){throw new Error("Invalid initialRouteName '"+initialRouteName+"'."+("Should be one of "+order.map(function(n){return"\""+n+"\"";}).join(', ')));}var childRouters={};order.forEach(function(routeName){childRouters[routeName]=null;var screen=(0,_getScreenForRouteName.default)(routeConfigs,routeName);if(screen.router){childRouters[routeName]=screen.router;}});function getParamsForRoute(routeName,params){var routeConfig=routeConfigs[routeName];if(routeConfig&&routeConfig.params){return(0,_objectSpread2.default)({},routeConfig.params,params);}else{return params;}}var _createPathParser=(0,_pathUtils.createPathParser)(childRouters,routeConfigs,config),getPathAndParamsForRoute=_createPathParser.getPathAndParamsForRoute,_getActionForPathAndParams=_createPathParser.getActionForPathAndParams;function resetChildRoute(routeName){var initialParams=routeName===initialRouteName?initialRouteParams:undefined;var params=getParamsForRoute(routeName,initialParams);var childRouter=childRouters[routeName];if(childRouter){var childAction=NavigationActions.init();return(0,_objectSpread2.default)({},childRouter.getStateForAction(childAction),{key:routeName,routeName:routeName,params:params});}return{key:routeName,routeName:routeName,params:params};}function getNextState(action,prevState,possibleNextState){function updateNextStateHistory(nextState){if(backBehavior!=='history'){return nextState;}var nextRouteKeyHistory=prevState?prevState.routeKeyHistory:[];if(action.type===NavigationActions.NAVIGATE){nextRouteKeyHistory=(0,_toConsumableArray2.default)(nextRouteKeyHistory);var keyToAdd=nextState.routes[nextState.index].key;nextRouteKeyHistory=nextRouteKeyHistory.filter(function(k){return k!==keyToAdd;});nextRouteKeyHistory.push(keyToAdd);}else if(action.type===NavigationActions.BACK){nextRouteKeyHistory=(0,_toConsumableArray2.default)(nextRouteKeyHistory);nextRouteKeyHistory.pop();}return(0,_objectSpread2.default)({},nextState,{routeKeyHistory:nextRouteKeyHistory});}var nextState=possibleNextState;if(prevState&&prevState.index!==possibleNextState.index&&resetOnBlur){var prevRouteName=prevState.routes[prevState.index].routeName;var nextRoutes=(0,_toConsumableArray2.default)(possibleNextState.routes);nextRoutes[prevState.index]=resetChildRoute(prevRouteName);nextState=(0,_objectSpread2.default)({},possibleNextState,{routes:nextRoutes});}return updateNextStateHistory(nextState);}function getInitialState(){var routes=order.map(resetChildRoute);var initialState={routes:routes,index:initialRouteIndex,isTransitioning:false};if(backBehavior==='history'){var initialKey=routes[initialRouteIndex].key;initialState['routeKeyHistory']=[initialKey];}return initialState;}return{childRouters:childRouters,getActionCreators:function getActionCreators(route,stateKey){return getCustomActionCreators(route,stateKey);},getStateForAction:function getStateForAction(action,inputState){var prevState=inputState?(0,_objectSpread2.default)({},inputState):inputState;var state=inputState||getInitialState();var activeChildIndex=state.index;if(action.type===NavigationActions.INIT){var params=action.params;if(params){state.routes=state.routes.map(function(route){return(0,_objectSpread2.default)({},route,{params:(0,_objectSpread2.default)({},route.params,params,route.routeName===initialRouteName?initialRouteParams:null)});});}}if(action.type===SwitchActions.JUMP_TO&&(action.key==null||action.key===state.key)){var _params=action.params;var _index=state.routes.findIndex(function(route){return route.routeName===action.routeName;});if(_index===-1){throw new Error("There is no route named '"+action.routeName+"' in the navigator with the key '"+action.key+"'.\n"+("Must be one of: "+state.routes.map(function(route){return"'"+route.routeName+"'";}).join(',')));}return getNextState(action,prevState,(0,_objectSpread2.default)({},state,{routes:state.routes.map(function(route,i){return i===_index?(0,_objectSpread2.default)({},route,{params:(0,_objectSpread2.default)({},route.params,_params)}):route;}),index:_index}));}var activeChildLastState=state.routes[state.index];var activeChildRouter=childRouters[order[state.index]];if(activeChildRouter){var activeChildState=activeChildRouter.getStateForAction(action,activeChildLastState);if(!activeChildState&&inputState){return null;}if(activeChildState&&activeChildState!==activeChildLastState){var _routes=(0,_toConsumableArray2.default)(state.routes);_routes[state.index]=activeChildState;return getNextState(action,prevState,(0,_objectSpread2.default)({},state,{routes:_routes}));}}var isBackEligible=action.key==null||action.key===activeChildLastState.key;if(action.type===NavigationActions.BACK){if(isBackEligible&&backBehavior==='initialRoute'){activeChildIndex=initialRouteIndex;}else if(isBackEligible&&backBehavior==='order'){activeChildIndex=Math.max(0,activeChildIndex-1);}else if(isBackEligible&&backBehavior==='history'&&state.routeKeyHistory.length>1){var routeKey=state.routeKeyHistory[state.routeKeyHistory.length-2];activeChildIndex=order.indexOf(routeKey);}else{return state;}}var didNavigate=false;if(action.type===NavigationActions.NAVIGATE){didNavigate=!!order.find(function(childId,i){if(childId===action.routeName){activeChildIndex=i;return true;}return false;});if(didNavigate){var childState=state.routes[activeChildIndex];var childRouter=childRouters[action.routeName];var newChildState=childState;if(action.action&&childRouter){var childStateUpdate=childRouter.getStateForAction(action.action,childState);if(childStateUpdate){newChildState=childStateUpdate;}}if(action.params){newChildState=(0,_objectSpread2.default)({},newChildState,{params:(0,_objectSpread2.default)({},newChildState.params||{},action.params)});}if(newChildState!==childState){var _routes2=(0,_toConsumableArray2.default)(state.routes);_routes2[activeChildIndex]=newChildState;var nextState=(0,_objectSpread2.default)({},state,{routes:_routes2,index:activeChildIndex});return getNextState(action,prevState,nextState);}else if(newChildState===childState&&state.index===activeChildIndex&&prevState){return null;}}}if(action.type===NavigationActions.SET_PARAMS){var key=action.key;var lastRoute=state.routes.find(function(route){return route.key===key;});if(lastRoute){var _params2=(0,_objectSpread2.default)({},lastRoute.params,action.params);var _routes3=(0,_toConsumableArray2.default)(state.routes);_routes3[state.routes.indexOf(lastRoute)]=(0,_objectSpread2.default)({},lastRoute,{params:_params2});return getNextState(action,prevState,(0,_objectSpread2.default)({},state,{routes:_routes3}));}}if(activeChildIndex!==state.index){return getNextState(action,prevState,(0,_objectSpread2.default)({},state,{index:activeChildIndex}));}else if(didNavigate&&!inputState){return state;}else if(didNavigate){return(0,_objectSpread2.default)({},state);}var index=state.index;var routes=state.routes;order.find(function(childId,i){var childRouter=childRouters[childId];if(i===index){return false;}var childState=routes[i];if(childRouter){childState=childRouter.getStateForAction(action,childState);}if(!childState){index=i;return true;}if(childState!==routes[i]){routes=(0,_toConsumableArray2.default)(routes);routes[i]=childState;index=i;return true;}return false;});if(action.preserveFocus){index=state.index;}if(index!==state.index||routes!==state.routes){return getNextState(action,prevState,(0,_objectSpread2.default)({},state,{index:index,routes:routes}));}return state;},getComponentForState:function getComponentForState(state){var routeName=state.routes[state.index].routeName;(0,_invariant.default)(routeName,"There is no route defined for index "+state.index+". Check that\n that you passed in a navigation state with a valid tab/screen index.");var childRouter=childRouters[routeName];if(childRouter){return childRouter.getComponentForState(state.routes[state.index]);}return(0,_getScreenForRouteName.default)(routeConfigs,routeName);},getComponentForRouteName:function getComponentForRouteName(routeName){return(0,_getScreenForRouteName.default)(routeConfigs,routeName);},getPathAndParamsForState:function getPathAndParamsForState(state){var route=state.routes[state.index];return getPathAndParamsForRoute(route);},getActionForPathAndParams:function getActionForPathAndParams(path,params){return _getActionForPathAndParams(path,params);},getScreenOptions:(0,_createConfigGetter.default)(routeConfigs,config.defaultNavigationOptions)};};exports.default=_default;
++var _interopRequireWildcard=require("@babel/runtime/helpers/interopRequireWildcard");var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var _toConsumableArray2=_interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));var _objectSpread2=_interopRequireDefault(require("@babel/runtime/helpers/objectSpread"));var _invariant=_interopRequireDefault(require("../utils/invariant"));var _getScreenForRouteName=_interopRequireDefault(require("./getScreenForRouteName"));var _createConfigGetter=_interopRequireDefault(require("./createConfigGetter"));var NavigationActions=_interopRequireWildcard(require("../NavigationActions"));var SwitchActions=_interopRequireWildcard(require("./SwitchActions"));var _validateRouteConfigMap=_interopRequireDefault(require("./validateRouteConfigMap"));var _pathUtils=require("./pathUtils");var defaultActionCreators=function defaultActionCreators(){return{};};var _default=function _default(routeConfigs){var config=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};(0,_validateRouteConfigMap.default)(routeConfigs);var order=config.order||Object.keys(routeConfigs);var getCustomActionCreators=config.getCustomActionCreators||defaultActionCreators;var initialRouteParams=config.initialRouteParams;var initialRouteName=config.initialRouteName||order[0];var backBehavior=config.backBehavior||'none';var resetOnBlur=config.hasOwnProperty('resetOnBlur')?config.resetOnBlur:true;var initialRouteIndex=order.indexOf(initialRouteName);if(initialRouteIndex===-1){throw new Error("Invalid initialRouteName '"+initialRouteName+"'."+("Should be one of "+order.map(function(n){return"\""+n+"\"";}).join(', ')));}var childRouters={};order.forEach(function(routeName){childRouters[routeName]=null;var screen=(0,_getScreenForRouteName.default)(routeConfigs,routeName);if(screen.router){childRouters[routeName]=screen.router;}});function getParamsForRoute(routeName,params){var routeConfig=routeConfigs[routeName];if(routeConfig&&routeConfig.params){return(0,_objectSpread2.default)({},routeConfig.params,params);}else{return params;}}var _createPathParser=(0,_pathUtils.createPathParser)(childRouters,routeConfigs,config),getPathAndParamsForRoute=_createPathParser.getPathAndParamsForRoute,_getActionForPathAndParams=_createPathParser.getActionForPathAndParams;function resetChildRoute(routeName){var initialParams=routeName===initialRouteName?initialRouteParams:undefined;var params=getParamsForRoute(routeName,initialParams);var childRouter=childRouters[routeName];if(childRouter){var childAction=NavigationActions.init();return(0,_objectSpread2.default)({},childRouter.getStateForAction(childAction),{key:routeName,routeName:routeName,params:params});}return{key:routeName,routeName:routeName,params:params};}function getNextState(action,prevState,possibleNextState){function updateNextStateHistory(nextState){if(backBehavior!=='history'){return nextState;}var nextRouteKeyHistory=prevState?prevState.routeKeyHistory:[];if(action.type===NavigationActions.NAVIGATE){nextRouteKeyHistory=(0,_toConsumableArray2.default)(nextRouteKeyHistory);var keyToAdd=nextState.routes[nextState.index].key;nextRouteKeyHistory=nextRouteKeyHistory.filter(function(k){return k!==keyToAdd;});nextRouteKeyHistory.push(keyToAdd);}else if(action.type===NavigationActions.BACK){nextRouteKeyHistory=(0,_toConsumableArray2.default)(nextRouteKeyHistory);nextRouteKeyHistory.pop();}return(0,_objectSpread2.default)({},nextState,{routeKeyHistory:nextRouteKeyHistory});}var nextState=possibleNextState;if(prevState&&prevState.index!==possibleNextState.index&&resetOnBlur){var prevRouteName=prevState.routes[prevState.index].routeName;var nextRoutes=(0,_toConsumableArray2.default)(possibleNextState.routes);nextRoutes[prevState.index]=resetChildRoute(prevRouteName);nextState=(0,_objectSpread2.default)({},possibleNextState,{routes:nextRoutes});}return updateNextStateHistory(nextState);}function getInitialState(){var routes=order.map(resetChildRoute);var initialState={routes:routes,index:initialRouteIndex};if(backBehavior==='history'){var initialKey=routes[initialRouteIndex].key;initialState['routeKeyHistory']=[initialKey];}return initialState;}return{childRouters:childRouters,getActionCreators:function getActionCreators(route,stateKey){return getCustomActionCreators(route,stateKey);},getStateForAction:function getStateForAction(action,inputState){var prevState=inputState?(0,_objectSpread2.default)({},inputState):inputState;var state=inputState||getInitialState();var activeChildIndex=state.index;if(action.type===NavigationActions.INIT){var params=action.params;if(params){state.routes=state.routes.map(function(route){return(0,_objectSpread2.default)({},route,{params:(0,_objectSpread2.default)({},route.params,params,route.routeName===initialRouteName?initialRouteParams:null)});});}}if(action.type===SwitchActions.JUMP_TO&&(action.key==null||action.key===state.key)){var _params=action.params;var _index=state.routes.findIndex(function(route){return route.routeName===action.routeName;});if(_index===-1){throw new Error("There is no route named '"+action.routeName+"' in the navigator with the key '"+action.key+"'.\n"+("Must be one of: "+state.routes.map(function(route){return"'"+route.routeName+"'";}).join(',')));}return getNextState(action,prevState,(0,_objectSpread2.default)({},state,{routes:state.routes.map(function(route,i){return i===_index?(0,_objectSpread2.default)({},route,{params:(0,_objectSpread2.default)({},route.params,_params)}):route;}),index:_index}));}var activeChildLastState=state.routes[state.index];var activeChildRouter=childRouters[order[state.index]];if(activeChildRouter){var activeChildState=activeChildRouter.getStateForAction(action,activeChildLastState);if(!activeChildState&&inputState){return null;}if(activeChildState&&activeChildState!==activeChildLastState){var _routes=(0,_toConsumableArray2.default)(state.routes);_routes[state.index]=activeChildState;return getNextState(action,prevState,(0,_objectSpread2.default)({},state,{routes:_routes}));}}var isBackEligible=action.key==null||action.key===activeChildLastState.key;if(action.type===NavigationActions.BACK){if(isBackEligible&&backBehavior==='initialRoute'){activeChildIndex=initialRouteIndex;}else if(isBackEligible&&backBehavior==='order'){activeChildIndex=Math.max(0,activeChildIndex-1);}else if(isBackEligible&&backBehavior==='history'&&state.routeKeyHistory.length>1){var routeKey=state.routeKeyHistory[state.routeKeyHistory.length-2];activeChildIndex=order.indexOf(routeKey);}else{return state;}}var didNavigate=false;if(action.type===NavigationActions.NAVIGATE){didNavigate=!!order.find(function(childId,i){if(childId===action.routeName){activeChildIndex=i;return true;}return false;});if(didNavigate){var childState=state.routes[activeChildIndex];var childRouter=childRouters[action.routeName];var newChildState=childState;if(action.action&&childRouter){var childStateUpdate=childRouter.getStateForAction(action.action,childState);if(childStateUpdate){newChildState=childStateUpdate;}}if(action.params){newChildState=(0,_objectSpread2.default)({},newChildState,{params:(0,_objectSpread2.default)({},newChildState.params||{},action.params)});}if(newChildState!==childState){var _routes2=(0,_toConsumableArray2.default)(state.routes);_routes2[activeChildIndex]=newChildState;var nextState=(0,_objectSpread2.default)({},state,{routes:_routes2,index:activeChildIndex});return getNextState(action,prevState,nextState);}else if(newChildState===childState&&state.index===activeChildIndex&&prevState){return null;}}}if(action.type===NavigationActions.SET_PARAMS){var key=action.key;var lastRoute=state.routes.find(function(route){return route.key===key;});if(lastRoute){var _params2=(0,_objectSpread2.default)({},lastRoute.params,action.params);var _routes3=(0,_toConsumableArray2.default)(state.routes);_routes3[state.routes.indexOf(lastRoute)]=(0,_objectSpread2.default)({},lastRoute,{params:_params2});return getNextState(action,prevState,(0,_objectSpread2.default)({},state,{routes:_routes3}));}}if(activeChildIndex!==state.index){return getNextState(action,prevState,(0,_objectSpread2.default)({},state,{index:activeChildIndex}));}else if(didNavigate&&!inputState){return state;}else if(didNavigate){return(0,_objectSpread2.default)({},state);}var index=state.index;var routes=state.routes;order.find(function(childId,i){var childRouter=childRouters[childId];if(i===index){return false;}var childState=routes[i];if(childRouter){childState=childRouter.getStateForAction(action,childState);}if(!childState){index=i;return true;}if(childState!==routes[i]){routes=(0,_toConsumableArray2.default)(routes);routes[i]=childState;index=i;return true;}return false;});if(action.preserveFocus){index=state.index;}if(index!==state.index||routes!==state.routes){return getNextState(action,prevState,(0,_objectSpread2.default)({},state,{index:index,routes:routes}));}return state;},getComponentForState:function getComponentForState(state){var routeName=state.routes[state.index].routeName;(0,_invariant.default)(routeName,"There is no route defined for index "+state.index+". Check that\n that you passed in a navigation state with a valid tab/screen index.");var childRouter=childRouters[routeName];if(childRouter){return childRouter.getComponentForState(state.routes[state.index]);}return(0,_getScreenForRouteName.default)(routeConfigs,routeName);},getComponentForRouteName:function getComponentForRouteName(routeName){return(0,_getScreenForRouteName.default)(routeConfigs,routeName);},getPathAndParamsForState:function getPathAndParamsForState(state){var route=state.routes[state.index];return getPathAndParamsForRoute(route);},getActionForPathAndParams:function getActionForPathAndParams(path,params){return _getActionForPathAndParams(path,params);},getScreenOptions:(0,_createConfigGetter.default)(routeConfigs,config.defaultNavigationOptions)};};exports.default=_default;
+ //# sourceMappingURL=SwitchRouter.js.map
+\ No newline at end of file
+diff --git a/node_modules/@react-navigation/core/lib/commonjs/routers/SwitchRouter.js.map b/node_modules/@react-navigation/core/lib/commonjs/routers/SwitchRouter.js.map
+index 31cc2c9..f74b397 100644
+--- a/node_modules/@react-navigation/core/lib/commonjs/routers/SwitchRouter.js.map
++++ b/node_modules/@react-navigation/core/lib/commonjs/routers/SwitchRouter.js.map
+@@ -1 +1 @@
+-{"version":3,"sources":["SwitchRouter.js"],"names":["defaultActionCreators","routeConfigs","config","order","Object","keys","getCustomActionCreators","initialRouteParams","initialRouteName","backBehavior","resetOnBlur","hasOwnProperty","initialRouteIndex","indexOf","Error","map","n","join","childRouters","forEach","routeName","screen","router","getParamsForRoute","params","routeConfig","getPathAndParamsForRoute","getActionForPathAndParams","resetChildRoute","initialParams","undefined","childRouter","childAction","NavigationActions","init","getStateForAction","key","getNextState","action","prevState","possibleNextState","updateNextStateHistory","nextState","nextRouteKeyHistory","routeKeyHistory","type","NAVIGATE","keyToAdd","routes","index","filter","k","push","BACK","pop","prevRouteName","nextRoutes","getInitialState","initialState","isTransitioning","initialKey","getActionCreators","route","stateKey","inputState","state","activeChildIndex","INIT","SwitchActions","JUMP_TO","findIndex","i","activeChildLastState","activeChildRouter","activeChildState","isBackEligible","Math","max","length","routeKey","didNavigate","find","childId","childState","newChildState","childStateUpdate","SET_PARAMS","lastRoute","preserveFocus","getComponentForState","getComponentForRouteName","getPathAndParamsForState","path","getScreenOptions","defaultNavigationOptions"],"mappings":"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","sourcesContent":["import invariant from '../utils/invariant';\nimport getScreenForRouteName from './getScreenForRouteName';\nimport createConfigGetter from './createConfigGetter';\n\nimport * as NavigationActions from '../NavigationActions';\nimport * as SwitchActions from './SwitchActions';\nimport validateRouteConfigMap from './validateRouteConfigMap';\nimport { createPathParser } from './pathUtils';\n\nconst defaultActionCreators = () => ({});\n\nexport default (routeConfigs, config = {}) => {\n // Fail fast on invalid route definitions\n validateRouteConfigMap(routeConfigs);\n\n const order = config.order || Object.keys(routeConfigs);\n\n const getCustomActionCreators =\n config.getCustomActionCreators || defaultActionCreators;\n\n const initialRouteParams = config.initialRouteParams;\n const initialRouteName = config.initialRouteName || order[0];\n const backBehavior = config.backBehavior || 'none';\n const resetOnBlur = config.hasOwnProperty('resetOnBlur')\n ? config.resetOnBlur\n : true;\n\n const initialRouteIndex = order.indexOf(initialRouteName);\n if (initialRouteIndex === -1) {\n throw new Error(\n `Invalid initialRouteName '${initialRouteName}'.` +\n `Should be one of ${order.map(n => `\"${n}\"`).join(', ')}`\n );\n }\n\n const childRouters = {};\n order.forEach(routeName => {\n childRouters[routeName] = null;\n const screen = getScreenForRouteName(routeConfigs, routeName);\n if (screen.router) {\n childRouters[routeName] = screen.router;\n }\n });\n\n function getParamsForRoute(routeName, params) {\n let routeConfig = routeConfigs[routeName];\n if (routeConfig && routeConfig.params) {\n return { ...routeConfig.params, ...params };\n } else {\n return params;\n }\n }\n\n const {\n getPathAndParamsForRoute,\n getActionForPathAndParams,\n } = createPathParser(childRouters, routeConfigs, config);\n\n function resetChildRoute(routeName) {\n let initialParams =\n routeName === initialRouteName ? initialRouteParams : undefined;\n // note(brentvatne): merging initialRouteParams *on top* of default params\n // on the route seems incorrect but it's consistent with existing behavior\n // in stackrouter\n let params = getParamsForRoute(routeName, initialParams);\n const childRouter = childRouters[routeName];\n if (childRouter) {\n const childAction = NavigationActions.init();\n return {\n ...childRouter.getStateForAction(childAction),\n key: routeName,\n routeName,\n params,\n };\n }\n return {\n key: routeName,\n routeName,\n params,\n };\n }\n\n function getNextState(action, prevState, possibleNextState) {\n function updateNextStateHistory(nextState) {\n if (backBehavior !== 'history') {\n return nextState;\n }\n let nextRouteKeyHistory = prevState ? prevState.routeKeyHistory : [];\n if (action.type === NavigationActions.NAVIGATE) {\n nextRouteKeyHistory = [...nextRouteKeyHistory]; // copy\n const keyToAdd = nextState.routes[nextState.index].key;\n nextRouteKeyHistory = nextRouteKeyHistory.filter(k => k !== keyToAdd); // dedup\n nextRouteKeyHistory.push(keyToAdd);\n } else if (action.type === NavigationActions.BACK) {\n nextRouteKeyHistory = [...nextRouteKeyHistory]; // copy\n nextRouteKeyHistory.pop();\n }\n return {\n ...nextState,\n routeKeyHistory: nextRouteKeyHistory,\n };\n }\n\n let nextState = possibleNextState;\n if (\n prevState &&\n prevState.index !== possibleNextState.index &&\n resetOnBlur\n ) {\n const prevRouteName = prevState.routes[prevState.index].routeName;\n const nextRoutes = [...possibleNextState.routes];\n nextRoutes[prevState.index] = resetChildRoute(prevRouteName);\n nextState = {\n ...possibleNextState,\n routes: nextRoutes,\n };\n }\n return updateNextStateHistory(nextState);\n }\n\n function getInitialState() {\n const routes = order.map(resetChildRoute);\n const initialState = {\n routes,\n index: initialRouteIndex,\n isTransitioning: false,\n };\n if (backBehavior === 'history') {\n const initialKey = routes[initialRouteIndex].key;\n initialState['routeKeyHistory'] = [initialKey];\n }\n return initialState;\n }\n\n return {\n childRouters,\n\n getActionCreators(route, stateKey) {\n return getCustomActionCreators(route, stateKey);\n },\n\n getStateForAction(action, inputState) {\n let prevState = inputState ? { ...inputState } : inputState;\n let state = inputState || getInitialState();\n let activeChildIndex = state.index;\n\n if (action.type === NavigationActions.INIT) {\n // NOTE(brentvatne): this seems weird... why are we merging these\n // params into child routes?\n // ---------------------------------------------------------------\n // Merge any params from the action into all the child routes\n const { params } = action;\n if (params) {\n state.routes = state.routes.map(route => ({\n ...route,\n params: {\n ...route.params,\n ...params,\n ...(route.routeName === initialRouteName\n ? initialRouteParams\n : null),\n },\n }));\n }\n }\n\n if (\n action.type === SwitchActions.JUMP_TO &&\n (action.key == null || action.key === state.key)\n ) {\n const { params } = action;\n const index = state.routes.findIndex(\n route => route.routeName === action.routeName\n );\n\n if (index === -1) {\n throw new Error(\n `There is no route named '${\n action.routeName\n }' in the navigator with the key '${action.key}'.\\n` +\n `Must be one of: ${state.routes\n .map(route => `'${route.routeName}'`)\n .join(',')}`\n );\n }\n\n return getNextState(action, prevState, {\n ...state,\n routes: state.routes.map((route, i) =>\n i === index\n ? {\n ...route,\n params: {\n ...route.params,\n ...params,\n },\n }\n : route\n ),\n index,\n });\n }\n\n // Let the current child handle it\n const activeChildLastState = state.routes[state.index];\n const activeChildRouter = childRouters[order[state.index]];\n if (activeChildRouter) {\n const activeChildState = activeChildRouter.getStateForAction(\n action,\n activeChildLastState\n );\n if (!activeChildState && inputState) {\n return null;\n }\n if (activeChildState && activeChildState !== activeChildLastState) {\n const routes = [...state.routes];\n routes[state.index] = activeChildState;\n return getNextState(action, prevState, {\n ...state,\n routes,\n });\n }\n }\n\n // Handle tab changing. Do this after letting the current tab try to\n // handle the action, to allow inner children to change first\n const isBackEligible =\n action.key == null || action.key === activeChildLastState.key;\n if (action.type === NavigationActions.BACK) {\n if (isBackEligible && backBehavior === 'initialRoute') {\n activeChildIndex = initialRouteIndex;\n } else if (isBackEligible && backBehavior === 'order') {\n activeChildIndex = Math.max(0, activeChildIndex - 1);\n }\n // The history contains current route, so we can only go back\n // if there is more than one item in the history\n else if (\n isBackEligible &&\n backBehavior === 'history' &&\n state.routeKeyHistory.length > 1\n ) {\n const routeKey =\n state.routeKeyHistory[state.routeKeyHistory.length - 2];\n activeChildIndex = order.indexOf(routeKey);\n } else {\n return state;\n }\n }\n\n let didNavigate = false;\n if (action.type === NavigationActions.NAVIGATE) {\n didNavigate = !!order.find((childId, i) => {\n if (childId === action.routeName) {\n activeChildIndex = i;\n return true;\n }\n return false;\n });\n if (didNavigate) {\n const childState = state.routes[activeChildIndex];\n const childRouter = childRouters[action.routeName];\n let newChildState = childState;\n\n if (action.action && childRouter) {\n const childStateUpdate = childRouter.getStateForAction(\n action.action,\n childState\n );\n if (childStateUpdate) {\n newChildState = childStateUpdate;\n }\n }\n\n if (action.params) {\n newChildState = {\n ...newChildState,\n params: {\n ...(newChildState.params || {}),\n ...action.params,\n },\n };\n }\n\n if (newChildState !== childState) {\n const routes = [...state.routes];\n routes[activeChildIndex] = newChildState;\n const nextState = {\n ...state,\n routes,\n index: activeChildIndex,\n };\n return getNextState(action, prevState, nextState);\n } else if (\n newChildState === childState &&\n state.index === activeChildIndex &&\n prevState\n ) {\n return null;\n }\n }\n }\n\n if (action.type === NavigationActions.SET_PARAMS) {\n const key = action.key;\n const lastRoute = state.routes.find(route => route.key === key);\n if (lastRoute) {\n const params = {\n ...lastRoute.params,\n ...action.params,\n };\n const routes = [...state.routes];\n routes[state.routes.indexOf(lastRoute)] = {\n ...lastRoute,\n params,\n };\n return getNextState(action, prevState, {\n ...state,\n routes,\n });\n }\n }\n\n if (activeChildIndex !== state.index) {\n return getNextState(action, prevState, {\n ...state,\n index: activeChildIndex,\n });\n } else if (didNavigate && !inputState) {\n return state;\n } else if (didNavigate) {\n return { ...state };\n }\n\n // Let other children handle it and switch to the first child that returns a new state\n let index = state.index;\n let routes = state.routes;\n order.find((childId, i) => {\n const childRouter = childRouters[childId];\n if (i === index) {\n return false;\n }\n let childState = routes[i];\n if (childRouter) {\n childState = childRouter.getStateForAction(action, childState);\n }\n if (!childState) {\n index = i;\n return true;\n }\n if (childState !== routes[i]) {\n routes = [...routes];\n routes[i] = childState;\n index = i;\n return true;\n }\n return false;\n });\n\n // Nested routers can be updated after switching children with actions such as SET_PARAMS\n // and COMPLETE_TRANSITION.\n if (action.preserveFocus) {\n index = state.index;\n }\n\n if (index !== state.index || routes !== state.routes) {\n return getNextState(action, prevState, {\n ...state,\n index,\n routes,\n });\n }\n return state;\n },\n\n getComponentForState(state) {\n const routeName = state.routes[state.index].routeName;\n invariant(\n routeName,\n `There is no route defined for index ${state.index}. Check that\n that you passed in a navigation state with a valid tab/screen index.`\n );\n const childRouter = childRouters[routeName];\n if (childRouter) {\n return childRouter.getComponentForState(state.routes[state.index]);\n }\n return getScreenForRouteName(routeConfigs, routeName);\n },\n\n getComponentForRouteName(routeName) {\n return getScreenForRouteName(routeConfigs, routeName);\n },\n\n getPathAndParamsForState(state) {\n const route = state.routes[state.index];\n return getPathAndParamsForRoute(route);\n },\n\n getActionForPathAndParams(path, params) {\n return getActionForPathAndParams(path, params);\n },\n\n getScreenOptions: createConfigGetter(\n routeConfigs,\n config.defaultNavigationOptions\n ),\n };\n};\n"]}
+\ No newline at end of file
++{"version":3,"sources":["SwitchRouter.js"],"names":["defaultActionCreators","routeConfigs","config","order","Object","keys","getCustomActionCreators","initialRouteParams","initialRouteName","backBehavior","resetOnBlur","hasOwnProperty","initialRouteIndex","indexOf","Error","map","n","join","childRouters","forEach","routeName","screen","router","getParamsForRoute","params","routeConfig","getPathAndParamsForRoute","getActionForPathAndParams","resetChildRoute","initialParams","undefined","childRouter","childAction","NavigationActions","init","getStateForAction","key","getNextState","action","prevState","possibleNextState","updateNextStateHistory","nextState","nextRouteKeyHistory","routeKeyHistory","type","NAVIGATE","keyToAdd","routes","index","filter","k","push","BACK","pop","prevRouteName","nextRoutes","getInitialState","initialState","initialKey","getActionCreators","route","stateKey","inputState","state","activeChildIndex","INIT","SwitchActions","JUMP_TO","findIndex","i","activeChildLastState","activeChildRouter","activeChildState","isBackEligible","Math","max","length","routeKey","didNavigate","find","childId","childState","newChildState","childStateUpdate","SET_PARAMS","lastRoute","preserveFocus","getComponentForState","getComponentForRouteName","getPathAndParamsForState","path","getScreenOptions","defaultNavigationOptions"],"mappings":"sbAAA,qEACA,sFACA,gFAEA,+EACA,sEACA,wFACA,sCAEA,GAAMA,CAAAA,qBAAqB,CAAG,QAAxBA,CAAAA,qBAAwB,SAAO,EAAP,EAA9B,C,aAEe,kBAACC,YAAD,CAA+B,IAAhBC,CAAAA,MAAgB,2DAAP,EAAO,CAE5C,oCAAuBD,YAAvB,EAEA,GAAME,CAAAA,KAAK,CAAGD,MAAM,CAACC,KAAP,EAAgBC,MAAM,CAACC,IAAP,CAAYJ,YAAZ,CAA9B,CAEA,GAAMK,CAAAA,uBAAuB,CAC3BJ,MAAM,CAACI,uBAAP,EAAkCN,qBADpC,CAGA,GAAMO,CAAAA,kBAAkB,CAAGL,MAAM,CAACK,kBAAlC,CACA,GAAMC,CAAAA,gBAAgB,CAAGN,MAAM,CAACM,gBAAP,EAA2BL,KAAK,CAAC,CAAD,CAAzD,CACA,GAAMM,CAAAA,YAAY,CAAGP,MAAM,CAACO,YAAP,EAAuB,MAA5C,CACA,GAAMC,CAAAA,WAAW,CAAGR,MAAM,CAACS,cAAP,CAAsB,aAAtB,EAChBT,MAAM,CAACQ,WADS,CAEhB,IAFJ,CAIA,GAAME,CAAAA,iBAAiB,CAAGT,KAAK,CAACU,OAAN,CAAcL,gBAAd,CAA1B,CACA,GAAII,iBAAiB,GAAK,CAAC,CAA3B,CAA8B,CAC5B,KAAM,IAAIE,CAAAA,KAAJ,CACJ,6BAA6BN,gBAA7B,2BACsBL,KAAK,CAACY,GAAN,CAAU,SAAAC,CAAC,aAAQA,CAAR,OAAX,EAAyBC,IAAzB,CAA8B,IAA9B,CADtB,CADI,CAAN,CAID,CAED,GAAMC,CAAAA,YAAY,CAAG,EAArB,CACAf,KAAK,CAACgB,OAAN,CAAc,SAAAC,SAAS,CAAI,CACzBF,YAAY,CAACE,SAAD,CAAZ,CAA0B,IAA1B,CACA,GAAMC,CAAAA,MAAM,CAAG,mCAAsBpB,YAAtB,CAAoCmB,SAApC,CAAf,CACA,GAAIC,MAAM,CAACC,MAAX,CAAmB,CACjBJ,YAAY,CAACE,SAAD,CAAZ,CAA0BC,MAAM,CAACC,MAAjC,CACD,CACF,CAND,EAQA,QAASC,CAAAA,iBAAT,CAA2BH,SAA3B,CAAsCI,MAAtC,CAA8C,CAC5C,GAAIC,CAAAA,WAAW,CAAGxB,YAAY,CAACmB,SAAD,CAA9B,CACA,GAAIK,WAAW,EAAIA,WAAW,CAACD,MAA/B,CAAuC,CACrC,oCAAYC,WAAW,CAACD,MAAxB,CAAmCA,MAAnC,EACD,CAFD,IAEO,CACL,MAAOA,CAAAA,MAAP,CACD,CACF,CAxC2C,sBA6CxC,gCAAiBN,YAAjB,CAA+BjB,YAA/B,CAA6CC,MAA7C,CA7CwC,CA2C1CwB,wBA3C0C,mBA2C1CA,wBA3C0C,CA4C1CC,0BA5C0C,mBA4C1CA,yBA5C0C,CA+C5C,QAASC,CAAAA,eAAT,CAAyBR,SAAzB,CAAoC,CAClC,GAAIS,CAAAA,aAAa,CACfT,SAAS,GAAKZ,gBAAd,CAAiCD,kBAAjC,CAAsDuB,SADxD,CAKA,GAAIN,CAAAA,MAAM,CAAGD,iBAAiB,CAACH,SAAD,CAAYS,aAAZ,CAA9B,CACA,GAAME,CAAAA,WAAW,CAAGb,YAAY,CAACE,SAAD,CAAhC,CACA,GAAIW,WAAJ,CAAiB,CACf,GAAMC,CAAAA,WAAW,CAAGC,iBAAiB,CAACC,IAAlB,EAApB,CACA,oCACKH,WAAW,CAACI,iBAAZ,CAA8BH,WAA9B,CADL,EAEEI,GAAG,CAAEhB,SAFP,CAGEA,SAAS,CAATA,SAHF,CAIEI,MAAM,CAANA,MAJF,GAMD,CACD,MAAO,CACLY,GAAG,CAAEhB,SADA,CAELA,SAAS,CAATA,SAFK,CAGLI,MAAM,CAANA,MAHK,CAAP,CAKD,CAED,QAASa,CAAAA,YAAT,CAAsBC,MAAtB,CAA8BC,SAA9B,CAAyCC,iBAAzC,CAA4D,CAC1D,QAASC,CAAAA,sBAAT,CAAgCC,SAAhC,CAA2C,CACzC,GAAIjC,YAAY,GAAK,SAArB,CAAgC,CAC9B,MAAOiC,CAAAA,SAAP,CACD,CACD,GAAIC,CAAAA,mBAAmB,CAAGJ,SAAS,CAAGA,SAAS,CAACK,eAAb,CAA+B,EAAlE,CACA,GAAIN,MAAM,CAACO,IAAP,GAAgBZ,iBAAiB,CAACa,QAAtC,CAAgD,CAC9CH,mBAAmB,iCAAOA,mBAAP,CAAnB,CACA,GAAMI,CAAAA,QAAQ,CAAGL,SAAS,CAACM,MAAV,CAAiBN,SAAS,CAACO,KAA3B,EAAkCb,GAAnD,CACAO,mBAAmB,CAAGA,mBAAmB,CAACO,MAApB,CAA2B,SAAAC,CAAC,QAAIA,CAAAA,CAAC,GAAKJ,QAAV,EAA5B,CAAtB,CACAJ,mBAAmB,CAACS,IAApB,CAAyBL,QAAzB,EACD,CALD,IAKO,IAAIT,MAAM,CAACO,IAAP,GAAgBZ,iBAAiB,CAACoB,IAAtC,CAA4C,CACjDV,mBAAmB,iCAAOA,mBAAP,CAAnB,CACAA,mBAAmB,CAACW,GAApB,GACD,CACD,oCACKZ,SADL,EAEEE,eAAe,CAAED,mBAFnB,GAID,CAED,GAAID,CAAAA,SAAS,CAAGF,iBAAhB,CACA,GACED,SAAS,EACTA,SAAS,CAACU,KAAV,GAAoBT,iBAAiB,CAACS,KADtC,EAEAvC,WAHF,CAIE,CACA,GAAM6C,CAAAA,aAAa,CAAGhB,SAAS,CAACS,MAAV,CAAiBT,SAAS,CAACU,KAA3B,EAAkC7B,SAAxD,CACA,GAAMoC,CAAAA,UAAU,iCAAOhB,iBAAiB,CAACQ,MAAzB,CAAhB,CACAQ,UAAU,CAACjB,SAAS,CAACU,KAAX,CAAV,CAA8BrB,eAAe,CAAC2B,aAAD,CAA7C,CACAb,SAAS,+BACJF,iBADI,EAEPQ,MAAM,CAAEQ,UAFD,EAAT,CAID,CACD,MAAOf,CAAAA,sBAAsB,CAACC,SAAD,CAA7B,CACD,CAED,QAASe,CAAAA,eAAT,EAA2B,CACzB,GAAMT,CAAAA,MAAM,CAAG7C,KAAK,CAACY,GAAN,CAAUa,eAAV,CAAf,CACA,GAAM8B,CAAAA,YAAY,CAAG,CACnBV,MAAM,CAANA,MADmB,CAEnBC,KAAK,CAAErC,iBAFY,CAArB,CAIA,GAAIH,YAAY,GAAK,SAArB,CAAgC,CAC9B,GAAMkD,CAAAA,UAAU,CAAGX,MAAM,CAACpC,iBAAD,CAAN,CAA0BwB,GAA7C,CACAsB,YAAY,CAAC,iBAAD,CAAZ,CAAkC,CAACC,UAAD,CAAlC,CACD,CACD,MAAOD,CAAAA,YAAP,CACD,CAED,MAAO,CACLxC,YAAY,CAAZA,YADK,CAGL0C,iBAHK,4BAGaC,KAHb,CAGoBC,QAHpB,CAG8B,CACjC,MAAOxD,CAAAA,uBAAuB,CAACuD,KAAD,CAAQC,QAAR,CAA9B,CACD,CALI,CAOL3B,iBAPK,4BAOaG,MAPb,CAOqByB,UAPrB,CAOiC,CACpC,GAAIxB,CAAAA,SAAS,CAAGwB,UAAU,+BAAQA,UAAR,EAAuBA,UAAjD,CACA,GAAIC,CAAAA,KAAK,CAAGD,UAAU,EAAIN,eAAe,EAAzC,CACA,GAAIQ,CAAAA,gBAAgB,CAAGD,KAAK,CAACf,KAA7B,CAEA,GAAIX,MAAM,CAACO,IAAP,GAAgBZ,iBAAiB,CAACiC,IAAtC,CAA4C,IAKlC1C,CAAAA,MALkC,CAKvBc,MALuB,CAKlCd,MALkC,CAM1C,GAAIA,MAAJ,CAAY,CACVwC,KAAK,CAAChB,MAAN,CAAegB,KAAK,CAAChB,MAAN,CAAajC,GAAb,CAAiB,SAAA8C,KAAK,sCAChCA,KADgC,EAEnCrC,MAAM,+BACDqC,KAAK,CAACrC,MADL,CAEDA,MAFC,CAGAqC,KAAK,CAACzC,SAAN,GAAoBZ,gBAApB,CACAD,kBADA,CAEA,IALA,CAF6B,IAAtB,CAAf,CAUD,CACF,CAED,GACE+B,MAAM,CAACO,IAAP,GAAgBsB,aAAa,CAACC,OAA9B,GACC9B,MAAM,CAACF,GAAP,EAAc,IAAd,EAAsBE,MAAM,CAACF,GAAP,GAAe4B,KAAK,CAAC5B,GAD5C,CADF,CAGE,IACQZ,CAAAA,OADR,CACmBc,MADnB,CACQd,MADR,CAEA,GAAMyB,CAAAA,MAAK,CAAGe,KAAK,CAAChB,MAAN,CAAaqB,SAAb,CACZ,SAAAR,KAAK,QAAIA,CAAAA,KAAK,CAACzC,SAAN,GAAoBkB,MAAM,CAAClB,SAA/B,EADO,CAAd,CAIA,GAAI6B,MAAK,GAAK,CAAC,CAAf,CAAkB,CAChB,KAAM,IAAInC,CAAAA,KAAJ,CACJ,4BACEwB,MAAM,CAAClB,SADT,qCAEoCkB,MAAM,CAACF,GAF3C,4BAGqB4B,KAAK,CAAChB,MAAN,CAChBjC,GADgB,CACZ,SAAA8C,KAAK,YAAQA,KAAK,CAACzC,SAAd,MADO,EAEhBH,IAFgB,CAEX,GAFW,CAHrB,CADI,CAAN,CAQD,CAED,MAAOoB,CAAAA,YAAY,CAACC,MAAD,CAASC,SAAT,+BACdyB,KADc,EAEjBhB,MAAM,CAAEgB,KAAK,CAAChB,MAAN,CAAajC,GAAb,CAAiB,SAAC8C,KAAD,CAAQS,CAAR,QACvBA,CAAAA,CAAC,GAAKrB,MAAN,+BAESY,KAFT,EAGMrC,MAAM,+BACDqC,KAAK,CAACrC,MADL,CAEDA,OAFC,CAHZ,GAQIqC,KATmB,EAAjB,CAFS,CAajBZ,KAAK,CAALA,MAbiB,GAAnB,CAeD,CAGD,GAAMsB,CAAAA,oBAAoB,CAAGP,KAAK,CAAChB,MAAN,CAAagB,KAAK,CAACf,KAAnB,CAA7B,CACA,GAAMuB,CAAAA,iBAAiB,CAAGtD,YAAY,CAACf,KAAK,CAAC6D,KAAK,CAACf,KAAP,CAAN,CAAtC,CACA,GAAIuB,iBAAJ,CAAuB,CACrB,GAAMC,CAAAA,gBAAgB,CAAGD,iBAAiB,CAACrC,iBAAlB,CACvBG,MADuB,CAEvBiC,oBAFuB,CAAzB,CAIA,GAAI,CAACE,gBAAD,EAAqBV,UAAzB,CAAqC,CACnC,MAAO,KAAP,CACD,CACD,GAAIU,gBAAgB,EAAIA,gBAAgB,GAAKF,oBAA7C,CAAmE,CACjE,GAAMvB,CAAAA,OAAM,iCAAOgB,KAAK,CAAChB,MAAb,CAAZ,CACAA,OAAM,CAACgB,KAAK,CAACf,KAAP,CAAN,CAAsBwB,gBAAtB,CACA,MAAOpC,CAAAA,YAAY,CAACC,MAAD,CAASC,SAAT,+BACdyB,KADc,EAEjBhB,MAAM,CAANA,OAFiB,GAAnB,CAID,CACF,CAID,GAAM0B,CAAAA,cAAc,CAClBpC,MAAM,CAACF,GAAP,EAAc,IAAd,EAAsBE,MAAM,CAACF,GAAP,GAAemC,oBAAoB,CAACnC,GAD5D,CAEA,GAAIE,MAAM,CAACO,IAAP,GAAgBZ,iBAAiB,CAACoB,IAAtC,CAA4C,CAC1C,GAAIqB,cAAc,EAAIjE,YAAY,GAAK,cAAvC,CAAuD,CACrDwD,gBAAgB,CAAGrD,iBAAnB,CACD,CAFD,IAEO,IAAI8D,cAAc,EAAIjE,YAAY,GAAK,OAAvC,CAAgD,CACrDwD,gBAAgB,CAAGU,IAAI,CAACC,GAAL,CAAS,CAAT,CAAYX,gBAAgB,CAAG,CAA/B,CAAnB,CACD,CAFM,IAKF,IACHS,cAAc,EACdjE,YAAY,GAAK,SADjB,EAEAuD,KAAK,CAACpB,eAAN,CAAsBiC,MAAtB,CAA+B,CAH5B,CAIH,CACA,GAAMC,CAAAA,QAAQ,CACZd,KAAK,CAACpB,eAAN,CAAsBoB,KAAK,CAACpB,eAAN,CAAsBiC,MAAtB,CAA+B,CAArD,CADF,CAEAZ,gBAAgB,CAAG9D,KAAK,CAACU,OAAN,CAAciE,QAAd,CAAnB,CACD,CARI,IAQE,CACL,MAAOd,CAAAA,KAAP,CACD,CACF,CAED,GAAIe,CAAAA,WAAW,CAAG,KAAlB,CACA,GAAIzC,MAAM,CAACO,IAAP,GAAgBZ,iBAAiB,CAACa,QAAtC,CAAgD,CAC9CiC,WAAW,CAAG,CAAC,CAAC5E,KAAK,CAAC6E,IAAN,CAAW,SAACC,OAAD,CAAUX,CAAV,CAAgB,CACzC,GAAIW,OAAO,GAAK3C,MAAM,CAAClB,SAAvB,CAAkC,CAChC6C,gBAAgB,CAAGK,CAAnB,CACA,MAAO,KAAP,CACD,CACD,MAAO,MAAP,CACD,CANe,CAAhB,CAOA,GAAIS,WAAJ,CAAiB,CACf,GAAMG,CAAAA,UAAU,CAAGlB,KAAK,CAAChB,MAAN,CAAaiB,gBAAb,CAAnB,CACA,GAAMlC,CAAAA,WAAW,CAAGb,YAAY,CAACoB,MAAM,CAAClB,SAAR,CAAhC,CACA,GAAI+D,CAAAA,aAAa,CAAGD,UAApB,CAEA,GAAI5C,MAAM,CAACA,MAAP,EAAiBP,WAArB,CAAkC,CAChC,GAAMqD,CAAAA,gBAAgB,CAAGrD,WAAW,CAACI,iBAAZ,CACvBG,MAAM,CAACA,MADgB,CAEvB4C,UAFuB,CAAzB,CAIA,GAAIE,gBAAJ,CAAsB,CACpBD,aAAa,CAAGC,gBAAhB,CACD,CACF,CAED,GAAI9C,MAAM,CAACd,MAAX,CAAmB,CACjB2D,aAAa,+BACRA,aADQ,EAEX3D,MAAM,+BACA2D,aAAa,CAAC3D,MAAd,EAAwB,EADxB,CAEDc,MAAM,CAACd,MAFN,CAFK,EAAb,CAOD,CAED,GAAI2D,aAAa,GAAKD,UAAtB,CAAkC,CAChC,GAAMlC,CAAAA,QAAM,iCAAOgB,KAAK,CAAChB,MAAb,CAAZ,CACAA,QAAM,CAACiB,gBAAD,CAAN,CAA2BkB,aAA3B,CACA,GAAMzC,CAAAA,SAAS,+BACVsB,KADU,EAEbhB,MAAM,CAANA,QAFa,CAGbC,KAAK,CAAEgB,gBAHM,EAAf,CAKA,MAAO5B,CAAAA,YAAY,CAACC,MAAD,CAASC,SAAT,CAAoBG,SAApB,CAAnB,CACD,CATD,IASO,IACLyC,aAAa,GAAKD,UAAlB,EACAlB,KAAK,CAACf,KAAN,GAAgBgB,gBADhB,EAEA1B,SAHK,CAIL,CACA,MAAO,KAAP,CACD,CACF,CACF,CAED,GAAID,MAAM,CAACO,IAAP,GAAgBZ,iBAAiB,CAACoD,UAAtC,CAAkD,CAChD,GAAMjD,CAAAA,GAAG,CAAGE,MAAM,CAACF,GAAnB,CACA,GAAMkD,CAAAA,SAAS,CAAGtB,KAAK,CAAChB,MAAN,CAAagC,IAAb,CAAkB,SAAAnB,KAAK,QAAIA,CAAAA,KAAK,CAACzB,GAAN,GAAcA,GAAlB,EAAvB,CAAlB,CACA,GAAIkD,SAAJ,CAAe,CACb,GAAM9D,CAAAA,QAAM,+BACP8D,SAAS,CAAC9D,MADH,CAEPc,MAAM,CAACd,MAFA,CAAZ,CAIA,GAAMwB,CAAAA,QAAM,iCAAOgB,KAAK,CAAChB,MAAb,CAAZ,CACAA,QAAM,CAACgB,KAAK,CAAChB,MAAN,CAAanC,OAAb,CAAqByE,SAArB,CAAD,CAAN,+BACKA,SADL,EAEE9D,MAAM,CAANA,QAFF,GAIA,MAAOa,CAAAA,YAAY,CAACC,MAAD,CAASC,SAAT,+BACdyB,KADc,EAEjBhB,MAAM,CAANA,QAFiB,GAAnB,CAID,CACF,CAED,GAAIiB,gBAAgB,GAAKD,KAAK,CAACf,KAA/B,CAAsC,CACpC,MAAOZ,CAAAA,YAAY,CAACC,MAAD,CAASC,SAAT,+BACdyB,KADc,EAEjBf,KAAK,CAAEgB,gBAFU,GAAnB,CAID,CALD,IAKO,IAAIc,WAAW,EAAI,CAAChB,UAApB,CAAgC,CACrC,MAAOC,CAAAA,KAAP,CACD,CAFM,IAEA,IAAIe,WAAJ,CAAiB,CACtB,oCAAYf,KAAZ,EACD,CAGD,GAAIf,CAAAA,KAAK,CAAGe,KAAK,CAACf,KAAlB,CACA,GAAID,CAAAA,MAAM,CAAGgB,KAAK,CAAChB,MAAnB,CACA7C,KAAK,CAAC6E,IAAN,CAAW,SAACC,OAAD,CAAUX,CAAV,CAAgB,CACzB,GAAMvC,CAAAA,WAAW,CAAGb,YAAY,CAAC+D,OAAD,CAAhC,CACA,GAAIX,CAAC,GAAKrB,KAAV,CAAiB,CACf,MAAO,MAAP,CACD,CACD,GAAIiC,CAAAA,UAAU,CAAGlC,MAAM,CAACsB,CAAD,CAAvB,CACA,GAAIvC,WAAJ,CAAiB,CACfmD,UAAU,CAAGnD,WAAW,CAACI,iBAAZ,CAA8BG,MAA9B,CAAsC4C,UAAtC,CAAb,CACD,CACD,GAAI,CAACA,UAAL,CAAiB,CACfjC,KAAK,CAAGqB,CAAR,CACA,MAAO,KAAP,CACD,CACD,GAAIY,UAAU,GAAKlC,MAAM,CAACsB,CAAD,CAAzB,CAA8B,CAC5BtB,MAAM,iCAAOA,MAAP,CAAN,CACAA,MAAM,CAACsB,CAAD,CAAN,CAAYY,UAAZ,CACAjC,KAAK,CAAGqB,CAAR,CACA,MAAO,KAAP,CACD,CACD,MAAO,MAAP,CACD,CApBD,EAwBA,GAAIhC,MAAM,CAACiD,aAAX,CAA0B,CACxBtC,KAAK,CAAGe,KAAK,CAACf,KAAd,CACD,CAED,GAAIA,KAAK,GAAKe,KAAK,CAACf,KAAhB,EAAyBD,MAAM,GAAKgB,KAAK,CAAChB,MAA9C,CAAsD,CACpD,MAAOX,CAAAA,YAAY,CAACC,MAAD,CAASC,SAAT,+BACdyB,KADc,EAEjBf,KAAK,CAALA,KAFiB,CAGjBD,MAAM,CAANA,MAHiB,GAAnB,CAKD,CACD,MAAOgB,CAAAA,KAAP,CACD,CA9OI,CAgPLwB,oBAhPK,+BAgPgBxB,KAhPhB,CAgPuB,CAC1B,GAAM5C,CAAAA,SAAS,CAAG4C,KAAK,CAAChB,MAAN,CAAagB,KAAK,CAACf,KAAnB,EAA0B7B,SAA5C,CACA,uBACEA,SADF,wCAEyC4C,KAAK,CAACf,KAF/C,+FAKA,GAAMlB,CAAAA,WAAW,CAAGb,YAAY,CAACE,SAAD,CAAhC,CACA,GAAIW,WAAJ,CAAiB,CACf,MAAOA,CAAAA,WAAW,CAACyD,oBAAZ,CAAiCxB,KAAK,CAAChB,MAAN,CAAagB,KAAK,CAACf,KAAnB,CAAjC,CAAP,CACD,CACD,MAAO,mCAAsBhD,YAAtB,CAAoCmB,SAApC,CAAP,CACD,CA5PI,CA8PLqE,wBA9PK,mCA8PoBrE,SA9PpB,CA8P+B,CAClC,MAAO,mCAAsBnB,YAAtB,CAAoCmB,SAApC,CAAP,CACD,CAhQI,CAkQLsE,wBAlQK,mCAkQoB1B,KAlQpB,CAkQ2B,CAC9B,GAAMH,CAAAA,KAAK,CAAGG,KAAK,CAAChB,MAAN,CAAagB,KAAK,CAACf,KAAnB,CAAd,CACA,MAAOvB,CAAAA,wBAAwB,CAACmC,KAAD,CAA/B,CACD,CArQI,CAuQLlC,yBAvQK,oCAuQqBgE,IAvQrB,CAuQ2BnE,MAvQ3B,CAuQmC,CACtC,MAAOG,CAAAA,0BAAyB,CAACgE,IAAD,CAAOnE,MAAP,CAAhC,CACD,CAzQI,CA2QLoE,gBAAgB,CAAE,gCAChB3F,YADgB,CAEhBC,MAAM,CAAC2F,wBAFS,CA3Qb,CAAP,CAgRD,C","sourcesContent":["import invariant from '../utils/invariant';\nimport getScreenForRouteName from './getScreenForRouteName';\nimport createConfigGetter from './createConfigGetter';\n\nimport * as NavigationActions from '../NavigationActions';\nimport * as SwitchActions from './SwitchActions';\nimport validateRouteConfigMap from './validateRouteConfigMap';\nimport { createPathParser } from './pathUtils';\n\nconst defaultActionCreators = () => ({});\n\nexport default (routeConfigs, config = {}) => {\n // Fail fast on invalid route definitions\n validateRouteConfigMap(routeConfigs);\n\n const order = config.order || Object.keys(routeConfigs);\n\n const getCustomActionCreators =\n config.getCustomActionCreators || defaultActionCreators;\n\n const initialRouteParams = config.initialRouteParams;\n const initialRouteName = config.initialRouteName || order[0];\n const backBehavior = config.backBehavior || 'none';\n const resetOnBlur = config.hasOwnProperty('resetOnBlur')\n ? config.resetOnBlur\n : true;\n\n const initialRouteIndex = order.indexOf(initialRouteName);\n if (initialRouteIndex === -1) {\n throw new Error(\n `Invalid initialRouteName '${initialRouteName}'.` +\n `Should be one of ${order.map(n => `\"${n}\"`).join(', ')}`\n );\n }\n\n const childRouters = {};\n order.forEach(routeName => {\n childRouters[routeName] = null;\n const screen = getScreenForRouteName(routeConfigs, routeName);\n if (screen.router) {\n childRouters[routeName] = screen.router;\n }\n });\n\n function getParamsForRoute(routeName, params) {\n let routeConfig = routeConfigs[routeName];\n if (routeConfig && routeConfig.params) {\n return { ...routeConfig.params, ...params };\n } else {\n return params;\n }\n }\n\n const {\n getPathAndParamsForRoute,\n getActionForPathAndParams,\n } = createPathParser(childRouters, routeConfigs, config);\n\n function resetChildRoute(routeName) {\n let initialParams =\n routeName === initialRouteName ? initialRouteParams : undefined;\n // note(brentvatne): merging initialRouteParams *on top* of default params\n // on the route seems incorrect but it's consistent with existing behavior\n // in stackrouter\n let params = getParamsForRoute(routeName, initialParams);\n const childRouter = childRouters[routeName];\n if (childRouter) {\n const childAction = NavigationActions.init();\n return {\n ...childRouter.getStateForAction(childAction),\n key: routeName,\n routeName,\n params,\n };\n }\n return {\n key: routeName,\n routeName,\n params,\n };\n }\n\n function getNextState(action, prevState, possibleNextState) {\n function updateNextStateHistory(nextState) {\n if (backBehavior !== 'history') {\n return nextState;\n }\n let nextRouteKeyHistory = prevState ? prevState.routeKeyHistory : [];\n if (action.type === NavigationActions.NAVIGATE) {\n nextRouteKeyHistory = [...nextRouteKeyHistory]; // copy\n const keyToAdd = nextState.routes[nextState.index].key;\n nextRouteKeyHistory = nextRouteKeyHistory.filter(k => k !== keyToAdd); // dedup\n nextRouteKeyHistory.push(keyToAdd);\n } else if (action.type === NavigationActions.BACK) {\n nextRouteKeyHistory = [...nextRouteKeyHistory]; // copy\n nextRouteKeyHistory.pop();\n }\n return {\n ...nextState,\n routeKeyHistory: nextRouteKeyHistory,\n };\n }\n\n let nextState = possibleNextState;\n if (\n prevState &&\n prevState.index !== possibleNextState.index &&\n resetOnBlur\n ) {\n const prevRouteName = prevState.routes[prevState.index].routeName;\n const nextRoutes = [...possibleNextState.routes];\n nextRoutes[prevState.index] = resetChildRoute(prevRouteName);\n nextState = {\n ...possibleNextState,\n routes: nextRoutes,\n };\n }\n return updateNextStateHistory(nextState);\n }\n\n function getInitialState() {\n const routes = order.map(resetChildRoute);\n const initialState = {\n routes,\n index: initialRouteIndex,\n };\n if (backBehavior === 'history') {\n const initialKey = routes[initialRouteIndex].key;\n initialState['routeKeyHistory'] = [initialKey];\n }\n return initialState;\n }\n\n return {\n childRouters,\n\n getActionCreators(route, stateKey) {\n return getCustomActionCreators(route, stateKey);\n },\n\n getStateForAction(action, inputState) {\n let prevState = inputState ? { ...inputState } : inputState;\n let state = inputState || getInitialState();\n let activeChildIndex = state.index;\n\n if (action.type === NavigationActions.INIT) {\n // NOTE(brentvatne): this seems weird... why are we merging these\n // params into child routes?\n // ---------------------------------------------------------------\n // Merge any params from the action into all the child routes\n const { params } = action;\n if (params) {\n state.routes = state.routes.map(route => ({\n ...route,\n params: {\n ...route.params,\n ...params,\n ...(route.routeName === initialRouteName\n ? initialRouteParams\n : null),\n },\n }));\n }\n }\n\n if (\n action.type === SwitchActions.JUMP_TO &&\n (action.key == null || action.key === state.key)\n ) {\n const { params } = action;\n const index = state.routes.findIndex(\n route => route.routeName === action.routeName\n );\n\n if (index === -1) {\n throw new Error(\n `There is no route named '${\n action.routeName\n }' in the navigator with the key '${action.key}'.\\n` +\n `Must be one of: ${state.routes\n .map(route => `'${route.routeName}'`)\n .join(',')}`\n );\n }\n\n return getNextState(action, prevState, {\n ...state,\n routes: state.routes.map((route, i) =>\n i === index\n ? {\n ...route,\n params: {\n ...route.params,\n ...params,\n },\n }\n : route\n ),\n index,\n });\n }\n\n // Let the current child handle it\n const activeChildLastState = state.routes[state.index];\n const activeChildRouter = childRouters[order[state.index]];\n if (activeChildRouter) {\n const activeChildState = activeChildRouter.getStateForAction(\n action,\n activeChildLastState\n );\n if (!activeChildState && inputState) {\n return null;\n }\n if (activeChildState && activeChildState !== activeChildLastState) {\n const routes = [...state.routes];\n routes[state.index] = activeChildState;\n return getNextState(action, prevState, {\n ...state,\n routes,\n });\n }\n }\n\n // Handle tab changing. Do this after letting the current tab try to\n // handle the action, to allow inner children to change first\n const isBackEligible =\n action.key == null || action.key === activeChildLastState.key;\n if (action.type === NavigationActions.BACK) {\n if (isBackEligible && backBehavior === 'initialRoute') {\n activeChildIndex = initialRouteIndex;\n } else if (isBackEligible && backBehavior === 'order') {\n activeChildIndex = Math.max(0, activeChildIndex - 1);\n }\n // The history contains current route, so we can only go back\n // if there is more than one item in the history\n else if (\n isBackEligible &&\n backBehavior === 'history' &&\n state.routeKeyHistory.length > 1\n ) {\n const routeKey =\n state.routeKeyHistory[state.routeKeyHistory.length - 2];\n activeChildIndex = order.indexOf(routeKey);\n } else {\n return state;\n }\n }\n\n let didNavigate = false;\n if (action.type === NavigationActions.NAVIGATE) {\n didNavigate = !!order.find((childId, i) => {\n if (childId === action.routeName) {\n activeChildIndex = i;\n return true;\n }\n return false;\n });\n if (didNavigate) {\n const childState = state.routes[activeChildIndex];\n const childRouter = childRouters[action.routeName];\n let newChildState = childState;\n\n if (action.action && childRouter) {\n const childStateUpdate = childRouter.getStateForAction(\n action.action,\n childState\n );\n if (childStateUpdate) {\n newChildState = childStateUpdate;\n }\n }\n\n if (action.params) {\n newChildState = {\n ...newChildState,\n params: {\n ...(newChildState.params || {}),\n ...action.params,\n },\n };\n }\n\n if (newChildState !== childState) {\n const routes = [...state.routes];\n routes[activeChildIndex] = newChildState;\n const nextState = {\n ...state,\n routes,\n index: activeChildIndex,\n };\n return getNextState(action, prevState, nextState);\n } else if (\n newChildState === childState &&\n state.index === activeChildIndex &&\n prevState\n ) {\n return null;\n }\n }\n }\n\n if (action.type === NavigationActions.SET_PARAMS) {\n const key = action.key;\n const lastRoute = state.routes.find(route => route.key === key);\n if (lastRoute) {\n const params = {\n ...lastRoute.params,\n ...action.params,\n };\n const routes = [...state.routes];\n routes[state.routes.indexOf(lastRoute)] = {\n ...lastRoute,\n params,\n };\n return getNextState(action, prevState, {\n ...state,\n routes,\n });\n }\n }\n\n if (activeChildIndex !== state.index) {\n return getNextState(action, prevState, {\n ...state,\n index: activeChildIndex,\n });\n } else if (didNavigate && !inputState) {\n return state;\n } else if (didNavigate) {\n return { ...state };\n }\n\n // Let other children handle it and switch to the first child that returns a new state\n let index = state.index;\n let routes = state.routes;\n order.find((childId, i) => {\n const childRouter = childRouters[childId];\n if (i === index) {\n return false;\n }\n let childState = routes[i];\n if (childRouter) {\n childState = childRouter.getStateForAction(action, childState);\n }\n if (!childState) {\n index = i;\n return true;\n }\n if (childState !== routes[i]) {\n routes = [...routes];\n routes[i] = childState;\n index = i;\n return true;\n }\n return false;\n });\n\n // Nested routers can be updated after switching children with actions such as SET_PARAMS\n // and COMPLETE_TRANSITION.\n if (action.preserveFocus) {\n index = state.index;\n }\n\n if (index !== state.index || routes !== state.routes) {\n return getNextState(action, prevState, {\n ...state,\n index,\n routes,\n });\n }\n return state;\n },\n\n getComponentForState(state) {\n const routeName = state.routes[state.index].routeName;\n invariant(\n routeName,\n `There is no route defined for index ${state.index}. Check that\n that you passed in a navigation state with a valid tab/screen index.`\n );\n const childRouter = childRouters[routeName];\n if (childRouter) {\n return childRouter.getComponentForState(state.routes[state.index]);\n }\n return getScreenForRouteName(routeConfigs, routeName);\n },\n\n getComponentForRouteName(routeName) {\n return getScreenForRouteName(routeConfigs, routeName);\n },\n\n getPathAndParamsForState(state) {\n const route = state.routes[state.index];\n return getPathAndParamsForRoute(route);\n },\n\n getActionForPathAndParams(path, params) {\n return getActionForPathAndParams(path, params);\n },\n\n getScreenOptions: createConfigGetter(\n routeConfigs,\n config.defaultNavigationOptions\n ),\n };\n};\n"]}
+\ No newline at end of file
+diff --git a/node_modules/@react-navigation/core/lib/commonjs/routers/__tests__/PathHandling-test.js b/node_modules/@react-navigation/core/lib/commonjs/routers/__tests__/PathHandling-test.js
+index e5aba17..9c0fc6d 100644
+--- a/node_modules/@react-navigation/core/lib/commonjs/routers/__tests__/PathHandling-test.js
++++ b/node_modules/@react-navigation/core/lib/commonjs/routers/__tests__/PathHandling-test.js
+@@ -1,2 +1,2 @@
+-var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _interopRequireWildcard=require("@babel/runtime/helpers/interopRequireWildcard");var _classCallCheck2=_interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));var _createClass2=_interopRequireDefault(require("@babel/runtime/helpers/createClass"));var _possibleConstructorReturn2=_interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));var _getPrototypeOf2=_interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));var _inherits2=_interopRequireDefault(require("@babel/runtime/helpers/inherits"));var _react=_interopRequireDefault(require("react"));var _SwitchRouter=_interopRequireDefault(require("../SwitchRouter"));var _StackRouter=_interopRequireDefault(require("../StackRouter"));var _TabRouter=_interopRequireDefault(require("../TabRouter"));var NavigationActions=_interopRequireWildcard(require("../../NavigationActions"));var _KeyGenerator=require("../KeyGenerator.ts");var _jsxFileName="/Users/satya/Workspace/Callstack/react-navigation-core/src/routers/__tests__/PathHandling-test.js";beforeEach(function(){(0,_KeyGenerator._TESTING_ONLY_normalize_keys)();});var performRouterTest=function performRouterTest(createTestRouter){var ListScreen=function ListScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:16}});};var ProfileNavigator=function ProfileNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:18}});};ProfileNavigator.router=(0,_StackRouter.default)({list:{path:'list/:id',screen:ListScreen}});var MainNavigator=function MainNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:26}});};MainNavigator.router=(0,_StackRouter.default)({profile:{path:'p/:id',screen:ProfileNavigator}});var LoginScreen=function LoginScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:34}});};var AuthNavigator=function AuthNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:36}});};AuthNavigator.router=(0,_StackRouter.default)({login:{screen:LoginScreen}});var BarScreen=function BarScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:43}});};var FooNavigator=function(_React$Component){(0,_inherits2.default)(FooNavigator,_React$Component);function FooNavigator(){(0,_classCallCheck2.default)(this,FooNavigator);return(0,_possibleConstructorReturn2.default)(this,(0,_getPrototypeOf2.default)(FooNavigator).apply(this,arguments));}(0,_createClass2.default)(FooNavigator,[{key:"render",value:function render(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:53}});}}]);return FooNavigator;}(_react.default.Component);FooNavigator.router=(0,_StackRouter.default)({bar:{path:'b/:barThing',screen:BarScreen}});var PersonScreen=function PersonScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:57}});};var testRouter=createTestRouter({main:{screen:MainNavigator},baz:{path:null,screen:FooNavigator},auth:{screen:AuthNavigator},person:{path:'people/:id',screen:PersonScreen},foo:{path:'fo/:fooThing',screen:FooNavigator}});it('Handles empty URIs with empty action',function(){var router=createTestRouter({Foo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:84}});}},Bar:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:87}});}}},{initialRouteName:'Bar',initialRouteParams:{foo:42}});var action=router.getActionForPathAndParams('');expect(action).toEqual(null);var state=router.getStateForAction(action||NavigationActions.init());expect(state.routes[state.index]).toEqual(expect.objectContaining({routeName:'Bar',params:{foo:42}}));});it('Handles paths with several params',function(){var router=createTestRouter({Person:{path:'people/:person',screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:107}});}},Task:{path:'people/:person/tasks/:task',screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:111}});}},ThingA:{path:'things/:good',screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:115}});}},Thing:{path:'things/:good/:thing',screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:119}});}}});var action=router.getActionForPathAndParams('people/brent/tasks/everything');expect(action).toEqual({type:NavigationActions.NAVIGATE,routeName:'Task',params:{person:'brent',task:'everything'}});var action1=router.getActionForPathAndParams('people/lucy');expect(action1).toEqual({type:NavigationActions.NAVIGATE,routeName:'Person',params:{person:'lucy'}});var action2=router.getActionForPathAndParams('things/foo/bar');expect(action2).toEqual({type:NavigationActions.NAVIGATE,routeName:'Thing',params:{good:'foo',thing:'bar'}});var action3=router.getActionForPathAndParams('things/foo');expect(action3).toEqual({type:NavigationActions.NAVIGATE,routeName:'ThingA',params:{good:'foo'}});});it('Handles empty path configuration',function(){var router=createTestRouter({Foo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:156}});}},Bar:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:159}});},path:''}});var action=router.getActionForPathAndParams('');expect(action).toEqual({type:NavigationActions.NAVIGATE,routeName:'Bar',params:{}});});it('Handles wildcard path configuration',function(){var router=createTestRouter({Foo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:174}});}},Bar:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:177}});},path:':something'}});var action=router.getActionForPathAndParams('');expect(action).toEqual(null);var action1=router.getActionForPathAndParams('Foo');expect(action1).toEqual({type:NavigationActions.NAVIGATE,routeName:'Foo',params:{}});var action2=router.getActionForPathAndParams('asdf');expect(action2).toEqual({type:NavigationActions.NAVIGATE,routeName:'Bar',params:{something:'asdf'}});});it('Null path behavior',function(){var ScreenA=function ScreenA(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:199}});};var router=createTestRouter({Bar:{screen:ScreenA},Foo:{path:null,screen:ScreenA},Baz:{path:'',screen:ScreenA}});var action0=router.getActionForPathAndParams('test/random',{});expect(action0).toBe(null);var action1=router.getActionForPathAndParams('',{});expect(action1.routeName).toBe('Baz');var state1=router.getStateForAction(action1);expect(state1.routes[state1.index].routeName).toBe('Baz');});it('Multiple null path sub routers path behavior',function(){var ScreenA=function ScreenA(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:223}});};var ScreenB=function ScreenB(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:224}});};ScreenB.router=createTestRouter({Foo:ScreenA});var ScreenC=function ScreenC(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:228}});};ScreenC.router=createTestRouter({Bar:{path:'bar/:id',screen:ScreenA},Empty:{path:'',screen:ScreenA}});var router=createTestRouter({A:{screen:ScreenA},B:{path:null,screen:ScreenB},C:{path:null,screen:ScreenC}});var action0=router.getActionForPathAndParams('Foo',{});expect(action0.routeName).toBe('B');expect(action0.action.routeName).toBe('Foo');var action1=router.getActionForPathAndParams('',{});expect(action1.routeName).toBe('C');expect(action1.action.routeName).toBe('Empty');var action2=router.getActionForPathAndParams('A',{});expect(action2.routeName).toBe('A');var action3=router.getActionForPathAndParams('bar/asdf',{});expect(action3.routeName).toBe('C');expect(action3.action.routeName).toBe('Bar');expect(action3.action.params.id).toBe('asdf');});it('Null and empty string path sub routers behavior',function(){var ScreenA=function ScreenA(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:270}});};var ScreenB=function ScreenB(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:271}});};ScreenB.router=createTestRouter({Foo:ScreenA,Baz:{screen:ScreenA,path:''}});var ScreenC=function ScreenC(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:279}});};ScreenC.router=createTestRouter({Boo:ScreenA,Bar:ScreenA,Baz:{screen:ScreenA,path:''}});var router=createTestRouter({B:{path:null,screen:ScreenB},C:{path:'',screen:ScreenC}});var action0=router.getActionForPathAndParams('',{});expect(action0.routeName).toBe('C');expect(action0.action.routeName).toBe('Baz');var action1=router.getActionForPathAndParams('Foo',{});expect(action1.routeName).toBe('B');expect(action1.action.routeName).toBe('Foo');var action2=router.getActionForPathAndParams('Bar',{});expect(action2.routeName).toBe('C');expect(action2.action.routeName).toBe('Bar');var action3=router.getActionForPathAndParams('unknown',{});expect(action3).toBe(null);});it('Empty path acts as wildcard for nested router',function(){var ScreenA=function ScreenA(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:315}});};var Foo=function Foo(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:316}});};var ScreenC=function ScreenC(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:317}});};ScreenC.router=createTestRouter({Boo:ScreenA,Bar:ScreenA});Foo.router=createTestRouter({Quo:ScreenA,Qux:{screen:ScreenC,path:''}});var router=createTestRouter({Bar:{screen:ScreenA},Foo:Foo});var action0=router.getActionForPathAndParams('Foo/Bar',{});expect(action0.routeName).toBe('Foo');expect(action0.action.routeName).toBe('Qux');expect(action0.action.action.routeName).toBe('Bar');});it('Gets deep path with pure wildcard match',function(){var ScreenA=function ScreenA(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:342}});};var ScreenB=function ScreenB(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:343}});};var ScreenC=function ScreenC(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:344}});};ScreenA.router=createTestRouter({Boo:{path:'boo',screen:ScreenC},Baz:{path:'baz/:bazId',screen:ScreenB}});ScreenC.router=createTestRouter({Boo2:{path:'',screen:ScreenB}});var router=createTestRouter({Foo:{path:null,screen:ScreenA},Bar:{screen:ScreenB}});{var state={index:0,routes:[{index:1,key:'Foo',routeName:'Foo',params:{id:'123'},routes:[{index:0,key:'Boo',routeName:'Boo',routes:[{key:'Boo2',routeName:'Boo2'}]},{key:'Baz',routeName:'Baz',params:{bazId:'321'}}]},{key:'Bar',routeName:'Bar'}]};var _router$getPathAndPar=router.getPathAndParamsForState(state),path=_router$getPathAndPar.path,params=_router$getPathAndPar.params;expect(path).toEqual('baz/321');expect(params.id).toEqual('123');}{var _state={index:0,routes:[{index:0,key:'Foo',routeName:'Foo',params:{id:'123'},routes:[{index:0,key:'Boo',routeName:'Boo',routes:[{key:'Boo2',routeName:'Boo2'}]},{key:'Baz',routeName:'Baz',params:{bazId:'321'}}]},{key:'Bar',routeName:'Bar'}]};var _router$getPathAndPar2=router.getPathAndParamsForState(_state),_path=_router$getPathAndPar2.path,_params=_router$getPathAndPar2.params;expect(_path).toEqual('boo');expect(_params).toEqual({id:'123'});}});it('URI encoded string get passed to deep link',function(){var uri='people/2018%2F02%2F07';var action=testRouter.getActionForPathAndParams(uri);expect(action).toEqual({routeName:'person',params:{id:'2018/02/07'},type:NavigationActions.NAVIGATE});var malformedUri='people/%E0%A4%A';var action2=testRouter.getActionForPathAndParams(malformedUri);expect(action2).toEqual({routeName:'person',params:{id:'%E0%A4%A'},type:NavigationActions.NAVIGATE});});it('URI encoded path param gets parsed and correctly printed',function(){var action=testRouter.getActionForPathAndParams('people/Henry%20L');expect(action).toEqual({routeName:'person',params:{id:'Henry L'},type:NavigationActions.NAVIGATE});var s=testRouter.getStateForAction(action);var out=testRouter.getPathAndParamsForState(s);expect(out.path).toEqual('people/Henry%20L');expect(out.params).toEqual({});});it('Querystring params get passed to nested deep link',function(){var action=testRouter.getActionForPathAndParams('main/p/4/list/10259959195',{code:'test',foo:'bar'});expect(action).toEqual({type:NavigationActions.NAVIGATE,routeName:'main',params:{code:'test',foo:'bar'},action:{type:NavigationActions.NAVIGATE,routeName:'profile',params:{id:'4',code:'test',foo:'bar'},action:{type:NavigationActions.NAVIGATE,routeName:'list',params:{id:'10259959195',code:'test',foo:'bar'}}}});var action2=testRouter.getActionForPathAndParams('main/p/4/list/10259959195',{code:'',foo:'bar'});expect(action2).toEqual({type:NavigationActions.NAVIGATE,routeName:'main',params:{code:'',foo:'bar'},action:{type:NavigationActions.NAVIGATE,routeName:'profile',params:{id:'4',code:'',foo:'bar'},action:{type:NavigationActions.NAVIGATE,routeName:'list',params:{id:'10259959195',code:'',foo:'bar'}}}});});it('paths option on router overrides path from route config',function(){var router=createTestRouter({main:{screen:MainNavigator},baz:{path:null,screen:FooNavigator}},{paths:{baz:'overridden'}});var action=router.getActionForPathAndParams('overridden',{});expect(action.type).toEqual(NavigationActions.NAVIGATE);expect(action.routeName).toEqual('baz');});it('paths option set as null on router overrides path from route config',function(){var router=createTestRouter({main:{screen:MainNavigator},baz:{path:'bazPath',screen:FooNavigator}},{paths:{baz:null}});var action=router.getActionForPathAndParams('b/noBaz',{});expect(action.type).toEqual(NavigationActions.NAVIGATE);expect(action.routeName).toEqual('baz');});};describe('Path handling for stack router',function(){performRouterTest(_StackRouter.default);});describe('Path handling for switch router',function(){performRouterTest(_SwitchRouter.default);});it('Handles nested switch routers',function(){var AScreen=function AScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:567}});};var DocsNavigator=function DocsNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:568}});};DocsNavigator.router=(0,_SwitchRouter.default)({A:AScreen,B:AScreen,C:AScreen});DocsNavigator.path='docs';var router=(0,_SwitchRouter.default)({Docs:DocsNavigator,D:AScreen});var action=router.getActionForPathAndParams('docs/B',{});expect(action.type).toEqual(NavigationActions.NAVIGATE);expect(action.routeName).toEqual('Docs');expect(action.action.type).toEqual(NavigationActions.NAVIGATE);expect(action.action.routeName).toEqual('B');});var performRouteNameAsPathDisabledTest=function performRouteNameAsPathDisabledTest(createTestRouter){var BScreen=function BScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:588}});};var NestedNavigator=function NestedNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:589}});};NestedNavigator.router=createTestRouter({B:{screen:BScreen,path:'baz'}});var router=createTestRouter({A:NestedNavigator},{disableRouteNamePaths:true});it('disableRouteNamePaths option on router prevent the default path to be the routeName',function(){var action=router.getActionForPathAndParams('baz',{});expect(action.routeName).toBe('A');expect(action.action.routeName).toBe('B');});};describe('Stack router handles disableRouteNamePaths',function(){performRouteNameAsPathDisabledTest(_StackRouter.default);});describe('Switch router handles disableRouteNamePaths',function(){performRouteNameAsPathDisabledTest(_SwitchRouter.default);});describe('Tab router handles disableRouteNamePaths',function(){performRouteNameAsPathDisabledTest(_TabRouter.default);});
++var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _interopRequireWildcard=require("@babel/runtime/helpers/interopRequireWildcard");var _classCallCheck2=_interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));var _createClass2=_interopRequireDefault(require("@babel/runtime/helpers/createClass"));var _possibleConstructorReturn2=_interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));var _getPrototypeOf2=_interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));var _inherits2=_interopRequireDefault(require("@babel/runtime/helpers/inherits"));var _react=_interopRequireDefault(require("react"));var _SwitchRouter=_interopRequireDefault(require("../SwitchRouter"));var _StackRouter=_interopRequireDefault(require("../StackRouter"));var _TabRouter=_interopRequireDefault(require("../TabRouter"));var NavigationActions=_interopRequireWildcard(require("../../NavigationActions"));var _KeyGenerator=require("../KeyGenerator.ts");var _jsxFileName="/Users/brentvatne/coding/react-navigation-core/src/routers/__tests__/PathHandling-test.js";beforeEach(function(){(0,_KeyGenerator._TESTING_ONLY_normalize_keys)();});var performRouterTest=function performRouterTest(createTestRouter){var ListScreen=function ListScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:16}});};var ProfileNavigator=function ProfileNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:18}});};ProfileNavigator.router=(0,_StackRouter.default)({list:{path:'list/:id',screen:ListScreen}});var MainNavigator=function MainNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:26}});};MainNavigator.router=(0,_StackRouter.default)({profile:{path:'p/:id',screen:ProfileNavigator}});var LoginScreen=function LoginScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:34}});};var AuthNavigator=function AuthNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:36}});};AuthNavigator.router=(0,_StackRouter.default)({login:{screen:LoginScreen}});var BarScreen=function BarScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:43}});};var FooNavigator=function(_React$Component){(0,_inherits2.default)(FooNavigator,_React$Component);function FooNavigator(){(0,_classCallCheck2.default)(this,FooNavigator);return(0,_possibleConstructorReturn2.default)(this,(0,_getPrototypeOf2.default)(FooNavigator).apply(this,arguments));}(0,_createClass2.default)(FooNavigator,[{key:"render",value:function render(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:53}});}}]);return FooNavigator;}(_react.default.Component);FooNavigator.router=(0,_StackRouter.default)({bar:{path:'b/:barThing',screen:BarScreen}});var PersonScreen=function PersonScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:57}});};var testRouter=createTestRouter({main:{screen:MainNavigator},baz:{path:null,screen:FooNavigator},auth:{screen:AuthNavigator},person:{path:'people/:id',screen:PersonScreen},foo:{path:'fo/:fooThing',screen:FooNavigator}});it('Handles empty URIs with empty action',function(){var router=createTestRouter({Foo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:84}});}},Bar:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:87}});}}},{initialRouteName:'Bar',initialRouteParams:{foo:42}});var action=router.getActionForPathAndParams('');expect(action).toEqual(null);var state=router.getStateForAction(action||NavigationActions.init());expect(state.routes[state.index]).toEqual(expect.objectContaining({routeName:'Bar',params:{foo:42}}));});it('Handles paths with several params',function(){var router=createTestRouter({Person:{path:'people/:person',screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:107}});}},Task:{path:'people/:person/tasks/:task',screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:111}});}},ThingA:{path:'things/:good',screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:115}});}},Thing:{path:'things/:good/:thing',screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:119}});}}});var action=router.getActionForPathAndParams('people/brent/tasks/everything');expect(action).toEqual({type:NavigationActions.NAVIGATE,routeName:'Task',params:{person:'brent',task:'everything'}});var action1=router.getActionForPathAndParams('people/lucy');expect(action1).toEqual({type:NavigationActions.NAVIGATE,routeName:'Person',params:{person:'lucy'}});var action2=router.getActionForPathAndParams('things/foo/bar');expect(action2).toEqual({type:NavigationActions.NAVIGATE,routeName:'Thing',params:{good:'foo',thing:'bar'}});var action3=router.getActionForPathAndParams('things/foo');expect(action3).toEqual({type:NavigationActions.NAVIGATE,routeName:'ThingA',params:{good:'foo'}});});it('Handles empty path configuration',function(){var router=createTestRouter({Foo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:156}});}},Bar:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:159}});},path:''}});var action=router.getActionForPathAndParams('');expect(action).toEqual({type:NavigationActions.NAVIGATE,routeName:'Bar',params:{}});});it('Handles wildcard path configuration',function(){var router=createTestRouter({Foo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:174}});}},Bar:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:177}});},path:':something'}});var action=router.getActionForPathAndParams('');expect(action).toEqual(null);var action1=router.getActionForPathAndParams('Foo');expect(action1).toEqual({type:NavigationActions.NAVIGATE,routeName:'Foo',params:{}});var action2=router.getActionForPathAndParams('asdf');expect(action2).toEqual({type:NavigationActions.NAVIGATE,routeName:'Bar',params:{something:'asdf'}});});it('Null path behavior',function(){var ScreenA=function ScreenA(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:199}});};var router=createTestRouter({Bar:{screen:ScreenA},Foo:{path:null,screen:ScreenA},Baz:{path:'',screen:ScreenA}});var action0=router.getActionForPathAndParams('test/random',{});expect(action0).toBe(null);var action1=router.getActionForPathAndParams('',{});expect(action1.routeName).toBe('Baz');var state1=router.getStateForAction(action1);expect(state1.routes[state1.index].routeName).toBe('Baz');});it('Multiple null path sub routers path behavior',function(){var ScreenA=function ScreenA(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:223}});};var ScreenB=function ScreenB(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:224}});};ScreenB.router=createTestRouter({Foo:ScreenA});var ScreenC=function ScreenC(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:228}});};ScreenC.router=createTestRouter({Bar:{path:'bar/:id',screen:ScreenA},Empty:{path:'',screen:ScreenA}});var router=createTestRouter({A:{screen:ScreenA},B:{path:null,screen:ScreenB},C:{path:null,screen:ScreenC}});var action0=router.getActionForPathAndParams('Foo',{});expect(action0.routeName).toBe('B');expect(action0.action.routeName).toBe('Foo');var action1=router.getActionForPathAndParams('',{});expect(action1.routeName).toBe('C');expect(action1.action.routeName).toBe('Empty');var action2=router.getActionForPathAndParams('A',{});expect(action2.routeName).toBe('A');var action3=router.getActionForPathAndParams('bar/asdf',{});expect(action3.routeName).toBe('C');expect(action3.action.routeName).toBe('Bar');expect(action3.action.params.id).toBe('asdf');});it('Null and empty string path sub routers behavior',function(){var ScreenA=function ScreenA(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:270}});};var ScreenB=function ScreenB(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:271}});};ScreenB.router=createTestRouter({Foo:ScreenA,Baz:{screen:ScreenA,path:''}});var ScreenC=function ScreenC(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:279}});};ScreenC.router=createTestRouter({Boo:ScreenA,Bar:ScreenA,Baz:{screen:ScreenA,path:''}});var router=createTestRouter({B:{path:null,screen:ScreenB},C:{path:'',screen:ScreenC}});var action0=router.getActionForPathAndParams('',{});expect(action0.routeName).toBe('C');expect(action0.action.routeName).toBe('Baz');var action1=router.getActionForPathAndParams('Foo',{});expect(action1.routeName).toBe('B');expect(action1.action.routeName).toBe('Foo');var action2=router.getActionForPathAndParams('Bar',{});expect(action2.routeName).toBe('C');expect(action2.action.routeName).toBe('Bar');var action3=router.getActionForPathAndParams('unknown',{});expect(action3).toBe(null);});it('Empty path acts as wildcard for nested router',function(){var ScreenA=function ScreenA(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:315}});};var Foo=function Foo(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:316}});};var ScreenC=function ScreenC(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:317}});};ScreenC.router=createTestRouter({Boo:ScreenA,Bar:ScreenA});Foo.router=createTestRouter({Quo:ScreenA,Qux:{screen:ScreenC,path:''}});var router=createTestRouter({Bar:{screen:ScreenA},Foo:Foo});var action0=router.getActionForPathAndParams('Foo/Bar',{});expect(action0.routeName).toBe('Foo');expect(action0.action.routeName).toBe('Qux');expect(action0.action.action.routeName).toBe('Bar');});it('Gets deep path with pure wildcard match',function(){var ScreenA=function ScreenA(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:342}});};var ScreenB=function ScreenB(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:343}});};var ScreenC=function ScreenC(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:344}});};ScreenA.router=createTestRouter({Boo:{path:'boo',screen:ScreenC},Baz:{path:'baz/:bazId',screen:ScreenB}});ScreenC.router=createTestRouter({Boo2:{path:'',screen:ScreenB}});var router=createTestRouter({Foo:{path:null,screen:ScreenA},Bar:{screen:ScreenB}});{var state={index:0,routes:[{index:1,key:'Foo',routeName:'Foo',params:{id:'123'},routes:[{index:0,key:'Boo',routeName:'Boo',routes:[{key:'Boo2',routeName:'Boo2'}]},{key:'Baz',routeName:'Baz',params:{bazId:'321'}}]},{key:'Bar',routeName:'Bar'}]};var _router$getPathAndPar=router.getPathAndParamsForState(state),path=_router$getPathAndPar.path,params=_router$getPathAndPar.params;expect(path).toEqual('baz/321');expect(params.id).toEqual('123');}{var _state={index:0,routes:[{index:0,key:'Foo',routeName:'Foo',params:{id:'123'},routes:[{index:0,key:'Boo',routeName:'Boo',routes:[{key:'Boo2',routeName:'Boo2'}]},{key:'Baz',routeName:'Baz',params:{bazId:'321'}}]},{key:'Bar',routeName:'Bar'}]};var _router$getPathAndPar2=router.getPathAndParamsForState(_state),_path=_router$getPathAndPar2.path,_params=_router$getPathAndPar2.params;expect(_path).toEqual('boo');expect(_params).toEqual({id:'123'});}});it('URI encoded string get passed to deep link',function(){var uri='people/2018%2F02%2F07';var action=testRouter.getActionForPathAndParams(uri);expect(action).toEqual({routeName:'person',params:{id:'2018/02/07'},type:NavigationActions.NAVIGATE});var malformedUri='people/%E0%A4%A';var action2=testRouter.getActionForPathAndParams(malformedUri);expect(action2).toEqual({routeName:'person',params:{id:'%E0%A4%A'},type:NavigationActions.NAVIGATE});});it('URI encoded path param gets parsed and correctly printed',function(){var action=testRouter.getActionForPathAndParams('people/Henry%20L');expect(action).toEqual({routeName:'person',params:{id:'Henry L'},type:NavigationActions.NAVIGATE});var s=testRouter.getStateForAction(action);var out=testRouter.getPathAndParamsForState(s);expect(out.path).toEqual('people/Henry%20L');expect(out.params).toEqual({});});it('Querystring params get passed to nested deep link',function(){var action=testRouter.getActionForPathAndParams('main/p/4/list/10259959195',{code:'test',foo:'bar'});expect(action).toEqual({type:NavigationActions.NAVIGATE,routeName:'main',params:{code:'test',foo:'bar'},action:{type:NavigationActions.NAVIGATE,routeName:'profile',params:{id:'4',code:'test',foo:'bar'},action:{type:NavigationActions.NAVIGATE,routeName:'list',params:{id:'10259959195',code:'test',foo:'bar'}}}});var action2=testRouter.getActionForPathAndParams('main/p/4/list/10259959195',{code:'',foo:'bar'});expect(action2).toEqual({type:NavigationActions.NAVIGATE,routeName:'main',params:{code:'',foo:'bar'},action:{type:NavigationActions.NAVIGATE,routeName:'profile',params:{id:'4',code:'',foo:'bar'},action:{type:NavigationActions.NAVIGATE,routeName:'list',params:{id:'10259959195',code:'',foo:'bar'}}}});});it('paths option on router overrides path from route config',function(){var router=createTestRouter({main:{screen:MainNavigator},baz:{path:null,screen:FooNavigator}},{paths:{baz:'overridden'}});var action=router.getActionForPathAndParams('overridden',{});expect(action.type).toEqual(NavigationActions.NAVIGATE);expect(action.routeName).toEqual('baz');});it('paths option set as null on router overrides path from route config',function(){var router=createTestRouter({main:{screen:MainNavigator},baz:{path:'bazPath',screen:FooNavigator}},{paths:{baz:null}});var action=router.getActionForPathAndParams('b/noBaz',{});expect(action.type).toEqual(NavigationActions.NAVIGATE);expect(action.routeName).toEqual('baz');});};describe('Path handling for stack router',function(){performRouterTest(_StackRouter.default);});describe('Path handling for switch router',function(){performRouterTest(_SwitchRouter.default);});it('Handles nested switch routers',function(){var AScreen=function AScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:567}});};var DocsNavigator=function DocsNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:568}});};DocsNavigator.router=(0,_SwitchRouter.default)({A:AScreen,B:AScreen,C:AScreen});DocsNavigator.path='docs';var router=(0,_SwitchRouter.default)({Docs:DocsNavigator,D:AScreen});var action=router.getActionForPathAndParams('docs/B',{});expect(action.type).toEqual(NavigationActions.NAVIGATE);expect(action.routeName).toEqual('Docs');expect(action.action.type).toEqual(NavigationActions.NAVIGATE);expect(action.action.routeName).toEqual('B');});var performRouteNameAsPathDisabledTest=function performRouteNameAsPathDisabledTest(createTestRouter){var BScreen=function BScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:588}});};var NestedNavigator=function NestedNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:589}});};NestedNavigator.router=createTestRouter({B:{screen:BScreen,path:'baz'}});var router=createTestRouter({A:NestedNavigator},{disableRouteNamePaths:true});it('disableRouteNamePaths option on router prevent the default path to be the routeName',function(){var action=router.getActionForPathAndParams('baz',{});expect(action.routeName).toBe('A');expect(action.action.routeName).toBe('B');});};describe('Stack router handles disableRouteNamePaths',function(){performRouteNameAsPathDisabledTest(_StackRouter.default);});describe('Switch router handles disableRouteNamePaths',function(){performRouteNameAsPathDisabledTest(_SwitchRouter.default);});describe('Tab router handles disableRouteNamePaths',function(){performRouteNameAsPathDisabledTest(_TabRouter.default);});
+ //# sourceMappingURL=PathHandling-test.js.map
+\ No newline at end of file
+diff --git a/node_modules/@react-navigation/core/lib/commonjs/routers/__tests__/PathHandling-test.js.map b/node_modules/@react-navigation/core/lib/commonjs/routers/__tests__/PathHandling-test.js.map
+index 62ae70e..82a4df7 100644
+--- a/node_modules/@react-navigation/core/lib/commonjs/routers/__tests__/PathHandling-test.js.map
++++ b/node_modules/@react-navigation/core/lib/commonjs/routers/__tests__/PathHandling-test.js.map
+@@ -1 +1 @@
+-{"version":3,"sources":["PathHandling-test.js"],"names":["beforeEach","performRouterTest","createTestRouter","ListScreen","ProfileNavigator","router","list","path","screen","MainNavigator","profile","LoginScreen","AuthNavigator","login","BarScreen","FooNavigator","React","Component","bar","PersonScreen","testRouter","main","baz","auth","person","foo","it","Foo","Bar","initialRouteName","initialRouteParams","action","getActionForPathAndParams","expect","toEqual","state","getStateForAction","NavigationActions","init","routes","index","objectContaining","routeName","params","Person","Task","ThingA","Thing","type","NAVIGATE","task","action1","action2","good","thing","action3","something","ScreenA","Baz","action0","toBe","state1","ScreenB","ScreenC","Empty","A","B","C","id","Boo","Quo","Qux","Boo2","key","bazId","getPathAndParamsForState","uri","malformedUri","s","out","code","paths","describe","StackRouter","SwitchRouter","AScreen","DocsNavigator","Docs","D","performRouteNameAsPathDisabledTest","BScreen","NestedNavigator","disableRouteNamePaths","TabRouter"],"mappings":"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","sourcesContent":["/* eslint no-shadow:0, react/no-multi-comp:0, react/display-name:0 */\n\nimport React from 'react';\n\nimport SwitchRouter from '../SwitchRouter';\nimport StackRouter from '../StackRouter';\nimport TabRouter from '../TabRouter';\nimport * as NavigationActions from '../../NavigationActions';\nimport { _TESTING_ONLY_normalize_keys } from '../KeyGenerator.ts';\n\nbeforeEach(() => {\n _TESTING_ONLY_normalize_keys();\n});\n\nconst performRouterTest = createTestRouter => {\n const ListScreen = () => ;\n\n const ProfileNavigator = () => ;\n ProfileNavigator.router = StackRouter({\n list: {\n path: 'list/:id',\n screen: ListScreen,\n },\n });\n\n const MainNavigator = () => ;\n MainNavigator.router = StackRouter({\n profile: {\n path: 'p/:id',\n screen: ProfileNavigator,\n },\n });\n\n const LoginScreen = () => ;\n\n const AuthNavigator = () => ;\n AuthNavigator.router = StackRouter({\n login: {\n screen: LoginScreen,\n },\n });\n\n const BarScreen = () => ;\n\n class FooNavigator extends React.Component {\n static router = StackRouter({\n bar: {\n path: 'b/:barThing',\n screen: BarScreen,\n },\n });\n render() {\n return ;\n }\n }\n\n const PersonScreen = () => ;\n\n const testRouter = createTestRouter({\n main: {\n screen: MainNavigator,\n },\n baz: {\n path: null,\n screen: FooNavigator,\n },\n auth: {\n screen: AuthNavigator,\n },\n person: {\n path: 'people/:id',\n screen: PersonScreen,\n },\n foo: {\n path: 'fo/:fooThing',\n screen: FooNavigator,\n },\n });\n\n it('Handles empty URIs with empty action', () => {\n const router = createTestRouter(\n {\n Foo: {\n screen: () => ,\n },\n Bar: {\n screen: () => ,\n },\n },\n { initialRouteName: 'Bar', initialRouteParams: { foo: 42 } }\n );\n const action = router.getActionForPathAndParams('');\n expect(action).toEqual(null);\n const state = router.getStateForAction(action || NavigationActions.init());\n expect(state.routes[state.index]).toEqual(\n expect.objectContaining({\n routeName: 'Bar',\n params: { foo: 42 },\n })\n );\n });\n\n it('Handles paths with several params', () => {\n const router = createTestRouter({\n Person: {\n path: 'people/:person',\n screen: () => ,\n },\n Task: {\n path: 'people/:person/tasks/:task',\n screen: () => ,\n },\n ThingA: {\n path: 'things/:good',\n screen: () => ,\n },\n Thing: {\n path: 'things/:good/:thing',\n screen: () => ,\n },\n });\n const action = router.getActionForPathAndParams(\n 'people/brent/tasks/everything'\n );\n expect(action).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'Task',\n params: { person: 'brent', task: 'everything' },\n });\n\n const action1 = router.getActionForPathAndParams('people/lucy');\n expect(action1).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'Person',\n params: { person: 'lucy' },\n });\n\n const action2 = router.getActionForPathAndParams('things/foo/bar');\n expect(action2).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'Thing',\n params: { good: 'foo', thing: 'bar' },\n });\n\n const action3 = router.getActionForPathAndParams('things/foo');\n expect(action3).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'ThingA',\n params: { good: 'foo' },\n });\n });\n\n it('Handles empty path configuration', () => {\n const router = createTestRouter({\n Foo: {\n screen: () => ,\n },\n Bar: {\n screen: () => ,\n path: '',\n },\n });\n const action = router.getActionForPathAndParams('');\n expect(action).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n params: {},\n });\n });\n\n it('Handles wildcard path configuration', () => {\n const router = createTestRouter({\n Foo: {\n screen: () => ,\n },\n Bar: {\n screen: () => ,\n path: ':something',\n },\n });\n const action = router.getActionForPathAndParams('');\n expect(action).toEqual(null);\n\n const action1 = router.getActionForPathAndParams('Foo');\n expect(action1).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'Foo',\n params: {},\n });\n const action2 = router.getActionForPathAndParams('asdf');\n expect(action2).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n params: { something: 'asdf' },\n });\n });\n\n it('Null path behavior', () => {\n const ScreenA = () => ;\n const router = createTestRouter({\n Bar: {\n screen: ScreenA,\n },\n Foo: {\n path: null,\n screen: ScreenA,\n },\n Baz: {\n path: '',\n screen: ScreenA,\n },\n });\n const action0 = router.getActionForPathAndParams('test/random', {});\n expect(action0).toBe(null);\n\n const action1 = router.getActionForPathAndParams('', {});\n expect(action1.routeName).toBe('Baz');\n const state1 = router.getStateForAction(action1);\n expect(state1.routes[state1.index].routeName).toBe('Baz');\n });\n\n it('Multiple null path sub routers path behavior', () => {\n const ScreenA = () => ;\n const ScreenB = () => ;\n ScreenB.router = createTestRouter({\n Foo: ScreenA,\n });\n const ScreenC = () => ;\n ScreenC.router = createTestRouter({\n Bar: {\n path: 'bar/:id',\n screen: ScreenA,\n },\n Empty: {\n path: '',\n screen: ScreenA,\n },\n });\n const router = createTestRouter({\n A: {\n screen: ScreenA,\n },\n B: {\n path: null,\n screen: ScreenB,\n },\n C: {\n path: null,\n screen: ScreenC,\n },\n });\n const action0 = router.getActionForPathAndParams('Foo', {});\n expect(action0.routeName).toBe('B');\n expect(action0.action.routeName).toBe('Foo');\n\n const action1 = router.getActionForPathAndParams('', {});\n expect(action1.routeName).toBe('C');\n expect(action1.action.routeName).toBe('Empty');\n\n const action2 = router.getActionForPathAndParams('A', {});\n expect(action2.routeName).toBe('A');\n\n const action3 = router.getActionForPathAndParams('bar/asdf', {});\n expect(action3.routeName).toBe('C');\n expect(action3.action.routeName).toBe('Bar');\n expect(action3.action.params.id).toBe('asdf');\n });\n\n it('Null and empty string path sub routers behavior', () => {\n const ScreenA = () => ;\n const ScreenB = () => ;\n ScreenB.router = createTestRouter({\n Foo: ScreenA,\n Baz: {\n screen: ScreenA,\n path: '',\n },\n });\n const ScreenC = () => ;\n ScreenC.router = createTestRouter({\n Boo: ScreenA,\n Bar: ScreenA,\n Baz: {\n screen: ScreenA,\n path: '',\n },\n });\n const router = createTestRouter({\n B: {\n path: null,\n screen: ScreenB,\n },\n C: {\n path: '',\n screen: ScreenC,\n },\n });\n const action0 = router.getActionForPathAndParams('', {});\n expect(action0.routeName).toBe('C');\n expect(action0.action.routeName).toBe('Baz');\n\n const action1 = router.getActionForPathAndParams('Foo', {});\n expect(action1.routeName).toBe('B');\n expect(action1.action.routeName).toBe('Foo');\n\n const action2 = router.getActionForPathAndParams('Bar', {});\n expect(action2.routeName).toBe('C');\n expect(action2.action.routeName).toBe('Bar');\n\n const action3 = router.getActionForPathAndParams('unknown', {});\n expect(action3).toBe(null);\n });\n\n it('Empty path acts as wildcard for nested router', () => {\n const ScreenA = () => ;\n const Foo = () => ;\n const ScreenC = () => ;\n ScreenC.router = createTestRouter({\n Boo: ScreenA,\n Bar: ScreenA,\n });\n Foo.router = createTestRouter({\n Quo: ScreenA,\n Qux: {\n screen: ScreenC,\n path: '',\n },\n });\n const router = createTestRouter({\n Bar: {\n screen: ScreenA,\n },\n Foo,\n });\n const action0 = router.getActionForPathAndParams('Foo/Bar', {});\n expect(action0.routeName).toBe('Foo');\n expect(action0.action.routeName).toBe('Qux');\n expect(action0.action.action.routeName).toBe('Bar');\n });\n\n it('Gets deep path with pure wildcard match', () => {\n const ScreenA = () => ;\n const ScreenB = () => ;\n const ScreenC = () => ;\n ScreenA.router = createTestRouter({\n Boo: { path: 'boo', screen: ScreenC },\n Baz: { path: 'baz/:bazId', screen: ScreenB },\n });\n ScreenC.router = createTestRouter({\n Boo2: { path: '', screen: ScreenB },\n });\n const router = createTestRouter({\n Foo: {\n path: null,\n screen: ScreenA,\n },\n Bar: {\n screen: ScreenB,\n },\n });\n\n {\n const state = {\n index: 0,\n routes: [\n {\n index: 1,\n key: 'Foo',\n routeName: 'Foo',\n params: {\n id: '123',\n },\n routes: [\n {\n index: 0,\n key: 'Boo',\n routeName: 'Boo',\n routes: [{ key: 'Boo2', routeName: 'Boo2' }],\n },\n { key: 'Baz', routeName: 'Baz', params: { bazId: '321' } },\n ],\n },\n { key: 'Bar', routeName: 'Bar' },\n ],\n };\n const { path, params } = router.getPathAndParamsForState(state);\n expect(path).toEqual('baz/321');\n expect(params.id).toEqual('123');\n }\n\n {\n const state = {\n index: 0,\n routes: [\n {\n index: 0,\n key: 'Foo',\n routeName: 'Foo',\n params: {\n id: '123',\n },\n routes: [\n {\n index: 0,\n key: 'Boo',\n routeName: 'Boo',\n routes: [{ key: 'Boo2', routeName: 'Boo2' }],\n },\n { key: 'Baz', routeName: 'Baz', params: { bazId: '321' } },\n ],\n },\n { key: 'Bar', routeName: 'Bar' },\n ],\n };\n const { path, params } = router.getPathAndParamsForState(state);\n expect(path).toEqual('boo');\n expect(params).toEqual({ id: '123' });\n }\n });\n\n it('URI encoded string get passed to deep link', () => {\n const uri = 'people/2018%2F02%2F07';\n const action = testRouter.getActionForPathAndParams(uri);\n expect(action).toEqual({\n routeName: 'person',\n params: {\n id: '2018/02/07',\n },\n type: NavigationActions.NAVIGATE,\n });\n\n const malformedUri = 'people/%E0%A4%A';\n const action2 = testRouter.getActionForPathAndParams(malformedUri);\n expect(action2).toEqual({\n routeName: 'person',\n params: {\n id: '%E0%A4%A',\n },\n type: NavigationActions.NAVIGATE,\n });\n });\n\n it('URI encoded path param gets parsed and correctly printed', () => {\n const action = testRouter.getActionForPathAndParams('people/Henry%20L');\n expect(action).toEqual({\n routeName: 'person',\n params: {\n id: 'Henry L',\n },\n type: NavigationActions.NAVIGATE,\n });\n const s = testRouter.getStateForAction(action);\n const out = testRouter.getPathAndParamsForState(s);\n expect(out.path).toEqual('people/Henry%20L');\n expect(out.params).toEqual({});\n });\n\n it('Querystring params get passed to nested deep link', () => {\n const action = testRouter.getActionForPathAndParams(\n 'main/p/4/list/10259959195',\n { code: 'test', foo: 'bar' }\n );\n expect(action).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'main',\n params: {\n code: 'test',\n foo: 'bar',\n },\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'profile',\n params: {\n id: '4',\n code: 'test',\n foo: 'bar',\n },\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'list',\n params: {\n id: '10259959195',\n code: 'test',\n foo: 'bar',\n },\n },\n },\n });\n\n const action2 = testRouter.getActionForPathAndParams(\n 'main/p/4/list/10259959195',\n { code: '', foo: 'bar' }\n );\n expect(action2).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'main',\n params: {\n code: '',\n foo: 'bar',\n },\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'profile',\n params: {\n id: '4',\n code: '',\n foo: 'bar',\n },\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'list',\n params: {\n id: '10259959195',\n code: '',\n foo: 'bar',\n },\n },\n },\n });\n });\n\n it('paths option on router overrides path from route config', () => {\n const router = createTestRouter(\n {\n main: {\n screen: MainNavigator,\n },\n baz: {\n path: null,\n screen: FooNavigator,\n },\n },\n { paths: { baz: 'overridden' } }\n );\n const action = router.getActionForPathAndParams('overridden', {});\n expect(action.type).toEqual(NavigationActions.NAVIGATE);\n expect(action.routeName).toEqual('baz');\n });\n\n it('paths option set as null on router overrides path from route config', () => {\n const router = createTestRouter(\n {\n main: {\n screen: MainNavigator,\n },\n baz: {\n path: 'bazPath',\n screen: FooNavigator,\n },\n },\n { paths: { baz: null } }\n );\n const action = router.getActionForPathAndParams('b/noBaz', {});\n expect(action.type).toEqual(NavigationActions.NAVIGATE);\n expect(action.routeName).toEqual('baz');\n });\n};\n\ndescribe('Path handling for stack router', () => {\n performRouterTest(StackRouter);\n});\ndescribe('Path handling for switch router', () => {\n performRouterTest(SwitchRouter);\n});\n\nit('Handles nested switch routers', () => {\n const AScreen = () => ;\n const DocsNavigator = () => ;\n DocsNavigator.router = SwitchRouter({\n A: AScreen,\n B: AScreen,\n C: AScreen,\n });\n DocsNavigator.path = 'docs';\n const router = SwitchRouter({\n Docs: DocsNavigator,\n D: AScreen,\n });\n const action = router.getActionForPathAndParams('docs/B', {});\n\n expect(action.type).toEqual(NavigationActions.NAVIGATE);\n expect(action.routeName).toEqual('Docs');\n expect(action.action.type).toEqual(NavigationActions.NAVIGATE);\n expect(action.action.routeName).toEqual('B');\n});\n\nconst performRouteNameAsPathDisabledTest = createTestRouter => {\n const BScreen = () => ;\n const NestedNavigator = () => ;\n NestedNavigator.router = createTestRouter({\n B: {\n screen: BScreen,\n path: 'baz',\n },\n });\n const router = createTestRouter(\n {\n A: NestedNavigator,\n },\n { disableRouteNamePaths: true }\n );\n\n it('disableRouteNamePaths option on router prevent the default path to be the routeName', () => {\n const action = router.getActionForPathAndParams('baz', {});\n\n expect(action.routeName).toBe('A');\n expect(action.action.routeName).toBe('B');\n });\n};\n\ndescribe('Stack router handles disableRouteNamePaths', () => {\n performRouteNameAsPathDisabledTest(StackRouter);\n});\n\ndescribe('Switch router handles disableRouteNamePaths', () => {\n performRouteNameAsPathDisabledTest(SwitchRouter);\n});\n\ndescribe('Tab router handles disableRouteNamePaths', () => {\n performRouteNameAsPathDisabledTest(TabRouter);\n});\n"]}
+\ No newline at end of file
++{"version":3,"sources":["PathHandling-test.js"],"names":["beforeEach","performRouterTest","createTestRouter","ListScreen","ProfileNavigator","router","list","path","screen","MainNavigator","profile","LoginScreen","AuthNavigator","login","BarScreen","FooNavigator","React","Component","bar","PersonScreen","testRouter","main","baz","auth","person","foo","it","Foo","Bar","initialRouteName","initialRouteParams","action","getActionForPathAndParams","expect","toEqual","state","getStateForAction","NavigationActions","init","routes","index","objectContaining","routeName","params","Person","Task","ThingA","Thing","type","NAVIGATE","task","action1","action2","good","thing","action3","something","ScreenA","Baz","action0","toBe","state1","ScreenB","ScreenC","Empty","A","B","C","id","Boo","Quo","Qux","Boo2","key","bazId","getPathAndParamsForState","uri","malformedUri","s","out","code","paths","describe","StackRouter","SwitchRouter","AScreen","DocsNavigator","Docs","D","performRouteNameAsPathDisabledTest","BScreen","NestedNavigator","disableRouteNamePaths","TabRouter"],"mappings":"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","sourcesContent":["/* eslint no-shadow:0, react/no-multi-comp:0, react/display-name:0 */\n\nimport React from 'react';\n\nimport SwitchRouter from '../SwitchRouter';\nimport StackRouter from '../StackRouter';\nimport TabRouter from '../TabRouter';\nimport * as NavigationActions from '../../NavigationActions';\nimport { _TESTING_ONLY_normalize_keys } from '../KeyGenerator.ts';\n\nbeforeEach(() => {\n _TESTING_ONLY_normalize_keys();\n});\n\nconst performRouterTest = createTestRouter => {\n const ListScreen = () => ;\n\n const ProfileNavigator = () => ;\n ProfileNavigator.router = StackRouter({\n list: {\n path: 'list/:id',\n screen: ListScreen,\n },\n });\n\n const MainNavigator = () => ;\n MainNavigator.router = StackRouter({\n profile: {\n path: 'p/:id',\n screen: ProfileNavigator,\n },\n });\n\n const LoginScreen = () => ;\n\n const AuthNavigator = () => ;\n AuthNavigator.router = StackRouter({\n login: {\n screen: LoginScreen,\n },\n });\n\n const BarScreen = () => ;\n\n class FooNavigator extends React.Component {\n static router = StackRouter({\n bar: {\n path: 'b/:barThing',\n screen: BarScreen,\n },\n });\n render() {\n return ;\n }\n }\n\n const PersonScreen = () => ;\n\n const testRouter = createTestRouter({\n main: {\n screen: MainNavigator,\n },\n baz: {\n path: null,\n screen: FooNavigator,\n },\n auth: {\n screen: AuthNavigator,\n },\n person: {\n path: 'people/:id',\n screen: PersonScreen,\n },\n foo: {\n path: 'fo/:fooThing',\n screen: FooNavigator,\n },\n });\n\n it('Handles empty URIs with empty action', () => {\n const router = createTestRouter(\n {\n Foo: {\n screen: () => ,\n },\n Bar: {\n screen: () => ,\n },\n },\n { initialRouteName: 'Bar', initialRouteParams: { foo: 42 } }\n );\n const action = router.getActionForPathAndParams('');\n expect(action).toEqual(null);\n const state = router.getStateForAction(action || NavigationActions.init());\n expect(state.routes[state.index]).toEqual(\n expect.objectContaining({\n routeName: 'Bar',\n params: { foo: 42 },\n })\n );\n });\n\n it('Handles paths with several params', () => {\n const router = createTestRouter({\n Person: {\n path: 'people/:person',\n screen: () => ,\n },\n Task: {\n path: 'people/:person/tasks/:task',\n screen: () => ,\n },\n ThingA: {\n path: 'things/:good',\n screen: () => ,\n },\n Thing: {\n path: 'things/:good/:thing',\n screen: () => ,\n },\n });\n const action = router.getActionForPathAndParams(\n 'people/brent/tasks/everything'\n );\n expect(action).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'Task',\n params: { person: 'brent', task: 'everything' },\n });\n\n const action1 = router.getActionForPathAndParams('people/lucy');\n expect(action1).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'Person',\n params: { person: 'lucy' },\n });\n\n const action2 = router.getActionForPathAndParams('things/foo/bar');\n expect(action2).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'Thing',\n params: { good: 'foo', thing: 'bar' },\n });\n\n const action3 = router.getActionForPathAndParams('things/foo');\n expect(action3).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'ThingA',\n params: { good: 'foo' },\n });\n });\n\n it('Handles empty path configuration', () => {\n const router = createTestRouter({\n Foo: {\n screen: () => ,\n },\n Bar: {\n screen: () => ,\n path: '',\n },\n });\n const action = router.getActionForPathAndParams('');\n expect(action).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n params: {},\n });\n });\n\n it('Handles wildcard path configuration', () => {\n const router = createTestRouter({\n Foo: {\n screen: () => ,\n },\n Bar: {\n screen: () => ,\n path: ':something',\n },\n });\n const action = router.getActionForPathAndParams('');\n expect(action).toEqual(null);\n\n const action1 = router.getActionForPathAndParams('Foo');\n expect(action1).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'Foo',\n params: {},\n });\n const action2 = router.getActionForPathAndParams('asdf');\n expect(action2).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n params: { something: 'asdf' },\n });\n });\n\n it('Null path behavior', () => {\n const ScreenA = () => ;\n const router = createTestRouter({\n Bar: {\n screen: ScreenA,\n },\n Foo: {\n path: null,\n screen: ScreenA,\n },\n Baz: {\n path: '',\n screen: ScreenA,\n },\n });\n const action0 = router.getActionForPathAndParams('test/random', {});\n expect(action0).toBe(null);\n\n const action1 = router.getActionForPathAndParams('', {});\n expect(action1.routeName).toBe('Baz');\n const state1 = router.getStateForAction(action1);\n expect(state1.routes[state1.index].routeName).toBe('Baz');\n });\n\n it('Multiple null path sub routers path behavior', () => {\n const ScreenA = () => ;\n const ScreenB = () => ;\n ScreenB.router = createTestRouter({\n Foo: ScreenA,\n });\n const ScreenC = () => ;\n ScreenC.router = createTestRouter({\n Bar: {\n path: 'bar/:id',\n screen: ScreenA,\n },\n Empty: {\n path: '',\n screen: ScreenA,\n },\n });\n const router = createTestRouter({\n A: {\n screen: ScreenA,\n },\n B: {\n path: null,\n screen: ScreenB,\n },\n C: {\n path: null,\n screen: ScreenC,\n },\n });\n const action0 = router.getActionForPathAndParams('Foo', {});\n expect(action0.routeName).toBe('B');\n expect(action0.action.routeName).toBe('Foo');\n\n const action1 = router.getActionForPathAndParams('', {});\n expect(action1.routeName).toBe('C');\n expect(action1.action.routeName).toBe('Empty');\n\n const action2 = router.getActionForPathAndParams('A', {});\n expect(action2.routeName).toBe('A');\n\n const action3 = router.getActionForPathAndParams('bar/asdf', {});\n expect(action3.routeName).toBe('C');\n expect(action3.action.routeName).toBe('Bar');\n expect(action3.action.params.id).toBe('asdf');\n });\n\n it('Null and empty string path sub routers behavior', () => {\n const ScreenA = () => ;\n const ScreenB = () => ;\n ScreenB.router = createTestRouter({\n Foo: ScreenA,\n Baz: {\n screen: ScreenA,\n path: '',\n },\n });\n const ScreenC = () => ;\n ScreenC.router = createTestRouter({\n Boo: ScreenA,\n Bar: ScreenA,\n Baz: {\n screen: ScreenA,\n path: '',\n },\n });\n const router = createTestRouter({\n B: {\n path: null,\n screen: ScreenB,\n },\n C: {\n path: '',\n screen: ScreenC,\n },\n });\n const action0 = router.getActionForPathAndParams('', {});\n expect(action0.routeName).toBe('C');\n expect(action0.action.routeName).toBe('Baz');\n\n const action1 = router.getActionForPathAndParams('Foo', {});\n expect(action1.routeName).toBe('B');\n expect(action1.action.routeName).toBe('Foo');\n\n const action2 = router.getActionForPathAndParams('Bar', {});\n expect(action2.routeName).toBe('C');\n expect(action2.action.routeName).toBe('Bar');\n\n const action3 = router.getActionForPathAndParams('unknown', {});\n expect(action3).toBe(null);\n });\n\n it('Empty path acts as wildcard for nested router', () => {\n const ScreenA = () => ;\n const Foo = () => ;\n const ScreenC = () => ;\n ScreenC.router = createTestRouter({\n Boo: ScreenA,\n Bar: ScreenA,\n });\n Foo.router = createTestRouter({\n Quo: ScreenA,\n Qux: {\n screen: ScreenC,\n path: '',\n },\n });\n const router = createTestRouter({\n Bar: {\n screen: ScreenA,\n },\n Foo,\n });\n const action0 = router.getActionForPathAndParams('Foo/Bar', {});\n expect(action0.routeName).toBe('Foo');\n expect(action0.action.routeName).toBe('Qux');\n expect(action0.action.action.routeName).toBe('Bar');\n });\n\n it('Gets deep path with pure wildcard match', () => {\n const ScreenA = () => ;\n const ScreenB = () => ;\n const ScreenC = () => ;\n ScreenA.router = createTestRouter({\n Boo: { path: 'boo', screen: ScreenC },\n Baz: { path: 'baz/:bazId', screen: ScreenB },\n });\n ScreenC.router = createTestRouter({\n Boo2: { path: '', screen: ScreenB },\n });\n const router = createTestRouter({\n Foo: {\n path: null,\n screen: ScreenA,\n },\n Bar: {\n screen: ScreenB,\n },\n });\n\n {\n const state = {\n index: 0,\n routes: [\n {\n index: 1,\n key: 'Foo',\n routeName: 'Foo',\n params: {\n id: '123',\n },\n routes: [\n {\n index: 0,\n key: 'Boo',\n routeName: 'Boo',\n routes: [{ key: 'Boo2', routeName: 'Boo2' }],\n },\n { key: 'Baz', routeName: 'Baz', params: { bazId: '321' } },\n ],\n },\n { key: 'Bar', routeName: 'Bar' },\n ],\n };\n const { path, params } = router.getPathAndParamsForState(state);\n expect(path).toEqual('baz/321');\n expect(params.id).toEqual('123');\n }\n\n {\n const state = {\n index: 0,\n routes: [\n {\n index: 0,\n key: 'Foo',\n routeName: 'Foo',\n params: {\n id: '123',\n },\n routes: [\n {\n index: 0,\n key: 'Boo',\n routeName: 'Boo',\n routes: [{ key: 'Boo2', routeName: 'Boo2' }],\n },\n { key: 'Baz', routeName: 'Baz', params: { bazId: '321' } },\n ],\n },\n { key: 'Bar', routeName: 'Bar' },\n ],\n };\n const { path, params } = router.getPathAndParamsForState(state);\n expect(path).toEqual('boo');\n expect(params).toEqual({ id: '123' });\n }\n });\n\n it('URI encoded string get passed to deep link', () => {\n const uri = 'people/2018%2F02%2F07';\n const action = testRouter.getActionForPathAndParams(uri);\n expect(action).toEqual({\n routeName: 'person',\n params: {\n id: '2018/02/07',\n },\n type: NavigationActions.NAVIGATE,\n });\n\n const malformedUri = 'people/%E0%A4%A';\n const action2 = testRouter.getActionForPathAndParams(malformedUri);\n expect(action2).toEqual({\n routeName: 'person',\n params: {\n id: '%E0%A4%A',\n },\n type: NavigationActions.NAVIGATE,\n });\n });\n\n it('URI encoded path param gets parsed and correctly printed', () => {\n const action = testRouter.getActionForPathAndParams('people/Henry%20L');\n expect(action).toEqual({\n routeName: 'person',\n params: {\n id: 'Henry L',\n },\n type: NavigationActions.NAVIGATE,\n });\n const s = testRouter.getStateForAction(action);\n const out = testRouter.getPathAndParamsForState(s);\n expect(out.path).toEqual('people/Henry%20L');\n expect(out.params).toEqual({});\n });\n\n it('Querystring params get passed to nested deep link', () => {\n const action = testRouter.getActionForPathAndParams(\n 'main/p/4/list/10259959195',\n { code: 'test', foo: 'bar' }\n );\n expect(action).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'main',\n params: {\n code: 'test',\n foo: 'bar',\n },\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'profile',\n params: {\n id: '4',\n code: 'test',\n foo: 'bar',\n },\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'list',\n params: {\n id: '10259959195',\n code: 'test',\n foo: 'bar',\n },\n },\n },\n });\n\n const action2 = testRouter.getActionForPathAndParams(\n 'main/p/4/list/10259959195',\n { code: '', foo: 'bar' }\n );\n expect(action2).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'main',\n params: {\n code: '',\n foo: 'bar',\n },\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'profile',\n params: {\n id: '4',\n code: '',\n foo: 'bar',\n },\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'list',\n params: {\n id: '10259959195',\n code: '',\n foo: 'bar',\n },\n },\n },\n });\n });\n\n it('paths option on router overrides path from route config', () => {\n const router = createTestRouter(\n {\n main: {\n screen: MainNavigator,\n },\n baz: {\n path: null,\n screen: FooNavigator,\n },\n },\n { paths: { baz: 'overridden' } }\n );\n const action = router.getActionForPathAndParams('overridden', {});\n expect(action.type).toEqual(NavigationActions.NAVIGATE);\n expect(action.routeName).toEqual('baz');\n });\n\n it('paths option set as null on router overrides path from route config', () => {\n const router = createTestRouter(\n {\n main: {\n screen: MainNavigator,\n },\n baz: {\n path: 'bazPath',\n screen: FooNavigator,\n },\n },\n { paths: { baz: null } }\n );\n const action = router.getActionForPathAndParams('b/noBaz', {});\n expect(action.type).toEqual(NavigationActions.NAVIGATE);\n expect(action.routeName).toEqual('baz');\n });\n};\n\ndescribe('Path handling for stack router', () => {\n performRouterTest(StackRouter);\n});\ndescribe('Path handling for switch router', () => {\n performRouterTest(SwitchRouter);\n});\n\nit('Handles nested switch routers', () => {\n const AScreen = () => ;\n const DocsNavigator = () => ;\n DocsNavigator.router = SwitchRouter({\n A: AScreen,\n B: AScreen,\n C: AScreen,\n });\n DocsNavigator.path = 'docs';\n const router = SwitchRouter({\n Docs: DocsNavigator,\n D: AScreen,\n });\n const action = router.getActionForPathAndParams('docs/B', {});\n\n expect(action.type).toEqual(NavigationActions.NAVIGATE);\n expect(action.routeName).toEqual('Docs');\n expect(action.action.type).toEqual(NavigationActions.NAVIGATE);\n expect(action.action.routeName).toEqual('B');\n});\n\nconst performRouteNameAsPathDisabledTest = createTestRouter => {\n const BScreen = () => ;\n const NestedNavigator = () => ;\n NestedNavigator.router = createTestRouter({\n B: {\n screen: BScreen,\n path: 'baz',\n },\n });\n const router = createTestRouter(\n {\n A: NestedNavigator,\n },\n { disableRouteNamePaths: true }\n );\n\n it('disableRouteNamePaths option on router prevent the default path to be the routeName', () => {\n const action = router.getActionForPathAndParams('baz', {});\n\n expect(action.routeName).toBe('A');\n expect(action.action.routeName).toBe('B');\n });\n};\n\ndescribe('Stack router handles disableRouteNamePaths', () => {\n performRouteNameAsPathDisabledTest(StackRouter);\n});\n\ndescribe('Switch router handles disableRouteNamePaths', () => {\n performRouteNameAsPathDisabledTest(SwitchRouter);\n});\n\ndescribe('Tab router handles disableRouteNamePaths', () => {\n performRouteNameAsPathDisabledTest(TabRouter);\n});\n"]}
+\ No newline at end of file
+diff --git a/node_modules/@react-navigation/core/lib/commonjs/routers/__tests__/Routers-test.js b/node_modules/@react-navigation/core/lib/commonjs/routers/__tests__/Routers-test.js
+index db71d16..f739310 100644
+--- a/node_modules/@react-navigation/core/lib/commonjs/routers/__tests__/Routers-test.js
++++ b/node_modules/@react-navigation/core/lib/commonjs/routers/__tests__/Routers-test.js
+@@ -1,2 +1,2 @@
+-var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _interopRequireWildcard=require("@babel/runtime/helpers/interopRequireWildcard");var _objectSpread2=_interopRequireDefault(require("@babel/runtime/helpers/objectSpread"));var _classCallCheck2=_interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));var _createClass2=_interopRequireDefault(require("@babel/runtime/helpers/createClass"));var _possibleConstructorReturn2=_interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));var _getPrototypeOf2=_interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));var _inherits2=_interopRequireDefault(require("@babel/runtime/helpers/inherits"));var _react=_interopRequireDefault(require("react"));var _StackRouter=_interopRequireDefault(require("../StackRouter"));var _TabRouter=_interopRequireDefault(require("../TabRouter"));var _SwitchRouter=_interopRequireDefault(require("../SwitchRouter"));var NavigationActions=_interopRequireWildcard(require("../../NavigationActions"));var StackActions=_interopRequireWildcard(require("../StackActions"));var _KeyGenerator=require("../KeyGenerator.ts");var _jsxFileName="/Users/satya/Workspace/Callstack/react-navigation-core/src/routers/__tests__/Routers-test.js";beforeEach(function(){(0,_KeyGenerator._TESTING_ONLY_normalize_keys)();});var ROUTERS={TabRouter:_TabRouter.default,StackRouter:_StackRouter.default,SwitchRouter:_SwitchRouter.default};var dummyEventSubscriber=function dummyEventSubscriber(){return{remove:function remove(){}};};Object.keys(ROUTERS).forEach(function(routerName){var Router=ROUTERS[routerName];describe("General router features - "+routerName,function(){it("title is configurable using navigationOptions and getScreenOptions - "+routerName,function(){var FooView=function(_React$Component){(0,_inherits2.default)(FooView,_React$Component);function FooView(){(0,_classCallCheck2.default)(this,FooView);return(0,_possibleConstructorReturn2.default)(this,(0,_getPrototypeOf2.default)(FooView).apply(this,arguments));}(0,_createClass2.default)(FooView,[{key:"render",value:function render(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:34}});}}]);return FooView;}(_react.default.Component);var BarView=function(_React$Component2){(0,_inherits2.default)(BarView,_React$Component2);function BarView(){(0,_classCallCheck2.default)(this,BarView);return(0,_possibleConstructorReturn2.default)(this,(0,_getPrototypeOf2.default)(BarView).apply(this,arguments));}(0,_createClass2.default)(BarView,[{key:"render",value:function render(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:39}});}}]);return BarView;}(_react.default.Component);BarView.navigationOptions={title:'BarTitle'};var BazView=function(_React$Component3){(0,_inherits2.default)(BazView,_React$Component3);function BazView(){(0,_classCallCheck2.default)(this,BazView);return(0,_possibleConstructorReturn2.default)(this,(0,_getPrototypeOf2.default)(BazView).apply(this,arguments));}(0,_createClass2.default)(BazView,[{key:"render",value:function render(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:45}});}}]);return BazView;}(_react.default.Component);BazView.navigationOptions=function(_ref){var navigation=_ref.navigation;return{title:"Baz-"+navigation.state.params.id};};var router=Router({Foo:{screen:FooView},Bar:{screen:BarView},Baz:{screen:BazView}});var routes=[{key:'A',routeName:'Foo'},{key:'B',routeName:'Bar'},{key:'A',routeName:'Baz',params:{id:'123'}}];expect(router.getScreenOptions({state:routes[0],dispatch:function dispatch(){return false;},addListener:dummyEventSubscriber},{}).title).toEqual(undefined);expect(router.getScreenOptions({state:routes[1],dispatch:function dispatch(){return false;},addListener:dummyEventSubscriber},{}).title).toEqual('BarTitle');expect(router.getScreenOptions({state:routes[2],dispatch:function dispatch(){return false;},addListener:dummyEventSubscriber},{}).title).toEqual('Baz-123');});it("set params works in "+routerName,function(){var FooView=function(_React$Component4){(0,_inherits2.default)(FooView,_React$Component4);function FooView(){(0,_classCallCheck2.default)(this,FooView);return(0,_possibleConstructorReturn2.default)(this,(0,_getPrototypeOf2.default)(FooView).apply(this,arguments));}(0,_createClass2.default)(FooView,[{key:"render",value:function render(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:96}});}}]);return FooView;}(_react.default.Component);var router=Router({Foo:{screen:FooView},Bar:{screen:FooView}});var initState=router.getStateForAction(NavigationActions.init());var initRoute=initState.routes[initState.index];expect(initRoute.params).toEqual(undefined);var state0=router.getStateForAction(NavigationActions.setParams({params:{foo:42},key:initRoute.key}),initState);expect(state0.routes[state0.index].params.foo).toEqual(42);});});});it('Nested navigate behavior test',function(){var Leaf=function Leaf(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:121}});};var First=function First(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:123}});};First.router=(0,_StackRouter.default)({First1:Leaf,First2:Leaf});var Second=function Second(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:129}});};Second.router=(0,_StackRouter.default)({Second1:Leaf,Second2:Leaf});var Main=function Main(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:135}});};Main.router=(0,_StackRouter.default)({First:First,Second:Second});var TestRouter=(0,_SwitchRouter.default)({Login:Leaf,Main:Main});var state1=TestRouter.getStateForAction({type:NavigationActions.INIT});var state2=TestRouter.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'First'},state1);expect(state2.index).toEqual(1);expect(state2.routes[1].index).toEqual(0);expect(state2.routes[1].routes[0].index).toEqual(0);var state3=TestRouter.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Second2'},state2);expect(state3.index).toEqual(1);expect(state3.routes[1].index).toEqual(1);expect(state3.routes[1].routes[1].index).toEqual(1);var state4=TestRouter.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'First',action:{type:NavigationActions.NAVIGATE,routeName:'First2'}},state3,true);expect(state4.index).toEqual(1);expect(state4.routes[1].index).toEqual(0);expect(state4.routes[1].routes[0].index).toEqual(1);var state5=TestRouter.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'First',action:{type:NavigationActions.NAVIGATE,routeName:'First1'}},state3);expect(state5.index).toEqual(1);expect(state5.routes[1].index).toEqual(0);expect(state5.routes[1].routes[0].index).toEqual(0);});it('Handles no-op actions with tabs within stack router',function(){var BarView=function BarView(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:190}});};var FooTabNavigator=function FooTabNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:191}});};FooTabNavigator.router=(0,_TabRouter.default)({Zap:{screen:BarView},Zoo:{screen:BarView}});var TestRouter=(0,_StackRouter.default)({Foo:{screen:FooTabNavigator},Bar:{screen:BarView}});var state1=TestRouter.getStateForAction({type:NavigationActions.INIT});var state2=TestRouter.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Qux'});expect(state1.routes[0].key).toEqual('id-0');expect(state2.routes[0].key).toEqual('id-1');state1.routes[0].key=state2.routes[0].key;expect(state1).toEqual(state2);var state3=TestRouter.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Zap'},state2);expect(state2).toEqual(state3);});it('Handles deep action',function(){var BarView=function BarView(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:221}});};var FooTabNavigator=function FooTabNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:222}});};FooTabNavigator.router=(0,_TabRouter.default)({Zap:{screen:BarView},Zoo:{screen:BarView}});var TestRouter=(0,_StackRouter.default)({Bar:{screen:BarView},Foo:{screen:FooTabNavigator}});var state1=TestRouter.getStateForAction({type:NavigationActions.INIT});var expectedState={index:0,isTransitioning:false,key:'StackRouterRoot',routes:[{key:'id-0',routeName:'Bar'}]};expect(state1).toEqual(expectedState);var state2=TestRouter.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Foo',immediate:true,action:{type:NavigationActions.NAVIGATE,routeName:'Zoo'}},state1);expect(state2&&state2.index).toEqual(1);expect(state2&&state2.routes[1].index).toEqual(1);});it('Handles the navigate action with params',function(){var FooTabNavigator=function FooTabNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:258}});};FooTabNavigator.router=(0,_TabRouter.default)({Baz:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:260}});}},Boo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:261}});}}});var TestRouter=(0,_StackRouter.default)({Foo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:265}});}},Bar:{screen:FooTabNavigator}});var state=TestRouter.getStateForAction({type:NavigationActions.INIT});var state2=TestRouter.getStateForAction({type:NavigationActions.NAVIGATE,immediate:true,routeName:'Bar',params:{foo:'42'}},state);expect(state2&&state2.routes[1].params).toEqual({foo:'42'});expect(state2&&state2.routes[1].routes).toEqual([{key:'Baz',routeName:'Baz',params:{foo:'42'}},{key:'Boo',routeName:'Boo',params:{foo:'42'}}]);});it('Handles the setParams action',function(){var FooTabNavigator=function FooTabNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:294}});};FooTabNavigator.router=(0,_TabRouter.default)({Baz:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:296}});}}});var TestRouter=(0,_StackRouter.default)({Foo:{screen:FooTabNavigator},Bar:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:300}});}}});var state=TestRouter.getStateForAction({type:NavigationActions.INIT});var state2=TestRouter.getStateForAction({type:NavigationActions.SET_PARAMS,params:{name:'foobar'},key:'Baz'},state);expect(state2&&state2.index).toEqual(0);expect(state2&&state2.routes[0].routes).toEqual([{key:'Baz',routeName:'Baz',params:{name:'foobar'}}]);});it('Supports lazily-evaluated getScreen',function(){var BarView=function BarView(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:322}});};var FooTabNavigator=function FooTabNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:323}});};FooTabNavigator.router=(0,_TabRouter.default)({Zap:{screen:BarView},Zoo:{screen:BarView}});var TestRouter=(0,_StackRouter.default)({Foo:{screen:FooTabNavigator},Bar:{getScreen:function getScreen(){return BarView;}}});var state1=TestRouter.getStateForAction({type:NavigationActions.INIT});var state2=TestRouter.getStateForAction({type:NavigationActions.NAVIGATE,immediate:true,routeName:'Qux'});expect(state1.routes[0].key).toEqual('id-0');expect(state2.routes[0].key).toEqual('id-1');state1.routes[0].key=state2.routes[0].key;expect(state1).toEqual(state2);var state3=TestRouter.getStateForAction({type:NavigationActions.NAVIGATE,immediate:true,routeName:'Zap'},state2);expect(state2).toEqual(state3);});it('Does not switch tab index when TabRouter child handles COMPLETE_NAVIGATION or SET_PARAMS',function(){var FooStackNavigator=function FooStackNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:358}});};var BarView=function BarView(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:359}});};FooStackNavigator.router=(0,_StackRouter.default)({Foo:{screen:BarView},Bar:{screen:BarView}});var TestRouter=(0,_TabRouter.default)({Zap:{screen:FooStackNavigator},Zoo:{screen:FooStackNavigator}});var state1=TestRouter.getStateForAction({type:NavigationActions.INIT});var state2=TestRouter.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar'},state1);var state3=TestRouter.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Zoo'},state2);var stateAfterCompleteTransition=TestRouter.getStateForAction({type:StackActions.COMPLETE_TRANSITION,preserveFocus:true,key:state2.routes[0].key},state3);var stateAfterSetParams=TestRouter.getStateForAction({type:NavigationActions.SET_PARAMS,preserveFocus:true,key:state1.routes[0].routes[0].key,params:{key:'value'}},state3);expect(stateAfterCompleteTransition.index).toEqual(1);expect(stateAfterSetParams.index).toEqual(1);});it('Inner actions are only unpacked if the current tab matches',function(){var PlainScreen=function PlainScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:417}});};var ScreenA=function ScreenA(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:418}});};var ScreenB=function ScreenB(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:419}});};ScreenB.router=(0,_StackRouter.default)({Baz:{screen:PlainScreen},Zoo:{screen:PlainScreen}});ScreenA.router=(0,_StackRouter.default)({Bar:{screen:PlainScreen},Boo:{screen:ScreenB}});var TestRouter=(0,_TabRouter.default)({Foo:{screen:ScreenA}});var screenApreState={index:0,key:'Init',isTransitioning:false,routeName:'Foo',routes:[{key:'Init',routeName:'Bar'}]};var preState={index:0,isTransitioning:false,routes:[screenApreState]};var comparable=function comparable(state){var result={};if(typeof state.routeName==='string'){result=(0,_objectSpread2.default)({},result,{routeName:state.routeName});}if(state.routes instanceof Array){result=(0,_objectSpread2.default)({},result,{routes:state.routes.map(comparable)});}return result;};var action=NavigationActions.navigate({routeName:'Boo',action:NavigationActions.navigate({routeName:'Zoo'})});var expectedState=ScreenA.router.getStateForAction(action,screenApreState);var state=TestRouter.getStateForAction(action,preState);var innerState=state?state.routes[0]:state;expect(expectedState&&comparable(expectedState)).toEqual(innerState&&comparable(innerState));});
++var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _interopRequireWildcard=require("@babel/runtime/helpers/interopRequireWildcard");var _objectSpread2=_interopRequireDefault(require("@babel/runtime/helpers/objectSpread"));var _classCallCheck2=_interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));var _createClass2=_interopRequireDefault(require("@babel/runtime/helpers/createClass"));var _possibleConstructorReturn2=_interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));var _getPrototypeOf2=_interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));var _inherits2=_interopRequireDefault(require("@babel/runtime/helpers/inherits"));var _react=_interopRequireDefault(require("react"));var _StackRouter=_interopRequireDefault(require("../StackRouter"));var _TabRouter=_interopRequireDefault(require("../TabRouter"));var _SwitchRouter=_interopRequireDefault(require("../SwitchRouter"));var NavigationActions=_interopRequireWildcard(require("../../NavigationActions"));var StackActions=_interopRequireWildcard(require("../StackActions"));var _KeyGenerator=require("../KeyGenerator.ts");var _jsxFileName="/Users/brentvatne/coding/react-navigation-core/src/routers/__tests__/Routers-test.js";beforeEach(function(){(0,_KeyGenerator._TESTING_ONLY_normalize_keys)();});var ROUTERS={TabRouter:_TabRouter.default,StackRouter:_StackRouter.default,SwitchRouter:_SwitchRouter.default};var dummyEventSubscriber=function dummyEventSubscriber(){return{remove:function remove(){}};};Object.keys(ROUTERS).forEach(function(routerName){var Router=ROUTERS[routerName];describe("General router features - "+routerName,function(){it("title is configurable using navigationOptions and getScreenOptions - "+routerName,function(){var FooView=function(_React$Component){(0,_inherits2.default)(FooView,_React$Component);function FooView(){(0,_classCallCheck2.default)(this,FooView);return(0,_possibleConstructorReturn2.default)(this,(0,_getPrototypeOf2.default)(FooView).apply(this,arguments));}(0,_createClass2.default)(FooView,[{key:"render",value:function render(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:34}});}}]);return FooView;}(_react.default.Component);var BarView=function(_React$Component2){(0,_inherits2.default)(BarView,_React$Component2);function BarView(){(0,_classCallCheck2.default)(this,BarView);return(0,_possibleConstructorReturn2.default)(this,(0,_getPrototypeOf2.default)(BarView).apply(this,arguments));}(0,_createClass2.default)(BarView,[{key:"render",value:function render(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:39}});}}]);return BarView;}(_react.default.Component);BarView.navigationOptions={title:'BarTitle'};var BazView=function(_React$Component3){(0,_inherits2.default)(BazView,_React$Component3);function BazView(){(0,_classCallCheck2.default)(this,BazView);return(0,_possibleConstructorReturn2.default)(this,(0,_getPrototypeOf2.default)(BazView).apply(this,arguments));}(0,_createClass2.default)(BazView,[{key:"render",value:function render(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:45}});}}]);return BazView;}(_react.default.Component);BazView.navigationOptions=function(_ref){var navigation=_ref.navigation;return{title:"Baz-"+navigation.state.params.id};};var router=Router({Foo:{screen:FooView},Bar:{screen:BarView},Baz:{screen:BazView}});var routes=[{key:'A',routeName:'Foo'},{key:'B',routeName:'Bar'},{key:'A',routeName:'Baz',params:{id:'123'}}];expect(router.getScreenOptions({state:routes[0],dispatch:function dispatch(){return false;},addListener:dummyEventSubscriber},{}).title).toEqual(undefined);expect(router.getScreenOptions({state:routes[1],dispatch:function dispatch(){return false;},addListener:dummyEventSubscriber},{}).title).toEqual('BarTitle');expect(router.getScreenOptions({state:routes[2],dispatch:function dispatch(){return false;},addListener:dummyEventSubscriber},{}).title).toEqual('Baz-123');});it("set params works in "+routerName,function(){var FooView=function(_React$Component4){(0,_inherits2.default)(FooView,_React$Component4);function FooView(){(0,_classCallCheck2.default)(this,FooView);return(0,_possibleConstructorReturn2.default)(this,(0,_getPrototypeOf2.default)(FooView).apply(this,arguments));}(0,_createClass2.default)(FooView,[{key:"render",value:function render(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:96}});}}]);return FooView;}(_react.default.Component);var router=Router({Foo:{screen:FooView},Bar:{screen:FooView}});var initState=router.getStateForAction(NavigationActions.init());var initRoute=initState.routes[initState.index];expect(initRoute.params).toEqual(undefined);var state0=router.getStateForAction(NavigationActions.setParams({params:{foo:42},key:initRoute.key}),initState);expect(state0.routes[state0.index].params.foo).toEqual(42);});});});it('Nested navigate behavior test',function(){var Leaf=function Leaf(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:121}});};var First=function First(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:123}});};First.router=(0,_StackRouter.default)({First1:Leaf,First2:Leaf});var Second=function Second(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:129}});};Second.router=(0,_StackRouter.default)({Second1:Leaf,Second2:Leaf});var Main=function Main(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:135}});};Main.router=(0,_StackRouter.default)({First:First,Second:Second});var TestRouter=(0,_SwitchRouter.default)({Login:Leaf,Main:Main});var state1=TestRouter.getStateForAction({type:NavigationActions.INIT});var state2=TestRouter.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'First'},state1);expect(state2.index).toEqual(1);expect(state2.routes[1].index).toEqual(0);expect(state2.routes[1].routes[0].index).toEqual(0);var state3=TestRouter.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Second2'},state2);expect(state3.index).toEqual(1);expect(state3.routes[1].index).toEqual(1);expect(state3.routes[1].routes[1].index).toEqual(1);var state4=TestRouter.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'First',action:{type:NavigationActions.NAVIGATE,routeName:'First2'}},state3,true);expect(state4.index).toEqual(1);expect(state4.routes[1].index).toEqual(0);expect(state4.routes[1].routes[0].index).toEqual(1);var state5=TestRouter.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'First',action:{type:NavigationActions.NAVIGATE,routeName:'First1'}},state3);expect(state5.index).toEqual(1);expect(state5.routes[1].index).toEqual(0);expect(state5.routes[1].routes[0].index).toEqual(0);});it('Handles no-op actions with tabs within stack router',function(){var BarView=function BarView(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:190}});};var FooTabNavigator=function FooTabNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:191}});};FooTabNavigator.router=(0,_TabRouter.default)({Zap:{screen:BarView},Zoo:{screen:BarView}});var TestRouter=(0,_StackRouter.default)({Foo:{screen:FooTabNavigator},Bar:{screen:BarView}});var state1=TestRouter.getStateForAction({type:NavigationActions.INIT});var state2=TestRouter.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Qux'});expect(state1.routes[0].key).toEqual('id-0');expect(state2.routes[0].key).toEqual('id-1');state1.routes[0].key=state2.routes[0].key;expect(state1).toEqual(state2);var state3=TestRouter.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Zap'},state2);expect(state2).toEqual(state3);});it('Handles deep action',function(){var BarView=function BarView(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:221}});};var FooTabNavigator=function FooTabNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:222}});};FooTabNavigator.router=(0,_TabRouter.default)({Zap:{screen:BarView},Zoo:{screen:BarView}});var TestRouter=(0,_StackRouter.default)({Bar:{screen:BarView},Foo:{screen:FooTabNavigator}});var state1=TestRouter.getStateForAction({type:NavigationActions.INIT});var expectedState={index:0,transitions:{pushing:[],popping:[]},key:'StackRouterRoot',routes:[{key:'id-0',routeName:'Bar'}]};expect(state1).toEqual(expectedState);var state2=TestRouter.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Foo',immediate:true,action:{type:NavigationActions.NAVIGATE,routeName:'Zoo'}},state1);expect(state2&&state2.index).toEqual(1);expect(state2&&state2.routes[1].index).toEqual(1);});it('Handles the navigate action with params',function(){var FooTabNavigator=function FooTabNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:258}});};FooTabNavigator.router=(0,_TabRouter.default)({Baz:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:260}});}},Boo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:261}});}}});var TestRouter=(0,_StackRouter.default)({Foo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:265}});}},Bar:{screen:FooTabNavigator}});var state=TestRouter.getStateForAction({type:NavigationActions.INIT});var state2=TestRouter.getStateForAction({type:NavigationActions.NAVIGATE,immediate:true,routeName:'Bar',params:{foo:'42'}},state);expect(state2&&state2.routes[1].params).toEqual({foo:'42'});expect(state2&&state2.routes[1].routes).toEqual([{key:'Baz',routeName:'Baz',params:{foo:'42'}},{key:'Boo',routeName:'Boo',params:{foo:'42'}}]);});it('Handles the setParams action',function(){var FooTabNavigator=function FooTabNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:294}});};FooTabNavigator.router=(0,_TabRouter.default)({Baz:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:296}});}}});var TestRouter=(0,_StackRouter.default)({Foo:{screen:FooTabNavigator},Bar:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:300}});}}});var state=TestRouter.getStateForAction({type:NavigationActions.INIT});var state2=TestRouter.getStateForAction({type:NavigationActions.SET_PARAMS,params:{name:'foobar'},key:'Baz'},state);expect(state2&&state2.index).toEqual(0);expect(state2&&state2.routes[0].routes).toEqual([{key:'Baz',routeName:'Baz',params:{name:'foobar'}}]);});it('Supports lazily-evaluated getScreen',function(){var BarView=function BarView(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:322}});};var FooTabNavigator=function FooTabNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:323}});};FooTabNavigator.router=(0,_TabRouter.default)({Zap:{screen:BarView},Zoo:{screen:BarView}});var TestRouter=(0,_StackRouter.default)({Foo:{screen:FooTabNavigator},Bar:{getScreen:function getScreen(){return BarView;}}});var state1=TestRouter.getStateForAction({type:NavigationActions.INIT});var state2=TestRouter.getStateForAction({type:NavigationActions.NAVIGATE,immediate:true,routeName:'Qux'});expect(state1.routes[0].key).toEqual('id-0');expect(state2.routes[0].key).toEqual('id-1');state1.routes[0].key=state2.routes[0].key;expect(state1).toEqual(state2);var state3=TestRouter.getStateForAction({type:NavigationActions.NAVIGATE,immediate:true,routeName:'Zap'},state2);expect(state2).toEqual(state3);});it('Does not switch tab index when TabRouter child handles COMPLETE_NAVIGATION or SET_PARAMS',function(){var FooStackNavigator=function FooStackNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:358}});};var BarView=function BarView(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:359}});};FooStackNavigator.router=(0,_StackRouter.default)({Foo:{screen:BarView},Bar:{screen:BarView}});var TestRouter=(0,_TabRouter.default)({Zap:{screen:FooStackNavigator},Zoo:{screen:FooStackNavigator}});var state1=TestRouter.getStateForAction({type:NavigationActions.INIT});var state2=TestRouter.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar'},state1);var state3=TestRouter.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Zoo'},state2);var stateAfterCompleteTransition=TestRouter.getStateForAction({type:StackActions.COMPLETE_TRANSITION,preserveFocus:true,key:state2.routes[0].key},state3);var stateAfterSetParams=TestRouter.getStateForAction({type:NavigationActions.SET_PARAMS,preserveFocus:true,key:state1.routes[0].routes[0].key,params:{key:'value'}},state3);expect(stateAfterCompleteTransition.index).toEqual(1);expect(stateAfterSetParams.index).toEqual(1);});it('Inner actions are only unpacked if the current tab matches',function(){var PlainScreen=function PlainScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:417}});};var ScreenA=function ScreenA(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:418}});};var ScreenB=function ScreenB(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:419}});};ScreenB.router=(0,_StackRouter.default)({Baz:{screen:PlainScreen},Zoo:{screen:PlainScreen}});ScreenA.router=(0,_StackRouter.default)({Bar:{screen:PlainScreen},Boo:{screen:ScreenB}});var TestRouter=(0,_TabRouter.default)({Foo:{screen:ScreenA}});var screenApreState={index:0,key:'Init',transitions:{pushing:[],popping:[]},routeName:'Foo',routes:[{key:'Init',routeName:'Bar'}]};var preState={index:0,transitions:{pushing:[],popping:[]},routes:[screenApreState]};var comparable=function comparable(state){var result={};if(typeof state.routeName==='string'){result=(0,_objectSpread2.default)({},result,{routeName:state.routeName});}if(state.routes instanceof Array){result=(0,_objectSpread2.default)({},result,{routes:state.routes.map(comparable)});}return result;};var action=NavigationActions.navigate({routeName:'Boo',action:NavigationActions.navigate({routeName:'Zoo'})});var expectedState=ScreenA.router.getStateForAction(action,screenApreState);var state=TestRouter.getStateForAction(action,preState);var innerState=state?state.routes[0]:state;expect(expectedState&&comparable(expectedState)).toEqual(innerState&&comparable(innerState));});
+ //# sourceMappingURL=Routers-test.js.map
+\ No newline at end of file
+diff --git a/node_modules/@react-navigation/core/lib/commonjs/routers/__tests__/Routers-test.js.map b/node_modules/@react-navigation/core/lib/commonjs/routers/__tests__/Routers-test.js.map
+index f4e7ab1..1a6cbd7 100644
+--- a/node_modules/@react-navigation/core/lib/commonjs/routers/__tests__/Routers-test.js.map
++++ b/node_modules/@react-navigation/core/lib/commonjs/routers/__tests__/Routers-test.js.map
+@@ -1 +1 @@
+-{"version":3,"sources":["Routers-test.js"],"names":["beforeEach","ROUTERS","TabRouter","StackRouter","SwitchRouter","dummyEventSubscriber","remove","Object","keys","forEach","routerName","Router","describe","it","FooView","React","Component","BarView","navigationOptions","title","BazView","navigation","state","params","id","router","Foo","screen","Bar","Baz","routes","key","routeName","expect","getScreenOptions","dispatch","addListener","toEqual","undefined","initState","getStateForAction","NavigationActions","init","initRoute","index","state0","setParams","foo","Leaf","First","First1","First2","Second","Second1","Second2","Main","TestRouter","Login","state1","type","INIT","state2","NAVIGATE","state3","state4","action","state5","FooTabNavigator","Zap","Zoo","expectedState","isTransitioning","immediate","Boo","SET_PARAMS","name","getScreen","FooStackNavigator","stateAfterCompleteTransition","StackActions","COMPLETE_TRANSITION","preserveFocus","stateAfterSetParams","PlainScreen","ScreenA","ScreenB","screenApreState","preState","comparable","result","Array","map","navigate","innerState"],"mappings":"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","sourcesContent":["/* eslint react/no-multi-comp:0, react/display-name:0 */\n\nimport React from 'react';\n\nimport StackRouter from '../StackRouter';\nimport TabRouter from '../TabRouter';\nimport SwitchRouter from '../SwitchRouter';\n\nimport * as NavigationActions from '../../NavigationActions';\nimport * as StackActions from '../StackActions';\nimport { _TESTING_ONLY_normalize_keys } from '../KeyGenerator.ts';\n\nbeforeEach(() => {\n _TESTING_ONLY_normalize_keys();\n});\n\nconst ROUTERS = {\n TabRouter,\n StackRouter,\n SwitchRouter,\n};\n\nconst dummyEventSubscriber = () => ({\n remove: () => {},\n});\n\nObject.keys(ROUTERS).forEach(routerName => {\n const Router = ROUTERS[routerName];\n\n describe(`General router features - ${routerName}`, () => {\n it(`title is configurable using navigationOptions and getScreenOptions - ${routerName}`, () => {\n class FooView extends React.Component {\n render() {\n return ;\n }\n }\n class BarView extends React.Component {\n render() {\n return ;\n }\n static navigationOptions = { title: 'BarTitle' };\n }\n class BazView extends React.Component {\n render() {\n return ;\n }\n static navigationOptions = ({ navigation }) => ({\n title: `Baz-${navigation.state.params.id}`,\n });\n }\n const router = Router({\n Foo: { screen: FooView },\n Bar: { screen: BarView },\n Baz: { screen: BazView },\n });\n const routes = [\n { key: 'A', routeName: 'Foo' },\n { key: 'B', routeName: 'Bar' },\n { key: 'A', routeName: 'Baz', params: { id: '123' } },\n ];\n expect(\n router.getScreenOptions(\n {\n state: routes[0],\n dispatch: () => false,\n addListener: dummyEventSubscriber,\n },\n {}\n ).title\n ).toEqual(undefined);\n expect(\n router.getScreenOptions(\n {\n state: routes[1],\n dispatch: () => false,\n addListener: dummyEventSubscriber,\n },\n {}\n ).title\n ).toEqual('BarTitle');\n expect(\n router.getScreenOptions(\n {\n state: routes[2],\n dispatch: () => false,\n addListener: dummyEventSubscriber,\n },\n {}\n ).title\n ).toEqual('Baz-123');\n });\n\n it(`set params works in ${routerName}`, () => {\n class FooView extends React.Component {\n render() {\n return ;\n }\n }\n const router = Router({\n Foo: { screen: FooView },\n Bar: { screen: FooView },\n });\n\n const initState = router.getStateForAction(NavigationActions.init());\n const initRoute = initState.routes[initState.index];\n expect(initRoute.params).toEqual(undefined);\n\n const state0 = router.getStateForAction(\n NavigationActions.setParams({\n params: { foo: 42 },\n key: initRoute.key,\n }),\n initState\n );\n expect(state0.routes[state0.index].params.foo).toEqual(42);\n });\n });\n});\n\nit('Nested navigate behavior test', () => {\n const Leaf = () => ;\n\n const First = () => ;\n First.router = StackRouter({\n First1: Leaf,\n First2: Leaf,\n });\n\n const Second = () => ;\n Second.router = StackRouter({\n Second1: Leaf,\n Second2: Leaf,\n });\n\n const Main = () => ;\n Main.router = StackRouter({\n First,\n Second,\n });\n const TestRouter = SwitchRouter({\n Login: Leaf,\n Main,\n });\n\n const state1 = TestRouter.getStateForAction({ type: NavigationActions.INIT });\n\n const state2 = TestRouter.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'First' },\n state1\n );\n expect(state2.index).toEqual(1);\n expect(state2.routes[1].index).toEqual(0);\n expect(state2.routes[1].routes[0].index).toEqual(0);\n\n const state3 = TestRouter.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'Second2' },\n state2\n );\n expect(state3.index).toEqual(1);\n expect(state3.routes[1].index).toEqual(1); // second\n expect(state3.routes[1].routes[1].index).toEqual(1); //second.second2\n\n const state4 = TestRouter.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'First',\n action: { type: NavigationActions.NAVIGATE, routeName: 'First2' },\n },\n state3,\n true\n );\n expect(state4.index).toEqual(1); // main\n expect(state4.routes[1].index).toEqual(0); // first\n expect(state4.routes[1].routes[0].index).toEqual(1); // first2\n\n const state5 = TestRouter.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'First',\n action: { type: NavigationActions.NAVIGATE, routeName: 'First1' },\n },\n state3 // second.second2 is active on state3\n );\n expect(state5.index).toEqual(1); // main\n expect(state5.routes[1].index).toEqual(0); // first\n expect(state5.routes[1].routes[0].index).toEqual(0); // first.first1\n});\n\nit('Handles no-op actions with tabs within stack router', () => {\n const BarView = () => ;\n const FooTabNavigator = () => ;\n FooTabNavigator.router = TabRouter({\n Zap: { screen: BarView },\n Zoo: { screen: BarView },\n });\n const TestRouter = StackRouter({\n Foo: {\n screen: FooTabNavigator,\n },\n Bar: {\n screen: BarView,\n },\n });\n const state1 = TestRouter.getStateForAction({ type: NavigationActions.INIT });\n const state2 = TestRouter.getStateForAction({\n type: NavigationActions.NAVIGATE,\n routeName: 'Qux',\n });\n expect(state1.routes[0].key).toEqual('id-0');\n expect(state2.routes[0].key).toEqual('id-1');\n state1.routes[0].key = state2.routes[0].key;\n expect(state1).toEqual(state2);\n const state3 = TestRouter.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'Zap' },\n state2\n );\n expect(state2).toEqual(state3);\n});\n\nit('Handles deep action', () => {\n const BarView = () => ;\n const FooTabNavigator = () => ;\n FooTabNavigator.router = TabRouter({\n Zap: { screen: BarView },\n Zoo: { screen: BarView },\n });\n const TestRouter = StackRouter({\n Bar: { screen: BarView },\n Foo: { screen: FooTabNavigator },\n });\n const state1 = TestRouter.getStateForAction({ type: NavigationActions.INIT });\n const expectedState = {\n index: 0,\n isTransitioning: false,\n key: 'StackRouterRoot',\n routes: [\n {\n key: 'id-0',\n routeName: 'Bar',\n },\n ],\n };\n expect(state1).toEqual(expectedState);\n const state2 = TestRouter.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Foo',\n immediate: true,\n action: { type: NavigationActions.NAVIGATE, routeName: 'Zoo' },\n },\n state1\n );\n expect(state2 && state2.index).toEqual(1);\n expect(state2 && state2.routes[1].index).toEqual(1);\n});\n\nit('Handles the navigate action with params', () => {\n const FooTabNavigator = () => ;\n FooTabNavigator.router = TabRouter({\n Baz: { screen: () => },\n Boo: { screen: () => },\n });\n\n const TestRouter = StackRouter({\n Foo: { screen: () => },\n Bar: { screen: FooTabNavigator },\n });\n const state = TestRouter.getStateForAction({ type: NavigationActions.INIT });\n const state2 = TestRouter.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n immediate: true,\n routeName: 'Bar',\n params: { foo: '42' },\n },\n state\n );\n expect(state2 && state2.routes[1].params).toEqual({ foo: '42' });\n expect(state2 && state2.routes[1].routes).toEqual([\n {\n key: 'Baz',\n routeName: 'Baz',\n params: { foo: '42' },\n },\n {\n key: 'Boo',\n routeName: 'Boo',\n params: { foo: '42' },\n },\n ]);\n});\n\nit('Handles the setParams action', () => {\n const FooTabNavigator = () => ;\n FooTabNavigator.router = TabRouter({\n Baz: { screen: () => },\n });\n const TestRouter = StackRouter({\n Foo: { screen: FooTabNavigator },\n Bar: { screen: () => },\n });\n const state = TestRouter.getStateForAction({ type: NavigationActions.INIT });\n const state2 = TestRouter.getStateForAction(\n {\n type: NavigationActions.SET_PARAMS,\n params: { name: 'foobar' },\n key: 'Baz',\n },\n state\n );\n expect(state2 && state2.index).toEqual(0);\n expect(state2 && state2.routes[0].routes).toEqual([\n {\n key: 'Baz',\n routeName: 'Baz',\n params: { name: 'foobar' },\n },\n ]);\n});\n\nit('Supports lazily-evaluated getScreen', () => {\n const BarView = () => ;\n const FooTabNavigator = () => ;\n FooTabNavigator.router = TabRouter({\n Zap: { screen: BarView },\n Zoo: { screen: BarView },\n });\n const TestRouter = StackRouter({\n Foo: {\n screen: FooTabNavigator,\n },\n Bar: {\n getScreen: () => BarView,\n },\n });\n const state1 = TestRouter.getStateForAction({ type: NavigationActions.INIT });\n const state2 = TestRouter.getStateForAction({\n type: NavigationActions.NAVIGATE,\n immediate: true,\n routeName: 'Qux',\n });\n expect(state1.routes[0].key).toEqual('id-0');\n expect(state2.routes[0].key).toEqual('id-1');\n state1.routes[0].key = state2.routes[0].key;\n expect(state1).toEqual(state2);\n const state3 = TestRouter.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n immediate: true,\n routeName: 'Zap',\n },\n state2\n );\n expect(state2).toEqual(state3);\n});\n\nit('Does not switch tab index when TabRouter child handles COMPLETE_NAVIGATION or SET_PARAMS', () => {\n const FooStackNavigator = () => ;\n const BarView = () => ;\n FooStackNavigator.router = StackRouter({\n Foo: {\n screen: BarView,\n },\n Bar: {\n screen: BarView,\n },\n });\n\n const TestRouter = TabRouter({\n Zap: { screen: FooStackNavigator },\n Zoo: { screen: FooStackNavigator },\n });\n\n const state1 = TestRouter.getStateForAction({ type: NavigationActions.INIT });\n\n // Navigate to the second screen in the first tab\n const state2 = TestRouter.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n },\n state1\n );\n\n // Switch tabs\n const state3 = TestRouter.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Zoo',\n },\n state2\n );\n\n const stateAfterCompleteTransition = TestRouter.getStateForAction(\n {\n type: StackActions.COMPLETE_TRANSITION,\n preserveFocus: true,\n key: state2.routes[0].key,\n },\n state3\n );\n const stateAfterSetParams = TestRouter.getStateForAction(\n {\n type: NavigationActions.SET_PARAMS,\n preserveFocus: true,\n key: state1.routes[0].routes[0].key,\n params: { key: 'value' },\n },\n state3\n );\n\n expect(stateAfterCompleteTransition.index).toEqual(1);\n expect(stateAfterSetParams.index).toEqual(1);\n});\n\nit('Inner actions are only unpacked if the current tab matches', () => {\n const PlainScreen = () => ;\n const ScreenA = () => ;\n const ScreenB = () => ;\n ScreenB.router = StackRouter({\n Baz: { screen: PlainScreen },\n Zoo: { screen: PlainScreen },\n });\n ScreenA.router = StackRouter({\n Bar: { screen: PlainScreen },\n Boo: { screen: ScreenB },\n });\n const TestRouter = TabRouter({\n Foo: { screen: ScreenA },\n });\n const screenApreState = {\n index: 0,\n key: 'Init',\n isTransitioning: false,\n routeName: 'Foo',\n routes: [{ key: 'Init', routeName: 'Bar' }],\n };\n const preState = {\n index: 0,\n isTransitioning: false,\n routes: [screenApreState],\n };\n\n const comparable = state => {\n let result = {};\n if (typeof state.routeName === 'string') {\n result = { ...result, routeName: state.routeName };\n }\n if (state.routes instanceof Array) {\n result = {\n ...result,\n routes: state.routes.map(comparable),\n };\n }\n return result;\n };\n\n const action = NavigationActions.navigate({\n routeName: 'Boo',\n action: NavigationActions.navigate({ routeName: 'Zoo' }),\n });\n\n const expectedState = ScreenA.router.getStateForAction(\n action,\n screenApreState\n );\n const state = TestRouter.getStateForAction(action, preState);\n const innerState = state ? state.routes[0] : state;\n\n expect(expectedState && comparable(expectedState)).toEqual(\n innerState && comparable(innerState)\n );\n});\n"]}
+\ No newline at end of file
++{"version":3,"sources":["Routers-test.js"],"names":["beforeEach","ROUTERS","TabRouter","StackRouter","SwitchRouter","dummyEventSubscriber","remove","Object","keys","forEach","routerName","Router","describe","it","FooView","React","Component","BarView","navigationOptions","title","BazView","navigation","state","params","id","router","Foo","screen","Bar","Baz","routes","key","routeName","expect","getScreenOptions","dispatch","addListener","toEqual","undefined","initState","getStateForAction","NavigationActions","init","initRoute","index","state0","setParams","foo","Leaf","First","First1","First2","Second","Second1","Second2","Main","TestRouter","Login","state1","type","INIT","state2","NAVIGATE","state3","state4","action","state5","FooTabNavigator","Zap","Zoo","expectedState","transitions","pushing","popping","immediate","Boo","SET_PARAMS","name","getScreen","FooStackNavigator","stateAfterCompleteTransition","StackActions","COMPLETE_TRANSITION","preserveFocus","stateAfterSetParams","PlainScreen","ScreenA","ScreenB","screenApreState","preState","comparable","result","Array","map","navigate","innerState"],"mappings":"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","sourcesContent":["/* eslint react/no-multi-comp:0, react/display-name:0 */\n\nimport React from 'react';\n\nimport StackRouter from '../StackRouter';\nimport TabRouter from '../TabRouter';\nimport SwitchRouter from '../SwitchRouter';\n\nimport * as NavigationActions from '../../NavigationActions';\nimport * as StackActions from '../StackActions';\nimport { _TESTING_ONLY_normalize_keys } from '../KeyGenerator.ts';\n\nbeforeEach(() => {\n _TESTING_ONLY_normalize_keys();\n});\n\nconst ROUTERS = {\n TabRouter,\n StackRouter,\n SwitchRouter,\n};\n\nconst dummyEventSubscriber = () => ({\n remove: () => {},\n});\n\nObject.keys(ROUTERS).forEach(routerName => {\n const Router = ROUTERS[routerName];\n\n describe(`General router features - ${routerName}`, () => {\n it(`title is configurable using navigationOptions and getScreenOptions - ${routerName}`, () => {\n class FooView extends React.Component {\n render() {\n return ;\n }\n }\n class BarView extends React.Component {\n render() {\n return ;\n }\n static navigationOptions = { title: 'BarTitle' };\n }\n class BazView extends React.Component {\n render() {\n return ;\n }\n static navigationOptions = ({ navigation }) => ({\n title: `Baz-${navigation.state.params.id}`,\n });\n }\n const router = Router({\n Foo: { screen: FooView },\n Bar: { screen: BarView },\n Baz: { screen: BazView },\n });\n const routes = [\n { key: 'A', routeName: 'Foo' },\n { key: 'B', routeName: 'Bar' },\n { key: 'A', routeName: 'Baz', params: { id: '123' } },\n ];\n expect(\n router.getScreenOptions(\n {\n state: routes[0],\n dispatch: () => false,\n addListener: dummyEventSubscriber,\n },\n {}\n ).title\n ).toEqual(undefined);\n expect(\n router.getScreenOptions(\n {\n state: routes[1],\n dispatch: () => false,\n addListener: dummyEventSubscriber,\n },\n {}\n ).title\n ).toEqual('BarTitle');\n expect(\n router.getScreenOptions(\n {\n state: routes[2],\n dispatch: () => false,\n addListener: dummyEventSubscriber,\n },\n {}\n ).title\n ).toEqual('Baz-123');\n });\n\n it(`set params works in ${routerName}`, () => {\n class FooView extends React.Component {\n render() {\n return ;\n }\n }\n const router = Router({\n Foo: { screen: FooView },\n Bar: { screen: FooView },\n });\n\n const initState = router.getStateForAction(NavigationActions.init());\n const initRoute = initState.routes[initState.index];\n expect(initRoute.params).toEqual(undefined);\n\n const state0 = router.getStateForAction(\n NavigationActions.setParams({\n params: { foo: 42 },\n key: initRoute.key,\n }),\n initState\n );\n expect(state0.routes[state0.index].params.foo).toEqual(42);\n });\n });\n});\n\nit('Nested navigate behavior test', () => {\n const Leaf = () => ;\n\n const First = () => ;\n First.router = StackRouter({\n First1: Leaf,\n First2: Leaf,\n });\n\n const Second = () => ;\n Second.router = StackRouter({\n Second1: Leaf,\n Second2: Leaf,\n });\n\n const Main = () => ;\n Main.router = StackRouter({\n First,\n Second,\n });\n const TestRouter = SwitchRouter({\n Login: Leaf,\n Main,\n });\n\n const state1 = TestRouter.getStateForAction({ type: NavigationActions.INIT });\n\n const state2 = TestRouter.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'First' },\n state1\n );\n expect(state2.index).toEqual(1);\n expect(state2.routes[1].index).toEqual(0);\n expect(state2.routes[1].routes[0].index).toEqual(0);\n\n const state3 = TestRouter.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'Second2' },\n state2\n );\n expect(state3.index).toEqual(1);\n expect(state3.routes[1].index).toEqual(1); // second\n expect(state3.routes[1].routes[1].index).toEqual(1); //second.second2\n\n const state4 = TestRouter.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'First',\n action: { type: NavigationActions.NAVIGATE, routeName: 'First2' },\n },\n state3,\n true\n );\n expect(state4.index).toEqual(1); // main\n expect(state4.routes[1].index).toEqual(0); // first\n expect(state4.routes[1].routes[0].index).toEqual(1); // first2\n\n const state5 = TestRouter.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'First',\n action: { type: NavigationActions.NAVIGATE, routeName: 'First1' },\n },\n state3 // second.second2 is active on state3\n );\n expect(state5.index).toEqual(1); // main\n expect(state5.routes[1].index).toEqual(0); // first\n expect(state5.routes[1].routes[0].index).toEqual(0); // first.first1\n});\n\nit('Handles no-op actions with tabs within stack router', () => {\n const BarView = () => ;\n const FooTabNavigator = () => ;\n FooTabNavigator.router = TabRouter({\n Zap: { screen: BarView },\n Zoo: { screen: BarView },\n });\n const TestRouter = StackRouter({\n Foo: {\n screen: FooTabNavigator,\n },\n Bar: {\n screen: BarView,\n },\n });\n const state1 = TestRouter.getStateForAction({ type: NavigationActions.INIT });\n const state2 = TestRouter.getStateForAction({\n type: NavigationActions.NAVIGATE,\n routeName: 'Qux',\n });\n expect(state1.routes[0].key).toEqual('id-0');\n expect(state2.routes[0].key).toEqual('id-1');\n state1.routes[0].key = state2.routes[0].key;\n expect(state1).toEqual(state2);\n const state3 = TestRouter.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'Zap' },\n state2\n );\n expect(state2).toEqual(state3);\n});\n\nit('Handles deep action', () => {\n const BarView = () => ;\n const FooTabNavigator = () => ;\n FooTabNavigator.router = TabRouter({\n Zap: { screen: BarView },\n Zoo: { screen: BarView },\n });\n const TestRouter = StackRouter({\n Bar: { screen: BarView },\n Foo: { screen: FooTabNavigator },\n });\n const state1 = TestRouter.getStateForAction({ type: NavigationActions.INIT });\n const expectedState = {\n index: 0,\n transitions: { pushing: [], popping: [] },\n key: 'StackRouterRoot',\n routes: [\n {\n key: 'id-0',\n routeName: 'Bar',\n },\n ],\n };\n expect(state1).toEqual(expectedState);\n const state2 = TestRouter.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Foo',\n immediate: true,\n action: { type: NavigationActions.NAVIGATE, routeName: 'Zoo' },\n },\n state1\n );\n expect(state2 && state2.index).toEqual(1);\n expect(state2 && state2.routes[1].index).toEqual(1);\n});\n\nit('Handles the navigate action with params', () => {\n const FooTabNavigator = () => ;\n FooTabNavigator.router = TabRouter({\n Baz: { screen: () => },\n Boo: { screen: () => },\n });\n\n const TestRouter = StackRouter({\n Foo: { screen: () => },\n Bar: { screen: FooTabNavigator },\n });\n const state = TestRouter.getStateForAction({ type: NavigationActions.INIT });\n const state2 = TestRouter.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n immediate: true,\n routeName: 'Bar',\n params: { foo: '42' },\n },\n state\n );\n expect(state2 && state2.routes[1].params).toEqual({ foo: '42' });\n expect(state2 && state2.routes[1].routes).toEqual([\n {\n key: 'Baz',\n routeName: 'Baz',\n params: { foo: '42' },\n },\n {\n key: 'Boo',\n routeName: 'Boo',\n params: { foo: '42' },\n },\n ]);\n});\n\nit('Handles the setParams action', () => {\n const FooTabNavigator = () => ;\n FooTabNavigator.router = TabRouter({\n Baz: { screen: () => },\n });\n const TestRouter = StackRouter({\n Foo: { screen: FooTabNavigator },\n Bar: { screen: () => },\n });\n const state = TestRouter.getStateForAction({ type: NavigationActions.INIT });\n const state2 = TestRouter.getStateForAction(\n {\n type: NavigationActions.SET_PARAMS,\n params: { name: 'foobar' },\n key: 'Baz',\n },\n state\n );\n expect(state2 && state2.index).toEqual(0);\n expect(state2 && state2.routes[0].routes).toEqual([\n {\n key: 'Baz',\n routeName: 'Baz',\n params: { name: 'foobar' },\n },\n ]);\n});\n\nit('Supports lazily-evaluated getScreen', () => {\n const BarView = () => ;\n const FooTabNavigator = () => ;\n FooTabNavigator.router = TabRouter({\n Zap: { screen: BarView },\n Zoo: { screen: BarView },\n });\n const TestRouter = StackRouter({\n Foo: {\n screen: FooTabNavigator,\n },\n Bar: {\n getScreen: () => BarView,\n },\n });\n const state1 = TestRouter.getStateForAction({ type: NavigationActions.INIT });\n const state2 = TestRouter.getStateForAction({\n type: NavigationActions.NAVIGATE,\n immediate: true,\n routeName: 'Qux',\n });\n expect(state1.routes[0].key).toEqual('id-0');\n expect(state2.routes[0].key).toEqual('id-1');\n state1.routes[0].key = state2.routes[0].key;\n expect(state1).toEqual(state2);\n const state3 = TestRouter.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n immediate: true,\n routeName: 'Zap',\n },\n state2\n );\n expect(state2).toEqual(state3);\n});\n\nit('Does not switch tab index when TabRouter child handles COMPLETE_NAVIGATION or SET_PARAMS', () => {\n const FooStackNavigator = () => ;\n const BarView = () => ;\n FooStackNavigator.router = StackRouter({\n Foo: {\n screen: BarView,\n },\n Bar: {\n screen: BarView,\n },\n });\n\n const TestRouter = TabRouter({\n Zap: { screen: FooStackNavigator },\n Zoo: { screen: FooStackNavigator },\n });\n\n const state1 = TestRouter.getStateForAction({ type: NavigationActions.INIT });\n\n // Navigate to the second screen in the first tab\n const state2 = TestRouter.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n },\n state1\n );\n\n // Switch tabs\n const state3 = TestRouter.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Zoo',\n },\n state2\n );\n\n const stateAfterCompleteTransition = TestRouter.getStateForAction(\n {\n type: StackActions.COMPLETE_TRANSITION,\n preserveFocus: true,\n key: state2.routes[0].key,\n },\n state3\n );\n const stateAfterSetParams = TestRouter.getStateForAction(\n {\n type: NavigationActions.SET_PARAMS,\n preserveFocus: true,\n key: state1.routes[0].routes[0].key,\n params: { key: 'value' },\n },\n state3\n );\n\n expect(stateAfterCompleteTransition.index).toEqual(1);\n expect(stateAfterSetParams.index).toEqual(1);\n});\n\nit('Inner actions are only unpacked if the current tab matches', () => {\n const PlainScreen = () => ;\n const ScreenA = () => ;\n const ScreenB = () => ;\n ScreenB.router = StackRouter({\n Baz: { screen: PlainScreen },\n Zoo: { screen: PlainScreen },\n });\n ScreenA.router = StackRouter({\n Bar: { screen: PlainScreen },\n Boo: { screen: ScreenB },\n });\n const TestRouter = TabRouter({\n Foo: { screen: ScreenA },\n });\n const screenApreState = {\n index: 0,\n key: 'Init',\n transitions: { pushing: [], popping: [] },\n routeName: 'Foo',\n routes: [{ key: 'Init', routeName: 'Bar' }],\n };\n const preState = {\n index: 0,\n transitions: { pushing: [], popping: [] },\n routes: [screenApreState],\n };\n\n const comparable = state => {\n let result = {};\n if (typeof state.routeName === 'string') {\n result = { ...result, routeName: state.routeName };\n }\n if (state.routes instanceof Array) {\n result = {\n ...result,\n routes: state.routes.map(comparable),\n };\n }\n return result;\n };\n\n const action = NavigationActions.navigate({\n routeName: 'Boo',\n action: NavigationActions.navigate({ routeName: 'Zoo' }),\n });\n\n const expectedState = ScreenA.router.getStateForAction(\n action,\n screenApreState\n );\n const state = TestRouter.getStateForAction(action, preState);\n const innerState = state ? state.routes[0] : state;\n\n expect(expectedState && comparable(expectedState)).toEqual(\n innerState && comparable(innerState)\n );\n});\n"]}
+\ No newline at end of file
+diff --git a/node_modules/@react-navigation/core/lib/commonjs/routers/__tests__/StackRouter-test.js b/node_modules/@react-navigation/core/lib/commonjs/routers/__tests__/StackRouter-test.js
+index 8755bf2..edd1af3 100644
+--- a/node_modules/@react-navigation/core/lib/commonjs/routers/__tests__/StackRouter-test.js
++++ b/node_modules/@react-navigation/core/lib/commonjs/routers/__tests__/StackRouter-test.js
+@@ -1,2 +1,2 @@
+-var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _interopRequireWildcard=require("@babel/runtime/helpers/interopRequireWildcard");var _objectSpread2=_interopRequireDefault(require("@babel/runtime/helpers/objectSpread"));var _classCallCheck2=_interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));var _createClass2=_interopRequireDefault(require("@babel/runtime/helpers/createClass"));var _possibleConstructorReturn2=_interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));var _getPrototypeOf2=_interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));var _inherits2=_interopRequireDefault(require("@babel/runtime/helpers/inherits"));var _react=_interopRequireDefault(require("react"));var _StackRouter=_interopRequireDefault(require("../StackRouter"));var StackActions=_interopRequireWildcard(require("../StackActions"));var NavigationActions=_interopRequireWildcard(require("../../NavigationActions"));var _KeyGenerator=require("../KeyGenerator.ts");var _jsxFileName="/Users/satya/Workspace/Callstack/react-navigation-core/src/routers/__tests__/StackRouter-test.js";beforeEach(function(){(0,_KeyGenerator._TESTING_ONLY_normalize_keys)();});var ListScreen=function ListScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:14}});};var ProfileNavigator=function ProfileNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:16}});};ProfileNavigator.router=(0,_StackRouter.default)({list:{path:'list/:id',screen:ListScreen}});var MainNavigator=function MainNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:24}});};MainNavigator.router=(0,_StackRouter.default)({profile:{path:'p/:id',screen:ProfileNavigator}});var LoginScreen=function LoginScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:32}});};var AuthNavigator=function AuthNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:34}});};AuthNavigator.router=(0,_StackRouter.default)({login:{screen:LoginScreen}});var BarScreen=function BarScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:41}});};var FooNavigator=function(_React$Component){(0,_inherits2.default)(FooNavigator,_React$Component);function FooNavigator(){(0,_classCallCheck2.default)(this,FooNavigator);return(0,_possibleConstructorReturn2.default)(this,(0,_getPrototypeOf2.default)(FooNavigator).apply(this,arguments));}(0,_createClass2.default)(FooNavigator,[{key:"render",value:function render(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:51}});}}]);return FooNavigator;}(_react.default.Component);FooNavigator.router=(0,_StackRouter.default)({bar:{path:'b/:barThing',screen:BarScreen}});var PersonScreen=function PersonScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:55}});};var TestStackRouter=(0,_StackRouter.default)({main:{screen:MainNavigator},baz:{path:null,screen:FooNavigator},auth:{screen:AuthNavigator},person:{path:'people/:id',screen:PersonScreen},foo:{path:'fo/:fooThing',screen:FooNavigator}});describe('StackRouter',function(){it('Gets the active screen for a given state',function(){var FooScreen=function FooScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:80}});};var BarScreen=function BarScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:81}});};var router=(0,_StackRouter.default)({foo:{screen:FooScreen},bar:{screen:BarScreen}});expect(router.getComponentForState({index:0,isTransitioning:false,routes:[{key:'a',routeName:'foo'},{key:'b',routeName:'bar'},{key:'c',routeName:'foo'}]})).toBe(FooScreen);expect(router.getComponentForState({index:1,isTransitioning:false,routes:[{key:'a',routeName:'foo'},{key:'b',routeName:'bar'}]})).toBe(BarScreen);});it('Handles getScreen in getComponentForState',function(){var FooScreen=function FooScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:115}});};var BarScreen=function BarScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:116}});};var router=(0,_StackRouter.default)({foo:{getScreen:function getScreen(){return FooScreen;}},bar:{getScreen:function getScreen(){return BarScreen;}}});expect(router.getComponentForState({index:0,isTransitioning:false,routes:[{key:'a',routeName:'foo'},{key:'b',routeName:'bar'},{key:'c',routeName:'foo'}]})).toBe(FooScreen);expect(router.getComponentForState({index:1,isTransitioning:false,routes:[{key:'a',routeName:'foo'},{key:'b',routeName:'bar'}]})).toBe(BarScreen);});it('Gets the screen for given route',function(){var FooScreen=function FooScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:150}});};var BarScreen=function(_React$Component2){(0,_inherits2.default)(BarScreen,_React$Component2);function BarScreen(){(0,_classCallCheck2.default)(this,BarScreen);return(0,_possibleConstructorReturn2.default)(this,(0,_getPrototypeOf2.default)(BarScreen).apply(this,arguments));}(0,_createClass2.default)(BarScreen,[{key:"render",value:function render(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:153}});}}]);return BarScreen;}(_react.default.Component);var BazScreen=function(_React$Component3){(0,_inherits2.default)(BazScreen,_React$Component3);function BazScreen(){(0,_classCallCheck2.default)(this,BazScreen);return(0,_possibleConstructorReturn2.default)(this,(0,_getPrototypeOf2.default)(BazScreen).apply(this,arguments));}(0,_createClass2.default)(BazScreen,[{key:"render",value:function render(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:158}});}}]);return BazScreen;}(_react.default.Component);var router=(0,_StackRouter.default)({foo:{screen:FooScreen},bar:{screen:BarScreen},baz:{screen:BazScreen}});expect(router.getComponentForRouteName('foo')).toBe(FooScreen);expect(router.getComponentForRouteName('bar')).toBe(BarScreen);expect(router.getComponentForRouteName('baz')).toBe(BazScreen);});it('Handles getScreen in getComponent',function(){var FooScreen=function FooScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:179}});};var BarScreen=function(_React$Component4){(0,_inherits2.default)(BarScreen,_React$Component4);function BarScreen(){(0,_classCallCheck2.default)(this,BarScreen);return(0,_possibleConstructorReturn2.default)(this,(0,_getPrototypeOf2.default)(BarScreen).apply(this,arguments));}(0,_createClass2.default)(BarScreen,[{key:"render",value:function render(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:182}});}}]);return BarScreen;}(_react.default.Component);var BazScreen=function(_React$Component5){(0,_inherits2.default)(BazScreen,_React$Component5);function BazScreen(){(0,_classCallCheck2.default)(this,BazScreen);return(0,_possibleConstructorReturn2.default)(this,(0,_getPrototypeOf2.default)(BazScreen).apply(this,arguments));}(0,_createClass2.default)(BazScreen,[{key:"render",value:function render(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:187}});}}]);return BazScreen;}(_react.default.Component);var router=(0,_StackRouter.default)({foo:{getScreen:function getScreen(){return FooScreen;}},bar:{getScreen:function getScreen(){return BarScreen;}},baz:{getScreen:function getScreen(){return BazScreen;}}});expect(router.getComponentForRouteName('foo')).toBe(FooScreen);expect(router.getComponentForRouteName('bar')).toBe(BarScreen);expect(router.getComponentForRouteName('baz')).toBe(BazScreen);});it('Parses simple paths',function(){expect(AuthNavigator.router.getActionForPathAndParams('login')).toEqual({type:NavigationActions.NAVIGATE,routeName:'login',params:{}});});it('Parses paths with a param',function(){expect(TestStackRouter.getActionForPathAndParams('people/foo')).toEqual({type:NavigationActions.NAVIGATE,routeName:'person',params:{id:'foo'}});});it('Parses paths with a query',function(){expect(TestStackRouter.getActionForPathAndParams('people/foo',{code:'test',foo:'bar'})).toEqual({type:NavigationActions.NAVIGATE,routeName:'person',params:{id:'foo',code:'test',foo:'bar'}});});it('Parses paths with an empty query value',function(){expect(TestStackRouter.getActionForPathAndParams('people/foo',{code:'',foo:'bar'})).toEqual({type:NavigationActions.NAVIGATE,routeName:'person',params:{id:'foo',code:'',foo:'bar'}});});it('Correctly parses a path without arguments into an action chain',function(){var uri='auth/login';var action=TestStackRouter.getActionForPathAndParams(uri);expect(action).toEqual({type:NavigationActions.NAVIGATE,routeName:'auth',params:{},action:{type:NavigationActions.NAVIGATE,routeName:'login',params:{}}});});it('Correctly parses a path with arguments into an action chain',function(){var uri='main/p/4/list/10259959195';var action=TestStackRouter.getActionForPathAndParams(uri);expect(action).toEqual({type:NavigationActions.NAVIGATE,routeName:'main',params:{},action:{type:NavigationActions.NAVIGATE,routeName:'profile',params:{id:'4'},action:{type:NavigationActions.NAVIGATE,routeName:'list',params:{id:'10259959195'}}}});});it('Correctly parses a path to the router connected to another router through a pure wildcard route into an action chain',function(){var uri='b/123';var action=TestStackRouter.getActionForPathAndParams(uri);expect(action).toEqual({type:NavigationActions.NAVIGATE,routeName:'baz',params:{},action:{type:NavigationActions.NAVIGATE,routeName:'bar',params:{barThing:'123'}}});});it('Correctly returns null action for non-existent path',function(){var uri='asdf/1234';var action=TestStackRouter.getActionForPathAndParams(uri);expect(action).toEqual(null);});it('Correctly returns action chain for partially matched path',function(){var uri='auth/login';var action=TestStackRouter.getActionForPathAndParams(uri);expect(action).toEqual({type:NavigationActions.NAVIGATE,routeName:'auth',params:{},action:{type:NavigationActions.NAVIGATE,routeName:'login',params:{}}});});it('Correctly returns action for path with multiple parameters',function(){var path='fo/22/b/hello';var action=TestStackRouter.getActionForPathAndParams(path);expect(action).toEqual({type:NavigationActions.NAVIGATE,routeName:'foo',params:{fooThing:'22'},action:{type:NavigationActions.NAVIGATE,routeName:'bar',params:{barThing:'hello'}}});});it('Pushes other navigators when navigating to an unopened route name',function(){var Bar=function Bar(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:356}});};Bar.router=(0,_StackRouter.default)({baz:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:358}});}},qux:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:359}});}}});var TestRouter=(0,_StackRouter.default)({foo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:362}});}},bar:{screen:Bar}});var initState=TestRouter.getStateForAction(NavigationActions.init());expect(initState).toEqual({index:0,isTransitioning:false,key:'StackRouterRoot',routes:[{key:'id-0',routeName:'foo'}]});var pushedState=TestRouter.getStateForAction(NavigationActions.navigate({routeName:'qux'}),initState);expect(pushedState.index).toEqual(1);expect(pushedState.routes[1].index).toEqual(1);expect(pushedState.routes[1].routes[1].routeName).toEqual('qux');});it('push bubbles up',function(){var ChildNavigator=function ChildNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:382}});};ChildNavigator.router=(0,_StackRouter.default)({Baz:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:384}});}},Qux:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:385}});}}});var router=(0,_StackRouter.default)({Foo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:388}});}},Bar:{screen:ChildNavigator},Bad:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:390}});}}});var state=router.getStateForAction({type:NavigationActions.INIT});var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar'},state);var state3=router.getStateForAction({type:StackActions.PUSH,routeName:'Bad'},state2);expect(state3&&state3.index).toEqual(2);expect(state3&&state3.routes.length).toEqual(3);});it('pop bubbles up',function(){var ChildNavigator=function ChildNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:412}});};ChildNavigator.router=(0,_StackRouter.default)({Baz:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:414}});}},Qux:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:415}});}}});var router=(0,_StackRouter.default)({Foo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:418}});}},Bar:{screen:ChildNavigator}});var state=router.getStateForAction({type:NavigationActions.INIT});var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar',key:'StackRouterRoot'},state);var state3=router.getStateForAction({type:StackActions.POP},state2);expect(state3&&state3.index).toEqual(0);});it('Handle navigation to nested navigator',function(){var action=TestStackRouter.getActionForPathAndParams('fo/22/b/hello');var state2=TestStackRouter.getStateForAction(action);expect(state2).toEqual({index:0,isTransitioning:false,key:'StackRouterRoot',routes:[{index:0,key:'id-1',isTransitioning:false,routeName:'foo',params:{fooThing:'22'},routes:[{routeName:'bar',key:'id-0',params:{barThing:'hello'}}]}]});});it('popToTop bubbles up',function(){var ChildNavigator=function ChildNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:472}});};ChildNavigator.router=(0,_StackRouter.default)({Baz:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:474}});}},Qux:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:475}});}}});var router=(0,_StackRouter.default)({Foo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:479}});}},Bar:{screen:ChildNavigator}});var state=router.getStateForAction({type:NavigationActions.INIT});var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar'},state);var state3=router.getStateForAction({type:StackActions.POP_TO_TOP},state2);expect(state3&&state3.index).toEqual(0);});it('popToTop targets StackRouter by key if specified',function(){var ChildNavigator=function ChildNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:501}});};ChildNavigator.router=(0,_StackRouter.default)({Baz:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:503}});}},Qux:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:504}});}}});var router=(0,_StackRouter.default)({Foo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:507}});}},Bar:{screen:ChildNavigator}});var state=router.getStateForAction({type:NavigationActions.INIT});var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar'},state);var state3=router.getStateForAction({type:StackActions.POP_TO_TOP,key:state2.key},state2);expect(state3&&state3.index).toEqual(0);});it('pop action works as expected',function(){var TestRouter=(0,_StackRouter.default)({foo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:531}});}},bar:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:532}});}}});var state={index:3,isTransitioning:false,routes:[{key:'A',routeName:'foo'},{key:'B',routeName:'bar',params:{bazId:'321'}},{key:'C',routeName:'foo'},{key:'D',routeName:'bar'}]};var poppedState=TestRouter.getStateForAction(StackActions.pop(),state);expect(poppedState.routes.length).toBe(3);expect(poppedState.index).toBe(2);expect(poppedState.isTransitioning).toBe(true);var poppedState2=TestRouter.getStateForAction(StackActions.pop({n:2,immediate:true}),state);expect(poppedState2.routes.length).toBe(2);expect(poppedState2.index).toBe(1);expect(poppedState2.isTransitioning).toBe(false);var poppedState3=TestRouter.getStateForAction(StackActions.pop({n:5}),state);expect(poppedState3.routes.length).toBe(1);expect(poppedState3.index).toBe(0);expect(poppedState3.isTransitioning).toBe(true);});it('popToTop works as expected',function(){var TestRouter=(0,_StackRouter.default)({foo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:569}});}},bar:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:570}});}}});var state={index:2,isTransitioning:false,routes:[{key:'A',routeName:'foo'},{key:'B',routeName:'bar',params:{bazId:'321'}},{key:'C',routeName:'foo'}]};var poppedState=TestRouter.getStateForAction(StackActions.popToTop(),state);expect(poppedState.routes.length).toBe(1);expect(poppedState.index).toBe(0);expect(poppedState.isTransitioning).toBe(true);var poppedState2=TestRouter.getStateForAction(StackActions.popToTop(),poppedState);expect(poppedState).toEqual(poppedState2);var poppedImmediatelyState=TestRouter.getStateForAction(StackActions.popToTop({immediate:true}),state);expect(poppedImmediatelyState.routes.length).toBe(1);expect(poppedImmediatelyState.index).toBe(0);expect(poppedImmediatelyState.isTransitioning).toBe(false);});it('Navigate does not push duplicate routeName',function(){var TestRouter=(0,_StackRouter.default)({foo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:606}});}},bar:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:607}});}}},{initialRouteName:'foo'});var initState=TestRouter.getStateForAction(NavigationActions.init());var barState=TestRouter.getStateForAction(NavigationActions.navigate({routeName:'bar'}),initState);expect(barState.index).toEqual(1);expect(barState.routes[1].routeName).toEqual('bar');var navigateOnBarState=TestRouter.getStateForAction(NavigationActions.navigate({routeName:'bar'}),barState);expect(navigateOnBarState).toEqual(null);});it('Navigate focuses given routeName if already active in stack',function(){var TestRouter=(0,_StackRouter.default)({foo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:628}});}},bar:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:629}});}},baz:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:630}});}}},{initialRouteName:'foo'});var initialState=TestRouter.getStateForAction(NavigationActions.init());var fooBarState=TestRouter.getStateForAction(NavigationActions.navigate({routeName:'bar'}),initialState);var fooBarBazState=TestRouter.getStateForAction(NavigationActions.navigate({routeName:'baz'}),fooBarState);expect(fooBarBazState.index).toEqual(2);expect(fooBarBazState.routes[2].routeName).toEqual('baz');var fooState=TestRouter.getStateForAction(NavigationActions.navigate({routeName:'foo'}),fooBarBazState);expect(fooState.index).toEqual(0);expect(fooState.routes.length).toEqual(1);expect(fooState.routes[0].routeName).toEqual('foo');});it('Navigate pushes duplicate routeName if unique key is provided',function(){var TestRouter=(0,_StackRouter.default)({foo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:657}});}},bar:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:658}});}}});var initState=TestRouter.getStateForAction(NavigationActions.init());var pushedState=TestRouter.getStateForAction(NavigationActions.navigate({routeName:'bar'}),initState);expect(pushedState.index).toEqual(1);expect(pushedState.routes[1].routeName).toEqual('bar');var pushedTwiceState=TestRouter.getStateForAction(NavigationActions.navigate({routeName:'bar',key:'new-unique-key!'}),pushedState);expect(pushedTwiceState.index).toEqual(2);expect(pushedTwiceState.routes[2].routeName).toEqual('bar');});it('Navigate from top propagates to any arbitary depth of stacks',function(){var GrandChildNavigator=function GrandChildNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:676}});};GrandChildNavigator.router=(0,_StackRouter.default)({Quux:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:678}});}},Corge:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:679}});}}});var ChildNavigator=function ChildNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:682}});};ChildNavigator.router=(0,_StackRouter.default)({Baz:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:684}});}},Woo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:685}});}},Qux:{screen:GrandChildNavigator}});var Parent=(0,_StackRouter.default)({Foo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:690}});}},Bar:{screen:ChildNavigator}});var state=Parent.getStateForAction({type:NavigationActions.INIT});var state2=Parent.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Corge'},state);expect(state2.isTransitioning).toEqual(true);expect(state2.index).toEqual(1);expect(state2.routes[1].index).toEqual(1);expect(state2.routes[1].routes[1].index).toEqual(1);expect(state2.routes[1].routes[1].routes[1].routeName).toEqual('Corge');});it('Navigate to initial screen is possible',function(){var TestRouter=(0,_StackRouter.default)({foo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:713}});}},bar:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:714}});}}},{initialRouteKey:'foo'});var initState=TestRouter.getStateForAction(NavigationActions.init());var pushedState=TestRouter.getStateForAction(NavigationActions.navigate({routeName:'foo',key:'foo'}),initState);expect(pushedState).toEqual(null);});it('Navigate with key and without it is idempotent',function(){var TestRouter=(0,_StackRouter.default)({foo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:728}});}},bar:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:729}});}}});var initState=TestRouter.getStateForAction(NavigationActions.init());var pushedState=TestRouter.getStateForAction(NavigationActions.navigate({routeName:'bar',key:'a'}),initState);expect(pushedState.index).toEqual(1);expect(pushedState.routes[1].routeName).toEqual('bar');var pushedTwiceState=TestRouter.getStateForAction(NavigationActions.navigate({routeName:'bar',key:'a'}),pushedState);expect(pushedTwiceState).toEqual(null);});it('Navigate on inactive stackrouter is idempotent',function(){var FirstChildNavigator=function FirstChildNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:747}});};FirstChildNavigator.router=(0,_StackRouter.default)({First1:function First1(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:749}});},First2:function First2(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:750}});}});var SecondChildNavigator=function SecondChildNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:753}});};SecondChildNavigator.router=(0,_StackRouter.default)({Second1:function Second1(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:755}});},Second2:function Second2(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:756}});}});var router=(0,_StackRouter.default)({Leaf:function Leaf(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:760}});},First:FirstChildNavigator,Second:SecondChildNavigator});var state=router.getStateForAction({type:NavigationActions.INIT});var first=router.getStateForAction(NavigationActions.navigate({routeName:'First2'}),state);var second=router.getStateForAction(NavigationActions.navigate({routeName:'Second2'}),first);var firstAgain=router.getStateForAction(NavigationActions.navigate({routeName:'First2',params:{debug:true}}),second);expect(first.routes.length).toEqual(2);expect(first.index).toEqual(1);expect(second.routes.length).toEqual(3);expect(second.index).toEqual(2);expect(firstAgain.index).toEqual(1);expect(firstAgain.routes.length).toEqual(2);});it('Navigate to current routeName returns null to indicate handled action',function(){var TestRouter=(0,_StackRouter.default)({foo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:796}});}},bar:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:797}});}}});var initState=TestRouter.getStateForAction(NavigationActions.init());var navigatedState=TestRouter.getStateForAction(NavigationActions.navigate({routeName:'foo'}),initState);expect(navigatedState).toBe(null);});it('Push behaves like navigate, except for key',function(){var TestRouter=(0,_StackRouter.default)({foo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:809}});}},bar:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:810}});}}});var initState=TestRouter.getStateForAction(NavigationActions.init());var pushedState=TestRouter.getStateForAction(StackActions.push({routeName:'bar'}),initState);expect(pushedState.index).toEqual(1);expect(pushedState.routes[1].routeName).toEqual('bar');expect(function(){TestRouter.getStateForAction({type:StackActions.PUSH,routeName:'bar',key:'a'},pushedState);}).toThrow('StackRouter does not support key on the push action');});it('Push adds new routes every time',function(){var TestRouter=(0,_StackRouter.default)({foo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:829}});}},bar:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:830}});}}});var initState=TestRouter.getStateForAction(NavigationActions.init());var pushedState=TestRouter.getStateForAction(StackActions.push({routeName:'bar'}),initState);expect(pushedState.index).toEqual(1);expect(pushedState.routes[1].routeName).toEqual('bar');var secondPushedState=TestRouter.getStateForAction(StackActions.push({routeName:'bar'}),pushedState);expect(secondPushedState.index).toEqual(2);expect(secondPushedState.routes[2].routeName).toEqual('bar');});it('Navigate backwards with key removes leading routes',function(){var TestRouter=(0,_StackRouter.default)({foo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:849}});}},bar:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:850}});}}});var initState=TestRouter.getStateForAction(NavigationActions.init());var pushedState=TestRouter.getStateForAction(NavigationActions.navigate({routeName:'bar',key:'a'}),initState);var pushedTwiceState=TestRouter.getStateForAction(NavigationActions.navigate({routeName:'bar',key:'b`'}),pushedState);var pushedThriceState=TestRouter.getStateForAction(NavigationActions.navigate({routeName:'foo',key:'c`'}),pushedTwiceState);expect(pushedThriceState.routes.length).toEqual(4);var navigatedBackToFirstRouteState=TestRouter.getStateForAction(NavigationActions.navigate({routeName:'foo',key:pushedThriceState.routes[0].key}),pushedThriceState);expect(navigatedBackToFirstRouteState.index).toEqual(0);expect(navigatedBackToFirstRouteState.routes.length).toEqual(1);});it('Handle basic stack logic for plain components',function(){var FooScreen=function FooScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:879}});};var BarScreen=function BarScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:880}});};var router=(0,_StackRouter.default)({Foo:{screen:FooScreen},Bar:{screen:BarScreen}});var state=router.getStateForAction({type:NavigationActions.INIT});expect(state).toEqual({index:0,isTransitioning:false,key:'StackRouterRoot',routes:[{key:'id-0',routeName:'Foo'}]});var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar',params:{name:'Zoom'},immediate:true},state);expect(state2.index).toEqual(1);expect(state2.routes[1].routeName).toEqual('Bar');expect(state2.routes[1].params).toEqual({name:'Zoom'});expect(state2.routes.length).toEqual(2);var state3=router.getStateForAction({type:NavigationActions.BACK,immediate:true},state2);expect(state3).toEqual({index:0,isTransitioning:false,key:'StackRouterRoot',routes:[{key:'id-0',routeName:'Foo'}]});});it('Replace action works',function(){var TestRouter=(0,_StackRouter.default)({foo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:933}});}},bar:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:934}});}}});var initState=TestRouter.getStateForAction(NavigationActions.navigate({routeName:'foo'}));var replacedState=TestRouter.getStateForAction(StackActions.replace({routeName:'bar',params:{meaning:42},key:initState.routes[0].key}),initState);expect(replacedState.index).toEqual(0);expect(replacedState.routes.length).toEqual(1);expect(replacedState.routes[0].key).not.toEqual(initState.routes[0].key);expect(replacedState.routes[0].routeName).toEqual('bar');expect(replacedState.routes[0].params.meaning).toEqual(42);var replacedState2=TestRouter.getStateForAction(StackActions.replace({routeName:'bar',key:initState.routes[0].key,newKey:'wow'}),initState);expect(replacedState2.index).toEqual(0);expect(replacedState2.routes.length).toEqual(1);expect(replacedState2.routes[0].key).toEqual('wow');expect(replacedState2.routes[0].routeName).toEqual('bar');});it('Replace action returns most recent route if no key is provided',function(){var GrandChildNavigator=function GrandChildNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:967}});};GrandChildNavigator.router=(0,_StackRouter.default)({Quux:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:969}});}},Corge:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:970}});}},Grault:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:971}});}}});var ChildNavigator=function ChildNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:974}});};ChildNavigator.router=(0,_StackRouter.default)({Baz:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:976}});}},Woo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:977}});}},Qux:{screen:GrandChildNavigator}});var router=(0,_StackRouter.default)({Foo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:982}});}},Bar:{screen:ChildNavigator}});var state=router.getStateForAction({type:NavigationActions.INIT});var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar'},state);var state3=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Qux'},state2);var state4=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Corge'},state3);var state5=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Grault'},state4);var replacedState=router.getStateForAction(StackActions.replace({routeName:'Woo',params:{meaning:42}}),state5);var originalCurrentScreen=state5.routes[1].routes[1].routes[2];var replacedCurrentScreen=replacedState.routes[1].routes[1].routes[2];expect(replacedState.routes[1].routes[1].index).toEqual(2);expect(replacedState.routes[1].routes[1].routes.length).toEqual(3);expect(replacedCurrentScreen.key).not.toEqual(originalCurrentScreen.key);expect(replacedCurrentScreen.routeName).not.toEqual(originalCurrentScreen.routeName);expect(replacedCurrentScreen.routeName).toEqual('Woo');expect(replacedCurrentScreen.params.meaning).toEqual(42);});it('Handles push transition logic with completion action',function(){var FooScreen=function FooScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1038}});};var BarScreen=function BarScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1039}});};var router=(0,_StackRouter.default)({Foo:{screen:FooScreen},Bar:{screen:BarScreen}});var state=router.getStateForAction({type:NavigationActions.INIT});var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar',params:{name:'Zoom'}},state);expect(state2&&state2.index).toEqual(1);expect(state2&&state2.isTransitioning).toEqual(true);var state3=router.getStateForAction({type:StackActions.COMPLETE_TRANSITION,toChildKey:state2.routes[1].key},state2);expect(state3&&state3.index).toEqual(1);expect(state3&&state3.isTransitioning).toEqual(false);});it('Completion action does not work with incorrect key',function(){var FooScreen=function FooScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1071}});};var router=(0,_StackRouter.default)({Foo:{screen:FooScreen},Bar:{screen:FooScreen}});var state={key:'StackKey',index:1,isTransitioning:true,routes:[{key:'a',routeName:'Foo'},{key:'b',routeName:'Foo'}]};var outputState=router.getStateForAction({type:StackActions.COMPLETE_TRANSITION,toChildKey:state.routes[state.index].key,key:'not StackKey'},state);expect(outputState.isTransitioning).toEqual(true);});it('Completion action does not work with incorrect toChildKey',function(){var FooScreen=function FooScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1098}});};var router=(0,_StackRouter.default)({Foo:{screen:FooScreen},Bar:{screen:FooScreen}});var state={key:'StackKey',index:1,isTransitioning:true,routes:[{key:'a',routeName:'Foo'},{key:'b',routeName:'Foo'}]};var outputState=router.getStateForAction({type:StackActions.COMPLETE_TRANSITION,toChildKey:'incorrect',key:'StackKey'},state);expect(outputState.isTransitioning).toEqual(true);});it('Back action parent is prioritized over inactive child routers',function(){var Bar=function Bar(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1126}});};Bar.router=(0,_StackRouter.default)({baz:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1128}});}},qux:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1129}});}}});var TestRouter=(0,_StackRouter.default)({foo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1132}});}},bar:{screen:Bar},boo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1134}});}}});var state={key:'top',index:3,routes:[{routeName:'foo',key:'f'},{routeName:'bar',key:'b',index:1,routes:[{routeName:'baz',key:'bz'},{routeName:'qux',key:'bx'}]},{routeName:'foo',key:'f1'},{routeName:'boo',key:'z'}]};var testState=TestRouter.getStateForAction({type:NavigationActions.BACK},state);expect(testState.index).toBe(2);expect(testState.routes[1].index).toBe(1);});it('Handle basic stack logic for components with router',function(){var FooScreen=function FooScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1163}});};var BarScreen=function BarScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1164}});};BarScreen.router=(0,_StackRouter.default)({Xyz:{screen:function screen(){return null;}}});var router=(0,_StackRouter.default)({Foo:{screen:FooScreen},Bar:{screen:BarScreen}});var state=router.getStateForAction({type:NavigationActions.INIT});expect(state).toEqual({index:0,isTransitioning:false,key:'StackRouterRoot',routes:[{key:'id-0',routeName:'Foo'}]});var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar',params:{name:'Zoom'},immediate:true},state);expect(state2&&state2.index).toEqual(1);expect(state2&&state2.routes[1].routeName).toEqual('Bar');expect(state2&&state2.routes[1].params).toEqual({name:'Zoom'});expect(state2&&state2.routes.length).toEqual(2);var state3=router.getStateForAction({type:NavigationActions.BACK,immediate:true},state2);expect(state3).toEqual({index:0,isTransitioning:false,key:'StackRouterRoot',routes:[{key:'id-0',routeName:'Foo'}]});});it('Gets deep path (stack behavior)',function(){var ScreenA=function ScreenA(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1221}});};var ScreenB=function ScreenB(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1222}});};ScreenA.router=(0,_StackRouter.default)({Boo:{path:'boo',screen:ScreenB},Baz:{path:'baz/:bazId',screen:ScreenB}});var router=(0,_StackRouter.default)({Foo:{path:'f/:id',screen:ScreenA},Bar:{screen:ScreenB}});var state={index:0,isTransitioning:false,routes:[{index:1,key:'Foo',routeName:'Foo',params:{id:'123'},routes:[{key:'Boo',routeName:'Boo'},{key:'Baz',routeName:'Baz',params:{bazId:'321'}}]},{key:'Bar',routeName:'Bar'}]};var _router$getPathAndPar=router.getPathAndParamsForState(state),path=_router$getPathAndPar.path,params=_router$getPathAndPar.params;expect(path).toEqual('f/123/baz/321');expect(params).toEqual({});});it('Handle goBack identified by key',function(){var FooScreen=function FooScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1262}});};var BarScreen=function BarScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1263}});};var router=(0,_StackRouter.default)({Foo:{screen:FooScreen},Bar:{screen:BarScreen}});var state=router.getStateForAction({type:NavigationActions.INIT});var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar',immediate:true,params:{name:'Zoom'}},state);var state3=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar',immediate:true,params:{name:'Foo'}},state2);var state4=router.getStateForAction({type:NavigationActions.BACK,key:'wrongKey'},state3);expect(state3).toEqual(state4);var state5=router.getStateForAction({type:NavigationActions.BACK,key:state3&&state3.routes[1].key,immediate:true},state4);expect(state5).toEqual(state);});it('Handle initial route navigation',function(){var FooScreen=function FooScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1308}});};var BarScreen=function BarScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1309}});};var router=(0,_StackRouter.default)({Foo:{screen:FooScreen},Bar:{screen:BarScreen}},{initialRouteName:'Bar'});var state=router.getStateForAction({type:NavigationActions.INIT});expect(state).toEqual({index:0,isTransitioning:false,key:'StackRouterRoot',routes:[{key:'id-0',routeName:'Bar'}]});});it('Initial route params appear in nav state',function(){var FooScreen=function FooScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1336}});};var router=(0,_StackRouter.default)({Foo:{screen:FooScreen}},{initialRouteName:'Foo',initialRouteParams:{foo:'bar'}});var state=router.getStateForAction({type:NavigationActions.INIT});expect(state).toEqual({index:0,isTransitioning:false,key:'StackRouterRoot',routes:[{key:state&&state.routes[0].key,routeName:'Foo',params:{foo:'bar'}}]});});it('params in route config are merged with initialRouteParams',function(){var FooScreen=function FooScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1361}});};var router=(0,_StackRouter.default)({Foo:{screen:FooScreen,params:{foo:'not-bar',meaning:42}}},{initialRouteName:'Foo',initialRouteParams:{foo:'bar'}});var state=router.getStateForAction({type:NavigationActions.INIT});expect(state).toEqual({index:0,isTransitioning:false,key:'StackRouterRoot',routes:[{key:state&&state.routes[0].key,routeName:'Foo',params:{foo:'bar',meaning:42}}]});});it('Action params appear in nav state',function(){var FooScreen=function FooScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1387}});};var BarScreen=function BarScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1388}});};var router=(0,_StackRouter.default)({Foo:{screen:FooScreen},Bar:{screen:BarScreen}});var state=router.getStateForAction({type:NavigationActions.INIT});var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar',params:{bar:'42'},immediate:true},state);expect(state2).not.toBeNull();expect(state2&&state2.index).toEqual(1);expect(state2&&state2.routes[1].params).toEqual({bar:'42'});});it('Handles the SetParams action',function(){var router=(0,_StackRouter.default)({Foo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1416}});}},Bar:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1419}});}}},{initialRouteName:'Bar',initialRouteParams:{name:'Zoo'}});var state=router.getStateForAction({type:NavigationActions.INIT});var key=state&&state.routes[0].key;var state2=key&&router.getStateForAction({type:NavigationActions.SET_PARAMS,params:{name:'Qux'},key:key},state);expect(state2&&state2.index).toEqual(0);expect(state2&&state2.routes[0].params).toEqual({name:'Qux'});});it('Handles the SetParams action for inactive routes',function(){var router=(0,_StackRouter.default)({Foo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1447}});}},Bar:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1450}});}}},{initialRouteName:'Bar',initialRouteParams:{name:'Zoo'}});var initialState={index:1,routes:[{key:'RouteA',routeName:'Foo',params:{name:'InitialParam',other:'Unchanged'}},{key:'RouteB',routeName:'Bar',params:{}}]};var state=router.getStateForAction({type:NavigationActions.SET_PARAMS,params:{name:'NewParam'},key:'RouteA'},initialState);expect(state.index).toEqual(1);expect(state.routes[0].params).toEqual({name:'NewParam',other:'Unchanged'});});it('Handles the setParams action with nested routers',function(){var ChildNavigator=function ChildNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1485}});};ChildNavigator.router=(0,_StackRouter.default)({Baz:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1487}});}},Qux:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1488}});}}});var router=(0,_StackRouter.default)({Foo:{screen:ChildNavigator},Bar:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1492}});}}});var state=router.getStateForAction({type:NavigationActions.INIT});var state2=router.getStateForAction({type:NavigationActions.SET_PARAMS,params:{name:'foobar'},key:'id-0'},state);expect(state2&&state2.index).toEqual(0);expect(state2&&state2.routes[0].routes).toEqual([{key:'id-0',routeName:'Baz',params:{name:'foobar'}}]);});it('Handles the reset action',function(){var router=(0,_StackRouter.default)({Foo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1516}});}},Bar:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1519}});}}});var state=router.getStateForAction({type:NavigationActions.INIT});var state2=router.getStateForAction({type:StackActions.RESET,actions:[{type:NavigationActions.NAVIGATE,routeName:'Foo',params:{bar:'42'},immediate:true},{type:NavigationActions.NAVIGATE,routeName:'Bar',immediate:true}],index:1},state);expect(state2&&state2.index).toEqual(1);expect(state2&&state2.routes[0].params).toEqual({bar:'42'});expect(state2&&state2.routes[0].routeName).toEqual('Foo');expect(state2&&state2.routes[1].routeName).toEqual('Bar');});it('Handles the reset action only with correct key set',function(){var router=(0,_StackRouter.default)({Foo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1552}});}},Bar:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1555}});}}});var state1=router.getStateForAction({type:NavigationActions.INIT});var resetAction={type:StackActions.RESET,key:'Bad Key',actions:[{type:NavigationActions.NAVIGATE,routeName:'Foo',params:{bar:'42'},immediate:true},{type:NavigationActions.NAVIGATE,routeName:'Bar',immediate:true}],index:1};var state2=router.getStateForAction(resetAction,state1);expect(state2).toEqual(state1);var state3=router.getStateForAction((0,_objectSpread2.default)({},resetAction,{key:state2.key}),state2);expect(state3&&state3.index).toEqual(1);expect(state3&&state3.routes[0].params).toEqual({bar:'42'});expect(state3&&state3.routes[0].routeName).toEqual('Foo');expect(state3&&state3.routes[1].routeName).toEqual('Bar');});it('Handles the reset action with nested Router',function(){var ChildRouter=(0,_StackRouter.default)({baz:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1595}});}}});var ChildNavigator=function ChildNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1599}});};ChildNavigator.router=ChildRouter;var router=(0,_StackRouter.default)({Foo:{screen:ChildNavigator},Bar:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1607}});}}});var state=router.getStateForAction({type:NavigationActions.INIT});var state2=router.getStateForAction({type:StackActions.RESET,key:null,actions:[{type:NavigationActions.NAVIGATE,routeName:'Foo',immediate:true}],index:0},state);expect(state2&&state2.index).toEqual(0);expect(state2&&state2.routes[0].routeName).toEqual('Foo');expect(state2&&state2.routes[0].routes[0].routeName).toEqual('baz');});it('Handles the reset action with a key',function(){var ChildRouter=(0,_StackRouter.default)({baz:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1635}});}}});var ChildNavigator=function ChildNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1639}});};ChildNavigator.router=ChildRouter;var router=(0,_StackRouter.default)({Foo:{screen:ChildNavigator},Bar:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1647}});}}});var state=router.getStateForAction({type:NavigationActions.INIT});var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Foo',immediate:true,action:{type:NavigationActions.NAVIGATE,routeName:'baz',immediate:true}},state);var state3=router.getStateForAction({type:StackActions.RESET,key:'Init',actions:[{type:NavigationActions.NAVIGATE,routeName:'Foo',immediate:true}],index:0},state2);var state4=router.getStateForAction({type:StackActions.RESET,key:null,actions:[{type:NavigationActions.NAVIGATE,routeName:'Bar',immediate:true}],index:0},state3);expect(state4&&state4.index).toEqual(0);expect(state4&&state4.routes[0].routeName).toEqual('Bar');});it('Handles the navigate action with params and nested StackRouter',function(){var ChildNavigator=function ChildNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1700}});};ChildNavigator.router=(0,_StackRouter.default)({Baz:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1701}});}}});var router=(0,_StackRouter.default)({Foo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1704}});}},Bar:{screen:ChildNavigator}});var state=router.getStateForAction({type:NavigationActions.INIT});var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,immediate:true,routeName:'Bar',params:{foo:'42'}},state);expect(state2&&state2.routes[1].params).toEqual({foo:'42'});expect(state2&&state2.routes[1].routes).toEqual([expect.objectContaining({routeName:'Baz',params:{foo:'42'}})]);});it('Navigate action to previous nested StackRouter causes isTransitioning start',function(){var ChildNavigator=function ChildNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1727}});};ChildNavigator.router=(0,_StackRouter.default)({Baz:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1729}});}}});var router=(0,_StackRouter.default)({Bar:{screen:ChildNavigator},Foo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1733}});}}});var state=router.getStateForAction({type:NavigationActions.NAVIGATE,immediate:true,routeName:'Foo'},router.getStateForAction({type:NavigationActions.INIT}));var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Baz'},state);expect(state2.index).toEqual(0);expect(state2.isTransitioning).toEqual(true);});it('Handles the navigate action with params and nested StackRouter as a first action',function(){var state=TestStackRouter.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'main',params:{code:'test',foo:'bar'},action:{type:NavigationActions.NAVIGATE,routeName:'profile',params:{id:'4',code:'test',foo:'bar'},action:{type:NavigationActions.NAVIGATE,routeName:'list',params:{id:'10259959195',code:'test',foo:'bar'}}}});expect(state).toEqual({index:0,isTransitioning:false,key:'StackRouterRoot',routes:[{index:0,isTransitioning:false,key:'id-2',params:{code:'test',foo:'bar'},routeName:'main',routes:[{index:0,isTransitioning:false,key:'id-1',params:{code:'test',foo:'bar',id:'4'},routeName:'profile',routes:[{key:'id-0',params:{code:'test',foo:'bar',id:'10259959195'},routeName:'list',type:undefined}]}]}]});var state2=TestStackRouter.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'main',params:{code:'',foo:'bar'},action:{type:NavigationActions.NAVIGATE,routeName:'profile',params:{id:'4',code:'',foo:'bar'},action:{type:NavigationActions.NAVIGATE,routeName:'list',params:{id:'10259959195',code:'',foo:'bar'}}}});expect(state2).toEqual({index:0,isTransitioning:false,key:'StackRouterRoot',routes:[{index:0,isTransitioning:false,key:'id-5',params:{code:'',foo:'bar'},routeName:'main',routes:[{index:0,isTransitioning:false,key:'id-4',params:{code:'',foo:'bar',id:'4'},routeName:'profile',routes:[{key:'id-3',params:{code:'',foo:'bar',id:'10259959195'},routeName:'list',type:undefined}]}]}]});});it('Handles deep navigate completion action',function(){var LeafScreen=function LeafScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1875}});};var FooScreen=function FooScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1876}});};FooScreen.router=(0,_StackRouter.default)({Boo:{path:'boo',screen:LeafScreen},Baz:{path:'baz/:bazId',screen:LeafScreen}});var router=(0,_StackRouter.default)({Foo:{screen:FooScreen},Bar:{screen:LeafScreen}});var state=router.getStateForAction({type:NavigationActions.INIT});expect(state&&state.index).toEqual(0);expect(state&&state.routes[0].routeName).toEqual('Foo');var key=state&&state.routes[0].key;var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Baz'},state);expect(state2.index).toEqual(0);expect(state2.isTransitioning).toEqual(false);expect(state2.routes[0].index).toEqual(1);expect(state2.routes[0].isTransitioning).toEqual(true);expect(!!key).toEqual(true);var state3=router.getStateForAction({type:StackActions.COMPLETE_TRANSITION,toChildKey:state2.routes[0].routes[1].key},state2);expect(state3&&state3.index).toEqual(0);expect(state3&&state3.isTransitioning).toEqual(false);expect(state3&&state3.routes[0].index).toEqual(1);expect(state3&&state3.routes[0].isTransitioning).toEqual(false);});it('order of handling navigate action is correct for nested stackrouters',function(){var Screen=function Screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1920}});};var NestedStack=function NestedStack(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1921}});};var nestedRouter=(0,_StackRouter.default)({Foo:Screen,Bar:Screen});NestedStack.router=nestedRouter;var router=(0,_StackRouter.default)({NestedStack:NestedStack,Bar:Screen,Baz:Screen},{initialRouteName:'Baz'});var state=router.getStateForAction({type:NavigationActions.INIT});expect(state.routes[state.index].routeName).toEqual('Baz');var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar'},state);expect(state2.routes[state2.index].routeName).toEqual('Bar');var state3=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Baz'},state2);expect(state3.routes[state3.index].routeName).toEqual('Baz');var state4=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Foo'},state3);var activeState4=state4.routes[state4.index];expect(activeState4.routeName).toEqual('NestedStack');expect(activeState4.routes[activeState4.index].routeName).toEqual('Foo');var state5=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar'},state4);var activeState5=state5.routes[state5.index];expect(activeState5.routeName).toEqual('NestedStack');expect(activeState5.routes[activeState5.index].routeName).toEqual('Bar');});it('order of handling navigate action is correct for nested stackrouters 2',function(){var Screen=function Screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1985}});};var NestedStack=function NestedStack(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1986}});};var OtherNestedStack=function OtherNestedStack(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1987}});};var nestedRouter=(0,_StackRouter.default)({Foo:Screen,Bar:Screen});var otherNestedRouter=(0,_StackRouter.default)({Foo:Screen});NestedStack.router=nestedRouter;OtherNestedStack.router=otherNestedRouter;var router=(0,_StackRouter.default)({NestedStack:NestedStack,OtherNestedStack:OtherNestedStack,Bar:Screen},{initialRouteName:'OtherNestedStack'});var state=router.getStateForAction({type:NavigationActions.INIT});expect(state.routes[state.index].routeName).toEqual('OtherNestedStack');var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar'},state);expect(state2.routes[state2.index].routeName).toEqual('Bar');var state3=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'NestedStack'},state2);var state4=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar'},state3);var activeState4=state4.routes[state4.index];expect(activeState4.routeName).toEqual('NestedStack');expect(activeState4.routes[activeState4.index].routeName).toEqual('Bar');});});
++var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _interopRequireWildcard=require("@babel/runtime/helpers/interopRequireWildcard");var _objectSpread2=_interopRequireDefault(require("@babel/runtime/helpers/objectSpread"));var _classCallCheck2=_interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));var _createClass2=_interopRequireDefault(require("@babel/runtime/helpers/createClass"));var _possibleConstructorReturn2=_interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));var _getPrototypeOf2=_interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));var _inherits2=_interopRequireDefault(require("@babel/runtime/helpers/inherits"));var _react=_interopRequireDefault(require("react"));var _StackRouter=_interopRequireDefault(require("../StackRouter"));var StackActions=_interopRequireWildcard(require("../StackActions"));var NavigationActions=_interopRequireWildcard(require("../../NavigationActions"));var _KeyGenerator=require("../KeyGenerator.ts");var _jsxFileName="/Users/brentvatne/coding/react-navigation-core/src/routers/__tests__/StackRouter-test.js";beforeEach(function(){(0,_KeyGenerator._TESTING_ONLY_normalize_keys)();});var ListScreen=function ListScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:14}});};var ProfileNavigator=function ProfileNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:16}});};ProfileNavigator.router=(0,_StackRouter.default)({list:{path:'list/:id',screen:ListScreen}});var MainNavigator=function MainNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:24}});};MainNavigator.router=(0,_StackRouter.default)({profile:{path:'p/:id',screen:ProfileNavigator}});var LoginScreen=function LoginScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:32}});};var AuthNavigator=function AuthNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:34}});};AuthNavigator.router=(0,_StackRouter.default)({login:{screen:LoginScreen}});var BarScreen=function BarScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:41}});};var FooNavigator=function(_React$Component){(0,_inherits2.default)(FooNavigator,_React$Component);function FooNavigator(){(0,_classCallCheck2.default)(this,FooNavigator);return(0,_possibleConstructorReturn2.default)(this,(0,_getPrototypeOf2.default)(FooNavigator).apply(this,arguments));}(0,_createClass2.default)(FooNavigator,[{key:"render",value:function render(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:51}});}}]);return FooNavigator;}(_react.default.Component);FooNavigator.router=(0,_StackRouter.default)({bar:{path:'b/:barThing',screen:BarScreen}});var PersonScreen=function PersonScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:55}});};var TestStackRouter=(0,_StackRouter.default)({main:{screen:MainNavigator},baz:{path:null,screen:FooNavigator},auth:{screen:AuthNavigator},person:{path:'people/:id',screen:PersonScreen},foo:{path:'fo/:fooThing',screen:FooNavigator}});describe('StackRouter',function(){it('Gets the active screen for a given state',function(){var FooScreen=function FooScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:80}});};var BarScreen=function BarScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:81}});};var router=(0,_StackRouter.default)({foo:{screen:FooScreen},bar:{screen:BarScreen}});expect(router.getComponentForState({index:0,transitions:{pushing:[],popping:[]},routes:[{key:'a',routeName:'foo'},{key:'b',routeName:'bar'},{key:'c',routeName:'foo'}]})).toBe(FooScreen);expect(router.getComponentForState({index:1,transitions:{pushing:[],popping:[]},routes:[{key:'a',routeName:'foo'},{key:'b',routeName:'bar'}]})).toBe(BarScreen);});it('Handles getScreen in getComponentForState',function(){var FooScreen=function FooScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:115}});};var BarScreen=function BarScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:116}});};var router=(0,_StackRouter.default)({foo:{getScreen:function getScreen(){return FooScreen;}},bar:{getScreen:function getScreen(){return BarScreen;}}});expect(router.getComponentForState({index:0,transitions:{pushing:[],popping:[]},routes:[{key:'a',routeName:'foo'},{key:'b',routeName:'bar'},{key:'c',routeName:'foo'}]})).toBe(FooScreen);expect(router.getComponentForState({index:1,transitions:{pushing:[],popping:[]},routes:[{key:'a',routeName:'foo'},{key:'b',routeName:'bar'}]})).toBe(BarScreen);});it('Gets the screen for given route',function(){var FooScreen=function FooScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:150}});};var BarScreen=function(_React$Component2){(0,_inherits2.default)(BarScreen,_React$Component2);function BarScreen(){(0,_classCallCheck2.default)(this,BarScreen);return(0,_possibleConstructorReturn2.default)(this,(0,_getPrototypeOf2.default)(BarScreen).apply(this,arguments));}(0,_createClass2.default)(BarScreen,[{key:"render",value:function render(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:153}});}}]);return BarScreen;}(_react.default.Component);var BazScreen=function(_React$Component3){(0,_inherits2.default)(BazScreen,_React$Component3);function BazScreen(){(0,_classCallCheck2.default)(this,BazScreen);return(0,_possibleConstructorReturn2.default)(this,(0,_getPrototypeOf2.default)(BazScreen).apply(this,arguments));}(0,_createClass2.default)(BazScreen,[{key:"render",value:function render(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:158}});}}]);return BazScreen;}(_react.default.Component);var router=(0,_StackRouter.default)({foo:{screen:FooScreen},bar:{screen:BarScreen},baz:{screen:BazScreen}});expect(router.getComponentForRouteName('foo')).toBe(FooScreen);expect(router.getComponentForRouteName('bar')).toBe(BarScreen);expect(router.getComponentForRouteName('baz')).toBe(BazScreen);});it('Handles getScreen in getComponent',function(){var FooScreen=function FooScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:179}});};var BarScreen=function(_React$Component4){(0,_inherits2.default)(BarScreen,_React$Component4);function BarScreen(){(0,_classCallCheck2.default)(this,BarScreen);return(0,_possibleConstructorReturn2.default)(this,(0,_getPrototypeOf2.default)(BarScreen).apply(this,arguments));}(0,_createClass2.default)(BarScreen,[{key:"render",value:function render(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:182}});}}]);return BarScreen;}(_react.default.Component);var BazScreen=function(_React$Component5){(0,_inherits2.default)(BazScreen,_React$Component5);function BazScreen(){(0,_classCallCheck2.default)(this,BazScreen);return(0,_possibleConstructorReturn2.default)(this,(0,_getPrototypeOf2.default)(BazScreen).apply(this,arguments));}(0,_createClass2.default)(BazScreen,[{key:"render",value:function render(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:187}});}}]);return BazScreen;}(_react.default.Component);var router=(0,_StackRouter.default)({foo:{getScreen:function getScreen(){return FooScreen;}},bar:{getScreen:function getScreen(){return BarScreen;}},baz:{getScreen:function getScreen(){return BazScreen;}}});expect(router.getComponentForRouteName('foo')).toBe(FooScreen);expect(router.getComponentForRouteName('bar')).toBe(BarScreen);expect(router.getComponentForRouteName('baz')).toBe(BazScreen);});it('Parses simple paths',function(){expect(AuthNavigator.router.getActionForPathAndParams('login')).toEqual({type:NavigationActions.NAVIGATE,routeName:'login',params:{}});});it('Parses paths with a param',function(){expect(TestStackRouter.getActionForPathAndParams('people/foo')).toEqual({type:NavigationActions.NAVIGATE,routeName:'person',params:{id:'foo'}});});it('Parses paths with a query',function(){expect(TestStackRouter.getActionForPathAndParams('people/foo',{code:'test',foo:'bar'})).toEqual({type:NavigationActions.NAVIGATE,routeName:'person',params:{id:'foo',code:'test',foo:'bar'}});});it('Parses paths with an empty query value',function(){expect(TestStackRouter.getActionForPathAndParams('people/foo',{code:'',foo:'bar'})).toEqual({type:NavigationActions.NAVIGATE,routeName:'person',params:{id:'foo',code:'',foo:'bar'}});});it('Correctly parses a path without arguments into an action chain',function(){var uri='auth/login';var action=TestStackRouter.getActionForPathAndParams(uri);expect(action).toEqual({type:NavigationActions.NAVIGATE,routeName:'auth',params:{},action:{type:NavigationActions.NAVIGATE,routeName:'login',params:{}}});});it('Correctly parses a path with arguments into an action chain',function(){var uri='main/p/4/list/10259959195';var action=TestStackRouter.getActionForPathAndParams(uri);expect(action).toEqual({type:NavigationActions.NAVIGATE,routeName:'main',params:{},action:{type:NavigationActions.NAVIGATE,routeName:'profile',params:{id:'4'},action:{type:NavigationActions.NAVIGATE,routeName:'list',params:{id:'10259959195'}}}});});it('Correctly parses a path to the router connected to another router through a pure wildcard route into an action chain',function(){var uri='b/123';var action=TestStackRouter.getActionForPathAndParams(uri);expect(action).toEqual({type:NavigationActions.NAVIGATE,routeName:'baz',params:{},action:{type:NavigationActions.NAVIGATE,routeName:'bar',params:{barThing:'123'}}});});it('Correctly returns null action for non-existent path',function(){var uri='asdf/1234';var action=TestStackRouter.getActionForPathAndParams(uri);expect(action).toEqual(null);});it('Correctly returns action chain for partially matched path',function(){var uri='auth/login';var action=TestStackRouter.getActionForPathAndParams(uri);expect(action).toEqual({type:NavigationActions.NAVIGATE,routeName:'auth',params:{},action:{type:NavigationActions.NAVIGATE,routeName:'login',params:{}}});});it('Correctly returns action for path with multiple parameters',function(){var path='fo/22/b/hello';var action=TestStackRouter.getActionForPathAndParams(path);expect(action).toEqual({type:NavigationActions.NAVIGATE,routeName:'foo',params:{fooThing:'22'},action:{type:NavigationActions.NAVIGATE,routeName:'bar',params:{barThing:'hello'}}});});it('Pushes other navigators when navigating to an unopened route name',function(){var Bar=function Bar(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:356}});};Bar.router=(0,_StackRouter.default)({baz:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:358}});}},qux:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:359}});}}});var TestRouter=(0,_StackRouter.default)({foo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:362}});}},bar:{screen:Bar}});var initState=TestRouter.getStateForAction(NavigationActions.init());expect(initState).toEqual({index:0,transitions:{pushing:[],popping:[]},key:'StackRouterRoot',routes:[{key:'id-0',routeName:'foo'}]});var pushedState=TestRouter.getStateForAction(NavigationActions.navigate({routeName:'qux'}),initState);expect(pushedState.index).toEqual(1);expect(pushedState.routes[1].index).toEqual(1);expect(pushedState.routes[1].routes[1].routeName).toEqual('qux');});it('push bubbles up',function(){var ChildNavigator=function ChildNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:382}});};ChildNavigator.router=(0,_StackRouter.default)({Baz:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:384}});}},Qux:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:385}});}}});var router=(0,_StackRouter.default)({Foo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:388}});}},Bar:{screen:ChildNavigator},Bad:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:390}});}}});var state=router.getStateForAction({type:NavigationActions.INIT});var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar'},state);var state3=router.getStateForAction({type:StackActions.PUSH,routeName:'Bad'},state2);expect(state3&&state3.index).toEqual(2);expect(state3&&state3.routes.length).toEqual(3);});it('pop bubbles up',function(){var ChildNavigator=function ChildNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:412}});};ChildNavigator.router=(0,_StackRouter.default)({Baz:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:414}});}},Qux:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:415}});}}});var router=(0,_StackRouter.default)({Foo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:418}});}},Bar:{screen:ChildNavigator}});var state=router.getStateForAction({type:NavigationActions.INIT});var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar',key:'StackRouterRoot'},state);var state3=router.getStateForAction({type:StackActions.POP},state2);expect(state3&&state3.index).toEqual(0);});it('Handle navigation to nested navigator',function(){var action=TestStackRouter.getActionForPathAndParams('fo/22/b/hello');var state2=TestStackRouter.getStateForAction(action);expect(state2).toEqual({index:0,transitions:{pushing:[],popping:[]},key:'StackRouterRoot',routes:[{index:0,key:'id-1',transitions:{pushing:[],popping:[]},routeName:'foo',params:{fooThing:'22'},routes:[{routeName:'bar',key:'id-0',params:{barThing:'hello'}}]}]});});it('popToTop bubbles up',function(){var ChildNavigator=function ChildNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:472}});};ChildNavigator.router=(0,_StackRouter.default)({Baz:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:474}});}},Qux:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:475}});}}});var router=(0,_StackRouter.default)({Foo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:479}});}},Bar:{screen:ChildNavigator}});var state=router.getStateForAction({type:NavigationActions.INIT});var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar'},state);var state3=router.getStateForAction({type:StackActions.POP_TO_TOP},state2);expect(state3&&state3.index).toEqual(0);});it('popToTop targets StackRouter by key if specified',function(){var ChildNavigator=function ChildNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:501}});};ChildNavigator.router=(0,_StackRouter.default)({Baz:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:503}});}},Qux:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:504}});}}});var router=(0,_StackRouter.default)({Foo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:507}});}},Bar:{screen:ChildNavigator}});var state=router.getStateForAction({type:NavigationActions.INIT});var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar'},state);var state3=router.getStateForAction({type:StackActions.POP_TO_TOP,key:state2.key},state2);expect(state3&&state3.index).toEqual(0);});it('pop action works as expected',function(){var TestRouter=(0,_StackRouter.default)({foo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:531}});}},bar:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:532}});}}});var state={index:3,transitions:{pushing:[],popping:[]},routes:[{key:'A',routeName:'foo'},{key:'B',routeName:'bar',params:{bazId:'321'}},{key:'C',routeName:'foo'},{key:'D',routeName:'bar'}]};var poppedState=TestRouter.getStateForAction(StackActions.pop(),state);expect(poppedState.routes.length).toBe(3);expect(poppedState.index).toBe(2);expect(poppedState.transitions).toEqual({pushing:[],popping:['D']});var poppedState2=TestRouter.getStateForAction(StackActions.pop({n:2,immediate:true}),state);expect(poppedState2.routes.length).toBe(2);expect(poppedState2.index).toBe(1);expect(poppedState2.transitions).toEqual({pushing:[],popping:[]});var poppedState3=TestRouter.getStateForAction(StackActions.pop({n:5}),state);expect(poppedState3.routes.length).toBe(1);expect(poppedState3.index).toBe(0);expect(poppedState3.transitions).toEqual({pushing:[],popping:['D']});});it('popToTop works as expected',function(){var TestRouter=(0,_StackRouter.default)({foo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:569}});}},bar:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:570}});}}});var state={index:2,transitions:{pushing:[],popping:[]},routes:[{key:'A',routeName:'foo'},{key:'B',routeName:'bar',params:{bazId:'321'}},{key:'C',routeName:'foo'}]};var poppedState=TestRouter.getStateForAction(StackActions.popToTop(),state);expect(poppedState.routes.length).toBe(1);expect(poppedState.index).toBe(0);expect(poppedState.transitions).toEqual({popping:['C'],pushing:[]});var poppedState2=TestRouter.getStateForAction(StackActions.popToTop(),poppedState);expect(poppedState).toEqual(poppedState2);var poppedImmediatelyState=TestRouter.getStateForAction(StackActions.popToTop({immediate:true}),state);expect(poppedImmediatelyState.routes.length).toBe(1);expect(poppedImmediatelyState.index).toBe(0);expect(poppedImmediatelyState.transitions).toEqual({pushing:[],popping:[]});});it('Navigate does not push duplicate routeName',function(){var TestRouter=(0,_StackRouter.default)({foo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:609}});}},bar:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:610}});}}},{initialRouteName:'foo'});var initState=TestRouter.getStateForAction(NavigationActions.init());var barState=TestRouter.getStateForAction(NavigationActions.navigate({routeName:'bar'}),initState);expect(barState.index).toEqual(1);expect(barState.routes[1].routeName).toEqual('bar');var navigateOnBarState=TestRouter.getStateForAction(NavigationActions.navigate({routeName:'bar'}),barState);expect(navigateOnBarState).toEqual(null);});it('Navigate focuses given routeName if already active in stack',function(){var TestRouter=(0,_StackRouter.default)({foo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:631}});}},bar:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:632}});}},baz:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:633}});}}},{initialRouteName:'foo'});var initialState=TestRouter.getStateForAction(NavigationActions.init());var fooBarState=TestRouter.getStateForAction(NavigationActions.navigate({routeName:'bar'}),initialState);var fooBarBazState=TestRouter.getStateForAction(NavigationActions.navigate({routeName:'baz'}),fooBarState);expect(fooBarBazState.index).toEqual(2);expect(fooBarBazState.routes[2].routeName).toEqual('baz');var fooState=TestRouter.getStateForAction(NavigationActions.navigate({routeName:'foo'}),fooBarBazState);expect(fooState.index).toEqual(0);expect(fooState.routes.length).toEqual(1);expect(fooState.routes[0].routeName).toEqual('foo');});it('Navigate pushes duplicate routeName if unique key is provided',function(){var TestRouter=(0,_StackRouter.default)({foo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:660}});}},bar:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:661}});}}});var initState=TestRouter.getStateForAction(NavigationActions.init());var pushedState=TestRouter.getStateForAction(NavigationActions.navigate({routeName:'bar'}),initState);expect(pushedState.index).toEqual(1);expect(pushedState.routes[1].routeName).toEqual('bar');var pushedTwiceState=TestRouter.getStateForAction(NavigationActions.navigate({routeName:'bar',key:'new-unique-key!'}),pushedState);expect(pushedTwiceState.index).toEqual(2);expect(pushedTwiceState.routes[2].routeName).toEqual('bar');});it('Navigate from top propagates to any arbitary depth of stacks',function(){var GrandChildNavigator=function GrandChildNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:679}});};GrandChildNavigator.router=(0,_StackRouter.default)({Quux:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:681}});}},Corge:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:682}});}}});var ChildNavigator=function ChildNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:685}});};ChildNavigator.router=(0,_StackRouter.default)({Baz:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:687}});}},Woo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:688}});}},Qux:{screen:GrandChildNavigator}});var Parent=(0,_StackRouter.default)({Foo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:693}});}},Bar:{screen:ChildNavigator}});var state=Parent.getStateForAction({type:NavigationActions.INIT});var state2=Parent.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Corge'},state);expect(state2.transitions).toEqual({popping:[],pushing:['id-5']});expect(state2.index).toEqual(1);expect(state2.routes[1].index).toEqual(1);expect(state2.routes[1].routes[1].index).toEqual(1);expect(state2.routes[1].routes[1].routes[1].routeName).toEqual('Corge');});it('Navigate to initial screen is possible',function(){var TestRouter=(0,_StackRouter.default)({foo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:716}});}},bar:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:717}});}}},{initialRouteKey:'foo'});var initState=TestRouter.getStateForAction(NavigationActions.init());var pushedState=TestRouter.getStateForAction(NavigationActions.navigate({routeName:'foo',key:'foo'}),initState);expect(pushedState).toEqual(null);});it('Navigate with key and without it is idempotent',function(){var TestRouter=(0,_StackRouter.default)({foo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:731}});}},bar:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:732}});}}});var initState=TestRouter.getStateForAction(NavigationActions.init());var pushedState=TestRouter.getStateForAction(NavigationActions.navigate({routeName:'bar',key:'a'}),initState);expect(pushedState.index).toEqual(1);expect(pushedState.routes[1].routeName).toEqual('bar');var pushedTwiceState=TestRouter.getStateForAction(NavigationActions.navigate({routeName:'bar',key:'a'}),pushedState);expect(pushedTwiceState).toEqual(null);});it('Navigate on inactive stackrouter is idempotent',function(){var FirstChildNavigator=function FirstChildNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:750}});};FirstChildNavigator.router=(0,_StackRouter.default)({First1:function First1(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:752}});},First2:function First2(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:753}});}});var SecondChildNavigator=function SecondChildNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:756}});};SecondChildNavigator.router=(0,_StackRouter.default)({Second1:function Second1(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:758}});},Second2:function Second2(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:759}});}});var router=(0,_StackRouter.default)({Leaf:function Leaf(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:763}});},First:FirstChildNavigator,Second:SecondChildNavigator});var state=router.getStateForAction({type:NavigationActions.INIT});var first=router.getStateForAction(NavigationActions.navigate({routeName:'First2'}),state);var second=router.getStateForAction(NavigationActions.navigate({routeName:'Second2'}),first);var firstAgain=router.getStateForAction(NavigationActions.navigate({routeName:'First2',params:{debug:true}}),second);expect(first.routes.length).toEqual(2);expect(first.index).toEqual(1);expect(second.routes.length).toEqual(3);expect(second.index).toEqual(2);expect(firstAgain.index).toEqual(1);expect(firstAgain.routes.length).toEqual(2);});it('Navigate to current routeName returns null to indicate handled action',function(){var TestRouter=(0,_StackRouter.default)({foo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:799}});}},bar:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:800}});}}});var initState=TestRouter.getStateForAction(NavigationActions.init());var navigatedState=TestRouter.getStateForAction(NavigationActions.navigate({routeName:'foo'}),initState);expect(navigatedState).toBe(null);});it('Push behaves like navigate, except for key',function(){var TestRouter=(0,_StackRouter.default)({foo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:812}});}},bar:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:813}});}}});var initState=TestRouter.getStateForAction(NavigationActions.init());var pushedState=TestRouter.getStateForAction(StackActions.push({routeName:'bar'}),initState);expect(pushedState.index).toEqual(1);expect(pushedState.routes[1].routeName).toEqual('bar');expect(function(){TestRouter.getStateForAction({type:StackActions.PUSH,routeName:'bar',key:'a'},pushedState);}).toThrow('StackRouter does not support key on the push action');});it('Push adds new routes every time',function(){var TestRouter=(0,_StackRouter.default)({foo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:832}});}},bar:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:833}});}}});var initState=TestRouter.getStateForAction(NavigationActions.init());var pushedState=TestRouter.getStateForAction(StackActions.push({routeName:'bar'}),initState);expect(pushedState.index).toEqual(1);expect(pushedState.routes[1].routeName).toEqual('bar');var secondPushedState=TestRouter.getStateForAction(StackActions.push({routeName:'bar'}),pushedState);expect(secondPushedState.index).toEqual(2);expect(secondPushedState.routes[2].routeName).toEqual('bar');});it('Navigate backwards with key removes leading routes',function(){var TestRouter=(0,_StackRouter.default)({foo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:852}});}},bar:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:853}});}}});var initState=TestRouter.getStateForAction(NavigationActions.init());var pushedState=TestRouter.getStateForAction(NavigationActions.navigate({routeName:'bar',key:'a'}),initState);var pushedTwiceState=TestRouter.getStateForAction(NavigationActions.navigate({routeName:'bar',key:'b`'}),pushedState);var pushedThriceState=TestRouter.getStateForAction(NavigationActions.navigate({routeName:'foo',key:'c`'}),pushedTwiceState);expect(pushedThriceState.routes.length).toEqual(4);var navigatedBackToFirstRouteState=TestRouter.getStateForAction(NavigationActions.navigate({routeName:'foo',key:pushedThriceState.routes[0].key}),pushedThriceState);expect(navigatedBackToFirstRouteState.index).toEqual(0);expect(navigatedBackToFirstRouteState.routes.length).toEqual(1);});it('Handle basic stack logic for plain components',function(){var FooScreen=function FooScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:882}});};var BarScreen=function BarScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:883}});};var router=(0,_StackRouter.default)({Foo:{screen:FooScreen},Bar:{screen:BarScreen}});var state=router.getStateForAction({type:NavigationActions.INIT});expect(state).toEqual({index:0,transitions:{pushing:[],popping:[]},key:'StackRouterRoot',routes:[{key:'id-0',routeName:'Foo'}]});var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar',params:{name:'Zoom'},immediate:true},state);expect(state2.index).toEqual(1);expect(state2.routes[1].routeName).toEqual('Bar');expect(state2.routes[1].params).toEqual({name:'Zoom'});expect(state2.routes.length).toEqual(2);var state3=router.getStateForAction({type:NavigationActions.BACK,immediate:true},state2);expect(state3).toEqual({index:0,transitions:{pushing:[],popping:[]},key:'StackRouterRoot',routes:[{key:'id-0',routeName:'Foo'}]});});it('Replace action works',function(){var TestRouter=(0,_StackRouter.default)({foo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:936}});}},bar:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:937}});}}});var initState=TestRouter.getStateForAction(NavigationActions.navigate({routeName:'foo'}));var replacedState=TestRouter.getStateForAction(StackActions.replace({routeName:'bar',params:{meaning:42},key:initState.routes[0].key}),initState);expect(replacedState.index).toEqual(0);expect(replacedState.routes.length).toEqual(1);expect(replacedState.routes[0].key).not.toEqual(initState.routes[0].key);expect(replacedState.routes[0].routeName).toEqual('bar');expect(replacedState.routes[0].params.meaning).toEqual(42);var replacedState2=TestRouter.getStateForAction(StackActions.replace({routeName:'bar',key:initState.routes[0].key,newKey:'wow'}),initState);expect(replacedState2.index).toEqual(0);expect(replacedState2.routes.length).toEqual(1);expect(replacedState2.routes[0].key).toEqual('wow');expect(replacedState2.routes[0].routeName).toEqual('bar');});it('Replace action returns most recent route if no key is provided',function(){var GrandChildNavigator=function GrandChildNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:970}});};GrandChildNavigator.router=(0,_StackRouter.default)({Quux:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:972}});}},Corge:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:973}});}},Grault:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:974}});}}});var ChildNavigator=function ChildNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:977}});};ChildNavigator.router=(0,_StackRouter.default)({Baz:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:979}});}},Woo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:980}});}},Qux:{screen:GrandChildNavigator}});var router=(0,_StackRouter.default)({Foo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:985}});}},Bar:{screen:ChildNavigator}});var state=router.getStateForAction({type:NavigationActions.INIT});var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar'},state);var state3=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Qux'},state2);var state4=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Corge'},state3);var state5=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Grault'},state4);var replacedState=router.getStateForAction(StackActions.replace({routeName:'Woo',params:{meaning:42}}),state5);var originalCurrentScreen=state5.routes[1].routes[1].routes[2];var replacedCurrentScreen=replacedState.routes[1].routes[1].routes[2];expect(replacedState.routes[1].routes[1].index).toEqual(2);expect(replacedState.routes[1].routes[1].routes.length).toEqual(3);expect(replacedCurrentScreen.key).not.toEqual(originalCurrentScreen.key);expect(replacedCurrentScreen.routeName).not.toEqual(originalCurrentScreen.routeName);expect(replacedCurrentScreen.routeName).toEqual('Woo');expect(replacedCurrentScreen.params.meaning).toEqual(42);});it('Handles push transition logic with completion action',function(){var FooScreen=function FooScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1041}});};var BarScreen=function BarScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1042}});};var router=(0,_StackRouter.default)({Foo:{screen:FooScreen},Bar:{screen:BarScreen}});var state=router.getStateForAction({type:NavigationActions.INIT});var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar',params:{name:'Zoom'}},state);expect(state2&&state2.index).toEqual(1);expect(state2&&state2.transitions).toEqual({popping:[],pushing:['id-1']});var state3=router.getStateForAction({type:StackActions.COMPLETE_TRANSITION,toChildKey:state2.routes[1].key},state2);expect(state3&&state3.index).toEqual(1);expect(state3&&state3.transitions).toEqual({pushing:[],popping:[]});});it('Completion action does not work with incorrect key',function(){var FooScreen=function FooScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1077}});};var router=(0,_StackRouter.default)({Foo:{screen:FooScreen},Bar:{screen:FooScreen}});var state={key:'StackKey',index:1,transitions:{pushing:['b'],popping:[]},routes:[{key:'a',routeName:'Foo'},{key:'b',routeName:'Foo'}]};var outputState=router.getStateForAction({type:StackActions.COMPLETE_TRANSITION,toChildKey:state.routes[state.index].key,key:'not StackKey'},state);expect(outputState.transitions).toEqual({pushing:['b'],popping:[]});});it('Completion action does not work with incorrect toChildKey',function(){var FooScreen=function FooScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1104}});};var router=(0,_StackRouter.default)({Foo:{screen:FooScreen},Bar:{screen:FooScreen}});var state={key:'StackKey',index:1,transitions:{pushing:['b'],popping:[]},routes:[{key:'a',routeName:'Foo'},{key:'b',routeName:'Foo'}]};var outputState=router.getStateForAction({type:StackActions.COMPLETE_TRANSITION,toChildKey:'incorrect',key:'StackKey'},state);expect(outputState.transitions).toEqual({pushing:['b'],popping:[]});});it('Back action parent is prioritized over inactive child routers',function(){var Bar=function Bar(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1132}});};Bar.router=(0,_StackRouter.default)({baz:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1134}});}},qux:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1135}});}}});var TestRouter=(0,_StackRouter.default)({foo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1138}});}},bar:{screen:Bar},boo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1140}});}}});var state={key:'top',index:3,routes:[{routeName:'foo',key:'f'},{routeName:'bar',key:'b',index:1,routes:[{routeName:'baz',key:'bz'},{routeName:'qux',key:'bx'}]},{routeName:'foo',key:'f1'},{routeName:'boo',key:'z'}],transitions:{pushing:[],popping:[]}};var testState=TestRouter.getStateForAction({type:NavigationActions.BACK},state);expect(testState.index).toBe(2);expect(testState.routes[1].index).toBe(1);});it('Handle basic stack logic for components with router',function(){var FooScreen=function FooScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1170}});};var BarScreen=function BarScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1171}});};BarScreen.router=(0,_StackRouter.default)({Xyz:{screen:function screen(){return null;}}});var router=(0,_StackRouter.default)({Foo:{screen:FooScreen},Bar:{screen:BarScreen}});var state=router.getStateForAction({type:NavigationActions.INIT});expect(state).toEqual({index:0,transitions:{pushing:[],popping:[]},key:'StackRouterRoot',routes:[{key:'id-0',routeName:'Foo'}]});var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar',params:{name:'Zoom'},immediate:true},state);expect(state2&&state2.index).toEqual(1);expect(state2&&state2.routes[1].routeName).toEqual('Bar');expect(state2&&state2.routes[1].params).toEqual({name:'Zoom'});expect(state2&&state2.routes.length).toEqual(2);var state3=router.getStateForAction({type:NavigationActions.BACK,immediate:true},state2);expect(state3).toEqual({index:0,transitions:{pushing:[],popping:[]},key:'StackRouterRoot',routes:[{key:'id-0',routeName:'Foo'}]});});it('Gets deep path (stack behavior)',function(){var ScreenA=function ScreenA(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1228}});};var ScreenB=function ScreenB(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1229}});};ScreenA.router=(0,_StackRouter.default)({Boo:{path:'boo',screen:ScreenB},Baz:{path:'baz/:bazId',screen:ScreenB}});var router=(0,_StackRouter.default)({Foo:{path:'f/:id',screen:ScreenA},Bar:{screen:ScreenB}});var state={index:0,transitions:{pushing:[],popping:[]},routes:[{index:1,key:'Foo',routeName:'Foo',params:{id:'123'},routes:[{key:'Boo',routeName:'Boo'},{key:'Baz',routeName:'Baz',params:{bazId:'321'}}]},{key:'Bar',routeName:'Bar'}]};var _router$getPathAndPar=router.getPathAndParamsForState(state),path=_router$getPathAndPar.path,params=_router$getPathAndPar.params;expect(path).toEqual('f/123/baz/321');expect(params).toEqual({});});it('Handle goBack identified by key',function(){var FooScreen=function FooScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1269}});};var BarScreen=function BarScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1270}});};var router=(0,_StackRouter.default)({Foo:{screen:FooScreen},Bar:{screen:BarScreen}});var state=router.getStateForAction({type:NavigationActions.INIT});var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar',immediate:true,params:{name:'Zoom'}},state);var state3=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar',immediate:true,params:{name:'Foo'}},state2);var state4=router.getStateForAction({type:NavigationActions.BACK,key:'wrongKey'},state3);expect(state3).toEqual(state4);var state5=router.getStateForAction({type:NavigationActions.BACK,key:state3&&state3.routes[1].key,immediate:true},state4);expect(state5).toEqual(state);});it('Handle initial route navigation',function(){var FooScreen=function FooScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1315}});};var BarScreen=function BarScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1316}});};var router=(0,_StackRouter.default)({Foo:{screen:FooScreen},Bar:{screen:BarScreen}},{initialRouteName:'Bar'});var state=router.getStateForAction({type:NavigationActions.INIT});expect(state).toEqual({index:0,transitions:{pushing:[],popping:[]},key:'StackRouterRoot',routes:[{key:'id-0',routeName:'Bar'}]});});it('Initial route params appear in nav state',function(){var FooScreen=function FooScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1343}});};var router=(0,_StackRouter.default)({Foo:{screen:FooScreen}},{initialRouteName:'Foo',initialRouteParams:{foo:'bar'}});var state=router.getStateForAction({type:NavigationActions.INIT});expect(state).toEqual({index:0,transitions:{pushing:[],popping:[]},key:'StackRouterRoot',routes:[{key:state&&state.routes[0].key,routeName:'Foo',params:{foo:'bar'}}]});});it('params in route config are merged with initialRouteParams',function(){var FooScreen=function FooScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1368}});};var router=(0,_StackRouter.default)({Foo:{screen:FooScreen,params:{foo:'not-bar',meaning:42}}},{initialRouteName:'Foo',initialRouteParams:{foo:'bar'}});var state=router.getStateForAction({type:NavigationActions.INIT});expect(state).toEqual({index:0,transitions:{pushing:[],popping:[]},key:'StackRouterRoot',routes:[{key:state&&state.routes[0].key,routeName:'Foo',params:{foo:'bar',meaning:42}}]});});it('Action params appear in nav state',function(){var FooScreen=function FooScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1394}});};var BarScreen=function BarScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1395}});};var router=(0,_StackRouter.default)({Foo:{screen:FooScreen},Bar:{screen:BarScreen}});var state=router.getStateForAction({type:NavigationActions.INIT});var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar',params:{bar:'42'},immediate:true},state);expect(state2).not.toBeNull();expect(state2&&state2.index).toEqual(1);expect(state2&&state2.routes[1].params).toEqual({bar:'42'});});it('Handles the SetParams action',function(){var router=(0,_StackRouter.default)({Foo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1423}});}},Bar:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1426}});}}},{initialRouteName:'Bar',initialRouteParams:{name:'Zoo'}});var state=router.getStateForAction({type:NavigationActions.INIT});var key=state&&state.routes[0].key;var state2=key&&router.getStateForAction({type:NavigationActions.SET_PARAMS,params:{name:'Qux'},key:key},state);expect(state2&&state2.index).toEqual(0);expect(state2&&state2.routes[0].params).toEqual({name:'Qux'});});it('Handles the SetParams action for inactive routes',function(){var router=(0,_StackRouter.default)({Foo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1454}});}},Bar:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1457}});}}},{initialRouteName:'Bar',initialRouteParams:{name:'Zoo'}});var initialState={index:1,routes:[{key:'RouteA',routeName:'Foo',params:{name:'InitialParam',other:'Unchanged'}},{key:'RouteB',routeName:'Bar',params:{}}]};var state=router.getStateForAction({type:NavigationActions.SET_PARAMS,params:{name:'NewParam'},key:'RouteA'},initialState);expect(state.index).toEqual(1);expect(state.routes[0].params).toEqual({name:'NewParam',other:'Unchanged'});});it('Handles the setParams action with nested routers',function(){var ChildNavigator=function ChildNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1492}});};ChildNavigator.router=(0,_StackRouter.default)({Baz:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1494}});}},Qux:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1495}});}}});var router=(0,_StackRouter.default)({Foo:{screen:ChildNavigator},Bar:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1499}});}}});var state=router.getStateForAction({type:NavigationActions.INIT});var state2=router.getStateForAction({type:NavigationActions.SET_PARAMS,params:{name:'foobar'},key:'id-0'},state);expect(state2&&state2.index).toEqual(0);expect(state2&&state2.routes[0].routes).toEqual([{key:'id-0',routeName:'Baz',params:{name:'foobar'}}]);});it('Handles the reset action',function(){var router=(0,_StackRouter.default)({Foo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1523}});}},Bar:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1526}});}}});var state=router.getStateForAction({type:NavigationActions.INIT});var state2=router.getStateForAction({type:StackActions.RESET,actions:[{type:NavigationActions.NAVIGATE,routeName:'Foo',params:{bar:'42'},immediate:true},{type:NavigationActions.NAVIGATE,routeName:'Bar',immediate:true}],index:1},state);expect(state2&&state2.index).toEqual(1);expect(state2&&state2.routes[0].params).toEqual({bar:'42'});expect(state2&&state2.routes[0].routeName).toEqual('Foo');expect(state2&&state2.routes[1].routeName).toEqual('Bar');});it('Handles the reset action only with correct key set',function(){var router=(0,_StackRouter.default)({Foo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1559}});}},Bar:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1562}});}}});var state1=router.getStateForAction({type:NavigationActions.INIT});var resetAction={type:StackActions.RESET,key:'Bad Key',actions:[{type:NavigationActions.NAVIGATE,routeName:'Foo',params:{bar:'42'},immediate:true},{type:NavigationActions.NAVIGATE,routeName:'Bar',immediate:true}],index:1};var state2=router.getStateForAction(resetAction,state1);expect(state2).toEqual(state1);var state3=router.getStateForAction((0,_objectSpread2.default)({},resetAction,{key:state2.key}),state2);expect(state3&&state3.index).toEqual(1);expect(state3&&state3.routes[0].params).toEqual({bar:'42'});expect(state3&&state3.routes[0].routeName).toEqual('Foo');expect(state3&&state3.routes[1].routeName).toEqual('Bar');});it('Handles the reset action with nested Router',function(){var ChildRouter=(0,_StackRouter.default)({baz:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1602}});}}});var ChildNavigator=function ChildNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1606}});};ChildNavigator.router=ChildRouter;var router=(0,_StackRouter.default)({Foo:{screen:ChildNavigator},Bar:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1614}});}}});var state=router.getStateForAction({type:NavigationActions.INIT});var state2=router.getStateForAction({type:StackActions.RESET,key:null,actions:[{type:NavigationActions.NAVIGATE,routeName:'Foo',immediate:true}],index:0},state);expect(state2&&state2.index).toEqual(0);expect(state2&&state2.routes[0].routeName).toEqual('Foo');expect(state2&&state2.routes[0].routes[0].routeName).toEqual('baz');});it('Handles the reset action with a key',function(){var ChildRouter=(0,_StackRouter.default)({baz:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1642}});}}});var ChildNavigator=function ChildNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1646}});};ChildNavigator.router=ChildRouter;var router=(0,_StackRouter.default)({Foo:{screen:ChildNavigator},Bar:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1654}});}}});var state=router.getStateForAction({type:NavigationActions.INIT});var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Foo',immediate:true,action:{type:NavigationActions.NAVIGATE,routeName:'baz',immediate:true}},state);var state3=router.getStateForAction({type:StackActions.RESET,key:'Init',actions:[{type:NavigationActions.NAVIGATE,routeName:'Foo',immediate:true}],index:0},state2);var state4=router.getStateForAction({type:StackActions.RESET,key:null,actions:[{type:NavigationActions.NAVIGATE,routeName:'Bar',immediate:true}],index:0},state3);expect(state4&&state4.index).toEqual(0);expect(state4&&state4.routes[0].routeName).toEqual('Bar');});it('Handles the navigate action with params and nested StackRouter',function(){var ChildNavigator=function ChildNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1707}});};ChildNavigator.router=(0,_StackRouter.default)({Baz:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1708}});}}});var router=(0,_StackRouter.default)({Foo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1711}});}},Bar:{screen:ChildNavigator}});var state=router.getStateForAction({type:NavigationActions.INIT});var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,immediate:true,routeName:'Bar',params:{foo:'42'}},state);expect(state2&&state2.routes[1].params).toEqual({foo:'42'});expect(state2&&state2.routes[1].routes).toEqual([expect.objectContaining({routeName:'Baz',params:{foo:'42'}})]);});it('Navigate action to previous nested StackRouter causes no transitions',function(){var ChildNavigator=function ChildNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1734}});};ChildNavigator.router=(0,_StackRouter.default)({Baz:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1736}});}}});var router=(0,_StackRouter.default)({Bar:{screen:ChildNavigator},Foo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1740}});}}});var state=router.getStateForAction({type:NavigationActions.NAVIGATE,immediate:true,routeName:'Foo'},router.getStateForAction({type:NavigationActions.INIT}));var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Baz'},state);expect(state2.index).toEqual(0);expect(state2.transitions).toEqual({pushing:[],popping:[]});});it('Handles the navigate action with params and nested StackRouter as a first action',function(){var state=TestStackRouter.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'main',params:{code:'test',foo:'bar'},action:{type:NavigationActions.NAVIGATE,routeName:'profile',params:{id:'4',code:'test',foo:'bar'},action:{type:NavigationActions.NAVIGATE,routeName:'list',params:{id:'10259959195',code:'test',foo:'bar'}}}});expect(state).toEqual({index:0,transitions:{pushing:[],popping:[]},key:'StackRouterRoot',routes:[{index:0,transitions:{pushing:[],popping:[]},key:'id-2',params:{code:'test',foo:'bar'},routeName:'main',routes:[{index:0,transitions:{pushing:[],popping:[]},key:'id-1',params:{code:'test',foo:'bar',id:'4'},routeName:'profile',routes:[{key:'id-0',params:{code:'test',foo:'bar',id:'10259959195'},routeName:'list',type:undefined}]}]}]});var state2=TestStackRouter.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'main',params:{code:'',foo:'bar'},action:{type:NavigationActions.NAVIGATE,routeName:'profile',params:{id:'4',code:'',foo:'bar'},action:{type:NavigationActions.NAVIGATE,routeName:'list',params:{id:'10259959195',code:'',foo:'bar'}}}});expect(state2).toEqual({index:0,transitions:{pushing:[],popping:[]},key:'StackRouterRoot',routes:[{index:0,transitions:{pushing:[],popping:[]},key:'id-5',params:{code:'',foo:'bar'},routeName:'main',routes:[{index:0,transitions:{pushing:[],popping:[]},key:'id-4',params:{code:'',foo:'bar',id:'4'},routeName:'profile',routes:[{key:'id-3',params:{code:'',foo:'bar',id:'10259959195'},routeName:'list',type:undefined}]}]}]});});it('Handles deep navigate completion action',function(){var LeafScreen=function LeafScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1884}});};var FooScreen=function FooScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1885}});};FooScreen.router=(0,_StackRouter.default)({Boo:{path:'boo',screen:LeafScreen},Baz:{path:'baz/:bazId',screen:LeafScreen}});var router=(0,_StackRouter.default)({Foo:{screen:FooScreen},Bar:{screen:LeafScreen}});var state=router.getStateForAction({type:NavigationActions.INIT});expect(state&&state.index).toEqual(0);expect(state&&state.routes[0].routeName).toEqual('Foo');var key=state&&state.routes[0].key;var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Baz'},state);expect(state2.index).toEqual(0);expect(state2.transitions).toEqual({pushing:[],popping:[]});expect(state2.routes[0].index).toEqual(1);expect(state2.routes[0].transitions).toEqual({popping:[],pushing:['id-2']});expect(!!key).toEqual(true);var state3=router.getStateForAction({type:StackActions.COMPLETE_TRANSITION,toChildKey:state2.routes[0].routes[1].key},state2);expect(state3&&state3.index).toEqual(0);expect(state3&&state3.transitions).toEqual({popping:[],pushing:[]});expect(state3&&state3.routes[0].index).toEqual(1);expect(state3&&state3.routes[0].transitions).toEqual({popping:[],pushing:[]});});it('order of handling navigate action is correct for nested stackrouters',function(){var Screen=function Screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1935}});};var NestedStack=function NestedStack(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1936}});};var nestedRouter=(0,_StackRouter.default)({Foo:Screen,Bar:Screen});NestedStack.router=nestedRouter;var router=(0,_StackRouter.default)({NestedStack:NestedStack,Bar:Screen,Baz:Screen},{initialRouteName:'Baz'});var state=router.getStateForAction({type:NavigationActions.INIT});expect(state.routes[state.index].routeName).toEqual('Baz');var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar'},state);expect(state2.routes[state2.index].routeName).toEqual('Bar');var state3=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Baz'},state2);expect(state3.routes[state3.index].routeName).toEqual('Baz');var state4=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Foo'},state3);var activeState4=state4.routes[state4.index];expect(activeState4.routeName).toEqual('NestedStack');expect(activeState4.routes[activeState4.index].routeName).toEqual('Foo');var state5=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar'},state4);var activeState5=state5.routes[state5.index];expect(activeState5.routeName).toEqual('NestedStack');expect(activeState5.routes[activeState5.index].routeName).toEqual('Bar');});it('order of handling navigate action is correct for nested stackrouters 2',function(){var Screen=function Screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:2000}});};var NestedStack=function NestedStack(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:2001}});};var OtherNestedStack=function OtherNestedStack(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:2002}});};var nestedRouter=(0,_StackRouter.default)({Foo:Screen,Bar:Screen});var otherNestedRouter=(0,_StackRouter.default)({Foo:Screen});NestedStack.router=nestedRouter;OtherNestedStack.router=otherNestedRouter;var router=(0,_StackRouter.default)({NestedStack:NestedStack,OtherNestedStack:OtherNestedStack,Bar:Screen},{initialRouteName:'OtherNestedStack'});var state=router.getStateForAction({type:NavigationActions.INIT});expect(state.routes[state.index].routeName).toEqual('OtherNestedStack');var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar'},state);expect(state2.routes[state2.index].routeName).toEqual('Bar');var state3=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'NestedStack'},state2);var state4=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar'},state3);var activeState4=state4.routes[state4.index];expect(activeState4.routeName).toEqual('NestedStack');expect(activeState4.routes[activeState4.index].routeName).toEqual('Bar');});});
+ //# sourceMappingURL=StackRouter-test.js.map
+\ No newline at end of file
+diff --git a/node_modules/@react-navigation/core/lib/commonjs/routers/__tests__/StackRouter-test.js.map b/node_modules/@react-navigation/core/lib/commonjs/routers/__tests__/StackRouter-test.js.map
+index 243daac..d9830aa 100644
+--- a/node_modules/@react-navigation/core/lib/commonjs/routers/__tests__/StackRouter-test.js.map
++++ b/node_modules/@react-navigation/core/lib/commonjs/routers/__tests__/StackRouter-test.js.map
+@@ -1 +1 @@
+-{"version":3,"sources":["StackRouter-test.js"],"names":["beforeEach","ListScreen","ProfileNavigator","router","list","path","screen","MainNavigator","profile","LoginScreen","AuthNavigator","login","BarScreen","FooNavigator","React","Component","bar","PersonScreen","TestStackRouter","main","baz","auth","person","foo","describe","it","FooScreen","expect","getComponentForState","index","isTransitioning","routes","key","routeName","toBe","getScreen","BazScreen","getComponentForRouteName","getActionForPathAndParams","toEqual","type","NavigationActions","NAVIGATE","params","id","code","uri","action","barThing","fooThing","Bar","qux","TestRouter","initState","getStateForAction","init","pushedState","navigate","ChildNavigator","Baz","Qux","Foo","Bad","state","INIT","state2","state3","StackActions","PUSH","length","POP","POP_TO_TOP","bazId","poppedState","pop","poppedState2","n","immediate","poppedState3","popToTop","poppedImmediatelyState","initialRouteName","barState","navigateOnBarState","initialState","fooBarState","fooBarBazState","fooState","pushedTwiceState","GrandChildNavigator","Quux","Corge","Woo","Parent","initialRouteKey","FirstChildNavigator","First1","First2","SecondChildNavigator","Second1","Second2","Leaf","First","Second","first","second","firstAgain","debug","navigatedState","push","toThrow","secondPushedState","pushedThriceState","navigatedBackToFirstRouteState","name","BACK","replacedState","replace","meaning","not","replacedState2","newKey","Grault","state4","state5","originalCurrentScreen","replacedCurrentScreen","COMPLETE_TRANSITION","toChildKey","outputState","boo","testState","Xyz","ScreenA","ScreenB","Boo","getPathAndParamsForState","initialRouteParams","toBeNull","SET_PARAMS","other","RESET","actions","state1","resetAction","ChildRouter","objectContaining","undefined","LeafScreen","Screen","NestedStack","nestedRouter","activeState4","activeState5","OtherNestedStack","otherNestedRouter"],"mappings":"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","sourcesContent":["/* eslint no-shadow:0, react/no-multi-comp:0, react/display-name:0 */\n\nimport React from 'react';\n\nimport StackRouter from '../StackRouter';\nimport * as StackActions from '../StackActions';\nimport * as NavigationActions from '../../NavigationActions';\nimport { _TESTING_ONLY_normalize_keys } from '../KeyGenerator.ts';\n\nbeforeEach(() => {\n _TESTING_ONLY_normalize_keys();\n});\n\nconst ListScreen = () => ;\n\nconst ProfileNavigator = () => ;\nProfileNavigator.router = StackRouter({\n list: {\n path: 'list/:id',\n screen: ListScreen,\n },\n});\n\nconst MainNavigator = () => ;\nMainNavigator.router = StackRouter({\n profile: {\n path: 'p/:id',\n screen: ProfileNavigator,\n },\n});\n\nconst LoginScreen = () => ;\n\nconst AuthNavigator = () => ;\nAuthNavigator.router = StackRouter({\n login: {\n screen: LoginScreen,\n },\n});\n\nconst BarScreen = () => ;\n\nclass FooNavigator extends React.Component {\n static router = StackRouter({\n bar: {\n path: 'b/:barThing',\n screen: BarScreen,\n },\n });\n render() {\n return ;\n }\n}\n\nconst PersonScreen = () => ;\n\nconst TestStackRouter = StackRouter({\n main: {\n screen: MainNavigator,\n },\n baz: {\n path: null,\n screen: FooNavigator,\n },\n auth: {\n screen: AuthNavigator,\n },\n person: {\n path: 'people/:id',\n screen: PersonScreen,\n },\n foo: {\n path: 'fo/:fooThing',\n screen: FooNavigator,\n },\n});\n\ndescribe('StackRouter', () => {\n it('Gets the active screen for a given state', () => {\n const FooScreen = () => ;\n const BarScreen = () => ;\n const router = StackRouter({\n foo: {\n screen: FooScreen,\n },\n bar: {\n screen: BarScreen,\n },\n });\n\n expect(\n router.getComponentForState({\n index: 0,\n isTransitioning: false,\n routes: [\n { key: 'a', routeName: 'foo' },\n { key: 'b', routeName: 'bar' },\n { key: 'c', routeName: 'foo' },\n ],\n })\n ).toBe(FooScreen);\n expect(\n router.getComponentForState({\n index: 1,\n isTransitioning: false,\n routes: [\n { key: 'a', routeName: 'foo' },\n { key: 'b', routeName: 'bar' },\n ],\n })\n ).toBe(BarScreen);\n });\n\n it('Handles getScreen in getComponentForState', () => {\n const FooScreen = () => ;\n const BarScreen = () => ;\n const router = StackRouter({\n foo: {\n getScreen: () => FooScreen,\n },\n bar: {\n getScreen: () => BarScreen,\n },\n });\n\n expect(\n router.getComponentForState({\n index: 0,\n isTransitioning: false,\n routes: [\n { key: 'a', routeName: 'foo' },\n { key: 'b', routeName: 'bar' },\n { key: 'c', routeName: 'foo' },\n ],\n })\n ).toBe(FooScreen);\n expect(\n router.getComponentForState({\n index: 1,\n isTransitioning: false,\n routes: [\n { key: 'a', routeName: 'foo' },\n { key: 'b', routeName: 'bar' },\n ],\n })\n ).toBe(BarScreen);\n });\n\n it('Gets the screen for given route', () => {\n const FooScreen = () => ;\n const BarScreen = class extends React.Component {\n render() {\n return ;\n }\n };\n const BazScreen = class extends React.Component {\n render() {\n return ;\n }\n };\n const router = StackRouter({\n foo: {\n screen: FooScreen,\n },\n bar: {\n screen: BarScreen,\n },\n baz: {\n screen: BazScreen,\n },\n });\n\n expect(router.getComponentForRouteName('foo')).toBe(FooScreen);\n expect(router.getComponentForRouteName('bar')).toBe(BarScreen);\n expect(router.getComponentForRouteName('baz')).toBe(BazScreen);\n });\n\n it('Handles getScreen in getComponent', () => {\n const FooScreen = () => ;\n const BarScreen = class extends React.Component {\n render() {\n return ;\n }\n };\n const BazScreen = class extends React.Component {\n render() {\n return ;\n }\n };\n const router = StackRouter({\n foo: {\n getScreen: () => FooScreen,\n },\n bar: {\n getScreen: () => BarScreen,\n },\n baz: {\n getScreen: () => BazScreen,\n },\n });\n\n expect(router.getComponentForRouteName('foo')).toBe(FooScreen);\n expect(router.getComponentForRouteName('bar')).toBe(BarScreen);\n expect(router.getComponentForRouteName('baz')).toBe(BazScreen);\n });\n\n it('Parses simple paths', () => {\n expect(AuthNavigator.router.getActionForPathAndParams('login')).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'login',\n params: {},\n });\n });\n\n it('Parses paths with a param', () => {\n expect(TestStackRouter.getActionForPathAndParams('people/foo')).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'person',\n params: {\n id: 'foo',\n },\n });\n });\n\n it('Parses paths with a query', () => {\n expect(\n TestStackRouter.getActionForPathAndParams('people/foo', {\n code: 'test',\n foo: 'bar',\n })\n ).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'person',\n params: {\n id: 'foo',\n code: 'test',\n foo: 'bar',\n },\n });\n });\n\n it('Parses paths with an empty query value', () => {\n expect(\n TestStackRouter.getActionForPathAndParams('people/foo', {\n code: '',\n foo: 'bar',\n })\n ).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'person',\n params: {\n id: 'foo',\n code: '',\n foo: 'bar',\n },\n });\n });\n\n it('Correctly parses a path without arguments into an action chain', () => {\n const uri = 'auth/login';\n const action = TestStackRouter.getActionForPathAndParams(uri);\n expect(action).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'auth',\n params: {},\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'login',\n params: {},\n },\n });\n });\n\n it('Correctly parses a path with arguments into an action chain', () => {\n const uri = 'main/p/4/list/10259959195';\n const action = TestStackRouter.getActionForPathAndParams(uri);\n expect(action).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'main',\n params: {},\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'profile',\n params: {\n id: '4',\n },\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'list',\n params: {\n id: '10259959195',\n },\n },\n },\n });\n });\n\n it('Correctly parses a path to the router connected to another router through a pure wildcard route into an action chain', () => {\n const uri = 'b/123';\n const action = TestStackRouter.getActionForPathAndParams(uri);\n expect(action).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'baz',\n params: {},\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'bar',\n params: {\n barThing: '123',\n },\n },\n });\n });\n\n it('Correctly returns null action for non-existent path', () => {\n const uri = 'asdf/1234';\n const action = TestStackRouter.getActionForPathAndParams(uri);\n expect(action).toEqual(null);\n });\n\n it('Correctly returns action chain for partially matched path', () => {\n const uri = 'auth/login';\n const action = TestStackRouter.getActionForPathAndParams(uri);\n expect(action).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'auth',\n params: {},\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'login',\n params: {},\n },\n });\n });\n\n it('Correctly returns action for path with multiple parameters', () => {\n const path = 'fo/22/b/hello';\n const action = TestStackRouter.getActionForPathAndParams(path);\n expect(action).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'foo',\n params: {\n fooThing: '22',\n },\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'bar',\n params: {\n barThing: 'hello',\n },\n },\n });\n });\n\n it('Pushes other navigators when navigating to an unopened route name', () => {\n const Bar = () => ;\n Bar.router = StackRouter({\n baz: { screen: () => },\n qux: { screen: () => },\n });\n const TestRouter = StackRouter({\n foo: { screen: () => },\n bar: { screen: Bar },\n });\n const initState = TestRouter.getStateForAction(NavigationActions.init());\n expect(initState).toEqual({\n index: 0,\n isTransitioning: false,\n key: 'StackRouterRoot',\n routes: [{ key: 'id-0', routeName: 'foo' }],\n });\n const pushedState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'qux' }),\n initState\n );\n expect(pushedState.index).toEqual(1);\n expect(pushedState.routes[1].index).toEqual(1);\n expect(pushedState.routes[1].routes[1].routeName).toEqual('qux');\n });\n\n it('push bubbles up', () => {\n const ChildNavigator = () => ;\n ChildNavigator.router = StackRouter({\n Baz: { screen: () => },\n Qux: { screen: () => },\n });\n const router = StackRouter({\n Foo: { screen: () => },\n Bar: { screen: ChildNavigator },\n Bad: { screen: () => },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n },\n state\n );\n const state3 = router.getStateForAction(\n {\n type: StackActions.PUSH,\n routeName: 'Bad',\n },\n state2\n );\n expect(state3 && state3.index).toEqual(2);\n expect(state3 && state3.routes.length).toEqual(3);\n });\n\n it('pop bubbles up', () => {\n const ChildNavigator = () => ;\n ChildNavigator.router = StackRouter({\n Baz: { screen: () => },\n Qux: { screen: () => },\n });\n const router = StackRouter({\n Foo: { screen: () => },\n Bar: { screen: ChildNavigator },\n });\n\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n key: 'StackRouterRoot',\n },\n state\n );\n const state3 = router.getStateForAction(\n {\n type: StackActions.POP,\n },\n state2\n );\n expect(state3 && state3.index).toEqual(0);\n });\n\n it('Handle navigation to nested navigator', () => {\n const action = TestStackRouter.getActionForPathAndParams('fo/22/b/hello');\n /* $FlowFixMe */\n const state2 = TestStackRouter.getStateForAction(action);\n expect(state2).toEqual({\n index: 0,\n isTransitioning: false,\n key: 'StackRouterRoot',\n routes: [\n {\n index: 0,\n key: 'id-1',\n isTransitioning: false,\n routeName: 'foo',\n params: {\n fooThing: '22',\n },\n routes: [\n {\n routeName: 'bar',\n key: 'id-0',\n params: {\n barThing: 'hello',\n },\n },\n ],\n },\n ],\n });\n });\n\n it('popToTop bubbles up', () => {\n const ChildNavigator = () => ;\n ChildNavigator.router = StackRouter({\n Baz: { screen: () => },\n Qux: { screen: () => },\n });\n\n const router = StackRouter({\n Foo: { screen: () => },\n Bar: { screen: ChildNavigator },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n },\n state\n );\n\n const state3 = router.getStateForAction(\n {\n type: StackActions.POP_TO_TOP,\n },\n state2\n );\n expect(state3 && state3.index).toEqual(0);\n });\n\n it('popToTop targets StackRouter by key if specified', () => {\n const ChildNavigator = () => ;\n ChildNavigator.router = StackRouter({\n Baz: { screen: () => },\n Qux: { screen: () => },\n });\n const router = StackRouter({\n Foo: { screen: () => },\n Bar: { screen: ChildNavigator },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n },\n state\n );\n\n const state3 = router.getStateForAction(\n {\n type: StackActions.POP_TO_TOP,\n key: state2.key,\n },\n state2\n );\n expect(state3 && state3.index).toEqual(0);\n });\n\n it('pop action works as expected', () => {\n const TestRouter = StackRouter({\n foo: { screen: () => },\n bar: { screen: () => },\n });\n\n const state = {\n index: 3,\n isTransitioning: false,\n routes: [\n { key: 'A', routeName: 'foo' },\n { key: 'B', routeName: 'bar', params: { bazId: '321' } },\n { key: 'C', routeName: 'foo' },\n { key: 'D', routeName: 'bar' },\n ],\n };\n const poppedState = TestRouter.getStateForAction(StackActions.pop(), state);\n expect(poppedState.routes.length).toBe(3);\n expect(poppedState.index).toBe(2);\n expect(poppedState.isTransitioning).toBe(true);\n\n const poppedState2 = TestRouter.getStateForAction(\n StackActions.pop({ n: 2, immediate: true }),\n state\n );\n expect(poppedState2.routes.length).toBe(2);\n expect(poppedState2.index).toBe(1);\n expect(poppedState2.isTransitioning).toBe(false);\n\n const poppedState3 = TestRouter.getStateForAction(\n StackActions.pop({ n: 5 }),\n state\n );\n expect(poppedState3.routes.length).toBe(1);\n expect(poppedState3.index).toBe(0);\n expect(poppedState3.isTransitioning).toBe(true);\n });\n\n it('popToTop works as expected', () => {\n const TestRouter = StackRouter({\n foo: { screen: () => },\n bar: { screen: () => },\n });\n\n const state = {\n index: 2,\n isTransitioning: false,\n routes: [\n { key: 'A', routeName: 'foo' },\n { key: 'B', routeName: 'bar', params: { bazId: '321' } },\n { key: 'C', routeName: 'foo' },\n ],\n };\n const poppedState = TestRouter.getStateForAction(\n StackActions.popToTop(),\n state\n );\n expect(poppedState.routes.length).toBe(1);\n expect(poppedState.index).toBe(0);\n expect(poppedState.isTransitioning).toBe(true);\n const poppedState2 = TestRouter.getStateForAction(\n StackActions.popToTop(),\n poppedState\n );\n expect(poppedState).toEqual(poppedState2);\n const poppedImmediatelyState = TestRouter.getStateForAction(\n StackActions.popToTop({ immediate: true }),\n state\n );\n expect(poppedImmediatelyState.routes.length).toBe(1);\n expect(poppedImmediatelyState.index).toBe(0);\n expect(poppedImmediatelyState.isTransitioning).toBe(false);\n });\n\n it('Navigate does not push duplicate routeName', () => {\n const TestRouter = StackRouter(\n {\n foo: { screen: () => },\n bar: { screen: () => },\n },\n { initialRouteName: 'foo' }\n );\n const initState = TestRouter.getStateForAction(NavigationActions.init());\n const barState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'bar' }),\n initState\n );\n expect(barState.index).toEqual(1);\n expect(barState.routes[1].routeName).toEqual('bar');\n const navigateOnBarState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'bar' }),\n barState\n );\n expect(navigateOnBarState).toEqual(null);\n });\n\n it('Navigate focuses given routeName if already active in stack', () => {\n const TestRouter = StackRouter(\n {\n foo: { screen: () => },\n bar: { screen: () => },\n baz: { screen: () => },\n },\n { initialRouteName: 'foo' }\n );\n const initialState = TestRouter.getStateForAction(NavigationActions.init());\n const fooBarState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'bar' }),\n initialState\n );\n const fooBarBazState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'baz' }),\n fooBarState\n );\n expect(fooBarBazState.index).toEqual(2);\n expect(fooBarBazState.routes[2].routeName).toEqual('baz');\n\n const fooState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'foo' }),\n fooBarBazState\n );\n expect(fooState.index).toEqual(0);\n expect(fooState.routes.length).toEqual(1);\n expect(fooState.routes[0].routeName).toEqual('foo');\n });\n\n it('Navigate pushes duplicate routeName if unique key is provided', () => {\n const TestRouter = StackRouter({\n foo: { screen: () => },\n bar: { screen: () => },\n });\n const initState = TestRouter.getStateForAction(NavigationActions.init());\n const pushedState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'bar' }),\n initState\n );\n expect(pushedState.index).toEqual(1);\n expect(pushedState.routes[1].routeName).toEqual('bar');\n const pushedTwiceState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'bar', key: 'new-unique-key!' }),\n pushedState\n );\n expect(pushedTwiceState.index).toEqual(2);\n expect(pushedTwiceState.routes[2].routeName).toEqual('bar');\n });\n\n it('Navigate from top propagates to any arbitary depth of stacks', () => {\n const GrandChildNavigator = () => ;\n GrandChildNavigator.router = StackRouter({\n Quux: { screen: () => },\n Corge: { screen: () => },\n });\n\n const ChildNavigator = () => ;\n ChildNavigator.router = StackRouter({\n Baz: { screen: () => },\n Woo: { screen: () => },\n Qux: { screen: GrandChildNavigator },\n });\n\n const Parent = StackRouter({\n Foo: { screen: () => },\n Bar: { screen: ChildNavigator },\n });\n\n const state = Parent.getStateForAction({ type: NavigationActions.INIT });\n const state2 = Parent.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Corge',\n },\n state\n );\n\n expect(state2.isTransitioning).toEqual(true);\n expect(state2.index).toEqual(1);\n expect(state2.routes[1].index).toEqual(1);\n expect(state2.routes[1].routes[1].index).toEqual(1);\n expect(state2.routes[1].routes[1].routes[1].routeName).toEqual('Corge');\n });\n\n it('Navigate to initial screen is possible', () => {\n const TestRouter = StackRouter(\n {\n foo: { screen: () => },\n bar: { screen: () => },\n },\n { initialRouteKey: 'foo' }\n );\n const initState = TestRouter.getStateForAction(NavigationActions.init());\n const pushedState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'foo', key: 'foo' }),\n initState\n );\n expect(pushedState).toEqual(null);\n });\n\n it('Navigate with key and without it is idempotent', () => {\n const TestRouter = StackRouter({\n foo: { screen: () => },\n bar: { screen: () => },\n });\n const initState = TestRouter.getStateForAction(NavigationActions.init());\n const pushedState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'bar', key: 'a' }),\n initState\n );\n expect(pushedState.index).toEqual(1);\n expect(pushedState.routes[1].routeName).toEqual('bar');\n const pushedTwiceState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'bar', key: 'a' }),\n pushedState\n );\n expect(pushedTwiceState).toEqual(null);\n });\n\n // https://github.com/react-navigation/react-navigation/issues/4063\n it('Navigate on inactive stackrouter is idempotent', () => {\n const FirstChildNavigator = () => ;\n FirstChildNavigator.router = StackRouter({\n First1: () => ,\n First2: () => ,\n });\n\n const SecondChildNavigator = () => ;\n SecondChildNavigator.router = StackRouter({\n Second1: () => ,\n Second2: () => ,\n });\n\n const router = StackRouter({\n Leaf: () => ,\n First: FirstChildNavigator,\n Second: SecondChildNavigator,\n });\n\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n\n const first = router.getStateForAction(\n NavigationActions.navigate({ routeName: 'First2' }),\n state\n );\n\n const second = router.getStateForAction(\n NavigationActions.navigate({ routeName: 'Second2' }),\n first\n );\n\n const firstAgain = router.getStateForAction(\n NavigationActions.navigate({\n routeName: 'First2',\n params: { debug: true },\n }),\n second\n );\n\n expect(first.routes.length).toEqual(2);\n expect(first.index).toEqual(1);\n expect(second.routes.length).toEqual(3);\n expect(second.index).toEqual(2);\n\n expect(firstAgain.index).toEqual(1);\n expect(firstAgain.routes.length).toEqual(2);\n });\n\n it('Navigate to current routeName returns null to indicate handled action', () => {\n const TestRouter = StackRouter({\n foo: { screen: () => },\n bar: { screen: () => },\n });\n const initState = TestRouter.getStateForAction(NavigationActions.init());\n const navigatedState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'foo' }),\n initState\n );\n expect(navigatedState).toBe(null);\n });\n\n it('Push behaves like navigate, except for key', () => {\n const TestRouter = StackRouter({\n foo: { screen: () => },\n bar: { screen: () => },\n });\n const initState = TestRouter.getStateForAction(NavigationActions.init());\n const pushedState = TestRouter.getStateForAction(\n StackActions.push({ routeName: 'bar' }),\n initState\n );\n expect(pushedState.index).toEqual(1);\n expect(pushedState.routes[1].routeName).toEqual('bar');\n expect(() => {\n TestRouter.getStateForAction(\n { type: StackActions.PUSH, routeName: 'bar', key: 'a' },\n pushedState\n );\n }).toThrow('StackRouter does not support key on the push action');\n });\n\n it('Push adds new routes every time', () => {\n const TestRouter = StackRouter({\n foo: { screen: () => },\n bar: { screen: () => },\n });\n const initState = TestRouter.getStateForAction(NavigationActions.init());\n const pushedState = TestRouter.getStateForAction(\n StackActions.push({ routeName: 'bar' }),\n initState\n );\n expect(pushedState.index).toEqual(1);\n expect(pushedState.routes[1].routeName).toEqual('bar');\n const secondPushedState = TestRouter.getStateForAction(\n StackActions.push({ routeName: 'bar' }),\n pushedState\n );\n expect(secondPushedState.index).toEqual(2);\n expect(secondPushedState.routes[2].routeName).toEqual('bar');\n });\n\n it('Navigate backwards with key removes leading routes', () => {\n const TestRouter = StackRouter({\n foo: { screen: () => },\n bar: { screen: () => },\n });\n const initState = TestRouter.getStateForAction(NavigationActions.init());\n const pushedState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'bar', key: 'a' }),\n initState\n );\n const pushedTwiceState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'bar', key: 'b`' }),\n pushedState\n );\n const pushedThriceState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'foo', key: 'c`' }),\n pushedTwiceState\n );\n expect(pushedThriceState.routes.length).toEqual(4);\n\n const navigatedBackToFirstRouteState = TestRouter.getStateForAction(\n NavigationActions.navigate({\n routeName: 'foo',\n key: pushedThriceState.routes[0].key,\n }),\n pushedThriceState\n );\n expect(navigatedBackToFirstRouteState.index).toEqual(0);\n expect(navigatedBackToFirstRouteState.routes.length).toEqual(1);\n });\n\n it('Handle basic stack logic for plain components', () => {\n const FooScreen = () => ;\n const BarScreen = () => ;\n const router = StackRouter({\n Foo: {\n screen: FooScreen,\n },\n Bar: {\n screen: BarScreen,\n },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n expect(state).toEqual({\n index: 0,\n isTransitioning: false,\n key: 'StackRouterRoot',\n routes: [\n {\n key: 'id-0',\n routeName: 'Foo',\n },\n ],\n });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n params: { name: 'Zoom' },\n immediate: true,\n },\n state\n );\n expect(state2.index).toEqual(1);\n expect(state2.routes[1].routeName).toEqual('Bar');\n expect(state2.routes[1].params).toEqual({ name: 'Zoom' });\n expect(state2.routes.length).toEqual(2);\n const state3 = router.getStateForAction(\n { type: NavigationActions.BACK, immediate: true },\n state2\n );\n expect(state3).toEqual({\n index: 0,\n isTransitioning: false,\n key: 'StackRouterRoot',\n routes: [\n {\n key: 'id-0',\n routeName: 'Foo',\n },\n ],\n });\n });\n\n it('Replace action works', () => {\n const TestRouter = StackRouter({\n foo: { screen: () => },\n bar: { screen: () => },\n });\n const initState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'foo' })\n );\n const replacedState = TestRouter.getStateForAction(\n StackActions.replace({\n routeName: 'bar',\n params: { meaning: 42 },\n key: initState.routes[0].key,\n }),\n initState\n );\n expect(replacedState.index).toEqual(0);\n expect(replacedState.routes.length).toEqual(1);\n expect(replacedState.routes[0].key).not.toEqual(initState.routes[0].key);\n expect(replacedState.routes[0].routeName).toEqual('bar');\n expect(replacedState.routes[0].params.meaning).toEqual(42);\n const replacedState2 = TestRouter.getStateForAction(\n StackActions.replace({\n routeName: 'bar',\n key: initState.routes[0].key,\n newKey: 'wow',\n }),\n initState\n );\n expect(replacedState2.index).toEqual(0);\n expect(replacedState2.routes.length).toEqual(1);\n expect(replacedState2.routes[0].key).toEqual('wow');\n expect(replacedState2.routes[0].routeName).toEqual('bar');\n });\n\n it('Replace action returns most recent route if no key is provided', () => {\n const GrandChildNavigator = () => ;\n GrandChildNavigator.router = StackRouter({\n Quux: { screen: () => },\n Corge: { screen: () => },\n Grault: { screen: () => },\n });\n\n const ChildNavigator = () => ;\n ChildNavigator.router = StackRouter({\n Baz: { screen: () => },\n Woo: { screen: () => },\n Qux: { screen: GrandChildNavigator },\n });\n\n const router = StackRouter({\n Foo: { screen: () => },\n Bar: { screen: ChildNavigator },\n });\n\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n },\n state\n );\n const state3 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Qux',\n },\n state2\n );\n const state4 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Corge',\n },\n state3\n );\n const state5 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Grault',\n },\n state4\n );\n\n const replacedState = router.getStateForAction(\n StackActions.replace({\n routeName: 'Woo',\n params: { meaning: 42 },\n }),\n state5\n );\n\n const originalCurrentScreen = state5.routes[1].routes[1].routes[2];\n const replacedCurrentScreen = replacedState.routes[1].routes[1].routes[2];\n\n expect(replacedState.routes[1].routes[1].index).toEqual(2);\n expect(replacedState.routes[1].routes[1].routes.length).toEqual(3);\n expect(replacedCurrentScreen.key).not.toEqual(originalCurrentScreen.key);\n expect(replacedCurrentScreen.routeName).not.toEqual(\n originalCurrentScreen.routeName\n );\n expect(replacedCurrentScreen.routeName).toEqual('Woo');\n expect(replacedCurrentScreen.params.meaning).toEqual(42);\n });\n\n it('Handles push transition logic with completion action', () => {\n const FooScreen = () => ;\n const BarScreen = () => ;\n const router = StackRouter({\n Foo: {\n screen: FooScreen,\n },\n Bar: {\n screen: BarScreen,\n },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n params: { name: 'Zoom' },\n },\n state\n );\n expect(state2 && state2.index).toEqual(1);\n expect(state2 && state2.isTransitioning).toEqual(true);\n const state3 = router.getStateForAction(\n {\n type: StackActions.COMPLETE_TRANSITION,\n toChildKey: state2.routes[1].key,\n },\n state2\n );\n expect(state3 && state3.index).toEqual(1);\n expect(state3 && state3.isTransitioning).toEqual(false);\n });\n\n it('Completion action does not work with incorrect key', () => {\n const FooScreen = () => ;\n const router = StackRouter({\n Foo: {\n screen: FooScreen,\n },\n Bar: {\n screen: FooScreen,\n },\n });\n const state = {\n key: 'StackKey',\n index: 1,\n isTransitioning: true,\n routes: [{ key: 'a', routeName: 'Foo' }, { key: 'b', routeName: 'Foo' }],\n };\n const outputState = router.getStateForAction(\n {\n type: StackActions.COMPLETE_TRANSITION,\n toChildKey: state.routes[state.index].key,\n key: 'not StackKey',\n },\n state\n );\n expect(outputState.isTransitioning).toEqual(true);\n });\n\n it('Completion action does not work with incorrect toChildKey', () => {\n const FooScreen = () => ;\n const router = StackRouter({\n Foo: {\n screen: FooScreen,\n },\n Bar: {\n screen: FooScreen,\n },\n });\n const state = {\n key: 'StackKey',\n index: 1,\n isTransitioning: true,\n routes: [{ key: 'a', routeName: 'Foo' }, { key: 'b', routeName: 'Foo' }],\n };\n const outputState = router.getStateForAction(\n {\n type: StackActions.COMPLETE_TRANSITION,\n // for this action to toggle isTransitioning, toChildKey should be state.routes[state.index].key,\n toChildKey: 'incorrect',\n key: 'StackKey',\n },\n state\n );\n expect(outputState.isTransitioning).toEqual(true);\n });\n\n it('Back action parent is prioritized over inactive child routers', () => {\n const Bar = () => ;\n Bar.router = StackRouter({\n baz: { screen: () => },\n qux: { screen: () => },\n });\n const TestRouter = StackRouter({\n foo: { screen: () => },\n bar: { screen: Bar },\n boo: { screen: () => },\n });\n const state = {\n key: 'top',\n index: 3,\n routes: [\n { routeName: 'foo', key: 'f' },\n {\n routeName: 'bar',\n key: 'b',\n index: 1,\n routes: [\n { routeName: 'baz', key: 'bz' },\n { routeName: 'qux', key: 'bx' },\n ],\n },\n { routeName: 'foo', key: 'f1' },\n { routeName: 'boo', key: 'z' },\n ],\n };\n const testState = TestRouter.getStateForAction(\n { type: NavigationActions.BACK },\n state\n );\n expect(testState.index).toBe(2);\n expect(testState.routes[1].index).toBe(1);\n });\n\n it('Handle basic stack logic for components with router', () => {\n const FooScreen = () => ;\n const BarScreen = () => ;\n BarScreen.router = StackRouter({\n Xyz: {\n screen: () => null,\n },\n });\n const router = StackRouter({\n Foo: {\n screen: FooScreen,\n },\n Bar: {\n screen: BarScreen,\n },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n expect(state).toEqual({\n index: 0,\n isTransitioning: false,\n key: 'StackRouterRoot',\n routes: [\n {\n key: 'id-0',\n routeName: 'Foo',\n },\n ],\n });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n params: { name: 'Zoom' },\n immediate: true,\n },\n state\n );\n expect(state2 && state2.index).toEqual(1);\n expect(state2 && state2.routes[1].routeName).toEqual('Bar');\n expect(state2 && state2.routes[1].params).toEqual({ name: 'Zoom' });\n expect(state2 && state2.routes.length).toEqual(2);\n const state3 = router.getStateForAction(\n { type: NavigationActions.BACK, immediate: true },\n state2\n );\n expect(state3).toEqual({\n index: 0,\n isTransitioning: false,\n key: 'StackRouterRoot',\n routes: [\n {\n key: 'id-0',\n routeName: 'Foo',\n },\n ],\n });\n });\n\n it('Gets deep path (stack behavior)', () => {\n const ScreenA = () => ;\n const ScreenB = () => ;\n ScreenA.router = StackRouter({\n Boo: { path: 'boo', screen: ScreenB },\n Baz: { path: 'baz/:bazId', screen: ScreenB },\n });\n const router = StackRouter({\n Foo: {\n path: 'f/:id',\n screen: ScreenA,\n },\n Bar: {\n screen: ScreenB,\n },\n });\n\n const state = {\n index: 0,\n isTransitioning: false,\n routes: [\n {\n index: 1,\n key: 'Foo',\n routeName: 'Foo',\n params: {\n id: '123',\n },\n routes: [\n { key: 'Boo', routeName: 'Boo' },\n { key: 'Baz', routeName: 'Baz', params: { bazId: '321' } },\n ],\n },\n { key: 'Bar', routeName: 'Bar' },\n ],\n };\n const { path, params } = router.getPathAndParamsForState(state);\n expect(path).toEqual('f/123/baz/321');\n expect(params).toEqual({});\n });\n\n it('Handle goBack identified by key', () => {\n const FooScreen = () => ;\n const BarScreen = () => ;\n const router = StackRouter({\n Foo: {\n screen: FooScreen,\n },\n Bar: {\n screen: BarScreen,\n },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n immediate: true,\n params: { name: 'Zoom' },\n },\n state\n );\n const state3 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n immediate: true,\n params: { name: 'Foo' },\n },\n state2\n );\n const state4 = router.getStateForAction(\n { type: NavigationActions.BACK, key: 'wrongKey' },\n state3\n );\n expect(state3).toEqual(state4);\n const state5 = router.getStateForAction(\n {\n type: NavigationActions.BACK,\n key: state3 && state3.routes[1].key,\n immediate: true,\n },\n state4\n );\n expect(state5).toEqual(state);\n });\n\n it('Handle initial route navigation', () => {\n const FooScreen = () => ;\n const BarScreen = () => ;\n const router = StackRouter(\n {\n Foo: {\n screen: FooScreen,\n },\n Bar: {\n screen: BarScreen,\n },\n },\n { initialRouteName: 'Bar' }\n );\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n expect(state).toEqual({\n index: 0,\n isTransitioning: false,\n key: 'StackRouterRoot',\n routes: [\n {\n key: 'id-0',\n routeName: 'Bar',\n },\n ],\n });\n });\n\n it('Initial route params appear in nav state', () => {\n const FooScreen = () => ;\n const router = StackRouter(\n {\n Foo: {\n screen: FooScreen,\n },\n },\n { initialRouteName: 'Foo', initialRouteParams: { foo: 'bar' } }\n );\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n expect(state).toEqual({\n index: 0,\n isTransitioning: false,\n key: 'StackRouterRoot',\n routes: [\n {\n key: state && state.routes[0].key,\n routeName: 'Foo',\n params: { foo: 'bar' },\n },\n ],\n });\n });\n\n it('params in route config are merged with initialRouteParams', () => {\n const FooScreen = () => ;\n const router = StackRouter(\n {\n Foo: {\n screen: FooScreen,\n params: { foo: 'not-bar', meaning: 42 },\n },\n },\n { initialRouteName: 'Foo', initialRouteParams: { foo: 'bar' } }\n );\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n expect(state).toEqual({\n index: 0,\n isTransitioning: false,\n key: 'StackRouterRoot',\n routes: [\n {\n key: state && state.routes[0].key,\n routeName: 'Foo',\n params: { foo: 'bar', meaning: 42 },\n },\n ],\n });\n });\n\n it('Action params appear in nav state', () => {\n const FooScreen = () => ;\n const BarScreen = () => ;\n const router = StackRouter({\n Foo: {\n screen: FooScreen,\n },\n Bar: {\n screen: BarScreen,\n },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n params: { bar: '42' },\n immediate: true,\n },\n state\n );\n expect(state2).not.toBeNull();\n expect(state2 && state2.index).toEqual(1);\n expect(state2 && state2.routes[1].params).toEqual({ bar: '42' });\n });\n\n it('Handles the SetParams action', () => {\n const router = StackRouter(\n {\n Foo: {\n screen: () => ,\n },\n Bar: {\n screen: () => ,\n },\n },\n {\n initialRouteName: 'Bar',\n initialRouteParams: { name: 'Zoo' },\n }\n );\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const key = state && state.routes[0].key;\n const state2 =\n key &&\n router.getStateForAction(\n {\n type: NavigationActions.SET_PARAMS,\n params: { name: 'Qux' },\n key,\n },\n state\n );\n expect(state2 && state2.index).toEqual(0);\n expect(state2 && state2.routes[0].params).toEqual({ name: 'Qux' });\n });\n\n it('Handles the SetParams action for inactive routes', () => {\n const router = StackRouter(\n {\n Foo: {\n screen: () => ,\n },\n Bar: {\n screen: () => ,\n },\n },\n {\n initialRouteName: 'Bar',\n initialRouteParams: { name: 'Zoo' },\n }\n );\n const initialState = {\n index: 1,\n routes: [\n {\n key: 'RouteA',\n routeName: 'Foo',\n params: { name: 'InitialParam', other: 'Unchanged' },\n },\n { key: 'RouteB', routeName: 'Bar', params: {} },\n ],\n };\n const state = router.getStateForAction(\n {\n type: NavigationActions.SET_PARAMS,\n params: { name: 'NewParam' },\n key: 'RouteA',\n },\n initialState\n );\n expect(state.index).toEqual(1);\n expect(state.routes[0].params).toEqual({\n name: 'NewParam',\n other: 'Unchanged',\n });\n });\n\n it('Handles the setParams action with nested routers', () => {\n const ChildNavigator = () => ;\n ChildNavigator.router = StackRouter({\n Baz: { screen: () => },\n Qux: { screen: () => },\n });\n const router = StackRouter({\n Foo: { screen: ChildNavigator },\n Bar: { screen: () => },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.SET_PARAMS,\n params: { name: 'foobar' },\n key: 'id-0',\n },\n state\n );\n expect(state2 && state2.index).toEqual(0);\n expect(state2 && state2.routes[0].routes).toEqual([\n {\n key: 'id-0',\n routeName: 'Baz',\n params: { name: 'foobar' },\n },\n ]);\n });\n\n it('Handles the reset action', () => {\n const router = StackRouter({\n Foo: {\n screen: () => ,\n },\n Bar: {\n screen: () => ,\n },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: StackActions.RESET,\n actions: [\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Foo',\n params: { bar: '42' },\n immediate: true,\n },\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n immediate: true,\n },\n ],\n index: 1,\n },\n state\n );\n expect(state2 && state2.index).toEqual(1);\n expect(state2 && state2.routes[0].params).toEqual({ bar: '42' });\n expect(state2 && state2.routes[0].routeName).toEqual('Foo');\n expect(state2 && state2.routes[1].routeName).toEqual('Bar');\n });\n\n it('Handles the reset action only with correct key set', () => {\n const router = StackRouter({\n Foo: {\n screen: () => ,\n },\n Bar: {\n screen: () => ,\n },\n });\n const state1 = router.getStateForAction({ type: NavigationActions.INIT });\n const resetAction = {\n type: StackActions.RESET,\n key: 'Bad Key',\n actions: [\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Foo',\n params: { bar: '42' },\n immediate: true,\n },\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n immediate: true,\n },\n ],\n index: 1,\n };\n const state2 = router.getStateForAction(resetAction, state1);\n expect(state2).toEqual(state1);\n const state3 = router.getStateForAction(\n {\n ...resetAction,\n key: state2.key,\n },\n state2\n );\n expect(state3 && state3.index).toEqual(1);\n expect(state3 && state3.routes[0].params).toEqual({ bar: '42' });\n expect(state3 && state3.routes[0].routeName).toEqual('Foo');\n expect(state3 && state3.routes[1].routeName).toEqual('Bar');\n });\n\n it('Handles the reset action with nested Router', () => {\n const ChildRouter = StackRouter({\n baz: {\n screen: () => ,\n },\n });\n\n const ChildNavigator = () => ;\n ChildNavigator.router = ChildRouter;\n\n const router = StackRouter({\n Foo: {\n screen: ChildNavigator,\n },\n Bar: {\n screen: () => ,\n },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: StackActions.RESET,\n key: null,\n actions: [\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Foo',\n immediate: true,\n },\n ],\n index: 0,\n },\n state\n );\n\n expect(state2 && state2.index).toEqual(0);\n expect(state2 && state2.routes[0].routeName).toEqual('Foo');\n expect(state2 && state2.routes[0].routes[0].routeName).toEqual('baz');\n });\n\n it('Handles the reset action with a key', () => {\n const ChildRouter = StackRouter({\n baz: {\n screen: () => ,\n },\n });\n\n const ChildNavigator = () => ;\n ChildNavigator.router = ChildRouter;\n\n const router = StackRouter({\n Foo: {\n screen: ChildNavigator,\n },\n Bar: {\n screen: () => ,\n },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Foo',\n immediate: true,\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'baz',\n immediate: true,\n },\n },\n state\n );\n const state3 = router.getStateForAction(\n {\n type: StackActions.RESET,\n key: 'Init',\n actions: [\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Foo',\n immediate: true,\n },\n ],\n index: 0,\n },\n state2\n );\n const state4 = router.getStateForAction(\n {\n type: StackActions.RESET,\n key: null,\n actions: [\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n immediate: true,\n },\n ],\n index: 0,\n },\n state3\n );\n\n expect(state4 && state4.index).toEqual(0);\n expect(state4 && state4.routes[0].routeName).toEqual('Bar');\n });\n\n it('Handles the navigate action with params and nested StackRouter', () => {\n const ChildNavigator = () => ;\n ChildNavigator.router = StackRouter({ Baz: { screen: () => } });\n\n const router = StackRouter({\n Foo: { screen: () => },\n Bar: { screen: ChildNavigator },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n immediate: true,\n routeName: 'Bar',\n params: { foo: '42' },\n },\n state\n );\n expect(state2 && state2.routes[1].params).toEqual({ foo: '42' });\n expect(state2 && state2.routes[1].routes).toEqual([\n expect.objectContaining({\n routeName: 'Baz',\n params: { foo: '42' },\n }),\n ]);\n });\n\n it('Navigate action to previous nested StackRouter causes isTransitioning start', () => {\n const ChildNavigator = () => ;\n ChildNavigator.router = StackRouter({\n Baz: { screen: () => },\n });\n const router = StackRouter({\n Bar: { screen: ChildNavigator },\n Foo: { screen: () => },\n });\n const state = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n immediate: true,\n routeName: 'Foo',\n },\n router.getStateForAction({ type: NavigationActions.INIT })\n );\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Baz',\n },\n state\n );\n expect(state2.index).toEqual(0);\n expect(state2.isTransitioning).toEqual(true);\n });\n\n it('Handles the navigate action with params and nested StackRouter as a first action', () => {\n const state = TestStackRouter.getStateForAction({\n type: NavigationActions.NAVIGATE,\n routeName: 'main',\n params: {\n code: 'test',\n foo: 'bar',\n },\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'profile',\n params: {\n id: '4',\n code: 'test',\n foo: 'bar',\n },\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'list',\n params: {\n id: '10259959195',\n code: 'test',\n foo: 'bar',\n },\n },\n },\n });\n\n expect(state).toEqual({\n index: 0,\n isTransitioning: false,\n key: 'StackRouterRoot',\n routes: [\n {\n index: 0,\n isTransitioning: false,\n key: 'id-2',\n params: { code: 'test', foo: 'bar' },\n routeName: 'main',\n routes: [\n {\n index: 0,\n isTransitioning: false,\n key: 'id-1',\n params: { code: 'test', foo: 'bar', id: '4' },\n routeName: 'profile',\n routes: [\n {\n key: 'id-0',\n params: { code: 'test', foo: 'bar', id: '10259959195' },\n routeName: 'list',\n type: undefined,\n },\n ],\n },\n ],\n },\n ],\n });\n\n const state2 = TestStackRouter.getStateForAction({\n type: NavigationActions.NAVIGATE,\n routeName: 'main',\n params: {\n code: '',\n foo: 'bar',\n },\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'profile',\n params: {\n id: '4',\n code: '',\n foo: 'bar',\n },\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'list',\n params: {\n id: '10259959195',\n code: '',\n foo: 'bar',\n },\n },\n },\n });\n\n expect(state2).toEqual({\n index: 0,\n isTransitioning: false,\n key: 'StackRouterRoot',\n routes: [\n {\n index: 0,\n isTransitioning: false,\n key: 'id-5',\n params: { code: '', foo: 'bar' },\n routeName: 'main',\n routes: [\n {\n index: 0,\n isTransitioning: false,\n key: 'id-4',\n params: { code: '', foo: 'bar', id: '4' },\n routeName: 'profile',\n routes: [\n {\n key: 'id-3',\n params: { code: '', foo: 'bar', id: '10259959195' },\n routeName: 'list',\n type: undefined,\n },\n ],\n },\n ],\n },\n ],\n });\n });\n\n it('Handles deep navigate completion action', () => {\n const LeafScreen = () => ;\n const FooScreen = () => ;\n FooScreen.router = StackRouter({\n Boo: { path: 'boo', screen: LeafScreen },\n Baz: { path: 'baz/:bazId', screen: LeafScreen },\n });\n const router = StackRouter({\n Foo: {\n screen: FooScreen,\n },\n Bar: {\n screen: LeafScreen,\n },\n });\n\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n expect(state && state.index).toEqual(0);\n expect(state && state.routes[0].routeName).toEqual('Foo');\n const key = state && state.routes[0].key;\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Baz',\n },\n state\n );\n expect(state2.index).toEqual(0);\n expect(state2.isTransitioning).toEqual(false);\n expect(state2.routes[0].index).toEqual(1);\n expect(state2.routes[0].isTransitioning).toEqual(true);\n expect(!!key).toEqual(true);\n const state3 = router.getStateForAction(\n {\n type: StackActions.COMPLETE_TRANSITION,\n toChildKey: state2.routes[0].routes[1].key,\n },\n state2\n );\n expect(state3 && state3.index).toEqual(0);\n expect(state3 && state3.isTransitioning).toEqual(false);\n expect(state3 && state3.routes[0].index).toEqual(1);\n expect(state3 && state3.routes[0].isTransitioning).toEqual(false);\n });\n\n it('order of handling navigate action is correct for nested stackrouters', () => {\n const Screen = () => ;\n const NestedStack = () => ;\n let nestedRouter = StackRouter({\n Foo: Screen,\n Bar: Screen,\n });\n\n NestedStack.router = nestedRouter;\n\n let router = StackRouter(\n {\n NestedStack,\n Bar: Screen,\n Baz: Screen,\n },\n {\n initialRouteName: 'Baz',\n }\n );\n\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n expect(state.routes[state.index].routeName).toEqual('Baz');\n\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n },\n state\n );\n expect(state2.routes[state2.index].routeName).toEqual('Bar');\n\n const state3 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Baz',\n },\n state2\n );\n expect(state3.routes[state3.index].routeName).toEqual('Baz');\n\n const state4 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Foo',\n },\n state3\n );\n let activeState4 = state4.routes[state4.index];\n expect(activeState4.routeName).toEqual('NestedStack');\n expect(activeState4.routes[activeState4.index].routeName).toEqual('Foo');\n\n const state5 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n },\n state4\n );\n let activeState5 = state5.routes[state5.index];\n expect(activeState5.routeName).toEqual('NestedStack');\n expect(activeState5.routes[activeState5.index].routeName).toEqual('Bar');\n });\n\n it('order of handling navigate action is correct for nested stackrouters 2', () => {\n const Screen = () => ;\n const NestedStack = () => ;\n const OtherNestedStack = () => ;\n\n let nestedRouter = StackRouter({ Foo: Screen, Bar: Screen });\n let otherNestedRouter = StackRouter({ Foo: Screen });\n NestedStack.router = nestedRouter;\n OtherNestedStack.router = otherNestedRouter;\n\n let router = StackRouter(\n {\n NestedStack,\n OtherNestedStack,\n Bar: Screen,\n },\n {\n initialRouteName: 'OtherNestedStack',\n }\n );\n\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n expect(state.routes[state.index].routeName).toEqual('OtherNestedStack');\n\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n },\n state\n );\n expect(state2.routes[state2.index].routeName).toEqual('Bar');\n\n const state3 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'NestedStack',\n },\n state2\n );\n const state4 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n },\n state3\n );\n let activeState4 = state4.routes[state4.index];\n expect(activeState4.routeName).toEqual('NestedStack');\n expect(activeState4.routes[activeState4.index].routeName).toEqual('Bar');\n });\n});\n"]}
+\ No newline at end of file
++{"version":3,"sources":["StackRouter-test.js"],"names":["beforeEach","ListScreen","ProfileNavigator","router","list","path","screen","MainNavigator","profile","LoginScreen","AuthNavigator","login","BarScreen","FooNavigator","React","Component","bar","PersonScreen","TestStackRouter","main","baz","auth","person","foo","describe","it","FooScreen","expect","getComponentForState","index","transitions","pushing","popping","routes","key","routeName","toBe","getScreen","BazScreen","getComponentForRouteName","getActionForPathAndParams","toEqual","type","NavigationActions","NAVIGATE","params","id","code","uri","action","barThing","fooThing","Bar","qux","TestRouter","initState","getStateForAction","init","pushedState","navigate","ChildNavigator","Baz","Qux","Foo","Bad","state","INIT","state2","state3","StackActions","PUSH","length","POP","POP_TO_TOP","bazId","poppedState","pop","poppedState2","n","immediate","poppedState3","popToTop","poppedImmediatelyState","initialRouteName","barState","navigateOnBarState","initialState","fooBarState","fooBarBazState","fooState","pushedTwiceState","GrandChildNavigator","Quux","Corge","Woo","Parent","initialRouteKey","FirstChildNavigator","First1","First2","SecondChildNavigator","Second1","Second2","Leaf","First","Second","first","second","firstAgain","debug","navigatedState","push","toThrow","secondPushedState","pushedThriceState","navigatedBackToFirstRouteState","name","BACK","replacedState","replace","meaning","not","replacedState2","newKey","Grault","state4","state5","originalCurrentScreen","replacedCurrentScreen","COMPLETE_TRANSITION","toChildKey","outputState","boo","testState","Xyz","ScreenA","ScreenB","Boo","getPathAndParamsForState","initialRouteParams","toBeNull","SET_PARAMS","other","RESET","actions","state1","resetAction","ChildRouter","objectContaining","undefined","LeafScreen","Screen","NestedStack","nestedRouter","activeState4","activeState5","OtherNestedStack","otherNestedRouter"],"mappings":"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","sourcesContent":["/* eslint no-shadow:0, react/no-multi-comp:0, react/display-name:0 */\n\nimport React from 'react';\n\nimport StackRouter from '../StackRouter';\nimport * as StackActions from '../StackActions';\nimport * as NavigationActions from '../../NavigationActions';\nimport { _TESTING_ONLY_normalize_keys } from '../KeyGenerator.ts';\n\nbeforeEach(() => {\n _TESTING_ONLY_normalize_keys();\n});\n\nconst ListScreen = () => ;\n\nconst ProfileNavigator = () => ;\nProfileNavigator.router = StackRouter({\n list: {\n path: 'list/:id',\n screen: ListScreen,\n },\n});\n\nconst MainNavigator = () => ;\nMainNavigator.router = StackRouter({\n profile: {\n path: 'p/:id',\n screen: ProfileNavigator,\n },\n});\n\nconst LoginScreen = () => ;\n\nconst AuthNavigator = () => ;\nAuthNavigator.router = StackRouter({\n login: {\n screen: LoginScreen,\n },\n});\n\nconst BarScreen = () => ;\n\nclass FooNavigator extends React.Component {\n static router = StackRouter({\n bar: {\n path: 'b/:barThing',\n screen: BarScreen,\n },\n });\n render() {\n return ;\n }\n}\n\nconst PersonScreen = () => ;\n\nconst TestStackRouter = StackRouter({\n main: {\n screen: MainNavigator,\n },\n baz: {\n path: null,\n screen: FooNavigator,\n },\n auth: {\n screen: AuthNavigator,\n },\n person: {\n path: 'people/:id',\n screen: PersonScreen,\n },\n foo: {\n path: 'fo/:fooThing',\n screen: FooNavigator,\n },\n});\n\ndescribe('StackRouter', () => {\n it('Gets the active screen for a given state', () => {\n const FooScreen = () => ;\n const BarScreen = () => ;\n const router = StackRouter({\n foo: {\n screen: FooScreen,\n },\n bar: {\n screen: BarScreen,\n },\n });\n\n expect(\n router.getComponentForState({\n index: 0,\n transitions: { pushing: [], popping: [] },\n routes: [\n { key: 'a', routeName: 'foo' },\n { key: 'b', routeName: 'bar' },\n { key: 'c', routeName: 'foo' },\n ],\n })\n ).toBe(FooScreen);\n expect(\n router.getComponentForState({\n index: 1,\n transitions: { pushing: [], popping: [] },\n routes: [\n { key: 'a', routeName: 'foo' },\n { key: 'b', routeName: 'bar' },\n ],\n })\n ).toBe(BarScreen);\n });\n\n it('Handles getScreen in getComponentForState', () => {\n const FooScreen = () => ;\n const BarScreen = () => ;\n const router = StackRouter({\n foo: {\n getScreen: () => FooScreen,\n },\n bar: {\n getScreen: () => BarScreen,\n },\n });\n\n expect(\n router.getComponentForState({\n index: 0,\n transitions: { pushing: [], popping: [] },\n routes: [\n { key: 'a', routeName: 'foo' },\n { key: 'b', routeName: 'bar' },\n { key: 'c', routeName: 'foo' },\n ],\n })\n ).toBe(FooScreen);\n expect(\n router.getComponentForState({\n index: 1,\n transitions: { pushing: [], popping: [] },\n routes: [\n { key: 'a', routeName: 'foo' },\n { key: 'b', routeName: 'bar' },\n ],\n })\n ).toBe(BarScreen);\n });\n\n it('Gets the screen for given route', () => {\n const FooScreen = () => ;\n const BarScreen = class extends React.Component {\n render() {\n return ;\n }\n };\n const BazScreen = class extends React.Component {\n render() {\n return ;\n }\n };\n const router = StackRouter({\n foo: {\n screen: FooScreen,\n },\n bar: {\n screen: BarScreen,\n },\n baz: {\n screen: BazScreen,\n },\n });\n\n expect(router.getComponentForRouteName('foo')).toBe(FooScreen);\n expect(router.getComponentForRouteName('bar')).toBe(BarScreen);\n expect(router.getComponentForRouteName('baz')).toBe(BazScreen);\n });\n\n it('Handles getScreen in getComponent', () => {\n const FooScreen = () => ;\n const BarScreen = class extends React.Component {\n render() {\n return ;\n }\n };\n const BazScreen = class extends React.Component {\n render() {\n return ;\n }\n };\n const router = StackRouter({\n foo: {\n getScreen: () => FooScreen,\n },\n bar: {\n getScreen: () => BarScreen,\n },\n baz: {\n getScreen: () => BazScreen,\n },\n });\n\n expect(router.getComponentForRouteName('foo')).toBe(FooScreen);\n expect(router.getComponentForRouteName('bar')).toBe(BarScreen);\n expect(router.getComponentForRouteName('baz')).toBe(BazScreen);\n });\n\n it('Parses simple paths', () => {\n expect(AuthNavigator.router.getActionForPathAndParams('login')).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'login',\n params: {},\n });\n });\n\n it('Parses paths with a param', () => {\n expect(TestStackRouter.getActionForPathAndParams('people/foo')).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'person',\n params: {\n id: 'foo',\n },\n });\n });\n\n it('Parses paths with a query', () => {\n expect(\n TestStackRouter.getActionForPathAndParams('people/foo', {\n code: 'test',\n foo: 'bar',\n })\n ).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'person',\n params: {\n id: 'foo',\n code: 'test',\n foo: 'bar',\n },\n });\n });\n\n it('Parses paths with an empty query value', () => {\n expect(\n TestStackRouter.getActionForPathAndParams('people/foo', {\n code: '',\n foo: 'bar',\n })\n ).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'person',\n params: {\n id: 'foo',\n code: '',\n foo: 'bar',\n },\n });\n });\n\n it('Correctly parses a path without arguments into an action chain', () => {\n const uri = 'auth/login';\n const action = TestStackRouter.getActionForPathAndParams(uri);\n expect(action).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'auth',\n params: {},\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'login',\n params: {},\n },\n });\n });\n\n it('Correctly parses a path with arguments into an action chain', () => {\n const uri = 'main/p/4/list/10259959195';\n const action = TestStackRouter.getActionForPathAndParams(uri);\n expect(action).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'main',\n params: {},\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'profile',\n params: {\n id: '4',\n },\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'list',\n params: {\n id: '10259959195',\n },\n },\n },\n });\n });\n\n it('Correctly parses a path to the router connected to another router through a pure wildcard route into an action chain', () => {\n const uri = 'b/123';\n const action = TestStackRouter.getActionForPathAndParams(uri);\n expect(action).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'baz',\n params: {},\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'bar',\n params: {\n barThing: '123',\n },\n },\n });\n });\n\n it('Correctly returns null action for non-existent path', () => {\n const uri = 'asdf/1234';\n const action = TestStackRouter.getActionForPathAndParams(uri);\n expect(action).toEqual(null);\n });\n\n it('Correctly returns action chain for partially matched path', () => {\n const uri = 'auth/login';\n const action = TestStackRouter.getActionForPathAndParams(uri);\n expect(action).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'auth',\n params: {},\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'login',\n params: {},\n },\n });\n });\n\n it('Correctly returns action for path with multiple parameters', () => {\n const path = 'fo/22/b/hello';\n const action = TestStackRouter.getActionForPathAndParams(path);\n expect(action).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'foo',\n params: {\n fooThing: '22',\n },\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'bar',\n params: {\n barThing: 'hello',\n },\n },\n });\n });\n\n it('Pushes other navigators when navigating to an unopened route name', () => {\n const Bar = () => ;\n Bar.router = StackRouter({\n baz: { screen: () => },\n qux: { screen: () => },\n });\n const TestRouter = StackRouter({\n foo: { screen: () => },\n bar: { screen: Bar },\n });\n const initState = TestRouter.getStateForAction(NavigationActions.init());\n expect(initState).toEqual({\n index: 0,\n transitions: { pushing: [], popping: [] },\n key: 'StackRouterRoot',\n routes: [{ key: 'id-0', routeName: 'foo' }],\n });\n const pushedState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'qux' }),\n initState\n );\n expect(pushedState.index).toEqual(1);\n expect(pushedState.routes[1].index).toEqual(1);\n expect(pushedState.routes[1].routes[1].routeName).toEqual('qux');\n });\n\n it('push bubbles up', () => {\n const ChildNavigator = () => ;\n ChildNavigator.router = StackRouter({\n Baz: { screen: () => },\n Qux: { screen: () => },\n });\n const router = StackRouter({\n Foo: { screen: () => },\n Bar: { screen: ChildNavigator },\n Bad: { screen: () => },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n },\n state\n );\n const state3 = router.getStateForAction(\n {\n type: StackActions.PUSH,\n routeName: 'Bad',\n },\n state2\n );\n expect(state3 && state3.index).toEqual(2);\n expect(state3 && state3.routes.length).toEqual(3);\n });\n\n it('pop bubbles up', () => {\n const ChildNavigator = () => ;\n ChildNavigator.router = StackRouter({\n Baz: { screen: () => },\n Qux: { screen: () => },\n });\n const router = StackRouter({\n Foo: { screen: () => },\n Bar: { screen: ChildNavigator },\n });\n\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n key: 'StackRouterRoot',\n },\n state\n );\n const state3 = router.getStateForAction(\n {\n type: StackActions.POP,\n },\n state2\n );\n expect(state3 && state3.index).toEqual(0);\n });\n\n it('Handle navigation to nested navigator', () => {\n const action = TestStackRouter.getActionForPathAndParams('fo/22/b/hello');\n /* $FlowFixMe */\n const state2 = TestStackRouter.getStateForAction(action);\n expect(state2).toEqual({\n index: 0,\n transitions: { pushing: [], popping: [] },\n key: 'StackRouterRoot',\n routes: [\n {\n index: 0,\n key: 'id-1',\n transitions: { pushing: [], popping: [] },\n routeName: 'foo',\n params: {\n fooThing: '22',\n },\n routes: [\n {\n routeName: 'bar',\n key: 'id-0',\n params: {\n barThing: 'hello',\n },\n },\n ],\n },\n ],\n });\n });\n\n it('popToTop bubbles up', () => {\n const ChildNavigator = () => ;\n ChildNavigator.router = StackRouter({\n Baz: { screen: () => },\n Qux: { screen: () => },\n });\n\n const router = StackRouter({\n Foo: { screen: () => },\n Bar: { screen: ChildNavigator },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n },\n state\n );\n\n const state3 = router.getStateForAction(\n {\n type: StackActions.POP_TO_TOP,\n },\n state2\n );\n expect(state3 && state3.index).toEqual(0);\n });\n\n it('popToTop targets StackRouter by key if specified', () => {\n const ChildNavigator = () => ;\n ChildNavigator.router = StackRouter({\n Baz: { screen: () => },\n Qux: { screen: () => },\n });\n const router = StackRouter({\n Foo: { screen: () => },\n Bar: { screen: ChildNavigator },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n },\n state\n );\n\n const state3 = router.getStateForAction(\n {\n type: StackActions.POP_TO_TOP,\n key: state2.key,\n },\n state2\n );\n expect(state3 && state3.index).toEqual(0);\n });\n\n it('pop action works as expected', () => {\n const TestRouter = StackRouter({\n foo: { screen: () => },\n bar: { screen: () => },\n });\n\n const state = {\n index: 3,\n transitions: { pushing: [], popping: [] },\n routes: [\n { key: 'A', routeName: 'foo' },\n { key: 'B', routeName: 'bar', params: { bazId: '321' } },\n { key: 'C', routeName: 'foo' },\n { key: 'D', routeName: 'bar' },\n ],\n };\n const poppedState = TestRouter.getStateForAction(StackActions.pop(), state);\n expect(poppedState.routes.length).toBe(3);\n expect(poppedState.index).toBe(2);\n expect(poppedState.transitions).toEqual({ pushing: [], popping: ['D'] });\n\n const poppedState2 = TestRouter.getStateForAction(\n StackActions.pop({ n: 2, immediate: true }),\n state\n );\n expect(poppedState2.routes.length).toBe(2);\n expect(poppedState2.index).toBe(1);\n expect(poppedState2.transitions).toEqual({ pushing: [], popping: [] });\n\n const poppedState3 = TestRouter.getStateForAction(\n StackActions.pop({ n: 5 }),\n state\n );\n expect(poppedState3.routes.length).toBe(1);\n expect(poppedState3.index).toBe(0);\n expect(poppedState3.transitions).toEqual({ pushing: [], popping: ['D'] });\n });\n\n it('popToTop works as expected', () => {\n const TestRouter = StackRouter({\n foo: { screen: () => },\n bar: { screen: () => },\n });\n\n const state = {\n index: 2,\n transitions: { pushing: [], popping: [] },\n routes: [\n { key: 'A', routeName: 'foo' },\n { key: 'B', routeName: 'bar', params: { bazId: '321' } },\n { key: 'C', routeName: 'foo' },\n ],\n };\n const poppedState = TestRouter.getStateForAction(\n StackActions.popToTop(),\n state\n );\n expect(poppedState.routes.length).toBe(1);\n expect(poppedState.index).toBe(0);\n expect(poppedState.transitions).toEqual({ popping: ['C'], pushing: [] });\n const poppedState2 = TestRouter.getStateForAction(\n StackActions.popToTop(),\n poppedState\n );\n expect(poppedState).toEqual(poppedState2);\n const poppedImmediatelyState = TestRouter.getStateForAction(\n StackActions.popToTop({ immediate: true }),\n state\n );\n expect(poppedImmediatelyState.routes.length).toBe(1);\n expect(poppedImmediatelyState.index).toBe(0);\n expect(poppedImmediatelyState.transitions).toEqual({\n pushing: [],\n popping: [],\n });\n });\n\n it('Navigate does not push duplicate routeName', () => {\n const TestRouter = StackRouter(\n {\n foo: { screen: () => },\n bar: { screen: () => },\n },\n { initialRouteName: 'foo' }\n );\n const initState = TestRouter.getStateForAction(NavigationActions.init());\n const barState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'bar' }),\n initState\n );\n expect(barState.index).toEqual(1);\n expect(barState.routes[1].routeName).toEqual('bar');\n const navigateOnBarState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'bar' }),\n barState\n );\n expect(navigateOnBarState).toEqual(null);\n });\n\n it('Navigate focuses given routeName if already active in stack', () => {\n const TestRouter = StackRouter(\n {\n foo: { screen: () => },\n bar: { screen: () => },\n baz: { screen: () => },\n },\n { initialRouteName: 'foo' }\n );\n const initialState = TestRouter.getStateForAction(NavigationActions.init());\n const fooBarState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'bar' }),\n initialState\n );\n const fooBarBazState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'baz' }),\n fooBarState\n );\n expect(fooBarBazState.index).toEqual(2);\n expect(fooBarBazState.routes[2].routeName).toEqual('baz');\n\n const fooState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'foo' }),\n fooBarBazState\n );\n expect(fooState.index).toEqual(0);\n expect(fooState.routes.length).toEqual(1);\n expect(fooState.routes[0].routeName).toEqual('foo');\n });\n\n it('Navigate pushes duplicate routeName if unique key is provided', () => {\n const TestRouter = StackRouter({\n foo: { screen: () => },\n bar: { screen: () => },\n });\n const initState = TestRouter.getStateForAction(NavigationActions.init());\n const pushedState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'bar' }),\n initState\n );\n expect(pushedState.index).toEqual(1);\n expect(pushedState.routes[1].routeName).toEqual('bar');\n const pushedTwiceState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'bar', key: 'new-unique-key!' }),\n pushedState\n );\n expect(pushedTwiceState.index).toEqual(2);\n expect(pushedTwiceState.routes[2].routeName).toEqual('bar');\n });\n\n it('Navigate from top propagates to any arbitary depth of stacks', () => {\n const GrandChildNavigator = () => ;\n GrandChildNavigator.router = StackRouter({\n Quux: { screen: () => },\n Corge: { screen: () => },\n });\n\n const ChildNavigator = () => ;\n ChildNavigator.router = StackRouter({\n Baz: { screen: () => },\n Woo: { screen: () => },\n Qux: { screen: GrandChildNavigator },\n });\n\n const Parent = StackRouter({\n Foo: { screen: () => },\n Bar: { screen: ChildNavigator },\n });\n\n const state = Parent.getStateForAction({ type: NavigationActions.INIT });\n const state2 = Parent.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Corge',\n },\n state\n );\n\n expect(state2.transitions).toEqual({ popping: [], pushing: ['id-5'] });\n expect(state2.index).toEqual(1);\n expect(state2.routes[1].index).toEqual(1);\n expect(state2.routes[1].routes[1].index).toEqual(1);\n expect(state2.routes[1].routes[1].routes[1].routeName).toEqual('Corge');\n });\n\n it('Navigate to initial screen is possible', () => {\n const TestRouter = StackRouter(\n {\n foo: { screen: () => },\n bar: { screen: () => },\n },\n { initialRouteKey: 'foo' }\n );\n const initState = TestRouter.getStateForAction(NavigationActions.init());\n const pushedState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'foo', key: 'foo' }),\n initState\n );\n expect(pushedState).toEqual(null);\n });\n\n it('Navigate with key and without it is idempotent', () => {\n const TestRouter = StackRouter({\n foo: { screen: () => },\n bar: { screen: () => },\n });\n const initState = TestRouter.getStateForAction(NavigationActions.init());\n const pushedState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'bar', key: 'a' }),\n initState\n );\n expect(pushedState.index).toEqual(1);\n expect(pushedState.routes[1].routeName).toEqual('bar');\n const pushedTwiceState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'bar', key: 'a' }),\n pushedState\n );\n expect(pushedTwiceState).toEqual(null);\n });\n\n // https://github.com/react-navigation/react-navigation/issues/4063\n it('Navigate on inactive stackrouter is idempotent', () => {\n const FirstChildNavigator = () => ;\n FirstChildNavigator.router = StackRouter({\n First1: () => ,\n First2: () => ,\n });\n\n const SecondChildNavigator = () => ;\n SecondChildNavigator.router = StackRouter({\n Second1: () => ,\n Second2: () => ,\n });\n\n const router = StackRouter({\n Leaf: () => ,\n First: FirstChildNavigator,\n Second: SecondChildNavigator,\n });\n\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n\n const first = router.getStateForAction(\n NavigationActions.navigate({ routeName: 'First2' }),\n state\n );\n\n const second = router.getStateForAction(\n NavigationActions.navigate({ routeName: 'Second2' }),\n first\n );\n\n const firstAgain = router.getStateForAction(\n NavigationActions.navigate({\n routeName: 'First2',\n params: { debug: true },\n }),\n second\n );\n\n expect(first.routes.length).toEqual(2);\n expect(first.index).toEqual(1);\n expect(second.routes.length).toEqual(3);\n expect(second.index).toEqual(2);\n\n expect(firstAgain.index).toEqual(1);\n expect(firstAgain.routes.length).toEqual(2);\n });\n\n it('Navigate to current routeName returns null to indicate handled action', () => {\n const TestRouter = StackRouter({\n foo: { screen: () => },\n bar: { screen: () => },\n });\n const initState = TestRouter.getStateForAction(NavigationActions.init());\n const navigatedState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'foo' }),\n initState\n );\n expect(navigatedState).toBe(null);\n });\n\n it('Push behaves like navigate, except for key', () => {\n const TestRouter = StackRouter({\n foo: { screen: () => },\n bar: { screen: () => },\n });\n const initState = TestRouter.getStateForAction(NavigationActions.init());\n const pushedState = TestRouter.getStateForAction(\n StackActions.push({ routeName: 'bar' }),\n initState\n );\n expect(pushedState.index).toEqual(1);\n expect(pushedState.routes[1].routeName).toEqual('bar');\n expect(() => {\n TestRouter.getStateForAction(\n { type: StackActions.PUSH, routeName: 'bar', key: 'a' },\n pushedState\n );\n }).toThrow('StackRouter does not support key on the push action');\n });\n\n it('Push adds new routes every time', () => {\n const TestRouter = StackRouter({\n foo: { screen: () => },\n bar: { screen: () => },\n });\n const initState = TestRouter.getStateForAction(NavigationActions.init());\n const pushedState = TestRouter.getStateForAction(\n StackActions.push({ routeName: 'bar' }),\n initState\n );\n expect(pushedState.index).toEqual(1);\n expect(pushedState.routes[1].routeName).toEqual('bar');\n const secondPushedState = TestRouter.getStateForAction(\n StackActions.push({ routeName: 'bar' }),\n pushedState\n );\n expect(secondPushedState.index).toEqual(2);\n expect(secondPushedState.routes[2].routeName).toEqual('bar');\n });\n\n it('Navigate backwards with key removes leading routes', () => {\n const TestRouter = StackRouter({\n foo: { screen: () => },\n bar: { screen: () => },\n });\n const initState = TestRouter.getStateForAction(NavigationActions.init());\n const pushedState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'bar', key: 'a' }),\n initState\n );\n const pushedTwiceState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'bar', key: 'b`' }),\n pushedState\n );\n const pushedThriceState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'foo', key: 'c`' }),\n pushedTwiceState\n );\n expect(pushedThriceState.routes.length).toEqual(4);\n\n const navigatedBackToFirstRouteState = TestRouter.getStateForAction(\n NavigationActions.navigate({\n routeName: 'foo',\n key: pushedThriceState.routes[0].key,\n }),\n pushedThriceState\n );\n expect(navigatedBackToFirstRouteState.index).toEqual(0);\n expect(navigatedBackToFirstRouteState.routes.length).toEqual(1);\n });\n\n it('Handle basic stack logic for plain components', () => {\n const FooScreen = () => ;\n const BarScreen = () => ;\n const router = StackRouter({\n Foo: {\n screen: FooScreen,\n },\n Bar: {\n screen: BarScreen,\n },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n expect(state).toEqual({\n index: 0,\n transitions: { pushing: [], popping: [] },\n key: 'StackRouterRoot',\n routes: [\n {\n key: 'id-0',\n routeName: 'Foo',\n },\n ],\n });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n params: { name: 'Zoom' },\n immediate: true,\n },\n state\n );\n expect(state2.index).toEqual(1);\n expect(state2.routes[1].routeName).toEqual('Bar');\n expect(state2.routes[1].params).toEqual({ name: 'Zoom' });\n expect(state2.routes.length).toEqual(2);\n const state3 = router.getStateForAction(\n { type: NavigationActions.BACK, immediate: true },\n state2\n );\n expect(state3).toEqual({\n index: 0,\n transitions: { pushing: [], popping: [] },\n key: 'StackRouterRoot',\n routes: [\n {\n key: 'id-0',\n routeName: 'Foo',\n },\n ],\n });\n });\n\n it('Replace action works', () => {\n const TestRouter = StackRouter({\n foo: { screen: () => },\n bar: { screen: () => },\n });\n const initState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'foo' })\n );\n const replacedState = TestRouter.getStateForAction(\n StackActions.replace({\n routeName: 'bar',\n params: { meaning: 42 },\n key: initState.routes[0].key,\n }),\n initState\n );\n expect(replacedState.index).toEqual(0);\n expect(replacedState.routes.length).toEqual(1);\n expect(replacedState.routes[0].key).not.toEqual(initState.routes[0].key);\n expect(replacedState.routes[0].routeName).toEqual('bar');\n expect(replacedState.routes[0].params.meaning).toEqual(42);\n const replacedState2 = TestRouter.getStateForAction(\n StackActions.replace({\n routeName: 'bar',\n key: initState.routes[0].key,\n newKey: 'wow',\n }),\n initState\n );\n expect(replacedState2.index).toEqual(0);\n expect(replacedState2.routes.length).toEqual(1);\n expect(replacedState2.routes[0].key).toEqual('wow');\n expect(replacedState2.routes[0].routeName).toEqual('bar');\n });\n\n it('Replace action returns most recent route if no key is provided', () => {\n const GrandChildNavigator = () => ;\n GrandChildNavigator.router = StackRouter({\n Quux: { screen: () => },\n Corge: { screen: () => },\n Grault: { screen: () => },\n });\n\n const ChildNavigator = () => ;\n ChildNavigator.router = StackRouter({\n Baz: { screen: () => },\n Woo: { screen: () => },\n Qux: { screen: GrandChildNavigator },\n });\n\n const router = StackRouter({\n Foo: { screen: () => },\n Bar: { screen: ChildNavigator },\n });\n\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n },\n state\n );\n const state3 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Qux',\n },\n state2\n );\n const state4 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Corge',\n },\n state3\n );\n const state5 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Grault',\n },\n state4\n );\n\n const replacedState = router.getStateForAction(\n StackActions.replace({\n routeName: 'Woo',\n params: { meaning: 42 },\n }),\n state5\n );\n\n const originalCurrentScreen = state5.routes[1].routes[1].routes[2];\n const replacedCurrentScreen = replacedState.routes[1].routes[1].routes[2];\n\n expect(replacedState.routes[1].routes[1].index).toEqual(2);\n expect(replacedState.routes[1].routes[1].routes.length).toEqual(3);\n expect(replacedCurrentScreen.key).not.toEqual(originalCurrentScreen.key);\n expect(replacedCurrentScreen.routeName).not.toEqual(\n originalCurrentScreen.routeName\n );\n expect(replacedCurrentScreen.routeName).toEqual('Woo');\n expect(replacedCurrentScreen.params.meaning).toEqual(42);\n });\n\n it('Handles push transition logic with completion action', () => {\n const FooScreen = () => ;\n const BarScreen = () => ;\n const router = StackRouter({\n Foo: {\n screen: FooScreen,\n },\n Bar: {\n screen: BarScreen,\n },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n params: { name: 'Zoom' },\n },\n state\n );\n expect(state2 && state2.index).toEqual(1);\n expect(state2 && state2.transitions).toEqual({\n popping: [],\n pushing: ['id-1'],\n });\n const state3 = router.getStateForAction(\n {\n type: StackActions.COMPLETE_TRANSITION,\n toChildKey: state2.routes[1].key,\n },\n state2\n );\n expect(state3 && state3.index).toEqual(1);\n expect(state3 && state3.transitions).toEqual({ pushing: [], popping: [] });\n });\n\n it('Completion action does not work with incorrect key', () => {\n const FooScreen = () => ;\n const router = StackRouter({\n Foo: {\n screen: FooScreen,\n },\n Bar: {\n screen: FooScreen,\n },\n });\n const state = {\n key: 'StackKey',\n index: 1,\n transitions: { pushing: ['b'], popping: [] },\n routes: [{ key: 'a', routeName: 'Foo' }, { key: 'b', routeName: 'Foo' }],\n };\n const outputState = router.getStateForAction(\n {\n type: StackActions.COMPLETE_TRANSITION,\n toChildKey: state.routes[state.index].key,\n key: 'not StackKey',\n },\n state\n );\n expect(outputState.transitions).toEqual({ pushing: ['b'], popping: [] });\n });\n\n it('Completion action does not work with incorrect toChildKey', () => {\n const FooScreen = () => ;\n const router = StackRouter({\n Foo: {\n screen: FooScreen,\n },\n Bar: {\n screen: FooScreen,\n },\n });\n const state = {\n key: 'StackKey',\n index: 1,\n transitions: { pushing: ['b'], popping: [] },\n routes: [{ key: 'a', routeName: 'Foo' }, { key: 'b', routeName: 'Foo' }],\n };\n const outputState = router.getStateForAction(\n {\n type: StackActions.COMPLETE_TRANSITION,\n // for this action to toggle transitions, toChildKey should be state.routes[state.index].key,\n toChildKey: 'incorrect',\n key: 'StackKey',\n },\n state\n );\n expect(outputState.transitions).toEqual({ pushing: ['b'], popping: [] });\n });\n\n it('Back action parent is prioritized over inactive child routers', () => {\n const Bar = () => ;\n Bar.router = StackRouter({\n baz: { screen: () => },\n qux: { screen: () => },\n });\n const TestRouter = StackRouter({\n foo: { screen: () => },\n bar: { screen: Bar },\n boo: { screen: () => },\n });\n const state = {\n key: 'top',\n index: 3,\n routes: [\n { routeName: 'foo', key: 'f' },\n {\n routeName: 'bar',\n key: 'b',\n index: 1,\n routes: [\n { routeName: 'baz', key: 'bz' },\n { routeName: 'qux', key: 'bx' },\n ],\n },\n { routeName: 'foo', key: 'f1' },\n { routeName: 'boo', key: 'z' },\n ],\n transitions: { pushing: [], popping: [] },\n };\n const testState = TestRouter.getStateForAction(\n { type: NavigationActions.BACK },\n state\n );\n expect(testState.index).toBe(2);\n expect(testState.routes[1].index).toBe(1);\n });\n\n it('Handle basic stack logic for components with router', () => {\n const FooScreen = () => ;\n const BarScreen = () => ;\n BarScreen.router = StackRouter({\n Xyz: {\n screen: () => null,\n },\n });\n const router = StackRouter({\n Foo: {\n screen: FooScreen,\n },\n Bar: {\n screen: BarScreen,\n },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n expect(state).toEqual({\n index: 0,\n transitions: { pushing: [], popping: [] },\n key: 'StackRouterRoot',\n routes: [\n {\n key: 'id-0',\n routeName: 'Foo',\n },\n ],\n });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n params: { name: 'Zoom' },\n immediate: true,\n },\n state\n );\n expect(state2 && state2.index).toEqual(1);\n expect(state2 && state2.routes[1].routeName).toEqual('Bar');\n expect(state2 && state2.routes[1].params).toEqual({ name: 'Zoom' });\n expect(state2 && state2.routes.length).toEqual(2);\n const state3 = router.getStateForAction(\n { type: NavigationActions.BACK, immediate: true },\n state2\n );\n expect(state3).toEqual({\n index: 0,\n transitions: { pushing: [], popping: [] },\n key: 'StackRouterRoot',\n routes: [\n {\n key: 'id-0',\n routeName: 'Foo',\n },\n ],\n });\n });\n\n it('Gets deep path (stack behavior)', () => {\n const ScreenA = () => ;\n const ScreenB = () => ;\n ScreenA.router = StackRouter({\n Boo: { path: 'boo', screen: ScreenB },\n Baz: { path: 'baz/:bazId', screen: ScreenB },\n });\n const router = StackRouter({\n Foo: {\n path: 'f/:id',\n screen: ScreenA,\n },\n Bar: {\n screen: ScreenB,\n },\n });\n\n const state = {\n index: 0,\n transitions: { pushing: [], popping: [] },\n routes: [\n {\n index: 1,\n key: 'Foo',\n routeName: 'Foo',\n params: {\n id: '123',\n },\n routes: [\n { key: 'Boo', routeName: 'Boo' },\n { key: 'Baz', routeName: 'Baz', params: { bazId: '321' } },\n ],\n },\n { key: 'Bar', routeName: 'Bar' },\n ],\n };\n const { path, params } = router.getPathAndParamsForState(state);\n expect(path).toEqual('f/123/baz/321');\n expect(params).toEqual({});\n });\n\n it('Handle goBack identified by key', () => {\n const FooScreen = () => ;\n const BarScreen = () => ;\n const router = StackRouter({\n Foo: {\n screen: FooScreen,\n },\n Bar: {\n screen: BarScreen,\n },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n immediate: true,\n params: { name: 'Zoom' },\n },\n state\n );\n const state3 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n immediate: true,\n params: { name: 'Foo' },\n },\n state2\n );\n const state4 = router.getStateForAction(\n { type: NavigationActions.BACK, key: 'wrongKey' },\n state3\n );\n expect(state3).toEqual(state4);\n const state5 = router.getStateForAction(\n {\n type: NavigationActions.BACK,\n key: state3 && state3.routes[1].key,\n immediate: true,\n },\n state4\n );\n expect(state5).toEqual(state);\n });\n\n it('Handle initial route navigation', () => {\n const FooScreen = () => ;\n const BarScreen = () => ;\n const router = StackRouter(\n {\n Foo: {\n screen: FooScreen,\n },\n Bar: {\n screen: BarScreen,\n },\n },\n { initialRouteName: 'Bar' }\n );\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n expect(state).toEqual({\n index: 0,\n transitions: { pushing: [], popping: [] },\n key: 'StackRouterRoot',\n routes: [\n {\n key: 'id-0',\n routeName: 'Bar',\n },\n ],\n });\n });\n\n it('Initial route params appear in nav state', () => {\n const FooScreen = () => ;\n const router = StackRouter(\n {\n Foo: {\n screen: FooScreen,\n },\n },\n { initialRouteName: 'Foo', initialRouteParams: { foo: 'bar' } }\n );\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n expect(state).toEqual({\n index: 0,\n transitions: { pushing: [], popping: [] },\n key: 'StackRouterRoot',\n routes: [\n {\n key: state && state.routes[0].key,\n routeName: 'Foo',\n params: { foo: 'bar' },\n },\n ],\n });\n });\n\n it('params in route config are merged with initialRouteParams', () => {\n const FooScreen = () => ;\n const router = StackRouter(\n {\n Foo: {\n screen: FooScreen,\n params: { foo: 'not-bar', meaning: 42 },\n },\n },\n { initialRouteName: 'Foo', initialRouteParams: { foo: 'bar' } }\n );\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n expect(state).toEqual({\n index: 0,\n transitions: { pushing: [], popping: [] },\n key: 'StackRouterRoot',\n routes: [\n {\n key: state && state.routes[0].key,\n routeName: 'Foo',\n params: { foo: 'bar', meaning: 42 },\n },\n ],\n });\n });\n\n it('Action params appear in nav state', () => {\n const FooScreen = () => ;\n const BarScreen = () => ;\n const router = StackRouter({\n Foo: {\n screen: FooScreen,\n },\n Bar: {\n screen: BarScreen,\n },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n params: { bar: '42' },\n immediate: true,\n },\n state\n );\n expect(state2).not.toBeNull();\n expect(state2 && state2.index).toEqual(1);\n expect(state2 && state2.routes[1].params).toEqual({ bar: '42' });\n });\n\n it('Handles the SetParams action', () => {\n const router = StackRouter(\n {\n Foo: {\n screen: () => ,\n },\n Bar: {\n screen: () => ,\n },\n },\n {\n initialRouteName: 'Bar',\n initialRouteParams: { name: 'Zoo' },\n }\n );\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const key = state && state.routes[0].key;\n const state2 =\n key &&\n router.getStateForAction(\n {\n type: NavigationActions.SET_PARAMS,\n params: { name: 'Qux' },\n key,\n },\n state\n );\n expect(state2 && state2.index).toEqual(0);\n expect(state2 && state2.routes[0].params).toEqual({ name: 'Qux' });\n });\n\n it('Handles the SetParams action for inactive routes', () => {\n const router = StackRouter(\n {\n Foo: {\n screen: () => ,\n },\n Bar: {\n screen: () => ,\n },\n },\n {\n initialRouteName: 'Bar',\n initialRouteParams: { name: 'Zoo' },\n }\n );\n const initialState = {\n index: 1,\n routes: [\n {\n key: 'RouteA',\n routeName: 'Foo',\n params: { name: 'InitialParam', other: 'Unchanged' },\n },\n { key: 'RouteB', routeName: 'Bar', params: {} },\n ],\n };\n const state = router.getStateForAction(\n {\n type: NavigationActions.SET_PARAMS,\n params: { name: 'NewParam' },\n key: 'RouteA',\n },\n initialState\n );\n expect(state.index).toEqual(1);\n expect(state.routes[0].params).toEqual({\n name: 'NewParam',\n other: 'Unchanged',\n });\n });\n\n it('Handles the setParams action with nested routers', () => {\n const ChildNavigator = () => ;\n ChildNavigator.router = StackRouter({\n Baz: { screen: () => },\n Qux: { screen: () => },\n });\n const router = StackRouter({\n Foo: { screen: ChildNavigator },\n Bar: { screen: () => },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.SET_PARAMS,\n params: { name: 'foobar' },\n key: 'id-0',\n },\n state\n );\n expect(state2 && state2.index).toEqual(0);\n expect(state2 && state2.routes[0].routes).toEqual([\n {\n key: 'id-0',\n routeName: 'Baz',\n params: { name: 'foobar' },\n },\n ]);\n });\n\n it('Handles the reset action', () => {\n const router = StackRouter({\n Foo: {\n screen: () => ,\n },\n Bar: {\n screen: () => ,\n },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: StackActions.RESET,\n actions: [\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Foo',\n params: { bar: '42' },\n immediate: true,\n },\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n immediate: true,\n },\n ],\n index: 1,\n },\n state\n );\n expect(state2 && state2.index).toEqual(1);\n expect(state2 && state2.routes[0].params).toEqual({ bar: '42' });\n expect(state2 && state2.routes[0].routeName).toEqual('Foo');\n expect(state2 && state2.routes[1].routeName).toEqual('Bar');\n });\n\n it('Handles the reset action only with correct key set', () => {\n const router = StackRouter({\n Foo: {\n screen: () => ,\n },\n Bar: {\n screen: () => ,\n },\n });\n const state1 = router.getStateForAction({ type: NavigationActions.INIT });\n const resetAction = {\n type: StackActions.RESET,\n key: 'Bad Key',\n actions: [\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Foo',\n params: { bar: '42' },\n immediate: true,\n },\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n immediate: true,\n },\n ],\n index: 1,\n };\n const state2 = router.getStateForAction(resetAction, state1);\n expect(state2).toEqual(state1);\n const state3 = router.getStateForAction(\n {\n ...resetAction,\n key: state2.key,\n },\n state2\n );\n expect(state3 && state3.index).toEqual(1);\n expect(state3 && state3.routes[0].params).toEqual({ bar: '42' });\n expect(state3 && state3.routes[0].routeName).toEqual('Foo');\n expect(state3 && state3.routes[1].routeName).toEqual('Bar');\n });\n\n it('Handles the reset action with nested Router', () => {\n const ChildRouter = StackRouter({\n baz: {\n screen: () => ,\n },\n });\n\n const ChildNavigator = () => ;\n ChildNavigator.router = ChildRouter;\n\n const router = StackRouter({\n Foo: {\n screen: ChildNavigator,\n },\n Bar: {\n screen: () => ,\n },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: StackActions.RESET,\n key: null,\n actions: [\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Foo',\n immediate: true,\n },\n ],\n index: 0,\n },\n state\n );\n\n expect(state2 && state2.index).toEqual(0);\n expect(state2 && state2.routes[0].routeName).toEqual('Foo');\n expect(state2 && state2.routes[0].routes[0].routeName).toEqual('baz');\n });\n\n it('Handles the reset action with a key', () => {\n const ChildRouter = StackRouter({\n baz: {\n screen: () => ,\n },\n });\n\n const ChildNavigator = () => ;\n ChildNavigator.router = ChildRouter;\n\n const router = StackRouter({\n Foo: {\n screen: ChildNavigator,\n },\n Bar: {\n screen: () => ,\n },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Foo',\n immediate: true,\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'baz',\n immediate: true,\n },\n },\n state\n );\n const state3 = router.getStateForAction(\n {\n type: StackActions.RESET,\n key: 'Init',\n actions: [\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Foo',\n immediate: true,\n },\n ],\n index: 0,\n },\n state2\n );\n const state4 = router.getStateForAction(\n {\n type: StackActions.RESET,\n key: null,\n actions: [\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n immediate: true,\n },\n ],\n index: 0,\n },\n state3\n );\n\n expect(state4 && state4.index).toEqual(0);\n expect(state4 && state4.routes[0].routeName).toEqual('Bar');\n });\n\n it('Handles the navigate action with params and nested StackRouter', () => {\n const ChildNavigator = () => ;\n ChildNavigator.router = StackRouter({ Baz: { screen: () => } });\n\n const router = StackRouter({\n Foo: { screen: () => },\n Bar: { screen: ChildNavigator },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n immediate: true,\n routeName: 'Bar',\n params: { foo: '42' },\n },\n state\n );\n expect(state2 && state2.routes[1].params).toEqual({ foo: '42' });\n expect(state2 && state2.routes[1].routes).toEqual([\n expect.objectContaining({\n routeName: 'Baz',\n params: { foo: '42' },\n }),\n ]);\n });\n\n it('Navigate action to previous nested StackRouter causes no transitions', () => {\n const ChildNavigator = () => ;\n ChildNavigator.router = StackRouter({\n Baz: { screen: () => },\n });\n const router = StackRouter({\n Bar: { screen: ChildNavigator },\n Foo: { screen: () => },\n });\n const state = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n immediate: true,\n routeName: 'Foo',\n },\n router.getStateForAction({ type: NavigationActions.INIT })\n );\n\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Baz',\n },\n state\n );\n\n expect(state2.index).toEqual(0);\n expect(state2.transitions).toEqual({ pushing: [], popping: [] });\n });\n\n it('Handles the navigate action with params and nested StackRouter as a first action', () => {\n const state = TestStackRouter.getStateForAction({\n type: NavigationActions.NAVIGATE,\n routeName: 'main',\n params: {\n code: 'test',\n foo: 'bar',\n },\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'profile',\n params: {\n id: '4',\n code: 'test',\n foo: 'bar',\n },\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'list',\n params: {\n id: '10259959195',\n code: 'test',\n foo: 'bar',\n },\n },\n },\n });\n\n expect(state).toEqual({\n index: 0,\n transitions: { pushing: [], popping: [] },\n key: 'StackRouterRoot',\n routes: [\n {\n index: 0,\n transitions: { pushing: [], popping: [] },\n key: 'id-2',\n params: { code: 'test', foo: 'bar' },\n routeName: 'main',\n routes: [\n {\n index: 0,\n transitions: { pushing: [], popping: [] },\n key: 'id-1',\n params: { code: 'test', foo: 'bar', id: '4' },\n routeName: 'profile',\n routes: [\n {\n key: 'id-0',\n params: { code: 'test', foo: 'bar', id: '10259959195' },\n routeName: 'list',\n type: undefined,\n },\n ],\n },\n ],\n },\n ],\n });\n\n const state2 = TestStackRouter.getStateForAction({\n type: NavigationActions.NAVIGATE,\n routeName: 'main',\n params: {\n code: '',\n foo: 'bar',\n },\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'profile',\n params: {\n id: '4',\n code: '',\n foo: 'bar',\n },\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'list',\n params: {\n id: '10259959195',\n code: '',\n foo: 'bar',\n },\n },\n },\n });\n\n expect(state2).toEqual({\n index: 0,\n transitions: { pushing: [], popping: [] },\n key: 'StackRouterRoot',\n routes: [\n {\n index: 0,\n transitions: { pushing: [], popping: [] },\n key: 'id-5',\n params: { code: '', foo: 'bar' },\n routeName: 'main',\n routes: [\n {\n index: 0,\n transitions: { pushing: [], popping: [] },\n key: 'id-4',\n params: { code: '', foo: 'bar', id: '4' },\n routeName: 'profile',\n routes: [\n {\n key: 'id-3',\n params: { code: '', foo: 'bar', id: '10259959195' },\n routeName: 'list',\n type: undefined,\n },\n ],\n },\n ],\n },\n ],\n });\n });\n\n it('Handles deep navigate completion action', () => {\n const LeafScreen = () => ;\n const FooScreen = () => ;\n FooScreen.router = StackRouter({\n Boo: { path: 'boo', screen: LeafScreen },\n Baz: { path: 'baz/:bazId', screen: LeafScreen },\n });\n const router = StackRouter({\n Foo: {\n screen: FooScreen,\n },\n Bar: {\n screen: LeafScreen,\n },\n });\n\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n expect(state && state.index).toEqual(0);\n expect(state && state.routes[0].routeName).toEqual('Foo');\n const key = state && state.routes[0].key;\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Baz',\n },\n state\n );\n expect(state2.index).toEqual(0);\n expect(state2.transitions).toEqual({ pushing: [], popping: [] });\n expect(state2.routes[0].index).toEqual(1);\n expect(state2.routes[0].transitions).toEqual({\n popping: [],\n pushing: ['id-2'],\n });\n expect(!!key).toEqual(true);\n const state3 = router.getStateForAction(\n {\n type: StackActions.COMPLETE_TRANSITION,\n toChildKey: state2.routes[0].routes[1].key,\n },\n state2\n );\n expect(state3 && state3.index).toEqual(0);\n expect(state3 && state3.transitions).toEqual({ popping: [], pushing: [] });\n expect(state3 && state3.routes[0].index).toEqual(1);\n expect(state3 && state3.routes[0].transitions).toEqual({\n popping: [],\n pushing: [],\n });\n });\n\n it('order of handling navigate action is correct for nested stackrouters', () => {\n const Screen = () => ;\n const NestedStack = () => ;\n let nestedRouter = StackRouter({\n Foo: Screen,\n Bar: Screen,\n });\n\n NestedStack.router = nestedRouter;\n\n let router = StackRouter(\n {\n NestedStack,\n Bar: Screen,\n Baz: Screen,\n },\n {\n initialRouteName: 'Baz',\n }\n );\n\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n expect(state.routes[state.index].routeName).toEqual('Baz');\n\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n },\n state\n );\n expect(state2.routes[state2.index].routeName).toEqual('Bar');\n\n const state3 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Baz',\n },\n state2\n );\n expect(state3.routes[state3.index].routeName).toEqual('Baz');\n\n const state4 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Foo',\n },\n state3\n );\n let activeState4 = state4.routes[state4.index];\n expect(activeState4.routeName).toEqual('NestedStack');\n expect(activeState4.routes[activeState4.index].routeName).toEqual('Foo');\n\n const state5 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n },\n state4\n );\n let activeState5 = state5.routes[state5.index];\n expect(activeState5.routeName).toEqual('NestedStack');\n expect(activeState5.routes[activeState5.index].routeName).toEqual('Bar');\n });\n\n it('order of handling navigate action is correct for nested stackrouters 2', () => {\n const Screen = () => ;\n const NestedStack = () => ;\n const OtherNestedStack = () => ;\n\n let nestedRouter = StackRouter({ Foo: Screen, Bar: Screen });\n let otherNestedRouter = StackRouter({ Foo: Screen });\n NestedStack.router = nestedRouter;\n OtherNestedStack.router = otherNestedRouter;\n\n let router = StackRouter(\n {\n NestedStack,\n OtherNestedStack,\n Bar: Screen,\n },\n {\n initialRouteName: 'OtherNestedStack',\n }\n );\n\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n expect(state.routes[state.index].routeName).toEqual('OtherNestedStack');\n\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n },\n state\n );\n expect(state2.routes[state2.index].routeName).toEqual('Bar');\n\n const state3 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'NestedStack',\n },\n state2\n );\n const state4 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n },\n state3\n );\n let activeState4 = state4.routes[state4.index];\n expect(activeState4.routeName).toEqual('NestedStack');\n expect(activeState4.routes[activeState4.index].routeName).toEqual('Bar');\n });\n});\n"]}
+\ No newline at end of file
+diff --git a/node_modules/@react-navigation/core/lib/commonjs/routers/__tests__/SwitchRouter-test.js b/node_modules/@react-navigation/core/lib/commonjs/routers/__tests__/SwitchRouter-test.js
+index 40d75b0..853bbbc 100644
+--- a/node_modules/@react-navigation/core/lib/commonjs/routers/__tests__/SwitchRouter-test.js
++++ b/node_modules/@react-navigation/core/lib/commonjs/routers/__tests__/SwitchRouter-test.js
+@@ -1,2 +1,2 @@
+-var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _interopRequireWildcard=require("@babel/runtime/helpers/interopRequireWildcard");var _objectSpread2=_interopRequireDefault(require("@babel/runtime/helpers/objectSpread"));var _classCallCheck2=_interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));var _react=_interopRequireDefault(require("react"));var _SwitchRouter=_interopRequireDefault(require("../SwitchRouter"));var _StackRouter=_interopRequireDefault(require("../StackRouter"));var SwitchActions=_interopRequireWildcard(require("../SwitchActions"));var NavigationActions=_interopRequireWildcard(require("../../NavigationActions"));var _jsxFileName="/Users/satya/Workspace/Callstack/react-navigation-core/src/routers/__tests__/SwitchRouter-test.js";describe('SwitchRouter',function(){it('resets the route when unfocusing a tab by default',function(){var router=getExampleRouter();var state=router.getStateForAction({type:NavigationActions.INIT});var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'A2'},state);expect(state2.routes[0].index).toEqual(1);expect(state2.routes[0].routes.length).toEqual(2);var state3=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'B'},state2);expect(state3.routes[0].index).toEqual(0);expect(state3.routes[0].routes.length).toEqual(1);});it('does not reset the route on unfocus if resetOnBlur is false',function(){var router=getExampleRouter({resetOnBlur:false});var state=router.getStateForAction({type:NavigationActions.INIT});var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'A2'},state);expect(state2.routes[0].index).toEqual(1);expect(state2.routes[0].routes.length).toEqual(2);var state3=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'B'},state2);expect(state3.routes[0].index).toEqual(1);expect(state3.routes[0].routes.length).toEqual(2);});it('ignores back by default',function(){var router=getExampleRouter();var state=router.getStateForAction({type:NavigationActions.INIT});var state2=router.getStateForAction({type:SwitchActions.JUMP_TO,routeName:'B'},state);expect(state2.index).toEqual(1);var state3=router.getStateForAction({type:NavigationActions.BACK},state2);expect(state3.index).toEqual(1);});it('handles initialRoute backBehavior',function(){var router=getExampleRouter({backBehavior:'initialRoute'});var state=router.getStateForAction({type:NavigationActions.INIT});expect(state.routeKeyHistory).toBeUndefined();var state2=router.getStateForAction({type:SwitchActions.JUMP_TO,routeName:'B'},state);expect(state2.index).toEqual(1);var state3=router.getStateForAction({type:NavigationActions.BACK},state2);expect(state3.index).toEqual(0);});it('handles order backBehavior',function(){var routerHelper=new ExampleRouterHelper({backBehavior:'order'});expect(routerHelper.getCurrentState().routeKeyHistory).toBeUndefined();expect(routerHelper.applyAction({type:SwitchActions.JUMP_TO,routeName:'C'})).toMatchObject({index:2});expect(routerHelper.applyAction({type:NavigationActions.BACK})).toMatchObject({index:1});expect(routerHelper.applyAction({type:NavigationActions.BACK})).toMatchObject({index:0});expect(routerHelper.applyAction({type:NavigationActions.BACK})).toMatchObject({index:0});});it('handles history backBehavior',function(){var routerHelper=new ExampleRouterHelper({backBehavior:'history'});expect(routerHelper.getCurrentState().routeKeyHistory).toMatchObject(['A']);expect(routerHelper.applyAction({type:NavigationActions.NAVIGATE,routeName:'B'})).toMatchObject({index:1,routeKeyHistory:['A','B']});expect(routerHelper.applyAction({type:NavigationActions.NAVIGATE,routeName:'A'})).toMatchObject({index:0,routeKeyHistory:['B','A']});expect(routerHelper.applyAction({type:NavigationActions.NAVIGATE,routeName:'C'})).toMatchObject({index:2,routeKeyHistory:['B','A','C']});expect(routerHelper.applyAction({type:NavigationActions.NAVIGATE,routeName:'A'})).toMatchObject({index:0,routeKeyHistory:['B','C','A']});expect(routerHelper.applyAction({type:NavigationActions.BACK})).toMatchObject({index:2,routeKeyHistory:['B','C']});expect(routerHelper.applyAction({type:NavigationActions.BACK})).toMatchObject({index:1,routeKeyHistory:['B']});expect(routerHelper.applyAction({type:NavigationActions.BACK})).toMatchObject({index:1,routeKeyHistory:['B']});});it('handles nested actions',function(){var router=getExampleRouter();var state=router.getStateForAction({type:NavigationActions.INIT});var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'B',action:{type:NavigationActions.NAVIGATE,routeName:'B2'}},state);var subState=state2.routes[state2.index];var activeGrandChildRoute=subState.routes[subState.index];expect(activeGrandChildRoute.routeName).toEqual('B2');});it('handles nested actions and params simultaneously',function(){var router=getExampleRouter();var state=router.getStateForAction({type:NavigationActions.INIT});var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'B',params:{foo:'bar'},action:{type:NavigationActions.NAVIGATE,routeName:'B2'}},state);var subState=state2.routes[state2.index];var activeGrandChildRoute=subState.routes[subState.index];expect(subState.params.foo).toEqual('bar');expect(activeGrandChildRoute.routeName).toEqual('B2');});it('order of handling navigate action is correct for nested switchrouters',function(){var Screen=function Screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:192}});};var NestedSwitch=function NestedSwitch(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:193}});};var OtherNestedSwitch=function OtherNestedSwitch(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:194}});};var nestedRouter=(0,_SwitchRouter.default)({Foo:Screen,Bar:Screen});var otherNestedRouter=(0,_SwitchRouter.default)({Foo:Screen});NestedSwitch.router=nestedRouter;OtherNestedSwitch.router=otherNestedRouter;var router=(0,_SwitchRouter.default)({NestedSwitch:NestedSwitch,OtherNestedSwitch:OtherNestedSwitch,Bar:Screen},{initialRouteName:'OtherNestedSwitch'});var state=router.getStateForAction({type:NavigationActions.INIT});expect(state.routes[state.index].routeName).toEqual('OtherNestedSwitch');var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar'},state);expect(state2.routes[state2.index].routeName).toEqual('Bar');var state3=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'NestedSwitch'},state2);var state4=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar'},state3);var activeState4=state4.routes[state4.index];expect(activeState4.routeName).toEqual('NestedSwitch');expect(activeState4.routes[activeState4.index].routeName).toEqual('Bar');});it('order of handling navigate action is correct for nested stackrouters',function(){var Screen=function Screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:245}});};var MainStack=function MainStack(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:246}});};var LoginStack=function LoginStack(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:247}});};MainStack.router=(0,_StackRouter.default)({Home:Screen,Profile:Screen});LoginStack.router=(0,_StackRouter.default)({Form:Screen,ForgotPassword:Screen});var router=(0,_SwitchRouter.default)({Home:Screen,Login:LoginStack,Main:MainStack},{initialRouteName:'Login'});var state=router.getStateForAction({type:NavigationActions.INIT});expect(state.routes[state.index].routeName).toEqual('Login');var state2=router.getStateForAction({type:SwitchActions.JUMP_TO,routeName:'Home'},state);expect(state2.routes[state2.index].routeName).toEqual('Home');});});var ExampleRouterHelper=function ExampleRouterHelper(config){var _this=this;(0,_classCallCheck2.default)(this,ExampleRouterHelper);this.applyAction=function(action){_this._currentState=_this._router.getStateForAction(action,_this._currentState);return _this._currentState;};this.getCurrentState=function(){return _this._currentState;};this._router=getExampleRouter(config);this._currentState=this._router.getStateForAction({type:NavigationActions.INIT});};var getExampleRouter=function getExampleRouter(){var config=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var PlainScreen=function PlainScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:299}});};var StackA=function StackA(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:300}});};var StackB=function StackB(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:301}});};var StackC=function StackC(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:302}});};StackA.router=(0,_StackRouter.default)({A1:PlainScreen,A2:PlainScreen});StackB.router=(0,_StackRouter.default)({B1:PlainScreen,B2:PlainScreen});StackC.router=(0,_StackRouter.default)({C1:PlainScreen,C2:PlainScreen});var router=(0,_SwitchRouter.default)({A:{screen:StackA,path:''},B:{screen:StackB,path:'great/path'},C:{screen:StackC,path:'pathC'}},(0,_objectSpread2.default)({initialRouteName:'A'},config));return router;};
++var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _interopRequireWildcard=require("@babel/runtime/helpers/interopRequireWildcard");var _objectSpread2=_interopRequireDefault(require("@babel/runtime/helpers/objectSpread"));var _classCallCheck2=_interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));var _react=_interopRequireDefault(require("react"));var _SwitchRouter=_interopRequireDefault(require("../SwitchRouter"));var _StackRouter=_interopRequireDefault(require("../StackRouter"));var SwitchActions=_interopRequireWildcard(require("../SwitchActions"));var NavigationActions=_interopRequireWildcard(require("../../NavigationActions"));var _jsxFileName="/Users/brentvatne/coding/react-navigation-core/src/routers/__tests__/SwitchRouter-test.js";describe('SwitchRouter',function(){it('resets the route when unfocusing a tab by default',function(){var router=getExampleRouter();var state=router.getStateForAction({type:NavigationActions.INIT});var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'A2'},state);expect(state2.routes[0].index).toEqual(1);expect(state2.routes[0].routes.length).toEqual(2);var state3=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'B'},state2);expect(state3.routes[0].index).toEqual(0);expect(state3.routes[0].routes.length).toEqual(1);});it('does not reset the route on unfocus if resetOnBlur is false',function(){var router=getExampleRouter({resetOnBlur:false});var state=router.getStateForAction({type:NavigationActions.INIT});var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'A2'},state);expect(state2.routes[0].index).toEqual(1);expect(state2.routes[0].routes.length).toEqual(2);var state3=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'B'},state2);expect(state3.routes[0].index).toEqual(1);expect(state3.routes[0].routes.length).toEqual(2);});it('ignores back by default',function(){var router=getExampleRouter();var state=router.getStateForAction({type:NavigationActions.INIT});var state2=router.getStateForAction({type:SwitchActions.JUMP_TO,routeName:'B'},state);expect(state2.index).toEqual(1);var state3=router.getStateForAction({type:NavigationActions.BACK},state2);expect(state3.index).toEqual(1);});it('handles initialRoute backBehavior',function(){var router=getExampleRouter({backBehavior:'initialRoute'});var state=router.getStateForAction({type:NavigationActions.INIT});expect(state.routeKeyHistory).toBeUndefined();var state2=router.getStateForAction({type:SwitchActions.JUMP_TO,routeName:'B'},state);expect(state2.index).toEqual(1);var state3=router.getStateForAction({type:NavigationActions.BACK},state2);expect(state3.index).toEqual(0);});it('handles order backBehavior',function(){var routerHelper=new ExampleRouterHelper({backBehavior:'order'});expect(routerHelper.getCurrentState().routeKeyHistory).toBeUndefined();expect(routerHelper.applyAction({type:SwitchActions.JUMP_TO,routeName:'C'})).toMatchObject({index:2});expect(routerHelper.applyAction({type:NavigationActions.BACK})).toMatchObject({index:1});expect(routerHelper.applyAction({type:NavigationActions.BACK})).toMatchObject({index:0});expect(routerHelper.applyAction({type:NavigationActions.BACK})).toMatchObject({index:0});});it('handles history backBehavior',function(){var routerHelper=new ExampleRouterHelper({backBehavior:'history'});expect(routerHelper.getCurrentState().routeKeyHistory).toMatchObject(['A']);expect(routerHelper.applyAction({type:NavigationActions.NAVIGATE,routeName:'B'})).toMatchObject({index:1,routeKeyHistory:['A','B']});expect(routerHelper.applyAction({type:NavigationActions.NAVIGATE,routeName:'A'})).toMatchObject({index:0,routeKeyHistory:['B','A']});expect(routerHelper.applyAction({type:NavigationActions.NAVIGATE,routeName:'C'})).toMatchObject({index:2,routeKeyHistory:['B','A','C']});expect(routerHelper.applyAction({type:NavigationActions.NAVIGATE,routeName:'A'})).toMatchObject({index:0,routeKeyHistory:['B','C','A']});expect(routerHelper.applyAction({type:NavigationActions.BACK})).toMatchObject({index:2,routeKeyHistory:['B','C']});expect(routerHelper.applyAction({type:NavigationActions.BACK})).toMatchObject({index:1,routeKeyHistory:['B']});expect(routerHelper.applyAction({type:NavigationActions.BACK})).toMatchObject({index:1,routeKeyHistory:['B']});});it('handles nested actions',function(){var router=getExampleRouter();var state=router.getStateForAction({type:NavigationActions.INIT});var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'B',action:{type:NavigationActions.NAVIGATE,routeName:'B2'}},state);var subState=state2.routes[state2.index];var activeGrandChildRoute=subState.routes[subState.index];expect(activeGrandChildRoute.routeName).toEqual('B2');});it('handles nested actions and params simultaneously',function(){var router=getExampleRouter();var state=router.getStateForAction({type:NavigationActions.INIT});var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'B',params:{foo:'bar'},action:{type:NavigationActions.NAVIGATE,routeName:'B2'}},state);var subState=state2.routes[state2.index];var activeGrandChildRoute=subState.routes[subState.index];expect(subState.params.foo).toEqual('bar');expect(activeGrandChildRoute.routeName).toEqual('B2');});it('order of handling navigate action is correct for nested switchrouters',function(){var Screen=function Screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:192}});};var NestedSwitch=function NestedSwitch(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:193}});};var OtherNestedSwitch=function OtherNestedSwitch(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:194}});};var nestedRouter=(0,_SwitchRouter.default)({Foo:Screen,Bar:Screen});var otherNestedRouter=(0,_SwitchRouter.default)({Foo:Screen});NestedSwitch.router=nestedRouter;OtherNestedSwitch.router=otherNestedRouter;var router=(0,_SwitchRouter.default)({NestedSwitch:NestedSwitch,OtherNestedSwitch:OtherNestedSwitch,Bar:Screen},{initialRouteName:'OtherNestedSwitch'});var state=router.getStateForAction({type:NavigationActions.INIT});expect(state.routes[state.index].routeName).toEqual('OtherNestedSwitch');var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar'},state);expect(state2.routes[state2.index].routeName).toEqual('Bar');var state3=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'NestedSwitch'},state2);var state4=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar'},state3);var activeState4=state4.routes[state4.index];expect(activeState4.routeName).toEqual('NestedSwitch');expect(activeState4.routes[activeState4.index].routeName).toEqual('Bar');});it('order of handling navigate action is correct for nested stackrouters',function(){var Screen=function Screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:245}});};var MainStack=function MainStack(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:246}});};var LoginStack=function LoginStack(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:247}});};MainStack.router=(0,_StackRouter.default)({Home:Screen,Profile:Screen});LoginStack.router=(0,_StackRouter.default)({Form:Screen,ForgotPassword:Screen});var router=(0,_SwitchRouter.default)({Home:Screen,Login:LoginStack,Main:MainStack},{initialRouteName:'Login'});var state=router.getStateForAction({type:NavigationActions.INIT});expect(state.routes[state.index].routeName).toEqual('Login');var state2=router.getStateForAction({type:SwitchActions.JUMP_TO,routeName:'Home'},state);expect(state2.routes[state2.index].routeName).toEqual('Home');});});var ExampleRouterHelper=function ExampleRouterHelper(config){var _this=this;(0,_classCallCheck2.default)(this,ExampleRouterHelper);this.applyAction=function(action){_this._currentState=_this._router.getStateForAction(action,_this._currentState);return _this._currentState;};this.getCurrentState=function(){return _this._currentState;};this._router=getExampleRouter(config);this._currentState=this._router.getStateForAction({type:NavigationActions.INIT});};var getExampleRouter=function getExampleRouter(){var config=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var PlainScreen=function PlainScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:299}});};var StackA=function StackA(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:300}});};var StackB=function StackB(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:301}});};var StackC=function StackC(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:302}});};StackA.router=(0,_StackRouter.default)({A1:PlainScreen,A2:PlainScreen});StackB.router=(0,_StackRouter.default)({B1:PlainScreen,B2:PlainScreen});StackC.router=(0,_StackRouter.default)({C1:PlainScreen,C2:PlainScreen});var router=(0,_SwitchRouter.default)({A:{screen:StackA,path:''},B:{screen:StackB,path:'great/path'},C:{screen:StackC,path:'pathC'}},(0,_objectSpread2.default)({initialRouteName:'A'},config));return router;};
+ //# sourceMappingURL=SwitchRouter-test.js.map
+\ No newline at end of file
+diff --git a/node_modules/@react-navigation/core/lib/commonjs/routers/__tests__/SwitchRouter-test.js.map b/node_modules/@react-navigation/core/lib/commonjs/routers/__tests__/SwitchRouter-test.js.map
+index 9505967..b9ae7c4 100644
+--- a/node_modules/@react-navigation/core/lib/commonjs/routers/__tests__/SwitchRouter-test.js.map
++++ b/node_modules/@react-navigation/core/lib/commonjs/routers/__tests__/SwitchRouter-test.js.map
+@@ -1 +1 @@
+-{"version":3,"sources":["SwitchRouter-test.js"],"names":["describe","it","router","getExampleRouter","state","getStateForAction","type","NavigationActions","INIT","state2","NAVIGATE","routeName","expect","routes","index","toEqual","length","state3","resetOnBlur","SwitchActions","JUMP_TO","BACK","backBehavior","routeKeyHistory","toBeUndefined","routerHelper","ExampleRouterHelper","getCurrentState","applyAction","toMatchObject","action","subState","activeGrandChildRoute","params","foo","Screen","NestedSwitch","OtherNestedSwitch","nestedRouter","Foo","Bar","otherNestedRouter","initialRouteName","state4","activeState4","MainStack","LoginStack","Home","Profile","Form","ForgotPassword","Login","Main","config","_currentState","_router","PlainScreen","StackA","StackB","StackC","A1","A2","B1","B2","C1","C2","A","screen","path","B","C"],"mappings":"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","sourcesContent":["/* eslint react/display-name:0 */\n\nimport React from 'react';\nimport SwitchRouter from '../SwitchRouter';\nimport StackRouter from '../StackRouter';\nimport * as SwitchActions from '../SwitchActions';\nimport * as NavigationActions from '../../NavigationActions';\n\ndescribe('SwitchRouter', () => {\n it('resets the route when unfocusing a tab by default', () => {\n const router = getExampleRouter();\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'A2' },\n state\n );\n expect(state2.routes[0].index).toEqual(1);\n expect(state2.routes[0].routes.length).toEqual(2);\n\n const state3 = router.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'B' },\n state2\n );\n\n expect(state3.routes[0].index).toEqual(0);\n expect(state3.routes[0].routes.length).toEqual(1);\n });\n\n it('does not reset the route on unfocus if resetOnBlur is false', () => {\n const router = getExampleRouter({ resetOnBlur: false });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'A2' },\n state\n );\n expect(state2.routes[0].index).toEqual(1);\n expect(state2.routes[0].routes.length).toEqual(2);\n\n const state3 = router.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'B' },\n state2\n );\n\n expect(state3.routes[0].index).toEqual(1);\n expect(state3.routes[0].routes.length).toEqual(2);\n });\n\n it('ignores back by default', () => {\n const router = getExampleRouter();\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n { type: SwitchActions.JUMP_TO, routeName: 'B' },\n state\n );\n expect(state2.index).toEqual(1);\n\n const state3 = router.getStateForAction(\n { type: NavigationActions.BACK },\n state2\n );\n\n expect(state3.index).toEqual(1);\n });\n\n it('handles initialRoute backBehavior', () => {\n const router = getExampleRouter({ backBehavior: 'initialRoute' });\n\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n expect(state.routeKeyHistory).toBeUndefined();\n\n const state2 = router.getStateForAction(\n { type: SwitchActions.JUMP_TO, routeName: 'B' },\n state\n );\n expect(state2.index).toEqual(1);\n\n const state3 = router.getStateForAction(\n { type: NavigationActions.BACK },\n state2\n );\n\n expect(state3.index).toEqual(0);\n });\n\n it('handles order backBehavior', () => {\n const routerHelper = new ExampleRouterHelper({ backBehavior: 'order' });\n expect(routerHelper.getCurrentState().routeKeyHistory).toBeUndefined();\n\n expect(\n routerHelper.applyAction({\n type: SwitchActions.JUMP_TO,\n routeName: 'C',\n })\n ).toMatchObject({ index: 2 });\n\n expect(\n routerHelper.applyAction({ type: NavigationActions.BACK })\n ).toMatchObject({ index: 1 });\n\n expect(\n routerHelper.applyAction({ type: NavigationActions.BACK })\n ).toMatchObject({ index: 0 });\n\n expect(\n routerHelper.applyAction({ type: NavigationActions.BACK })\n ).toMatchObject({ index: 0 });\n });\n\n it('handles history backBehavior', () => {\n const routerHelper = new ExampleRouterHelper({ backBehavior: 'history' });\n expect(routerHelper.getCurrentState().routeKeyHistory).toMatchObject(['A']);\n\n expect(\n routerHelper.applyAction({\n type: NavigationActions.NAVIGATE,\n routeName: 'B',\n })\n ).toMatchObject({ index: 1, routeKeyHistory: ['A', 'B'] });\n\n expect(\n routerHelper.applyAction({\n type: NavigationActions.NAVIGATE,\n routeName: 'A',\n })\n ).toMatchObject({ index: 0, routeKeyHistory: ['B', 'A'] });\n\n expect(\n routerHelper.applyAction({\n type: NavigationActions.NAVIGATE,\n routeName: 'C',\n })\n ).toMatchObject({ index: 2, routeKeyHistory: ['B', 'A', 'C'] });\n\n expect(\n routerHelper.applyAction({\n type: NavigationActions.NAVIGATE,\n routeName: 'A',\n })\n ).toMatchObject({ index: 0, routeKeyHistory: ['B', 'C', 'A'] });\n\n expect(\n routerHelper.applyAction({ type: NavigationActions.BACK })\n ).toMatchObject({ index: 2, routeKeyHistory: ['B', 'C'] });\n\n expect(\n routerHelper.applyAction({ type: NavigationActions.BACK })\n ).toMatchObject({ index: 1, routeKeyHistory: ['B'] });\n\n expect(\n routerHelper.applyAction({ type: NavigationActions.BACK })\n ).toMatchObject({ index: 1, routeKeyHistory: ['B'] });\n });\n\n it('handles nested actions', () => {\n const router = getExampleRouter();\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'B',\n action: { type: NavigationActions.NAVIGATE, routeName: 'B2' },\n },\n state\n );\n const subState = state2.routes[state2.index];\n const activeGrandChildRoute = subState.routes[subState.index];\n expect(activeGrandChildRoute.routeName).toEqual('B2');\n });\n\n it('handles nested actions and params simultaneously', () => {\n const router = getExampleRouter();\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'B',\n params: { foo: 'bar' },\n action: { type: NavigationActions.NAVIGATE, routeName: 'B2' },\n },\n state\n );\n const subState = state2.routes[state2.index];\n const activeGrandChildRoute = subState.routes[subState.index];\n expect(subState.params.foo).toEqual('bar');\n expect(activeGrandChildRoute.routeName).toEqual('B2');\n });\n\n it('order of handling navigate action is correct for nested switchrouters', () => {\n // router = switch({ Nested: switch({ Foo, Bar }), Other: switch({ Foo }), Bar })\n // if we are focused on Other and navigate to Bar, what should happen?\n\n const Screen = () => ;\n const NestedSwitch = () => ;\n const OtherNestedSwitch = () => ;\n\n let nestedRouter = SwitchRouter({ Foo: Screen, Bar: Screen });\n let otherNestedRouter = SwitchRouter({ Foo: Screen });\n NestedSwitch.router = nestedRouter;\n OtherNestedSwitch.router = otherNestedRouter;\n\n let router = SwitchRouter(\n {\n NestedSwitch,\n OtherNestedSwitch,\n Bar: Screen,\n },\n {\n initialRouteName: 'OtherNestedSwitch',\n }\n );\n\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n expect(state.routes[state.index].routeName).toEqual('OtherNestedSwitch');\n\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n },\n state\n );\n expect(state2.routes[state2.index].routeName).toEqual('Bar');\n\n const state3 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'NestedSwitch',\n },\n state2\n );\n const state4 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n },\n state3\n );\n let activeState4 = state4.routes[state4.index];\n expect(activeState4.routeName).toEqual('NestedSwitch');\n expect(activeState4.routes[activeState4.index].routeName).toEqual('Bar');\n });\n\n // https://github.com/react-navigation/react-navigation.github.io/issues/117#issuecomment-385597628\n it('order of handling navigate action is correct for nested stackrouters', () => {\n const Screen = () => ;\n const MainStack = () => ;\n const LoginStack = () => ;\n MainStack.router = StackRouter({ Home: Screen, Profile: Screen });\n LoginStack.router = StackRouter({ Form: Screen, ForgotPassword: Screen });\n\n let router = SwitchRouter(\n {\n Home: Screen,\n Login: LoginStack,\n Main: MainStack,\n },\n {\n initialRouteName: 'Login',\n }\n );\n\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n expect(state.routes[state.index].routeName).toEqual('Login');\n\n const state2 = router.getStateForAction(\n {\n type: SwitchActions.JUMP_TO,\n routeName: 'Home',\n },\n state\n );\n expect(state2.routes[state2.index].routeName).toEqual('Home');\n });\n});\n\n// A simple helper that makes it easier to write basic routing tests\n// As we generally want to apply one action after the other,\n// it's often convenient to manipulate a structure that keeps the router state\nclass ExampleRouterHelper {\n constructor(config) {\n this._router = getExampleRouter(config);\n this._currentState = this._router.getStateForAction({\n type: NavigationActions.INIT,\n });\n }\n\n applyAction = action => {\n this._currentState = this._router.getStateForAction(\n action,\n this._currentState\n );\n return this._currentState;\n };\n\n getCurrentState = () => this._currentState;\n}\n\nconst getExampleRouter = (config = {}) => {\n const PlainScreen = () => ;\n const StackA = () => ;\n const StackB = () => ;\n const StackC = () => ;\n\n StackA.router = StackRouter({\n A1: PlainScreen,\n A2: PlainScreen,\n });\n\n StackB.router = StackRouter({\n B1: PlainScreen,\n B2: PlainScreen,\n });\n\n StackC.router = StackRouter({\n C1: PlainScreen,\n C2: PlainScreen,\n });\n\n const router = SwitchRouter(\n {\n A: {\n screen: StackA,\n path: '',\n },\n B: {\n screen: StackB,\n path: 'great/path',\n },\n C: {\n screen: StackC,\n path: 'pathC',\n },\n },\n {\n initialRouteName: 'A',\n ...config,\n }\n );\n\n return router;\n};\n"]}
+\ No newline at end of file
++{"version":3,"sources":["SwitchRouter-test.js"],"names":["describe","it","router","getExampleRouter","state","getStateForAction","type","NavigationActions","INIT","state2","NAVIGATE","routeName","expect","routes","index","toEqual","length","state3","resetOnBlur","SwitchActions","JUMP_TO","BACK","backBehavior","routeKeyHistory","toBeUndefined","routerHelper","ExampleRouterHelper","getCurrentState","applyAction","toMatchObject","action","subState","activeGrandChildRoute","params","foo","Screen","NestedSwitch","OtherNestedSwitch","nestedRouter","Foo","Bar","otherNestedRouter","initialRouteName","state4","activeState4","MainStack","LoginStack","Home","Profile","Form","ForgotPassword","Login","Main","config","_currentState","_router","PlainScreen","StackA","StackB","StackC","A1","A2","B1","B2","C1","C2","A","screen","path","B","C"],"mappings":"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","sourcesContent":["/* eslint react/display-name:0 */\n\nimport React from 'react';\nimport SwitchRouter from '../SwitchRouter';\nimport StackRouter from '../StackRouter';\nimport * as SwitchActions from '../SwitchActions';\nimport * as NavigationActions from '../../NavigationActions';\n\ndescribe('SwitchRouter', () => {\n it('resets the route when unfocusing a tab by default', () => {\n const router = getExampleRouter();\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'A2' },\n state\n );\n expect(state2.routes[0].index).toEqual(1);\n expect(state2.routes[0].routes.length).toEqual(2);\n\n const state3 = router.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'B' },\n state2\n );\n\n expect(state3.routes[0].index).toEqual(0);\n expect(state3.routes[0].routes.length).toEqual(1);\n });\n\n it('does not reset the route on unfocus if resetOnBlur is false', () => {\n const router = getExampleRouter({ resetOnBlur: false });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'A2' },\n state\n );\n expect(state2.routes[0].index).toEqual(1);\n expect(state2.routes[0].routes.length).toEqual(2);\n\n const state3 = router.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'B' },\n state2\n );\n\n expect(state3.routes[0].index).toEqual(1);\n expect(state3.routes[0].routes.length).toEqual(2);\n });\n\n it('ignores back by default', () => {\n const router = getExampleRouter();\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n { type: SwitchActions.JUMP_TO, routeName: 'B' },\n state\n );\n expect(state2.index).toEqual(1);\n\n const state3 = router.getStateForAction(\n { type: NavigationActions.BACK },\n state2\n );\n\n expect(state3.index).toEqual(1);\n });\n\n it('handles initialRoute backBehavior', () => {\n const router = getExampleRouter({ backBehavior: 'initialRoute' });\n\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n expect(state.routeKeyHistory).toBeUndefined();\n\n const state2 = router.getStateForAction(\n { type: SwitchActions.JUMP_TO, routeName: 'B' },\n state\n );\n expect(state2.index).toEqual(1);\n\n const state3 = router.getStateForAction(\n { type: NavigationActions.BACK },\n state2\n );\n\n expect(state3.index).toEqual(0);\n });\n\n it('handles order backBehavior', () => {\n const routerHelper = new ExampleRouterHelper({ backBehavior: 'order' });\n expect(routerHelper.getCurrentState().routeKeyHistory).toBeUndefined();\n\n expect(\n routerHelper.applyAction({\n type: SwitchActions.JUMP_TO,\n routeName: 'C',\n })\n ).toMatchObject({ index: 2 });\n\n expect(\n routerHelper.applyAction({ type: NavigationActions.BACK })\n ).toMatchObject({ index: 1 });\n\n expect(\n routerHelper.applyAction({ type: NavigationActions.BACK })\n ).toMatchObject({ index: 0 });\n\n expect(\n routerHelper.applyAction({ type: NavigationActions.BACK })\n ).toMatchObject({ index: 0 });\n });\n\n it('handles history backBehavior', () => {\n const routerHelper = new ExampleRouterHelper({ backBehavior: 'history' });\n expect(routerHelper.getCurrentState().routeKeyHistory).toMatchObject(['A']);\n\n expect(\n routerHelper.applyAction({\n type: NavigationActions.NAVIGATE,\n routeName: 'B',\n })\n ).toMatchObject({ index: 1, routeKeyHistory: ['A', 'B'] });\n\n expect(\n routerHelper.applyAction({\n type: NavigationActions.NAVIGATE,\n routeName: 'A',\n })\n ).toMatchObject({ index: 0, routeKeyHistory: ['B', 'A'] });\n\n expect(\n routerHelper.applyAction({\n type: NavigationActions.NAVIGATE,\n routeName: 'C',\n })\n ).toMatchObject({ index: 2, routeKeyHistory: ['B', 'A', 'C'] });\n\n expect(\n routerHelper.applyAction({\n type: NavigationActions.NAVIGATE,\n routeName: 'A',\n })\n ).toMatchObject({ index: 0, routeKeyHistory: ['B', 'C', 'A'] });\n\n expect(\n routerHelper.applyAction({ type: NavigationActions.BACK })\n ).toMatchObject({ index: 2, routeKeyHistory: ['B', 'C'] });\n\n expect(\n routerHelper.applyAction({ type: NavigationActions.BACK })\n ).toMatchObject({ index: 1, routeKeyHistory: ['B'] });\n\n expect(\n routerHelper.applyAction({ type: NavigationActions.BACK })\n ).toMatchObject({ index: 1, routeKeyHistory: ['B'] });\n });\n\n it('handles nested actions', () => {\n const router = getExampleRouter();\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'B',\n action: { type: NavigationActions.NAVIGATE, routeName: 'B2' },\n },\n state\n );\n const subState = state2.routes[state2.index];\n const activeGrandChildRoute = subState.routes[subState.index];\n expect(activeGrandChildRoute.routeName).toEqual('B2');\n });\n\n it('handles nested actions and params simultaneously', () => {\n const router = getExampleRouter();\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'B',\n params: { foo: 'bar' },\n action: { type: NavigationActions.NAVIGATE, routeName: 'B2' },\n },\n state\n );\n const subState = state2.routes[state2.index];\n const activeGrandChildRoute = subState.routes[subState.index];\n expect(subState.params.foo).toEqual('bar');\n expect(activeGrandChildRoute.routeName).toEqual('B2');\n });\n\n it('order of handling navigate action is correct for nested switchrouters', () => {\n // router = switch({ Nested: switch({ Foo, Bar }), Other: switch({ Foo }), Bar })\n // if we are focused on Other and navigate to Bar, what should happen?\n\n const Screen = () => ;\n const NestedSwitch = () => ;\n const OtherNestedSwitch = () => ;\n\n let nestedRouter = SwitchRouter({ Foo: Screen, Bar: Screen });\n let otherNestedRouter = SwitchRouter({ Foo: Screen });\n NestedSwitch.router = nestedRouter;\n OtherNestedSwitch.router = otherNestedRouter;\n\n let router = SwitchRouter(\n {\n NestedSwitch,\n OtherNestedSwitch,\n Bar: Screen,\n },\n {\n initialRouteName: 'OtherNestedSwitch',\n }\n );\n\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n expect(state.routes[state.index].routeName).toEqual('OtherNestedSwitch');\n\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n },\n state\n );\n expect(state2.routes[state2.index].routeName).toEqual('Bar');\n\n const state3 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'NestedSwitch',\n },\n state2\n );\n const state4 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n },\n state3\n );\n let activeState4 = state4.routes[state4.index];\n expect(activeState4.routeName).toEqual('NestedSwitch');\n expect(activeState4.routes[activeState4.index].routeName).toEqual('Bar');\n });\n\n // https://github.com/react-navigation/react-navigation.github.io/issues/117#issuecomment-385597628\n it('order of handling navigate action is correct for nested stackrouters', () => {\n const Screen = () => ;\n const MainStack = () => ;\n const LoginStack = () => ;\n MainStack.router = StackRouter({ Home: Screen, Profile: Screen });\n LoginStack.router = StackRouter({ Form: Screen, ForgotPassword: Screen });\n\n let router = SwitchRouter(\n {\n Home: Screen,\n Login: LoginStack,\n Main: MainStack,\n },\n {\n initialRouteName: 'Login',\n }\n );\n\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n expect(state.routes[state.index].routeName).toEqual('Login');\n\n const state2 = router.getStateForAction(\n {\n type: SwitchActions.JUMP_TO,\n routeName: 'Home',\n },\n state\n );\n expect(state2.routes[state2.index].routeName).toEqual('Home');\n });\n});\n\n// A simple helper that makes it easier to write basic routing tests\n// As we generally want to apply one action after the other,\n// it's often convenient to manipulate a structure that keeps the router state\nclass ExampleRouterHelper {\n constructor(config) {\n this._router = getExampleRouter(config);\n this._currentState = this._router.getStateForAction({\n type: NavigationActions.INIT,\n });\n }\n\n applyAction = action => {\n this._currentState = this._router.getStateForAction(\n action,\n this._currentState\n );\n return this._currentState;\n };\n\n getCurrentState = () => this._currentState;\n}\n\nconst getExampleRouter = (config = {}) => {\n const PlainScreen = () => ;\n const StackA = () => ;\n const StackB = () => ;\n const StackC = () => ;\n\n StackA.router = StackRouter({\n A1: PlainScreen,\n A2: PlainScreen,\n });\n\n StackB.router = StackRouter({\n B1: PlainScreen,\n B2: PlainScreen,\n });\n\n StackC.router = StackRouter({\n C1: PlainScreen,\n C2: PlainScreen,\n });\n\n const router = SwitchRouter(\n {\n A: {\n screen: StackA,\n path: '',\n },\n B: {\n screen: StackB,\n path: 'great/path',\n },\n C: {\n screen: StackC,\n path: 'pathC',\n },\n },\n {\n initialRouteName: 'A',\n ...config,\n }\n );\n\n return router;\n};\n"]}
+\ No newline at end of file
+diff --git a/node_modules/@react-navigation/core/lib/commonjs/routers/__tests__/TabRouter-test.js b/node_modules/@react-navigation/core/lib/commonjs/routers/__tests__/TabRouter-test.js
+index e956b86..c7e7377 100644
+--- a/node_modules/@react-navigation/core/lib/commonjs/routers/__tests__/TabRouter-test.js
++++ b/node_modules/@react-navigation/core/lib/commonjs/routers/__tests__/TabRouter-test.js
+@@ -1,2 +1,2 @@
+-var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _interopRequireWildcard=require("@babel/runtime/helpers/interopRequireWildcard");var _objectSpread2=_interopRequireDefault(require("@babel/runtime/helpers/objectSpread"));var _react=_interopRequireDefault(require("react"));var _TabRouter=_interopRequireDefault(require("../TabRouter"));var NavigationActions=_interopRequireWildcard(require("../../NavigationActions"));var _jsxFileName="/Users/satya/Workspace/Callstack/react-navigation-core/src/routers/__tests__/TabRouter-test.js";var INIT_ACTION={type:NavigationActions.INIT};var BareLeafRouteConfig={screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:11}});}};describe('TabRouter',function(){it('Handles basic tab logic',function(){var ScreenA=function ScreenA(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:16}});};var ScreenB=function ScreenB(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:17}});};var router=(0,_TabRouter.default)({Foo:{screen:ScreenA},Bar:{screen:ScreenB}});var state=router.getStateForAction({type:NavigationActions.INIT});var expectedState={index:0,routes:[{key:'Foo',routeName:'Foo'},{key:'Bar',routeName:'Bar'}],isTransitioning:false};expect(state).toEqual(expectedState);var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar'},state);var expectedState2={index:1,routes:[{key:'Foo',routeName:'Foo'},{key:'Bar',routeName:'Bar'}],isTransitioning:false};expect(state2).toEqual(expectedState2);expect(router.getComponentForState(expectedState)).toEqual(ScreenA);expect(router.getComponentForState(expectedState2)).toEqual(ScreenB);var state3=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar'},state2);expect(state3).toEqual(null);});it('Handles getScreen',function(){var ScreenA=function ScreenA(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:55}});};var ScreenB=function ScreenB(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:56}});};var router=(0,_TabRouter.default)({Foo:{getScreen:function getScreen(){return ScreenA;}},Bar:{getScreen:function getScreen(){return ScreenB;}}});var state=router.getStateForAction({type:NavigationActions.INIT});var expectedState={index:0,routes:[{key:'Foo',routeName:'Foo'},{key:'Bar',routeName:'Bar'}],isTransitioning:false};expect(state).toEqual(expectedState);var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar'},state);var expectedState2={index:1,routes:[{key:'Foo',routeName:'Foo'},{key:'Bar',routeName:'Bar'}],isTransitioning:false};expect(state2).toEqual(expectedState2);expect(router.getComponentForState(expectedState)).toEqual(ScreenA);expect(router.getComponentForState(expectedState2)).toEqual(ScreenB);var state3=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar'},state2);expect(state3).toEqual(null);});it('Can set the initial tab',function(){var router=(0,_TabRouter.default)({Foo:BareLeafRouteConfig,Bar:BareLeafRouteConfig},{initialRouteName:'Bar'});var state=router.getStateForAction({type:NavigationActions.INIT});expect(state).toEqual({index:1,routes:[{key:'Foo',routeName:'Foo'},{key:'Bar',routeName:'Bar'}],isTransitioning:false});});it('Can set the initial params',function(){var router=(0,_TabRouter.default)({Foo:BareLeafRouteConfig,Bar:BareLeafRouteConfig},{initialRouteName:'Bar',initialRouteParams:{name:'Qux'}});var state=router.getStateForAction({type:NavigationActions.INIT});expect(state).toEqual({index:1,routes:[{key:'Foo',routeName:'Foo'},{key:'Bar',routeName:'Bar',params:{name:'Qux'}}],isTransitioning:false});});it('Handles the SetParams action',function(){var router=(0,_TabRouter.default)({Foo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:128}});}},Bar:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:131}});}}});var state2=router.getStateForAction({type:NavigationActions.SET_PARAMS,params:{name:'Qux'},key:'Foo'});expect(state2&&state2.routes[0].params).toEqual({name:'Qux'});});it('Handles the SetParams action for inactive routes',function(){var router=(0,_TabRouter.default)({Foo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:146}});}},Bar:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:149}});}}},{initialRouteName:'Bar'});var initialState={index:1,routes:[{key:'RouteA',routeName:'Foo',params:{name:'InitialParam',other:'Unchanged'}},{key:'RouteB',routeName:'Bar',params:{}}]};var state=router.getStateForAction({type:NavigationActions.SET_PARAMS,params:{name:'NewParam'},key:'RouteA'},initialState);expect(state.index).toEqual(1);expect(state.routes[0].params).toEqual({name:'NewParam',other:'Unchanged'});});it('getStateForAction returns null when navigating to same tab',function(){var router=(0,_TabRouter.default)({Foo:BareLeafRouteConfig,Bar:BareLeafRouteConfig},{initialRouteName:'Bar'});var state=router.getStateForAction({type:NavigationActions.INIT});var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar'},state);expect(state2).toEqual(null);});it('getStateForAction returns initial navigate',function(){var router=(0,_TabRouter.default)({Foo:BareLeafRouteConfig,Bar:BareLeafRouteConfig});var state=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Foo'});expect(state&&state.index).toEqual(0);});it('Handles nested tabs and nested actions',function(){var ChildTabNavigator=function ChildTabNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:208}});};ChildTabNavigator.router=(0,_TabRouter.default)({Foo:BareLeafRouteConfig,Bar:BareLeafRouteConfig});var router=(0,_TabRouter.default)({Foo:BareLeafRouteConfig,Baz:{screen:ChildTabNavigator},Boo:BareLeafRouteConfig});var action=router.getActionForPathAndParams('Baz/Bar',{foo:'42'});var navAction={type:NavigationActions.NAVIGATE,routeName:'Baz',params:{foo:'42'},action:{type:NavigationActions.NAVIGATE,routeName:'Bar',params:{foo:'42'}}};expect(action).toEqual(navAction);var state=router.getStateForAction(navAction);expect(state).toEqual({index:1,isTransitioning:false,routes:[{key:'Foo',routeName:'Foo'},{index:1,isTransitioning:false,key:'Baz',routeName:'Baz',params:{foo:'42'},routes:[{key:'Foo',routeName:'Foo'},{key:'Bar',routeName:'Bar',params:{foo:'42'}}]},{key:'Boo',routeName:'Boo'}]});});it('Handles passing params to nested tabs',function(){var ChildTabNavigator=function ChildTabNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:268}});};ChildTabNavigator.router=(0,_TabRouter.default)({Boo:BareLeafRouteConfig,Bar:BareLeafRouteConfig});var router=(0,_TabRouter.default)({Foo:BareLeafRouteConfig,Baz:{screen:ChildTabNavigator}});var navAction={type:NavigationActions.NAVIGATE,routeName:'Baz'};var state=router.getStateForAction(navAction);expect(state).toEqual({index:1,isTransitioning:false,routes:[{key:'Foo',routeName:'Foo'},{index:0,key:'Baz',routeName:'Baz',isTransitioning:false,routes:[{key:'Boo',routeName:'Boo'},{key:'Bar',routeName:'Bar'}]}]});state=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar'},state);state=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Boo'},state);expect(state&&state.routes[1]).toEqual({index:0,isTransitioning:false,key:'Baz',routeName:'Baz',routes:[{key:'Boo',routeName:'Boo'},{key:'Bar',routeName:'Bar'}]});});it('Handles initial deep linking into nested tabs',function(){var ChildTabNavigator=function ChildTabNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:322}});};ChildTabNavigator.router=(0,_TabRouter.default)({Foo:BareLeafRouteConfig,Bar:BareLeafRouteConfig});var router=(0,_TabRouter.default)({Foo:BareLeafRouteConfig,Baz:{screen:ChildTabNavigator},Boo:BareLeafRouteConfig});var state=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar'});expect(state).toEqual({index:1,isTransitioning:false,routes:[{key:'Foo',routeName:'Foo'},{index:1,key:'Baz',routeName:'Baz',isTransitioning:false,routes:[{key:'Foo',routeName:'Foo'},{key:'Bar',routeName:'Bar'}]},{key:'Boo',routeName:'Boo'}]});var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Foo'},state);expect(state2).toEqual({index:1,isTransitioning:false,routes:[{key:'Foo',routeName:'Foo'},{index:0,key:'Baz',routeName:'Baz',isTransitioning:false,routes:[{key:'Foo',routeName:'Foo'},{key:'Bar',routeName:'Bar'}]},{key:'Boo',routeName:'Boo'}]});var state3=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Foo'},state2);expect(state3).toEqual(null);});it('Handles linking across of deeply nested tabs',function(){var ChildNavigator0=function ChildNavigator0(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:384}});};ChildNavigator0.router=(0,_TabRouter.default)({Boo:BareLeafRouteConfig,Baz:BareLeafRouteConfig});var ChildNavigator1=function ChildNavigator1(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:389}});};ChildNavigator1.router=(0,_TabRouter.default)({Zoo:BareLeafRouteConfig,Zap:BareLeafRouteConfig});var MidNavigator=function MidNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:394}});};MidNavigator.router=(0,_TabRouter.default)({Fee:{screen:ChildNavigator0},Bar:{screen:ChildNavigator1}});var router=(0,_TabRouter.default)({Foo:{screen:MidNavigator},Gah:BareLeafRouteConfig});var state=router.getStateForAction(INIT_ACTION);expect(state).toEqual({index:0,isTransitioning:false,routes:[{index:0,key:'Foo',routeName:'Foo',isTransitioning:false,routes:[{index:0,key:'Fee',routeName:'Fee',isTransitioning:false,routes:[{key:'Boo',routeName:'Boo'},{key:'Baz',routeName:'Baz'}]},{index:0,key:'Bar',routeName:'Bar',isTransitioning:false,routes:[{key:'Zoo',routeName:'Zoo'},{key:'Zap',routeName:'Zap'}]}]},{key:'Gah',routeName:'Gah'}]});var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Zap'},state);expect(state2).toEqual({index:0,isTransitioning:false,routes:[{index:1,key:'Foo',routeName:'Foo',isTransitioning:false,routes:[{index:0,key:'Fee',routeName:'Fee',isTransitioning:false,routes:[{key:'Boo',routeName:'Boo'},{key:'Baz',routeName:'Baz'}]},{index:1,key:'Bar',routeName:'Bar',isTransitioning:false,routes:[{key:'Zoo',routeName:'Zoo'},{key:'Zap',routeName:'Zap'}]}]},{key:'Gah',routeName:'Gah'}]});var state3=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Zap'},state2);expect(state3).toEqual(null);var state4=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Foo',action:{type:NavigationActions.NAVIGATE,routeName:'Bar',action:{type:NavigationActions.NAVIGATE,routeName:'Zap'}}});expect(state4).toEqual({index:0,isTransitioning:false,routes:[{index:1,key:'Foo',routeName:'Foo',isTransitioning:false,routes:[{index:0,key:'Fee',routeName:'Fee',isTransitioning:false,routes:[{key:'Boo',routeName:'Boo'},{key:'Baz',routeName:'Baz'}]},{index:1,key:'Bar',routeName:'Bar',isTransitioning:false,routes:[{key:'Zoo',routeName:'Zoo'},{key:'Zap',routeName:'Zap'}]}]},{key:'Gah',routeName:'Gah'}]});});it('Handles path configuration',function(){var ScreenA=function ScreenA(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:533}});};var ScreenB=function ScreenB(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:534}});};var router=(0,_TabRouter.default)({Foo:{path:'f',screen:ScreenA},Bar:{path:'b/:great',screen:ScreenB}});var params={foo:'42'};var action=router.getActionForPathAndParams('b/anything',params);var expectedAction={params:{foo:'42',great:'anything'},routeName:'Bar',type:NavigationActions.NAVIGATE};expect(action).toEqual(expectedAction);var state=router.getStateForAction({type:NavigationActions.INIT});var expectedState={index:0,isTransitioning:false,routes:[{key:'Foo',routeName:'Foo'},{key:'Bar',routeName:'Bar'}]};expect(state).toEqual(expectedState);var state2=router.getStateForAction(expectedAction,state);var expectedState2={index:1,isTransitioning:false,routes:[{key:'Foo',routeName:'Foo',params:undefined},{key:'Bar',routeName:'Bar',params:{foo:'42',great:'anything'}}]};expect(state2).toEqual(expectedState2);expect(router.getComponentForState(expectedState)).toEqual(ScreenA);expect(router.getComponentForState(expectedState2)).toEqual(ScreenB);expect(router.getPathAndParamsForState(expectedState).path).toEqual('f');expect(router.getPathAndParamsForState(expectedState2).path).toEqual('b/anything');});it('Handles default configuration',function(){var ScreenA=function ScreenA(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:590}});};var ScreenB=function ScreenB(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:591}});};var router=(0,_TabRouter.default)({Foo:{path:'',screen:ScreenA},Bar:{path:'b',screen:ScreenB}});var action=router.getActionForPathAndParams('',{foo:'42'});expect(action).toEqual({params:{foo:'42'},routeName:'Foo',type:NavigationActions.NAVIGATE});});it('Gets deep path',function(){var ScreenA=function ScreenA(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:613}});};var ScreenB=function ScreenB(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:614}});};ScreenA.router=(0,_TabRouter.default)({Boo:{screen:ScreenB},Baz:{screen:ScreenB}});var router=(0,_TabRouter.default)({Foo:{path:'f',screen:ScreenA},Bar:{screen:ScreenB}});var state={index:0,isTransitioning:false,routes:[{index:1,key:'Foo',routeName:'Foo',isTransitioning:false,routes:[{key:'Boo',routeName:'Boo'},{key:'Baz',routeName:'Baz'}]},{key:'Bar',routeName:'Bar'}]};var _router$getPathAndPar=router.getPathAndParamsForState(state),path=_router$getPathAndPar.path;expect(path).toEqual('f/Baz');});it('Can navigate to other tab (no router) with params',function(){var ScreenA=function ScreenA(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:651}});};var ScreenB=function ScreenB(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:652}});};var router=(0,_TabRouter.default)({a:{screen:ScreenA},b:{screen:ScreenB}});var state0=router.getStateForAction(INIT_ACTION);expect(state0).toEqual({index:0,isTransitioning:false,routes:[{key:'a',routeName:'a'},{key:'b',routeName:'b'}]});var params={key:'value'};var state1=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'b',params:params},state0);expect(state1).toEqual({index:1,isTransitioning:false,routes:[{key:'a',routeName:'a'},{key:'b',routeName:'b',params:params}]});});it('Back actions are not propagated to inactive children',function(){var ScreenA=function ScreenA(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:685}});};var ScreenB=function ScreenB(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:686}});};var ScreenC=function ScreenC(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:687}});};var InnerNavigator=function InnerNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:688}});};InnerNavigator.router=(0,_TabRouter.default)({a:{screen:ScreenA},b:{screen:ScreenB}});var router=(0,_TabRouter.default)({inner:{screen:InnerNavigator},c:{screen:ScreenC}},{backBehavior:'none'});var state0=router.getStateForAction(INIT_ACTION);var state1=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'b'},state0);var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'c'},state1);var state3=router.getStateForAction({type:NavigationActions.BACK},state2);expect(state3).toEqual(state2);});it('Back behavior initialRoute works',function(){var ScreenA=function ScreenA(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:725}});};var ScreenB=function ScreenB(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:726}});};var router=(0,_TabRouter.default)({a:{screen:ScreenA},b:{screen:ScreenB}});var state0=router.getStateForAction(INIT_ACTION);var state1=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'b'},state0);var state2=router.getStateForAction({type:NavigationActions.BACK},state1);expect(state2).toEqual(state0);});it('Inner actions are only unpacked if the current tab matches',function(){var PlainScreen=function PlainScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:748}});};var ScreenA=function ScreenA(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:749}});};var ScreenB=function ScreenB(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:750}});};ScreenB.router=(0,_TabRouter.default)({Baz:{screen:PlainScreen},Zoo:{screen:PlainScreen}});ScreenA.router=(0,_TabRouter.default)({Bar:{screen:PlainScreen},Boo:{screen:ScreenB}});var router=(0,_TabRouter.default)({Foo:{screen:ScreenA}});var screenApreState={index:0,key:'Foo',isTransitioning:false,routeName:'Foo',routes:[{key:'Bar',routeName:'Bar'}]};var preState={index:0,isTransitioning:false,routes:[screenApreState]};var comparable=function comparable(state){var result={};if(typeof state.routeName==='string'){result=(0,_objectSpread2.default)({},result,{routeName:state.routeName});}if(state.routes instanceof Array){result=(0,_objectSpread2.default)({},result,{routes:state.routes.map(comparable)});}return result;};var action=NavigationActions.navigate({routeName:'Boo',action:NavigationActions.navigate({routeName:'Zoo'})});var expectedState=ScreenA.router.getStateForAction(action,screenApreState);var state=router.getStateForAction(action,preState);var innerState=state?state.routes[0]:state;expect(innerState.routes[1].index).toEqual(1);expect(expectedState&&comparable(expectedState)).toEqual(innerState&&comparable(innerState));var noMatchAction=NavigationActions.navigate({routeName:'Qux',action:NavigationActions.navigate({routeName:'Zoo'})});var expectedState2=ScreenA.router.getStateForAction(noMatchAction,screenApreState);var state2=router.getStateForAction(noMatchAction,preState);var innerState2=state2?state2.routes[0]:state2;expect(innerState2.routes[1].index).toEqual(0);expect(expectedState2&&comparable(expectedState2)).toEqual(innerState2&&comparable(innerState2));});});
++var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _interopRequireWildcard=require("@babel/runtime/helpers/interopRequireWildcard");var _objectSpread2=_interopRequireDefault(require("@babel/runtime/helpers/objectSpread"));var _react=_interopRequireDefault(require("react"));var _TabRouter=_interopRequireDefault(require("../TabRouter"));var NavigationActions=_interopRequireWildcard(require("../../NavigationActions"));var _jsxFileName="/Users/brentvatne/coding/react-navigation-core/src/routers/__tests__/TabRouter-test.js";var INIT_ACTION={type:NavigationActions.INIT};var BareLeafRouteConfig={screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:11}});}};describe('TabRouter',function(){it('Handles basic tab logic',function(){var ScreenA=function ScreenA(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:16}});};var ScreenB=function ScreenB(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:17}});};var router=(0,_TabRouter.default)({Foo:{screen:ScreenA},Bar:{screen:ScreenB}});var state=router.getStateForAction({type:NavigationActions.INIT});var expectedState={index:0,routes:[{key:'Foo',routeName:'Foo'},{key:'Bar',routeName:'Bar'}]};expect(state).toEqual(expectedState);var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar'},state);var expectedState2={index:1,routes:[{key:'Foo',routeName:'Foo'},{key:'Bar',routeName:'Bar'}]};expect(state2).toEqual(expectedState2);expect(router.getComponentForState(expectedState)).toEqual(ScreenA);expect(router.getComponentForState(expectedState2)).toEqual(ScreenB);var state3=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar'},state2);expect(state3).toEqual(null);});it('Handles getScreen',function(){var ScreenA=function ScreenA(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:53}});};var ScreenB=function ScreenB(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:54}});};var router=(0,_TabRouter.default)({Foo:{getScreen:function getScreen(){return ScreenA;}},Bar:{getScreen:function getScreen(){return ScreenB;}}});var state=router.getStateForAction({type:NavigationActions.INIT});var expectedState={index:0,routes:[{key:'Foo',routeName:'Foo'},{key:'Bar',routeName:'Bar'}]};expect(state).toEqual(expectedState);var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar'},state);var expectedState2={index:1,routes:[{key:'Foo',routeName:'Foo'},{key:'Bar',routeName:'Bar'}]};expect(state2).toEqual(expectedState2);expect(router.getComponentForState(expectedState)).toEqual(ScreenA);expect(router.getComponentForState(expectedState2)).toEqual(ScreenB);var state3=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar'},state2);expect(state3).toEqual(null);});it('Can set the initial tab',function(){var router=(0,_TabRouter.default)({Foo:BareLeafRouteConfig,Bar:BareLeafRouteConfig},{initialRouteName:'Bar'});var state=router.getStateForAction({type:NavigationActions.INIT});expect(state).toEqual({index:1,routes:[{key:'Foo',routeName:'Foo'},{key:'Bar',routeName:'Bar'}]});});it('Can set the initial params',function(){var router=(0,_TabRouter.default)({Foo:BareLeafRouteConfig,Bar:BareLeafRouteConfig},{initialRouteName:'Bar',initialRouteParams:{name:'Qux'}});var state=router.getStateForAction({type:NavigationActions.INIT});expect(state).toEqual({index:1,routes:[{key:'Foo',routeName:'Foo'},{key:'Bar',routeName:'Bar',params:{name:'Qux'}}]});});it('Handles the SetParams action',function(){var router=(0,_TabRouter.default)({Foo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:122}});}},Bar:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:125}});}}});var state2=router.getStateForAction({type:NavigationActions.SET_PARAMS,params:{name:'Qux'},key:'Foo'});expect(state2&&state2.routes[0].params).toEqual({name:'Qux'});});it('Handles the SetParams action for inactive routes',function(){var router=(0,_TabRouter.default)({Foo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:140}});}},Bar:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:143}});}}},{initialRouteName:'Bar'});var initialState={index:1,routes:[{key:'RouteA',routeName:'Foo',params:{name:'InitialParam',other:'Unchanged'}},{key:'RouteB',routeName:'Bar',params:{}}]};var state=router.getStateForAction({type:NavigationActions.SET_PARAMS,params:{name:'NewParam'},key:'RouteA'},initialState);expect(state.index).toEqual(1);expect(state.routes[0].params).toEqual({name:'NewParam',other:'Unchanged'});});it('getStateForAction returns null when navigating to same tab',function(){var router=(0,_TabRouter.default)({Foo:BareLeafRouteConfig,Bar:BareLeafRouteConfig},{initialRouteName:'Bar'});var state=router.getStateForAction({type:NavigationActions.INIT});var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar'},state);expect(state2).toEqual(null);});it('getStateForAction returns initial navigate',function(){var router=(0,_TabRouter.default)({Foo:BareLeafRouteConfig,Bar:BareLeafRouteConfig});var state=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Foo'});expect(state&&state.index).toEqual(0);});it('Handles nested tabs and nested actions',function(){var ChildTabNavigator=function ChildTabNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:202}});};ChildTabNavigator.router=(0,_TabRouter.default)({Foo:BareLeafRouteConfig,Bar:BareLeafRouteConfig});var router=(0,_TabRouter.default)({Foo:BareLeafRouteConfig,Baz:{screen:ChildTabNavigator},Boo:BareLeafRouteConfig});var action=router.getActionForPathAndParams('Baz/Bar',{foo:'42'});var navAction={type:NavigationActions.NAVIGATE,routeName:'Baz',params:{foo:'42'},action:{type:NavigationActions.NAVIGATE,routeName:'Bar',params:{foo:'42'}}};expect(action).toEqual(navAction);var state=router.getStateForAction(navAction);expect(state).toEqual({index:1,routes:[{key:'Foo',routeName:'Foo'},{index:1,key:'Baz',routeName:'Baz',params:{foo:'42'},routes:[{key:'Foo',routeName:'Foo'},{key:'Bar',routeName:'Bar',params:{foo:'42'}}]},{key:'Boo',routeName:'Boo'}]});});it('Handles passing params to nested tabs',function(){var ChildTabNavigator=function ChildTabNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:262}});};ChildTabNavigator.router=(0,_TabRouter.default)({Boo:BareLeafRouteConfig,Bar:BareLeafRouteConfig});var router=(0,_TabRouter.default)({Foo:BareLeafRouteConfig,Baz:{screen:ChildTabNavigator}});var navAction={type:NavigationActions.NAVIGATE,routeName:'Baz'};var state=router.getStateForAction(navAction);expect(state).toEqual({index:1,routes:[{key:'Foo',routeName:'Foo'},{index:0,key:'Baz',routeName:'Baz',routes:[{key:'Boo',routeName:'Boo'},{key:'Bar',routeName:'Bar'}]}]});state=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar'},state);state=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Boo'},state);expect(state&&state.routes[1]).toEqual({index:0,key:'Baz',routeName:'Baz',routes:[{key:'Boo',routeName:'Boo'},{key:'Bar',routeName:'Bar'}]});});it('Handles initial deep linking into nested tabs',function(){var ChildTabNavigator=function ChildTabNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:316}});};ChildTabNavigator.router=(0,_TabRouter.default)({Foo:BareLeafRouteConfig,Bar:BareLeafRouteConfig});var router=(0,_TabRouter.default)({Foo:BareLeafRouteConfig,Baz:{screen:ChildTabNavigator},Boo:BareLeafRouteConfig});var state=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar'});expect(state).toEqual({index:1,routes:[{key:'Foo',routeName:'Foo'},{index:1,key:'Baz',routeName:'Baz',routes:[{key:'Foo',routeName:'Foo'},{key:'Bar',routeName:'Bar'}]},{key:'Boo',routeName:'Boo'}]});var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Foo'},state);expect(state2).toEqual({index:1,routes:[{key:'Foo',routeName:'Foo'},{index:0,key:'Baz',routeName:'Baz',routes:[{key:'Foo',routeName:'Foo'},{key:'Bar',routeName:'Bar'}]},{key:'Boo',routeName:'Boo'}]});var state3=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Foo'},state2);expect(state3).toEqual(null);});it('Handles linking across of deeply nested tabs',function(){var ChildNavigator0=function ChildNavigator0(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:378}});};ChildNavigator0.router=(0,_TabRouter.default)({Boo:BareLeafRouteConfig,Baz:BareLeafRouteConfig});var ChildNavigator1=function ChildNavigator1(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:383}});};ChildNavigator1.router=(0,_TabRouter.default)({Zoo:BareLeafRouteConfig,Zap:BareLeafRouteConfig});var MidNavigator=function MidNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:388}});};MidNavigator.router=(0,_TabRouter.default)({Fee:{screen:ChildNavigator0},Bar:{screen:ChildNavigator1}});var router=(0,_TabRouter.default)({Foo:{screen:MidNavigator},Gah:BareLeafRouteConfig});var state=router.getStateForAction(INIT_ACTION);expect(state).toEqual({index:0,routes:[{index:0,key:'Foo',routeName:'Foo',routes:[{index:0,key:'Fee',routeName:'Fee',routes:[{key:'Boo',routeName:'Boo'},{key:'Baz',routeName:'Baz'}]},{index:0,key:'Bar',routeName:'Bar',routes:[{key:'Zoo',routeName:'Zoo'},{key:'Zap',routeName:'Zap'}]}]},{key:'Gah',routeName:'Gah'}]});var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Zap'},state);expect(state2).toEqual({index:0,routes:[{index:1,key:'Foo',routeName:'Foo',routes:[{index:0,key:'Fee',routeName:'Fee',routes:[{key:'Boo',routeName:'Boo'},{key:'Baz',routeName:'Baz'}]},{index:1,key:'Bar',routeName:'Bar',routes:[{key:'Zoo',routeName:'Zoo'},{key:'Zap',routeName:'Zap'}]}]},{key:'Gah',routeName:'Gah'}]});var state3=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Zap'},state2);expect(state3).toEqual(null);var state4=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Foo',action:{type:NavigationActions.NAVIGATE,routeName:'Bar',action:{type:NavigationActions.NAVIGATE,routeName:'Zap'}}});expect(state4).toEqual({index:0,routes:[{index:1,key:'Foo',routeName:'Foo',routes:[{index:0,key:'Fee',routeName:'Fee',routes:[{key:'Boo',routeName:'Boo'},{key:'Baz',routeName:'Baz'}]},{index:1,key:'Bar',routeName:'Bar',routes:[{key:'Zoo',routeName:'Zoo'},{key:'Zap',routeName:'Zap'}]}]},{key:'Gah',routeName:'Gah'}]});});it('Handles path configuration',function(){var ScreenA=function ScreenA(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:527}});};var ScreenB=function ScreenB(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:528}});};var router=(0,_TabRouter.default)({Foo:{path:'f',screen:ScreenA},Bar:{path:'b/:great',screen:ScreenB}});var params={foo:'42'};var action=router.getActionForPathAndParams('b/anything',params);var expectedAction={params:{foo:'42',great:'anything'},routeName:'Bar',type:NavigationActions.NAVIGATE};expect(action).toEqual(expectedAction);var state=router.getStateForAction({type:NavigationActions.INIT});var expectedState={index:0,routes:[{key:'Foo',routeName:'Foo'},{key:'Bar',routeName:'Bar'}]};expect(state).toEqual(expectedState);var state2=router.getStateForAction(expectedAction,state);var expectedState2={index:1,routes:[{key:'Foo',routeName:'Foo',params:undefined},{key:'Bar',routeName:'Bar',params:{foo:'42',great:'anything'}}]};expect(state2).toEqual(expectedState2);expect(router.getComponentForState(expectedState)).toEqual(ScreenA);expect(router.getComponentForState(expectedState2)).toEqual(ScreenB);expect(router.getPathAndParamsForState(expectedState).path).toEqual('f');expect(router.getPathAndParamsForState(expectedState2).path).toEqual('b/anything');});it('Handles default configuration',function(){var ScreenA=function ScreenA(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:584}});};var ScreenB=function ScreenB(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:585}});};var router=(0,_TabRouter.default)({Foo:{path:'',screen:ScreenA},Bar:{path:'b',screen:ScreenB}});var action=router.getActionForPathAndParams('',{foo:'42'});expect(action).toEqual({params:{foo:'42'},routeName:'Foo',type:NavigationActions.NAVIGATE});});it('Gets deep path',function(){var ScreenA=function ScreenA(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:607}});};var ScreenB=function ScreenB(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:608}});};ScreenA.router=(0,_TabRouter.default)({Boo:{screen:ScreenB},Baz:{screen:ScreenB}});var router=(0,_TabRouter.default)({Foo:{path:'f',screen:ScreenA},Bar:{screen:ScreenB}});var state={index:0,routes:[{index:1,key:'Foo',routeName:'Foo',routes:[{key:'Boo',routeName:'Boo'},{key:'Baz',routeName:'Baz'}]},{key:'Bar',routeName:'Bar'}]};var _router$getPathAndPar=router.getPathAndParamsForState(state),path=_router$getPathAndPar.path;expect(path).toEqual('f/Baz');});it('Can navigate to other tab (no router) with params',function(){var ScreenA=function ScreenA(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:645}});};var ScreenB=function ScreenB(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:646}});};var router=(0,_TabRouter.default)({a:{screen:ScreenA},b:{screen:ScreenB}});var state0=router.getStateForAction(INIT_ACTION);expect(state0).toEqual({index:0,routes:[{key:'a',routeName:'a'},{key:'b',routeName:'b'}]});var params={key:'value'};var state1=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'b',params:params},state0);expect(state1).toEqual({index:1,routes:[{key:'a',routeName:'a'},{key:'b',routeName:'b',params:params}]});});it('Back actions are not propagated to inactive children',function(){var ScreenA=function ScreenA(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:679}});};var ScreenB=function ScreenB(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:680}});};var ScreenC=function ScreenC(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:681}});};var InnerNavigator=function InnerNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:682}});};InnerNavigator.router=(0,_TabRouter.default)({a:{screen:ScreenA},b:{screen:ScreenB}});var router=(0,_TabRouter.default)({inner:{screen:InnerNavigator},c:{screen:ScreenC}},{backBehavior:'none'});var state0=router.getStateForAction(INIT_ACTION);var state1=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'b'},state0);var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'c'},state1);var state3=router.getStateForAction({type:NavigationActions.BACK},state2);expect(state3).toEqual(state2);});it('Back behavior initialRoute works',function(){var ScreenA=function ScreenA(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:719}});};var ScreenB=function ScreenB(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:720}});};var router=(0,_TabRouter.default)({a:{screen:ScreenA},b:{screen:ScreenB}});var state0=router.getStateForAction(INIT_ACTION);var state1=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'b'},state0);var state2=router.getStateForAction({type:NavigationActions.BACK},state1);expect(state2).toEqual(state0);});it('Inner actions are only unpacked if the current tab matches',function(){var PlainScreen=function PlainScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:742}});};var ScreenA=function ScreenA(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:743}});};var ScreenB=function ScreenB(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:744}});};ScreenB.router=(0,_TabRouter.default)({Baz:{screen:PlainScreen},Zoo:{screen:PlainScreen}});ScreenA.router=(0,_TabRouter.default)({Bar:{screen:PlainScreen},Boo:{screen:ScreenB}});var router=(0,_TabRouter.default)({Foo:{screen:ScreenA}});var screenApreState={index:0,key:'Foo',routeName:'Foo',routes:[{key:'Bar',routeName:'Bar'}]};var preState={index:0,routes:[screenApreState]};var comparable=function comparable(state){var result={};if(typeof state.routeName==='string'){result=(0,_objectSpread2.default)({},result,{routeName:state.routeName});}if(state.routes instanceof Array){result=(0,_objectSpread2.default)({},result,{routes:state.routes.map(comparable)});}return result;};var action=NavigationActions.navigate({routeName:'Boo',action:NavigationActions.navigate({routeName:'Zoo'})});var expectedState=ScreenA.router.getStateForAction(action,screenApreState);var state=router.getStateForAction(action,preState);var innerState=state?state.routes[0]:state;expect(innerState.routes[1].index).toEqual(1);expect(expectedState&&comparable(expectedState)).toEqual(innerState&&comparable(innerState));var noMatchAction=NavigationActions.navigate({routeName:'Qux',action:NavigationActions.navigate({routeName:'Zoo'})});var expectedState2=ScreenA.router.getStateForAction(noMatchAction,screenApreState);var state2=router.getStateForAction(noMatchAction,preState);var innerState2=state2?state2.routes[0]:state2;expect(innerState2.routes[1].index).toEqual(0);expect(expectedState2&&comparable(expectedState2)).toEqual(innerState2&&comparable(innerState2));});});
+ //# sourceMappingURL=TabRouter-test.js.map
+\ No newline at end of file
+diff --git a/node_modules/@react-navigation/core/lib/commonjs/routers/__tests__/TabRouter-test.js.map b/node_modules/@react-navigation/core/lib/commonjs/routers/__tests__/TabRouter-test.js.map
+index e30af13..a961e09 100644
+--- a/node_modules/@react-navigation/core/lib/commonjs/routers/__tests__/TabRouter-test.js.map
++++ b/node_modules/@react-navigation/core/lib/commonjs/routers/__tests__/TabRouter-test.js.map
+@@ -1 +1 @@
+-{"version":3,"sources":["TabRouter-test.js"],"names":["INIT_ACTION","type","NavigationActions","INIT","BareLeafRouteConfig","screen","describe","it","ScreenA","ScreenB","router","Foo","Bar","state","getStateForAction","expectedState","index","routes","key","routeName","isTransitioning","expect","toEqual","state2","NAVIGATE","expectedState2","getComponentForState","state3","getScreen","initialRouteName","initialRouteParams","name","params","SET_PARAMS","initialState","other","ChildTabNavigator","Baz","Boo","action","getActionForPathAndParams","foo","navAction","ChildNavigator0","ChildNavigator1","Zoo","Zap","MidNavigator","Fee","Gah","state4","path","expectedAction","great","undefined","getPathAndParamsForState","a","b","state0","state1","ScreenC","InnerNavigator","inner","c","backBehavior","BACK","PlainScreen","screenApreState","preState","comparable","result","Array","map","navigate","innerState","noMatchAction","innerState2"],"mappings":"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","sourcesContent":["/* eslint react/display-name:0 */\n\nimport React from 'react';\nimport TabRouter from '../TabRouter';\n\nimport * as NavigationActions from '../../NavigationActions';\n\nconst INIT_ACTION = { type: NavigationActions.INIT };\n\nconst BareLeafRouteConfig = {\n screen: () => ,\n};\n\ndescribe('TabRouter', () => {\n it('Handles basic tab logic', () => {\n const ScreenA = () => ;\n const ScreenB = () => ;\n const router = TabRouter({\n Foo: { screen: ScreenA },\n Bar: { screen: ScreenB },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const expectedState = {\n index: 0,\n routes: [\n { key: 'Foo', routeName: 'Foo' },\n { key: 'Bar', routeName: 'Bar' },\n ],\n isTransitioning: false,\n };\n expect(state).toEqual(expectedState);\n const state2 = router.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'Bar' },\n state\n );\n const expectedState2 = {\n index: 1,\n routes: [\n { key: 'Foo', routeName: 'Foo' },\n { key: 'Bar', routeName: 'Bar' },\n ],\n isTransitioning: false,\n };\n expect(state2).toEqual(expectedState2);\n expect(router.getComponentForState(expectedState)).toEqual(ScreenA);\n expect(router.getComponentForState(expectedState2)).toEqual(ScreenB);\n const state3 = router.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'Bar' },\n state2\n );\n expect(state3).toEqual(null);\n });\n\n it('Handles getScreen', () => {\n const ScreenA = () => ;\n const ScreenB = () => ;\n const router = TabRouter({\n Foo: { getScreen: () => ScreenA },\n Bar: { getScreen: () => ScreenB },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const expectedState = {\n index: 0,\n routes: [\n { key: 'Foo', routeName: 'Foo' },\n { key: 'Bar', routeName: 'Bar' },\n ],\n isTransitioning: false,\n };\n expect(state).toEqual(expectedState);\n const state2 = router.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'Bar' },\n state\n );\n const expectedState2 = {\n index: 1,\n routes: [\n { key: 'Foo', routeName: 'Foo' },\n { key: 'Bar', routeName: 'Bar' },\n ],\n isTransitioning: false,\n };\n expect(state2).toEqual(expectedState2);\n expect(router.getComponentForState(expectedState)).toEqual(ScreenA);\n expect(router.getComponentForState(expectedState2)).toEqual(ScreenB);\n const state3 = router.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'Bar' },\n state2\n );\n expect(state3).toEqual(null);\n });\n\n it('Can set the initial tab', () => {\n const router = TabRouter(\n { Foo: BareLeafRouteConfig, Bar: BareLeafRouteConfig },\n { initialRouteName: 'Bar' }\n );\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n expect(state).toEqual({\n index: 1,\n routes: [\n { key: 'Foo', routeName: 'Foo' },\n { key: 'Bar', routeName: 'Bar' },\n ],\n isTransitioning: false,\n });\n });\n\n it('Can set the initial params', () => {\n const router = TabRouter(\n { Foo: BareLeafRouteConfig, Bar: BareLeafRouteConfig },\n { initialRouteName: 'Bar', initialRouteParams: { name: 'Qux' } }\n );\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n expect(state).toEqual({\n index: 1,\n routes: [\n { key: 'Foo', routeName: 'Foo' },\n { key: 'Bar', routeName: 'Bar', params: { name: 'Qux' } },\n ],\n isTransitioning: false,\n });\n });\n\n it('Handles the SetParams action', () => {\n const router = TabRouter({\n Foo: {\n screen: () => ,\n },\n Bar: {\n screen: () => ,\n },\n });\n const state2 = router.getStateForAction({\n type: NavigationActions.SET_PARAMS,\n params: { name: 'Qux' },\n key: 'Foo',\n });\n expect(state2 && state2.routes[0].params).toEqual({ name: 'Qux' });\n });\n\n it('Handles the SetParams action for inactive routes', () => {\n const router = TabRouter(\n {\n Foo: {\n screen: () => ,\n },\n Bar: {\n screen: () => ,\n },\n },\n {\n initialRouteName: 'Bar',\n }\n );\n const initialState = {\n index: 1,\n routes: [\n {\n key: 'RouteA',\n routeName: 'Foo',\n params: { name: 'InitialParam', other: 'Unchanged' },\n },\n { key: 'RouteB', routeName: 'Bar', params: {} },\n ],\n };\n const state = router.getStateForAction(\n {\n type: NavigationActions.SET_PARAMS,\n params: { name: 'NewParam' },\n key: 'RouteA',\n },\n initialState\n );\n expect(state.index).toEqual(1);\n expect(state.routes[0].params).toEqual({\n name: 'NewParam',\n other: 'Unchanged',\n });\n });\n\n it('getStateForAction returns null when navigating to same tab', () => {\n const router = TabRouter(\n { Foo: BareLeafRouteConfig, Bar: BareLeafRouteConfig },\n { initialRouteName: 'Bar' }\n );\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'Bar' },\n state\n );\n expect(state2).toEqual(null);\n });\n\n it('getStateForAction returns initial navigate', () => {\n const router = TabRouter({\n Foo: BareLeafRouteConfig,\n Bar: BareLeafRouteConfig,\n });\n const state = router.getStateForAction({\n type: NavigationActions.NAVIGATE,\n routeName: 'Foo',\n });\n expect(state && state.index).toEqual(0);\n });\n\n it('Handles nested tabs and nested actions', () => {\n const ChildTabNavigator = () => ;\n ChildTabNavigator.router = TabRouter({\n Foo: BareLeafRouteConfig,\n Bar: BareLeafRouteConfig,\n });\n const router = TabRouter({\n Foo: BareLeafRouteConfig,\n Baz: { screen: ChildTabNavigator },\n Boo: BareLeafRouteConfig,\n });\n const action = router.getActionForPathAndParams('Baz/Bar', { foo: '42' });\n const navAction = {\n type: NavigationActions.NAVIGATE,\n routeName: 'Baz',\n params: { foo: '42' },\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n params: { foo: '42' },\n },\n };\n expect(action).toEqual(navAction);\n const state = router.getStateForAction(navAction);\n expect(state).toEqual({\n index: 1,\n isTransitioning: false,\n routes: [\n {\n key: 'Foo',\n routeName: 'Foo',\n },\n {\n index: 1,\n isTransitioning: false,\n key: 'Baz',\n routeName: 'Baz',\n params: { foo: '42' },\n routes: [\n {\n key: 'Foo',\n routeName: 'Foo',\n },\n {\n key: 'Bar',\n routeName: 'Bar',\n params: {\n foo: '42',\n },\n },\n ],\n },\n {\n key: 'Boo',\n routeName: 'Boo',\n },\n ],\n });\n });\n\n it('Handles passing params to nested tabs', () => {\n const ChildTabNavigator = () => ;\n ChildTabNavigator.router = TabRouter({\n Boo: BareLeafRouteConfig,\n Bar: BareLeafRouteConfig,\n });\n const router = TabRouter({\n Foo: BareLeafRouteConfig,\n Baz: { screen: ChildTabNavigator },\n });\n const navAction = {\n type: NavigationActions.NAVIGATE,\n routeName: 'Baz',\n };\n let state = router.getStateForAction(navAction);\n expect(state).toEqual({\n index: 1,\n isTransitioning: false,\n routes: [\n { key: 'Foo', routeName: 'Foo' },\n {\n index: 0,\n key: 'Baz',\n routeName: 'Baz',\n isTransitioning: false,\n routes: [\n { key: 'Boo', routeName: 'Boo' },\n { key: 'Bar', routeName: 'Bar' },\n ],\n },\n ],\n });\n\n // Ensure that navigating back and forth doesn't overwrite\n state = router.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'Bar' },\n state\n );\n state = router.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'Boo' },\n state\n );\n expect(state && state.routes[1]).toEqual({\n index: 0,\n isTransitioning: false,\n key: 'Baz',\n routeName: 'Baz',\n routes: [\n { key: 'Boo', routeName: 'Boo' },\n { key: 'Bar', routeName: 'Bar' },\n ],\n });\n });\n\n it('Handles initial deep linking into nested tabs', () => {\n const ChildTabNavigator = () => ;\n ChildTabNavigator.router = TabRouter({\n Foo: BareLeafRouteConfig,\n Bar: BareLeafRouteConfig,\n });\n const router = TabRouter({\n Foo: BareLeafRouteConfig,\n Baz: { screen: ChildTabNavigator },\n Boo: BareLeafRouteConfig,\n });\n const state = router.getStateForAction({\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n });\n expect(state).toEqual({\n index: 1,\n isTransitioning: false,\n routes: [\n { key: 'Foo', routeName: 'Foo' },\n {\n index: 1,\n key: 'Baz',\n routeName: 'Baz',\n isTransitioning: false,\n routes: [\n { key: 'Foo', routeName: 'Foo' },\n { key: 'Bar', routeName: 'Bar' },\n ],\n },\n { key: 'Boo', routeName: 'Boo' },\n ],\n });\n const state2 = router.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'Foo' },\n state\n );\n expect(state2).toEqual({\n index: 1,\n isTransitioning: false,\n routes: [\n { key: 'Foo', routeName: 'Foo' },\n {\n index: 0,\n key: 'Baz',\n routeName: 'Baz',\n isTransitioning: false,\n routes: [\n { key: 'Foo', routeName: 'Foo' },\n { key: 'Bar', routeName: 'Bar' },\n ],\n },\n { key: 'Boo', routeName: 'Boo' },\n ],\n });\n const state3 = router.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'Foo' },\n state2\n );\n expect(state3).toEqual(null);\n });\n\n it('Handles linking across of deeply nested tabs', () => {\n const ChildNavigator0 = () => ;\n ChildNavigator0.router = TabRouter({\n Boo: BareLeafRouteConfig,\n Baz: BareLeafRouteConfig,\n });\n const ChildNavigator1 = () => ;\n ChildNavigator1.router = TabRouter({\n Zoo: BareLeafRouteConfig,\n Zap: BareLeafRouteConfig,\n });\n const MidNavigator = () => ;\n MidNavigator.router = TabRouter({\n Fee: { screen: ChildNavigator0 },\n Bar: { screen: ChildNavigator1 },\n });\n const router = TabRouter({\n Foo: { screen: MidNavigator },\n Gah: BareLeafRouteConfig,\n });\n const state = router.getStateForAction(INIT_ACTION);\n expect(state).toEqual({\n index: 0,\n isTransitioning: false,\n routes: [\n {\n index: 0,\n key: 'Foo',\n routeName: 'Foo',\n isTransitioning: false,\n routes: [\n {\n index: 0,\n key: 'Fee',\n routeName: 'Fee',\n isTransitioning: false,\n routes: [\n { key: 'Boo', routeName: 'Boo' },\n { key: 'Baz', routeName: 'Baz' },\n ],\n },\n {\n index: 0,\n key: 'Bar',\n routeName: 'Bar',\n isTransitioning: false,\n routes: [\n { key: 'Zoo', routeName: 'Zoo' },\n { key: 'Zap', routeName: 'Zap' },\n ],\n },\n ],\n },\n { key: 'Gah', routeName: 'Gah' },\n ],\n });\n const state2 = router.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'Zap' },\n state\n );\n expect(state2).toEqual({\n index: 0,\n isTransitioning: false,\n routes: [\n {\n index: 1,\n key: 'Foo',\n routeName: 'Foo',\n isTransitioning: false,\n routes: [\n {\n index: 0,\n key: 'Fee',\n routeName: 'Fee',\n isTransitioning: false,\n routes: [\n { key: 'Boo', routeName: 'Boo' },\n { key: 'Baz', routeName: 'Baz' },\n ],\n },\n {\n index: 1,\n key: 'Bar',\n routeName: 'Bar',\n isTransitioning: false,\n routes: [\n { key: 'Zoo', routeName: 'Zoo' },\n { key: 'Zap', routeName: 'Zap' },\n ],\n },\n ],\n },\n { key: 'Gah', routeName: 'Gah' },\n ],\n });\n const state3 = router.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'Zap' },\n state2\n );\n expect(state3).toEqual(null);\n const state4 = router.getStateForAction({\n type: NavigationActions.NAVIGATE,\n routeName: 'Foo',\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'Zap',\n },\n },\n });\n expect(state4).toEqual({\n index: 0,\n isTransitioning: false,\n routes: [\n {\n index: 1,\n key: 'Foo',\n routeName: 'Foo',\n isTransitioning: false,\n routes: [\n {\n index: 0,\n key: 'Fee',\n routeName: 'Fee',\n isTransitioning: false,\n routes: [\n { key: 'Boo', routeName: 'Boo' },\n { key: 'Baz', routeName: 'Baz' },\n ],\n },\n {\n index: 1,\n key: 'Bar',\n routeName: 'Bar',\n isTransitioning: false,\n routes: [\n { key: 'Zoo', routeName: 'Zoo' },\n { key: 'Zap', routeName: 'Zap' },\n ],\n },\n ],\n },\n { key: 'Gah', routeName: 'Gah' },\n ],\n });\n });\n\n it('Handles path configuration', () => {\n const ScreenA = () => ;\n const ScreenB = () => ;\n const router = TabRouter({\n Foo: {\n path: 'f',\n screen: ScreenA,\n },\n Bar: {\n path: 'b/:great',\n screen: ScreenB,\n },\n });\n const params = { foo: '42' };\n const action = router.getActionForPathAndParams('b/anything', params);\n const expectedAction = {\n params: {\n foo: '42',\n great: 'anything',\n },\n routeName: 'Bar',\n type: NavigationActions.NAVIGATE,\n };\n expect(action).toEqual(expectedAction);\n\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const expectedState = {\n index: 0,\n isTransitioning: false,\n routes: [\n { key: 'Foo', routeName: 'Foo' },\n { key: 'Bar', routeName: 'Bar' },\n ],\n };\n expect(state).toEqual(expectedState);\n const state2 = router.getStateForAction(expectedAction, state);\n const expectedState2 = {\n index: 1,\n isTransitioning: false,\n routes: [\n { key: 'Foo', routeName: 'Foo', params: undefined },\n {\n key: 'Bar',\n routeName: 'Bar',\n params: { foo: '42', great: 'anything' },\n },\n ],\n };\n expect(state2).toEqual(expectedState2);\n expect(router.getComponentForState(expectedState)).toEqual(ScreenA);\n expect(router.getComponentForState(expectedState2)).toEqual(ScreenB);\n expect(router.getPathAndParamsForState(expectedState).path).toEqual('f');\n expect(router.getPathAndParamsForState(expectedState2).path).toEqual(\n 'b/anything'\n );\n });\n\n it('Handles default configuration', () => {\n const ScreenA = () => ;\n const ScreenB = () => ;\n const router = TabRouter({\n Foo: {\n path: '',\n screen: ScreenA,\n },\n Bar: {\n path: 'b',\n screen: ScreenB,\n },\n });\n const action = router.getActionForPathAndParams('', { foo: '42' });\n expect(action).toEqual({\n params: {\n foo: '42',\n },\n routeName: 'Foo',\n type: NavigationActions.NAVIGATE,\n });\n });\n\n it('Gets deep path', () => {\n const ScreenA = () => ;\n const ScreenB = () => ;\n ScreenA.router = TabRouter({\n Boo: { screen: ScreenB },\n Baz: { screen: ScreenB },\n });\n const router = TabRouter({\n Foo: {\n path: 'f',\n screen: ScreenA,\n },\n Bar: {\n screen: ScreenB,\n },\n });\n\n const state = {\n index: 0,\n isTransitioning: false,\n routes: [\n {\n index: 1,\n key: 'Foo',\n routeName: 'Foo',\n isTransitioning: false,\n routes: [\n { key: 'Boo', routeName: 'Boo' },\n { key: 'Baz', routeName: 'Baz' },\n ],\n },\n { key: 'Bar', routeName: 'Bar' },\n ],\n };\n const { path } = router.getPathAndParamsForState(state);\n expect(path).toEqual('f/Baz');\n });\n\n it('Can navigate to other tab (no router) with params', () => {\n const ScreenA = () => ;\n const ScreenB = () => ;\n\n const router = TabRouter({\n a: { screen: ScreenA },\n b: { screen: ScreenB },\n });\n\n const state0 = router.getStateForAction(INIT_ACTION);\n\n expect(state0).toEqual({\n index: 0,\n isTransitioning: false,\n routes: [{ key: 'a', routeName: 'a' }, { key: 'b', routeName: 'b' }],\n });\n\n const params = { key: 'value' };\n\n const state1 = router.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'b', params },\n state0\n );\n\n expect(state1).toEqual({\n index: 1,\n isTransitioning: false,\n routes: [\n { key: 'a', routeName: 'a' },\n { key: 'b', routeName: 'b', params },\n ],\n });\n });\n\n it('Back actions are not propagated to inactive children', () => {\n const ScreenA = () => ;\n const ScreenB = () => ;\n const ScreenC = () => ;\n const InnerNavigator = () => ;\n InnerNavigator.router = TabRouter({\n a: { screen: ScreenA },\n b: { screen: ScreenB },\n });\n\n const router = TabRouter(\n {\n inner: { screen: InnerNavigator },\n c: { screen: ScreenC },\n },\n {\n backBehavior: 'none',\n }\n );\n\n const state0 = router.getStateForAction(INIT_ACTION);\n\n const state1 = router.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'b' },\n state0\n );\n\n const state2 = router.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'c' },\n state1\n );\n\n const state3 = router.getStateForAction(\n { type: NavigationActions.BACK },\n state2\n );\n\n expect(state3).toEqual(state2);\n });\n\n it('Back behavior initialRoute works', () => {\n const ScreenA = () => ;\n const ScreenB = () => ;\n const router = TabRouter({\n a: { screen: ScreenA },\n b: { screen: ScreenB },\n });\n\n const state0 = router.getStateForAction(INIT_ACTION);\n\n const state1 = router.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'b' },\n state0\n );\n\n const state2 = router.getStateForAction(\n { type: NavigationActions.BACK },\n state1\n );\n\n expect(state2).toEqual(state0);\n });\n\n it('Inner actions are only unpacked if the current tab matches', () => {\n const PlainScreen = () => ;\n const ScreenA = () => ;\n const ScreenB = () => ;\n ScreenB.router = TabRouter({\n Baz: { screen: PlainScreen },\n Zoo: { screen: PlainScreen },\n });\n ScreenA.router = TabRouter({\n Bar: { screen: PlainScreen },\n Boo: { screen: ScreenB },\n });\n const router = TabRouter({\n Foo: { screen: ScreenA },\n });\n const screenApreState = {\n index: 0,\n key: 'Foo',\n isTransitioning: false,\n routeName: 'Foo',\n routes: [{ key: 'Bar', routeName: 'Bar' }],\n };\n const preState = {\n index: 0,\n isTransitioning: false,\n routes: [screenApreState],\n };\n\n const comparable = state => {\n let result = {};\n if (typeof state.routeName === 'string') {\n result = { ...result, routeName: state.routeName };\n }\n if (state.routes instanceof Array) {\n result = {\n ...result,\n routes: state.routes.map(comparable),\n };\n }\n return result;\n };\n\n const action = NavigationActions.navigate({\n routeName: 'Boo',\n action: NavigationActions.navigate({ routeName: 'Zoo' }),\n });\n const expectedState = ScreenA.router.getStateForAction(\n action,\n screenApreState\n );\n const state = router.getStateForAction(action, preState);\n const innerState = state ? state.routes[0] : state;\n\n expect(innerState.routes[1].index).toEqual(1);\n expect(expectedState && comparable(expectedState)).toEqual(\n innerState && comparable(innerState)\n );\n\n const noMatchAction = NavigationActions.navigate({\n routeName: 'Qux',\n action: NavigationActions.navigate({ routeName: 'Zoo' }),\n });\n const expectedState2 = ScreenA.router.getStateForAction(\n noMatchAction,\n screenApreState\n );\n const state2 = router.getStateForAction(noMatchAction, preState);\n const innerState2 = state2 ? state2.routes[0] : state2;\n\n expect(innerState2.routes[1].index).toEqual(0);\n expect(expectedState2 && comparable(expectedState2)).toEqual(\n innerState2 && comparable(innerState2)\n );\n });\n});\n"]}
+\ No newline at end of file
++{"version":3,"sources":["TabRouter-test.js"],"names":["INIT_ACTION","type","NavigationActions","INIT","BareLeafRouteConfig","screen","describe","it","ScreenA","ScreenB","router","Foo","Bar","state","getStateForAction","expectedState","index","routes","key","routeName","expect","toEqual","state2","NAVIGATE","expectedState2","getComponentForState","state3","getScreen","initialRouteName","initialRouteParams","name","params","SET_PARAMS","initialState","other","ChildTabNavigator","Baz","Boo","action","getActionForPathAndParams","foo","navAction","ChildNavigator0","ChildNavigator1","Zoo","Zap","MidNavigator","Fee","Gah","state4","path","expectedAction","great","undefined","getPathAndParamsForState","a","b","state0","state1","ScreenC","InnerNavigator","inner","c","backBehavior","BACK","PlainScreen","screenApreState","preState","comparable","result","Array","map","navigate","innerState","noMatchAction","innerState2"],"mappings":"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","sourcesContent":["/* eslint react/display-name:0 */\n\nimport React from 'react';\nimport TabRouter from '../TabRouter';\n\nimport * as NavigationActions from '../../NavigationActions';\n\nconst INIT_ACTION = { type: NavigationActions.INIT };\n\nconst BareLeafRouteConfig = {\n screen: () => ,\n};\n\ndescribe('TabRouter', () => {\n it('Handles basic tab logic', () => {\n const ScreenA = () => ;\n const ScreenB = () => ;\n const router = TabRouter({\n Foo: { screen: ScreenA },\n Bar: { screen: ScreenB },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const expectedState = {\n index: 0,\n routes: [\n { key: 'Foo', routeName: 'Foo' },\n { key: 'Bar', routeName: 'Bar' },\n ],\n };\n expect(state).toEqual(expectedState);\n const state2 = router.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'Bar' },\n state\n );\n const expectedState2 = {\n index: 1,\n routes: [\n { key: 'Foo', routeName: 'Foo' },\n { key: 'Bar', routeName: 'Bar' },\n ],\n };\n expect(state2).toEqual(expectedState2);\n expect(router.getComponentForState(expectedState)).toEqual(ScreenA);\n expect(router.getComponentForState(expectedState2)).toEqual(ScreenB);\n const state3 = router.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'Bar' },\n state2\n );\n expect(state3).toEqual(null);\n });\n\n it('Handles getScreen', () => {\n const ScreenA = () => ;\n const ScreenB = () => ;\n const router = TabRouter({\n Foo: { getScreen: () => ScreenA },\n Bar: { getScreen: () => ScreenB },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const expectedState = {\n index: 0,\n routes: [\n { key: 'Foo', routeName: 'Foo' },\n { key: 'Bar', routeName: 'Bar' },\n ],\n };\n expect(state).toEqual(expectedState);\n const state2 = router.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'Bar' },\n state\n );\n const expectedState2 = {\n index: 1,\n routes: [\n { key: 'Foo', routeName: 'Foo' },\n { key: 'Bar', routeName: 'Bar' },\n ],\n };\n expect(state2).toEqual(expectedState2);\n expect(router.getComponentForState(expectedState)).toEqual(ScreenA);\n expect(router.getComponentForState(expectedState2)).toEqual(ScreenB);\n const state3 = router.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'Bar' },\n state2\n );\n expect(state3).toEqual(null);\n });\n\n it('Can set the initial tab', () => {\n const router = TabRouter(\n { Foo: BareLeafRouteConfig, Bar: BareLeafRouteConfig },\n { initialRouteName: 'Bar' }\n );\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n expect(state).toEqual({\n index: 1,\n routes: [\n { key: 'Foo', routeName: 'Foo' },\n { key: 'Bar', routeName: 'Bar' },\n ],\n });\n });\n\n it('Can set the initial params', () => {\n const router = TabRouter(\n { Foo: BareLeafRouteConfig, Bar: BareLeafRouteConfig },\n { initialRouteName: 'Bar', initialRouteParams: { name: 'Qux' } }\n );\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n expect(state).toEqual({\n index: 1,\n routes: [\n { key: 'Foo', routeName: 'Foo' },\n { key: 'Bar', routeName: 'Bar', params: { name: 'Qux' } },\n ],\n });\n });\n\n it('Handles the SetParams action', () => {\n const router = TabRouter({\n Foo: {\n screen: () => ,\n },\n Bar: {\n screen: () => ,\n },\n });\n const state2 = router.getStateForAction({\n type: NavigationActions.SET_PARAMS,\n params: { name: 'Qux' },\n key: 'Foo',\n });\n expect(state2 && state2.routes[0].params).toEqual({ name: 'Qux' });\n });\n\n it('Handles the SetParams action for inactive routes', () => {\n const router = TabRouter(\n {\n Foo: {\n screen: () => ,\n },\n Bar: {\n screen: () => ,\n },\n },\n {\n initialRouteName: 'Bar',\n }\n );\n const initialState = {\n index: 1,\n routes: [\n {\n key: 'RouteA',\n routeName: 'Foo',\n params: { name: 'InitialParam', other: 'Unchanged' },\n },\n { key: 'RouteB', routeName: 'Bar', params: {} },\n ],\n };\n const state = router.getStateForAction(\n {\n type: NavigationActions.SET_PARAMS,\n params: { name: 'NewParam' },\n key: 'RouteA',\n },\n initialState\n );\n expect(state.index).toEqual(1);\n expect(state.routes[0].params).toEqual({\n name: 'NewParam',\n other: 'Unchanged',\n });\n });\n\n it('getStateForAction returns null when navigating to same tab', () => {\n const router = TabRouter(\n { Foo: BareLeafRouteConfig, Bar: BareLeafRouteConfig },\n { initialRouteName: 'Bar' }\n );\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'Bar' },\n state\n );\n expect(state2).toEqual(null);\n });\n\n it('getStateForAction returns initial navigate', () => {\n const router = TabRouter({\n Foo: BareLeafRouteConfig,\n Bar: BareLeafRouteConfig,\n });\n const state = router.getStateForAction({\n type: NavigationActions.NAVIGATE,\n routeName: 'Foo',\n });\n expect(state && state.index).toEqual(0);\n });\n\n it('Handles nested tabs and nested actions', () => {\n const ChildTabNavigator = () => ;\n ChildTabNavigator.router = TabRouter({\n Foo: BareLeafRouteConfig,\n Bar: BareLeafRouteConfig,\n });\n const router = TabRouter({\n Foo: BareLeafRouteConfig,\n Baz: { screen: ChildTabNavigator },\n Boo: BareLeafRouteConfig,\n });\n const action = router.getActionForPathAndParams('Baz/Bar', { foo: '42' });\n const navAction = {\n type: NavigationActions.NAVIGATE,\n routeName: 'Baz',\n params: { foo: '42' },\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n params: { foo: '42' },\n },\n };\n expect(action).toEqual(navAction);\n const state = router.getStateForAction(navAction);\n expect(state).toEqual({\n index: 1,\n\n routes: [\n {\n key: 'Foo',\n routeName: 'Foo',\n },\n {\n index: 1,\n\n key: 'Baz',\n routeName: 'Baz',\n params: { foo: '42' },\n routes: [\n {\n key: 'Foo',\n routeName: 'Foo',\n },\n {\n key: 'Bar',\n routeName: 'Bar',\n params: {\n foo: '42',\n },\n },\n ],\n },\n {\n key: 'Boo',\n routeName: 'Boo',\n },\n ],\n });\n });\n\n it('Handles passing params to nested tabs', () => {\n const ChildTabNavigator = () => ;\n ChildTabNavigator.router = TabRouter({\n Boo: BareLeafRouteConfig,\n Bar: BareLeafRouteConfig,\n });\n const router = TabRouter({\n Foo: BareLeafRouteConfig,\n Baz: { screen: ChildTabNavigator },\n });\n const navAction = {\n type: NavigationActions.NAVIGATE,\n routeName: 'Baz',\n };\n let state = router.getStateForAction(navAction);\n expect(state).toEqual({\n index: 1,\n\n routes: [\n { key: 'Foo', routeName: 'Foo' },\n {\n index: 0,\n key: 'Baz',\n routeName: 'Baz',\n\n routes: [\n { key: 'Boo', routeName: 'Boo' },\n { key: 'Bar', routeName: 'Bar' },\n ],\n },\n ],\n });\n\n // Ensure that navigating back and forth doesn't overwrite\n state = router.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'Bar' },\n state\n );\n state = router.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'Boo' },\n state\n );\n expect(state && state.routes[1]).toEqual({\n index: 0,\n\n key: 'Baz',\n routeName: 'Baz',\n routes: [\n { key: 'Boo', routeName: 'Boo' },\n { key: 'Bar', routeName: 'Bar' },\n ],\n });\n });\n\n it('Handles initial deep linking into nested tabs', () => {\n const ChildTabNavigator = () => ;\n ChildTabNavigator.router = TabRouter({\n Foo: BareLeafRouteConfig,\n Bar: BareLeafRouteConfig,\n });\n const router = TabRouter({\n Foo: BareLeafRouteConfig,\n Baz: { screen: ChildTabNavigator },\n Boo: BareLeafRouteConfig,\n });\n const state = router.getStateForAction({\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n });\n expect(state).toEqual({\n index: 1,\n\n routes: [\n { key: 'Foo', routeName: 'Foo' },\n {\n index: 1,\n key: 'Baz',\n routeName: 'Baz',\n\n routes: [\n { key: 'Foo', routeName: 'Foo' },\n { key: 'Bar', routeName: 'Bar' },\n ],\n },\n { key: 'Boo', routeName: 'Boo' },\n ],\n });\n const state2 = router.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'Foo' },\n state\n );\n expect(state2).toEqual({\n index: 1,\n\n routes: [\n { key: 'Foo', routeName: 'Foo' },\n {\n index: 0,\n key: 'Baz',\n routeName: 'Baz',\n\n routes: [\n { key: 'Foo', routeName: 'Foo' },\n { key: 'Bar', routeName: 'Bar' },\n ],\n },\n { key: 'Boo', routeName: 'Boo' },\n ],\n });\n const state3 = router.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'Foo' },\n state2\n );\n expect(state3).toEqual(null);\n });\n\n it('Handles linking across of deeply nested tabs', () => {\n const ChildNavigator0 = () => ;\n ChildNavigator0.router = TabRouter({\n Boo: BareLeafRouteConfig,\n Baz: BareLeafRouteConfig,\n });\n const ChildNavigator1 = () => ;\n ChildNavigator1.router = TabRouter({\n Zoo: BareLeafRouteConfig,\n Zap: BareLeafRouteConfig,\n });\n const MidNavigator = () => ;\n MidNavigator.router = TabRouter({\n Fee: { screen: ChildNavigator0 },\n Bar: { screen: ChildNavigator1 },\n });\n const router = TabRouter({\n Foo: { screen: MidNavigator },\n Gah: BareLeafRouteConfig,\n });\n const state = router.getStateForAction(INIT_ACTION);\n expect(state).toEqual({\n index: 0,\n\n routes: [\n {\n index: 0,\n key: 'Foo',\n routeName: 'Foo',\n\n routes: [\n {\n index: 0,\n key: 'Fee',\n routeName: 'Fee',\n\n routes: [\n { key: 'Boo', routeName: 'Boo' },\n { key: 'Baz', routeName: 'Baz' },\n ],\n },\n {\n index: 0,\n key: 'Bar',\n routeName: 'Bar',\n\n routes: [\n { key: 'Zoo', routeName: 'Zoo' },\n { key: 'Zap', routeName: 'Zap' },\n ],\n },\n ],\n },\n { key: 'Gah', routeName: 'Gah' },\n ],\n });\n const state2 = router.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'Zap' },\n state\n );\n expect(state2).toEqual({\n index: 0,\n\n routes: [\n {\n index: 1,\n key: 'Foo',\n routeName: 'Foo',\n\n routes: [\n {\n index: 0,\n key: 'Fee',\n routeName: 'Fee',\n\n routes: [\n { key: 'Boo', routeName: 'Boo' },\n { key: 'Baz', routeName: 'Baz' },\n ],\n },\n {\n index: 1,\n key: 'Bar',\n routeName: 'Bar',\n\n routes: [\n { key: 'Zoo', routeName: 'Zoo' },\n { key: 'Zap', routeName: 'Zap' },\n ],\n },\n ],\n },\n { key: 'Gah', routeName: 'Gah' },\n ],\n });\n const state3 = router.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'Zap' },\n state2\n );\n expect(state3).toEqual(null);\n const state4 = router.getStateForAction({\n type: NavigationActions.NAVIGATE,\n routeName: 'Foo',\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'Zap',\n },\n },\n });\n expect(state4).toEqual({\n index: 0,\n\n routes: [\n {\n index: 1,\n key: 'Foo',\n routeName: 'Foo',\n\n routes: [\n {\n index: 0,\n key: 'Fee',\n routeName: 'Fee',\n\n routes: [\n { key: 'Boo', routeName: 'Boo' },\n { key: 'Baz', routeName: 'Baz' },\n ],\n },\n {\n index: 1,\n key: 'Bar',\n routeName: 'Bar',\n\n routes: [\n { key: 'Zoo', routeName: 'Zoo' },\n { key: 'Zap', routeName: 'Zap' },\n ],\n },\n ],\n },\n { key: 'Gah', routeName: 'Gah' },\n ],\n });\n });\n\n it('Handles path configuration', () => {\n const ScreenA = () => ;\n const ScreenB = () => ;\n const router = TabRouter({\n Foo: {\n path: 'f',\n screen: ScreenA,\n },\n Bar: {\n path: 'b/:great',\n screen: ScreenB,\n },\n });\n const params = { foo: '42' };\n const action = router.getActionForPathAndParams('b/anything', params);\n const expectedAction = {\n params: {\n foo: '42',\n great: 'anything',\n },\n routeName: 'Bar',\n type: NavigationActions.NAVIGATE,\n };\n expect(action).toEqual(expectedAction);\n\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const expectedState = {\n index: 0,\n\n routes: [\n { key: 'Foo', routeName: 'Foo' },\n { key: 'Bar', routeName: 'Bar' },\n ],\n };\n expect(state).toEqual(expectedState);\n const state2 = router.getStateForAction(expectedAction, state);\n const expectedState2 = {\n index: 1,\n\n routes: [\n { key: 'Foo', routeName: 'Foo', params: undefined },\n {\n key: 'Bar',\n routeName: 'Bar',\n params: { foo: '42', great: 'anything' },\n },\n ],\n };\n expect(state2).toEqual(expectedState2);\n expect(router.getComponentForState(expectedState)).toEqual(ScreenA);\n expect(router.getComponentForState(expectedState2)).toEqual(ScreenB);\n expect(router.getPathAndParamsForState(expectedState).path).toEqual('f');\n expect(router.getPathAndParamsForState(expectedState2).path).toEqual(\n 'b/anything'\n );\n });\n\n it('Handles default configuration', () => {\n const ScreenA = () => ;\n const ScreenB = () => ;\n const router = TabRouter({\n Foo: {\n path: '',\n screen: ScreenA,\n },\n Bar: {\n path: 'b',\n screen: ScreenB,\n },\n });\n const action = router.getActionForPathAndParams('', { foo: '42' });\n expect(action).toEqual({\n params: {\n foo: '42',\n },\n routeName: 'Foo',\n type: NavigationActions.NAVIGATE,\n });\n });\n\n it('Gets deep path', () => {\n const ScreenA = () => ;\n const ScreenB = () => ;\n ScreenA.router = TabRouter({\n Boo: { screen: ScreenB },\n Baz: { screen: ScreenB },\n });\n const router = TabRouter({\n Foo: {\n path: 'f',\n screen: ScreenA,\n },\n Bar: {\n screen: ScreenB,\n },\n });\n\n const state = {\n index: 0,\n\n routes: [\n {\n index: 1,\n key: 'Foo',\n routeName: 'Foo',\n\n routes: [\n { key: 'Boo', routeName: 'Boo' },\n { key: 'Baz', routeName: 'Baz' },\n ],\n },\n { key: 'Bar', routeName: 'Bar' },\n ],\n };\n const { path } = router.getPathAndParamsForState(state);\n expect(path).toEqual('f/Baz');\n });\n\n it('Can navigate to other tab (no router) with params', () => {\n const ScreenA = () => ;\n const ScreenB = () => ;\n\n const router = TabRouter({\n a: { screen: ScreenA },\n b: { screen: ScreenB },\n });\n\n const state0 = router.getStateForAction(INIT_ACTION);\n\n expect(state0).toEqual({\n index: 0,\n\n routes: [{ key: 'a', routeName: 'a' }, { key: 'b', routeName: 'b' }],\n });\n\n const params = { key: 'value' };\n\n const state1 = router.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'b', params },\n state0\n );\n\n expect(state1).toEqual({\n index: 1,\n\n routes: [\n { key: 'a', routeName: 'a' },\n { key: 'b', routeName: 'b', params },\n ],\n });\n });\n\n it('Back actions are not propagated to inactive children', () => {\n const ScreenA = () => ;\n const ScreenB = () => ;\n const ScreenC = () => ;\n const InnerNavigator = () => ;\n InnerNavigator.router = TabRouter({\n a: { screen: ScreenA },\n b: { screen: ScreenB },\n });\n\n const router = TabRouter(\n {\n inner: { screen: InnerNavigator },\n c: { screen: ScreenC },\n },\n {\n backBehavior: 'none',\n }\n );\n\n const state0 = router.getStateForAction(INIT_ACTION);\n\n const state1 = router.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'b' },\n state0\n );\n\n const state2 = router.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'c' },\n state1\n );\n\n const state3 = router.getStateForAction(\n { type: NavigationActions.BACK },\n state2\n );\n\n expect(state3).toEqual(state2);\n });\n\n it('Back behavior initialRoute works', () => {\n const ScreenA = () => ;\n const ScreenB = () => ;\n const router = TabRouter({\n a: { screen: ScreenA },\n b: { screen: ScreenB },\n });\n\n const state0 = router.getStateForAction(INIT_ACTION);\n\n const state1 = router.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'b' },\n state0\n );\n\n const state2 = router.getStateForAction(\n { type: NavigationActions.BACK },\n state1\n );\n\n expect(state2).toEqual(state0);\n });\n\n it('Inner actions are only unpacked if the current tab matches', () => {\n const PlainScreen = () => ;\n const ScreenA = () => ;\n const ScreenB = () => ;\n ScreenB.router = TabRouter({\n Baz: { screen: PlainScreen },\n Zoo: { screen: PlainScreen },\n });\n ScreenA.router = TabRouter({\n Bar: { screen: PlainScreen },\n Boo: { screen: ScreenB },\n });\n const router = TabRouter({\n Foo: { screen: ScreenA },\n });\n const screenApreState = {\n index: 0,\n key: 'Foo',\n\n routeName: 'Foo',\n routes: [{ key: 'Bar', routeName: 'Bar' }],\n };\n const preState = {\n index: 0,\n\n routes: [screenApreState],\n };\n\n const comparable = state => {\n let result = {};\n if (typeof state.routeName === 'string') {\n result = { ...result, routeName: state.routeName };\n }\n if (state.routes instanceof Array) {\n result = {\n ...result,\n routes: state.routes.map(comparable),\n };\n }\n return result;\n };\n\n const action = NavigationActions.navigate({\n routeName: 'Boo',\n action: NavigationActions.navigate({ routeName: 'Zoo' }),\n });\n const expectedState = ScreenA.router.getStateForAction(\n action,\n screenApreState\n );\n const state = router.getStateForAction(action, preState);\n const innerState = state ? state.routes[0] : state;\n\n expect(innerState.routes[1].index).toEqual(1);\n expect(expectedState && comparable(expectedState)).toEqual(\n innerState && comparable(innerState)\n );\n\n const noMatchAction = NavigationActions.navigate({\n routeName: 'Qux',\n action: NavigationActions.navigate({ routeName: 'Zoo' }),\n });\n const expectedState2 = ScreenA.router.getStateForAction(\n noMatchAction,\n screenApreState\n );\n const state2 = router.getStateForAction(noMatchAction, preState);\n const innerState2 = state2 ? state2.routes[0] : state2;\n\n expect(innerState2.routes[1].index).toEqual(0);\n expect(expectedState2 && comparable(expectedState2)).toEqual(\n innerState2 && comparable(innerState2)\n );\n });\n});\n"]}
+\ No newline at end of file
+diff --git a/node_modules/@react-navigation/core/lib/commonjs/routers/__tests__/validateRouteConfigMap-test.js b/node_modules/@react-navigation/core/lib/commonjs/routers/__tests__/validateRouteConfigMap-test.js
+index 7485603..83cb9ed 100644
+--- a/node_modules/@react-navigation/core/lib/commonjs/routers/__tests__/validateRouteConfigMap-test.js
++++ b/node_modules/@react-navigation/core/lib/commonjs/routers/__tests__/validateRouteConfigMap-test.js
+@@ -1,2 +1,2 @@
+-var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _react=_interopRequireDefault(require("react"));var _validateRouteConfigMap=_interopRequireDefault(require("../validateRouteConfigMap"));var _StackRouter=_interopRequireDefault(require("../StackRouter"));var _jsxFileName="/Users/satya/Workspace/Callstack/react-navigation-core/src/routers/__tests__/validateRouteConfigMap-test.js";var ListScreen=function ListScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:6}});};var ProfileNavigator=function ProfileNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:8}});};ProfileNavigator.router=(0,_StackRouter.default)({list:{screen:ListScreen}});describe('validateRouteConfigMap',function(){it('Fails on empty bare screen',function(){var invalidMap={Home:undefined};expect(function(){return(0,_validateRouteConfigMap.default)(invalidMap);}).toThrowErrorMatchingSnapshot();});it('Fails on empty config',function(){var invalidMap={};expect(function(){return(0,_validateRouteConfigMap.default)(invalidMap);}).toThrowErrorMatchingSnapshot();});it('Fails on bad object',function(){var invalidMap={Home:{foo:'bar'}};expect(function(){return(0,_validateRouteConfigMap.default)(invalidMap);}).toThrowErrorMatchingSnapshot();});it('Fails if both screen and getScreen are defined',function(){var invalidMap={Home:{screen:ListScreen,getScreen:function getScreen(){return ListScreen;}}};expect(function(){return(0,_validateRouteConfigMap.default)(invalidMap);}).toThrowErrorMatchingSnapshot();});it('Succeeds on a valid config',function(){var validMap={Home:{screen:ProfileNavigator},Chat:ListScreen};(0,_validateRouteConfigMap.default)(validMap);});});
++var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _react=_interopRequireDefault(require("react"));var _validateRouteConfigMap=_interopRequireDefault(require("../validateRouteConfigMap"));var _StackRouter=_interopRequireDefault(require("../StackRouter"));var _jsxFileName="/Users/brentvatne/coding/react-navigation-core/src/routers/__tests__/validateRouteConfigMap-test.js";var ListScreen=function ListScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:6}});};var ProfileNavigator=function ProfileNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:8}});};ProfileNavigator.router=(0,_StackRouter.default)({list:{screen:ListScreen}});describe('validateRouteConfigMap',function(){it('Fails on empty bare screen',function(){var invalidMap={Home:undefined};expect(function(){return(0,_validateRouteConfigMap.default)(invalidMap);}).toThrowErrorMatchingSnapshot();});it('Fails on empty config',function(){var invalidMap={};expect(function(){return(0,_validateRouteConfigMap.default)(invalidMap);}).toThrowErrorMatchingSnapshot();});it('Fails on bad object',function(){var invalidMap={Home:{foo:'bar'}};expect(function(){return(0,_validateRouteConfigMap.default)(invalidMap);}).toThrowErrorMatchingSnapshot();});it('Fails if both screen and getScreen are defined',function(){var invalidMap={Home:{screen:ListScreen,getScreen:function getScreen(){return ListScreen;}}};expect(function(){return(0,_validateRouteConfigMap.default)(invalidMap);}).toThrowErrorMatchingSnapshot();});it('Succeeds on a valid config',function(){var validMap={Home:{screen:ProfileNavigator},Chat:ListScreen};(0,_validateRouteConfigMap.default)(validMap);});});
+ //# sourceMappingURL=validateRouteConfigMap-test.js.map
+\ No newline at end of file
+diff --git a/node_modules/@react-navigation/core/lib/commonjs/routers/__tests__/validateRouteConfigMap-test.js.map b/node_modules/@react-navigation/core/lib/commonjs/routers/__tests__/validateRouteConfigMap-test.js.map
+index 4482c15..9755dfd 100644
+--- a/node_modules/@react-navigation/core/lib/commonjs/routers/__tests__/validateRouteConfigMap-test.js.map
++++ b/node_modules/@react-navigation/core/lib/commonjs/routers/__tests__/validateRouteConfigMap-test.js.map
+@@ -1 +1 @@
+-{"version":3,"sources":["validateRouteConfigMap-test.js"],"names":["ListScreen","ProfileNavigator","router","list","screen","describe","it","invalidMap","Home","undefined","expect","toThrowErrorMatchingSnapshot","foo","getScreen","validMap","Chat"],"mappings":"mFAAA,oDAEA,yFACA,mE,+HAEA,GAAMA,CAAAA,UAAU,CAAG,QAAbA,CAAAA,UAAa,SAAM,oFAAN,EAAnB,CAEA,GAAMC,CAAAA,gBAAgB,CAAG,QAAnBA,CAAAA,gBAAmB,SAAM,oFAAN,EAAzB,CACAA,gBAAgB,CAACC,MAAjB,CAA0B,yBAAY,CACpCC,IAAI,CAAE,CACJC,MAAM,CAAEJ,UADJ,CAD8B,CAAZ,CAA1B,CAMAK,QAAQ,CAAC,wBAAD,CAA2B,UAAM,CACvCC,EAAE,CAAC,4BAAD,CAA+B,UAAM,CACrC,GAAMC,CAAAA,UAAU,CAAG,CACjBC,IAAI,CAAEC,SADW,CAAnB,CAGAC,MAAM,CAAC,iBACL,oCAAuBH,UAAvB,CADK,EAAD,CAAN,CAEEI,4BAFF,GAGD,CAPC,CAAF,CAQAL,EAAE,CAAC,uBAAD,CAA0B,UAAM,CAChC,GAAMC,CAAAA,UAAU,CAAG,EAAnB,CACAG,MAAM,CAAC,iBACL,oCAAuBH,UAAvB,CADK,EAAD,CAAN,CAEEI,4BAFF,GAGD,CALC,CAAF,CAMAL,EAAE,CAAC,qBAAD,CAAwB,UAAM,CAC9B,GAAMC,CAAAA,UAAU,CAAG,CACjBC,IAAI,CAAE,CACJI,GAAG,CAAE,KADD,CADW,CAAnB,CAKAF,MAAM,CAAC,iBACL,oCAAuBH,UAAvB,CADK,EAAD,CAAN,CAEEI,4BAFF,GAGD,CATC,CAAF,CAUAL,EAAE,CAAC,gDAAD,CAAmD,UAAM,CACzD,GAAMC,CAAAA,UAAU,CAAG,CACjBC,IAAI,CAAE,CACJJ,MAAM,CAAEJ,UADJ,CAEJa,SAAS,CAAE,2BAAMb,CAAAA,UAAN,EAFP,CADW,CAAnB,CAMAU,MAAM,CAAC,iBACL,oCAAuBH,UAAvB,CADK,EAAD,CAAN,CAEEI,4BAFF,GAGD,CAVC,CAAF,CAWAL,EAAE,CAAC,4BAAD,CAA+B,UAAM,CACrC,GAAMQ,CAAAA,QAAQ,CAAG,CACfN,IAAI,CAAE,CACJJ,MAAM,CAAEH,gBADJ,CADS,CAIfc,IAAI,CAAEf,UAJS,CAAjB,CAMA,oCAAuBc,QAAvB,EACD,CARC,CAAF,CASD,CA7CO,CAAR","sourcesContent":["import React from 'react';\n\nimport validateRouteConfigMap from '../validateRouteConfigMap';\nimport StackRouter from '../StackRouter';\n\nconst ListScreen = () => ;\n\nconst ProfileNavigator = () => ;\nProfileNavigator.router = StackRouter({\n list: {\n screen: ListScreen,\n },\n});\n\ndescribe('validateRouteConfigMap', () => {\n it('Fails on empty bare screen', () => {\n const invalidMap = {\n Home: undefined,\n };\n expect(() =>\n validateRouteConfigMap(invalidMap)\n ).toThrowErrorMatchingSnapshot();\n });\n it('Fails on empty config', () => {\n const invalidMap = {};\n expect(() =>\n validateRouteConfigMap(invalidMap)\n ).toThrowErrorMatchingSnapshot();\n });\n it('Fails on bad object', () => {\n const invalidMap = {\n Home: {\n foo: 'bar',\n },\n };\n expect(() =>\n validateRouteConfigMap(invalidMap)\n ).toThrowErrorMatchingSnapshot();\n });\n it('Fails if both screen and getScreen are defined', () => {\n const invalidMap = {\n Home: {\n screen: ListScreen,\n getScreen: () => ListScreen,\n },\n };\n expect(() =>\n validateRouteConfigMap(invalidMap)\n ).toThrowErrorMatchingSnapshot();\n });\n it('Succeeds on a valid config', () => {\n const validMap = {\n Home: {\n screen: ProfileNavigator,\n },\n Chat: ListScreen,\n };\n validateRouteConfigMap(validMap);\n });\n});\n"]}
+\ No newline at end of file
++{"version":3,"sources":["validateRouteConfigMap-test.js"],"names":["ListScreen","ProfileNavigator","router","list","screen","describe","it","invalidMap","Home","undefined","expect","toThrowErrorMatchingSnapshot","foo","getScreen","validMap","Chat"],"mappings":"mFAAA,oDAEA,yFACA,mE,uHAEA,GAAMA,CAAAA,UAAU,CAAG,QAAbA,CAAAA,UAAa,SAAM,oFAAN,EAAnB,CAEA,GAAMC,CAAAA,gBAAgB,CAAG,QAAnBA,CAAAA,gBAAmB,SAAM,oFAAN,EAAzB,CACAA,gBAAgB,CAACC,MAAjB,CAA0B,yBAAY,CACpCC,IAAI,CAAE,CACJC,MAAM,CAAEJ,UADJ,CAD8B,CAAZ,CAA1B,CAMAK,QAAQ,CAAC,wBAAD,CAA2B,UAAM,CACvCC,EAAE,CAAC,4BAAD,CAA+B,UAAM,CACrC,GAAMC,CAAAA,UAAU,CAAG,CACjBC,IAAI,CAAEC,SADW,CAAnB,CAGAC,MAAM,CAAC,iBACL,oCAAuBH,UAAvB,CADK,EAAD,CAAN,CAEEI,4BAFF,GAGD,CAPC,CAAF,CAQAL,EAAE,CAAC,uBAAD,CAA0B,UAAM,CAChC,GAAMC,CAAAA,UAAU,CAAG,EAAnB,CACAG,MAAM,CAAC,iBACL,oCAAuBH,UAAvB,CADK,EAAD,CAAN,CAEEI,4BAFF,GAGD,CALC,CAAF,CAMAL,EAAE,CAAC,qBAAD,CAAwB,UAAM,CAC9B,GAAMC,CAAAA,UAAU,CAAG,CACjBC,IAAI,CAAE,CACJI,GAAG,CAAE,KADD,CADW,CAAnB,CAKAF,MAAM,CAAC,iBACL,oCAAuBH,UAAvB,CADK,EAAD,CAAN,CAEEI,4BAFF,GAGD,CATC,CAAF,CAUAL,EAAE,CAAC,gDAAD,CAAmD,UAAM,CACzD,GAAMC,CAAAA,UAAU,CAAG,CACjBC,IAAI,CAAE,CACJJ,MAAM,CAAEJ,UADJ,CAEJa,SAAS,CAAE,2BAAMb,CAAAA,UAAN,EAFP,CADW,CAAnB,CAMAU,MAAM,CAAC,iBACL,oCAAuBH,UAAvB,CADK,EAAD,CAAN,CAEEI,4BAFF,GAGD,CAVC,CAAF,CAWAL,EAAE,CAAC,4BAAD,CAA+B,UAAM,CACrC,GAAMQ,CAAAA,QAAQ,CAAG,CACfN,IAAI,CAAE,CACJJ,MAAM,CAAEH,gBADJ,CADS,CAIfc,IAAI,CAAEf,UAJS,CAAjB,CAMA,oCAAuBc,QAAvB,EACD,CARC,CAAF,CASD,CA7CO,CAAR","sourcesContent":["import React from 'react';\n\nimport validateRouteConfigMap from '../validateRouteConfigMap';\nimport StackRouter from '../StackRouter';\n\nconst ListScreen = () => ;\n\nconst ProfileNavigator = () => ;\nProfileNavigator.router = StackRouter({\n list: {\n screen: ListScreen,\n },\n});\n\ndescribe('validateRouteConfigMap', () => {\n it('Fails on empty bare screen', () => {\n const invalidMap = {\n Home: undefined,\n };\n expect(() =>\n validateRouteConfigMap(invalidMap)\n ).toThrowErrorMatchingSnapshot();\n });\n it('Fails on empty config', () => {\n const invalidMap = {};\n expect(() =>\n validateRouteConfigMap(invalidMap)\n ).toThrowErrorMatchingSnapshot();\n });\n it('Fails on bad object', () => {\n const invalidMap = {\n Home: {\n foo: 'bar',\n },\n };\n expect(() =>\n validateRouteConfigMap(invalidMap)\n ).toThrowErrorMatchingSnapshot();\n });\n it('Fails if both screen and getScreen are defined', () => {\n const invalidMap = {\n Home: {\n screen: ListScreen,\n getScreen: () => ListScreen,\n },\n };\n expect(() =>\n validateRouteConfigMap(invalidMap)\n ).toThrowErrorMatchingSnapshot();\n });\n it('Succeeds on a valid config', () => {\n const validMap = {\n Home: {\n screen: ProfileNavigator,\n },\n Chat: ListScreen,\n };\n validateRouteConfigMap(validMap);\n });\n});\n"]}
+\ No newline at end of file
+diff --git a/node_modules/@react-navigation/core/lib/commonjs/views/SceneView.js b/node_modules/@react-navigation/core/lib/commonjs/views/SceneView.js
+index 8741bb3..0361bae 100644
+--- a/node_modules/@react-navigation/core/lib/commonjs/views/SceneView.js
++++ b/node_modules/@react-navigation/core/lib/commonjs/views/SceneView.js
+@@ -1,2 +1,2 @@
+-var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var _classCallCheck2=_interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));var _createClass2=_interopRequireDefault(require("@babel/runtime/helpers/createClass"));var _possibleConstructorReturn2=_interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));var _getPrototypeOf2=_interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));var _inherits2=_interopRequireDefault(require("@babel/runtime/helpers/inherits"));var _react=_interopRequireDefault(require("react"));var _NavigationContext=_interopRequireDefault(require("./NavigationContext"));var _jsxFileName="/Users/satya/Workspace/Callstack/react-navigation-core/src/views/SceneView.js";var SceneView=function(_React$PureComponent){(0,_inherits2.default)(SceneView,_React$PureComponent);function SceneView(){(0,_classCallCheck2.default)(this,SceneView);return(0,_possibleConstructorReturn2.default)(this,(0,_getPrototypeOf2.default)(SceneView).apply(this,arguments));}(0,_createClass2.default)(SceneView,[{key:"render",value:function render(){var _this$props=this.props,screenProps=_this$props.screenProps,Component=_this$props.component,navigation=_this$props.navigation;return _react.default.createElement(_NavigationContext.default.Provider,{value:navigation,__source:{fileName:_jsxFileName,lineNumber:8}},_react.default.createElement(Component,{screenProps:screenProps,navigation:navigation,__source:{fileName:_jsxFileName,lineNumber:9}}));}}]);return SceneView;}(_react.default.PureComponent);exports.default=SceneView;
++var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var _classCallCheck2=_interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));var _createClass2=_interopRequireDefault(require("@babel/runtime/helpers/createClass"));var _possibleConstructorReturn2=_interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));var _getPrototypeOf2=_interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));var _inherits2=_interopRequireDefault(require("@babel/runtime/helpers/inherits"));var _react=_interopRequireDefault(require("react"));var _NavigationContext=_interopRequireDefault(require("./NavigationContext"));var _jsxFileName="/Users/brentvatne/coding/react-navigation-core/src/views/SceneView.js";var SceneView=function(_React$PureComponent){(0,_inherits2.default)(SceneView,_React$PureComponent);function SceneView(){(0,_classCallCheck2.default)(this,SceneView);return(0,_possibleConstructorReturn2.default)(this,(0,_getPrototypeOf2.default)(SceneView).apply(this,arguments));}(0,_createClass2.default)(SceneView,[{key:"render",value:function render(){var _this$props=this.props,screenProps=_this$props.screenProps,Component=_this$props.component,navigation=_this$props.navigation;return _react.default.createElement(_NavigationContext.default.Provider,{value:navigation,__source:{fileName:_jsxFileName,lineNumber:8}},_react.default.createElement(Component,{screenProps:screenProps,navigation:navigation,__source:{fileName:_jsxFileName,lineNumber:9}}));}}]);return SceneView;}(_react.default.PureComponent);exports.default=SceneView;
+ //# sourceMappingURL=SceneView.js.map
+\ No newline at end of file
+diff --git a/node_modules/@react-navigation/core/lib/commonjs/views/SceneView.js.map b/node_modules/@react-navigation/core/lib/commonjs/views/SceneView.js.map
+index d42267f..1d66ec3 100644
+--- a/node_modules/@react-navigation/core/lib/commonjs/views/SceneView.js.map
++++ b/node_modules/@react-navigation/core/lib/commonjs/views/SceneView.js.map
+@@ -1 +1 @@
+-{"version":3,"sources":["SceneView.js"],"names":["SceneView","props","screenProps","Component","component","navigation","React","PureComponent"],"mappings":"6nBAAA,oDACA,8E,oGAEqBA,CAAAA,S,sVACV,iBACmD,KAAKC,KADxD,CACCC,WADD,aACCA,WADD,CACyBC,SADzB,aACcC,SADd,CACoCC,UADpC,aACoCA,UADpC,CAEP,MACE,8BAAC,0BAAD,CAAmB,QAAnB,EAA4B,KAAK,CAAEA,UAAnC,gDACE,6BAAC,SAAD,EAAW,WAAW,CAAEH,WAAxB,CAAqC,UAAU,CAAEG,UAAjD,gDADF,CADF,CAKD,C,uBARoCC,eAAMC,a","sourcesContent":["import React from 'react';\nimport NavigationContext from './NavigationContext';\n\nexport default class SceneView extends React.PureComponent {\n render() {\n const { screenProps, component: Component, navigation } = this.props;\n return (\n \n \n \n );\n }\n}\n"]}
+\ No newline at end of file
++{"version":3,"sources":["SceneView.js"],"names":["SceneView","props","screenProps","Component","component","navigation","React","PureComponent"],"mappings":"6nBAAA,oDACA,8E,4FAEqBA,CAAAA,S,sVACV,iBACmD,KAAKC,KADxD,CACCC,WADD,aACCA,WADD,CACyBC,SADzB,aACcC,SADd,CACoCC,UADpC,aACoCA,UADpC,CAEP,MACE,8BAAC,0BAAD,CAAmB,QAAnB,EAA4B,KAAK,CAAEA,UAAnC,gDACE,6BAAC,SAAD,EAAW,WAAW,CAAEH,WAAxB,CAAqC,UAAU,CAAEG,UAAjD,gDADF,CADF,CAKD,C,uBARoCC,eAAMC,a","sourcesContent":["import React from 'react';\nimport NavigationContext from './NavigationContext';\n\nexport default class SceneView extends React.PureComponent {\n render() {\n const { screenProps, component: Component, navigation } = this.props;\n return (\n \n \n \n );\n }\n}\n"]}
+\ No newline at end of file
+diff --git a/node_modules/@react-navigation/core/lib/commonjs/views/SwitchView/SwitchView.js b/node_modules/@react-navigation/core/lib/commonjs/views/SwitchView/SwitchView.js
+index cbf6bf2..a144eec 100644
+--- a/node_modules/@react-navigation/core/lib/commonjs/views/SwitchView/SwitchView.js
++++ b/node_modules/@react-navigation/core/lib/commonjs/views/SwitchView/SwitchView.js
+@@ -1,2 +1,2 @@
+-var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var _classCallCheck2=_interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));var _createClass2=_interopRequireDefault(require("@babel/runtime/helpers/createClass"));var _possibleConstructorReturn2=_interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));var _getPrototypeOf2=_interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));var _inherits2=_interopRequireDefault(require("@babel/runtime/helpers/inherits"));var _react=_interopRequireDefault(require("react"));var _SceneView=_interopRequireDefault(require("../SceneView"));var _jsxFileName="/Users/satya/Workspace/Callstack/react-navigation-core/src/views/SwitchView/SwitchView.js";var SwitchView=function(_React$Component){(0,_inherits2.default)(SwitchView,_React$Component);function SwitchView(){(0,_classCallCheck2.default)(this,SwitchView);return(0,_possibleConstructorReturn2.default)(this,(0,_getPrototypeOf2.default)(SwitchView).apply(this,arguments));}(0,_createClass2.default)(SwitchView,[{key:"render",value:function render(){var state=this.props.navigation.state;var activeKey=state.routes[state.index].key;var descriptor=this.props.descriptors[activeKey];var ChildComponent=descriptor.getComponent();return _react.default.createElement(_SceneView.default,{component:ChildComponent,navigation:descriptor.navigation,screenProps:this.props.screenProps,__source:{fileName:_jsxFileName,lineNumber:12}});}}]);return SwitchView;}(_react.default.Component);exports.default=SwitchView;
++var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var _classCallCheck2=_interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));var _createClass2=_interopRequireDefault(require("@babel/runtime/helpers/createClass"));var _possibleConstructorReturn2=_interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));var _getPrototypeOf2=_interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));var _inherits2=_interopRequireDefault(require("@babel/runtime/helpers/inherits"));var _react=_interopRequireDefault(require("react"));var _SceneView=_interopRequireDefault(require("../SceneView"));var _jsxFileName="/Users/brentvatne/coding/react-navigation-core/src/views/SwitchView/SwitchView.js";var SwitchView=function(_React$Component){(0,_inherits2.default)(SwitchView,_React$Component);function SwitchView(){(0,_classCallCheck2.default)(this,SwitchView);return(0,_possibleConstructorReturn2.default)(this,(0,_getPrototypeOf2.default)(SwitchView).apply(this,arguments));}(0,_createClass2.default)(SwitchView,[{key:"render",value:function render(){var state=this.props.navigation.state;var activeKey=state.routes[state.index].key;var descriptor=this.props.descriptors[activeKey];var ChildComponent=descriptor.getComponent();return _react.default.createElement(_SceneView.default,{component:ChildComponent,navigation:descriptor.navigation,screenProps:this.props.screenProps,__source:{fileName:_jsxFileName,lineNumber:12}});}}]);return SwitchView;}(_react.default.Component);exports.default=SwitchView;
+ //# sourceMappingURL=SwitchView.js.map
+\ No newline at end of file
+diff --git a/node_modules/@react-navigation/core/lib/commonjs/views/SwitchView/SwitchView.js.map b/node_modules/@react-navigation/core/lib/commonjs/views/SwitchView/SwitchView.js.map
+index e7fb56f..ec78d20 100644
+--- a/node_modules/@react-navigation/core/lib/commonjs/views/SwitchView/SwitchView.js.map
++++ b/node_modules/@react-navigation/core/lib/commonjs/views/SwitchView/SwitchView.js.map
+@@ -1 +1 @@
+-{"version":3,"sources":["SwitchView.js"],"names":["SwitchView","state","props","navigation","activeKey","routes","index","key","descriptor","descriptors","ChildComponent","getComponent","screenProps","React","Component"],"mappings":"6nBAAA,oDACA,+D,gHAEqBA,CAAAA,U,mVACV,IACCC,CAAAA,KADD,CACW,KAAKC,KAAL,CAAWC,UADtB,CACCF,KADD,CAEP,GAAMG,CAAAA,SAAS,CAAGH,KAAK,CAACI,MAAN,CAAaJ,KAAK,CAACK,KAAnB,EAA0BC,GAA5C,CACA,GAAMC,CAAAA,UAAU,CAAG,KAAKN,KAAL,CAAWO,WAAX,CAAuBL,SAAvB,CAAnB,CACA,GAAMM,CAAAA,cAAc,CAAGF,UAAU,CAACG,YAAX,EAAvB,CAEA,MACE,8BAAC,kBAAD,EACE,SAAS,CAAED,cADb,CAEE,UAAU,CAAEF,UAAU,CAACL,UAFzB,CAGE,WAAW,CAAE,KAAKD,KAAL,CAAWU,WAH1B,iDADF,CAOD,C,wBAdqCC,eAAMC,S","sourcesContent":["import React from 'react';\nimport SceneView from '../SceneView';\n\nexport default class SwitchView extends React.Component {\n render() {\n const { state } = this.props.navigation;\n const activeKey = state.routes[state.index].key;\n const descriptor = this.props.descriptors[activeKey];\n const ChildComponent = descriptor.getComponent();\n\n return (\n \n );\n }\n}\n"]}
+\ No newline at end of file
++{"version":3,"sources":["SwitchView.js"],"names":["SwitchView","state","props","navigation","activeKey","routes","index","key","descriptor","descriptors","ChildComponent","getComponent","screenProps","React","Component"],"mappings":"6nBAAA,oDACA,+D,wGAEqBA,CAAAA,U,mVACV,IACCC,CAAAA,KADD,CACW,KAAKC,KAAL,CAAWC,UADtB,CACCF,KADD,CAEP,GAAMG,CAAAA,SAAS,CAAGH,KAAK,CAACI,MAAN,CAAaJ,KAAK,CAACK,KAAnB,EAA0BC,GAA5C,CACA,GAAMC,CAAAA,UAAU,CAAG,KAAKN,KAAL,CAAWO,WAAX,CAAuBL,SAAvB,CAAnB,CACA,GAAMM,CAAAA,cAAc,CAAGF,UAAU,CAACG,YAAX,EAAvB,CAEA,MACE,8BAAC,kBAAD,EACE,SAAS,CAAED,cADb,CAEE,UAAU,CAAEF,UAAU,CAACL,UAFzB,CAGE,WAAW,CAAE,KAAKD,KAAL,CAAWU,WAH1B,iDADF,CAOD,C,wBAdqCC,eAAMC,S","sourcesContent":["import React from 'react';\nimport SceneView from '../SceneView';\n\nexport default class SwitchView extends React.Component {\n render() {\n const { state } = this.props.navigation;\n const activeKey = state.routes[state.index].key;\n const descriptor = this.props.descriptors[activeKey];\n const ChildComponent = descriptor.getComponent();\n\n return (\n \n );\n }\n}\n"]}
+\ No newline at end of file
+diff --git a/node_modules/@react-navigation/core/lib/commonjs/views/__tests__/NavigationEvents-test.js b/node_modules/@react-navigation/core/lib/commonjs/views/__tests__/NavigationEvents-test.js
+index 1371544..dff662c 100644
+--- a/node_modules/@react-navigation/core/lib/commonjs/views/__tests__/NavigationEvents-test.js
++++ b/node_modules/@react-navigation/core/lib/commonjs/views/__tests__/NavigationEvents-test.js
+@@ -1,2 +1,2 @@
+-var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _react=_interopRequireDefault(require("react"));var _reactTestRenderer=_interopRequireDefault(require("react-test-renderer"));var _NavigationEvents=_interopRequireDefault(require("../NavigationEvents"));var _NavigationContext=_interopRequireDefault(require("../NavigationContext"));var _jsxFileName="/Users/satya/Workspace/Callstack/react-navigation-core/src/views/__tests__/NavigationEvents-test.js";var createPropListener=function createPropListener(){return jest.fn();};var createEventListenersProp=function createEventListenersProp(){return{onWillFocus:createPropListener(),onDidFocus:createPropListener(),onWillBlur:createPropListener(),onDidBlur:createPropListener()};};var createTestNavigationAndHelpers=function createTestNavigationAndHelpers(){var NavigationListenersAPI=function(){var listeners={willFocus:[],didFocus:[],willBlur:[],didBlur:[]};return{add:function add(eventName,handler){listeners[eventName].push(handler);},remove:function remove(eventName,handler){listeners[eventName]=listeners[eventName].filter(function(h){return h!==handler;});},get:function get(eventName){return listeners[eventName];},call:function call(eventName){listeners[eventName].forEach(function(listener){return listener();});}};}();var navigation={addListener:jest.fn(function(eventName,handler){NavigationListenersAPI.add(eventName,handler);return{remove:function remove(){return NavigationListenersAPI.remove(eventName,handler);}};})};return{navigation:navigation,NavigationListenersAPI:NavigationListenersAPI};};describe('NavigationEvents',function(){it('add all listeners on mount and remove them on unmount, even without any event prop provided (see #5058)',function(){var _createTestNavigation=createTestNavigationAndHelpers(),navigation=_createTestNavigation.navigation,NavigationListenersAPI=_createTestNavigation.NavigationListenersAPI;var component=_reactTestRenderer.default.create(_react.default.createElement(_NavigationEvents.default,{navigation:navigation,__source:{fileName:_jsxFileName,lineNumber:63}}));expect(NavigationListenersAPI.get('willFocus').length).toBe(1);expect(NavigationListenersAPI.get('didFocus').length).toBe(1);expect(NavigationListenersAPI.get('willBlur').length).toBe(1);expect(NavigationListenersAPI.get('didBlur').length).toBe(1);component.unmount();expect(NavigationListenersAPI.get('willFocus').length).toBe(0);expect(NavigationListenersAPI.get('didFocus').length).toBe(0);expect(NavigationListenersAPI.get('willBlur').length).toBe(0);expect(NavigationListenersAPI.get('didBlur').length).toBe(0);});it('support context-provided navigation',function(){var _createTestNavigation2=createTestNavigationAndHelpers(),navigation=_createTestNavigation2.navigation,NavigationListenersAPI=_createTestNavigation2.NavigationListenersAPI;var component=_reactTestRenderer.default.create(_react.default.createElement(_NavigationContext.default.Provider,{value:navigation,__source:{fileName:_jsxFileName,lineNumber:83}},_react.default.createElement(_NavigationEvents.default,{__source:{fileName:_jsxFileName,lineNumber:84}})));expect(NavigationListenersAPI.get('willFocus').length).toBe(1);expect(NavigationListenersAPI.get('didFocus').length).toBe(1);expect(NavigationListenersAPI.get('willBlur').length).toBe(1);expect(NavigationListenersAPI.get('didBlur').length).toBe(1);component.unmount();expect(NavigationListenersAPI.get('willFocus').length).toBe(0);expect(NavigationListenersAPI.get('didFocus').length).toBe(0);expect(NavigationListenersAPI.get('willBlur').length).toBe(0);expect(NavigationListenersAPI.get('didBlur').length).toBe(0);});it('wire props listeners to navigation listeners',function(){var _createTestNavigation3=createTestNavigationAndHelpers(),navigation=_createTestNavigation3.navigation,NavigationListenersAPI=_createTestNavigation3.NavigationListenersAPI;var eventListenerProps=createEventListenersProp();_reactTestRenderer.default.create(_react.default.createElement(_NavigationEvents.default,(0,_extends2.default)({navigation:navigation},eventListenerProps,{__source:{fileName:_jsxFileName,lineNumber:108}})));var checkPropListenerIsCalled=function checkPropListenerIsCalled(eventName,propName){expect(eventListenerProps[propName]).toHaveBeenCalledTimes(0);NavigationListenersAPI.call(eventName);expect(eventListenerProps[propName]).toHaveBeenCalledTimes(1);};checkPropListenerIsCalled('willFocus','onWillFocus');checkPropListenerIsCalled('didFocus','onDidFocus');checkPropListenerIsCalled('willBlur','onWillBlur');checkPropListenerIsCalled('didBlur','onDidBlur');});it('wire latest props listener to navigation listeners on updates (support closure/arrow functions update)',function(){var _createTestNavigation4=createTestNavigationAndHelpers(),navigation=_createTestNavigation4.navigation,NavigationListenersAPI=_createTestNavigation4.NavigationListenersAPI;var component=_reactTestRenderer.default.create(_react.default.createElement(_NavigationEvents.default,(0,_extends2.default)({navigation:navigation},createEventListenersProp(),{__source:{fileName:_jsxFileName,lineNumber:130}})));component.update(_react.default.createElement(_NavigationEvents.default,{navigation:navigation,onWillBlur:function onWillBlur(){throw new Error('should not be called');},onDidFocus:function onDidFocus(){throw new Error('should not be called');},__source:{fileName:_jsxFileName,lineNumber:137}}));component.update(_react.default.createElement(_NavigationEvents.default,(0,_extends2.default)({navigation:navigation},createEventListenersProp(),{__source:{fileName:_jsxFileName,lineNumber:149}})));var latestEventListenerProps=createEventListenersProp();component.update(_react.default.createElement(_NavigationEvents.default,(0,_extends2.default)({navigation:navigation},latestEventListenerProps,{__source:{fileName:_jsxFileName,lineNumber:157}})));var checkLatestPropListenerCalled=function checkLatestPropListenerCalled(eventName,propName){expect(latestEventListenerProps[propName]).toHaveBeenCalledTimes(0);NavigationListenersAPI.call(eventName);expect(latestEventListenerProps[propName]).toHaveBeenCalledTimes(1);};checkLatestPropListenerCalled('willFocus','onWillFocus');checkLatestPropListenerCalled('didFocus','onDidFocus');checkLatestPropListenerCalled('willBlur','onWillBlur');checkLatestPropListenerCalled('didBlur','onDidBlur');});});
++var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _react=_interopRequireDefault(require("react"));var _reactTestRenderer=_interopRequireDefault(require("react-test-renderer"));var _NavigationEvents=_interopRequireDefault(require("../NavigationEvents"));var _NavigationContext=_interopRequireDefault(require("../NavigationContext"));var _jsxFileName="/Users/brentvatne/coding/react-navigation-core/src/views/__tests__/NavigationEvents-test.js";var createPropListener=function createPropListener(){return jest.fn();};var createEventListenersProp=function createEventListenersProp(){return{onWillFocus:createPropListener(),onDidFocus:createPropListener(),onWillBlur:createPropListener(),onDidBlur:createPropListener()};};var createTestNavigationAndHelpers=function createTestNavigationAndHelpers(){var NavigationListenersAPI=function(){var listeners={willFocus:[],didFocus:[],willBlur:[],didBlur:[]};return{add:function add(eventName,handler){listeners[eventName].push(handler);},remove:function remove(eventName,handler){listeners[eventName]=listeners[eventName].filter(function(h){return h!==handler;});},get:function get(eventName){return listeners[eventName];},call:function call(eventName){listeners[eventName].forEach(function(listener){return listener();});}};}();var navigation={addListener:jest.fn(function(eventName,handler){NavigationListenersAPI.add(eventName,handler);return{remove:function remove(){return NavigationListenersAPI.remove(eventName,handler);}};})};return{navigation:navigation,NavigationListenersAPI:NavigationListenersAPI};};describe('NavigationEvents',function(){it('add all listeners on mount and remove them on unmount, even without any event prop provided (see #5058)',function(){var _createTestNavigation=createTestNavigationAndHelpers(),navigation=_createTestNavigation.navigation,NavigationListenersAPI=_createTestNavigation.NavigationListenersAPI;var component=_reactTestRenderer.default.create(_react.default.createElement(_NavigationEvents.default,{navigation:navigation,__source:{fileName:_jsxFileName,lineNumber:63}}));expect(NavigationListenersAPI.get('willFocus').length).toBe(1);expect(NavigationListenersAPI.get('didFocus').length).toBe(1);expect(NavigationListenersAPI.get('willBlur').length).toBe(1);expect(NavigationListenersAPI.get('didBlur').length).toBe(1);component.unmount();expect(NavigationListenersAPI.get('willFocus').length).toBe(0);expect(NavigationListenersAPI.get('didFocus').length).toBe(0);expect(NavigationListenersAPI.get('willBlur').length).toBe(0);expect(NavigationListenersAPI.get('didBlur').length).toBe(0);});it('support context-provided navigation',function(){var _createTestNavigation2=createTestNavigationAndHelpers(),navigation=_createTestNavigation2.navigation,NavigationListenersAPI=_createTestNavigation2.NavigationListenersAPI;var component=_reactTestRenderer.default.create(_react.default.createElement(_NavigationContext.default.Provider,{value:navigation,__source:{fileName:_jsxFileName,lineNumber:83}},_react.default.createElement(_NavigationEvents.default,{__source:{fileName:_jsxFileName,lineNumber:84}})));expect(NavigationListenersAPI.get('willFocus').length).toBe(1);expect(NavigationListenersAPI.get('didFocus').length).toBe(1);expect(NavigationListenersAPI.get('willBlur').length).toBe(1);expect(NavigationListenersAPI.get('didBlur').length).toBe(1);component.unmount();expect(NavigationListenersAPI.get('willFocus').length).toBe(0);expect(NavigationListenersAPI.get('didFocus').length).toBe(0);expect(NavigationListenersAPI.get('willBlur').length).toBe(0);expect(NavigationListenersAPI.get('didBlur').length).toBe(0);});it('wire props listeners to navigation listeners',function(){var _createTestNavigation3=createTestNavigationAndHelpers(),navigation=_createTestNavigation3.navigation,NavigationListenersAPI=_createTestNavigation3.NavigationListenersAPI;var eventListenerProps=createEventListenersProp();_reactTestRenderer.default.create(_react.default.createElement(_NavigationEvents.default,(0,_extends2.default)({navigation:navigation},eventListenerProps,{__source:{fileName:_jsxFileName,lineNumber:108}})));var checkPropListenerIsCalled=function checkPropListenerIsCalled(eventName,propName){expect(eventListenerProps[propName]).toHaveBeenCalledTimes(0);NavigationListenersAPI.call(eventName);expect(eventListenerProps[propName]).toHaveBeenCalledTimes(1);};checkPropListenerIsCalled('willFocus','onWillFocus');checkPropListenerIsCalled('didFocus','onDidFocus');checkPropListenerIsCalled('willBlur','onWillBlur');checkPropListenerIsCalled('didBlur','onDidBlur');});it('wire latest props listener to navigation listeners on updates (support closure/arrow functions update)',function(){var _createTestNavigation4=createTestNavigationAndHelpers(),navigation=_createTestNavigation4.navigation,NavigationListenersAPI=_createTestNavigation4.NavigationListenersAPI;var component=_reactTestRenderer.default.create(_react.default.createElement(_NavigationEvents.default,(0,_extends2.default)({navigation:navigation},createEventListenersProp(),{__source:{fileName:_jsxFileName,lineNumber:130}})));component.update(_react.default.createElement(_NavigationEvents.default,{navigation:navigation,onWillBlur:function onWillBlur(){throw new Error('should not be called');},onDidFocus:function onDidFocus(){throw new Error('should not be called');},__source:{fileName:_jsxFileName,lineNumber:137}}));component.update(_react.default.createElement(_NavigationEvents.default,(0,_extends2.default)({navigation:navigation},createEventListenersProp(),{__source:{fileName:_jsxFileName,lineNumber:149}})));var latestEventListenerProps=createEventListenersProp();component.update(_react.default.createElement(_NavigationEvents.default,(0,_extends2.default)({navigation:navigation},latestEventListenerProps,{__source:{fileName:_jsxFileName,lineNumber:157}})));var checkLatestPropListenerCalled=function checkLatestPropListenerCalled(eventName,propName){expect(latestEventListenerProps[propName]).toHaveBeenCalledTimes(0);NavigationListenersAPI.call(eventName);expect(latestEventListenerProps[propName]).toHaveBeenCalledTimes(1);};checkLatestPropListenerCalled('willFocus','onWillFocus');checkLatestPropListenerCalled('didFocus','onDidFocus');checkLatestPropListenerCalled('willBlur','onWillBlur');checkLatestPropListenerCalled('didBlur','onDidBlur');});});
+ //# sourceMappingURL=NavigationEvents-test.js.map
+\ No newline at end of file
+diff --git a/node_modules/@react-navigation/core/lib/commonjs/views/__tests__/NavigationEvents-test.js.map b/node_modules/@react-navigation/core/lib/commonjs/views/__tests__/NavigationEvents-test.js.map
+index 384df55..2399c7d 100644
+--- a/node_modules/@react-navigation/core/lib/commonjs/views/__tests__/NavigationEvents-test.js.map
++++ b/node_modules/@react-navigation/core/lib/commonjs/views/__tests__/NavigationEvents-test.js.map
+@@ -1 +1 @@
+-{"version":3,"sources":["NavigationEvents-test.js"],"names":["createPropListener","jest","fn","createEventListenersProp","onWillFocus","onDidFocus","onWillBlur","onDidBlur","createTestNavigationAndHelpers","NavigationListenersAPI","listeners","willFocus","didFocus","willBlur","didBlur","add","eventName","handler","push","remove","filter","h","get","call","forEach","listener","navigation","addListener","describe","it","component","renderer","create","expect","length","toBe","unmount","eventListenerProps","checkPropListenerIsCalled","propName","toHaveBeenCalledTimes","update","Error","latestEventListenerProps","checkLatestPropListenerCalled"],"mappings":"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","sourcesContent":["import React from 'react';\nimport renderer from 'react-test-renderer';\nimport NavigationEvents from '../NavigationEvents';\nimport NavigationContext from '../NavigationContext';\n\nconst createPropListener = () => jest.fn();\n\n// An easy way to create the 4 listeners prop\nconst createEventListenersProp = () => ({\n onWillFocus: createPropListener(),\n onDidFocus: createPropListener(),\n onWillBlur: createPropListener(),\n onDidBlur: createPropListener(),\n});\n\nconst createTestNavigationAndHelpers = () => {\n const NavigationListenersAPI = (() => {\n let listeners = {\n willFocus: [],\n didFocus: [],\n willBlur: [],\n didBlur: [],\n };\n return {\n add: (eventName, handler) => {\n listeners[eventName].push(handler);\n },\n remove: (eventName, handler) => {\n listeners[eventName] = listeners[eventName].filter(h => h !== handler);\n },\n get: eventName => {\n return listeners[eventName];\n },\n call: eventName => {\n listeners[eventName].forEach(listener => listener());\n },\n };\n })();\n\n const navigation = {\n addListener: jest.fn((eventName, handler) => {\n NavigationListenersAPI.add(eventName, handler);\n return {\n remove: () => NavigationListenersAPI.remove(eventName, handler),\n };\n }),\n };\n\n return {\n navigation,\n NavigationListenersAPI,\n };\n};\n\ndescribe('NavigationEvents', () => {\n it('add all listeners on mount and remove them on unmount, even without any event prop provided (see #5058)', () => {\n const {\n navigation,\n NavigationListenersAPI,\n } = createTestNavigationAndHelpers();\n\n const component = renderer.create(\n \n );\n expect(NavigationListenersAPI.get('willFocus').length).toBe(1);\n expect(NavigationListenersAPI.get('didFocus').length).toBe(1);\n expect(NavigationListenersAPI.get('willBlur').length).toBe(1);\n expect(NavigationListenersAPI.get('didBlur').length).toBe(1);\n\n component.unmount();\n expect(NavigationListenersAPI.get('willFocus').length).toBe(0);\n expect(NavigationListenersAPI.get('didFocus').length).toBe(0);\n expect(NavigationListenersAPI.get('willBlur').length).toBe(0);\n expect(NavigationListenersAPI.get('didBlur').length).toBe(0);\n });\n\n it('support context-provided navigation', () => {\n const {\n navigation,\n NavigationListenersAPI,\n } = createTestNavigationAndHelpers();\n const component = renderer.create(\n \n \n \n );\n\n expect(NavigationListenersAPI.get('willFocus').length).toBe(1);\n expect(NavigationListenersAPI.get('didFocus').length).toBe(1);\n expect(NavigationListenersAPI.get('willBlur').length).toBe(1);\n expect(NavigationListenersAPI.get('didBlur').length).toBe(1);\n\n component.unmount();\n expect(NavigationListenersAPI.get('willFocus').length).toBe(0);\n expect(NavigationListenersAPI.get('didFocus').length).toBe(0);\n expect(NavigationListenersAPI.get('willBlur').length).toBe(0);\n expect(NavigationListenersAPI.get('didBlur').length).toBe(0);\n });\n\n it('wire props listeners to navigation listeners', () => {\n const {\n navigation,\n NavigationListenersAPI,\n } = createTestNavigationAndHelpers();\n\n const eventListenerProps = createEventListenersProp();\n renderer.create(\n \n );\n\n const checkPropListenerIsCalled = (eventName, propName) => {\n expect(eventListenerProps[propName]).toHaveBeenCalledTimes(0);\n NavigationListenersAPI.call(eventName);\n expect(eventListenerProps[propName]).toHaveBeenCalledTimes(1);\n };\n\n checkPropListenerIsCalled('willFocus', 'onWillFocus');\n checkPropListenerIsCalled('didFocus', 'onDidFocus');\n checkPropListenerIsCalled('willBlur', 'onWillBlur');\n checkPropListenerIsCalled('didBlur', 'onDidBlur');\n });\n\n it('wire latest props listener to navigation listeners on updates (support closure/arrow functions update)', () => {\n const {\n navigation,\n NavigationListenersAPI,\n } = createTestNavigationAndHelpers();\n\n const component = renderer.create(\n \n );\n\n component.update(\n {\n throw new Error('should not be called');\n }}\n onDidFocus={() => {\n throw new Error('should not be called');\n }}\n />\n );\n\n component.update(\n \n );\n\n const latestEventListenerProps = createEventListenersProp();\n component.update(\n \n );\n\n const checkLatestPropListenerCalled = (eventName, propName) => {\n expect(latestEventListenerProps[propName]).toHaveBeenCalledTimes(0);\n NavigationListenersAPI.call(eventName);\n expect(latestEventListenerProps[propName]).toHaveBeenCalledTimes(1);\n };\n\n checkLatestPropListenerCalled('willFocus', 'onWillFocus');\n checkLatestPropListenerCalled('didFocus', 'onDidFocus');\n checkLatestPropListenerCalled('willBlur', 'onWillBlur');\n checkLatestPropListenerCalled('didBlur', 'onDidBlur');\n });\n});\n"]}
+\ No newline at end of file
++{"version":3,"sources":["NavigationEvents-test.js"],"names":["createPropListener","jest","fn","createEventListenersProp","onWillFocus","onDidFocus","onWillBlur","onDidBlur","createTestNavigationAndHelpers","NavigationListenersAPI","listeners","willFocus","didFocus","willBlur","didBlur","add","eventName","handler","push","remove","filter","h","get","call","forEach","listener","navigation","addListener","describe","it","component","renderer","create","expect","length","toBe","unmount","eventListenerProps","checkPropListenerIsCalled","propName","toHaveBeenCalledTimes","update","Error","latestEventListenerProps","checkLatestPropListenerCalled"],"mappings":"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","sourcesContent":["import React from 'react';\nimport renderer from 'react-test-renderer';\nimport NavigationEvents from '../NavigationEvents';\nimport NavigationContext from '../NavigationContext';\n\nconst createPropListener = () => jest.fn();\n\n// An easy way to create the 4 listeners prop\nconst createEventListenersProp = () => ({\n onWillFocus: createPropListener(),\n onDidFocus: createPropListener(),\n onWillBlur: createPropListener(),\n onDidBlur: createPropListener(),\n});\n\nconst createTestNavigationAndHelpers = () => {\n const NavigationListenersAPI = (() => {\n let listeners = {\n willFocus: [],\n didFocus: [],\n willBlur: [],\n didBlur: [],\n };\n return {\n add: (eventName, handler) => {\n listeners[eventName].push(handler);\n },\n remove: (eventName, handler) => {\n listeners[eventName] = listeners[eventName].filter(h => h !== handler);\n },\n get: eventName => {\n return listeners[eventName];\n },\n call: eventName => {\n listeners[eventName].forEach(listener => listener());\n },\n };\n })();\n\n const navigation = {\n addListener: jest.fn((eventName, handler) => {\n NavigationListenersAPI.add(eventName, handler);\n return {\n remove: () => NavigationListenersAPI.remove(eventName, handler),\n };\n }),\n };\n\n return {\n navigation,\n NavigationListenersAPI,\n };\n};\n\ndescribe('NavigationEvents', () => {\n it('add all listeners on mount and remove them on unmount, even without any event prop provided (see #5058)', () => {\n const {\n navigation,\n NavigationListenersAPI,\n } = createTestNavigationAndHelpers();\n\n const component = renderer.create(\n \n );\n expect(NavigationListenersAPI.get('willFocus').length).toBe(1);\n expect(NavigationListenersAPI.get('didFocus').length).toBe(1);\n expect(NavigationListenersAPI.get('willBlur').length).toBe(1);\n expect(NavigationListenersAPI.get('didBlur').length).toBe(1);\n\n component.unmount();\n expect(NavigationListenersAPI.get('willFocus').length).toBe(0);\n expect(NavigationListenersAPI.get('didFocus').length).toBe(0);\n expect(NavigationListenersAPI.get('willBlur').length).toBe(0);\n expect(NavigationListenersAPI.get('didBlur').length).toBe(0);\n });\n\n it('support context-provided navigation', () => {\n const {\n navigation,\n NavigationListenersAPI,\n } = createTestNavigationAndHelpers();\n const component = renderer.create(\n \n \n \n );\n\n expect(NavigationListenersAPI.get('willFocus').length).toBe(1);\n expect(NavigationListenersAPI.get('didFocus').length).toBe(1);\n expect(NavigationListenersAPI.get('willBlur').length).toBe(1);\n expect(NavigationListenersAPI.get('didBlur').length).toBe(1);\n\n component.unmount();\n expect(NavigationListenersAPI.get('willFocus').length).toBe(0);\n expect(NavigationListenersAPI.get('didFocus').length).toBe(0);\n expect(NavigationListenersAPI.get('willBlur').length).toBe(0);\n expect(NavigationListenersAPI.get('didBlur').length).toBe(0);\n });\n\n it('wire props listeners to navigation listeners', () => {\n const {\n navigation,\n NavigationListenersAPI,\n } = createTestNavigationAndHelpers();\n\n const eventListenerProps = createEventListenersProp();\n renderer.create(\n \n );\n\n const checkPropListenerIsCalled = (eventName, propName) => {\n expect(eventListenerProps[propName]).toHaveBeenCalledTimes(0);\n NavigationListenersAPI.call(eventName);\n expect(eventListenerProps[propName]).toHaveBeenCalledTimes(1);\n };\n\n checkPropListenerIsCalled('willFocus', 'onWillFocus');\n checkPropListenerIsCalled('didFocus', 'onDidFocus');\n checkPropListenerIsCalled('willBlur', 'onWillBlur');\n checkPropListenerIsCalled('didBlur', 'onDidBlur');\n });\n\n it('wire latest props listener to navigation listeners on updates (support closure/arrow functions update)', () => {\n const {\n navigation,\n NavigationListenersAPI,\n } = createTestNavigationAndHelpers();\n\n const component = renderer.create(\n \n );\n\n component.update(\n {\n throw new Error('should not be called');\n }}\n onDidFocus={() => {\n throw new Error('should not be called');\n }}\n />\n );\n\n component.update(\n \n );\n\n const latestEventListenerProps = createEventListenersProp();\n component.update(\n \n );\n\n const checkLatestPropListenerCalled = (eventName, propName) => {\n expect(latestEventListenerProps[propName]).toHaveBeenCalledTimes(0);\n NavigationListenersAPI.call(eventName);\n expect(latestEventListenerProps[propName]).toHaveBeenCalledTimes(1);\n };\n\n checkLatestPropListenerCalled('willFocus', 'onWillFocus');\n checkLatestPropListenerCalled('didFocus', 'onDidFocus');\n checkLatestPropListenerCalled('willBlur', 'onWillBlur');\n checkLatestPropListenerCalled('didBlur', 'onDidBlur');\n });\n});\n"]}
+\ No newline at end of file
+diff --git a/node_modules/@react-navigation/core/lib/commonjs/views/withNavigation.js b/node_modules/@react-navigation/core/lib/commonjs/views/withNavigation.js
+index f501758..a4a917d 100644
+--- a/node_modules/@react-navigation/core/lib/commonjs/views/withNavigation.js
++++ b/node_modules/@react-navigation/core/lib/commonjs/views/withNavigation.js
+@@ -1,2 +1,2 @@
+-var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.default=withNavigation;var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _classCallCheck2=_interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));var _createClass2=_interopRequireDefault(require("@babel/runtime/helpers/createClass"));var _possibleConstructorReturn2=_interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));var _getPrototypeOf2=_interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));var _inherits2=_interopRequireDefault(require("@babel/runtime/helpers/inherits"));var _react=_interopRequireDefault(require("react"));var _hoistNonReactStatics=_interopRequireDefault(require("hoist-non-react-statics"));var _invariant=_interopRequireDefault(require("../utils/invariant"));var _NavigationContext=_interopRequireDefault(require("./NavigationContext"));var _jsxFileName="/Users/satya/Workspace/Callstack/react-navigation-core/src/views/withNavigation.js";function withNavigation(Component){var config=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{forwardRef:true};var ComponentWithNavigation=function(_React$Component){(0,_inherits2.default)(ComponentWithNavigation,_React$Component);function ComponentWithNavigation(){(0,_classCallCheck2.default)(this,ComponentWithNavigation);return(0,_possibleConstructorReturn2.default)(this,(0,_getPrototypeOf2.default)(ComponentWithNavigation).apply(this,arguments));}(0,_createClass2.default)(ComponentWithNavigation,[{key:"render",value:function render(){var _this=this;var navigationProp=this.props.navigation;return _react.default.createElement(_NavigationContext.default.Consumer,{__source:{fileName:_jsxFileName,lineNumber:17}},function(navigationContext){var navigation=navigationProp||navigationContext;(0,_invariant.default)(!!navigation,'withNavigation can only be used on a view hierarchy of a navigator. The wrapped component is unable to get access to navigation from props or context.');return _react.default.createElement(Component,(0,_extends2.default)({},_this.props,{navigation:navigation,ref:config.forwardRef?_this.props.onRef:undefined,__source:{fileName:_jsxFileName,lineNumber:25}}));});}}]);return ComponentWithNavigation;}(_react.default.Component);ComponentWithNavigation.displayName="withNavigation("+(Component.displayName||Component.name)+")";return(0,_hoistNonReactStatics.default)(ComponentWithNavigation,Component);}
++var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.default=withNavigation;var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _classCallCheck2=_interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));var _createClass2=_interopRequireDefault(require("@babel/runtime/helpers/createClass"));var _possibleConstructorReturn2=_interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));var _getPrototypeOf2=_interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));var _inherits2=_interopRequireDefault(require("@babel/runtime/helpers/inherits"));var _react=_interopRequireDefault(require("react"));var _hoistNonReactStatics=_interopRequireDefault(require("hoist-non-react-statics"));var _invariant=_interopRequireDefault(require("../utils/invariant"));var _NavigationContext=_interopRequireDefault(require("./NavigationContext"));var _jsxFileName="/Users/brentvatne/coding/react-navigation-core/src/views/withNavigation.js";function withNavigation(Component){var config=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{forwardRef:true};var ComponentWithNavigation=function(_React$Component){(0,_inherits2.default)(ComponentWithNavigation,_React$Component);function ComponentWithNavigation(){(0,_classCallCheck2.default)(this,ComponentWithNavigation);return(0,_possibleConstructorReturn2.default)(this,(0,_getPrototypeOf2.default)(ComponentWithNavigation).apply(this,arguments));}(0,_createClass2.default)(ComponentWithNavigation,[{key:"render",value:function render(){var _this=this;var navigationProp=this.props.navigation;return _react.default.createElement(_NavigationContext.default.Consumer,{__source:{fileName:_jsxFileName,lineNumber:17}},function(navigationContext){var navigation=navigationProp||navigationContext;(0,_invariant.default)(!!navigation,'withNavigation can only be used on a view hierarchy of a navigator. The wrapped component is unable to get access to navigation from props or context.');return _react.default.createElement(Component,(0,_extends2.default)({},_this.props,{navigation:navigation,ref:config.forwardRef?_this.props.onRef:undefined,__source:{fileName:_jsxFileName,lineNumber:25}}));});}}]);return ComponentWithNavigation;}(_react.default.Component);ComponentWithNavigation.displayName="withNavigation("+(Component.displayName||Component.name)+")";return(0,_hoistNonReactStatics.default)(ComponentWithNavigation,Component);}
+ //# sourceMappingURL=withNavigation.js.map
+\ No newline at end of file
+diff --git a/node_modules/@react-navigation/core/lib/commonjs/views/withNavigation.js.map b/node_modules/@react-navigation/core/lib/commonjs/views/withNavigation.js.map
+index 57d61d4..32569cd 100644
+--- a/node_modules/@react-navigation/core/lib/commonjs/views/withNavigation.js.map
++++ b/node_modules/@react-navigation/core/lib/commonjs/views/withNavigation.js.map
+@@ -1 +1 @@
+-{"version":3,"sources":["withNavigation.js"],"names":["withNavigation","Component","config","forwardRef","ComponentWithNavigation","navigationProp","props","navigation","navigationContext","onRef","undefined","React","displayName","name"],"mappings":"qtBAAA,oDACA,qFACA,qEACA,8E,sGAEe,QAASA,CAAAA,cAAT,CACbC,SADa,CAGb,IADAC,CAAAA,MACA,2DADS,CAAEC,UAAU,CAAE,IAAd,CACT,IACMC,CAAAA,uBADN,oZAKW,gBACP,GAAMC,CAAAA,cAAc,CAAG,KAAKC,KAAL,CAAWC,UAAlC,CACA,MACE,8BAAC,0BAAD,CAAmB,QAAnB,kDACG,SAAAC,iBAAiB,CAAI,CACpB,GAAMD,CAAAA,UAAU,CAAGF,cAAc,EAAIG,iBAArC,CACA,uBACE,CAAC,CAACD,UADJ,CAEE,wJAFF,EAIA,MACE,8BAAC,SAAD,0BACM,KAAI,CAACD,KADX,EAEE,UAAU,CAAEC,UAFd,CAGE,GAAG,CAAEL,MAAM,CAACC,UAAP,CAAoB,KAAI,CAACG,KAAL,CAAWG,KAA/B,CAAuCC,SAH9C,kDADF,CAOD,CAdH,CADF,CAkBD,CAzBH,qCACsCC,eAAMV,SAD5C,EACMG,uBADN,CAESQ,WAFT,oBAEyCX,SAAS,CAACW,WAAV,EACrCX,SAAS,CAACY,IAHd,MA4BA,MAAO,kCAAaT,uBAAb,CAAsCH,SAAtC,CAAP,CACD","sourcesContent":["import React from 'react';\nimport hoistStatics from 'hoist-non-react-statics';\nimport invariant from '../utils/invariant';\nimport NavigationContext from './NavigationContext';\n\nexport default function withNavigation(\n Component,\n config = { forwardRef: true }\n) {\n class ComponentWithNavigation extends React.Component {\n static displayName = `withNavigation(${Component.displayName ||\n Component.name})`;\n\n render() {\n const navigationProp = this.props.navigation;\n return (\n \n {navigationContext => {\n const navigation = navigationProp || navigationContext;\n invariant(\n !!navigation,\n 'withNavigation can only be used on a view hierarchy of a navigator. The wrapped component is unable to get access to navigation from props or context.'\n );\n return (\n \n );\n }}\n \n );\n }\n }\n\n return hoistStatics(ComponentWithNavigation, Component);\n}\n"]}
+\ No newline at end of file
++{"version":3,"sources":["withNavigation.js"],"names":["withNavigation","Component","config","forwardRef","ComponentWithNavigation","navigationProp","props","navigation","navigationContext","onRef","undefined","React","displayName","name"],"mappings":"qtBAAA,oDACA,qFACA,qEACA,8E,8FAEe,QAASA,CAAAA,cAAT,CACbC,SADa,CAGb,IADAC,CAAAA,MACA,2DADS,CAAEC,UAAU,CAAE,IAAd,CACT,IACMC,CAAAA,uBADN,oZAKW,gBACP,GAAMC,CAAAA,cAAc,CAAG,KAAKC,KAAL,CAAWC,UAAlC,CACA,MACE,8BAAC,0BAAD,CAAmB,QAAnB,kDACG,SAAAC,iBAAiB,CAAI,CACpB,GAAMD,CAAAA,UAAU,CAAGF,cAAc,EAAIG,iBAArC,CACA,uBACE,CAAC,CAACD,UADJ,CAEE,wJAFF,EAIA,MACE,8BAAC,SAAD,0BACM,KAAI,CAACD,KADX,EAEE,UAAU,CAAEC,UAFd,CAGE,GAAG,CAAEL,MAAM,CAACC,UAAP,CAAoB,KAAI,CAACG,KAAL,CAAWG,KAA/B,CAAuCC,SAH9C,kDADF,CAOD,CAdH,CADF,CAkBD,CAzBH,qCACsCC,eAAMV,SAD5C,EACMG,uBADN,CAESQ,WAFT,oBAEyCX,SAAS,CAACW,WAAV,EACrCX,SAAS,CAACY,IAHd,MA4BA,MAAO,kCAAaT,uBAAb,CAAsCH,SAAtC,CAAP,CACD","sourcesContent":["import React from 'react';\nimport hoistStatics from 'hoist-non-react-statics';\nimport invariant from '../utils/invariant';\nimport NavigationContext from './NavigationContext';\n\nexport default function withNavigation(\n Component,\n config = { forwardRef: true }\n) {\n class ComponentWithNavigation extends React.Component {\n static displayName = `withNavigation(${Component.displayName ||\n Component.name})`;\n\n render() {\n const navigationProp = this.props.navigation;\n return (\n \n {navigationContext => {\n const navigation = navigationProp || navigationContext;\n invariant(\n !!navigation,\n 'withNavigation can only be used on a view hierarchy of a navigator. The wrapped component is unable to get access to navigation from props or context.'\n );\n return (\n \n );\n }}\n \n );\n }\n }\n\n return hoistStatics(ComponentWithNavigation, Component);\n}\n"]}
+\ No newline at end of file
+diff --git a/node_modules/@react-navigation/core/lib/commonjs/views/withNavigationFocus.js b/node_modules/@react-navigation/core/lib/commonjs/views/withNavigationFocus.js
+index 8a45c7d..4ac73ca 100644
+--- a/node_modules/@react-navigation/core/lib/commonjs/views/withNavigationFocus.js
++++ b/node_modules/@react-navigation/core/lib/commonjs/views/withNavigationFocus.js
+@@ -1,2 +1,2 @@
+-var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.default=withNavigationFocus;var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _classCallCheck2=_interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));var _createClass2=_interopRequireDefault(require("@babel/runtime/helpers/createClass"));var _possibleConstructorReturn2=_interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));var _getPrototypeOf2=_interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));var _inherits2=_interopRequireDefault(require("@babel/runtime/helpers/inherits"));var _react=_interopRequireDefault(require("react"));var _hoistNonReactStatics=_interopRequireDefault(require("hoist-non-react-statics"));var _withNavigation=_interopRequireDefault(require("./withNavigation"));var _jsxFileName="/Users/satya/Workspace/Callstack/react-navigation-core/src/views/withNavigationFocus.js";function withNavigationFocus(Component){var ComponentWithNavigationFocus=function(_React$Component){(0,_inherits2.default)(ComponentWithNavigationFocus,_React$Component);function ComponentWithNavigationFocus(props){var _this;(0,_classCallCheck2.default)(this,ComponentWithNavigationFocus);_this=(0,_possibleConstructorReturn2.default)(this,(0,_getPrototypeOf2.default)(ComponentWithNavigationFocus).call(this,props));_this.subscriptions=[props.navigation.addListener('didFocus',function(){return _this.setState({isFocused:true});}),props.navigation.addListener('willBlur',function(){return _this.setState({isFocused:false});})];_this.state={isFocused:props.navigation?props.navigation.isFocused():false};return _this;}(0,_createClass2.default)(ComponentWithNavigationFocus,[{key:"componentWillUnmount",value:function componentWillUnmount(){this.subscriptions.forEach(function(sub){return sub.remove();});}},{key:"render",value:function render(){return _react.default.createElement(Component,(0,_extends2.default)({},this.props,{isFocused:this.state.isFocused,ref:this.props.onRef,__source:{fileName:_jsxFileName,lineNumber:33}}));}}]);return ComponentWithNavigationFocus;}(_react.default.Component);ComponentWithNavigationFocus.displayName="withNavigationFocus("+(Component.displayName||Component.name)+")";return(0,_hoistNonReactStatics.default)((0,_withNavigation.default)(ComponentWithNavigationFocus,{forwardRef:false}),Component);}
++var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.default=withNavigationFocus;var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _classCallCheck2=_interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));var _createClass2=_interopRequireDefault(require("@babel/runtime/helpers/createClass"));var _possibleConstructorReturn2=_interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));var _getPrototypeOf2=_interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));var _inherits2=_interopRequireDefault(require("@babel/runtime/helpers/inherits"));var _react=_interopRequireDefault(require("react"));var _hoistNonReactStatics=_interopRequireDefault(require("hoist-non-react-statics"));var _withNavigation=_interopRequireDefault(require("./withNavigation"));var _jsxFileName="/Users/brentvatne/coding/react-navigation-core/src/views/withNavigationFocus.js";function withNavigationFocus(Component){var ComponentWithNavigationFocus=function(_React$Component){(0,_inherits2.default)(ComponentWithNavigationFocus,_React$Component);function ComponentWithNavigationFocus(props){var _this;(0,_classCallCheck2.default)(this,ComponentWithNavigationFocus);_this=(0,_possibleConstructorReturn2.default)(this,(0,_getPrototypeOf2.default)(ComponentWithNavigationFocus).call(this,props));_this.subscriptions=[props.navigation.addListener('didFocus',function(){return _this.setState({isFocused:true});}),props.navigation.addListener('willBlur',function(){return _this.setState({isFocused:false});})];_this.state={isFocused:props.navigation?props.navigation.isFocused():false};return _this;}(0,_createClass2.default)(ComponentWithNavigationFocus,[{key:"componentWillUnmount",value:function componentWillUnmount(){this.subscriptions.forEach(function(sub){return sub.remove();});}},{key:"render",value:function render(){return _react.default.createElement(Component,(0,_extends2.default)({},this.props,{isFocused:this.state.isFocused,ref:this.props.onRef,__source:{fileName:_jsxFileName,lineNumber:33}}));}}]);return ComponentWithNavigationFocus;}(_react.default.Component);ComponentWithNavigationFocus.displayName="withNavigationFocus("+(Component.displayName||Component.name)+")";return(0,_hoistNonReactStatics.default)((0,_withNavigation.default)(ComponentWithNavigationFocus,{forwardRef:false}),Component);}
+ //# sourceMappingURL=withNavigationFocus.js.map
+\ No newline at end of file
+diff --git a/node_modules/@react-navigation/core/lib/commonjs/views/withNavigationFocus.js.map b/node_modules/@react-navigation/core/lib/commonjs/views/withNavigationFocus.js.map
+index e1d77bd..92b70da 100644
+--- a/node_modules/@react-navigation/core/lib/commonjs/views/withNavigationFocus.js.map
++++ b/node_modules/@react-navigation/core/lib/commonjs/views/withNavigationFocus.js.map
+@@ -1 +1 @@
+-{"version":3,"sources":["withNavigationFocus.js"],"names":["withNavigationFocus","Component","ComponentWithNavigationFocus","props","subscriptions","navigation","addListener","setState","isFocused","state","forEach","sub","remove","onRef","React","displayName","name","forwardRef"],"mappings":"0tBAAA,oDACA,qFACA,wE,2GAEe,QAASA,CAAAA,mBAAT,CAA6BC,SAA7B,CAAwC,IAC/CC,CAAAA,4BAD+C,kGAKnD,sCAAYC,KAAZ,CAAmB,2EACjB,wHAAMA,KAAN,GAEA,MAAKC,aAAL,CAAqB,CACnBD,KAAK,CAACE,UAAN,CAAiBC,WAAjB,CAA6B,UAA7B,CAAyC,iBACvC,OAAKC,QAAL,CAAc,CAAEC,SAAS,CAAE,IAAb,CAAd,CADuC,EAAzC,CADmB,CAInBL,KAAK,CAACE,UAAN,CAAiBC,WAAjB,CAA6B,UAA7B,CAAyC,iBACvC,OAAKC,QAAL,CAAc,CAAEC,SAAS,CAAE,KAAb,CAAd,CADuC,EAAzC,CAJmB,CAArB,CASA,MAAKC,KAAL,CAAa,CACXD,SAAS,CAAEL,KAAK,CAACE,UAAN,CAAmBF,KAAK,CAACE,UAAN,CAAiBG,SAAjB,EAAnB,CAAkD,KADlD,CAAb,CAZiB,aAelB,CApBkD,yHAsB5B,CACrB,KAAKJ,aAAL,CAAmBM,OAAnB,CAA2B,SAAAC,GAAG,QAAIA,CAAAA,GAAG,CAACC,MAAJ,EAAJ,EAA9B,EACD,CAxBkD,uCA0B1C,CACP,MACE,8BAAC,SAAD,0BACM,KAAKT,KADX,EAEE,SAAS,CAAE,KAAKM,KAAL,CAAWD,SAFxB,CAGE,GAAG,CAAE,KAAKL,KAAL,CAAWU,KAHlB,kDADF,CAOD,CAlCkD,0CACVC,eAAMb,SADI,EAC/CC,4BAD+C,CAE5Ca,WAF4C,yBAEPd,SAAS,CAACc,WAAV,EAC1Cd,SAAS,CAACe,IAHuC,MAqCrD,MAAO,kCACL,4BAAed,4BAAf,CAA6C,CAAEe,UAAU,CAAE,KAAd,CAA7C,CADK,CAELhB,SAFK,CAAP,CAID","sourcesContent":["import React from 'react';\nimport hoistStatics from 'hoist-non-react-statics';\nimport withNavigation from './withNavigation';\n\nexport default function withNavigationFocus(Component) {\n class ComponentWithNavigationFocus extends React.Component {\n static displayName = `withNavigationFocus(${Component.displayName ||\n Component.name})`;\n\n constructor(props) {\n super(props);\n\n this.subscriptions = [\n props.navigation.addListener('didFocus', () =>\n this.setState({ isFocused: true })\n ),\n props.navigation.addListener('willBlur', () =>\n this.setState({ isFocused: false })\n ),\n ];\n\n this.state = {\n isFocused: props.navigation ? props.navigation.isFocused() : false,\n };\n }\n\n componentWillUnmount() {\n this.subscriptions.forEach(sub => sub.remove());\n }\n\n render() {\n return (\n \n );\n }\n }\n\n return hoistStatics(\n withNavigation(ComponentWithNavigationFocus, { forwardRef: false }),\n Component\n );\n}\n"]}
+\ No newline at end of file
++{"version":3,"sources":["withNavigationFocus.js"],"names":["withNavigationFocus","Component","ComponentWithNavigationFocus","props","subscriptions","navigation","addListener","setState","isFocused","state","forEach","sub","remove","onRef","React","displayName","name","forwardRef"],"mappings":"0tBAAA,oDACA,qFACA,wE,mGAEe,QAASA,CAAAA,mBAAT,CAA6BC,SAA7B,CAAwC,IAC/CC,CAAAA,4BAD+C,kGAKnD,sCAAYC,KAAZ,CAAmB,2EACjB,wHAAMA,KAAN,GAEA,MAAKC,aAAL,CAAqB,CACnBD,KAAK,CAACE,UAAN,CAAiBC,WAAjB,CAA6B,UAA7B,CAAyC,iBACvC,OAAKC,QAAL,CAAc,CAAEC,SAAS,CAAE,IAAb,CAAd,CADuC,EAAzC,CADmB,CAInBL,KAAK,CAACE,UAAN,CAAiBC,WAAjB,CAA6B,UAA7B,CAAyC,iBACvC,OAAKC,QAAL,CAAc,CAAEC,SAAS,CAAE,KAAb,CAAd,CADuC,EAAzC,CAJmB,CAArB,CASA,MAAKC,KAAL,CAAa,CACXD,SAAS,CAAEL,KAAK,CAACE,UAAN,CAAmBF,KAAK,CAACE,UAAN,CAAiBG,SAAjB,EAAnB,CAAkD,KADlD,CAAb,CAZiB,aAelB,CApBkD,yHAsB5B,CACrB,KAAKJ,aAAL,CAAmBM,OAAnB,CAA2B,SAAAC,GAAG,QAAIA,CAAAA,GAAG,CAACC,MAAJ,EAAJ,EAA9B,EACD,CAxBkD,uCA0B1C,CACP,MACE,8BAAC,SAAD,0BACM,KAAKT,KADX,EAEE,SAAS,CAAE,KAAKM,KAAL,CAAWD,SAFxB,CAGE,GAAG,CAAE,KAAKL,KAAL,CAAWU,KAHlB,kDADF,CAOD,CAlCkD,0CACVC,eAAMb,SADI,EAC/CC,4BAD+C,CAE5Ca,WAF4C,yBAEPd,SAAS,CAACc,WAAV,EAC1Cd,SAAS,CAACe,IAHuC,MAqCrD,MAAO,kCACL,4BAAed,4BAAf,CAA6C,CAAEe,UAAU,CAAE,KAAd,CAA7C,CADK,CAELhB,SAFK,CAAP,CAID","sourcesContent":["import React from 'react';\nimport hoistStatics from 'hoist-non-react-statics';\nimport withNavigation from './withNavigation';\n\nexport default function withNavigationFocus(Component) {\n class ComponentWithNavigationFocus extends React.Component {\n static displayName = `withNavigationFocus(${Component.displayName ||\n Component.name})`;\n\n constructor(props) {\n super(props);\n\n this.subscriptions = [\n props.navigation.addListener('didFocus', () =>\n this.setState({ isFocused: true })\n ),\n props.navigation.addListener('willBlur', () =>\n this.setState({ isFocused: false })\n ),\n ];\n\n this.state = {\n isFocused: props.navigation ? props.navigation.isFocused() : false,\n };\n }\n\n componentWillUnmount() {\n this.subscriptions.forEach(sub => sub.remove());\n }\n\n render() {\n return (\n \n );\n }\n }\n\n return hoistStatics(\n withNavigation(ComponentWithNavigationFocus, { forwardRef: false }),\n Component\n );\n}\n"]}
+\ No newline at end of file
+diff --git a/node_modules/@react-navigation/core/lib/module/__tests__/NavigationStateUtils-test.js b/node_modules/@react-navigation/core/lib/module/__tests__/NavigationStateUtils-test.js
+index a99f081..bf0fc70 100644
+--- a/node_modules/@react-navigation/core/lib/module/__tests__/NavigationStateUtils-test.js
++++ b/node_modules/@react-navigation/core/lib/module/__tests__/NavigationStateUtils-test.js
+@@ -1,2 +1,2 @@
+-import _objectSpread from"@babel/runtime/helpers/objectSpread";import NavigationStateUtils from'../StateUtils';var routeName='Anything';describe('StateUtils',function(){it('gets route',function(){var state={index:0,routes:[{key:'a',routeName:routeName}],isTransitioning:false};expect(NavigationStateUtils.get(state,'a')).toEqual({key:'a',routeName:routeName});expect(NavigationStateUtils.get(state,'b')).toBe(null);});it('gets route index',function(){var state={index:1,routes:[{key:'a',routeName:routeName},{key:'b',routeName:routeName}],isTransitioning:false};expect(NavigationStateUtils.indexOf(state,'a')).toBe(0);expect(NavigationStateUtils.indexOf(state,'b')).toBe(1);expect(NavigationStateUtils.indexOf(state,'c')).toBe(-1);});it('has a route',function(){var state={index:0,routes:[{key:'a',routeName:routeName},{key:'b',routeName:routeName}],isTransitioning:false};expect(NavigationStateUtils.has(state,'b')).toBe(true);expect(NavigationStateUtils.has(state,'c')).toBe(false);});it('pushes a route',function(){var state={index:0,routes:[{key:'a',routeName:routeName}],isTransitioning:false};var newState={index:1,isTransitioning:false,routes:[{key:'a',routeName:routeName},{key:'b',routeName:routeName}]};expect(NavigationStateUtils.push(state,{key:'b',routeName:routeName})).toEqual(newState);});it('does not push duplicated route',function(){var state={index:0,routes:[{key:'a',routeName:routeName}],isTransitioning:false};expect(function(){return NavigationStateUtils.push(state,{key:'a',routeName:routeName});}).toThrow('should not push route with duplicated key a');});it('pops route',function(){var state={index:1,routes:[{key:'a',routeName:routeName},{key:'b',routeName:routeName}],isTransitioning:false};var newState={index:0,routes:[{key:'a',routeName:routeName}],isTransitioning:false};expect(NavigationStateUtils.pop(state)).toEqual(newState);});it('does not pop route if not applicable',function(){var state={index:0,routes:[{key:'a',routeName:routeName}],isTransitioning:false};expect(NavigationStateUtils.pop(state)).toBe(state);});it('jumps to new index',function(){var state={index:0,routes:[{key:'a',routeName:routeName},{key:'b',routeName:routeName}],isTransitioning:false};var newState={index:1,routes:[{key:'a',routeName:routeName},{key:'b',routeName:routeName}],isTransitioning:false};expect(NavigationStateUtils.jumpToIndex(state,0)).toBe(state);expect(NavigationStateUtils.jumpToIndex(state,1)).toEqual(newState);});it('throws if jumps to invalid index',function(){var state={index:0,routes:[{key:'a',routeName:routeName},{key:'b',routeName:routeName}],isTransitioning:false};expect(function(){return NavigationStateUtils.jumpToIndex(state,2);}).toThrow('invalid index 2 to jump to');});it('jumps to new key',function(){var state={index:0,routes:[{key:'a',routeName:routeName},{key:'b',routeName:routeName}],isTransitioning:false};var newState={index:1,routes:[{key:'a',routeName:routeName},{key:'b',routeName:routeName}],isTransitioning:false};expect(NavigationStateUtils.jumpTo(state,'a')).toBe(state);expect(NavigationStateUtils.jumpTo(state,'b')).toEqual(newState);});it('throws if jumps to invalid key',function(){var state={index:0,routes:[{key:'a',routeName:routeName},{key:'b',routeName:routeName}],isTransitioning:false};expect(function(){return NavigationStateUtils.jumpTo(state,'c');}).toThrow('invalid index -1 to jump to');});it('move backwards',function(){var state={index:1,routes:[{key:'a',routeName:routeName},{key:'b',routeName:routeName}],isTransitioning:false};var newState={index:0,routes:[{key:'a',routeName:routeName},{key:'b',routeName:routeName}],isTransitioning:false};expect(NavigationStateUtils.back(state)).toEqual(newState);expect(NavigationStateUtils.back(newState)).toBe(newState);});it('move forwards',function(){var state={index:0,routes:[{key:'a',routeName:routeName},{key:'b',routeName:routeName}],isTransitioning:false};var newState={index:1,routes:[{key:'a',routeName:routeName},{key:'b',routeName:routeName}],isTransitioning:false};expect(NavigationStateUtils.forward(state)).toEqual(newState);expect(NavigationStateUtils.forward(newState)).toBe(newState);});it('Replaces by key',function(){var state={index:0,routes:[{key:'a',routeName:routeName},{key:'b',routeName:routeName}],isTransitioning:false};var newState={index:1,routes:[{key:'a',routeName:routeName},{key:'c',routeName:routeName}],isTransitioning:false};expect(NavigationStateUtils.replaceAt(state,'b',{key:'c',routeName:routeName})).toEqual(newState);});it('Replaces by index',function(){var state={index:0,routes:[{key:'a',routeName:routeName},{key:'b',routeName:routeName}],isTransitioning:false};var newState={index:1,routes:[{key:'a',routeName:routeName},{key:'c',routeName:routeName}],isTransitioning:false};expect(NavigationStateUtils.replaceAtIndex(state,1,{key:'c',routeName:routeName})).toEqual(newState);});it('Returns the state with updated index if route is unchanged but index changes',function(){var state={index:0,routes:[{key:'a',routeName:routeName},{key:'b',routeName:routeName}],isTransitioning:false};expect(NavigationStateUtils.replaceAtIndex(state,1,state.routes[1])).toEqual(_objectSpread({},state,{index:1}));});it('Resets routes',function(){var state={index:0,routes:[{key:'a',routeName:routeName},{key:'b',routeName:routeName}],isTransitioning:false};var newState={index:1,routes:[{key:'x',routeName:routeName},{key:'y',routeName:routeName}],isTransitioning:false};expect(NavigationStateUtils.reset(state,[{key:'x',routeName:routeName},{key:'y',routeName:routeName}])).toEqual(newState);expect(function(){NavigationStateUtils.reset(state,[]);}).toThrow('invalid routes to replace');});it('Resets routes with index',function(){var state={index:0,routes:[{key:'a',routeName:routeName},{key:'b',routeName:routeName}],isTransitioning:false};var newState={index:0,routes:[{key:'x',routeName:routeName},{key:'y',routeName:routeName}],isTransitioning:false};expect(NavigationStateUtils.reset(state,[{key:'x',routeName:routeName},{key:'y',routeName:routeName}],0)).toEqual(newState);expect(function(){NavigationStateUtils.reset(state,[{key:'x',routeName:routeName},{key:'y',routeName:routeName}],100);}).toThrow('invalid index 100 to reset');});});
++import _objectSpread from"@babel/runtime/helpers/objectSpread";import NavigationStateUtils from'../StateUtils';var routeName='Anything';describe('StateUtils',function(){it('gets route',function(){var state={index:0,routes:[{key:'a',routeName:routeName}]};expect(NavigationStateUtils.get(state,'a')).toEqual({key:'a',routeName:routeName});expect(NavigationStateUtils.get(state,'b')).toBe(null);});it('gets route index',function(){var state={index:1,routes:[{key:'a',routeName:routeName},{key:'b',routeName:routeName}]};expect(NavigationStateUtils.indexOf(state,'a')).toBe(0);expect(NavigationStateUtils.indexOf(state,'b')).toBe(1);expect(NavigationStateUtils.indexOf(state,'c')).toBe(-1);});it('has a route',function(){var state={index:0,routes:[{key:'a',routeName:routeName},{key:'b',routeName:routeName}]};expect(NavigationStateUtils.has(state,'b')).toBe(true);expect(NavigationStateUtils.has(state,'c')).toBe(false);});it('pushes a route',function(){var state={index:0,routes:[{key:'a',routeName:routeName}]};var newState={index:1,routes:[{key:'a',routeName:routeName},{key:'b',routeName:routeName}]};expect(NavigationStateUtils.push(state,{key:'b',routeName:routeName})).toEqual(newState);});it('does not push duplicated route',function(){var state={index:0,routes:[{key:'a',routeName:routeName}]};expect(function(){return NavigationStateUtils.push(state,{key:'a',routeName:routeName});}).toThrow('should not push route with duplicated key a');});it('pops route',function(){var state={index:1,routes:[{key:'a',routeName:routeName},{key:'b',routeName:routeName}]};var newState={index:0,routes:[{key:'a',routeName:routeName}]};expect(NavigationStateUtils.pop(state)).toEqual(newState);});it('does not pop route if not applicable',function(){var state={index:0,routes:[{key:'a',routeName:routeName}]};expect(NavigationStateUtils.pop(state)).toBe(state);});it('jumps to new index',function(){var state={index:0,routes:[{key:'a',routeName:routeName},{key:'b',routeName:routeName}]};var newState={index:1,routes:[{key:'a',routeName:routeName},{key:'b',routeName:routeName}]};expect(NavigationStateUtils.jumpToIndex(state,0)).toBe(state);expect(NavigationStateUtils.jumpToIndex(state,1)).toEqual(newState);});it('throws if jumps to invalid index',function(){var state={index:0,routes:[{key:'a',routeName:routeName},{key:'b',routeName:routeName}]};expect(function(){return NavigationStateUtils.jumpToIndex(state,2);}).toThrow('invalid index 2 to jump to');});it('jumps to new key',function(){var state={index:0,routes:[{key:'a',routeName:routeName},{key:'b',routeName:routeName}]};var newState={index:1,routes:[{key:'a',routeName:routeName},{key:'b',routeName:routeName}]};expect(NavigationStateUtils.jumpTo(state,'a')).toBe(state);expect(NavigationStateUtils.jumpTo(state,'b')).toEqual(newState);});it('throws if jumps to invalid key',function(){var state={index:0,routes:[{key:'a',routeName:routeName},{key:'b',routeName:routeName}]};expect(function(){return NavigationStateUtils.jumpTo(state,'c');}).toThrow('invalid index -1 to jump to');});it('move backwards',function(){var state={index:1,routes:[{key:'a',routeName:routeName},{key:'b',routeName:routeName}]};var newState={index:0,routes:[{key:'a',routeName:routeName},{key:'b',routeName:routeName}]};expect(NavigationStateUtils.back(state)).toEqual(newState);expect(NavigationStateUtils.back(newState)).toBe(newState);});it('move forwards',function(){var state={index:0,routes:[{key:'a',routeName:routeName},{key:'b',routeName:routeName}]};var newState={index:1,routes:[{key:'a',routeName:routeName},{key:'b',routeName:routeName}]};expect(NavigationStateUtils.forward(state)).toEqual(newState);expect(NavigationStateUtils.forward(newState)).toBe(newState);});it('Replaces by key',function(){var state={index:0,routes:[{key:'a',routeName:routeName},{key:'b',routeName:routeName}]};var newState={index:1,routes:[{key:'a',routeName:routeName},{key:'c',routeName:routeName}]};expect(NavigationStateUtils.replaceAt(state,'b',{key:'c',routeName:routeName})).toEqual(newState);});it('Replaces by index',function(){var state={index:0,routes:[{key:'a',routeName:routeName},{key:'b',routeName:routeName}]};var newState={index:1,routes:[{key:'a',routeName:routeName},{key:'c',routeName:routeName}]};expect(NavigationStateUtils.replaceAtIndex(state,1,{key:'c',routeName:routeName})).toEqual(newState);});it('Returns the state with updated index if route is unchanged but index changes',function(){var state={index:0,routes:[{key:'a',routeName:routeName},{key:'b',routeName:routeName}]};expect(NavigationStateUtils.replaceAtIndex(state,1,state.routes[1])).toEqual(_objectSpread({},state,{index:1}));});it('Resets routes',function(){var state={index:0,routes:[{key:'a',routeName:routeName},{key:'b',routeName:routeName}]};var newState={index:1,routes:[{key:'x',routeName:routeName},{key:'y',routeName:routeName}]};expect(NavigationStateUtils.reset(state,[{key:'x',routeName:routeName},{key:'y',routeName:routeName}])).toEqual(newState);expect(function(){NavigationStateUtils.reset(state,[]);}).toThrow('invalid routes to replace');});it('Resets routes with index',function(){var state={index:0,routes:[{key:'a',routeName:routeName},{key:'b',routeName:routeName}]};var newState={index:0,routes:[{key:'x',routeName:routeName},{key:'y',routeName:routeName}]};expect(NavigationStateUtils.reset(state,[{key:'x',routeName:routeName},{key:'y',routeName:routeName}],0)).toEqual(newState);expect(function(){NavigationStateUtils.reset(state,[{key:'x',routeName:routeName},{key:'y',routeName:routeName}],100);}).toThrow('invalid index 100 to reset');});});
+ //# sourceMappingURL=NavigationStateUtils-test.js.map
+\ No newline at end of file
+diff --git a/node_modules/@react-navigation/core/lib/module/__tests__/NavigationStateUtils-test.js.map b/node_modules/@react-navigation/core/lib/module/__tests__/NavigationStateUtils-test.js.map
+index f2ed231..3fb34ac 100644
+--- a/node_modules/@react-navigation/core/lib/module/__tests__/NavigationStateUtils-test.js.map
++++ b/node_modules/@react-navigation/core/lib/module/__tests__/NavigationStateUtils-test.js.map
+@@ -1 +1 @@
+-{"version":3,"sources":["NavigationStateUtils-test.js"],"names":["NavigationStateUtils","routeName","describe","it","state","index","routes","key","isTransitioning","expect","get","toEqual","toBe","indexOf","has","newState","push","toThrow","pop","jumpToIndex","jumpTo","back","forward","replaceAt","replaceAtIndex","reset"],"mappings":"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","sourcesContent":["import NavigationStateUtils from '../StateUtils';\n\nconst routeName = 'Anything';\n\ndescribe('StateUtils', () => {\n // Getters\n it('gets route', () => {\n const state = {\n index: 0,\n routes: [{ key: 'a', routeName }],\n isTransitioning: false,\n };\n expect(NavigationStateUtils.get(state, 'a')).toEqual({\n key: 'a',\n routeName,\n });\n expect(NavigationStateUtils.get(state, 'b')).toBe(null);\n });\n\n it('gets route index', () => {\n const state = {\n index: 1,\n routes: [{ key: 'a', routeName }, { key: 'b', routeName }],\n isTransitioning: false,\n };\n expect(NavigationStateUtils.indexOf(state, 'a')).toBe(0);\n expect(NavigationStateUtils.indexOf(state, 'b')).toBe(1);\n expect(NavigationStateUtils.indexOf(state, 'c')).toBe(-1);\n });\n\n it('has a route', () => {\n const state = {\n index: 0,\n routes: [{ key: 'a', routeName }, { key: 'b', routeName }],\n isTransitioning: false,\n };\n expect(NavigationStateUtils.has(state, 'b')).toBe(true);\n expect(NavigationStateUtils.has(state, 'c')).toBe(false);\n });\n\n // Push\n it('pushes a route', () => {\n const state = {\n index: 0,\n routes: [{ key: 'a', routeName }],\n isTransitioning: false,\n };\n const newState = {\n index: 1,\n isTransitioning: false,\n routes: [{ key: 'a', routeName }, { key: 'b', routeName }],\n };\n expect(NavigationStateUtils.push(state, { key: 'b', routeName })).toEqual(\n newState\n );\n });\n\n it('does not push duplicated route', () => {\n const state = {\n index: 0,\n routes: [{ key: 'a', routeName }],\n isTransitioning: false,\n };\n expect(() =>\n NavigationStateUtils.push(state, { key: 'a', routeName })\n ).toThrow('should not push route with duplicated key a');\n });\n\n // Pop\n it('pops route', () => {\n const state = {\n index: 1,\n routes: [{ key: 'a', routeName }, { key: 'b', routeName }],\n isTransitioning: false,\n };\n const newState = {\n index: 0,\n routes: [{ key: 'a', routeName }],\n isTransitioning: false,\n };\n expect(NavigationStateUtils.pop(state)).toEqual(newState);\n });\n\n it('does not pop route if not applicable', () => {\n const state = {\n index: 0,\n routes: [{ key: 'a', routeName }],\n isTransitioning: false,\n };\n expect(NavigationStateUtils.pop(state)).toBe(state);\n });\n\n // Jump\n it('jumps to new index', () => {\n const state = {\n index: 0,\n routes: [{ key: 'a', routeName }, { key: 'b', routeName }],\n isTransitioning: false,\n };\n const newState = {\n index: 1,\n routes: [{ key: 'a', routeName }, { key: 'b', routeName }],\n isTransitioning: false,\n };\n expect(NavigationStateUtils.jumpToIndex(state, 0)).toBe(state);\n expect(NavigationStateUtils.jumpToIndex(state, 1)).toEqual(newState);\n });\n\n it('throws if jumps to invalid index', () => {\n const state = {\n index: 0,\n routes: [{ key: 'a', routeName }, { key: 'b', routeName }],\n isTransitioning: false,\n };\n expect(() => NavigationStateUtils.jumpToIndex(state, 2)).toThrow(\n 'invalid index 2 to jump to'\n );\n });\n\n it('jumps to new key', () => {\n const state = {\n index: 0,\n routes: [{ key: 'a', routeName }, { key: 'b', routeName }],\n isTransitioning: false,\n };\n const newState = {\n index: 1,\n routes: [{ key: 'a', routeName }, { key: 'b', routeName }],\n isTransitioning: false,\n };\n expect(NavigationStateUtils.jumpTo(state, 'a')).toBe(state);\n expect(NavigationStateUtils.jumpTo(state, 'b')).toEqual(newState);\n });\n\n it('throws if jumps to invalid key', () => {\n const state = {\n index: 0,\n routes: [{ key: 'a', routeName }, { key: 'b', routeName }],\n isTransitioning: false,\n };\n expect(() => NavigationStateUtils.jumpTo(state, 'c')).toThrow(\n 'invalid index -1 to jump to'\n );\n });\n\n it('move backwards', () => {\n const state = {\n index: 1,\n routes: [{ key: 'a', routeName }, { key: 'b', routeName }],\n isTransitioning: false,\n };\n const newState = {\n index: 0,\n routes: [{ key: 'a', routeName }, { key: 'b', routeName }],\n isTransitioning: false,\n };\n expect(NavigationStateUtils.back(state)).toEqual(newState);\n expect(NavigationStateUtils.back(newState)).toBe(newState);\n });\n\n it('move forwards', () => {\n const state = {\n index: 0,\n routes: [{ key: 'a', routeName }, { key: 'b', routeName }],\n isTransitioning: false,\n };\n const newState = {\n index: 1,\n routes: [{ key: 'a', routeName }, { key: 'b', routeName }],\n isTransitioning: false,\n };\n expect(NavigationStateUtils.forward(state)).toEqual(newState);\n expect(NavigationStateUtils.forward(newState)).toBe(newState);\n });\n\n // Replace\n it('Replaces by key', () => {\n const state = {\n index: 0,\n routes: [{ key: 'a', routeName }, { key: 'b', routeName }],\n isTransitioning: false,\n };\n const newState = {\n index: 1,\n routes: [{ key: 'a', routeName }, { key: 'c', routeName }],\n isTransitioning: false,\n };\n expect(\n NavigationStateUtils.replaceAt(state, 'b', { key: 'c', routeName })\n ).toEqual(newState);\n });\n\n it('Replaces by index', () => {\n const state = {\n index: 0,\n routes: [{ key: 'a', routeName }, { key: 'b', routeName }],\n isTransitioning: false,\n };\n const newState = {\n index: 1,\n routes: [{ key: 'a', routeName }, { key: 'c', routeName }],\n isTransitioning: false,\n };\n expect(\n NavigationStateUtils.replaceAtIndex(state, 1, { key: 'c', routeName })\n ).toEqual(newState);\n });\n\n it('Returns the state with updated index if route is unchanged but index changes', () => {\n const state = {\n index: 0,\n routes: [{ key: 'a', routeName }, { key: 'b', routeName }],\n isTransitioning: false,\n };\n expect(\n NavigationStateUtils.replaceAtIndex(state, 1, state.routes[1])\n ).toEqual({ ...state, index: 1 });\n });\n\n // Reset\n it('Resets routes', () => {\n const state = {\n index: 0,\n routes: [{ key: 'a', routeName }, { key: 'b', routeName }],\n isTransitioning: false,\n };\n const newState = {\n index: 1,\n routes: [{ key: 'x', routeName }, { key: 'y', routeName }],\n isTransitioning: false,\n };\n expect(\n NavigationStateUtils.reset(state, [\n { key: 'x', routeName },\n { key: 'y', routeName },\n ])\n ).toEqual(newState);\n\n expect(() => {\n NavigationStateUtils.reset(state, []);\n }).toThrow('invalid routes to replace');\n });\n\n it('Resets routes with index', () => {\n const state = {\n index: 0,\n routes: [{ key: 'a', routeName }, { key: 'b', routeName }],\n isTransitioning: false,\n };\n const newState = {\n index: 0,\n routes: [{ key: 'x', routeName }, { key: 'y', routeName }],\n isTransitioning: false,\n };\n expect(\n NavigationStateUtils.reset(\n state,\n [{ key: 'x', routeName }, { key: 'y', routeName }],\n 0\n )\n ).toEqual(newState);\n\n expect(() => {\n NavigationStateUtils.reset(\n state,\n [{ key: 'x', routeName }, { key: 'y', routeName }],\n 100\n );\n }).toThrow('invalid index 100 to reset');\n });\n});\n"]}
+\ No newline at end of file
++{"version":3,"sources":["NavigationStateUtils-test.js"],"names":["NavigationStateUtils","routeName","describe","it","state","index","routes","key","expect","get","toEqual","toBe","indexOf","has","newState","push","toThrow","pop","jumpToIndex","jumpTo","back","forward","replaceAt","replaceAtIndex","reset"],"mappings":"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","sourcesContent":["import NavigationStateUtils from '../StateUtils';\n\nconst routeName = 'Anything';\n\ndescribe('StateUtils', () => {\n // Getters\n it('gets route', () => {\n const state = {\n index: 0,\n routes: [{ key: 'a', routeName }],\n };\n expect(NavigationStateUtils.get(state, 'a')).toEqual({\n key: 'a',\n routeName,\n });\n expect(NavigationStateUtils.get(state, 'b')).toBe(null);\n });\n\n it('gets route index', () => {\n const state = {\n index: 1,\n routes: [{ key: 'a', routeName }, { key: 'b', routeName }],\n };\n expect(NavigationStateUtils.indexOf(state, 'a')).toBe(0);\n expect(NavigationStateUtils.indexOf(state, 'b')).toBe(1);\n expect(NavigationStateUtils.indexOf(state, 'c')).toBe(-1);\n });\n\n it('has a route', () => {\n const state = {\n index: 0,\n routes: [{ key: 'a', routeName }, { key: 'b', routeName }],\n };\n expect(NavigationStateUtils.has(state, 'b')).toBe(true);\n expect(NavigationStateUtils.has(state, 'c')).toBe(false);\n });\n\n // Push\n it('pushes a route', () => {\n const state = {\n index: 0,\n routes: [{ key: 'a', routeName }],\n };\n const newState = {\n index: 1,\n\n routes: [{ key: 'a', routeName }, { key: 'b', routeName }],\n };\n expect(NavigationStateUtils.push(state, { key: 'b', routeName })).toEqual(\n newState\n );\n });\n\n it('does not push duplicated route', () => {\n const state = {\n index: 0,\n routes: [{ key: 'a', routeName }],\n };\n expect(() =>\n NavigationStateUtils.push(state, { key: 'a', routeName })\n ).toThrow('should not push route with duplicated key a');\n });\n\n // Pop\n it('pops route', () => {\n const state = {\n index: 1,\n routes: [{ key: 'a', routeName }, { key: 'b', routeName }],\n };\n const newState = {\n index: 0,\n routes: [{ key: 'a', routeName }],\n };\n expect(NavigationStateUtils.pop(state)).toEqual(newState);\n });\n\n it('does not pop route if not applicable', () => {\n const state = {\n index: 0,\n routes: [{ key: 'a', routeName }],\n };\n expect(NavigationStateUtils.pop(state)).toBe(state);\n });\n\n // Jump\n it('jumps to new index', () => {\n const state = {\n index: 0,\n routes: [{ key: 'a', routeName }, { key: 'b', routeName }],\n };\n const newState = {\n index: 1,\n routes: [{ key: 'a', routeName }, { key: 'b', routeName }],\n };\n expect(NavigationStateUtils.jumpToIndex(state, 0)).toBe(state);\n expect(NavigationStateUtils.jumpToIndex(state, 1)).toEqual(newState);\n });\n\n it('throws if jumps to invalid index', () => {\n const state = {\n index: 0,\n routes: [{ key: 'a', routeName }, { key: 'b', routeName }],\n };\n expect(() => NavigationStateUtils.jumpToIndex(state, 2)).toThrow(\n 'invalid index 2 to jump to'\n );\n });\n\n it('jumps to new key', () => {\n const state = {\n index: 0,\n routes: [{ key: 'a', routeName }, { key: 'b', routeName }],\n };\n const newState = {\n index: 1,\n routes: [{ key: 'a', routeName }, { key: 'b', routeName }],\n };\n expect(NavigationStateUtils.jumpTo(state, 'a')).toBe(state);\n expect(NavigationStateUtils.jumpTo(state, 'b')).toEqual(newState);\n });\n\n it('throws if jumps to invalid key', () => {\n const state = {\n index: 0,\n routes: [{ key: 'a', routeName }, { key: 'b', routeName }],\n };\n expect(() => NavigationStateUtils.jumpTo(state, 'c')).toThrow(\n 'invalid index -1 to jump to'\n );\n });\n\n it('move backwards', () => {\n const state = {\n index: 1,\n routes: [{ key: 'a', routeName }, { key: 'b', routeName }],\n };\n const newState = {\n index: 0,\n routes: [{ key: 'a', routeName }, { key: 'b', routeName }],\n };\n expect(NavigationStateUtils.back(state)).toEqual(newState);\n expect(NavigationStateUtils.back(newState)).toBe(newState);\n });\n\n it('move forwards', () => {\n const state = {\n index: 0,\n routes: [{ key: 'a', routeName }, { key: 'b', routeName }],\n };\n const newState = {\n index: 1,\n routes: [{ key: 'a', routeName }, { key: 'b', routeName }],\n };\n expect(NavigationStateUtils.forward(state)).toEqual(newState);\n expect(NavigationStateUtils.forward(newState)).toBe(newState);\n });\n\n // Replace\n it('Replaces by key', () => {\n const state = {\n index: 0,\n routes: [{ key: 'a', routeName }, { key: 'b', routeName }],\n };\n const newState = {\n index: 1,\n routes: [{ key: 'a', routeName }, { key: 'c', routeName }],\n };\n expect(\n NavigationStateUtils.replaceAt(state, 'b', { key: 'c', routeName })\n ).toEqual(newState);\n });\n\n it('Replaces by index', () => {\n const state = {\n index: 0,\n routes: [{ key: 'a', routeName }, { key: 'b', routeName }],\n };\n const newState = {\n index: 1,\n routes: [{ key: 'a', routeName }, { key: 'c', routeName }],\n };\n expect(\n NavigationStateUtils.replaceAtIndex(state, 1, { key: 'c', routeName })\n ).toEqual(newState);\n });\n\n it('Returns the state with updated index if route is unchanged but index changes', () => {\n const state = {\n index: 0,\n routes: [{ key: 'a', routeName }, { key: 'b', routeName }],\n };\n expect(\n NavigationStateUtils.replaceAtIndex(state, 1, state.routes[1])\n ).toEqual({ ...state, index: 1 });\n });\n\n // Reset\n it('Resets routes', () => {\n const state = {\n index: 0,\n routes: [{ key: 'a', routeName }, { key: 'b', routeName }],\n };\n const newState = {\n index: 1,\n routes: [{ key: 'x', routeName }, { key: 'y', routeName }],\n };\n expect(\n NavigationStateUtils.reset(state, [\n { key: 'x', routeName },\n { key: 'y', routeName },\n ])\n ).toEqual(newState);\n\n expect(() => {\n NavigationStateUtils.reset(state, []);\n }).toThrow('invalid routes to replace');\n });\n\n it('Resets routes with index', () => {\n const state = {\n index: 0,\n routes: [{ key: 'a', routeName }, { key: 'b', routeName }],\n };\n const newState = {\n index: 0,\n routes: [{ key: 'x', routeName }, { key: 'y', routeName }],\n };\n expect(\n NavigationStateUtils.reset(\n state,\n [{ key: 'x', routeName }, { key: 'y', routeName }],\n 0\n )\n ).toEqual(newState);\n\n expect(() => {\n NavigationStateUtils.reset(\n state,\n [{ key: 'x', routeName }, { key: 'y', routeName }],\n 100\n );\n }).toThrow('invalid index 100 to reset');\n });\n});\n"]}
+\ No newline at end of file
+diff --git a/node_modules/@react-navigation/core/lib/module/__tests__/getChildEventSubscriber-test.js b/node_modules/@react-navigation/core/lib/module/__tests__/getChildEventSubscriber-test.js
+index df3e0f6..020c09b 100644
+--- a/node_modules/@react-navigation/core/lib/module/__tests__/getChildEventSubscriber-test.js
++++ b/node_modules/@react-navigation/core/lib/module/__tests__/getChildEventSubscriber-test.js
+@@ -1,2 +1,2 @@
+-import _objectSpread from"@babel/runtime/helpers/objectSpread";import getChildEventSubscriber from'../getChildEventSubscriber';it('child action events only flow when focused',function(){var parentSubscriber=jest.fn();var emitParentAction=function emitParentAction(payload){parentSubscriber.mock.calls.forEach(function(subs){if(subs[0]===payload.type){subs[1](payload);}});};var subscriptionRemove=function subscriptionRemove(){};parentSubscriber.mockReturnValueOnce({remove:subscriptionRemove});var childEventSubscriber=getChildEventSubscriber(parentSubscriber,'key1').addListener;var testState={key:'foo',routeName:'FooRoute',routes:[{key:'key0'},{key:'key1'}],index:0,isTransitioning:false};var focusedTestState=_objectSpread({},testState,{index:1});var childActionHandler=jest.fn();var childWillFocusHandler=jest.fn();var childDidFocusHandler=jest.fn();childEventSubscriber('action',childActionHandler);childEventSubscriber('willFocus',childWillFocusHandler);childEventSubscriber('didFocus',childDidFocusHandler);emitParentAction({type:'action',state:focusedTestState,lastState:testState,action:{type:'FooAction'}});expect(childActionHandler.mock.calls.length).toBe(0);expect(childWillFocusHandler.mock.calls.length).toBe(1);expect(childDidFocusHandler.mock.calls.length).toBe(1);emitParentAction({type:'action',state:focusedTestState,lastState:focusedTestState,action:{type:'FooAction'}});expect(childActionHandler.mock.calls.length).toBe(1);expect(childWillFocusHandler.mock.calls.length).toBe(1);expect(childDidFocusHandler.mock.calls.length).toBe(1);});it('grandchildren subscription',function(){var grandParentSubscriber=jest.fn();var emitGrandParentAction=function emitGrandParentAction(payload){grandParentSubscriber.mock.calls.forEach(function(subs){if(subs[0]===payload.type){subs[1](payload);}});};var subscriptionRemove=function subscriptionRemove(){};grandParentSubscriber.mockReturnValueOnce({remove:subscriptionRemove});var parentSubscriber=getChildEventSubscriber(grandParentSubscriber,'parent').addListener;var childEventSubscriber=getChildEventSubscriber(parentSubscriber,'key1').addListener;var parentBlurState={key:'foo',routeName:'FooRoute',routes:[{key:'aunt'},{key:'parent',routes:[{key:'key0'},{key:'key1'}],index:1,isTransitioning:false}],index:0,isTransitioning:false};var parentTransitionState=_objectSpread({},parentBlurState,{index:1,isTransitioning:true});var parentFocusState=_objectSpread({},parentTransitionState,{isTransitioning:false});var childActionHandler=jest.fn();var childWillFocusHandler=jest.fn();var childDidFocusHandler=jest.fn();childEventSubscriber('action',childActionHandler);childEventSubscriber('willFocus',childWillFocusHandler);childEventSubscriber('didFocus',childDidFocusHandler);emitGrandParentAction({type:'action',state:parentTransitionState,lastState:parentBlurState,action:{type:'FooAction'}});expect(childActionHandler.mock.calls.length).toBe(0);expect(childWillFocusHandler.mock.calls.length).toBe(1);expect(childDidFocusHandler.mock.calls.length).toBe(0);emitGrandParentAction({type:'action',state:parentFocusState,lastState:parentTransitionState,action:{type:'FooAction'}});expect(childActionHandler.mock.calls.length).toBe(0);expect(childWillFocusHandler.mock.calls.length).toBe(1);expect(childDidFocusHandler.mock.calls.length).toBe(1);});it('grandchildren transitions',function(){var grandParentSubscriber=jest.fn();var emitGrandParentAction=function emitGrandParentAction(payload){grandParentSubscriber.mock.calls.forEach(function(subs){if(subs[0]===payload.type){subs[1](payload);}});};var subscriptionRemove=function subscriptionRemove(){};grandParentSubscriber.mockReturnValueOnce({remove:subscriptionRemove});var parentSubscriber=getChildEventSubscriber(grandParentSubscriber,'parent').addListener;var childEventSubscriber=getChildEventSubscriber(parentSubscriber,'key1').addListener;var makeFakeState=function makeFakeState(childIndex,childIsTransitioning){return{index:1,isTransitioning:false,routes:[{key:'nothing'},{key:'parent',index:childIndex,isTransitioning:childIsTransitioning,routes:[{key:'key0'},{key:'key1'},{key:'key2'}]}]};};var blurredState=makeFakeState(0,false);var transitionState=makeFakeState(1,true);var focusState=makeFakeState(1,false);var transition2State=makeFakeState(2,true);var blurred2State=makeFakeState(2,false);var childActionHandler=jest.fn();var childWillFocusHandler=jest.fn();var childDidFocusHandler=jest.fn();var childWillBlurHandler=jest.fn();var childDidBlurHandler=jest.fn();childEventSubscriber('action',childActionHandler);childEventSubscriber('willFocus',childWillFocusHandler);childEventSubscriber('didFocus',childDidFocusHandler);childEventSubscriber('willBlur',childWillBlurHandler);childEventSubscriber('didBlur',childDidBlurHandler);emitGrandParentAction({type:'action',state:transitionState,lastState:blurredState,action:{type:'FooAction'}});expect(childActionHandler.mock.calls.length).toBe(0);expect(childWillFocusHandler.mock.calls.length).toBe(1);expect(childDidFocusHandler.mock.calls.length).toBe(0);emitGrandParentAction({type:'action',state:focusState,lastState:transitionState,action:{type:'FooAction'}});expect(childActionHandler.mock.calls.length).toBe(0);expect(childWillFocusHandler.mock.calls.length).toBe(1);expect(childDidFocusHandler.mock.calls.length).toBe(1);emitGrandParentAction({type:'action',state:focusState,lastState:focusState,action:{type:'TestAction'}});expect(childWillFocusHandler.mock.calls.length).toBe(1);expect(childDidFocusHandler.mock.calls.length).toBe(1);expect(childActionHandler.mock.calls.length).toBe(1);emitGrandParentAction({type:'action',state:transition2State,lastState:focusState,action:{type:'CauseWillBlurAction'}});expect(childWillBlurHandler.mock.calls.length).toBe(1);expect(childDidBlurHandler.mock.calls.length).toBe(0);expect(childActionHandler.mock.calls.length).toBe(1);emitGrandParentAction({type:'action',state:blurred2State,lastState:transition2State,action:{type:'CauseDidBlurAction'}});expect(childWillBlurHandler.mock.calls.length).toBe(1);expect(childDidBlurHandler.mock.calls.length).toBe(1);expect(childActionHandler.mock.calls.length).toBe(1);});it('grandchildren pass through transitions',function(){var grandParentSubscriber=jest.fn();var emitGrandParentAction=function emitGrandParentAction(payload){grandParentSubscriber.mock.calls.forEach(function(subs){if(subs[0]===payload.type){subs[1](payload);}});};var subscriptionRemove=function subscriptionRemove(){};grandParentSubscriber.mockReturnValueOnce({remove:subscriptionRemove});var parentSubscriber=getChildEventSubscriber(grandParentSubscriber,'parent').addListener;var childEventSubscriber=getChildEventSubscriber(parentSubscriber,'key1').addListener;var makeFakeState=function makeFakeState(childIndex,childIsTransitioning){return{index:childIndex,isTransitioning:childIsTransitioning,routes:[{key:'nothing'},{key:'parent',index:1,isTransitioning:false,routes:[{key:'key0'},{key:'key1'},{key:'key2'}]}].slice(0,childIndex+1)};};var blurredState=makeFakeState(0,false);var transitionState=makeFakeState(1,true);var focusState=makeFakeState(1,false);var transition2State=makeFakeState(0,true);var blurred2State=makeFakeState(0,false);var childActionHandler=jest.fn();var childWillFocusHandler=jest.fn();var childDidFocusHandler=jest.fn();var childWillBlurHandler=jest.fn();var childDidBlurHandler=jest.fn();childEventSubscriber('action',childActionHandler);childEventSubscriber('willFocus',childWillFocusHandler);childEventSubscriber('didFocus',childDidFocusHandler);childEventSubscriber('willBlur',childWillBlurHandler);childEventSubscriber('didBlur',childDidBlurHandler);emitGrandParentAction({type:'action',state:transitionState,lastState:blurredState,action:{type:'FooAction'}});expect(childActionHandler.mock.calls.length).toBe(0);expect(childWillFocusHandler.mock.calls.length).toBe(1);expect(childDidFocusHandler.mock.calls.length).toBe(0);emitGrandParentAction({type:'action',state:focusState,lastState:transitionState,action:{type:'FooAction'}});expect(childActionHandler.mock.calls.length).toBe(0);expect(childWillFocusHandler.mock.calls.length).toBe(1);expect(childDidFocusHandler.mock.calls.length).toBe(1);emitGrandParentAction({type:'action',state:focusState,lastState:focusState,action:{type:'TestAction'}});expect(childWillFocusHandler.mock.calls.length).toBe(1);expect(childDidFocusHandler.mock.calls.length).toBe(1);expect(childActionHandler.mock.calls.length).toBe(1);emitGrandParentAction({type:'action',state:transition2State,lastState:focusState,action:{type:'CauseWillBlurAction'}});expect(childWillBlurHandler.mock.calls.length).toBe(1);expect(childDidBlurHandler.mock.calls.length).toBe(0);expect(childActionHandler.mock.calls.length).toBe(1);emitGrandParentAction({type:'action',state:blurred2State,lastState:transition2State,action:{type:'CauseDidBlurAction'}});expect(childWillBlurHandler.mock.calls.length).toBe(1);expect(childDidBlurHandler.mock.calls.length).toBe(1);expect(childActionHandler.mock.calls.length).toBe(1);});it('child focus with transition',function(){var parentSubscriber=jest.fn();var emitParentAction=function emitParentAction(payload){parentSubscriber.mock.calls.forEach(function(subs){if(subs[0]===payload.type){subs[1](payload);}});};var subscriptionRemove=function subscriptionRemove(){};parentSubscriber.mockReturnValueOnce({remove:subscriptionRemove});var childEventSubscriber=getChildEventSubscriber(parentSubscriber,'key1').addListener;var randomAction={type:'FooAction'};var testState={key:'foo',routeName:'FooRoute',routes:[{key:'key0'},{key:'key1'}],index:0,isTransitioning:false};var childWillFocusHandler=jest.fn();var childDidFocusHandler=jest.fn();var childWillBlurHandler=jest.fn();var childDidBlurHandler=jest.fn();childEventSubscriber('willFocus',childWillFocusHandler);childEventSubscriber('didFocus',childDidFocusHandler);childEventSubscriber('willBlur',childWillBlurHandler);childEventSubscriber('didBlur',childDidBlurHandler);emitParentAction({type:'didFocus',action:randomAction,lastState:testState,state:testState});emitParentAction({type:'action',action:randomAction,lastState:testState,state:_objectSpread({},testState,{index:1,isTransitioning:true})});expect(childWillFocusHandler.mock.calls.length).toBe(1);emitParentAction({type:'action',action:randomAction,lastState:_objectSpread({},testState,{index:1,isTransitioning:true}),state:_objectSpread({},testState,{index:1,isTransitioning:false})});expect(childDidFocusHandler.mock.calls.length).toBe(1);emitParentAction({type:'action',action:randomAction,lastState:_objectSpread({},testState,{index:1,isTransitioning:false}),state:_objectSpread({},testState,{index:0,isTransitioning:true})});expect(childWillBlurHandler.mock.calls.length).toBe(1);emitParentAction({type:'action',action:randomAction,lastState:_objectSpread({},testState,{index:0,isTransitioning:true}),state:_objectSpread({},testState,{index:0,isTransitioning:false})});expect(childDidBlurHandler.mock.calls.length).toBe(1);});it('child focus with immediate transition',function(){var parentSubscriber=jest.fn();var emitParentAction=function emitParentAction(payload){parentSubscriber.mock.calls.forEach(function(subs){if(subs[0]===payload.type){subs[1](payload);}});};var subscriptionRemove=function subscriptionRemove(){};parentSubscriber.mockReturnValueOnce({remove:subscriptionRemove});var childEventSubscriber=getChildEventSubscriber(parentSubscriber,'key1').addListener;var randomAction={type:'FooAction'};var testState={key:'foo',routeName:'FooRoute',routes:[{key:'key0'},{key:'key1'}],index:0,isTransitioning:false};var childWillFocusHandler=jest.fn();var childDidFocusHandler=jest.fn();var childWillBlurHandler=jest.fn();var childDidBlurHandler=jest.fn();childEventSubscriber('willFocus',childWillFocusHandler);childEventSubscriber('didFocus',childDidFocusHandler);childEventSubscriber('willBlur',childWillBlurHandler);childEventSubscriber('didBlur',childDidBlurHandler);emitParentAction({type:'didFocus',action:randomAction,lastState:testState,state:testState});emitParentAction({type:'action',action:randomAction,lastState:testState,state:_objectSpread({},testState,{index:1})});expect(childWillFocusHandler.mock.calls.length).toBe(1);expect(childDidFocusHandler.mock.calls.length).toBe(1);emitParentAction({type:'action',action:randomAction,lastState:_objectSpread({},testState,{index:1}),state:_objectSpread({},testState,{index:0})});expect(childWillBlurHandler.mock.calls.length).toBe(1);expect(childDidBlurHandler.mock.calls.length).toBe(1);});var setupEventTest=function setupEventTest(subscriptionKey,initialLastFocusEvent){var parentSubscriber=jest.fn();var emitEvent=function emitEvent(payload){parentSubscriber.mock.calls.forEach(function(subs){if(subs[0]===payload.type){subs[1](payload);}});};var subscriptionRemove=function subscriptionRemove(){};parentSubscriber.mockReturnValueOnce({remove:subscriptionRemove});var evtProvider=getChildEventSubscriber(parentSubscriber,subscriptionKey,initialLastFocusEvent);var handlers={};evtProvider.addListener('action',handlers.action=jest.fn());evtProvider.addListener('willFocus',handlers.willFocus=jest.fn());evtProvider.addListener('didFocus',handlers.didFocus=jest.fn());evtProvider.addListener('willBlur',handlers.willBlur=jest.fn());evtProvider.addListener('didBlur',handlers.didBlur=jest.fn());return{emitEvent:emitEvent,handlers:handlers,evtProvider:evtProvider};};it('immediate back with uncompleted transition will focus first screen again',function(){var _setupEventTest=setupEventTest('key0','didFocus'),handlers=_setupEventTest.handlers,emitEvent=_setupEventTest.emitEvent;emitEvent({type:'action',state:{index:1,routes:[{key:'key0'},{key:'key1'}],isTransitioning:true},lastState:{index:0,routes:[{key:'key0'}],isTransitioning:false},action:{type:'Any action, does not matter here'}});expect(handlers.willFocus.mock.calls.length).toBe(0);expect(handlers.didFocus.mock.calls.length).toBe(0);expect(handlers.willBlur.mock.calls.length).toBe(1);expect(handlers.didBlur.mock.calls.length).toBe(0);emitEvent({type:'action',state:{index:0,routes:[{key:'key0'}],isTransitioning:true},lastState:{index:1,routes:[{key:'key0'},{key:'key1'}],isTransitioning:true},action:{type:'Any action, does not matter here'}});expect(handlers.willFocus.mock.calls.length).toBe(1);expect(handlers.didFocus.mock.calls.length).toBe(0);expect(handlers.willBlur.mock.calls.length).toBe(1);expect(handlers.didBlur.mock.calls.length).toBe(0);emitEvent({type:'action',state:{index:0,routes:[{key:'key0'}],isTransitioning:false},lastState:{index:0,routes:[{key:'key0'}],isTransitioning:true},action:{type:'Any action, does not matter here'}});expect(handlers.willFocus.mock.calls.length).toBe(1);expect(handlers.didFocus.mock.calls.length).toBe(1);expect(handlers.willBlur.mock.calls.length).toBe(1);expect(handlers.didBlur.mock.calls.length).toBe(0);});
++import _objectSpread from"@babel/runtime/helpers/objectSpread";import getChildEventSubscriber from'../getChildEventSubscriber';it('child action events only flow when focused',function(){var parentSubscriber=jest.fn();var emitParentAction=function emitParentAction(payload){parentSubscriber.mock.calls.forEach(function(subs){if(subs[0]===payload.type){subs[1](payload);}});};var subscriptionRemove=function subscriptionRemove(){};parentSubscriber.mockReturnValueOnce({remove:subscriptionRemove});var childEventSubscriber=getChildEventSubscriber(parentSubscriber,'key1').addListener;var testState={key:'foo',routeName:'FooRoute',routes:[{key:'key0'},{key:'key1'}],index:0};var focusedTestState=_objectSpread({},testState,{index:1});var childActionHandler=jest.fn();var childWillFocusHandler=jest.fn();var childDidFocusHandler=jest.fn();childEventSubscriber('action',childActionHandler);childEventSubscriber('willFocus',childWillFocusHandler);childEventSubscriber('didFocus',childDidFocusHandler);emitParentAction({type:'action',state:focusedTestState,lastState:testState,action:{type:'FooAction'}});expect(childActionHandler.mock.calls.length).toBe(0);expect(childWillFocusHandler.mock.calls.length).toBe(1);expect(childDidFocusHandler.mock.calls.length).toBe(1);emitParentAction({type:'action',state:focusedTestState,lastState:focusedTestState,action:{type:'FooAction'}});expect(childActionHandler.mock.calls.length).toBe(1);expect(childWillFocusHandler.mock.calls.length).toBe(1);expect(childDidFocusHandler.mock.calls.length).toBe(1);});it('grandchildren subscription',function(){var grandParentSubscriber=jest.fn();var emitGrandParentAction=function emitGrandParentAction(payload){grandParentSubscriber.mock.calls.forEach(function(subs){if(subs[0]===payload.type){subs[1](payload);}});};var subscriptionRemove=function subscriptionRemove(){};grandParentSubscriber.mockReturnValueOnce({remove:subscriptionRemove});var parentSubscriber=getChildEventSubscriber(grandParentSubscriber,'parent').addListener;var childEventSubscriber=getChildEventSubscriber(parentSubscriber,'key1').addListener;var parentBlurState={key:'foo',routeName:'FooRoute',routes:[{key:'aunt'},{key:'parent',routes:[{key:'key0'},{key:'key1'}],index:1}],transitions:{pushing:[],popping:['parent']},index:0};var parentTransitionState=_objectSpread({},parentBlurState,{index:1,transitions:{pushing:['key1'],popping:[]}});var parentFocusState=_objectSpread({},parentTransitionState);var childActionHandler=jest.fn();var childWillFocusHandler=jest.fn();var childDidFocusHandler=jest.fn();childEventSubscriber('action',childActionHandler);childEventSubscriber('willFocus',childWillFocusHandler);childEventSubscriber('didFocus',childDidFocusHandler);emitGrandParentAction({type:'action',state:parentTransitionState,lastState:parentBlurState,action:{type:'FooAction'}});expect(childActionHandler.mock.calls.length).toBe(0);expect(childWillFocusHandler.mock.calls.length).toBe(1);expect(childDidFocusHandler.mock.calls.length).toBe(0);emitGrandParentAction({type:'action',state:parentFocusState,lastState:parentTransitionState,action:{type:'FooAction'}});expect(childActionHandler.mock.calls.length).toBe(0);expect(childWillFocusHandler.mock.calls.length).toBe(1);expect(childDidFocusHandler.mock.calls.length).toBe(1);});it('grandchildren transitions',function(){var grandParentSubscriber=jest.fn();var emitGrandParentAction=function emitGrandParentAction(payload){grandParentSubscriber.mock.calls.forEach(function(subs){if(subs[0]===payload.type){subs[1](payload);}});};var subscriptionRemove=function subscriptionRemove(){};grandParentSubscriber.mockReturnValueOnce({remove:subscriptionRemove});var parentSubscriber=getChildEventSubscriber(grandParentSubscriber,'parent').addListener;var childEventSubscriber=getChildEventSubscriber(parentSubscriber,'key1').addListener;var makeFakeState=function makeFakeState(childIndex,childIsTransitioning){return{index:1,routes:[{key:'nothing'},{key:'parent',index:childIndex,transitions:{pushing:[],popping:childIsTransitioning?['key2']:[]},routes:[{key:'key0'},{key:'key1'},{key:'key2'}]}]};};var blurredState=makeFakeState(0,false);var transitionState=makeFakeState(1,true);var focusState=makeFakeState(1,false);var transition2State=makeFakeState(2,true);var blurred2State=makeFakeState(2,false);var childActionHandler=jest.fn();var childWillFocusHandler=jest.fn();var childDidFocusHandler=jest.fn();var childWillBlurHandler=jest.fn();var childDidBlurHandler=jest.fn();childEventSubscriber('action',childActionHandler);childEventSubscriber('willFocus',childWillFocusHandler);childEventSubscriber('didFocus',childDidFocusHandler);childEventSubscriber('willBlur',childWillBlurHandler);childEventSubscriber('didBlur',childDidBlurHandler);emitGrandParentAction({type:'action',state:transitionState,lastState:blurredState,action:{type:'FooAction'}});expect(childActionHandler.mock.calls.length).toBe(0);expect(childWillFocusHandler.mock.calls.length).toBe(1);expect(childDidFocusHandler.mock.calls.length).toBe(0);emitGrandParentAction({type:'action',state:focusState,lastState:transitionState,action:{type:'FooAction'}});expect(childActionHandler.mock.calls.length).toBe(0);expect(childWillFocusHandler.mock.calls.length).toBe(1);expect(childDidFocusHandler.mock.calls.length).toBe(1);emitGrandParentAction({type:'action',state:focusState,lastState:focusState,action:{type:'TestAction'}});expect(childWillFocusHandler.mock.calls.length).toBe(1);expect(childDidFocusHandler.mock.calls.length).toBe(1);expect(childActionHandler.mock.calls.length).toBe(1);emitGrandParentAction({type:'action',state:transition2State,lastState:focusState,action:{type:'CauseWillBlurAction'}});expect(childWillBlurHandler.mock.calls.length).toBe(1);expect(childDidBlurHandler.mock.calls.length).toBe(0);expect(childActionHandler.mock.calls.length).toBe(1);emitGrandParentAction({type:'action',state:blurred2State,lastState:transition2State,action:{type:'CauseDidBlurAction'}});expect(childWillBlurHandler.mock.calls.length).toBe(1);expect(childDidBlurHandler.mock.calls.length).toBe(1);expect(childActionHandler.mock.calls.length).toBe(1);});it('grandchildren pass through transitions',function(){var grandParentSubscriber=jest.fn();var emitGrandParentAction=function emitGrandParentAction(payload){grandParentSubscriber.mock.calls.forEach(function(subs){if(subs[0]===payload.type){subs[1](payload);}});};var subscriptionRemove=function subscriptionRemove(){};grandParentSubscriber.mockReturnValueOnce({remove:subscriptionRemove});var parentSubscriber=getChildEventSubscriber(grandParentSubscriber,'parent').addListener;var childEventSubscriber=getChildEventSubscriber(parentSubscriber,'key1').addListener;var makeFakeState=function makeFakeState(childIndex,childIsTransitioning){return{index:childIndex,transitions:{pushing:[],popping:childIsTransitioning?['key2']:[]},routes:[{key:'nothing'},{key:'parent',index:1,routes:[{key:'key0'},{key:'key1'},{key:'key2'}]}].slice(0,childIndex+1)};};var blurredState=makeFakeState(0,false);var transitionState=makeFakeState(1,true);var focusState=makeFakeState(1,false);var transition2State=makeFakeState(0,true);var blurred2State=makeFakeState(0,false);var childActionHandler=jest.fn();var childWillFocusHandler=jest.fn();var childDidFocusHandler=jest.fn();var childWillBlurHandler=jest.fn();var childDidBlurHandler=jest.fn();childEventSubscriber('action',childActionHandler);childEventSubscriber('willFocus',childWillFocusHandler);childEventSubscriber('didFocus',childDidFocusHandler);childEventSubscriber('willBlur',childWillBlurHandler);childEventSubscriber('didBlur',childDidBlurHandler);emitGrandParentAction({type:'action',state:transitionState,lastState:blurredState,action:{type:'FooAction'}});expect(childActionHandler.mock.calls.length).toBe(0);expect(childWillFocusHandler.mock.calls.length).toBe(1);expect(childDidFocusHandler.mock.calls.length).toBe(0);emitGrandParentAction({type:'action',state:focusState,lastState:transitionState,action:{type:'FooAction'}});expect(childActionHandler.mock.calls.length).toBe(0);expect(childWillFocusHandler.mock.calls.length).toBe(1);expect(childDidFocusHandler.mock.calls.length).toBe(1);emitGrandParentAction({type:'action',state:focusState,lastState:focusState,action:{type:'TestAction'}});expect(childWillFocusHandler.mock.calls.length).toBe(1);expect(childDidFocusHandler.mock.calls.length).toBe(1);expect(childActionHandler.mock.calls.length).toBe(1);emitGrandParentAction({type:'action',state:transition2State,lastState:focusState,action:{type:'CauseWillBlurAction'}});expect(childWillBlurHandler.mock.calls.length).toBe(1);expect(childDidBlurHandler.mock.calls.length).toBe(0);expect(childActionHandler.mock.calls.length).toBe(1);emitGrandParentAction({type:'action',state:blurred2State,lastState:transition2State,action:{type:'CauseDidBlurAction'}});expect(childWillBlurHandler.mock.calls.length).toBe(1);expect(childDidBlurHandler.mock.calls.length).toBe(1);expect(childActionHandler.mock.calls.length).toBe(1);});it('child focus with transition',function(){var parentSubscriber=jest.fn();var emitParentAction=function emitParentAction(payload){parentSubscriber.mock.calls.forEach(function(subs){if(subs[0]===payload.type){subs[1](payload);}});};var subscriptionRemove=function subscriptionRemove(){};parentSubscriber.mockReturnValueOnce({remove:subscriptionRemove});var childEventSubscriber=getChildEventSubscriber(parentSubscriber,'key1').addListener;var randomAction={type:'FooAction'};var testState={key:'foo',routeName:'FooRoute',routes:[{key:'key0'},{key:'key1'}],index:0};var childWillFocusHandler=jest.fn();var childDidFocusHandler=jest.fn();var childWillBlurHandler=jest.fn();var childDidBlurHandler=jest.fn();childEventSubscriber('willFocus',childWillFocusHandler);childEventSubscriber('didFocus',childDidFocusHandler);childEventSubscriber('willBlur',childWillBlurHandler);childEventSubscriber('didBlur',childDidBlurHandler);emitParentAction({type:'didFocus',action:randomAction,lastState:testState,state:testState});emitParentAction({type:'action',action:randomAction,lastState:testState,state:_objectSpread({},testState,{index:1,transitions:{pushing:[],popping:['key1']}})});expect(childWillFocusHandler.mock.calls.length).toBe(1);emitParentAction({type:'action',action:randomAction,lastState:_objectSpread({},testState,{index:1,transitions:{pushing:[],popping:['key1']}}),state:_objectSpread({},testState,{index:1})});expect(childDidFocusHandler.mock.calls.length).toBe(1);emitParentAction({type:'action',action:randomAction,lastState:_objectSpread({},testState,{index:1}),state:_objectSpread({},testState,{index:0,transitions:{pushing:[],popping:['key1']}})});expect(childWillBlurHandler.mock.calls.length).toBe(1);emitParentAction({type:'action',action:randomAction,lastState:_objectSpread({},testState,{index:0,transitions:{pushing:[],popping:['key1']}}),state:_objectSpread({},testState,{index:0})});expect(childDidBlurHandler.mock.calls.length).toBe(1);});it('child focus with immediate transition',function(){var parentSubscriber=jest.fn();var emitParentAction=function emitParentAction(payload){parentSubscriber.mock.calls.forEach(function(subs){if(subs[0]===payload.type){subs[1](payload);}});};var subscriptionRemove=function subscriptionRemove(){};parentSubscriber.mockReturnValueOnce({remove:subscriptionRemove});var childEventSubscriber=getChildEventSubscriber(parentSubscriber,'key1').addListener;var randomAction={type:'FooAction'};var testState={key:'foo',routeName:'FooRoute',routes:[{key:'key0'},{key:'key1'}],index:0};var childWillFocusHandler=jest.fn();var childDidFocusHandler=jest.fn();var childWillBlurHandler=jest.fn();var childDidBlurHandler=jest.fn();childEventSubscriber('willFocus',childWillFocusHandler);childEventSubscriber('didFocus',childDidFocusHandler);childEventSubscriber('willBlur',childWillBlurHandler);childEventSubscriber('didBlur',childDidBlurHandler);emitParentAction({type:'didFocus',action:randomAction,lastState:testState,state:testState});emitParentAction({type:'action',action:randomAction,lastState:testState,state:_objectSpread({},testState,{index:1})});expect(childWillFocusHandler.mock.calls.length).toBe(1);expect(childDidFocusHandler.mock.calls.length).toBe(1);emitParentAction({type:'action',action:randomAction,lastState:_objectSpread({},testState,{index:1}),state:_objectSpread({},testState,{index:0})});expect(childWillBlurHandler.mock.calls.length).toBe(1);expect(childDidBlurHandler.mock.calls.length).toBe(1);});var setupEventTest=function setupEventTest(subscriptionKey,initialLastFocusEvent){var parentSubscriber=jest.fn();var emitEvent=function emitEvent(payload){parentSubscriber.mock.calls.forEach(function(subs){if(subs[0]===payload.type){subs[1](payload);}});};var subscriptionRemove=function subscriptionRemove(){};parentSubscriber.mockReturnValueOnce({remove:subscriptionRemove});var evtProvider=getChildEventSubscriber(parentSubscriber,subscriptionKey,initialLastFocusEvent);var handlers={};evtProvider.addListener('action',handlers.action=jest.fn());evtProvider.addListener('willFocus',handlers.willFocus=jest.fn());evtProvider.addListener('didFocus',handlers.didFocus=jest.fn());evtProvider.addListener('willBlur',handlers.willBlur=jest.fn());evtProvider.addListener('didBlur',handlers.didBlur=jest.fn());return{emitEvent:emitEvent,handlers:handlers,evtProvider:evtProvider};};it('immediate back with uncompleted transition will focus first screen again',function(){var _setupEventTest=setupEventTest('key0','didFocus'),handlers=_setupEventTest.handlers,emitEvent=_setupEventTest.emitEvent;emitEvent({type:'action',state:{index:1,routes:[{key:'key0'},{key:'key1'}],transitions:{pushing:[],popping:['key1']}},lastState:{index:0,routes:[{key:'key0'}]},action:{type:'Any action, does not matter here'}});expect(handlers.willFocus.mock.calls.length).toBe(0);expect(handlers.didFocus.mock.calls.length).toBe(0);expect(handlers.willBlur.mock.calls.length).toBe(1);expect(handlers.didBlur.mock.calls.length).toBe(0);emitEvent({type:'action',state:{index:0,routes:[{key:'key0'}],transitions:{pushing:[],popping:['key0']}},lastState:{index:1,routes:[{key:'key0'},{key:'key1'}],transitions:{pushing:[],popping:['key1']}},action:{type:'Any action, does not matter here'}});expect(handlers.willFocus.mock.calls.length).toBe(1);expect(handlers.didFocus.mock.calls.length).toBe(0);expect(handlers.willBlur.mock.calls.length).toBe(1);expect(handlers.didBlur.mock.calls.length).toBe(0);emitEvent({type:'action',state:{index:0,routes:[{key:'key0'}]},lastState:{index:0,routes:[{key:'key0'}],transitions:{pushing:[],popping:['key0']}},action:{type:'Any action, does not matter here'}});expect(handlers.willFocus.mock.calls.length).toBe(1);expect(handlers.didFocus.mock.calls.length).toBe(1);expect(handlers.willBlur.mock.calls.length).toBe(1);expect(handlers.didBlur.mock.calls.length).toBe(0);});
+ //# sourceMappingURL=getChildEventSubscriber-test.js.map
+\ No newline at end of file
+diff --git a/node_modules/@react-navigation/core/lib/module/__tests__/getChildEventSubscriber-test.js.map b/node_modules/@react-navigation/core/lib/module/__tests__/getChildEventSubscriber-test.js.map
+index 4c9a2d0..93fe61a 100644
+--- a/node_modules/@react-navigation/core/lib/module/__tests__/getChildEventSubscriber-test.js.map
++++ b/node_modules/@react-navigation/core/lib/module/__tests__/getChildEventSubscriber-test.js.map
+@@ -1 +1 @@
+-{"version":3,"sources":["getChildEventSubscriber-test.js"],"names":["getChildEventSubscriber","it","parentSubscriber","jest","fn","emitParentAction","payload","mock","calls","forEach","subs","type","subscriptionRemove","mockReturnValueOnce","remove","childEventSubscriber","addListener","testState","key","routeName","routes","index","isTransitioning","focusedTestState","childActionHandler","childWillFocusHandler","childDidFocusHandler","state","lastState","action","expect","length","toBe","grandParentSubscriber","emitGrandParentAction","parentBlurState","parentTransitionState","parentFocusState","makeFakeState","childIndex","childIsTransitioning","blurredState","transitionState","focusState","transition2State","blurred2State","childWillBlurHandler","childDidBlurHandler","slice","randomAction","setupEventTest","subscriptionKey","initialLastFocusEvent","emitEvent","evtProvider","handlers","willFocus","didFocus","willBlur","didBlur"],"mappings":"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","sourcesContent":["import getChildEventSubscriber from '../getChildEventSubscriber';\n\nit('child action events only flow when focused', () => {\n const parentSubscriber = jest.fn();\n const emitParentAction = payload => {\n parentSubscriber.mock.calls.forEach(subs => {\n if (subs[0] === payload.type) {\n subs[1](payload);\n }\n });\n };\n const subscriptionRemove = () => {};\n parentSubscriber.mockReturnValueOnce({ remove: subscriptionRemove });\n const childEventSubscriber = getChildEventSubscriber(parentSubscriber, 'key1')\n .addListener;\n const testState = {\n key: 'foo',\n routeName: 'FooRoute',\n routes: [{ key: 'key0' }, { key: 'key1' }],\n index: 0,\n isTransitioning: false,\n };\n const focusedTestState = {\n ...testState,\n index: 1,\n };\n const childActionHandler = jest.fn();\n const childWillFocusHandler = jest.fn();\n const childDidFocusHandler = jest.fn();\n childEventSubscriber('action', childActionHandler);\n childEventSubscriber('willFocus', childWillFocusHandler);\n childEventSubscriber('didFocus', childDidFocusHandler);\n emitParentAction({\n type: 'action',\n state: focusedTestState,\n lastState: testState,\n action: { type: 'FooAction' },\n });\n expect(childActionHandler.mock.calls.length).toBe(0);\n expect(childWillFocusHandler.mock.calls.length).toBe(1);\n expect(childDidFocusHandler.mock.calls.length).toBe(1);\n emitParentAction({\n type: 'action',\n state: focusedTestState,\n lastState: focusedTestState,\n action: { type: 'FooAction' },\n });\n expect(childActionHandler.mock.calls.length).toBe(1);\n expect(childWillFocusHandler.mock.calls.length).toBe(1);\n expect(childDidFocusHandler.mock.calls.length).toBe(1);\n});\n\nit('grandchildren subscription', () => {\n const grandParentSubscriber = jest.fn();\n const emitGrandParentAction = payload => {\n grandParentSubscriber.mock.calls.forEach(subs => {\n if (subs[0] === payload.type) {\n subs[1](payload);\n }\n });\n };\n const subscriptionRemove = () => {};\n grandParentSubscriber.mockReturnValueOnce({ remove: subscriptionRemove });\n const parentSubscriber = getChildEventSubscriber(\n grandParentSubscriber,\n 'parent'\n ).addListener;\n const childEventSubscriber = getChildEventSubscriber(parentSubscriber, 'key1')\n .addListener;\n const parentBlurState = {\n key: 'foo',\n routeName: 'FooRoute',\n routes: [\n { key: 'aunt' },\n {\n key: 'parent',\n routes: [{ key: 'key0' }, { key: 'key1' }],\n index: 1,\n isTransitioning: false,\n },\n ],\n index: 0,\n isTransitioning: false,\n };\n const parentTransitionState = {\n ...parentBlurState,\n index: 1,\n isTransitioning: true,\n };\n const parentFocusState = {\n ...parentTransitionState,\n isTransitioning: false,\n };\n const childActionHandler = jest.fn();\n const childWillFocusHandler = jest.fn();\n const childDidFocusHandler = jest.fn();\n childEventSubscriber('action', childActionHandler);\n childEventSubscriber('willFocus', childWillFocusHandler);\n childEventSubscriber('didFocus', childDidFocusHandler);\n emitGrandParentAction({\n type: 'action',\n state: parentTransitionState,\n lastState: parentBlurState,\n action: { type: 'FooAction' },\n });\n expect(childActionHandler.mock.calls.length).toBe(0);\n expect(childWillFocusHandler.mock.calls.length).toBe(1);\n expect(childDidFocusHandler.mock.calls.length).toBe(0);\n emitGrandParentAction({\n type: 'action',\n state: parentFocusState,\n lastState: parentTransitionState,\n action: { type: 'FooAction' },\n });\n expect(childActionHandler.mock.calls.length).toBe(0);\n expect(childWillFocusHandler.mock.calls.length).toBe(1);\n expect(childDidFocusHandler.mock.calls.length).toBe(1);\n});\n\nit('grandchildren transitions', () => {\n const grandParentSubscriber = jest.fn();\n const emitGrandParentAction = payload => {\n grandParentSubscriber.mock.calls.forEach(subs => {\n if (subs[0] === payload.type) {\n subs[1](payload);\n }\n });\n };\n const subscriptionRemove = () => {};\n grandParentSubscriber.mockReturnValueOnce({ remove: subscriptionRemove });\n const parentSubscriber = getChildEventSubscriber(\n grandParentSubscriber,\n 'parent'\n ).addListener;\n const childEventSubscriber = getChildEventSubscriber(parentSubscriber, 'key1')\n .addListener;\n const makeFakeState = (childIndex, childIsTransitioning) => ({\n index: 1,\n isTransitioning: false,\n routes: [\n { key: 'nothing' },\n {\n key: 'parent',\n index: childIndex,\n isTransitioning: childIsTransitioning,\n routes: [{ key: 'key0' }, { key: 'key1' }, { key: 'key2' }],\n },\n ],\n });\n const blurredState = makeFakeState(0, false);\n const transitionState = makeFakeState(1, true);\n const focusState = makeFakeState(1, false);\n const transition2State = makeFakeState(2, true);\n const blurred2State = makeFakeState(2, false);\n\n const childActionHandler = jest.fn();\n const childWillFocusHandler = jest.fn();\n const childDidFocusHandler = jest.fn();\n const childWillBlurHandler = jest.fn();\n const childDidBlurHandler = jest.fn();\n childEventSubscriber('action', childActionHandler);\n childEventSubscriber('willFocus', childWillFocusHandler);\n childEventSubscriber('didFocus', childDidFocusHandler);\n childEventSubscriber('willBlur', childWillBlurHandler);\n childEventSubscriber('didBlur', childDidBlurHandler);\n emitGrandParentAction({\n type: 'action',\n state: transitionState,\n lastState: blurredState,\n action: { type: 'FooAction' },\n });\n expect(childActionHandler.mock.calls.length).toBe(0);\n expect(childWillFocusHandler.mock.calls.length).toBe(1);\n expect(childDidFocusHandler.mock.calls.length).toBe(0);\n emitGrandParentAction({\n type: 'action',\n state: focusState,\n lastState: transitionState,\n action: { type: 'FooAction' },\n });\n expect(childActionHandler.mock.calls.length).toBe(0);\n expect(childWillFocusHandler.mock.calls.length).toBe(1);\n expect(childDidFocusHandler.mock.calls.length).toBe(1);\n emitGrandParentAction({\n type: 'action',\n state: focusState,\n lastState: focusState,\n action: { type: 'TestAction' },\n });\n expect(childWillFocusHandler.mock.calls.length).toBe(1);\n expect(childDidFocusHandler.mock.calls.length).toBe(1);\n expect(childActionHandler.mock.calls.length).toBe(1);\n emitGrandParentAction({\n type: 'action',\n state: transition2State,\n lastState: focusState,\n action: { type: 'CauseWillBlurAction' },\n });\n expect(childWillBlurHandler.mock.calls.length).toBe(1);\n expect(childDidBlurHandler.mock.calls.length).toBe(0);\n expect(childActionHandler.mock.calls.length).toBe(1);\n emitGrandParentAction({\n type: 'action',\n state: blurred2State,\n lastState: transition2State,\n action: { type: 'CauseDidBlurAction' },\n });\n expect(childWillBlurHandler.mock.calls.length).toBe(1);\n expect(childDidBlurHandler.mock.calls.length).toBe(1);\n expect(childActionHandler.mock.calls.length).toBe(1);\n});\n\nit('grandchildren pass through transitions', () => {\n const grandParentSubscriber = jest.fn();\n const emitGrandParentAction = payload => {\n grandParentSubscriber.mock.calls.forEach(subs => {\n if (subs[0] === payload.type) {\n subs[1](payload);\n }\n });\n };\n const subscriptionRemove = () => {};\n grandParentSubscriber.mockReturnValueOnce({ remove: subscriptionRemove });\n const parentSubscriber = getChildEventSubscriber(\n grandParentSubscriber,\n 'parent'\n ).addListener;\n const childEventSubscriber = getChildEventSubscriber(parentSubscriber, 'key1')\n .addListener;\n const makeFakeState = (childIndex, childIsTransitioning) => ({\n index: childIndex,\n isTransitioning: childIsTransitioning,\n routes: [\n { key: 'nothing' },\n {\n key: 'parent',\n index: 1,\n isTransitioning: false,\n routes: [{ key: 'key0' }, { key: 'key1' }, { key: 'key2' }],\n },\n ].slice(0, childIndex + 1),\n });\n const blurredState = makeFakeState(0, false);\n const transitionState = makeFakeState(1, true);\n const focusState = makeFakeState(1, false);\n const transition2State = makeFakeState(0, true);\n const blurred2State = makeFakeState(0, false);\n\n const childActionHandler = jest.fn();\n const childWillFocusHandler = jest.fn();\n const childDidFocusHandler = jest.fn();\n const childWillBlurHandler = jest.fn();\n const childDidBlurHandler = jest.fn();\n childEventSubscriber('action', childActionHandler);\n childEventSubscriber('willFocus', childWillFocusHandler);\n childEventSubscriber('didFocus', childDidFocusHandler);\n childEventSubscriber('willBlur', childWillBlurHandler);\n childEventSubscriber('didBlur', childDidBlurHandler);\n emitGrandParentAction({\n type: 'action',\n state: transitionState,\n lastState: blurredState,\n action: { type: 'FooAction' },\n });\n expect(childActionHandler.mock.calls.length).toBe(0);\n expect(childWillFocusHandler.mock.calls.length).toBe(1);\n expect(childDidFocusHandler.mock.calls.length).toBe(0);\n emitGrandParentAction({\n type: 'action',\n state: focusState,\n lastState: transitionState,\n action: { type: 'FooAction' },\n });\n expect(childActionHandler.mock.calls.length).toBe(0);\n expect(childWillFocusHandler.mock.calls.length).toBe(1);\n expect(childDidFocusHandler.mock.calls.length).toBe(1);\n emitGrandParentAction({\n type: 'action',\n state: focusState,\n lastState: focusState,\n action: { type: 'TestAction' },\n });\n expect(childWillFocusHandler.mock.calls.length).toBe(1);\n expect(childDidFocusHandler.mock.calls.length).toBe(1);\n expect(childActionHandler.mock.calls.length).toBe(1);\n emitGrandParentAction({\n type: 'action',\n state: transition2State,\n lastState: focusState,\n action: { type: 'CauseWillBlurAction' },\n });\n expect(childWillBlurHandler.mock.calls.length).toBe(1);\n expect(childDidBlurHandler.mock.calls.length).toBe(0);\n expect(childActionHandler.mock.calls.length).toBe(1);\n emitGrandParentAction({\n type: 'action',\n state: blurred2State,\n lastState: transition2State,\n action: { type: 'CauseDidBlurAction' },\n });\n expect(childWillBlurHandler.mock.calls.length).toBe(1);\n expect(childDidBlurHandler.mock.calls.length).toBe(1);\n expect(childActionHandler.mock.calls.length).toBe(1);\n});\n\nit('child focus with transition', () => {\n const parentSubscriber = jest.fn();\n const emitParentAction = payload => {\n parentSubscriber.mock.calls.forEach(subs => {\n if (subs[0] === payload.type) {\n subs[1](payload);\n }\n });\n };\n const subscriptionRemove = () => {};\n parentSubscriber.mockReturnValueOnce({ remove: subscriptionRemove });\n const childEventSubscriber = getChildEventSubscriber(parentSubscriber, 'key1')\n .addListener;\n const randomAction = { type: 'FooAction' };\n const testState = {\n key: 'foo',\n routeName: 'FooRoute',\n routes: [{ key: 'key0' }, { key: 'key1' }],\n index: 0,\n isTransitioning: false,\n };\n const childWillFocusHandler = jest.fn();\n const childDidFocusHandler = jest.fn();\n const childWillBlurHandler = jest.fn();\n const childDidBlurHandler = jest.fn();\n childEventSubscriber('willFocus', childWillFocusHandler);\n childEventSubscriber('didFocus', childDidFocusHandler);\n childEventSubscriber('willBlur', childWillBlurHandler);\n childEventSubscriber('didBlur', childDidBlurHandler);\n emitParentAction({\n type: 'didFocus',\n action: randomAction,\n lastState: testState,\n state: testState,\n });\n emitParentAction({\n type: 'action',\n action: randomAction,\n lastState: testState,\n state: {\n ...testState,\n index: 1,\n isTransitioning: true,\n },\n });\n expect(childWillFocusHandler.mock.calls.length).toBe(1);\n emitParentAction({\n type: 'action',\n action: randomAction,\n lastState: {\n ...testState,\n index: 1,\n isTransitioning: true,\n },\n state: {\n ...testState,\n index: 1,\n isTransitioning: false,\n },\n });\n expect(childDidFocusHandler.mock.calls.length).toBe(1);\n emitParentAction({\n type: 'action',\n action: randomAction,\n lastState: {\n ...testState,\n index: 1,\n isTransitioning: false,\n },\n state: {\n ...testState,\n index: 0,\n isTransitioning: true,\n },\n });\n expect(childWillBlurHandler.mock.calls.length).toBe(1);\n emitParentAction({\n type: 'action',\n action: randomAction,\n lastState: {\n ...testState,\n index: 0,\n isTransitioning: true,\n },\n state: {\n ...testState,\n index: 0,\n isTransitioning: false,\n },\n });\n expect(childDidBlurHandler.mock.calls.length).toBe(1);\n});\n\nit('child focus with immediate transition', () => {\n const parentSubscriber = jest.fn();\n const emitParentAction = payload => {\n parentSubscriber.mock.calls.forEach(subs => {\n if (subs[0] === payload.type) {\n subs[1](payload);\n }\n });\n };\n const subscriptionRemove = () => {};\n parentSubscriber.mockReturnValueOnce({ remove: subscriptionRemove });\n const childEventSubscriber = getChildEventSubscriber(parentSubscriber, 'key1')\n .addListener;\n const randomAction = { type: 'FooAction' };\n const testState = {\n key: 'foo',\n routeName: 'FooRoute',\n routes: [{ key: 'key0' }, { key: 'key1' }],\n index: 0,\n isTransitioning: false,\n };\n const childWillFocusHandler = jest.fn();\n const childDidFocusHandler = jest.fn();\n const childWillBlurHandler = jest.fn();\n const childDidBlurHandler = jest.fn();\n childEventSubscriber('willFocus', childWillFocusHandler);\n childEventSubscriber('didFocus', childDidFocusHandler);\n childEventSubscriber('willBlur', childWillBlurHandler);\n childEventSubscriber('didBlur', childDidBlurHandler);\n emitParentAction({\n type: 'didFocus',\n action: randomAction,\n lastState: testState,\n state: testState,\n });\n emitParentAction({\n type: 'action',\n action: randomAction,\n lastState: testState,\n state: {\n ...testState,\n index: 1,\n },\n });\n expect(childWillFocusHandler.mock.calls.length).toBe(1);\n expect(childDidFocusHandler.mock.calls.length).toBe(1);\n\n emitParentAction({\n type: 'action',\n action: randomAction,\n lastState: {\n ...testState,\n index: 1,\n },\n state: {\n ...testState,\n index: 0,\n },\n });\n expect(childWillBlurHandler.mock.calls.length).toBe(1);\n expect(childDidBlurHandler.mock.calls.length).toBe(1);\n});\n\nconst setupEventTest = (subscriptionKey, initialLastFocusEvent) => {\n const parentSubscriber = jest.fn();\n const emitEvent = payload => {\n parentSubscriber.mock.calls.forEach(subs => {\n if (subs[0] === payload.type) {\n subs[1](payload);\n }\n });\n };\n const subscriptionRemove = () => {};\n parentSubscriber.mockReturnValueOnce({ remove: subscriptionRemove });\n const evtProvider = getChildEventSubscriber(\n parentSubscriber,\n subscriptionKey,\n initialLastFocusEvent\n );\n const handlers = {};\n evtProvider.addListener('action', (handlers.action = jest.fn()));\n evtProvider.addListener('willFocus', (handlers.willFocus = jest.fn()));\n evtProvider.addListener('didFocus', (handlers.didFocus = jest.fn()));\n evtProvider.addListener('willBlur', (handlers.willBlur = jest.fn()));\n evtProvider.addListener('didBlur', (handlers.didBlur = jest.fn()));\n return { emitEvent, handlers, evtProvider };\n};\n\nit('immediate back with uncompleted transition will focus first screen again', () => {\n const { handlers, emitEvent } = setupEventTest('key0', 'didFocus');\n emitEvent({\n type: 'action',\n state: {\n index: 1,\n routes: [{ key: 'key0' }, { key: 'key1' }],\n isTransitioning: true,\n },\n lastState: {\n index: 0,\n routes: [{ key: 'key0' }],\n isTransitioning: false,\n },\n action: { type: 'Any action, does not matter here' },\n });\n expect(handlers.willFocus.mock.calls.length).toBe(0);\n expect(handlers.didFocus.mock.calls.length).toBe(0);\n expect(handlers.willBlur.mock.calls.length).toBe(1);\n expect(handlers.didBlur.mock.calls.length).toBe(0);\n emitEvent({\n type: 'action',\n state: {\n index: 0,\n routes: [{ key: 'key0' }],\n isTransitioning: true,\n },\n lastState: {\n index: 1,\n routes: [{ key: 'key0' }, { key: 'key1' }],\n isTransitioning: true,\n },\n action: { type: 'Any action, does not matter here' },\n });\n expect(handlers.willFocus.mock.calls.length).toBe(1);\n expect(handlers.didFocus.mock.calls.length).toBe(0);\n expect(handlers.willBlur.mock.calls.length).toBe(1);\n expect(handlers.didBlur.mock.calls.length).toBe(0);\n emitEvent({\n type: 'action',\n state: {\n index: 0,\n routes: [{ key: 'key0' }],\n isTransitioning: false,\n },\n lastState: {\n index: 0,\n routes: [{ key: 'key0' }],\n isTransitioning: true,\n },\n action: { type: 'Any action, does not matter here' },\n });\n expect(handlers.willFocus.mock.calls.length).toBe(1);\n expect(handlers.didFocus.mock.calls.length).toBe(1);\n expect(handlers.willBlur.mock.calls.length).toBe(1);\n expect(handlers.didBlur.mock.calls.length).toBe(0);\n});\n"]}
+\ No newline at end of file
++{"version":3,"sources":["getChildEventSubscriber-test.js"],"names":["getChildEventSubscriber","it","parentSubscriber","jest","fn","emitParentAction","payload","mock","calls","forEach","subs","type","subscriptionRemove","mockReturnValueOnce","remove","childEventSubscriber","addListener","testState","key","routeName","routes","index","focusedTestState","childActionHandler","childWillFocusHandler","childDidFocusHandler","state","lastState","action","expect","length","toBe","grandParentSubscriber","emitGrandParentAction","parentBlurState","transitions","pushing","popping","parentTransitionState","parentFocusState","makeFakeState","childIndex","childIsTransitioning","blurredState","transitionState","focusState","transition2State","blurred2State","childWillBlurHandler","childDidBlurHandler","slice","randomAction","setupEventTest","subscriptionKey","initialLastFocusEvent","emitEvent","evtProvider","handlers","willFocus","didFocus","willBlur","didBlur"],"mappings":"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","sourcesContent":["import getChildEventSubscriber from '../getChildEventSubscriber';\n\nit('child action events only flow when focused', () => {\n const parentSubscriber = jest.fn();\n const emitParentAction = payload => {\n parentSubscriber.mock.calls.forEach(subs => {\n if (subs[0] === payload.type) {\n subs[1](payload);\n }\n });\n };\n const subscriptionRemove = () => {};\n parentSubscriber.mockReturnValueOnce({ remove: subscriptionRemove });\n const childEventSubscriber = getChildEventSubscriber(parentSubscriber, 'key1')\n .addListener;\n const testState = {\n key: 'foo',\n routeName: 'FooRoute',\n routes: [{ key: 'key0' }, { key: 'key1' }],\n index: 0,\n };\n const focusedTestState = {\n ...testState,\n index: 1,\n };\n const childActionHandler = jest.fn();\n const childWillFocusHandler = jest.fn();\n const childDidFocusHandler = jest.fn();\n childEventSubscriber('action', childActionHandler);\n childEventSubscriber('willFocus', childWillFocusHandler);\n childEventSubscriber('didFocus', childDidFocusHandler);\n emitParentAction({\n type: 'action',\n state: focusedTestState,\n lastState: testState,\n action: { type: 'FooAction' },\n });\n expect(childActionHandler.mock.calls.length).toBe(0);\n expect(childWillFocusHandler.mock.calls.length).toBe(1);\n expect(childDidFocusHandler.mock.calls.length).toBe(1);\n emitParentAction({\n type: 'action',\n state: focusedTestState,\n lastState: focusedTestState,\n action: { type: 'FooAction' },\n });\n expect(childActionHandler.mock.calls.length).toBe(1);\n expect(childWillFocusHandler.mock.calls.length).toBe(1);\n expect(childDidFocusHandler.mock.calls.length).toBe(1);\n});\n\nit('grandchildren subscription', () => {\n const grandParentSubscriber = jest.fn();\n const emitGrandParentAction = payload => {\n grandParentSubscriber.mock.calls.forEach(subs => {\n if (subs[0] === payload.type) {\n subs[1](payload);\n }\n });\n };\n const subscriptionRemove = () => {};\n grandParentSubscriber.mockReturnValueOnce({ remove: subscriptionRemove });\n const parentSubscriber = getChildEventSubscriber(\n grandParentSubscriber,\n 'parent'\n ).addListener;\n const childEventSubscriber = getChildEventSubscriber(parentSubscriber, 'key1')\n .addListener;\n const parentBlurState = {\n key: 'foo',\n routeName: 'FooRoute',\n routes: [\n { key: 'aunt' },\n {\n key: 'parent',\n routes: [{ key: 'key0' }, { key: 'key1' }],\n index: 1,\n },\n ],\n transitions: {\n pushing: [],\n popping: ['parent'],\n },\n index: 0,\n };\n const parentTransitionState = {\n ...parentBlurState,\n index: 1,\n transitions: { pushing: ['key1'], popping: [] },\n };\n const parentFocusState = {\n ...parentTransitionState,\n };\n const childActionHandler = jest.fn();\n const childWillFocusHandler = jest.fn();\n const childDidFocusHandler = jest.fn();\n childEventSubscriber('action', childActionHandler);\n childEventSubscriber('willFocus', childWillFocusHandler);\n childEventSubscriber('didFocus', childDidFocusHandler);\n emitGrandParentAction({\n type: 'action',\n state: parentTransitionState,\n lastState: parentBlurState,\n action: { type: 'FooAction' },\n });\n expect(childActionHandler.mock.calls.length).toBe(0);\n expect(childWillFocusHandler.mock.calls.length).toBe(1);\n expect(childDidFocusHandler.mock.calls.length).toBe(0);\n emitGrandParentAction({\n type: 'action',\n state: parentFocusState,\n lastState: parentTransitionState,\n action: { type: 'FooAction' },\n });\n expect(childActionHandler.mock.calls.length).toBe(0);\n expect(childWillFocusHandler.mock.calls.length).toBe(1);\n expect(childDidFocusHandler.mock.calls.length).toBe(1);\n});\n\nit('grandchildren transitions', () => {\n const grandParentSubscriber = jest.fn();\n const emitGrandParentAction = payload => {\n grandParentSubscriber.mock.calls.forEach(subs => {\n if (subs[0] === payload.type) {\n subs[1](payload);\n }\n });\n };\n const subscriptionRemove = () => {};\n grandParentSubscriber.mockReturnValueOnce({ remove: subscriptionRemove });\n const parentSubscriber = getChildEventSubscriber(\n grandParentSubscriber,\n 'parent'\n ).addListener;\n const childEventSubscriber = getChildEventSubscriber(parentSubscriber, 'key1')\n .addListener;\n const makeFakeState = (childIndex, childIsTransitioning) => ({\n index: 1,\n\n routes: [\n { key: 'nothing' },\n {\n key: 'parent',\n index: childIndex,\n transitions: {\n pushing: [],\n popping: childIsTransitioning ? ['key2'] : [],\n },\n routes: [{ key: 'key0' }, { key: 'key1' }, { key: 'key2' }],\n },\n ],\n });\n const blurredState = makeFakeState(0, false);\n const transitionState = makeFakeState(1, true);\n const focusState = makeFakeState(1, false);\n const transition2State = makeFakeState(2, true);\n const blurred2State = makeFakeState(2, false);\n\n const childActionHandler = jest.fn();\n const childWillFocusHandler = jest.fn();\n const childDidFocusHandler = jest.fn();\n const childWillBlurHandler = jest.fn();\n const childDidBlurHandler = jest.fn();\n childEventSubscriber('action', childActionHandler);\n childEventSubscriber('willFocus', childWillFocusHandler);\n childEventSubscriber('didFocus', childDidFocusHandler);\n childEventSubscriber('willBlur', childWillBlurHandler);\n childEventSubscriber('didBlur', childDidBlurHandler);\n emitGrandParentAction({\n type: 'action',\n state: transitionState,\n lastState: blurredState,\n action: { type: 'FooAction' },\n });\n expect(childActionHandler.mock.calls.length).toBe(0);\n expect(childWillFocusHandler.mock.calls.length).toBe(1);\n expect(childDidFocusHandler.mock.calls.length).toBe(0);\n emitGrandParentAction({\n type: 'action',\n state: focusState,\n lastState: transitionState,\n action: { type: 'FooAction' },\n });\n expect(childActionHandler.mock.calls.length).toBe(0);\n expect(childWillFocusHandler.mock.calls.length).toBe(1);\n expect(childDidFocusHandler.mock.calls.length).toBe(1);\n emitGrandParentAction({\n type: 'action',\n state: focusState,\n lastState: focusState,\n action: { type: 'TestAction' },\n });\n expect(childWillFocusHandler.mock.calls.length).toBe(1);\n expect(childDidFocusHandler.mock.calls.length).toBe(1);\n expect(childActionHandler.mock.calls.length).toBe(1);\n emitGrandParentAction({\n type: 'action',\n state: transition2State,\n lastState: focusState,\n action: { type: 'CauseWillBlurAction' },\n });\n expect(childWillBlurHandler.mock.calls.length).toBe(1);\n expect(childDidBlurHandler.mock.calls.length).toBe(0);\n expect(childActionHandler.mock.calls.length).toBe(1);\n emitGrandParentAction({\n type: 'action',\n state: blurred2State,\n lastState: transition2State,\n action: { type: 'CauseDidBlurAction' },\n });\n expect(childWillBlurHandler.mock.calls.length).toBe(1);\n expect(childDidBlurHandler.mock.calls.length).toBe(1);\n expect(childActionHandler.mock.calls.length).toBe(1);\n});\n\nit('grandchildren pass through transitions', () => {\n const grandParentSubscriber = jest.fn();\n const emitGrandParentAction = payload => {\n grandParentSubscriber.mock.calls.forEach(subs => {\n if (subs[0] === payload.type) {\n subs[1](payload);\n }\n });\n };\n const subscriptionRemove = () => {};\n grandParentSubscriber.mockReturnValueOnce({ remove: subscriptionRemove });\n const parentSubscriber = getChildEventSubscriber(\n grandParentSubscriber,\n 'parent'\n ).addListener;\n const childEventSubscriber = getChildEventSubscriber(parentSubscriber, 'key1')\n .addListener;\n const makeFakeState = (childIndex, childIsTransitioning) => ({\n index: childIndex,\n transitions: {\n pushing: [],\n popping: childIsTransitioning ? ['key2'] : [],\n },\n routes: [\n { key: 'nothing' },\n {\n key: 'parent',\n index: 1,\n\n routes: [{ key: 'key0' }, { key: 'key1' }, { key: 'key2' }],\n },\n ].slice(0, childIndex + 1),\n });\n const blurredState = makeFakeState(0, false);\n const transitionState = makeFakeState(1, true);\n const focusState = makeFakeState(1, false);\n const transition2State = makeFakeState(0, true);\n const blurred2State = makeFakeState(0, false);\n\n const childActionHandler = jest.fn();\n const childWillFocusHandler = jest.fn();\n const childDidFocusHandler = jest.fn();\n const childWillBlurHandler = jest.fn();\n const childDidBlurHandler = jest.fn();\n childEventSubscriber('action', childActionHandler);\n childEventSubscriber('willFocus', childWillFocusHandler);\n childEventSubscriber('didFocus', childDidFocusHandler);\n childEventSubscriber('willBlur', childWillBlurHandler);\n childEventSubscriber('didBlur', childDidBlurHandler);\n emitGrandParentAction({\n type: 'action',\n state: transitionState,\n lastState: blurredState,\n action: { type: 'FooAction' },\n });\n expect(childActionHandler.mock.calls.length).toBe(0);\n expect(childWillFocusHandler.mock.calls.length).toBe(1);\n expect(childDidFocusHandler.mock.calls.length).toBe(0);\n emitGrandParentAction({\n type: 'action',\n state: focusState,\n lastState: transitionState,\n action: { type: 'FooAction' },\n });\n expect(childActionHandler.mock.calls.length).toBe(0);\n expect(childWillFocusHandler.mock.calls.length).toBe(1);\n expect(childDidFocusHandler.mock.calls.length).toBe(1);\n emitGrandParentAction({\n type: 'action',\n state: focusState,\n lastState: focusState,\n action: { type: 'TestAction' },\n });\n expect(childWillFocusHandler.mock.calls.length).toBe(1);\n expect(childDidFocusHandler.mock.calls.length).toBe(1);\n expect(childActionHandler.mock.calls.length).toBe(1);\n emitGrandParentAction({\n type: 'action',\n state: transition2State,\n lastState: focusState,\n action: { type: 'CauseWillBlurAction' },\n });\n expect(childWillBlurHandler.mock.calls.length).toBe(1);\n expect(childDidBlurHandler.mock.calls.length).toBe(0);\n expect(childActionHandler.mock.calls.length).toBe(1);\n emitGrandParentAction({\n type: 'action',\n state: blurred2State,\n lastState: transition2State,\n action: { type: 'CauseDidBlurAction' },\n });\n expect(childWillBlurHandler.mock.calls.length).toBe(1);\n expect(childDidBlurHandler.mock.calls.length).toBe(1);\n expect(childActionHandler.mock.calls.length).toBe(1);\n});\n\nit('child focus with transition', () => {\n const parentSubscriber = jest.fn();\n const emitParentAction = payload => {\n parentSubscriber.mock.calls.forEach(subs => {\n if (subs[0] === payload.type) {\n subs[1](payload);\n }\n });\n };\n const subscriptionRemove = () => {};\n parentSubscriber.mockReturnValueOnce({ remove: subscriptionRemove });\n const childEventSubscriber = getChildEventSubscriber(parentSubscriber, 'key1')\n .addListener;\n const randomAction = { type: 'FooAction' };\n const testState = {\n key: 'foo',\n routeName: 'FooRoute',\n routes: [{ key: 'key0' }, { key: 'key1' }],\n index: 0,\n };\n const childWillFocusHandler = jest.fn();\n const childDidFocusHandler = jest.fn();\n const childWillBlurHandler = jest.fn();\n const childDidBlurHandler = jest.fn();\n childEventSubscriber('willFocus', childWillFocusHandler);\n childEventSubscriber('didFocus', childDidFocusHandler);\n childEventSubscriber('willBlur', childWillBlurHandler);\n childEventSubscriber('didBlur', childDidBlurHandler);\n emitParentAction({\n type: 'didFocus',\n action: randomAction,\n lastState: testState,\n state: testState,\n });\n emitParentAction({\n type: 'action',\n action: randomAction,\n lastState: testState,\n state: {\n ...testState,\n index: 1,\n transitions: { pushing: [], popping: ['key1'] },\n },\n });\n expect(childWillFocusHandler.mock.calls.length).toBe(1);\n emitParentAction({\n type: 'action',\n action: randomAction,\n lastState: {\n ...testState,\n index: 1,\n transitions: { pushing: [], popping: ['key1'] },\n },\n state: {\n ...testState,\n index: 1,\n },\n });\n expect(childDidFocusHandler.mock.calls.length).toBe(1);\n emitParentAction({\n type: 'action',\n action: randomAction,\n lastState: {\n ...testState,\n index: 1,\n },\n state: {\n ...testState,\n index: 0,\n transitions: { pushing: [], popping: ['key1'] },\n },\n });\n expect(childWillBlurHandler.mock.calls.length).toBe(1);\n emitParentAction({\n type: 'action',\n action: randomAction,\n lastState: {\n ...testState,\n index: 0,\n transitions: { pushing: [], popping: ['key1'] },\n },\n state: {\n ...testState,\n index: 0,\n },\n });\n expect(childDidBlurHandler.mock.calls.length).toBe(1);\n});\n\nit('child focus with immediate transition', () => {\n const parentSubscriber = jest.fn();\n const emitParentAction = payload => {\n parentSubscriber.mock.calls.forEach(subs => {\n if (subs[0] === payload.type) {\n subs[1](payload);\n }\n });\n };\n const subscriptionRemove = () => {};\n parentSubscriber.mockReturnValueOnce({ remove: subscriptionRemove });\n const childEventSubscriber = getChildEventSubscriber(parentSubscriber, 'key1')\n .addListener;\n const randomAction = { type: 'FooAction' };\n const testState = {\n key: 'foo',\n routeName: 'FooRoute',\n routes: [{ key: 'key0' }, { key: 'key1' }],\n index: 0,\n };\n const childWillFocusHandler = jest.fn();\n const childDidFocusHandler = jest.fn();\n const childWillBlurHandler = jest.fn();\n const childDidBlurHandler = jest.fn();\n childEventSubscriber('willFocus', childWillFocusHandler);\n childEventSubscriber('didFocus', childDidFocusHandler);\n childEventSubscriber('willBlur', childWillBlurHandler);\n childEventSubscriber('didBlur', childDidBlurHandler);\n emitParentAction({\n type: 'didFocus',\n action: randomAction,\n lastState: testState,\n state: testState,\n });\n emitParentAction({\n type: 'action',\n action: randomAction,\n lastState: testState,\n state: {\n ...testState,\n index: 1,\n },\n });\n expect(childWillFocusHandler.mock.calls.length).toBe(1);\n expect(childDidFocusHandler.mock.calls.length).toBe(1);\n\n emitParentAction({\n type: 'action',\n action: randomAction,\n lastState: {\n ...testState,\n index: 1,\n },\n state: {\n ...testState,\n index: 0,\n },\n });\n expect(childWillBlurHandler.mock.calls.length).toBe(1);\n expect(childDidBlurHandler.mock.calls.length).toBe(1);\n});\n\nconst setupEventTest = (subscriptionKey, initialLastFocusEvent) => {\n const parentSubscriber = jest.fn();\n const emitEvent = payload => {\n parentSubscriber.mock.calls.forEach(subs => {\n if (subs[0] === payload.type) {\n subs[1](payload);\n }\n });\n };\n const subscriptionRemove = () => {};\n parentSubscriber.mockReturnValueOnce({ remove: subscriptionRemove });\n const evtProvider = getChildEventSubscriber(\n parentSubscriber,\n subscriptionKey,\n initialLastFocusEvent\n );\n const handlers = {};\n evtProvider.addListener('action', (handlers.action = jest.fn()));\n evtProvider.addListener('willFocus', (handlers.willFocus = jest.fn()));\n evtProvider.addListener('didFocus', (handlers.didFocus = jest.fn()));\n evtProvider.addListener('willBlur', (handlers.willBlur = jest.fn()));\n evtProvider.addListener('didBlur', (handlers.didBlur = jest.fn()));\n return { emitEvent, handlers, evtProvider };\n};\n\nit('immediate back with uncompleted transition will focus first screen again', () => {\n const { handlers, emitEvent } = setupEventTest('key0', 'didFocus');\n emitEvent({\n type: 'action',\n state: {\n index: 1,\n routes: [{ key: 'key0' }, { key: 'key1' }],\n transitions: { pushing: [], popping: ['key1'] },\n },\n lastState: {\n index: 0,\n routes: [{ key: 'key0' }],\n },\n action: { type: 'Any action, does not matter here' },\n });\n expect(handlers.willFocus.mock.calls.length).toBe(0);\n expect(handlers.didFocus.mock.calls.length).toBe(0);\n expect(handlers.willBlur.mock.calls.length).toBe(1);\n expect(handlers.didBlur.mock.calls.length).toBe(0);\n emitEvent({\n type: 'action',\n state: {\n index: 0,\n routes: [{ key: 'key0' }],\n transitions: { pushing: [], popping: ['key0'] },\n },\n lastState: {\n index: 1,\n routes: [{ key: 'key0' }, { key: 'key1' }],\n transitions: { pushing: [], popping: ['key1'] },\n },\n action: { type: 'Any action, does not matter here' },\n });\n expect(handlers.willFocus.mock.calls.length).toBe(1);\n expect(handlers.didFocus.mock.calls.length).toBe(0);\n expect(handlers.willBlur.mock.calls.length).toBe(1);\n expect(handlers.didBlur.mock.calls.length).toBe(0);\n emitEvent({\n type: 'action',\n state: {\n index: 0,\n routes: [{ key: 'key0' }],\n },\n lastState: {\n index: 0,\n routes: [{ key: 'key0' }],\n transitions: { pushing: [], popping: ['key0'] },\n },\n action: { type: 'Any action, does not matter here' },\n });\n expect(handlers.willFocus.mock.calls.length).toBe(1);\n expect(handlers.didFocus.mock.calls.length).toBe(1);\n expect(handlers.willBlur.mock.calls.length).toBe(1);\n expect(handlers.didBlur.mock.calls.length).toBe(0);\n});\n"]}
+\ No newline at end of file
+diff --git a/node_modules/@react-navigation/core/lib/module/getChildEventSubscriber.js b/node_modules/@react-navigation/core/lib/module/getChildEventSubscriber.js
+index 0dffe52..ffbbe26 100644
+--- a/node_modules/@react-navigation/core/lib/module/getChildEventSubscriber.js
++++ b/node_modules/@react-navigation/core/lib/module/getChildEventSubscriber.js
+@@ -1,2 +1,2 @@
+-import _objectSpread from"@babel/runtime/helpers/objectSpread";export default function getChildEventSubscriber(addListener,key){var initialLastFocusEvent=arguments.length>2&&arguments[2]!==undefined?arguments[2]:'didBlur';var actionSubscribers=new Set();var willFocusSubscribers=new Set();var didFocusSubscribers=new Set();var willBlurSubscribers=new Set();var didBlurSubscribers=new Set();var refocusSubscribers=new Set();var removeAll=function removeAll(){[actionSubscribers,willFocusSubscribers,didFocusSubscribers,willBlurSubscribers,didBlurSubscribers,refocusSubscribers].forEach(function(set){return set.clear();});upstreamSubscribers.forEach(function(subs){return subs&&subs.remove();});};var getChildSubscribers=function getChildSubscribers(evtName){switch(evtName){case'action':return actionSubscribers;case'willFocus':return willFocusSubscribers;case'didFocus':return didFocusSubscribers;case'willBlur':return willBlurSubscribers;case'didBlur':return didBlurSubscribers;case'refocus':return refocusSubscribers;default:return null;}};var _emit=function emit(type,payload){var payloadWithType=_objectSpread({},payload,{type:type});var subscribers=getChildSubscribers(type);subscribers&&subscribers.forEach(function(subs){subs(payloadWithType);});};var lastFocusEvent=initialLastFocusEvent;var upstreamEvents=['willFocus','didFocus','willBlur','didBlur','refocus','action'];var upstreamSubscribers=upstreamEvents.map(function(eventName){return addListener(eventName,function(payload){if(eventName==='refocus'){_emit(eventName,payload);return;}var state=payload.state,lastState=payload.lastState,action=payload.action;var lastRoutes=lastState&&lastState.routes;var routes=state&&state.routes;var focusKey=routes&&routes[state.index].key;var isChildFocused=focusKey===key;var lastRoute=lastRoutes&&lastRoutes.find(function(route){return route.key===key;});var newRoute=routes&&routes.find(function(route){return route.key===key;});var childPayload={context:key+":"+action.type+"_"+(payload.context||'Root'),state:newRoute,lastState:lastRoute,action:action,type:eventName};var isTransitioning=!!state&&state.isTransitioning;var previouslylastFocusEvent=lastFocusEvent;if(lastFocusEvent==='didBlur'){if(eventName==='willFocus'&&isChildFocused){_emit(lastFocusEvent='willFocus',childPayload);}else if(eventName==='action'&&isChildFocused){_emit(lastFocusEvent='willFocus',childPayload);}}if(lastFocusEvent==='willFocus'){if(eventName==='didFocus'&&isChildFocused&&!isTransitioning){_emit(lastFocusEvent='didFocus',childPayload);}else if(eventName==='action'&&isChildFocused&&!isTransitioning){_emit(lastFocusEvent='didFocus',childPayload);}}if(lastFocusEvent==='didFocus'){if(!isChildFocused){_emit(lastFocusEvent='willBlur',childPayload);}else if(eventName==='willBlur'){_emit(lastFocusEvent='willBlur',childPayload);}else if(eventName==='action'&&previouslylastFocusEvent==='didFocus'){_emit('action',childPayload);}}if(lastFocusEvent==='willBlur'){if(eventName==='action'&&!isChildFocused&&!isTransitioning){_emit(lastFocusEvent='didBlur',childPayload);}else if(eventName==='didBlur'){_emit(lastFocusEvent='didBlur',childPayload);}else if(eventName==='action'&&isChildFocused&&!isTransitioning){_emit(lastFocusEvent='didFocus',childPayload);}else if(eventName==='action'&&isChildFocused&&isTransitioning){_emit(lastFocusEvent='willFocus',childPayload);}}if(lastFocusEvent==='didBlur'&&!newRoute){removeAll();}});});return{addListener:function addListener(eventName,eventHandler){var subscribers=getChildSubscribers(eventName);if(!subscribers){throw new Error("Invalid event name \""+eventName+"\"");}subscribers.add(eventHandler);var remove=function remove(){subscribers.delete(eventHandler);};return{remove:remove};},emit:function emit(eventName,payload){if(eventName!=='refocus'){console.error("navigation.emit only supports the 'refocus' event currently.");return;}_emit(eventName,payload);}};}
++import _objectSpread from"@babel/runtime/helpers/objectSpread";export default function getChildEventSubscriber(addListener,key){var initialLastFocusEvent=arguments.length>2&&arguments[2]!==undefined?arguments[2]:'didBlur';var actionSubscribers=new Set();var willFocusSubscribers=new Set();var didFocusSubscribers=new Set();var willBlurSubscribers=new Set();var didBlurSubscribers=new Set();var refocusSubscribers=new Set();var removeAll=function removeAll(){[actionSubscribers,willFocusSubscribers,didFocusSubscribers,willBlurSubscribers,didBlurSubscribers,refocusSubscribers].forEach(function(set){return set.clear();});upstreamSubscribers.forEach(function(subs){return subs&&subs.remove();});};var getChildSubscribers=function getChildSubscribers(evtName){switch(evtName){case'action':return actionSubscribers;case'willFocus':return willFocusSubscribers;case'didFocus':return didFocusSubscribers;case'willBlur':return willBlurSubscribers;case'didBlur':return didBlurSubscribers;case'refocus':return refocusSubscribers;default:return null;}};var _emit=function emit(type,payload){var payloadWithType=_objectSpread({},payload,{type:type});var subscribers=getChildSubscribers(type);subscribers&&subscribers.forEach(function(subs){subs(payloadWithType);});};var lastFocusEvent=initialLastFocusEvent;var upstreamEvents=['willFocus','didFocus','willBlur','didBlur','refocus','action'];var upstreamSubscribers=upstreamEvents.map(function(eventName){return addListener(eventName,function(payload){if(eventName==='refocus'){_emit(eventName,payload);return;}var state=payload.state,lastState=payload.lastState,action=payload.action;var lastRoutes=lastState&&lastState.routes;var routes=state&&state.routes;var focusKey=routes&&routes[state.index].key;var isChildFocused=focusKey===key;var lastRoute=lastRoutes&&lastRoutes.find(function(route){return route.key===key;});var newRoute=routes&&routes.find(function(route){return route.key===key;});var childPayload={context:key+":"+action.type+"_"+(payload.context||'Root'),state:newRoute,lastState:lastRoute,action:action,type:eventName};var isTransitioning=!!state&&state.transitions&&(state.transitions.pushing.length||state.transitions.popping.length);var previouslylastFocusEvent=lastFocusEvent;if(lastFocusEvent==='didBlur'){if(eventName==='willFocus'&&isChildFocused){_emit(lastFocusEvent='willFocus',childPayload);}else if(eventName==='action'&&isChildFocused){_emit(lastFocusEvent='willFocus',childPayload);}}if(lastFocusEvent==='willFocus'){if(eventName==='didFocus'&&isChildFocused&&!isTransitioning){_emit(lastFocusEvent='didFocus',childPayload);}else if(eventName==='action'&&isChildFocused&&!isTransitioning){_emit(lastFocusEvent='didFocus',childPayload);}}if(lastFocusEvent==='didFocus'){if(!isChildFocused){_emit(lastFocusEvent='willBlur',childPayload);}else if(eventName==='willBlur'){_emit(lastFocusEvent='willBlur',childPayload);}else if(eventName==='action'&&previouslylastFocusEvent==='didFocus'){_emit('action',childPayload);}}if(lastFocusEvent==='willBlur'){if(eventName==='action'&&!isChildFocused&&!isTransitioning){_emit(lastFocusEvent='didBlur',childPayload);}else if(eventName==='didBlur'){_emit(lastFocusEvent='didBlur',childPayload);}else if(eventName==='action'&&isChildFocused&&!isTransitioning){_emit(lastFocusEvent='didFocus',childPayload);}else if(eventName==='action'&&isChildFocused&&isTransitioning){_emit(lastFocusEvent='willFocus',childPayload);}}if(lastFocusEvent==='didBlur'&&!newRoute){removeAll();}});});return{addListener:function addListener(eventName,eventHandler){var subscribers=getChildSubscribers(eventName);if(!subscribers){throw new Error("Invalid event name \""+eventName+"\"");}subscribers.add(eventHandler);var remove=function remove(){subscribers.delete(eventHandler);};return{remove:remove};},emit:function emit(eventName,payload){if(eventName!=='refocus'){console.error("navigation.emit only supports the 'refocus' event currently.");return;}_emit(eventName,payload);}};}
+ //# sourceMappingURL=getChildEventSubscriber.js.map
+\ No newline at end of file
+diff --git a/node_modules/@react-navigation/core/lib/module/getChildEventSubscriber.js.map b/node_modules/@react-navigation/core/lib/module/getChildEventSubscriber.js.map
+index d537d68..7ddeee8 100644
+--- a/node_modules/@react-navigation/core/lib/module/getChildEventSubscriber.js.map
++++ b/node_modules/@react-navigation/core/lib/module/getChildEventSubscriber.js.map
+@@ -1 +1 @@
+-{"version":3,"sources":["getChildEventSubscriber.js"],"names":["getChildEventSubscriber","addListener","key","initialLastFocusEvent","actionSubscribers","Set","willFocusSubscribers","didFocusSubscribers","willBlurSubscribers","didBlurSubscribers","refocusSubscribers","removeAll","forEach","set","clear","upstreamSubscribers","subs","remove","getChildSubscribers","evtName","emit","type","payload","payloadWithType","subscribers","lastFocusEvent","upstreamEvents","map","eventName","state","lastState","action","lastRoutes","routes","focusKey","index","isChildFocused","lastRoute","find","route","newRoute","childPayload","context","isTransitioning","previouslylastFocusEvent","eventHandler","Error","add","delete","console","error"],"mappings":"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","sourcesContent":["/*\n * This is used to extract one children's worth of events from a stream of navigation action events\n *\n * Based on the 'action' events that get fired for this navigation state, this utility will fire\n * focus and blur events for this child\n */\nexport default function getChildEventSubscriber(\n addListener,\n key,\n initialLastFocusEvent = 'didBlur'\n) {\n const actionSubscribers = new Set();\n const willFocusSubscribers = new Set();\n const didFocusSubscribers = new Set();\n const willBlurSubscribers = new Set();\n const didBlurSubscribers = new Set();\n const refocusSubscribers = new Set();\n\n const removeAll = () => {\n [\n actionSubscribers,\n willFocusSubscribers,\n didFocusSubscribers,\n willBlurSubscribers,\n didBlurSubscribers,\n refocusSubscribers,\n ].forEach(set => set.clear());\n\n upstreamSubscribers.forEach(subs => subs && subs.remove());\n };\n\n const getChildSubscribers = evtName => {\n switch (evtName) {\n case 'action':\n return actionSubscribers;\n case 'willFocus':\n return willFocusSubscribers;\n case 'didFocus':\n return didFocusSubscribers;\n case 'willBlur':\n return willBlurSubscribers;\n case 'didBlur':\n return didBlurSubscribers;\n case 'refocus':\n return refocusSubscribers;\n default:\n return null;\n }\n };\n\n const emit = (type, payload) => {\n const payloadWithType = { ...payload, type };\n const subscribers = getChildSubscribers(type);\n subscribers &&\n subscribers.forEach(subs => {\n subs(payloadWithType);\n });\n };\n\n // lastFocusEvent keeps track of focus state for one route. First we assume\n // we are blurred. If we are focused on initialization, the first 'action'\n // event will cause onFocus+willFocus events because we had previously been\n // considered blurred\n let lastFocusEvent = initialLastFocusEvent;\n\n const upstreamEvents = [\n 'willFocus',\n 'didFocus',\n 'willBlur',\n 'didBlur',\n 'refocus',\n 'action',\n ];\n\n const upstreamSubscribers = upstreamEvents.map(eventName =>\n addListener(eventName, payload => {\n if (eventName === 'refocus') {\n emit(eventName, payload);\n return;\n }\n\n const { state, lastState, action } = payload;\n const lastRoutes = lastState && lastState.routes;\n const routes = state && state.routes;\n\n // const lastFocusKey =\n // lastState && lastState.routes && lastState.routes[lastState.index].key;\n const focusKey = routes && routes[state.index].key;\n\n const isChildFocused = focusKey === key;\n const lastRoute =\n lastRoutes && lastRoutes.find(route => route.key === key);\n const newRoute = routes && routes.find(route => route.key === key);\n const childPayload = {\n context: `${key}:${action.type}_${payload.context || 'Root'}`,\n state: newRoute,\n lastState: lastRoute,\n action,\n type: eventName,\n };\n const isTransitioning = !!state && state.isTransitioning;\n\n const previouslylastFocusEvent = lastFocusEvent;\n\n if (lastFocusEvent === 'didBlur') {\n // The child is currently blurred. Look for willFocus conditions\n if (eventName === 'willFocus' && isChildFocused) {\n emit((lastFocusEvent = 'willFocus'), childPayload);\n } else if (eventName === 'action' && isChildFocused) {\n emit((lastFocusEvent = 'willFocus'), childPayload);\n }\n }\n if (lastFocusEvent === 'willFocus') {\n // We are currently mid-focus. Look for didFocus conditions.\n // If state.isTransitioning is false, this child event happens immediately after willFocus\n if (eventName === 'didFocus' && isChildFocused && !isTransitioning) {\n emit((lastFocusEvent = 'didFocus'), childPayload);\n } else if (\n eventName === 'action' &&\n isChildFocused &&\n !isTransitioning\n ) {\n emit((lastFocusEvent = 'didFocus'), childPayload);\n }\n }\n\n if (lastFocusEvent === 'didFocus') {\n // The child is currently focused. Look for blurring events\n if (!isChildFocused) {\n // The child is no longer focused within this navigation state\n emit((lastFocusEvent = 'willBlur'), childPayload);\n } else if (eventName === 'willBlur') {\n // The parent is getting a willBlur event\n emit((lastFocusEvent = 'willBlur'), childPayload);\n } else if (\n eventName === 'action' &&\n previouslylastFocusEvent === 'didFocus'\n ) {\n // While focused, pass action events to children for grandchildren focus\n emit('action', childPayload);\n }\n }\n\n if (lastFocusEvent === 'willBlur') {\n // The child is mid-blur. Wait for transition to end\n if (eventName === 'action' && !isChildFocused && !isTransitioning) {\n // The child is done blurring because transitioning is over, or isTransitioning\n // never began and didBlur fires immediately after willBlur\n emit((lastFocusEvent = 'didBlur'), childPayload);\n } else if (eventName === 'didBlur') {\n // Pass through the parent didBlur event if it happens\n emit((lastFocusEvent = 'didBlur'), childPayload);\n } else if (\n eventName === 'action' &&\n isChildFocused &&\n !isTransitioning\n ) {\n emit((lastFocusEvent = 'didFocus'), childPayload);\n } else if (\n eventName === 'action' &&\n isChildFocused &&\n isTransitioning\n ) {\n emit((lastFocusEvent = 'willFocus'), childPayload);\n }\n }\n\n if (lastFocusEvent === 'didBlur' && !newRoute) {\n removeAll();\n }\n })\n );\n\n return {\n addListener(eventName, eventHandler) {\n const subscribers = getChildSubscribers(eventName);\n if (!subscribers) {\n throw new Error(`Invalid event name \"${eventName}\"`);\n }\n subscribers.add(eventHandler);\n const remove = () => {\n subscribers.delete(eventHandler);\n };\n return { remove };\n },\n emit(eventName, payload) {\n if (eventName !== 'refocus') {\n console.error(\n `navigation.emit only supports the 'refocus' event currently.`\n );\n return;\n }\n emit(eventName, payload);\n },\n };\n}\n"]}
+\ No newline at end of file
++{"version":3,"sources":["getChildEventSubscriber.js"],"names":["getChildEventSubscriber","addListener","key","initialLastFocusEvent","actionSubscribers","Set","willFocusSubscribers","didFocusSubscribers","willBlurSubscribers","didBlurSubscribers","refocusSubscribers","removeAll","forEach","set","clear","upstreamSubscribers","subs","remove","getChildSubscribers","evtName","emit","type","payload","payloadWithType","subscribers","lastFocusEvent","upstreamEvents","map","eventName","state","lastState","action","lastRoutes","routes","focusKey","index","isChildFocused","lastRoute","find","route","newRoute","childPayload","context","isTransitioning","transitions","pushing","length","popping","previouslylastFocusEvent","eventHandler","Error","add","delete","console","error"],"mappings":"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","sourcesContent":["/*\n * This is used to extract one children's worth of events from a stream of navigation action events\n *\n * Based on the 'action' events that get fired for this navigation state, this utility will fire\n * focus and blur events for this child\n */\nexport default function getChildEventSubscriber(\n addListener,\n key,\n initialLastFocusEvent = 'didBlur'\n) {\n const actionSubscribers = new Set();\n const willFocusSubscribers = new Set();\n const didFocusSubscribers = new Set();\n const willBlurSubscribers = new Set();\n const didBlurSubscribers = new Set();\n const refocusSubscribers = new Set();\n\n const removeAll = () => {\n [\n actionSubscribers,\n willFocusSubscribers,\n didFocusSubscribers,\n willBlurSubscribers,\n didBlurSubscribers,\n refocusSubscribers,\n ].forEach(set => set.clear());\n\n upstreamSubscribers.forEach(subs => subs && subs.remove());\n };\n\n const getChildSubscribers = evtName => {\n switch (evtName) {\n case 'action':\n return actionSubscribers;\n case 'willFocus':\n return willFocusSubscribers;\n case 'didFocus':\n return didFocusSubscribers;\n case 'willBlur':\n return willBlurSubscribers;\n case 'didBlur':\n return didBlurSubscribers;\n case 'refocus':\n return refocusSubscribers;\n default:\n return null;\n }\n };\n\n const emit = (type, payload) => {\n const payloadWithType = { ...payload, type };\n const subscribers = getChildSubscribers(type);\n subscribers &&\n subscribers.forEach(subs => {\n subs(payloadWithType);\n });\n };\n\n // lastFocusEvent keeps track of focus state for one route. First we assume\n // we are blurred. If we are focused on initialization, the first 'action'\n // event will cause onFocus+willFocus events because we had previously been\n // considered blurred\n let lastFocusEvent = initialLastFocusEvent;\n\n const upstreamEvents = [\n 'willFocus',\n 'didFocus',\n 'willBlur',\n 'didBlur',\n 'refocus',\n 'action',\n ];\n\n const upstreamSubscribers = upstreamEvents.map(eventName =>\n addListener(eventName, payload => {\n if (eventName === 'refocus') {\n emit(eventName, payload);\n return;\n }\n\n const { state, lastState, action } = payload;\n const lastRoutes = lastState && lastState.routes;\n const routes = state && state.routes;\n\n // const lastFocusKey =\n // lastState && lastState.routes && lastState.routes[lastState.index].key;\n const focusKey = routes && routes[state.index].key;\n\n const isChildFocused = focusKey === key;\n const lastRoute =\n lastRoutes && lastRoutes.find(route => route.key === key);\n const newRoute = routes && routes.find(route => route.key === key);\n const childPayload = {\n context: `${key}:${action.type}_${payload.context || 'Root'}`,\n state: newRoute,\n lastState: lastRoute,\n action,\n type: eventName,\n };\n const isTransitioning =\n !!state &&\n state.transitions &&\n (state.transitions.pushing.length || state.transitions.popping.length);\n\n const previouslylastFocusEvent = lastFocusEvent;\n\n if (lastFocusEvent === 'didBlur') {\n // The child is currently blurred. Look for willFocus conditions\n if (eventName === 'willFocus' && isChildFocused) {\n emit((lastFocusEvent = 'willFocus'), childPayload);\n } else if (eventName === 'action' && isChildFocused) {\n emit((lastFocusEvent = 'willFocus'), childPayload);\n }\n }\n if (lastFocusEvent === 'willFocus') {\n // We are currently mid-focus. Look for didFocus conditions.\n // If state.isTransitioning is false, this child event happens immediately after willFocus\n if (eventName === 'didFocus' && isChildFocused && !isTransitioning) {\n emit((lastFocusEvent = 'didFocus'), childPayload);\n } else if (\n eventName === 'action' &&\n isChildFocused &&\n !isTransitioning\n ) {\n emit((lastFocusEvent = 'didFocus'), childPayload);\n }\n }\n\n if (lastFocusEvent === 'didFocus') {\n // The child is currently focused. Look for blurring events\n if (!isChildFocused) {\n // The child is no longer focused within this navigation state\n emit((lastFocusEvent = 'willBlur'), childPayload);\n } else if (eventName === 'willBlur') {\n // The parent is getting a willBlur event\n emit((lastFocusEvent = 'willBlur'), childPayload);\n } else if (\n eventName === 'action' &&\n previouslylastFocusEvent === 'didFocus'\n ) {\n // While focused, pass action events to children for grandchildren focus\n emit('action', childPayload);\n }\n }\n\n if (lastFocusEvent === 'willBlur') {\n // The child is mid-blur. Wait for transition to end\n if (eventName === 'action' && !isChildFocused && !isTransitioning) {\n // The child is done blurring because transitioning is over, or isTransitioning\n // never began and didBlur fires immediately after willBlur\n emit((lastFocusEvent = 'didBlur'), childPayload);\n } else if (eventName === 'didBlur') {\n // Pass through the parent didBlur event if it happens\n emit((lastFocusEvent = 'didBlur'), childPayload);\n } else if (\n eventName === 'action' &&\n isChildFocused &&\n !isTransitioning\n ) {\n emit((lastFocusEvent = 'didFocus'), childPayload);\n } else if (\n eventName === 'action' &&\n isChildFocused &&\n isTransitioning\n ) {\n emit((lastFocusEvent = 'willFocus'), childPayload);\n }\n }\n\n if (lastFocusEvent === 'didBlur' && !newRoute) {\n removeAll();\n }\n })\n );\n\n return {\n addListener(eventName, eventHandler) {\n const subscribers = getChildSubscribers(eventName);\n if (!subscribers) {\n throw new Error(`Invalid event name \"${eventName}\"`);\n }\n subscribers.add(eventHandler);\n const remove = () => {\n subscribers.delete(eventHandler);\n };\n return { remove };\n },\n emit(eventName, payload) {\n if (eventName !== 'refocus') {\n console.error(\n `navigation.emit only supports the 'refocus' event currently.`\n );\n return;\n }\n emit(eventName, payload);\n },\n };\n}\n"]}
+\ No newline at end of file
+diff --git a/node_modules/@react-navigation/core/lib/module/getChildrenNavigationCache.js b/node_modules/@react-navigation/core/lib/module/getChildrenNavigationCache.js
+index 0195fba..c09cacc 100644
+--- a/node_modules/@react-navigation/core/lib/module/getChildrenNavigationCache.js
++++ b/node_modules/@react-navigation/core/lib/module/getChildrenNavigationCache.js
+@@ -1,2 +1,2 @@
+-export default function getChildrenNavigationCache(navigation){if(!navigation){return{};}var childrenNavigationCache=navigation._childrenNavigation||(navigation._childrenNavigation={});var childKeys=navigation.state.routes.map(function(route){return route.key;});Object.keys(childrenNavigationCache).forEach(function(cacheKey){if(!childKeys.includes(cacheKey)&&!navigation.state.isTransitioning){delete childrenNavigationCache[cacheKey];}});return navigation._childrenNavigation;}
++export default function getChildrenNavigationCache(navigation){if(!navigation){return{};}var childrenNavigationCache=navigation._childrenNavigation||(navigation._childrenNavigation={});var childKeys=navigation.state.routes.map(function(route){return route.key;});Object.keys(childrenNavigationCache).forEach(function(cacheKey){if(!childKeys.includes(cacheKey)){delete childrenNavigationCache[cacheKey];}});return navigation._childrenNavigation;}
+ //# sourceMappingURL=getChildrenNavigationCache.js.map
+\ No newline at end of file
+diff --git a/node_modules/@react-navigation/core/lib/module/getChildrenNavigationCache.js.map b/node_modules/@react-navigation/core/lib/module/getChildrenNavigationCache.js.map
+index f162dec..10899c8 100644
+--- a/node_modules/@react-navigation/core/lib/module/getChildrenNavigationCache.js.map
++++ b/node_modules/@react-navigation/core/lib/module/getChildrenNavigationCache.js.map
+@@ -1 +1 @@
+-{"version":3,"sources":["getChildrenNavigationCache.js"],"names":["getChildrenNavigationCache","navigation","childrenNavigationCache","_childrenNavigation","childKeys","state","routes","map","route","key","Object","keys","forEach","cacheKey","includes","isTransitioning"],"mappings":"AAAA,cAAe,SAASA,CAAAA,0BAAT,CAAoCC,UAApC,CAAgD,CAC7D,GAAI,CAACA,UAAL,CAAiB,CACf,MAAO,EAAP,CACD,CAED,GAAIC,CAAAA,uBAAuB,CACzBD,UAAU,CAACE,mBAAX,GAAmCF,UAAU,CAACE,mBAAX,CAAiC,EAApE,CADF,CAEA,GAAIC,CAAAA,SAAS,CAAGH,UAAU,CAACI,KAAX,CAAiBC,MAAjB,CAAwBC,GAAxB,CAA4B,SAAAC,KAAK,QAAIA,CAAAA,KAAK,CAACC,GAAV,EAAjC,CAAhB,CACAC,MAAM,CAACC,IAAP,CAAYT,uBAAZ,EAAqCU,OAArC,CAA6C,SAAAC,QAAQ,CAAI,CACvD,GAAI,CAACT,SAAS,CAACU,QAAV,CAAmBD,QAAnB,CAAD,EAAiC,CAACZ,UAAU,CAACI,KAAX,CAAiBU,eAAvD,CAAwE,CACtE,MAAOb,CAAAA,uBAAuB,CAACW,QAAD,CAA9B,CACD,CACF,CAJD,EAMA,MAAOZ,CAAAA,UAAU,CAACE,mBAAlB,CACD","sourcesContent":["export default function getChildrenNavigationCache(navigation) {\n if (!navigation) {\n return {};\n }\n\n let childrenNavigationCache =\n navigation._childrenNavigation || (navigation._childrenNavigation = {});\n let childKeys = navigation.state.routes.map(route => route.key);\n Object.keys(childrenNavigationCache).forEach(cacheKey => {\n if (!childKeys.includes(cacheKey) && !navigation.state.isTransitioning) {\n delete childrenNavigationCache[cacheKey];\n }\n });\n\n return navigation._childrenNavigation;\n}\n"]}
+\ No newline at end of file
++{"version":3,"sources":["getChildrenNavigationCache.js"],"names":["getChildrenNavigationCache","navigation","childrenNavigationCache","_childrenNavigation","childKeys","state","routes","map","route","key","Object","keys","forEach","cacheKey","includes"],"mappings":"AAAA,cAAe,SAASA,CAAAA,0BAAT,CAAoCC,UAApC,CAAgD,CAC7D,GAAI,CAACA,UAAL,CAAiB,CACf,MAAO,EAAP,CACD,CAED,GAAIC,CAAAA,uBAAuB,CACzBD,UAAU,CAACE,mBAAX,GAAmCF,UAAU,CAACE,mBAAX,CAAiC,EAApE,CADF,CAEA,GAAIC,CAAAA,SAAS,CAAGH,UAAU,CAACI,KAAX,CAAiBC,MAAjB,CAAwBC,GAAxB,CAA4B,SAAAC,KAAK,QAAIA,CAAAA,KAAK,CAACC,GAAV,EAAjC,CAAhB,CACAC,MAAM,CAACC,IAAP,CAAYT,uBAAZ,EAAqCU,OAArC,CAA6C,SAAAC,QAAQ,CAAI,CACvD,GAAI,CAACT,SAAS,CAACU,QAAV,CAAmBD,QAAnB,CAAL,CAAmC,CACjC,MAAOX,CAAAA,uBAAuB,CAACW,QAAD,CAA9B,CACD,CACF,CAJD,EAMA,MAAOZ,CAAAA,UAAU,CAACE,mBAAlB,CACD","sourcesContent":["export default function getChildrenNavigationCache(navigation) {\n if (!navigation) {\n return {};\n }\n\n let childrenNavigationCache =\n navigation._childrenNavigation || (navigation._childrenNavigation = {});\n let childKeys = navigation.state.routes.map(route => route.key);\n Object.keys(childrenNavigationCache).forEach(cacheKey => {\n if (!childKeys.includes(cacheKey)) {\n delete childrenNavigationCache[cacheKey];\n }\n });\n\n return navigation._childrenNavigation;\n}\n"]}
+\ No newline at end of file
+diff --git a/node_modules/@react-navigation/core/lib/module/navigators/__tests__/createSwitchnavigator-test.js b/node_modules/@react-navigation/core/lib/module/navigators/__tests__/createSwitchnavigator-test.js
+index 3b39dba..94f26ac 100644
+--- a/node_modules/@react-navigation/core/lib/module/navigators/__tests__/createSwitchnavigator-test.js
++++ b/node_modules/@react-navigation/core/lib/module/navigators/__tests__/createSwitchnavigator-test.js
+@@ -1,2 +1,2 @@
+-var _jsxFileName="/Users/satya/Workspace/Callstack/react-navigation-core/src/navigators/__tests__/createSwitchnavigator-test.js";import*as React from'react';import{Text,View,TouchableOpacity}from'react-native';import{render,fireEvent}from'react-native-testing-library';import{createAppContainer}from'@react-navigation/native';import createSwitchNavigator from'../createSwitchNavigator';jest.mock('@react-navigation/core',function(){return require('../../index');});var getActiveRouteName=function getActiveRouteName(state){return state.routes[state.index].routeName;};var createScreen=function createScreen(routeName,nextRouteName){return function(props){return React.createElement(View,{__source:{fileName:_jsxFileName,lineNumber:11}},React.createElement(Text,{testID:"title",__source:{fileName:_jsxFileName,lineNumber:12}},routeName),React.createElement(Text,{testID:routeName+'-isFirstRoute',__source:{fileName:_jsxFileName,lineNumber:13}},String(props.navigation.isFirstRouteInParent())),React.createElement(TouchableOpacity,{testID:routeName+'-next',onPress:function onPress(){return props.navigation.navigate(nextRouteName);},__source:{fileName:_jsxFileName,lineNumber:16}},"Go to ",nextRouteName),React.createElement(TouchableOpacity,{testID:routeName+'-back',onPress:function onPress(){return props.navigation.goBack();},__source:{fileName:_jsxFileName,lineNumber:22}},"Go back"));};};it('renders switch navigator with initialRouteName',function(){var SwitchNavigator=createSwitchNavigator({First:createScreen('First','Third'),Second:createScreen('Second','First'),Third:createScreen('Third','Second')},{initialRouteName:'Second'});var App=createAppContainer(SwitchNavigator);var _render=render(React.createElement(App,{__source:{fileName:_jsxFileName,lineNumber:45}})),queryByText=_render.queryByText,getByTestId=_render.getByTestId;expect(queryByText('First')).toBeNull();expect(queryByText('Third')).toBeNull();expect(queryByText('Second')).not.toBeNull();fireEvent.press(getByTestId('Second-next'));expect(queryByText('First')).not.toBeNull();expect(queryByText('Third')).toBeNull();expect(queryByText('Second')).toBeNull();});it('uses backBehavior=none by default',function(){var SwitchNavigator=createSwitchNavigator({First:createScreen('First','Third'),Second:createScreen('Second','First'),Third:createScreen('Third','Second')});var App=createAppContainer(SwitchNavigator);var navigationRef=React.createRef();var _render2=render(React.createElement(App,{ref:navigationRef,__source:{fileName:_jsxFileName,lineNumber:69}})),getByTestId=_render2.getByTestId;expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');fireEvent.press(getByTestId('First-next'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Third');fireEvent.press(getByTestId('Third-next'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');fireEvent.press(getByTestId('Second-back'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');});it('uses backBehavior=initialRoute when specified',function(){var SwitchNavigator=createSwitchNavigator({First:createScreen('First','Third'),Second:createScreen('Second','First'),Third:createScreen('Third','Second')},{backBehavior:'initialRoute'});var App=createAppContainer(SwitchNavigator);var navigationRef=React.createRef();var _render3=render(React.createElement(App,{ref:navigationRef,__source:{fileName:_jsxFileName,lineNumber:102}})),getByTestId=_render3.getByTestId;expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');fireEvent.press(getByTestId('First-next'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Third');fireEvent.press(getByTestId('Third-next'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');fireEvent.press(getByTestId('Second-back'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');});it('uses backBehavior=order when specified',function(){var SwitchNavigator=createSwitchNavigator({First:createScreen('First','Third'),Second:createScreen('Second','First'),Third:createScreen('Third','Second')},{backBehavior:'order'});var App=createAppContainer(SwitchNavigator);var navigationRef=React.createRef();var _render4=render(React.createElement(App,{ref:navigationRef,__source:{fileName:_jsxFileName,lineNumber:135}})),getByTestId=_render4.getByTestId;expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');fireEvent.press(getByTestId('First-next'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Third');fireEvent.press(getByTestId('Third-back'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');fireEvent.press(getByTestId('Second-back'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');});it('uses backBehavior=history when specified',function(){var SwitchNavigator=createSwitchNavigator({First:createScreen('First','Third'),Second:createScreen('Second','First'),Third:createScreen('Third','Second')},{backBehavior:'history'});var App=createAppContainer(SwitchNavigator);var navigationRef=React.createRef();var _render5=render(React.createElement(App,{ref:navigationRef,__source:{fileName:_jsxFileName,lineNumber:168}})),getByTestId=_render5.getByTestId;expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');fireEvent.press(getByTestId('First-next'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Third');fireEvent.press(getByTestId('Third-next'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');fireEvent.press(getByTestId('Second-next'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');fireEvent.press(getByTestId('First-next'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Third');fireEvent.press(getByTestId('Third-back'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');fireEvent.press(getByTestId('First-back'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');fireEvent.press(getByTestId('Second-back'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');});it('returns correct value for canGoBack in a simple navigator',function(){var SwitchNavigator=createSwitchNavigator({First:createScreen('First','Third'),Second:createScreen('Second','First'),Third:createScreen('Third','Second')},{backBehavior:'history'});var App=createAppContainer(SwitchNavigator);var navigationRef=React.createRef();var _render6=render(React.createElement(App,{ref:navigationRef,__source:{fileName:_jsxFileName,lineNumber:217}})),getByTestId=_render6.getByTestId;expect(getByTestId('First-isFirstRoute').props.children).toBe('true');fireEvent.press(getByTestId('First-next'));expect(getByTestId('Third-isFirstRoute').props.children).toBe('false');fireEvent.press(getByTestId('Third-next'));expect(getByTestId('Second-isFirstRoute').props.children).toBe('false');fireEvent.press(getByTestId('Second-back'));expect(getByTestId('Third-isFirstRoute').props.children).toBe('false');});
++var _jsxFileName="/Users/brentvatne/coding/react-navigation-core/src/navigators/__tests__/createSwitchnavigator-test.js";import*as React from'react';import{Text,View,TouchableOpacity}from'react-native';import{render,fireEvent}from'react-native-testing-library';import{createAppContainer}from'@react-navigation/native';import createSwitchNavigator from'../createSwitchNavigator';jest.mock('@react-navigation/core',function(){return require('../../index');});var getActiveRouteName=function getActiveRouteName(state){return state.routes[state.index].routeName;};var createScreen=function createScreen(routeName,nextRouteName){return function(props){return React.createElement(View,{__source:{fileName:_jsxFileName,lineNumber:11}},React.createElement(Text,{testID:"title",__source:{fileName:_jsxFileName,lineNumber:12}},routeName),React.createElement(Text,{testID:routeName+'-isFirstRoute',__source:{fileName:_jsxFileName,lineNumber:13}},String(props.navigation.isFirstRouteInParent())),React.createElement(TouchableOpacity,{testID:routeName+'-next',onPress:function onPress(){return props.navigation.navigate(nextRouteName);},__source:{fileName:_jsxFileName,lineNumber:16}},"Go to ",nextRouteName),React.createElement(TouchableOpacity,{testID:routeName+'-back',onPress:function onPress(){return props.navigation.goBack();},__source:{fileName:_jsxFileName,lineNumber:22}},"Go back"));};};it('renders switch navigator with initialRouteName',function(){var SwitchNavigator=createSwitchNavigator({First:createScreen('First','Third'),Second:createScreen('Second','First'),Third:createScreen('Third','Second')},{initialRouteName:'Second'});var App=createAppContainer(SwitchNavigator);var _render=render(React.createElement(App,{__source:{fileName:_jsxFileName,lineNumber:45}})),queryByText=_render.queryByText,getByTestId=_render.getByTestId;expect(queryByText('First')).toBeNull();expect(queryByText('Third')).toBeNull();expect(queryByText('Second')).not.toBeNull();fireEvent.press(getByTestId('Second-next'));expect(queryByText('First')).not.toBeNull();expect(queryByText('Third')).toBeNull();expect(queryByText('Second')).toBeNull();});it('uses backBehavior=none by default',function(){var SwitchNavigator=createSwitchNavigator({First:createScreen('First','Third'),Second:createScreen('Second','First'),Third:createScreen('Third','Second')});var App=createAppContainer(SwitchNavigator);var navigationRef=React.createRef();var _render2=render(React.createElement(App,{ref:navigationRef,__source:{fileName:_jsxFileName,lineNumber:69}})),getByTestId=_render2.getByTestId;expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');fireEvent.press(getByTestId('First-next'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Third');fireEvent.press(getByTestId('Third-next'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');fireEvent.press(getByTestId('Second-back'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');});it('uses backBehavior=initialRoute when specified',function(){var SwitchNavigator=createSwitchNavigator({First:createScreen('First','Third'),Second:createScreen('Second','First'),Third:createScreen('Third','Second')},{backBehavior:'initialRoute'});var App=createAppContainer(SwitchNavigator);var navigationRef=React.createRef();var _render3=render(React.createElement(App,{ref:navigationRef,__source:{fileName:_jsxFileName,lineNumber:102}})),getByTestId=_render3.getByTestId;expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');fireEvent.press(getByTestId('First-next'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Third');fireEvent.press(getByTestId('Third-next'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');fireEvent.press(getByTestId('Second-back'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');});it('uses backBehavior=order when specified',function(){var SwitchNavigator=createSwitchNavigator({First:createScreen('First','Third'),Second:createScreen('Second','First'),Third:createScreen('Third','Second')},{backBehavior:'order'});var App=createAppContainer(SwitchNavigator);var navigationRef=React.createRef();var _render4=render(React.createElement(App,{ref:navigationRef,__source:{fileName:_jsxFileName,lineNumber:135}})),getByTestId=_render4.getByTestId;expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');fireEvent.press(getByTestId('First-next'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Third');fireEvent.press(getByTestId('Third-back'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');fireEvent.press(getByTestId('Second-back'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');});it('uses backBehavior=history when specified',function(){var SwitchNavigator=createSwitchNavigator({First:createScreen('First','Third'),Second:createScreen('Second','First'),Third:createScreen('Third','Second')},{backBehavior:'history'});var App=createAppContainer(SwitchNavigator);var navigationRef=React.createRef();var _render5=render(React.createElement(App,{ref:navigationRef,__source:{fileName:_jsxFileName,lineNumber:168}})),getByTestId=_render5.getByTestId;expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');fireEvent.press(getByTestId('First-next'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Third');fireEvent.press(getByTestId('Third-next'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');fireEvent.press(getByTestId('Second-next'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');fireEvent.press(getByTestId('First-next'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Third');fireEvent.press(getByTestId('Third-back'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');fireEvent.press(getByTestId('First-back'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');fireEvent.press(getByTestId('Second-back'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');});it('returns correct value for canGoBack in a simple navigator',function(){var SwitchNavigator=createSwitchNavigator({First:createScreen('First','Third'),Second:createScreen('Second','First'),Third:createScreen('Third','Second')},{backBehavior:'history'});var App=createAppContainer(SwitchNavigator);var navigationRef=React.createRef();var _render6=render(React.createElement(App,{ref:navigationRef,__source:{fileName:_jsxFileName,lineNumber:217}})),getByTestId=_render6.getByTestId;expect(getByTestId('First-isFirstRoute').props.children).toBe('true');fireEvent.press(getByTestId('First-next'));expect(getByTestId('Third-isFirstRoute').props.children).toBe('false');fireEvent.press(getByTestId('Third-next'));expect(getByTestId('Second-isFirstRoute').props.children).toBe('false');fireEvent.press(getByTestId('Second-back'));expect(getByTestId('Third-isFirstRoute').props.children).toBe('false');});
+ //# sourceMappingURL=createSwitchnavigator-test.js.map
+\ No newline at end of file
+diff --git a/node_modules/@react-navigation/core/lib/module/navigators/__tests__/createSwitchnavigator-test.js.map b/node_modules/@react-navigation/core/lib/module/navigators/__tests__/createSwitchnavigator-test.js.map
+index d483820..b24aaaf 100644
+--- a/node_modules/@react-navigation/core/lib/module/navigators/__tests__/createSwitchnavigator-test.js.map
++++ b/node_modules/@react-navigation/core/lib/module/navigators/__tests__/createSwitchnavigator-test.js.map
+@@ -1 +1 @@
+-{"version":3,"sources":["createSwitchnavigator-test.js"],"names":["React","Text","View","TouchableOpacity","render","fireEvent","createAppContainer","createSwitchNavigator","jest","mock","require","getActiveRouteName","state","routes","index","routeName","createScreen","nextRouteName","props","String","navigation","isFirstRouteInParent","navigate","goBack","it","SwitchNavigator","First","Second","Third","initialRouteName","App","queryByText","getByTestId","expect","toBeNull","not","press","navigationRef","createRef","current","nav","toBe","backBehavior","children"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { Text, View, TouchableOpacity } from 'react-native';\nimport { render, fireEvent } from 'react-native-testing-library';\nimport { createAppContainer } from '@react-navigation/native';\nimport createSwitchNavigator from '../createSwitchNavigator';\n\njest.mock('@react-navigation/core', () => require('../../index'));\n\nconst getActiveRouteName = state => state.routes[state.index].routeName;\nconst createScreen = (routeName, nextRouteName) => props => (\n \n {routeName}\n \n {String(props.navigation.isFirstRouteInParent())}\n \n props.navigation.navigate(nextRouteName)}\n >\n Go to {nextRouteName}\n \n props.navigation.goBack()}\n >\n Go back\n \n \n);\n\nit('renders switch navigator with initialRouteName', () => {\n const SwitchNavigator = createSwitchNavigator(\n {\n First: createScreen('First', 'Third'),\n Second: createScreen('Second', 'First'),\n Third: createScreen('Third', 'Second'),\n },\n {\n initialRouteName: 'Second',\n }\n );\n\n const App = createAppContainer(SwitchNavigator);\n\n const { queryByText, getByTestId } = render();\n\n expect(queryByText('First')).toBeNull();\n expect(queryByText('Third')).toBeNull();\n expect(queryByText('Second')).not.toBeNull();\n\n fireEvent.press(getByTestId('Second-next'));\n\n expect(queryByText('First')).not.toBeNull();\n expect(queryByText('Third')).toBeNull();\n expect(queryByText('Second')).toBeNull();\n});\n\nit('uses backBehavior=none by default', () => {\n const SwitchNavigator = createSwitchNavigator({\n First: createScreen('First', 'Third'),\n Second: createScreen('Second', 'First'),\n Third: createScreen('Third', 'Second'),\n });\n\n const App = createAppContainer(SwitchNavigator);\n\n const navigationRef = React.createRef();\n\n const { getByTestId } = render();\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');\n\n fireEvent.press(getByTestId('First-next'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Third');\n\n fireEvent.press(getByTestId('Third-next'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');\n\n fireEvent.press(getByTestId('Second-back'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');\n});\n\nit('uses backBehavior=initialRoute when specified', () => {\n const SwitchNavigator = createSwitchNavigator(\n {\n First: createScreen('First', 'Third'),\n Second: createScreen('Second', 'First'),\n Third: createScreen('Third', 'Second'),\n },\n {\n backBehavior: 'initialRoute',\n }\n );\n\n const App = createAppContainer(SwitchNavigator);\n\n const navigationRef = React.createRef();\n\n const { getByTestId } = render();\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');\n\n fireEvent.press(getByTestId('First-next'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Third');\n\n fireEvent.press(getByTestId('Third-next'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');\n\n fireEvent.press(getByTestId('Second-back'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');\n});\n\nit('uses backBehavior=order when specified', () => {\n const SwitchNavigator = createSwitchNavigator(\n {\n First: createScreen('First', 'Third'),\n Second: createScreen('Second', 'First'),\n Third: createScreen('Third', 'Second'),\n },\n {\n backBehavior: 'order',\n }\n );\n\n const App = createAppContainer(SwitchNavigator);\n\n const navigationRef = React.createRef();\n\n const { getByTestId } = render();\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');\n\n fireEvent.press(getByTestId('First-next'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Third');\n\n fireEvent.press(getByTestId('Third-back'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');\n\n fireEvent.press(getByTestId('Second-back'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');\n});\n\nit('uses backBehavior=history when specified', () => {\n const SwitchNavigator = createSwitchNavigator(\n {\n First: createScreen('First', 'Third'),\n Second: createScreen('Second', 'First'),\n Third: createScreen('Third', 'Second'),\n },\n {\n backBehavior: 'history',\n }\n );\n\n const App = createAppContainer(SwitchNavigator);\n\n const navigationRef = React.createRef();\n\n const { getByTestId } = render();\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');\n\n fireEvent.press(getByTestId('First-next'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Third');\n\n fireEvent.press(getByTestId('Third-next'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');\n\n fireEvent.press(getByTestId('Second-next'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');\n\n fireEvent.press(getByTestId('First-next'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Third');\n\n fireEvent.press(getByTestId('Third-back'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');\n\n fireEvent.press(getByTestId('First-back'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');\n\n fireEvent.press(getByTestId('Second-back'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');\n});\n\nit('returns correct value for canGoBack in a simple navigator', () => {\n const SwitchNavigator = createSwitchNavigator(\n {\n First: createScreen('First', 'Third'),\n Second: createScreen('Second', 'First'),\n Third: createScreen('Third', 'Second'),\n },\n {\n backBehavior: 'history',\n }\n );\n\n const App = createAppContainer(SwitchNavigator);\n\n const navigationRef = React.createRef();\n\n const { getByTestId } = render();\n\n expect(getByTestId('First-isFirstRoute').props.children).toBe('true');\n\n fireEvent.press(getByTestId('First-next'));\n\n expect(getByTestId('Third-isFirstRoute').props.children).toBe('false');\n\n fireEvent.press(getByTestId('Third-next'));\n\n expect(getByTestId('Second-isFirstRoute').props.children).toBe('false');\n\n fireEvent.press(getByTestId('Second-back'));\n\n expect(getByTestId('Third-isFirstRoute').props.children).toBe('false');\n});\n"]}
+\ No newline at end of file
++{"version":3,"sources":["createSwitchnavigator-test.js"],"names":["React","Text","View","TouchableOpacity","render","fireEvent","createAppContainer","createSwitchNavigator","jest","mock","require","getActiveRouteName","state","routes","index","routeName","createScreen","nextRouteName","props","String","navigation","isFirstRouteInParent","navigate","goBack","it","SwitchNavigator","First","Second","Third","initialRouteName","App","queryByText","getByTestId","expect","toBeNull","not","press","navigationRef","createRef","current","nav","toBe","backBehavior","children"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { Text, View, TouchableOpacity } from 'react-native';\nimport { render, fireEvent } from 'react-native-testing-library';\nimport { createAppContainer } from '@react-navigation/native';\nimport createSwitchNavigator from '../createSwitchNavigator';\n\njest.mock('@react-navigation/core', () => require('../../index'));\n\nconst getActiveRouteName = state => state.routes[state.index].routeName;\nconst createScreen = (routeName, nextRouteName) => props => (\n \n {routeName}\n \n {String(props.navigation.isFirstRouteInParent())}\n \n props.navigation.navigate(nextRouteName)}\n >\n Go to {nextRouteName}\n \n props.navigation.goBack()}\n >\n Go back\n \n \n);\n\nit('renders switch navigator with initialRouteName', () => {\n const SwitchNavigator = createSwitchNavigator(\n {\n First: createScreen('First', 'Third'),\n Second: createScreen('Second', 'First'),\n Third: createScreen('Third', 'Second'),\n },\n {\n initialRouteName: 'Second',\n }\n );\n\n const App = createAppContainer(SwitchNavigator);\n\n const { queryByText, getByTestId } = render();\n\n expect(queryByText('First')).toBeNull();\n expect(queryByText('Third')).toBeNull();\n expect(queryByText('Second')).not.toBeNull();\n\n fireEvent.press(getByTestId('Second-next'));\n\n expect(queryByText('First')).not.toBeNull();\n expect(queryByText('Third')).toBeNull();\n expect(queryByText('Second')).toBeNull();\n});\n\nit('uses backBehavior=none by default', () => {\n const SwitchNavigator = createSwitchNavigator({\n First: createScreen('First', 'Third'),\n Second: createScreen('Second', 'First'),\n Third: createScreen('Third', 'Second'),\n });\n\n const App = createAppContainer(SwitchNavigator);\n\n const navigationRef = React.createRef();\n\n const { getByTestId } = render();\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');\n\n fireEvent.press(getByTestId('First-next'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Third');\n\n fireEvent.press(getByTestId('Third-next'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');\n\n fireEvent.press(getByTestId('Second-back'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');\n});\n\nit('uses backBehavior=initialRoute when specified', () => {\n const SwitchNavigator = createSwitchNavigator(\n {\n First: createScreen('First', 'Third'),\n Second: createScreen('Second', 'First'),\n Third: createScreen('Third', 'Second'),\n },\n {\n backBehavior: 'initialRoute',\n }\n );\n\n const App = createAppContainer(SwitchNavigator);\n\n const navigationRef = React.createRef();\n\n const { getByTestId } = render();\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');\n\n fireEvent.press(getByTestId('First-next'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Third');\n\n fireEvent.press(getByTestId('Third-next'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');\n\n fireEvent.press(getByTestId('Second-back'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');\n});\n\nit('uses backBehavior=order when specified', () => {\n const SwitchNavigator = createSwitchNavigator(\n {\n First: createScreen('First', 'Third'),\n Second: createScreen('Second', 'First'),\n Third: createScreen('Third', 'Second'),\n },\n {\n backBehavior: 'order',\n }\n );\n\n const App = createAppContainer(SwitchNavigator);\n\n const navigationRef = React.createRef();\n\n const { getByTestId } = render();\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');\n\n fireEvent.press(getByTestId('First-next'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Third');\n\n fireEvent.press(getByTestId('Third-back'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');\n\n fireEvent.press(getByTestId('Second-back'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');\n});\n\nit('uses backBehavior=history when specified', () => {\n const SwitchNavigator = createSwitchNavigator(\n {\n First: createScreen('First', 'Third'),\n Second: createScreen('Second', 'First'),\n Third: createScreen('Third', 'Second'),\n },\n {\n backBehavior: 'history',\n }\n );\n\n const App = createAppContainer(SwitchNavigator);\n\n const navigationRef = React.createRef();\n\n const { getByTestId } = render();\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');\n\n fireEvent.press(getByTestId('First-next'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Third');\n\n fireEvent.press(getByTestId('Third-next'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');\n\n fireEvent.press(getByTestId('Second-next'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');\n\n fireEvent.press(getByTestId('First-next'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Third');\n\n fireEvent.press(getByTestId('Third-back'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');\n\n fireEvent.press(getByTestId('First-back'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');\n\n fireEvent.press(getByTestId('Second-back'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');\n});\n\nit('returns correct value for canGoBack in a simple navigator', () => {\n const SwitchNavigator = createSwitchNavigator(\n {\n First: createScreen('First', 'Third'),\n Second: createScreen('Second', 'First'),\n Third: createScreen('Third', 'Second'),\n },\n {\n backBehavior: 'history',\n }\n );\n\n const App = createAppContainer(SwitchNavigator);\n\n const navigationRef = React.createRef();\n\n const { getByTestId } = render();\n\n expect(getByTestId('First-isFirstRoute').props.children).toBe('true');\n\n fireEvent.press(getByTestId('First-next'));\n\n expect(getByTestId('Third-isFirstRoute').props.children).toBe('false');\n\n fireEvent.press(getByTestId('Third-next'));\n\n expect(getByTestId('Second-isFirstRoute').props.children).toBe('false');\n\n fireEvent.press(getByTestId('Second-back'));\n\n expect(getByTestId('Third-isFirstRoute').props.children).toBe('false');\n});\n"]}
+\ No newline at end of file
+diff --git a/node_modules/@react-navigation/core/lib/module/navigators/createNavigator.js b/node_modules/@react-navigation/core/lib/module/navigators/createNavigator.js
+index 9452d4b..dd85804 100644
+--- a/node_modules/@react-navigation/core/lib/module/navigators/createNavigator.js
++++ b/node_modules/@react-navigation/core/lib/module/navigators/createNavigator.js
+@@ -1,2 +1,2 @@
+-import _extends from"@babel/runtime/helpers/extends";import _classCallCheck from"@babel/runtime/helpers/classCallCheck";import _createClass from"@babel/runtime/helpers/createClass";import _possibleConstructorReturn from"@babel/runtime/helpers/possibleConstructorReturn";import _getPrototypeOf from"@babel/runtime/helpers/getPrototypeOf";import _inherits from"@babel/runtime/helpers/inherits";var _jsxFileName="/Users/satya/Workspace/Callstack/react-navigation-core/src/navigators/createNavigator.js";import React from'react';import invariant from'../utils/invariant';function createNavigator(NavigatorView,router,navigationConfig){var Navigator=function(_React$Component){_inherits(Navigator,_React$Component);function Navigator(){var _getPrototypeOf2;var _this;_classCallCheck(this,Navigator);for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key];}_this=_possibleConstructorReturn(this,(_getPrototypeOf2=_getPrototypeOf(Navigator)).call.apply(_getPrototypeOf2,[this].concat(args)));_this.state={descriptors:{},screenProps:_this.props.screenProps};return _this;}_createClass(Navigator,[{key:"render",value:function render(){return React.createElement(NavigatorView,_extends({},this.props,{screenProps:this.state.screenProps,navigation:this.props.navigation,navigationConfig:navigationConfig,descriptors:this.state.descriptors,__source:{fileName:_jsxFileName,lineNumber:61}}));}}],[{key:"getDerivedStateFromProps",value:function getDerivedStateFromProps(nextProps,prevState){var prevDescriptors=prevState.descriptors;var navigation=nextProps.navigation,screenProps=nextProps.screenProps;invariant(navigation!=null,'The navigation prop is missing for this navigator. In react-navigation 3 you must set up your app container directly. More info: https://reactnavigation.org/docs/en/app-containers.html');var state=navigation.state;var routes=state.routes;if(typeof routes==='undefined'){throw new TypeError('No "routes" found in navigation state. Did you try to pass the navigation prop of a React component to a Navigator child? See https://reactnavigation.org/docs/en/custom-navigators.html#navigator-navigation-prop');}var descriptors={};routes.forEach(function(route){if(prevDescriptors&&prevDescriptors[route.key]&&route===prevDescriptors[route.key].state&&screenProps===prevState.screenProps){descriptors[route.key]=prevDescriptors[route.key];return;}var getComponent=router.getComponentForRouteName.bind(null,route.routeName);var childNavigation=navigation.getChildNavigation(route.key);var options=router.getScreenOptions(childNavigation,screenProps);descriptors[route.key]={key:route.key,getComponent:getComponent,options:options,state:route,navigation:childNavigation};});return{descriptors:descriptors,screenProps:screenProps};}}]);return Navigator;}(React.Component);Navigator.router=router;Navigator.navigationOptions=navigationConfig.navigationOptions;return Navigator;}export default createNavigator;
++import _extends from"@babel/runtime/helpers/extends";import _classCallCheck from"@babel/runtime/helpers/classCallCheck";import _createClass from"@babel/runtime/helpers/createClass";import _possibleConstructorReturn from"@babel/runtime/helpers/possibleConstructorReturn";import _getPrototypeOf from"@babel/runtime/helpers/getPrototypeOf";import _inherits from"@babel/runtime/helpers/inherits";var _jsxFileName="/Users/brentvatne/coding/react-navigation-core/src/navigators/createNavigator.js";import React from'react';import invariant from'../utils/invariant';function createNavigator(NavigatorView,router,navigationConfig){var Navigator=function(_React$Component){_inherits(Navigator,_React$Component);function Navigator(){var _getPrototypeOf2;var _this;_classCallCheck(this,Navigator);for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key];}_this=_possibleConstructorReturn(this,(_getPrototypeOf2=_getPrototypeOf(Navigator)).call.apply(_getPrototypeOf2,[this].concat(args)));_this.state={descriptors:{},screenProps:_this.props.screenProps};return _this;}_createClass(Navigator,[{key:"render",value:function render(){return React.createElement(NavigatorView,_extends({},this.props,{screenProps:this.state.screenProps,navigation:this.props.navigation,navigationConfig:navigationConfig,descriptors:this.state.descriptors,__source:{fileName:_jsxFileName,lineNumber:61}}));}}],[{key:"getDerivedStateFromProps",value:function getDerivedStateFromProps(nextProps,prevState){var prevDescriptors=prevState.descriptors;var navigation=nextProps.navigation,screenProps=nextProps.screenProps;invariant(navigation!=null,'The navigation prop is missing for this navigator. In react-navigation 3 you must set up your app container directly. More info: https://reactnavigation.org/docs/en/app-containers.html');var state=navigation.state;var routes=state.routes;if(typeof routes==='undefined'){throw new TypeError('No "routes" found in navigation state. Did you try to pass the navigation prop of a React component to a Navigator child? See https://reactnavigation.org/docs/en/custom-navigators.html#navigator-navigation-prop');}var descriptors={};routes.forEach(function(route){if(prevDescriptors&&prevDescriptors[route.key]&&route===prevDescriptors[route.key].state&&screenProps===prevState.screenProps){descriptors[route.key]=prevDescriptors[route.key];return;}var getComponent=router.getComponentForRouteName.bind(null,route.routeName);var childNavigation=navigation.getChildNavigation(route.key);var options=router.getScreenOptions(childNavigation,screenProps);descriptors[route.key]={key:route.key,getComponent:getComponent,options:options,state:route,navigation:childNavigation};});return{descriptors:descriptors,screenProps:screenProps};}}]);return Navigator;}(React.Component);Navigator.router=router;Navigator.navigationOptions=navigationConfig.navigationOptions;return Navigator;}export default createNavigator;
+ //# sourceMappingURL=createNavigator.js.map
+\ No newline at end of file
+diff --git a/node_modules/@react-navigation/core/lib/module/navigators/createNavigator.js.map b/node_modules/@react-navigation/core/lib/module/navigators/createNavigator.js.map
+index b81f31d..145c9fc 100644
+--- a/node_modules/@react-navigation/core/lib/module/navigators/createNavigator.js.map
++++ b/node_modules/@react-navigation/core/lib/module/navigators/createNavigator.js.map
+@@ -1 +1 @@
+-{"version":3,"sources":["createNavigator.js"],"names":["React","invariant","createNavigator","NavigatorView","router","navigationConfig","Navigator","state","descriptors","screenProps","props","navigation","nextProps","prevState","prevDescriptors","routes","TypeError","forEach","route","key","getComponent","getComponentForRouteName","bind","routeName","childNavigation","getChildNavigation","options","getScreenOptions","Component","navigationOptions"],"mappings":"ofAAA,MAAOA,CAAAA,KAAP,KAAkB,OAAlB,CACA,MAAOC,CAAAA,SAAP,KAAsB,oBAAtB,CAEA,QAASC,CAAAA,eAAT,CAAyBC,aAAzB,CAAwCC,MAAxC,CAAgDC,gBAAhD,CAAkE,IAC1DC,CAAAA,SAD0D,0YAK9DC,KAL8D,CAKtD,CACNC,WAAW,CAAE,EADP,CAENC,WAAW,CAAE,MAAKC,KAAL,CAAWD,WAFlB,CALsD,4EAuDrD,CACP,MACE,qBAAC,aAAD,aACM,KAAKC,KADX,EAEE,WAAW,CAAE,KAAKH,KAAL,CAAWE,WAF1B,CAGE,UAAU,CAAE,KAAKC,KAAL,CAAWC,UAHzB,CAIE,gBAAgB,CAAEN,gBAJpB,CAKE,WAAW,CAAE,KAAKE,KAAL,CAAWC,WAL1B,kDADF,CASD,CAjE6D,4EAU9BI,SAV8B,CAUnBC,SAVmB,CAUR,CACpD,GAAMC,CAAAA,eAAe,CAAGD,SAAS,CAACL,WAAlC,CADoD,GAE5CG,CAAAA,UAF4C,CAEhBC,SAFgB,CAE5CD,UAF4C,CAEhCF,WAFgC,CAEhBG,SAFgB,CAEhCH,WAFgC,CAGpDR,SAAS,CACPU,UAAU,EAAI,IADP,CAEP,0LAFO,CAAT,CAHoD,GAO5CJ,CAAAA,KAP4C,CAOlCI,UAPkC,CAO5CJ,KAP4C,IAQ5CQ,CAAAA,MAR4C,CAQjCR,KARiC,CAQ5CQ,MAR4C,CASpD,GAAI,MAAOA,CAAAA,MAAP,GAAkB,WAAtB,CAAmC,CACjC,KAAM,IAAIC,CAAAA,SAAJ,CACJ,oNADI,CAAN,CAGD,CAED,GAAMR,CAAAA,WAAW,CAAG,EAApB,CAEAO,MAAM,CAACE,OAAP,CAAe,SAAAC,KAAK,CAAI,CACtB,GACEJ,eAAe,EACfA,eAAe,CAACI,KAAK,CAACC,GAAP,CADf,EAEAD,KAAK,GAAKJ,eAAe,CAACI,KAAK,CAACC,GAAP,CAAf,CAA2BZ,KAFrC,EAGAE,WAAW,GAAKI,SAAS,CAACJ,WAJ5B,CAKE,CACAD,WAAW,CAACU,KAAK,CAACC,GAAP,CAAX,CAAyBL,eAAe,CAACI,KAAK,CAACC,GAAP,CAAxC,CACA,OACD,CACD,GAAMC,CAAAA,YAAY,CAAGhB,MAAM,CAACiB,wBAAP,CAAgCC,IAAhC,CACnB,IADmB,CAEnBJ,KAAK,CAACK,SAFa,CAArB,CAIA,GAAMC,CAAAA,eAAe,CAAGb,UAAU,CAACc,kBAAX,CAA8BP,KAAK,CAACC,GAApC,CAAxB,CACA,GAAMO,CAAAA,OAAO,CAAGtB,MAAM,CAACuB,gBAAP,CAAwBH,eAAxB,CAAyCf,WAAzC,CAAhB,CACAD,WAAW,CAACU,KAAK,CAACC,GAAP,CAAX,CAAyB,CACvBA,GAAG,CAAED,KAAK,CAACC,GADY,CAEvBC,YAAY,CAAZA,YAFuB,CAGvBM,OAAO,CAAPA,OAHuB,CAIvBnB,KAAK,CAAEW,KAJgB,CAKvBP,UAAU,CAAEa,eALW,CAAzB,CAOD,CAvBD,EAyBA,MAAO,CAAEhB,WAAW,CAAXA,WAAF,CAAeC,WAAW,CAAXA,WAAf,CAAP,CACD,CArD6D,uBACxCT,KAAK,CAAC4B,SADkC,EAC1DtB,SAD0D,CAEvDF,MAFuD,CAE9CA,MAF8C,CAC1DE,SAD0D,CAGvDuB,iBAHuD,CAGnCxB,gBAAgB,CAACwB,iBAHkB,CAoEhE,MAAOvB,CAAAA,SAAP,CACD,CAED,cAAeJ,CAAAA,eAAf","sourcesContent":["import React from 'react';\nimport invariant from '../utils/invariant';\n\nfunction createNavigator(NavigatorView, router, navigationConfig) {\n class Navigator extends React.Component {\n static router = router;\n static navigationOptions = navigationConfig.navigationOptions;\n\n state = {\n descriptors: {},\n screenProps: this.props.screenProps,\n };\n\n static getDerivedStateFromProps(nextProps, prevState) {\n const prevDescriptors = prevState.descriptors;\n const { navigation, screenProps } = nextProps;\n invariant(\n navigation != null,\n 'The navigation prop is missing for this navigator. In react-navigation 3 you must set up your app container directly. More info: https://reactnavigation.org/docs/en/app-containers.html'\n );\n const { state } = navigation;\n const { routes } = state;\n if (typeof routes === 'undefined') {\n throw new TypeError(\n 'No \"routes\" found in navigation state. Did you try to pass the navigation prop of a React component to a Navigator child? See https://reactnavigation.org/docs/en/custom-navigators.html#navigator-navigation-prop'\n );\n }\n\n const descriptors = {};\n\n routes.forEach(route => {\n if (\n prevDescriptors &&\n prevDescriptors[route.key] &&\n route === prevDescriptors[route.key].state &&\n screenProps === prevState.screenProps\n ) {\n descriptors[route.key] = prevDescriptors[route.key];\n return;\n }\n const getComponent = router.getComponentForRouteName.bind(\n null,\n route.routeName\n );\n const childNavigation = navigation.getChildNavigation(route.key);\n const options = router.getScreenOptions(childNavigation, screenProps);\n descriptors[route.key] = {\n key: route.key,\n getComponent,\n options,\n state: route,\n navigation: childNavigation,\n };\n });\n\n return { descriptors, screenProps };\n }\n\n render() {\n return (\n \n );\n }\n }\n\n return Navigator;\n}\n\nexport default createNavigator;\n"]}
+\ No newline at end of file
++{"version":3,"sources":["createNavigator.js"],"names":["React","invariant","createNavigator","NavigatorView","router","navigationConfig","Navigator","state","descriptors","screenProps","props","navigation","nextProps","prevState","prevDescriptors","routes","TypeError","forEach","route","key","getComponent","getComponentForRouteName","bind","routeName","childNavigation","getChildNavigation","options","getScreenOptions","Component","navigationOptions"],"mappings":"4eAAA,MAAOA,CAAAA,KAAP,KAAkB,OAAlB,CACA,MAAOC,CAAAA,SAAP,KAAsB,oBAAtB,CAEA,QAASC,CAAAA,eAAT,CAAyBC,aAAzB,CAAwCC,MAAxC,CAAgDC,gBAAhD,CAAkE,IAC1DC,CAAAA,SAD0D,0YAK9DC,KAL8D,CAKtD,CACNC,WAAW,CAAE,EADP,CAENC,WAAW,CAAE,MAAKC,KAAL,CAAWD,WAFlB,CALsD,4EAuDrD,CACP,MACE,qBAAC,aAAD,aACM,KAAKC,KADX,EAEE,WAAW,CAAE,KAAKH,KAAL,CAAWE,WAF1B,CAGE,UAAU,CAAE,KAAKC,KAAL,CAAWC,UAHzB,CAIE,gBAAgB,CAAEN,gBAJpB,CAKE,WAAW,CAAE,KAAKE,KAAL,CAAWC,WAL1B,kDADF,CASD,CAjE6D,4EAU9BI,SAV8B,CAUnBC,SAVmB,CAUR,CACpD,GAAMC,CAAAA,eAAe,CAAGD,SAAS,CAACL,WAAlC,CADoD,GAE5CG,CAAAA,UAF4C,CAEhBC,SAFgB,CAE5CD,UAF4C,CAEhCF,WAFgC,CAEhBG,SAFgB,CAEhCH,WAFgC,CAGpDR,SAAS,CACPU,UAAU,EAAI,IADP,CAEP,0LAFO,CAAT,CAHoD,GAO5CJ,CAAAA,KAP4C,CAOlCI,UAPkC,CAO5CJ,KAP4C,IAQ5CQ,CAAAA,MAR4C,CAQjCR,KARiC,CAQ5CQ,MAR4C,CASpD,GAAI,MAAOA,CAAAA,MAAP,GAAkB,WAAtB,CAAmC,CACjC,KAAM,IAAIC,CAAAA,SAAJ,CACJ,oNADI,CAAN,CAGD,CAED,GAAMR,CAAAA,WAAW,CAAG,EAApB,CAEAO,MAAM,CAACE,OAAP,CAAe,SAAAC,KAAK,CAAI,CACtB,GACEJ,eAAe,EACfA,eAAe,CAACI,KAAK,CAACC,GAAP,CADf,EAEAD,KAAK,GAAKJ,eAAe,CAACI,KAAK,CAACC,GAAP,CAAf,CAA2BZ,KAFrC,EAGAE,WAAW,GAAKI,SAAS,CAACJ,WAJ5B,CAKE,CACAD,WAAW,CAACU,KAAK,CAACC,GAAP,CAAX,CAAyBL,eAAe,CAACI,KAAK,CAACC,GAAP,CAAxC,CACA,OACD,CACD,GAAMC,CAAAA,YAAY,CAAGhB,MAAM,CAACiB,wBAAP,CAAgCC,IAAhC,CACnB,IADmB,CAEnBJ,KAAK,CAACK,SAFa,CAArB,CAIA,GAAMC,CAAAA,eAAe,CAAGb,UAAU,CAACc,kBAAX,CAA8BP,KAAK,CAACC,GAApC,CAAxB,CACA,GAAMO,CAAAA,OAAO,CAAGtB,MAAM,CAACuB,gBAAP,CAAwBH,eAAxB,CAAyCf,WAAzC,CAAhB,CACAD,WAAW,CAACU,KAAK,CAACC,GAAP,CAAX,CAAyB,CACvBA,GAAG,CAAED,KAAK,CAACC,GADY,CAEvBC,YAAY,CAAZA,YAFuB,CAGvBM,OAAO,CAAPA,OAHuB,CAIvBnB,KAAK,CAAEW,KAJgB,CAKvBP,UAAU,CAAEa,eALW,CAAzB,CAOD,CAvBD,EAyBA,MAAO,CAAEhB,WAAW,CAAXA,WAAF,CAAeC,WAAW,CAAXA,WAAf,CAAP,CACD,CArD6D,uBACxCT,KAAK,CAAC4B,SADkC,EAC1DtB,SAD0D,CAEvDF,MAFuD,CAE9CA,MAF8C,CAC1DE,SAD0D,CAGvDuB,iBAHuD,CAGnCxB,gBAAgB,CAACwB,iBAHkB,CAoEhE,MAAOvB,CAAAA,SAAP,CACD,CAED,cAAeJ,CAAAA,eAAf","sourcesContent":["import React from 'react';\nimport invariant from '../utils/invariant';\n\nfunction createNavigator(NavigatorView, router, navigationConfig) {\n class Navigator extends React.Component {\n static router = router;\n static navigationOptions = navigationConfig.navigationOptions;\n\n state = {\n descriptors: {},\n screenProps: this.props.screenProps,\n };\n\n static getDerivedStateFromProps(nextProps, prevState) {\n const prevDescriptors = prevState.descriptors;\n const { navigation, screenProps } = nextProps;\n invariant(\n navigation != null,\n 'The navigation prop is missing for this navigator. In react-navigation 3 you must set up your app container directly. More info: https://reactnavigation.org/docs/en/app-containers.html'\n );\n const { state } = navigation;\n const { routes } = state;\n if (typeof routes === 'undefined') {\n throw new TypeError(\n 'No \"routes\" found in navigation state. Did you try to pass the navigation prop of a React component to a Navigator child? See https://reactnavigation.org/docs/en/custom-navigators.html#navigator-navigation-prop'\n );\n }\n\n const descriptors = {};\n\n routes.forEach(route => {\n if (\n prevDescriptors &&\n prevDescriptors[route.key] &&\n route === prevDescriptors[route.key].state &&\n screenProps === prevState.screenProps\n ) {\n descriptors[route.key] = prevDescriptors[route.key];\n return;\n }\n const getComponent = router.getComponentForRouteName.bind(\n null,\n route.routeName\n );\n const childNavigation = navigation.getChildNavigation(route.key);\n const options = router.getScreenOptions(childNavigation, screenProps);\n descriptors[route.key] = {\n key: route.key,\n getComponent,\n options,\n state: route,\n navigation: childNavigation,\n };\n });\n\n return { descriptors, screenProps };\n }\n\n render() {\n return (\n \n );\n }\n }\n\n return Navigator;\n}\n\nexport default createNavigator;\n"]}
+\ No newline at end of file
+diff --git a/node_modules/@react-navigation/core/lib/module/routers/StackRouter.js b/node_modules/@react-navigation/core/lib/module/routers/StackRouter.js
+index 0da41b7..90fb0e8 100644
+--- a/node_modules/@react-navigation/core/lib/module/routers/StackRouter.js
++++ b/node_modules/@react-navigation/core/lib/module/routers/StackRouter.js
+@@ -1,2 +1,2 @@
+-import _toConsumableArray from"@babel/runtime/helpers/toConsumableArray";import _objectSpread from"@babel/runtime/helpers/objectSpread";import*as NavigationActions from'../NavigationActions';import*as StackActions from'./StackActions';import createConfigGetter from'./createConfigGetter';import getScreenForRouteName from'./getScreenForRouteName';import StateUtils from'../StateUtils';import validateRouteConfigMap from'./validateRouteConfigMap';import invariant from'../utils/invariant';import{generateKey}from'./KeyGenerator';import{createPathParser}from'./pathUtils';function behavesLikePushAction(action){return action.type===NavigationActions.NAVIGATE||action.type===StackActions.PUSH;}var defaultActionCreators=function defaultActionCreators(){return{};};function isResetToRootStack(action){return action.type===StackActions.RESET&&action.key===null;}export default(function(routeConfigs){var stackConfig=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};validateRouteConfigMap(routeConfigs);var childRouters={};var routeNames=Object.keys(routeConfigs);routeNames.forEach(function(routeName){var screen=getScreenForRouteName(routeConfigs,routeName);if(screen&&screen.router){childRouters[routeName]=screen.router;}else{childRouters[routeName]=null;}});var initialRouteParams=stackConfig.initialRouteParams;var getCustomActionCreators=stackConfig.getCustomActionCreators||defaultActionCreators;var initialRouteName=stackConfig.initialRouteName||routeNames[0];var initialChildRouter=childRouters[initialRouteName];function getInitialState(action){var route={};var childRouter=childRouters[action.routeName];if(behavesLikePushAction(action)&&childRouter!==undefined){var childState={};if(childRouter!==null){var childAction=action.action||NavigationActions.init({params:action.params});childState=childRouter.getStateForAction(childAction);}return{key:'StackRouterRoot',isTransitioning:false,index:0,routes:[_objectSpread({params:action.params},childState,{key:action.key||generateKey(),routeName:action.routeName})]};}if(initialChildRouter){route=initialChildRouter.getStateForAction(NavigationActions.navigate({routeName:initialRouteName,params:initialRouteParams}));}var params=(routeConfigs[initialRouteName].params||route.params||action.params||initialRouteParams)&&_objectSpread({},routeConfigs[initialRouteName].params||{},route.params||{},action.params||{},initialRouteParams||{});var initialRouteKey=stackConfig.initialRouteKey;route=_objectSpread({},route,params?{params:params}:{},{routeName:initialRouteName,key:action.key||initialRouteKey||generateKey()});return{key:'StackRouterRoot',isTransitioning:false,index:0,routes:[route]};}function getParamsForRouteAndAction(routeName,action){var routeConfig=routeConfigs[routeName];if(routeConfig&&routeConfig.params){return _objectSpread({},routeConfig.params,action.params);}else{return action.params;}}var _createPathParser=createPathParser(childRouters,routeConfigs,stackConfig),getPathAndParamsForRoute=_createPathParser.getPathAndParamsForRoute,_getActionForPathAndParams=_createPathParser.getActionForPathAndParams;return{childRouters:childRouters,getComponentForState:function getComponentForState(state){var activeChildRoute=state.routes[state.index];var routeName=activeChildRoute.routeName;if(childRouters[routeName]){return childRouters[routeName].getComponentForState(activeChildRoute);}return getScreenForRouteName(routeConfigs,routeName);},getComponentForRouteName:function getComponentForRouteName(routeName){return getScreenForRouteName(routeConfigs,routeName);},getActionCreators:function getActionCreators(route,navStateKey){return _objectSpread({},getCustomActionCreators(route,navStateKey),{pop:function pop(n,params){return StackActions.pop(_objectSpread({n:n},params));},popToTop:function popToTop(params){return StackActions.popToTop(params);},push:function push(routeName,params,action){return StackActions.push({routeName:routeName,params:params,action:action});},replace:function replace(replaceWith,params,action,newKey){if(typeof replaceWith==='string'){return StackActions.replace({routeName:replaceWith,params:params,action:action,key:route.key,newKey:newKey});}invariant(typeof replaceWith==='object','Must replaceWith an object or a string');invariant(params==null,'Params must not be provided to .replace() when specifying an object');invariant(action==null,'Child action must not be provided to .replace() when specifying an object');invariant(newKey==null,'Child action must not be provided to .replace() when specifying an object');return StackActions.replace(replaceWith);},reset:function reset(actions,index){return StackActions.reset({actions:actions,index:index==null?actions.length-1:index,key:navStateKey});},dismiss:function dismiss(){return NavigationActions.back({key:navStateKey});}});},getStateForAction:function getStateForAction(action,state){if(!state){return getInitialState(action);}var activeChildRoute=state.routes[state.index];if(!isResetToRootStack(action)&&action.type!==NavigationActions.NAVIGATE){var activeChildRouter=childRouters[activeChildRoute.routeName];if(activeChildRouter){var route=activeChildRouter.getStateForAction(action,activeChildRoute);if(route!==null&&route!==activeChildRoute){return StateUtils.replaceAt(state,activeChildRoute.key,route,action.type===NavigationActions.SET_PARAMS);}}}else if(action.type===NavigationActions.NAVIGATE){for(var _iterator=state.routes.slice().reverse(),_isArray=Array.isArray(_iterator),_i=0,_iterator=_isArray?_iterator:_iterator[typeof Symbol==="function"?Symbol.iterator:"@@iterator"]();;){var _ref;if(_isArray){if(_i>=_iterator.length)break;_ref=_iterator[_i++];}else{_i=_iterator.next();if(_i.done)break;_ref=_i.value;}var _childRoute=_ref;var childRouter=childRouters[_childRoute.routeName];var childAction=action.routeName===_childRoute.routeName&&action.action?action.action:action;if(childRouter){var nextRouteState=childRouter.getStateForAction(childAction,_childRoute);if(nextRouteState===null||nextRouteState!==_childRoute){var newState=StateUtils.replaceAndPrune(state,nextRouteState?nextRouteState.key:_childRoute.key,nextRouteState?nextRouteState:_childRoute);return _objectSpread({},newState,{isTransitioning:state.index!==newState.index?action.immediate!==true:state.isTransitioning});}}}}if(behavesLikePushAction(action)&&childRouters[action.routeName]!==undefined){var _childRouter=childRouters[action.routeName];var _route;invariant(action.type!==StackActions.PUSH||action.key==null,'StackRouter does not support key on the push action');var lastRouteIndex=state.routes.findIndex(function(r){if(action.key){return r.key===action.key;}else{return r.routeName===action.routeName;}});if(action.type!==StackActions.PUSH&&lastRouteIndex!==-1){if(state.index===lastRouteIndex&&!action.params){return null;}var routes=state.routes.slice(0,lastRouteIndex+1);if(action.params){var _route2=state.routes[lastRouteIndex];routes[lastRouteIndex]=_objectSpread({},_route2,{params:_objectSpread({},_route2.params,action.params)});}return _objectSpread({},state,{isTransitioning:state.index!==lastRouteIndex?action.immediate!==true:state.isTransitioning,index:lastRouteIndex,routes:routes});}if(_childRouter){var _childAction=action.action||NavigationActions.init({params:getParamsForRouteAndAction(action.routeName,action)});_route=_objectSpread({params:getParamsForRouteAndAction(action.routeName,action)},_childRouter.getStateForAction(_childAction),{routeName:action.routeName,key:action.key||generateKey()});}else{_route={params:getParamsForRouteAndAction(action.routeName,action),routeName:action.routeName,key:action.key||generateKey()};}return _objectSpread({},StateUtils.push(state,_route),{isTransitioning:action.immediate!==true});}else if(action.type===StackActions.PUSH&&childRouters[action.routeName]===undefined){return state;}if(behavesLikePushAction(action)){var childRouterNames=Object.keys(childRouters);for(var i=0;i0){return _objectSpread({},state,{isTransitioning:action.immediate!==true,index:0,routes:[state.routes[0]]});}return state;}if(action.type===StackActions.REPLACE){var routeIndex;if(action.key===undefined&&state.routes.length){routeIndex=state.routes.length-1;}else{routeIndex=state.routes.findIndex(function(r){return r.key===action.key;});}if(routeIndex!==-1){var _childRouter3=childRouters[action.routeName];var childState={};if(_childRouter3){var _childAction2=action.action||NavigationActions.init({params:getParamsForRouteAndAction(action.routeName,action)});childState=_childRouter3.getStateForAction(_childAction2);}var _routes=_toConsumableArray(state.routes);_routes[routeIndex]=_objectSpread({params:getParamsForRouteAndAction(action.routeName,action)},childState,{routeName:action.routeName,key:action.newKey||generateKey()});return _objectSpread({},state,{routes:_routes});}}if(action.type===StackActions.COMPLETE_TRANSITION&&(action.key==null||action.key===state.key)&&action.toChildKey===state.routes[state.index].key&&state.isTransitioning){return _objectSpread({},state,{isTransitioning:false});}if(action.type===NavigationActions.SET_PARAMS){var key=action.key;var lastRoute=state.routes.find(function(route){return route.key===key;});if(lastRoute){var params=_objectSpread({},lastRoute.params,action.params);var _routes2=_toConsumableArray(state.routes);_routes2[state.routes.indexOf(lastRoute)]=_objectSpread({},lastRoute,{params:params});return _objectSpread({},state,{routes:_routes2});}}if(action.type===StackActions.RESET){if(action.key!=null&&action.key!=state.key){return state;}var newStackActions=action.actions;return _objectSpread({},state,{routes:newStackActions.map(function(newStackAction){var router=childRouters[newStackAction.routeName];var childState={};if(router){var _childAction3=newStackAction.action||NavigationActions.init({params:getParamsForRouteAndAction(newStackAction.routeName,newStackAction)});childState=router.getStateForAction(_childAction3);}return _objectSpread({params:getParamsForRouteAndAction(newStackAction.routeName,newStackAction)},childState,{routeName:newStackAction.routeName,key:newStackAction.key||generateKey()});}),index:action.index});}if(action.type===NavigationActions.BACK||action.type===StackActions.POP){var _key=action.key,n=action.n,immediate=action.immediate;var backRouteIndex=state.index;if(action.type===StackActions.POP&&n!=null){backRouteIndex=Math.max(1,state.index-n+1);}else if(_key){var backRoute=state.routes.find(function(route){return route.key===_key;});backRouteIndex=state.routes.indexOf(backRoute);}if(backRouteIndex>0){return _objectSpread({},state,{routes:state.routes.slice(0,backRouteIndex),index:backRouteIndex-1,isTransitioning:immediate!==true});}}var keyIndex=action.key?StateUtils.indexOf(state,action.key):-1;for(var _iterator2=state.routes.slice().reverse(),_isArray2=Array.isArray(_iterator2),_i2=0,_iterator2=_isArray2?_iterator2:_iterator2[typeof Symbol==="function"?Symbol.iterator:"@@iterator"]();;){var _ref2;if(_isArray2){if(_i2>=_iterator2.length)break;_ref2=_iterator2[_i2++];}else{_i2=_iterator2.next();if(_i2.done)break;_ref2=_i2.value;}var _childRoute3=_ref2;if(_childRoute3.key===activeChildRoute.key){continue;}if(keyIndex>=0&&_childRoute3.key!==action.key){continue;}var _childRouter5=childRouters[_childRoute3.routeName];if(_childRouter5){var _route4=_childRouter5.getStateForAction(action,_childRoute3);if(_route4===null){return state;}else if(_route4&&_route4!==_childRoute3){return StateUtils.replaceAt(state,_childRoute3.key,_route4,action.preserveFocus||action.type.includes('DRAWER'));}}}return state;},getPathAndParamsForState:function getPathAndParamsForState(state){var route=state.routes[state.index];return getPathAndParamsForRoute(route);},getActionForPathAndParams:function getActionForPathAndParams(path,params){return _getActionForPathAndParams(path,params);},getScreenOptions:createConfigGetter(routeConfigs,stackConfig.defaultNavigationOptions)};});
++import _toConsumableArray from"@babel/runtime/helpers/toConsumableArray";import _objectSpread from"@babel/runtime/helpers/objectSpread";import*as NavigationActions from'../NavigationActions';import*as StackActions from'./StackActions';import createConfigGetter from'./createConfigGetter';import getScreenForRouteName from'./getScreenForRouteName';import StateUtils from'../StateUtils';import validateRouteConfigMap from'./validateRouteConfigMap';import invariant from'../utils/invariant';import{generateKey}from'./KeyGenerator';import{createPathParser}from'./pathUtils';function behavesLikePushAction(action){return action.type===NavigationActions.NAVIGATE||action.type===StackActions.PUSH;}var defaultActionCreators=function defaultActionCreators(){return{};};function isResetToRootStack(action){return action.type===StackActions.RESET&&action.key===null;}export default(function(routeConfigs){var stackConfig=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};validateRouteConfigMap(routeConfigs);var childRouters={};var routeNames=Object.keys(routeConfigs);routeNames.forEach(function(routeName){var routeConfig=routeConfigs[routeName];var screen=routeConfig&&routeConfig.screen?routeConfig.screen:routeConfig;if(screen&&screen.router){childRouters[routeName]=screen.router;}else{childRouters[routeName]=null;}});var initialRouteParams=stackConfig.initialRouteParams;var getCustomActionCreators=stackConfig.getCustomActionCreators||defaultActionCreators;var initialRouteName=stackConfig.initialRouteName||routeNames[0];var initialChildRouter=childRouters[initialRouteName];function getInitialState(action){var route={};var childRouter=childRouters[action.routeName];if(behavesLikePushAction(action)&&childRouter!==undefined){var childState={};if(childRouter!==null){var childAction=action.action||NavigationActions.init({params:action.params});childState=childRouter.getStateForAction(childAction);}return{key:'StackRouterRoot',index:0,transitions:{pushing:[],popping:[]},routes:[_objectSpread({params:action.params},childState,{key:action.key||generateKey(),routeName:action.routeName})]};}if(initialChildRouter){route=initialChildRouter.getStateForAction(NavigationActions.navigate({routeName:initialRouteName,params:initialRouteParams}));}var params=(routeConfigs[initialRouteName].params||route.params||action.params||initialRouteParams)&&_objectSpread({},routeConfigs[initialRouteName].params||{},route.params||{},action.params||{},initialRouteParams||{});var initialRouteKey=stackConfig.initialRouteKey;route=_objectSpread({},route,params?{params:params}:{},{routeName:initialRouteName,key:action.key||initialRouteKey||generateKey()});return{key:'StackRouterRoot',transitions:{pushing:[],popping:[]},index:0,routes:[route]};}function getParamsForRouteAndAction(routeName,action){var routeConfig=routeConfigs[routeName];if(routeConfig&&routeConfig.params){return _objectSpread({},routeConfig.params,action.params);}else{return action.params;}}var _createPathParser=createPathParser(childRouters,routeConfigs,stackConfig),getPathAndParamsForRoute=_createPathParser.getPathAndParamsForRoute,_getActionForPathAndParams=_createPathParser.getActionForPathAndParams;return{childRouters:childRouters,getComponentForState:function getComponentForState(state){var activeChildRoute=state.routes[state.index];var routeName=activeChildRoute.routeName;if(childRouters[routeName]){return childRouters[routeName].getComponentForState(activeChildRoute);}return getScreenForRouteName(routeConfigs,routeName);},getComponentForRouteName:function getComponentForRouteName(routeName){return getScreenForRouteName(routeConfigs,routeName);},getActionCreators:function getActionCreators(route,navStateKey){return _objectSpread({},getCustomActionCreators(route,navStateKey),{pop:function pop(n,params){return StackActions.pop(_objectSpread({n:n},params));},popToTop:function popToTop(params){return StackActions.popToTop(params);},push:function push(routeName,params,action){return StackActions.push({routeName:routeName,params:params,action:action});},replace:function replace(replaceWith,params,action,newKey){if(typeof replaceWith==='string'){return StackActions.replace({routeName:replaceWith,params:params,action:action,key:route.key,newKey:newKey});}invariant(typeof replaceWith==='object','Must replaceWith an object or a string');invariant(params==null,'Params must not be provided to .replace() when specifying an object');invariant(action==null,'Child action must not be provided to .replace() when specifying an object');invariant(newKey==null,'Child action must not be provided to .replace() when specifying an object');return StackActions.replace(replaceWith);},reset:function reset(actions,index){return StackActions.reset({actions:actions,index:index==null?actions.length-1:index,key:navStateKey});},dismiss:function dismiss(){return NavigationActions.back({key:navStateKey});}});},getStateForAction:function getStateForAction(action,state){if(!state){return getInitialState(action);}var activeChildRoute=state.routes[state.index];if(!isResetToRootStack(action)&&action.type!==NavigationActions.NAVIGATE){var activeChildRouter=childRouters[activeChildRoute.routeName];if(activeChildRouter){var route=activeChildRouter.getStateForAction(action,activeChildRoute);if(route!==null&&route!==activeChildRoute){return StateUtils.replaceAt(state,activeChildRoute.key,route,action.type===NavigationActions.SET_PARAMS);}}}else if(action.type===NavigationActions.NAVIGATE){for(var _iterator=state.routes.slice().reverse(),_isArray=Array.isArray(_iterator),_i=0,_iterator=_isArray?_iterator:_iterator[typeof Symbol==="function"?Symbol.iterator:"@@iterator"]();;){var _ref;if(_isArray){if(_i>=_iterator.length)break;_ref=_iterator[_i++];}else{_i=_iterator.next();if(_i.done)break;_ref=_i.value;}var _childRoute=_ref;var childRouter=childRouters[_childRoute.routeName];var childAction=action.routeName===_childRoute.routeName&&action.action?action.action:action;if(childRouter){var nextRouteState=childRouter.getStateForAction(childAction,_childRoute);if(nextRouteState===null||nextRouteState!==_childRoute){var newState=StateUtils.replaceAndPrune(state,nextRouteState?nextRouteState.key:_childRoute.key,nextRouteState?nextRouteState:_childRoute);return _objectSpread({},newState,{transitions:state.index!==newState.index&&action.immediate!==true?{pushing:[],popping:[]}:{pushing:[],popping:[]}});}}}}if(behavesLikePushAction(action)&&childRouters[action.routeName]!==undefined){var _childRouter=childRouters[action.routeName];var _route;invariant(action.type!==StackActions.PUSH||action.key==null,'StackRouter does not support key on the push action');var lastRouteIndex=state.routes.findIndex(function(r){if(action.key){return r.key===action.key;}else{return r.routeName===action.routeName;}});if(action.type!==StackActions.PUSH&&lastRouteIndex!==-1){if(state.index===lastRouteIndex&&!action.params){return null;}var routes=state.routes.slice(0,lastRouteIndex+1);var _route2=state.routes[lastRouteIndex];if(action.params){routes[lastRouteIndex]=_objectSpread({},_route2,{params:_objectSpread({},_route2.params,action.params)});}return _objectSpread({},state,{transitions:_objectSpread({},state.transitions,{pushing:state.index!==lastRouteIndex&&action.immediate!==true?[].concat(_toConsumableArray(state.transitions.pushing),[_route2.key]):state.transitions.pushing}),index:lastRouteIndex,routes:routes});}if(_childRouter){var _childAction=action.action||NavigationActions.init({params:getParamsForRouteAndAction(action.routeName,action)});_route=_objectSpread({params:getParamsForRouteAndAction(action.routeName,action)},_childRouter.getStateForAction(_childAction),{routeName:action.routeName,key:action.key||generateKey()});}else{_route={params:getParamsForRouteAndAction(action.routeName,action),routeName:action.routeName,key:action.key||generateKey()};}return _objectSpread({},StateUtils.push(state,_route),{transitions:_objectSpread({},state.transitions,{pushing:action.immediate!==true?[].concat(_toConsumableArray(state.transitions.pushing),[_route.key]):state.transitions.pushing})});}else if(action.type===StackActions.PUSH&&childRouters[action.routeName]===undefined){return state;}if(behavesLikePushAction(action)){var childRouterNames=Object.keys(childRouters);for(var i=0;i0){return _objectSpread({},state,{transitions:_objectSpread({},state.transitions,{popping:action.immediate!==true&&state.routes.length>1?[].concat(_toConsumableArray(state.transitions.popping),[state.routes[state.routes.length-1].key]):state.transitions.popping}),index:0,routes:[state.routes[0]]});}return state;}if(action.type===StackActions.REPLACE){var routeIndex;if(action.key===undefined&&state.routes.length){routeIndex=state.routes.length-1;}else{routeIndex=state.routes.findIndex(function(r){return r.key===action.key;});}if(routeIndex!==-1){var _childRouter3=childRouters[action.routeName];var childState={};if(_childRouter3){var _childAction2=action.action||NavigationActions.init({params:getParamsForRouteAndAction(action.routeName,action)});childState=_childRouter3.getStateForAction(_childAction2);}var _routes=_toConsumableArray(state.routes);_routes[routeIndex]=_objectSpread({params:getParamsForRouteAndAction(action.routeName,action)},childState,{routeName:action.routeName,key:action.newKey||generateKey()});return _objectSpread({},state,{routes:_routes});}}if(action.type===StackActions.COMPLETE_TRANSITION&&(action.key==null||action.key===state.key)&&(state.transitions.pushing.length||state.transitions.popping.length)){var _state$transitions=state.transitions,pushing=_state$transitions.pushing,popping=_state$transitions.popping;return _objectSpread({},state,{transitions:{pushing:action.toChildKey?pushing.filter(function(key){return key!==action.toChildKey;}):[],popping:action.toChildKey?popping.filter(function(key){return key!==action.toChildKey;}):[]}});}if(action.type===NavigationActions.SET_PARAMS){var key=action.key;var lastRoute=state.routes.find(function(route){return route.key===key;});if(lastRoute){var params=_objectSpread({},lastRoute.params,action.params);var _routes2=_toConsumableArray(state.routes);_routes2[state.routes.indexOf(lastRoute)]=_objectSpread({},lastRoute,{params:params});return _objectSpread({},state,{routes:_routes2});}}if(action.type===StackActions.RESET){if(action.key!=null&&action.key!=state.key){return state;}var newStackActions=action.actions;return _objectSpread({},state,{routes:newStackActions.map(function(newStackAction){var router=childRouters[newStackAction.routeName];var childState={};if(router){var _childAction3=newStackAction.action||NavigationActions.init({params:getParamsForRouteAndAction(newStackAction.routeName,newStackAction)});childState=router.getStateForAction(_childAction3);}return _objectSpread({params:getParamsForRouteAndAction(newStackAction.routeName,newStackAction)},childState,{routeName:newStackAction.routeName,key:newStackAction.key||generateKey()});}),index:action.index});}if(action.type===NavigationActions.BACK||action.type===StackActions.POP){var _key=action.key,n=action.n,immediate=action.immediate;var backRoute;var backRouteIndex=state.index;if(action.type===StackActions.POP&&n!=null){backRouteIndex=Math.max(1,state.index-n+1);backRoute=state.routes[state.index];}else if(_key){backRoute=state.routes.find(function(route){return route.key===_key;});backRouteIndex=state.routes.indexOf(backRoute);}else{backRoute=state.routes[state.index];}if(backRouteIndex>0){return _objectSpread({},state,{routes:state.routes.slice(0,backRouteIndex),index:backRouteIndex-1,transitions:_objectSpread({},state.transitions,{popping:immediate!==true&&backRoute?[].concat(_toConsumableArray(state.transitions.popping),[backRoute.key]):state.transitions.popping})});}}var keyIndex=action.key?StateUtils.indexOf(state,action.key):-1;for(var _iterator2=state.routes.slice().reverse(),_isArray2=Array.isArray(_iterator2),_i2=0,_iterator2=_isArray2?_iterator2:_iterator2[typeof Symbol==="function"?Symbol.iterator:"@@iterator"]();;){var _ref2;if(_isArray2){if(_i2>=_iterator2.length)break;_ref2=_iterator2[_i2++];}else{_i2=_iterator2.next();if(_i2.done)break;_ref2=_i2.value;}var _childRoute3=_ref2;if(_childRoute3.key===activeChildRoute.key){continue;}if(keyIndex>=0&&_childRoute3.key!==action.key){continue;}var _childRouter5=childRouters[_childRoute3.routeName];if(_childRouter5){var _route4=_childRouter5.getStateForAction(action,_childRoute3);if(_route4===null){return state;}else if(_route4&&_route4!==_childRoute3){return StateUtils.replaceAt(state,_childRoute3.key,_route4,action.preserveFocus||action.type.includes('DRAWER'));}}}return state;},getPathAndParamsForState:function getPathAndParamsForState(state){var route=state.routes[state.index];return getPathAndParamsForRoute(route);},getActionForPathAndParams:function getActionForPathAndParams(path,params){return _getActionForPathAndParams(path,params);},getScreenOptions:createConfigGetter(routeConfigs,stackConfig.defaultNavigationOptions)};});
+ //# sourceMappingURL=StackRouter.js.map
+\ No newline at end of file
+diff --git a/node_modules/@react-navigation/core/lib/module/routers/StackRouter.js.map b/node_modules/@react-navigation/core/lib/module/routers/StackRouter.js.map
+index 89d7636..ff0aa07 100644
+--- a/node_modules/@react-navigation/core/lib/module/routers/StackRouter.js.map
++++ b/node_modules/@react-navigation/core/lib/module/routers/StackRouter.js.map
+@@ -1 +1 @@
+-{"version":3,"sources":["StackRouter.js"],"names":["NavigationActions","StackActions","createConfigGetter","getScreenForRouteName","StateUtils","validateRouteConfigMap","invariant","generateKey","createPathParser","behavesLikePushAction","action","type","NAVIGATE","PUSH","defaultActionCreators","isResetToRootStack","RESET","key","routeConfigs","stackConfig","childRouters","routeNames","Object","keys","forEach","routeName","screen","router","initialRouteParams","getCustomActionCreators","initialRouteName","initialChildRouter","getInitialState","route","childRouter","undefined","childState","childAction","init","params","getStateForAction","isTransitioning","index","routes","navigate","initialRouteKey","getParamsForRouteAndAction","routeConfig","getPathAndParamsForRoute","getActionForPathAndParams","getComponentForState","state","activeChildRoute","getComponentForRouteName","getActionCreators","navStateKey","pop","n","popToTop","push","replace","replaceWith","newKey","reset","actions","length","dismiss","back","activeChildRouter","replaceAt","SET_PARAMS","slice","reverse","childRoute","nextRouteState","newState","replaceAndPrune","immediate","lastRouteIndex","findIndex","r","childRouterNames","i","childRouterName","initChildRoute","navigatedChildRoute","routeToPush","POP_TO_TOP","REPLACE","routeIndex","COMPLETE_TRANSITION","toChildKey","lastRoute","find","indexOf","newStackActions","map","newStackAction","BACK","POP","backRouteIndex","Math","max","backRoute","keyIndex","preserveFocus","includes","getPathAndParamsForState","path","getScreenOptions","defaultNavigationOptions"],"mappings":"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","sourcesContent":["import * as NavigationActions from '../NavigationActions';\nimport * as StackActions from './StackActions';\nimport createConfigGetter from './createConfigGetter';\nimport getScreenForRouteName from './getScreenForRouteName';\nimport StateUtils from '../StateUtils';\nimport validateRouteConfigMap from './validateRouteConfigMap';\nimport invariant from '../utils/invariant';\nimport { generateKey } from './KeyGenerator';\nimport { createPathParser } from './pathUtils';\n\nfunction behavesLikePushAction(action) {\n return (\n action.type === NavigationActions.NAVIGATE ||\n action.type === StackActions.PUSH\n );\n}\n\nconst defaultActionCreators = () => ({});\n\nfunction isResetToRootStack(action) {\n return action.type === StackActions.RESET && action.key === null;\n}\n\nexport default (routeConfigs, stackConfig = {}) => {\n // Fail fast on invalid route definitions\n validateRouteConfigMap(routeConfigs);\n\n const childRouters = {};\n const routeNames = Object.keys(routeConfigs);\n\n // Loop through routes and find child routers\n routeNames.forEach(routeName => {\n const screen = getScreenForRouteName(routeConfigs, routeName);\n if (screen && screen.router) {\n // If it has a router it's a navigator.\n childRouters[routeName] = screen.router;\n } else {\n // If it doesn't have router it's an ordinary React component.\n childRouters[routeName] = null;\n }\n });\n\n const { initialRouteParams } = stackConfig;\n const getCustomActionCreators =\n stackConfig.getCustomActionCreators || defaultActionCreators;\n\n const initialRouteName = stackConfig.initialRouteName || routeNames[0];\n\n const initialChildRouter = childRouters[initialRouteName];\n\n function getInitialState(action) {\n let route = {};\n const childRouter = childRouters[action.routeName];\n\n // This is a push-like action, and childRouter will be a router or null if we are responsible for this routeName\n if (behavesLikePushAction(action) && childRouter !== undefined) {\n let childState = {};\n // The router is null for normal leaf routes\n if (childRouter !== null) {\n const childAction =\n action.action || NavigationActions.init({ params: action.params });\n childState = childRouter.getStateForAction(childAction);\n }\n\n return {\n key: 'StackRouterRoot',\n isTransitioning: false,\n index: 0,\n routes: [\n {\n params: action.params,\n ...childState,\n key: action.key || generateKey(),\n routeName: action.routeName,\n },\n ],\n };\n }\n\n if (initialChildRouter) {\n route = initialChildRouter.getStateForAction(\n NavigationActions.navigate({\n routeName: initialRouteName,\n params: initialRouteParams,\n })\n );\n }\n const params = (routeConfigs[initialRouteName].params ||\n route.params ||\n action.params ||\n initialRouteParams) && {\n ...(routeConfigs[initialRouteName].params || {}),\n ...(route.params || {}),\n ...(action.params || {}),\n ...(initialRouteParams || {}),\n };\n const { initialRouteKey } = stackConfig;\n route = {\n ...route,\n ...(params ? { params } : {}),\n routeName: initialRouteName,\n key: action.key || (initialRouteKey || generateKey()),\n };\n return {\n key: 'StackRouterRoot',\n isTransitioning: false,\n index: 0,\n routes: [route],\n };\n }\n\n function getParamsForRouteAndAction(routeName, action) {\n let routeConfig = routeConfigs[routeName];\n if (routeConfig && routeConfig.params) {\n return { ...routeConfig.params, ...action.params };\n } else {\n return action.params;\n }\n }\n\n const {\n getPathAndParamsForRoute,\n getActionForPathAndParams,\n } = createPathParser(childRouters, routeConfigs, stackConfig);\n\n return {\n childRouters,\n\n getComponentForState(state) {\n const activeChildRoute = state.routes[state.index];\n const { routeName } = activeChildRoute;\n if (childRouters[routeName]) {\n return childRouters[routeName].getComponentForState(activeChildRoute);\n }\n return getScreenForRouteName(routeConfigs, routeName);\n },\n\n getComponentForRouteName(routeName) {\n return getScreenForRouteName(routeConfigs, routeName);\n },\n\n getActionCreators(route, navStateKey) {\n return {\n ...getCustomActionCreators(route, navStateKey),\n pop: (n, params) =>\n StackActions.pop({\n n,\n ...params,\n }),\n popToTop: params => StackActions.popToTop(params),\n push: (routeName, params, action) =>\n StackActions.push({\n routeName,\n params,\n action,\n }),\n replace: (replaceWith, params, action, newKey) => {\n if (typeof replaceWith === 'string') {\n return StackActions.replace({\n routeName: replaceWith,\n params,\n action,\n key: route.key,\n newKey,\n });\n }\n invariant(\n typeof replaceWith === 'object',\n 'Must replaceWith an object or a string'\n );\n invariant(\n params == null,\n 'Params must not be provided to .replace() when specifying an object'\n );\n invariant(\n action == null,\n 'Child action must not be provided to .replace() when specifying an object'\n );\n invariant(\n newKey == null,\n 'Child action must not be provided to .replace() when specifying an object'\n );\n return StackActions.replace(replaceWith);\n },\n reset: (actions, index) =>\n StackActions.reset({\n actions,\n index: index == null ? actions.length - 1 : index,\n key: navStateKey,\n }),\n dismiss: () =>\n NavigationActions.back({\n key: navStateKey,\n }),\n };\n },\n\n getStateForAction(action, state) {\n // Set up the initial state if needed\n if (!state) {\n return getInitialState(action);\n }\n\n const activeChildRoute = state.routes[state.index];\n\n if (\n !isResetToRootStack(action) &&\n action.type !== NavigationActions.NAVIGATE\n ) {\n // Let the active child router handle the action\n const activeChildRouter = childRouters[activeChildRoute.routeName];\n if (activeChildRouter) {\n const route = activeChildRouter.getStateForAction(\n action,\n activeChildRoute\n );\n if (route !== null && route !== activeChildRoute) {\n return StateUtils.replaceAt(\n state,\n activeChildRoute.key,\n route,\n // the following tells replaceAt to NOT change the index to this route for the setParam action, because people don't expect param-setting actions to switch the active route\n action.type === NavigationActions.SET_PARAMS\n );\n }\n }\n } else if (action.type === NavigationActions.NAVIGATE) {\n // Traverse routes from the top of the stack to the bottom, so the\n // active route has the first opportunity, then the one before it, etc.\n\n for (let childRoute of state.routes.slice().reverse()) {\n let childRouter = childRouters[childRoute.routeName];\n let childAction =\n action.routeName === childRoute.routeName && action.action\n ? action.action\n : action;\n\n if (childRouter) {\n const nextRouteState = childRouter.getStateForAction(\n childAction,\n childRoute\n );\n\n if (nextRouteState === null || nextRouteState !== childRoute) {\n const newState = StateUtils.replaceAndPrune(\n state,\n nextRouteState ? nextRouteState.key : childRoute.key,\n nextRouteState ? nextRouteState : childRoute\n );\n return {\n ...newState,\n isTransitioning:\n state.index !== newState.index\n ? action.immediate !== true\n : state.isTransitioning,\n };\n }\n }\n }\n }\n\n // Handle push and navigate actions. This must happen after the focused\n // child router has had a chance to handle the action.\n if (\n behavesLikePushAction(action) &&\n childRouters[action.routeName] !== undefined // undefined means it's not a childRouter or a screen\n ) {\n const childRouter = childRouters[action.routeName];\n let route;\n\n invariant(\n action.type !== StackActions.PUSH || action.key == null,\n 'StackRouter does not support key on the push action'\n );\n\n // Before pushing a new route we first try to find one in the existing route stack\n // More information on this: https://github.com/react-navigation/rfcs/blob/master/text/0004-less-pushy-navigate.md\n const lastRouteIndex = state.routes.findIndex(r => {\n if (action.key) {\n return r.key === action.key;\n } else {\n return r.routeName === action.routeName;\n }\n });\n\n // An instance of this route exists already and we're dealing with a navigate action\n if (action.type !== StackActions.PUSH && lastRouteIndex !== -1) {\n // If index is unchanged and params are not being set, leave state identity intact\n if (state.index === lastRouteIndex && !action.params) {\n return null;\n }\n\n // Remove the now unused routes at the tail of the routes array\n const routes = state.routes.slice(0, lastRouteIndex + 1);\n\n // Apply params if provided, otherwise leave route identity intact\n if (action.params) {\n const route = state.routes[lastRouteIndex];\n routes[lastRouteIndex] = {\n ...route,\n params: {\n ...route.params,\n ...action.params,\n },\n };\n }\n // Return state with new index. Change isTransitioning only if index has changed\n return {\n ...state,\n isTransitioning:\n state.index !== lastRouteIndex\n ? action.immediate !== true\n : state.isTransitioning,\n index: lastRouteIndex,\n routes,\n };\n }\n\n if (childRouter) {\n // Delegate to the child router with the given action, or init it\n const childAction =\n action.action ||\n NavigationActions.init({\n params: getParamsForRouteAndAction(action.routeName, action),\n });\n route = {\n params: getParamsForRouteAndAction(action.routeName, action),\n // note(brentvatne): does it make sense to wipe out the params\n // here? or even to add params at all? need more info about what\n // this solves\n ...childRouter.getStateForAction(childAction),\n routeName: action.routeName,\n key: action.key || generateKey(),\n };\n } else {\n // Create the route from scratch\n route = {\n params: getParamsForRouteAndAction(action.routeName, action),\n routeName: action.routeName,\n key: action.key || generateKey(),\n };\n }\n return {\n ...StateUtils.push(state, route),\n isTransitioning: action.immediate !== true,\n };\n } else if (\n action.type === StackActions.PUSH &&\n childRouters[action.routeName] === undefined\n ) {\n // Return the state identity to bubble the action up\n return state;\n }\n\n // Handle navigation to other child routers that are not yet pushed\n if (behavesLikePushAction(action)) {\n const childRouterNames = Object.keys(childRouters);\n for (let i = 0; i < childRouterNames.length; i++) {\n const childRouterName = childRouterNames[i];\n const childRouter = childRouters[childRouterName];\n if (childRouter) {\n // For each child router, start with a blank state\n const initChildRoute = childRouter.getStateForAction(\n NavigationActions.init()\n );\n // Then check to see if the router handles our navigate action\n const navigatedChildRoute = childRouter.getStateForAction(\n action,\n initChildRoute\n );\n let routeToPush = null;\n if (navigatedChildRoute === null) {\n // Push the route if the router has 'handled' the action and returned null\n routeToPush = initChildRoute;\n } else if (navigatedChildRoute !== initChildRoute) {\n // Push the route if the state has changed in response to this navigation\n routeToPush = navigatedChildRoute;\n }\n if (routeToPush) {\n const route = {\n ...routeToPush,\n routeName: childRouterName,\n key: action.key || generateKey(),\n };\n return {\n ...StateUtils.push(state, route),\n isTransitioning: action.immediate !== true,\n };\n }\n }\n }\n }\n\n // Handle pop-to-top behavior. Make sure this happens after children have had a chance to handle the action, so that the inner stack pops to top first.\n if (action.type === StackActions.POP_TO_TOP) {\n // Refuse to handle pop to top if a key is given that doesn't correspond\n // to this router\n if (action.key && state.key !== action.key) {\n return state;\n }\n\n // If we're already at the top, then we return the state with a new\n // identity so that the action is handled by this router.\n if (state.index > 0) {\n return {\n ...state,\n isTransitioning: action.immediate !== true,\n index: 0,\n routes: [state.routes[0]],\n };\n }\n return state;\n }\n\n // Handle replace action\n if (action.type === StackActions.REPLACE) {\n let routeIndex;\n\n // If the key param is undefined, set the index to the last route in the stack\n if (action.key === undefined && state.routes.length) {\n routeIndex = state.routes.length - 1;\n } else {\n routeIndex = state.routes.findIndex(r => r.key === action.key);\n }\n\n // Only replace if the key matches one of our routes\n if (routeIndex !== -1) {\n const childRouter = childRouters[action.routeName];\n let childState = {};\n if (childRouter) {\n const childAction =\n action.action ||\n NavigationActions.init({\n params: getParamsForRouteAndAction(action.routeName, action),\n });\n childState = childRouter.getStateForAction(childAction);\n }\n const routes = [...state.routes];\n routes[routeIndex] = {\n params: getParamsForRouteAndAction(action.routeName, action),\n // merge the child state in this order to allow params override\n ...childState,\n routeName: action.routeName,\n key: action.newKey || generateKey(),\n };\n return { ...state, routes };\n }\n }\n\n // Update transitioning state\n if (\n action.type === StackActions.COMPLETE_TRANSITION &&\n (action.key == null || action.key === state.key) &&\n action.toChildKey === state.routes[state.index].key &&\n state.isTransitioning\n ) {\n return {\n ...state,\n isTransitioning: false,\n };\n }\n\n if (action.type === NavigationActions.SET_PARAMS) {\n const key = action.key;\n const lastRoute = state.routes.find(route => route.key === key);\n if (lastRoute) {\n const params = {\n ...lastRoute.params,\n ...action.params,\n };\n const routes = [...state.routes];\n routes[state.routes.indexOf(lastRoute)] = {\n ...lastRoute,\n params,\n };\n return {\n ...state,\n routes,\n };\n }\n }\n\n if (action.type === StackActions.RESET) {\n // Only handle reset actions that are unspecified or match this state key\n if (action.key != null && action.key != state.key) {\n // Deliberately use != instead of !== so we can match null with\n // undefined on either the state or the action\n return state;\n }\n const newStackActions = action.actions;\n\n return {\n ...state,\n routes: newStackActions.map(newStackAction => {\n const router = childRouters[newStackAction.routeName];\n\n let childState = {};\n\n if (router) {\n const childAction =\n newStackAction.action ||\n NavigationActions.init({\n params: getParamsForRouteAndAction(\n newStackAction.routeName,\n newStackAction\n ),\n });\n\n childState = router.getStateForAction(childAction);\n }\n\n return {\n params: getParamsForRouteAndAction(\n newStackAction.routeName,\n newStackAction\n ),\n ...childState,\n routeName: newStackAction.routeName,\n key: newStackAction.key || generateKey(),\n };\n }),\n index: action.index,\n };\n }\n\n if (\n action.type === NavigationActions.BACK ||\n action.type === StackActions.POP\n ) {\n const { key, n, immediate } = action;\n let backRouteIndex = state.index;\n if (action.type === StackActions.POP && n != null) {\n // determine the index to go back *from*. In this case, n=1 means to go\n // back from state.index, as if it were a normal \"BACK\" action\n backRouteIndex = Math.max(1, state.index - n + 1);\n } else if (key) {\n const backRoute = state.routes.find(route => route.key === key);\n backRouteIndex = state.routes.indexOf(backRoute);\n }\n\n if (backRouteIndex > 0) {\n return {\n ...state,\n routes: state.routes.slice(0, backRouteIndex),\n index: backRouteIndex - 1,\n isTransitioning: immediate !== true,\n };\n }\n }\n\n // By this point in the router's state handling logic, we have handled the behavior of the active route, and handled any stack actions.\n // If we haven't returned by now, we should allow non-active child routers to handle this action, and switch to that index if the child state (route) does change..\n\n const keyIndex = action.key ? StateUtils.indexOf(state, action.key) : -1;\n\n // Traverse routes from the top of the stack to the bottom, so the\n // active route has the first opportunity, then the one before it, etc.\n for (let childRoute of state.routes.slice().reverse()) {\n if (childRoute.key === activeChildRoute.key) {\n // skip over the active child because we let it attempt to handle the action earlier\n continue;\n }\n // If a key is provided and in routes state then let's use that\n // knowledge to skip extra getStateForAction calls on other child\n // routers\n if (keyIndex >= 0 && childRoute.key !== action.key) {\n continue;\n }\n let childRouter = childRouters[childRoute.routeName];\n if (childRouter) {\n const route = childRouter.getStateForAction(action, childRoute);\n\n if (route === null) {\n return state;\n } else if (route && route !== childRoute) {\n return StateUtils.replaceAt(\n state,\n childRoute.key,\n route,\n // People don't expect these actions to switch the active route\n // TODO: We should switch to action.preserveFocus: true for drawer in future\n action.preserveFocus || action.type.includes('DRAWER')\n );\n }\n }\n }\n\n return state;\n },\n\n getPathAndParamsForState(state) {\n const route = state.routes[state.index];\n return getPathAndParamsForRoute(route);\n },\n\n getActionForPathAndParams(path, params) {\n return getActionForPathAndParams(path, params);\n },\n\n getScreenOptions: createConfigGetter(\n routeConfigs,\n stackConfig.defaultNavigationOptions\n ),\n };\n};\n"]}
+\ No newline at end of file
++{"version":3,"sources":["StackRouter.js"],"names":["NavigationActions","StackActions","createConfigGetter","getScreenForRouteName","StateUtils","validateRouteConfigMap","invariant","generateKey","createPathParser","behavesLikePushAction","action","type","NAVIGATE","PUSH","defaultActionCreators","isResetToRootStack","RESET","key","routeConfigs","stackConfig","childRouters","routeNames","Object","keys","forEach","routeName","routeConfig","screen","router","initialRouteParams","getCustomActionCreators","initialRouteName","initialChildRouter","getInitialState","route","childRouter","undefined","childState","childAction","init","params","getStateForAction","index","transitions","pushing","popping","routes","navigate","initialRouteKey","getParamsForRouteAndAction","getPathAndParamsForRoute","getActionForPathAndParams","getComponentForState","state","activeChildRoute","getComponentForRouteName","getActionCreators","navStateKey","pop","n","popToTop","push","replace","replaceWith","newKey","reset","actions","length","dismiss","back","activeChildRouter","replaceAt","SET_PARAMS","slice","reverse","childRoute","nextRouteState","newState","replaceAndPrune","immediate","lastRouteIndex","findIndex","r","childRouterNames","i","childRouterName","initChildRoute","navigatedChildRoute","routeToPush","POP_TO_TOP","REPLACE","routeIndex","COMPLETE_TRANSITION","toChildKey","filter","lastRoute","find","indexOf","newStackActions","map","newStackAction","BACK","POP","backRoute","backRouteIndex","Math","max","keyIndex","preserveFocus","includes","getPathAndParamsForState","path","getScreenOptions","defaultNavigationOptions"],"mappings":"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","sourcesContent":["import * as NavigationActions from '../NavigationActions';\nimport * as StackActions from './StackActions';\nimport createConfigGetter from './createConfigGetter';\nimport getScreenForRouteName from './getScreenForRouteName';\nimport StateUtils from '../StateUtils';\nimport validateRouteConfigMap from './validateRouteConfigMap';\nimport invariant from '../utils/invariant';\nimport { generateKey } from './KeyGenerator';\nimport { createPathParser } from './pathUtils';\n\nfunction behavesLikePushAction(action) {\n return (\n action.type === NavigationActions.NAVIGATE ||\n action.type === StackActions.PUSH\n );\n}\n\nconst defaultActionCreators = () => ({});\n\nfunction isResetToRootStack(action) {\n return action.type === StackActions.RESET && action.key === null;\n}\n\nexport default (routeConfigs, stackConfig = {}) => {\n // Fail fast on invalid route definitions\n validateRouteConfigMap(routeConfigs);\n\n const childRouters = {};\n const routeNames = Object.keys(routeConfigs);\n\n // Loop through routes and find child routers\n routeNames.forEach(routeName => {\n // We're not using `getScreenForRouteName` here to preserve the lazy loading\n // behaviour of routes. This means that routes with child routers must be\n // defined using a component directly or with an object with a screen prop.\n const routeConfig = routeConfigs[routeName];\n const screen =\n routeConfig && routeConfig.screen ? routeConfig.screen : routeConfig;\n if (screen && screen.router) {\n // If it has a router it's a navigator.\n childRouters[routeName] = screen.router;\n } else {\n // If it doesn't have router it's an ordinary React component.\n childRouters[routeName] = null;\n }\n });\n\n const { initialRouteParams } = stackConfig;\n const getCustomActionCreators =\n stackConfig.getCustomActionCreators || defaultActionCreators;\n\n const initialRouteName = stackConfig.initialRouteName || routeNames[0];\n\n const initialChildRouter = childRouters[initialRouteName];\n\n function getInitialState(action) {\n let route = {};\n const childRouter = childRouters[action.routeName];\n\n // This is a push-like action, and childRouter will be a router or null if we are responsible for this routeName\n if (behavesLikePushAction(action) && childRouter !== undefined) {\n let childState = {};\n // The router is null for normal leaf routes\n if (childRouter !== null) {\n const childAction =\n action.action || NavigationActions.init({ params: action.params });\n childState = childRouter.getStateForAction(childAction);\n }\n\n return {\n key: 'StackRouterRoot',\n index: 0,\n transitions: {\n pushing: [],\n popping: [],\n },\n routes: [\n {\n params: action.params,\n ...childState,\n key: action.key || generateKey(),\n routeName: action.routeName,\n },\n ],\n };\n }\n\n if (initialChildRouter) {\n route = initialChildRouter.getStateForAction(\n NavigationActions.navigate({\n routeName: initialRouteName,\n params: initialRouteParams,\n })\n );\n }\n const params = (routeConfigs[initialRouteName].params ||\n route.params ||\n action.params ||\n initialRouteParams) && {\n ...(routeConfigs[initialRouteName].params || {}),\n ...(route.params || {}),\n ...(action.params || {}),\n ...(initialRouteParams || {}),\n };\n const { initialRouteKey } = stackConfig;\n route = {\n ...route,\n ...(params ? { params } : {}),\n routeName: initialRouteName,\n key: action.key || (initialRouteKey || generateKey()),\n };\n return {\n key: 'StackRouterRoot',\n transitions: {\n pushing: [],\n popping: [],\n },\n index: 0,\n routes: [route],\n };\n }\n\n function getParamsForRouteAndAction(routeName, action) {\n let routeConfig = routeConfigs[routeName];\n if (routeConfig && routeConfig.params) {\n return { ...routeConfig.params, ...action.params };\n } else {\n return action.params;\n }\n }\n\n const {\n getPathAndParamsForRoute,\n getActionForPathAndParams,\n } = createPathParser(childRouters, routeConfigs, stackConfig);\n\n return {\n childRouters,\n\n getComponentForState(state) {\n const activeChildRoute = state.routes[state.index];\n const { routeName } = activeChildRoute;\n if (childRouters[routeName]) {\n return childRouters[routeName].getComponentForState(activeChildRoute);\n }\n return getScreenForRouteName(routeConfigs, routeName);\n },\n\n getComponentForRouteName(routeName) {\n return getScreenForRouteName(routeConfigs, routeName);\n },\n\n getActionCreators(route, navStateKey) {\n return {\n ...getCustomActionCreators(route, navStateKey),\n pop: (n, params) =>\n StackActions.pop({\n n,\n ...params,\n }),\n popToTop: params => StackActions.popToTop(params),\n push: (routeName, params, action) =>\n StackActions.push({\n routeName,\n params,\n action,\n }),\n replace: (replaceWith, params, action, newKey) => {\n if (typeof replaceWith === 'string') {\n return StackActions.replace({\n routeName: replaceWith,\n params,\n action,\n key: route.key,\n newKey,\n });\n }\n invariant(\n typeof replaceWith === 'object',\n 'Must replaceWith an object or a string'\n );\n invariant(\n params == null,\n 'Params must not be provided to .replace() when specifying an object'\n );\n invariant(\n action == null,\n 'Child action must not be provided to .replace() when specifying an object'\n );\n invariant(\n newKey == null,\n 'Child action must not be provided to .replace() when specifying an object'\n );\n return StackActions.replace(replaceWith);\n },\n reset: (actions, index) =>\n StackActions.reset({\n actions,\n index: index == null ? actions.length - 1 : index,\n key: navStateKey,\n }),\n dismiss: () =>\n NavigationActions.back({\n key: navStateKey,\n }),\n };\n },\n\n getStateForAction(action, state) {\n // Set up the initial state if needed\n if (!state) {\n return getInitialState(action);\n }\n\n const activeChildRoute = state.routes[state.index];\n\n if (\n !isResetToRootStack(action) &&\n action.type !== NavigationActions.NAVIGATE\n ) {\n // Let the active child router handle the action\n const activeChildRouter = childRouters[activeChildRoute.routeName];\n if (activeChildRouter) {\n const route = activeChildRouter.getStateForAction(\n action,\n activeChildRoute\n );\n if (route !== null && route !== activeChildRoute) {\n return StateUtils.replaceAt(\n state,\n activeChildRoute.key,\n route,\n // the following tells replaceAt to NOT change the index to this route for the setParam action, because people don't expect param-setting actions to switch the active route\n action.type === NavigationActions.SET_PARAMS\n );\n }\n }\n } else if (action.type === NavigationActions.NAVIGATE) {\n // Traverse routes from the top of the stack to the bottom, so the\n // active route has the first opportunity, then the one before it, etc.\n\n for (let childRoute of state.routes.slice().reverse()) {\n let childRouter = childRouters[childRoute.routeName];\n let childAction =\n action.routeName === childRoute.routeName && action.action\n ? action.action\n : action;\n\n if (childRouter) {\n const nextRouteState = childRouter.getStateForAction(\n childAction,\n childRoute\n );\n\n if (nextRouteState === null || nextRouteState !== childRoute) {\n const newState = StateUtils.replaceAndPrune(\n state,\n nextRouteState ? nextRouteState.key : childRoute.key,\n nextRouteState ? nextRouteState : childRoute\n );\n return {\n ...newState,\n transitions:\n state.index !== newState.index && action.immediate !== true\n ? {\n // Figure out which routes should transition\n pushing: [],\n popping: [],\n }\n : {\n pushing: [],\n popping: [],\n },\n };\n }\n }\n }\n }\n\n // Handle push and navigate actions. This must happen after the focused\n // child router has had a chance to handle the action.\n if (\n behavesLikePushAction(action) &&\n childRouters[action.routeName] !== undefined // undefined means it's not a childRouter or a screen\n ) {\n const childRouter = childRouters[action.routeName];\n let route;\n\n invariant(\n action.type !== StackActions.PUSH || action.key == null,\n 'StackRouter does not support key on the push action'\n );\n\n // Before pushing a new route we first try to find one in the existing route stack\n // More information on this: https://github.com/react-navigation/rfcs/blob/master/text/0004-less-pushy-navigate.md\n const lastRouteIndex = state.routes.findIndex(r => {\n if (action.key) {\n return r.key === action.key;\n } else {\n return r.routeName === action.routeName;\n }\n });\n\n // An instance of this route exists already and we're dealing with a navigate action\n if (action.type !== StackActions.PUSH && lastRouteIndex !== -1) {\n // If index is unchanged and params are not being set, leave state identity intact\n if (state.index === lastRouteIndex && !action.params) {\n return null;\n }\n\n // Remove the now unused routes at the tail of the routes array\n const routes = state.routes.slice(0, lastRouteIndex + 1);\n const route = state.routes[lastRouteIndex];\n\n // Apply params if provided, otherwise leave route identity intact\n if (action.params) {\n routes[lastRouteIndex] = {\n ...route,\n params: {\n ...route.params,\n ...action.params,\n },\n };\n }\n\n return {\n ...state,\n transitions: {\n ...state.transitions,\n pushing:\n // Return state with new index. Change transitioning routes only if index has changed\n state.index !== lastRouteIndex && action.immediate !== true\n ? [...state.transitions.pushing, route.key]\n : state.transitions.pushing,\n },\n index: lastRouteIndex,\n routes,\n };\n }\n\n if (childRouter) {\n // Delegate to the child router with the given action, or init it\n const childAction =\n action.action ||\n NavigationActions.init({\n params: getParamsForRouteAndAction(action.routeName, action),\n });\n route = {\n params: getParamsForRouteAndAction(action.routeName, action),\n // note(brentvatne): does it make sense to wipe out the params\n // here? or even to add params at all? need more info about what\n // this solves\n ...childRouter.getStateForAction(childAction),\n routeName: action.routeName,\n key: action.key || generateKey(),\n };\n } else {\n // Create the route from scratch\n route = {\n params: getParamsForRouteAndAction(action.routeName, action),\n routeName: action.routeName,\n key: action.key || generateKey(),\n };\n }\n return {\n ...StateUtils.push(state, route),\n transitions: {\n ...state.transitions,\n pushing:\n action.immediate !== true\n ? [...state.transitions.pushing, route.key]\n : state.transitions.pushing,\n },\n };\n } else if (\n action.type === StackActions.PUSH &&\n childRouters[action.routeName] === undefined\n ) {\n // Return the state identity to bubble the action up\n return state;\n }\n\n // Handle navigation to other child routers that are not yet pushed\n if (behavesLikePushAction(action)) {\n const childRouterNames = Object.keys(childRouters);\n for (let i = 0; i < childRouterNames.length; i++) {\n const childRouterName = childRouterNames[i];\n const childRouter = childRouters[childRouterName];\n if (childRouter) {\n // For each child router, start with a blank state\n const initChildRoute = childRouter.getStateForAction(\n NavigationActions.init()\n );\n // Then check to see if the router handles our navigate action\n const navigatedChildRoute = childRouter.getStateForAction(\n action,\n initChildRoute\n );\n let routeToPush = null;\n if (navigatedChildRoute === null) {\n // Push the route if the router has 'handled' the action and returned null\n routeToPush = initChildRoute;\n } else if (navigatedChildRoute !== initChildRoute) {\n // Push the route if the state has changed in response to this navigation\n routeToPush = navigatedChildRoute;\n }\n if (routeToPush) {\n const route = {\n ...routeToPush,\n routeName: childRouterName,\n key: action.key || generateKey(),\n };\n return {\n ...StateUtils.push(state, route),\n transitions: {\n ...state.transitions,\n pushing:\n action.immediate !== true\n ? [...state.transitions.pushing, route.key]\n : state.transitions.pushing,\n },\n };\n }\n }\n }\n }\n\n // Handle pop-to-top behavior. Make sure this happens after children have had a chance to handle the action, so that the inner stack pops to top first.\n if (action.type === StackActions.POP_TO_TOP) {\n // Refuse to handle pop to top if a key is given that doesn't correspond\n // to this router\n if (action.key && state.key !== action.key) {\n return state;\n }\n\n // If we're already at the top, then we return the state with a new\n // identity so that the action is handled by this router.\n if (state.index > 0) {\n return {\n ...state,\n transitions: {\n ...state.transitions,\n popping:\n action.immediate !== true && state.routes.length > 1\n ? [\n ...state.transitions.popping,\n state.routes[state.routes.length - 1].key,\n ]\n : state.transitions.popping,\n },\n index: 0,\n routes: [state.routes[0]],\n };\n }\n return state;\n }\n\n // Handle replace action\n if (action.type === StackActions.REPLACE) {\n let routeIndex;\n\n // If the key param is undefined, set the index to the last route in the stack\n if (action.key === undefined && state.routes.length) {\n routeIndex = state.routes.length - 1;\n } else {\n routeIndex = state.routes.findIndex(r => r.key === action.key);\n }\n\n // Only replace if the key matches one of our routes\n if (routeIndex !== -1) {\n const childRouter = childRouters[action.routeName];\n let childState = {};\n if (childRouter) {\n const childAction =\n action.action ||\n NavigationActions.init({\n params: getParamsForRouteAndAction(action.routeName, action),\n });\n childState = childRouter.getStateForAction(childAction);\n }\n const routes = [...state.routes];\n routes[routeIndex] = {\n params: getParamsForRouteAndAction(action.routeName, action),\n // merge the child state in this order to allow params override\n ...childState,\n routeName: action.routeName,\n key: action.newKey || generateKey(),\n };\n return { ...state, routes };\n }\n }\n\n // Update transitioning state\n if (\n action.type === StackActions.COMPLETE_TRANSITION &&\n (action.key == null || action.key === state.key) &&\n (state.transitions.pushing.length || state.transitions.popping.length)\n ) {\n const { pushing, popping } = state.transitions;\n\n return {\n ...state,\n transitions: {\n pushing: action.toChildKey\n ? pushing.filter(key => key !== action.toChildKey)\n : [],\n popping: action.toChildKey\n ? popping.filter(key => key !== action.toChildKey)\n : [],\n },\n };\n }\n\n if (action.type === NavigationActions.SET_PARAMS) {\n const key = action.key;\n const lastRoute = state.routes.find(route => route.key === key);\n if (lastRoute) {\n const params = {\n ...lastRoute.params,\n ...action.params,\n };\n const routes = [...state.routes];\n routes[state.routes.indexOf(lastRoute)] = {\n ...lastRoute,\n params,\n };\n return {\n ...state,\n routes,\n };\n }\n }\n\n if (action.type === StackActions.RESET) {\n // Only handle reset actions that are unspecified or match this state key\n if (action.key != null && action.key != state.key) {\n // Deliberately use != instead of !== so we can match null with\n // undefined on either the state or the action\n return state;\n }\n const newStackActions = action.actions;\n\n return {\n ...state,\n routes: newStackActions.map(newStackAction => {\n const router = childRouters[newStackAction.routeName];\n\n let childState = {};\n\n if (router) {\n const childAction =\n newStackAction.action ||\n NavigationActions.init({\n params: getParamsForRouteAndAction(\n newStackAction.routeName,\n newStackAction\n ),\n });\n\n childState = router.getStateForAction(childAction);\n }\n\n return {\n params: getParamsForRouteAndAction(\n newStackAction.routeName,\n newStackAction\n ),\n ...childState,\n routeName: newStackAction.routeName,\n key: newStackAction.key || generateKey(),\n };\n }),\n index: action.index,\n };\n }\n\n if (\n action.type === NavigationActions.BACK ||\n action.type === StackActions.POP\n ) {\n const { key, n, immediate } = action;\n let backRoute;\n let backRouteIndex = state.index;\n if (action.type === StackActions.POP && n != null) {\n // determine the index to go back *from*. In this case, n=1 means to go\n // back from state.index, as if it were a normal \"BACK\" action\n backRouteIndex = Math.max(1, state.index - n + 1);\n backRoute = state.routes[state.index];\n } else if (key) {\n backRoute = state.routes.find(route => route.key === key);\n backRouteIndex = state.routes.indexOf(backRoute);\n } else {\n backRoute = state.routes[state.index];\n }\n\n if (backRouteIndex > 0) {\n return {\n ...state,\n routes: state.routes.slice(0, backRouteIndex),\n index: backRouteIndex - 1,\n transitions: {\n ...state.transitions,\n popping:\n immediate !== true && backRoute\n ? [...state.transitions.popping, backRoute.key]\n : state.transitions.popping,\n },\n };\n }\n }\n\n // By this point in the router's state handling logic, we have handled the behavior of the active route, and handled any stack actions.\n // If we haven't returned by now, we should allow non-active child routers to handle this action, and switch to that index if the child state (route) does change..\n\n const keyIndex = action.key ? StateUtils.indexOf(state, action.key) : -1;\n\n // Traverse routes from the top of the stack to the bottom, so the\n // active route has the first opportunity, then the one before it, etc.\n for (let childRoute of state.routes.slice().reverse()) {\n if (childRoute.key === activeChildRoute.key) {\n // skip over the active child because we let it attempt to handle the action earlier\n continue;\n }\n // If a key is provided and in routes state then let's use that\n // knowledge to skip extra getStateForAction calls on other child\n // routers\n if (keyIndex >= 0 && childRoute.key !== action.key) {\n continue;\n }\n let childRouter = childRouters[childRoute.routeName];\n if (childRouter) {\n const route = childRouter.getStateForAction(action, childRoute);\n\n if (route === null) {\n return state;\n } else if (route && route !== childRoute) {\n return StateUtils.replaceAt(\n state,\n childRoute.key,\n route,\n // People don't expect these actions to switch the active route\n // TODO: We should switch to action.preserveFocus: true for drawer in future\n action.preserveFocus || action.type.includes('DRAWER')\n );\n }\n }\n }\n\n return state;\n },\n\n getPathAndParamsForState(state) {\n const route = state.routes[state.index];\n return getPathAndParamsForRoute(route);\n },\n\n getActionForPathAndParams(path, params) {\n return getActionForPathAndParams(path, params);\n },\n\n getScreenOptions: createConfigGetter(\n routeConfigs,\n stackConfig.defaultNavigationOptions\n ),\n };\n};\n"]}
+\ No newline at end of file
+diff --git a/node_modules/@react-navigation/core/lib/module/routers/SwitchRouter.js b/node_modules/@react-navigation/core/lib/module/routers/SwitchRouter.js
+index 466bf5b..9d3738a 100644
+--- a/node_modules/@react-navigation/core/lib/module/routers/SwitchRouter.js
++++ b/node_modules/@react-navigation/core/lib/module/routers/SwitchRouter.js
+@@ -1,2 +1,2 @@
+-import _toConsumableArray from"@babel/runtime/helpers/toConsumableArray";import _objectSpread from"@babel/runtime/helpers/objectSpread";import invariant from'../utils/invariant';import getScreenForRouteName from'./getScreenForRouteName';import createConfigGetter from'./createConfigGetter';import*as NavigationActions from'../NavigationActions';import*as SwitchActions from'./SwitchActions';import validateRouteConfigMap from'./validateRouteConfigMap';import{createPathParser}from'./pathUtils';var defaultActionCreators=function defaultActionCreators(){return{};};export default(function(routeConfigs){var config=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};validateRouteConfigMap(routeConfigs);var order=config.order||Object.keys(routeConfigs);var getCustomActionCreators=config.getCustomActionCreators||defaultActionCreators;var initialRouteParams=config.initialRouteParams;var initialRouteName=config.initialRouteName||order[0];var backBehavior=config.backBehavior||'none';var resetOnBlur=config.hasOwnProperty('resetOnBlur')?config.resetOnBlur:true;var initialRouteIndex=order.indexOf(initialRouteName);if(initialRouteIndex===-1){throw new Error("Invalid initialRouteName '"+initialRouteName+"'."+("Should be one of "+order.map(function(n){return"\""+n+"\"";}).join(', ')));}var childRouters={};order.forEach(function(routeName){childRouters[routeName]=null;var screen=getScreenForRouteName(routeConfigs,routeName);if(screen.router){childRouters[routeName]=screen.router;}});function getParamsForRoute(routeName,params){var routeConfig=routeConfigs[routeName];if(routeConfig&&routeConfig.params){return _objectSpread({},routeConfig.params,params);}else{return params;}}var _createPathParser=createPathParser(childRouters,routeConfigs,config),getPathAndParamsForRoute=_createPathParser.getPathAndParamsForRoute,_getActionForPathAndParams=_createPathParser.getActionForPathAndParams;function resetChildRoute(routeName){var initialParams=routeName===initialRouteName?initialRouteParams:undefined;var params=getParamsForRoute(routeName,initialParams);var childRouter=childRouters[routeName];if(childRouter){var childAction=NavigationActions.init();return _objectSpread({},childRouter.getStateForAction(childAction),{key:routeName,routeName:routeName,params:params});}return{key:routeName,routeName:routeName,params:params};}function getNextState(action,prevState,possibleNextState){function updateNextStateHistory(nextState){if(backBehavior!=='history'){return nextState;}var nextRouteKeyHistory=prevState?prevState.routeKeyHistory:[];if(action.type===NavigationActions.NAVIGATE){nextRouteKeyHistory=_toConsumableArray(nextRouteKeyHistory);var keyToAdd=nextState.routes[nextState.index].key;nextRouteKeyHistory=nextRouteKeyHistory.filter(function(k){return k!==keyToAdd;});nextRouteKeyHistory.push(keyToAdd);}else if(action.type===NavigationActions.BACK){nextRouteKeyHistory=_toConsumableArray(nextRouteKeyHistory);nextRouteKeyHistory.pop();}return _objectSpread({},nextState,{routeKeyHistory:nextRouteKeyHistory});}var nextState=possibleNextState;if(prevState&&prevState.index!==possibleNextState.index&&resetOnBlur){var prevRouteName=prevState.routes[prevState.index].routeName;var nextRoutes=_toConsumableArray(possibleNextState.routes);nextRoutes[prevState.index]=resetChildRoute(prevRouteName);nextState=_objectSpread({},possibleNextState,{routes:nextRoutes});}return updateNextStateHistory(nextState);}function getInitialState(){var routes=order.map(resetChildRoute);var initialState={routes:routes,index:initialRouteIndex,isTransitioning:false};if(backBehavior==='history'){var initialKey=routes[initialRouteIndex].key;initialState['routeKeyHistory']=[initialKey];}return initialState;}return{childRouters:childRouters,getActionCreators:function getActionCreators(route,stateKey){return getCustomActionCreators(route,stateKey);},getStateForAction:function getStateForAction(action,inputState){var prevState=inputState?_objectSpread({},inputState):inputState;var state=inputState||getInitialState();var activeChildIndex=state.index;if(action.type===NavigationActions.INIT){var params=action.params;if(params){state.routes=state.routes.map(function(route){return _objectSpread({},route,{params:_objectSpread({},route.params,params,route.routeName===initialRouteName?initialRouteParams:null)});});}}if(action.type===SwitchActions.JUMP_TO&&(action.key==null||action.key===state.key)){var _params=action.params;var _index=state.routes.findIndex(function(route){return route.routeName===action.routeName;});if(_index===-1){throw new Error("There is no route named '"+action.routeName+"' in the navigator with the key '"+action.key+"'.\n"+("Must be one of: "+state.routes.map(function(route){return"'"+route.routeName+"'";}).join(',')));}return getNextState(action,prevState,_objectSpread({},state,{routes:state.routes.map(function(route,i){return i===_index?_objectSpread({},route,{params:_objectSpread({},route.params,_params)}):route;}),index:_index}));}var activeChildLastState=state.routes[state.index];var activeChildRouter=childRouters[order[state.index]];if(activeChildRouter){var activeChildState=activeChildRouter.getStateForAction(action,activeChildLastState);if(!activeChildState&&inputState){return null;}if(activeChildState&&activeChildState!==activeChildLastState){var _routes=_toConsumableArray(state.routes);_routes[state.index]=activeChildState;return getNextState(action,prevState,_objectSpread({},state,{routes:_routes}));}}var isBackEligible=action.key==null||action.key===activeChildLastState.key;if(action.type===NavigationActions.BACK){if(isBackEligible&&backBehavior==='initialRoute'){activeChildIndex=initialRouteIndex;}else if(isBackEligible&&backBehavior==='order'){activeChildIndex=Math.max(0,activeChildIndex-1);}else if(isBackEligible&&backBehavior==='history'&&state.routeKeyHistory.length>1){var routeKey=state.routeKeyHistory[state.routeKeyHistory.length-2];activeChildIndex=order.indexOf(routeKey);}else{return state;}}var didNavigate=false;if(action.type===NavigationActions.NAVIGATE){didNavigate=!!order.find(function(childId,i){if(childId===action.routeName){activeChildIndex=i;return true;}return false;});if(didNavigate){var childState=state.routes[activeChildIndex];var childRouter=childRouters[action.routeName];var newChildState=childState;if(action.action&&childRouter){var childStateUpdate=childRouter.getStateForAction(action.action,childState);if(childStateUpdate){newChildState=childStateUpdate;}}if(action.params){newChildState=_objectSpread({},newChildState,{params:_objectSpread({},newChildState.params||{},action.params)});}if(newChildState!==childState){var _routes2=_toConsumableArray(state.routes);_routes2[activeChildIndex]=newChildState;var nextState=_objectSpread({},state,{routes:_routes2,index:activeChildIndex});return getNextState(action,prevState,nextState);}else if(newChildState===childState&&state.index===activeChildIndex&&prevState){return null;}}}if(action.type===NavigationActions.SET_PARAMS){var key=action.key;var lastRoute=state.routes.find(function(route){return route.key===key;});if(lastRoute){var _params2=_objectSpread({},lastRoute.params,action.params);var _routes3=_toConsumableArray(state.routes);_routes3[state.routes.indexOf(lastRoute)]=_objectSpread({},lastRoute,{params:_params2});return getNextState(action,prevState,_objectSpread({},state,{routes:_routes3}));}}if(activeChildIndex!==state.index){return getNextState(action,prevState,_objectSpread({},state,{index:activeChildIndex}));}else if(didNavigate&&!inputState){return state;}else if(didNavigate){return _objectSpread({},state);}var index=state.index;var routes=state.routes;order.find(function(childId,i){var childRouter=childRouters[childId];if(i===index){return false;}var childState=routes[i];if(childRouter){childState=childRouter.getStateForAction(action,childState);}if(!childState){index=i;return true;}if(childState!==routes[i]){routes=_toConsumableArray(routes);routes[i]=childState;index=i;return true;}return false;});if(action.preserveFocus){index=state.index;}if(index!==state.index||routes!==state.routes){return getNextState(action,prevState,_objectSpread({},state,{index:index,routes:routes}));}return state;},getComponentForState:function getComponentForState(state){var routeName=state.routes[state.index].routeName;invariant(routeName,"There is no route defined for index "+state.index+". Check that\n that you passed in a navigation state with a valid tab/screen index.");var childRouter=childRouters[routeName];if(childRouter){return childRouter.getComponentForState(state.routes[state.index]);}return getScreenForRouteName(routeConfigs,routeName);},getComponentForRouteName:function getComponentForRouteName(routeName){return getScreenForRouteName(routeConfigs,routeName);},getPathAndParamsForState:function getPathAndParamsForState(state){var route=state.routes[state.index];return getPathAndParamsForRoute(route);},getActionForPathAndParams:function getActionForPathAndParams(path,params){return _getActionForPathAndParams(path,params);},getScreenOptions:createConfigGetter(routeConfigs,config.defaultNavigationOptions)};});
++import _toConsumableArray from"@babel/runtime/helpers/toConsumableArray";import _objectSpread from"@babel/runtime/helpers/objectSpread";import invariant from'../utils/invariant';import getScreenForRouteName from'./getScreenForRouteName';import createConfigGetter from'./createConfigGetter';import*as NavigationActions from'../NavigationActions';import*as SwitchActions from'./SwitchActions';import validateRouteConfigMap from'./validateRouteConfigMap';import{createPathParser}from'./pathUtils';var defaultActionCreators=function defaultActionCreators(){return{};};export default(function(routeConfigs){var config=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};validateRouteConfigMap(routeConfigs);var order=config.order||Object.keys(routeConfigs);var getCustomActionCreators=config.getCustomActionCreators||defaultActionCreators;var initialRouteParams=config.initialRouteParams;var initialRouteName=config.initialRouteName||order[0];var backBehavior=config.backBehavior||'none';var resetOnBlur=config.hasOwnProperty('resetOnBlur')?config.resetOnBlur:true;var initialRouteIndex=order.indexOf(initialRouteName);if(initialRouteIndex===-1){throw new Error("Invalid initialRouteName '"+initialRouteName+"'."+("Should be one of "+order.map(function(n){return"\""+n+"\"";}).join(', ')));}var childRouters={};order.forEach(function(routeName){childRouters[routeName]=null;var screen=getScreenForRouteName(routeConfigs,routeName);if(screen.router){childRouters[routeName]=screen.router;}});function getParamsForRoute(routeName,params){var routeConfig=routeConfigs[routeName];if(routeConfig&&routeConfig.params){return _objectSpread({},routeConfig.params,params);}else{return params;}}var _createPathParser=createPathParser(childRouters,routeConfigs,config),getPathAndParamsForRoute=_createPathParser.getPathAndParamsForRoute,_getActionForPathAndParams=_createPathParser.getActionForPathAndParams;function resetChildRoute(routeName){var initialParams=routeName===initialRouteName?initialRouteParams:undefined;var params=getParamsForRoute(routeName,initialParams);var childRouter=childRouters[routeName];if(childRouter){var childAction=NavigationActions.init();return _objectSpread({},childRouter.getStateForAction(childAction),{key:routeName,routeName:routeName,params:params});}return{key:routeName,routeName:routeName,params:params};}function getNextState(action,prevState,possibleNextState){function updateNextStateHistory(nextState){if(backBehavior!=='history'){return nextState;}var nextRouteKeyHistory=prevState?prevState.routeKeyHistory:[];if(action.type===NavigationActions.NAVIGATE){nextRouteKeyHistory=_toConsumableArray(nextRouteKeyHistory);var keyToAdd=nextState.routes[nextState.index].key;nextRouteKeyHistory=nextRouteKeyHistory.filter(function(k){return k!==keyToAdd;});nextRouteKeyHistory.push(keyToAdd);}else if(action.type===NavigationActions.BACK){nextRouteKeyHistory=_toConsumableArray(nextRouteKeyHistory);nextRouteKeyHistory.pop();}return _objectSpread({},nextState,{routeKeyHistory:nextRouteKeyHistory});}var nextState=possibleNextState;if(prevState&&prevState.index!==possibleNextState.index&&resetOnBlur){var prevRouteName=prevState.routes[prevState.index].routeName;var nextRoutes=_toConsumableArray(possibleNextState.routes);nextRoutes[prevState.index]=resetChildRoute(prevRouteName);nextState=_objectSpread({},possibleNextState,{routes:nextRoutes});}return updateNextStateHistory(nextState);}function getInitialState(){var routes=order.map(resetChildRoute);var initialState={routes:routes,index:initialRouteIndex};if(backBehavior==='history'){var initialKey=routes[initialRouteIndex].key;initialState['routeKeyHistory']=[initialKey];}return initialState;}return{childRouters:childRouters,getActionCreators:function getActionCreators(route,stateKey){return getCustomActionCreators(route,stateKey);},getStateForAction:function getStateForAction(action,inputState){var prevState=inputState?_objectSpread({},inputState):inputState;var state=inputState||getInitialState();var activeChildIndex=state.index;if(action.type===NavigationActions.INIT){var params=action.params;if(params){state.routes=state.routes.map(function(route){return _objectSpread({},route,{params:_objectSpread({},route.params,params,route.routeName===initialRouteName?initialRouteParams:null)});});}}if(action.type===SwitchActions.JUMP_TO&&(action.key==null||action.key===state.key)){var _params=action.params;var _index=state.routes.findIndex(function(route){return route.routeName===action.routeName;});if(_index===-1){throw new Error("There is no route named '"+action.routeName+"' in the navigator with the key '"+action.key+"'.\n"+("Must be one of: "+state.routes.map(function(route){return"'"+route.routeName+"'";}).join(',')));}return getNextState(action,prevState,_objectSpread({},state,{routes:state.routes.map(function(route,i){return i===_index?_objectSpread({},route,{params:_objectSpread({},route.params,_params)}):route;}),index:_index}));}var activeChildLastState=state.routes[state.index];var activeChildRouter=childRouters[order[state.index]];if(activeChildRouter){var activeChildState=activeChildRouter.getStateForAction(action,activeChildLastState);if(!activeChildState&&inputState){return null;}if(activeChildState&&activeChildState!==activeChildLastState){var _routes=_toConsumableArray(state.routes);_routes[state.index]=activeChildState;return getNextState(action,prevState,_objectSpread({},state,{routes:_routes}));}}var isBackEligible=action.key==null||action.key===activeChildLastState.key;if(action.type===NavigationActions.BACK){if(isBackEligible&&backBehavior==='initialRoute'){activeChildIndex=initialRouteIndex;}else if(isBackEligible&&backBehavior==='order'){activeChildIndex=Math.max(0,activeChildIndex-1);}else if(isBackEligible&&backBehavior==='history'&&state.routeKeyHistory.length>1){var routeKey=state.routeKeyHistory[state.routeKeyHistory.length-2];activeChildIndex=order.indexOf(routeKey);}else{return state;}}var didNavigate=false;if(action.type===NavigationActions.NAVIGATE){didNavigate=!!order.find(function(childId,i){if(childId===action.routeName){activeChildIndex=i;return true;}return false;});if(didNavigate){var childState=state.routes[activeChildIndex];var childRouter=childRouters[action.routeName];var newChildState=childState;if(action.action&&childRouter){var childStateUpdate=childRouter.getStateForAction(action.action,childState);if(childStateUpdate){newChildState=childStateUpdate;}}if(action.params){newChildState=_objectSpread({},newChildState,{params:_objectSpread({},newChildState.params||{},action.params)});}if(newChildState!==childState){var _routes2=_toConsumableArray(state.routes);_routes2[activeChildIndex]=newChildState;var nextState=_objectSpread({},state,{routes:_routes2,index:activeChildIndex});return getNextState(action,prevState,nextState);}else if(newChildState===childState&&state.index===activeChildIndex&&prevState){return null;}}}if(action.type===NavigationActions.SET_PARAMS){var key=action.key;var lastRoute=state.routes.find(function(route){return route.key===key;});if(lastRoute){var _params2=_objectSpread({},lastRoute.params,action.params);var _routes3=_toConsumableArray(state.routes);_routes3[state.routes.indexOf(lastRoute)]=_objectSpread({},lastRoute,{params:_params2});return getNextState(action,prevState,_objectSpread({},state,{routes:_routes3}));}}if(activeChildIndex!==state.index){return getNextState(action,prevState,_objectSpread({},state,{index:activeChildIndex}));}else if(didNavigate&&!inputState){return state;}else if(didNavigate){return _objectSpread({},state);}var index=state.index;var routes=state.routes;order.find(function(childId,i){var childRouter=childRouters[childId];if(i===index){return false;}var childState=routes[i];if(childRouter){childState=childRouter.getStateForAction(action,childState);}if(!childState){index=i;return true;}if(childState!==routes[i]){routes=_toConsumableArray(routes);routes[i]=childState;index=i;return true;}return false;});if(action.preserveFocus){index=state.index;}if(index!==state.index||routes!==state.routes){return getNextState(action,prevState,_objectSpread({},state,{index:index,routes:routes}));}return state;},getComponentForState:function getComponentForState(state){var routeName=state.routes[state.index].routeName;invariant(routeName,"There is no route defined for index "+state.index+". Check that\n that you passed in a navigation state with a valid tab/screen index.");var childRouter=childRouters[routeName];if(childRouter){return childRouter.getComponentForState(state.routes[state.index]);}return getScreenForRouteName(routeConfigs,routeName);},getComponentForRouteName:function getComponentForRouteName(routeName){return getScreenForRouteName(routeConfigs,routeName);},getPathAndParamsForState:function getPathAndParamsForState(state){var route=state.routes[state.index];return getPathAndParamsForRoute(route);},getActionForPathAndParams:function getActionForPathAndParams(path,params){return _getActionForPathAndParams(path,params);},getScreenOptions:createConfigGetter(routeConfigs,config.defaultNavigationOptions)};});
+ //# sourceMappingURL=SwitchRouter.js.map
+\ No newline at end of file
+diff --git a/node_modules/@react-navigation/core/lib/module/routers/SwitchRouter.js.map b/node_modules/@react-navigation/core/lib/module/routers/SwitchRouter.js.map
+index 98d08be..b006386 100644
+--- a/node_modules/@react-navigation/core/lib/module/routers/SwitchRouter.js.map
++++ b/node_modules/@react-navigation/core/lib/module/routers/SwitchRouter.js.map
+@@ -1 +1 @@
+-{"version":3,"sources":["SwitchRouter.js"],"names":["invariant","getScreenForRouteName","createConfigGetter","NavigationActions","SwitchActions","validateRouteConfigMap","createPathParser","defaultActionCreators","routeConfigs","config","order","Object","keys","getCustomActionCreators","initialRouteParams","initialRouteName","backBehavior","resetOnBlur","hasOwnProperty","initialRouteIndex","indexOf","Error","map","n","join","childRouters","forEach","routeName","screen","router","getParamsForRoute","params","routeConfig","getPathAndParamsForRoute","getActionForPathAndParams","resetChildRoute","initialParams","undefined","childRouter","childAction","init","getStateForAction","key","getNextState","action","prevState","possibleNextState","updateNextStateHistory","nextState","nextRouteKeyHistory","routeKeyHistory","type","NAVIGATE","keyToAdd","routes","index","filter","k","push","BACK","pop","prevRouteName","nextRoutes","getInitialState","initialState","isTransitioning","initialKey","getActionCreators","route","stateKey","inputState","state","activeChildIndex","INIT","JUMP_TO","findIndex","i","activeChildLastState","activeChildRouter","activeChildState","isBackEligible","Math","max","length","routeKey","didNavigate","find","childId","childState","newChildState","childStateUpdate","SET_PARAMS","lastRoute","preserveFocus","getComponentForState","getComponentForRouteName","getPathAndParamsForState","path","getScreenOptions","defaultNavigationOptions"],"mappings":"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","sourcesContent":["import invariant from '../utils/invariant';\nimport getScreenForRouteName from './getScreenForRouteName';\nimport createConfigGetter from './createConfigGetter';\n\nimport * as NavigationActions from '../NavigationActions';\nimport * as SwitchActions from './SwitchActions';\nimport validateRouteConfigMap from './validateRouteConfigMap';\nimport { createPathParser } from './pathUtils';\n\nconst defaultActionCreators = () => ({});\n\nexport default (routeConfigs, config = {}) => {\n // Fail fast on invalid route definitions\n validateRouteConfigMap(routeConfigs);\n\n const order = config.order || Object.keys(routeConfigs);\n\n const getCustomActionCreators =\n config.getCustomActionCreators || defaultActionCreators;\n\n const initialRouteParams = config.initialRouteParams;\n const initialRouteName = config.initialRouteName || order[0];\n const backBehavior = config.backBehavior || 'none';\n const resetOnBlur = config.hasOwnProperty('resetOnBlur')\n ? config.resetOnBlur\n : true;\n\n const initialRouteIndex = order.indexOf(initialRouteName);\n if (initialRouteIndex === -1) {\n throw new Error(\n `Invalid initialRouteName '${initialRouteName}'.` +\n `Should be one of ${order.map(n => `\"${n}\"`).join(', ')}`\n );\n }\n\n const childRouters = {};\n order.forEach(routeName => {\n childRouters[routeName] = null;\n const screen = getScreenForRouteName(routeConfigs, routeName);\n if (screen.router) {\n childRouters[routeName] = screen.router;\n }\n });\n\n function getParamsForRoute(routeName, params) {\n let routeConfig = routeConfigs[routeName];\n if (routeConfig && routeConfig.params) {\n return { ...routeConfig.params, ...params };\n } else {\n return params;\n }\n }\n\n const {\n getPathAndParamsForRoute,\n getActionForPathAndParams,\n } = createPathParser(childRouters, routeConfigs, config);\n\n function resetChildRoute(routeName) {\n let initialParams =\n routeName === initialRouteName ? initialRouteParams : undefined;\n // note(brentvatne): merging initialRouteParams *on top* of default params\n // on the route seems incorrect but it's consistent with existing behavior\n // in stackrouter\n let params = getParamsForRoute(routeName, initialParams);\n const childRouter = childRouters[routeName];\n if (childRouter) {\n const childAction = NavigationActions.init();\n return {\n ...childRouter.getStateForAction(childAction),\n key: routeName,\n routeName,\n params,\n };\n }\n return {\n key: routeName,\n routeName,\n params,\n };\n }\n\n function getNextState(action, prevState, possibleNextState) {\n function updateNextStateHistory(nextState) {\n if (backBehavior !== 'history') {\n return nextState;\n }\n let nextRouteKeyHistory = prevState ? prevState.routeKeyHistory : [];\n if (action.type === NavigationActions.NAVIGATE) {\n nextRouteKeyHistory = [...nextRouteKeyHistory]; // copy\n const keyToAdd = nextState.routes[nextState.index].key;\n nextRouteKeyHistory = nextRouteKeyHistory.filter(k => k !== keyToAdd); // dedup\n nextRouteKeyHistory.push(keyToAdd);\n } else if (action.type === NavigationActions.BACK) {\n nextRouteKeyHistory = [...nextRouteKeyHistory]; // copy\n nextRouteKeyHistory.pop();\n }\n return {\n ...nextState,\n routeKeyHistory: nextRouteKeyHistory,\n };\n }\n\n let nextState = possibleNextState;\n if (\n prevState &&\n prevState.index !== possibleNextState.index &&\n resetOnBlur\n ) {\n const prevRouteName = prevState.routes[prevState.index].routeName;\n const nextRoutes = [...possibleNextState.routes];\n nextRoutes[prevState.index] = resetChildRoute(prevRouteName);\n nextState = {\n ...possibleNextState,\n routes: nextRoutes,\n };\n }\n return updateNextStateHistory(nextState);\n }\n\n function getInitialState() {\n const routes = order.map(resetChildRoute);\n const initialState = {\n routes,\n index: initialRouteIndex,\n isTransitioning: false,\n };\n if (backBehavior === 'history') {\n const initialKey = routes[initialRouteIndex].key;\n initialState['routeKeyHistory'] = [initialKey];\n }\n return initialState;\n }\n\n return {\n childRouters,\n\n getActionCreators(route, stateKey) {\n return getCustomActionCreators(route, stateKey);\n },\n\n getStateForAction(action, inputState) {\n let prevState = inputState ? { ...inputState } : inputState;\n let state = inputState || getInitialState();\n let activeChildIndex = state.index;\n\n if (action.type === NavigationActions.INIT) {\n // NOTE(brentvatne): this seems weird... why are we merging these\n // params into child routes?\n // ---------------------------------------------------------------\n // Merge any params from the action into all the child routes\n const { params } = action;\n if (params) {\n state.routes = state.routes.map(route => ({\n ...route,\n params: {\n ...route.params,\n ...params,\n ...(route.routeName === initialRouteName\n ? initialRouteParams\n : null),\n },\n }));\n }\n }\n\n if (\n action.type === SwitchActions.JUMP_TO &&\n (action.key == null || action.key === state.key)\n ) {\n const { params } = action;\n const index = state.routes.findIndex(\n route => route.routeName === action.routeName\n );\n\n if (index === -1) {\n throw new Error(\n `There is no route named '${\n action.routeName\n }' in the navigator with the key '${action.key}'.\\n` +\n `Must be one of: ${state.routes\n .map(route => `'${route.routeName}'`)\n .join(',')}`\n );\n }\n\n return getNextState(action, prevState, {\n ...state,\n routes: state.routes.map((route, i) =>\n i === index\n ? {\n ...route,\n params: {\n ...route.params,\n ...params,\n },\n }\n : route\n ),\n index,\n });\n }\n\n // Let the current child handle it\n const activeChildLastState = state.routes[state.index];\n const activeChildRouter = childRouters[order[state.index]];\n if (activeChildRouter) {\n const activeChildState = activeChildRouter.getStateForAction(\n action,\n activeChildLastState\n );\n if (!activeChildState && inputState) {\n return null;\n }\n if (activeChildState && activeChildState !== activeChildLastState) {\n const routes = [...state.routes];\n routes[state.index] = activeChildState;\n return getNextState(action, prevState, {\n ...state,\n routes,\n });\n }\n }\n\n // Handle tab changing. Do this after letting the current tab try to\n // handle the action, to allow inner children to change first\n const isBackEligible =\n action.key == null || action.key === activeChildLastState.key;\n if (action.type === NavigationActions.BACK) {\n if (isBackEligible && backBehavior === 'initialRoute') {\n activeChildIndex = initialRouteIndex;\n } else if (isBackEligible && backBehavior === 'order') {\n activeChildIndex = Math.max(0, activeChildIndex - 1);\n }\n // The history contains current route, so we can only go back\n // if there is more than one item in the history\n else if (\n isBackEligible &&\n backBehavior === 'history' &&\n state.routeKeyHistory.length > 1\n ) {\n const routeKey =\n state.routeKeyHistory[state.routeKeyHistory.length - 2];\n activeChildIndex = order.indexOf(routeKey);\n } else {\n return state;\n }\n }\n\n let didNavigate = false;\n if (action.type === NavigationActions.NAVIGATE) {\n didNavigate = !!order.find((childId, i) => {\n if (childId === action.routeName) {\n activeChildIndex = i;\n return true;\n }\n return false;\n });\n if (didNavigate) {\n const childState = state.routes[activeChildIndex];\n const childRouter = childRouters[action.routeName];\n let newChildState = childState;\n\n if (action.action && childRouter) {\n const childStateUpdate = childRouter.getStateForAction(\n action.action,\n childState\n );\n if (childStateUpdate) {\n newChildState = childStateUpdate;\n }\n }\n\n if (action.params) {\n newChildState = {\n ...newChildState,\n params: {\n ...(newChildState.params || {}),\n ...action.params,\n },\n };\n }\n\n if (newChildState !== childState) {\n const routes = [...state.routes];\n routes[activeChildIndex] = newChildState;\n const nextState = {\n ...state,\n routes,\n index: activeChildIndex,\n };\n return getNextState(action, prevState, nextState);\n } else if (\n newChildState === childState &&\n state.index === activeChildIndex &&\n prevState\n ) {\n return null;\n }\n }\n }\n\n if (action.type === NavigationActions.SET_PARAMS) {\n const key = action.key;\n const lastRoute = state.routes.find(route => route.key === key);\n if (lastRoute) {\n const params = {\n ...lastRoute.params,\n ...action.params,\n };\n const routes = [...state.routes];\n routes[state.routes.indexOf(lastRoute)] = {\n ...lastRoute,\n params,\n };\n return getNextState(action, prevState, {\n ...state,\n routes,\n });\n }\n }\n\n if (activeChildIndex !== state.index) {\n return getNextState(action, prevState, {\n ...state,\n index: activeChildIndex,\n });\n } else if (didNavigate && !inputState) {\n return state;\n } else if (didNavigate) {\n return { ...state };\n }\n\n // Let other children handle it and switch to the first child that returns a new state\n let index = state.index;\n let routes = state.routes;\n order.find((childId, i) => {\n const childRouter = childRouters[childId];\n if (i === index) {\n return false;\n }\n let childState = routes[i];\n if (childRouter) {\n childState = childRouter.getStateForAction(action, childState);\n }\n if (!childState) {\n index = i;\n return true;\n }\n if (childState !== routes[i]) {\n routes = [...routes];\n routes[i] = childState;\n index = i;\n return true;\n }\n return false;\n });\n\n // Nested routers can be updated after switching children with actions such as SET_PARAMS\n // and COMPLETE_TRANSITION.\n if (action.preserveFocus) {\n index = state.index;\n }\n\n if (index !== state.index || routes !== state.routes) {\n return getNextState(action, prevState, {\n ...state,\n index,\n routes,\n });\n }\n return state;\n },\n\n getComponentForState(state) {\n const routeName = state.routes[state.index].routeName;\n invariant(\n routeName,\n `There is no route defined for index ${state.index}. Check that\n that you passed in a navigation state with a valid tab/screen index.`\n );\n const childRouter = childRouters[routeName];\n if (childRouter) {\n return childRouter.getComponentForState(state.routes[state.index]);\n }\n return getScreenForRouteName(routeConfigs, routeName);\n },\n\n getComponentForRouteName(routeName) {\n return getScreenForRouteName(routeConfigs, routeName);\n },\n\n getPathAndParamsForState(state) {\n const route = state.routes[state.index];\n return getPathAndParamsForRoute(route);\n },\n\n getActionForPathAndParams(path, params) {\n return getActionForPathAndParams(path, params);\n },\n\n getScreenOptions: createConfigGetter(\n routeConfigs,\n config.defaultNavigationOptions\n ),\n };\n};\n"]}
+\ No newline at end of file
++{"version":3,"sources":["SwitchRouter.js"],"names":["invariant","getScreenForRouteName","createConfigGetter","NavigationActions","SwitchActions","validateRouteConfigMap","createPathParser","defaultActionCreators","routeConfigs","config","order","Object","keys","getCustomActionCreators","initialRouteParams","initialRouteName","backBehavior","resetOnBlur","hasOwnProperty","initialRouteIndex","indexOf","Error","map","n","join","childRouters","forEach","routeName","screen","router","getParamsForRoute","params","routeConfig","getPathAndParamsForRoute","getActionForPathAndParams","resetChildRoute","initialParams","undefined","childRouter","childAction","init","getStateForAction","key","getNextState","action","prevState","possibleNextState","updateNextStateHistory","nextState","nextRouteKeyHistory","routeKeyHistory","type","NAVIGATE","keyToAdd","routes","index","filter","k","push","BACK","pop","prevRouteName","nextRoutes","getInitialState","initialState","initialKey","getActionCreators","route","stateKey","inputState","state","activeChildIndex","INIT","JUMP_TO","findIndex","i","activeChildLastState","activeChildRouter","activeChildState","isBackEligible","Math","max","length","routeKey","didNavigate","find","childId","childState","newChildState","childStateUpdate","SET_PARAMS","lastRoute","preserveFocus","getComponentForState","getComponentForRouteName","getPathAndParamsForState","path","getScreenOptions","defaultNavigationOptions"],"mappings":"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","sourcesContent":["import invariant from '../utils/invariant';\nimport getScreenForRouteName from './getScreenForRouteName';\nimport createConfigGetter from './createConfigGetter';\n\nimport * as NavigationActions from '../NavigationActions';\nimport * as SwitchActions from './SwitchActions';\nimport validateRouteConfigMap from './validateRouteConfigMap';\nimport { createPathParser } from './pathUtils';\n\nconst defaultActionCreators = () => ({});\n\nexport default (routeConfigs, config = {}) => {\n // Fail fast on invalid route definitions\n validateRouteConfigMap(routeConfigs);\n\n const order = config.order || Object.keys(routeConfigs);\n\n const getCustomActionCreators =\n config.getCustomActionCreators || defaultActionCreators;\n\n const initialRouteParams = config.initialRouteParams;\n const initialRouteName = config.initialRouteName || order[0];\n const backBehavior = config.backBehavior || 'none';\n const resetOnBlur = config.hasOwnProperty('resetOnBlur')\n ? config.resetOnBlur\n : true;\n\n const initialRouteIndex = order.indexOf(initialRouteName);\n if (initialRouteIndex === -1) {\n throw new Error(\n `Invalid initialRouteName '${initialRouteName}'.` +\n `Should be one of ${order.map(n => `\"${n}\"`).join(', ')}`\n );\n }\n\n const childRouters = {};\n order.forEach(routeName => {\n childRouters[routeName] = null;\n const screen = getScreenForRouteName(routeConfigs, routeName);\n if (screen.router) {\n childRouters[routeName] = screen.router;\n }\n });\n\n function getParamsForRoute(routeName, params) {\n let routeConfig = routeConfigs[routeName];\n if (routeConfig && routeConfig.params) {\n return { ...routeConfig.params, ...params };\n } else {\n return params;\n }\n }\n\n const {\n getPathAndParamsForRoute,\n getActionForPathAndParams,\n } = createPathParser(childRouters, routeConfigs, config);\n\n function resetChildRoute(routeName) {\n let initialParams =\n routeName === initialRouteName ? initialRouteParams : undefined;\n // note(brentvatne): merging initialRouteParams *on top* of default params\n // on the route seems incorrect but it's consistent with existing behavior\n // in stackrouter\n let params = getParamsForRoute(routeName, initialParams);\n const childRouter = childRouters[routeName];\n if (childRouter) {\n const childAction = NavigationActions.init();\n return {\n ...childRouter.getStateForAction(childAction),\n key: routeName,\n routeName,\n params,\n };\n }\n return {\n key: routeName,\n routeName,\n params,\n };\n }\n\n function getNextState(action, prevState, possibleNextState) {\n function updateNextStateHistory(nextState) {\n if (backBehavior !== 'history') {\n return nextState;\n }\n let nextRouteKeyHistory = prevState ? prevState.routeKeyHistory : [];\n if (action.type === NavigationActions.NAVIGATE) {\n nextRouteKeyHistory = [...nextRouteKeyHistory]; // copy\n const keyToAdd = nextState.routes[nextState.index].key;\n nextRouteKeyHistory = nextRouteKeyHistory.filter(k => k !== keyToAdd); // dedup\n nextRouteKeyHistory.push(keyToAdd);\n } else if (action.type === NavigationActions.BACK) {\n nextRouteKeyHistory = [...nextRouteKeyHistory]; // copy\n nextRouteKeyHistory.pop();\n }\n return {\n ...nextState,\n routeKeyHistory: nextRouteKeyHistory,\n };\n }\n\n let nextState = possibleNextState;\n if (\n prevState &&\n prevState.index !== possibleNextState.index &&\n resetOnBlur\n ) {\n const prevRouteName = prevState.routes[prevState.index].routeName;\n const nextRoutes = [...possibleNextState.routes];\n nextRoutes[prevState.index] = resetChildRoute(prevRouteName);\n nextState = {\n ...possibleNextState,\n routes: nextRoutes,\n };\n }\n return updateNextStateHistory(nextState);\n }\n\n function getInitialState() {\n const routes = order.map(resetChildRoute);\n const initialState = {\n routes,\n index: initialRouteIndex,\n };\n if (backBehavior === 'history') {\n const initialKey = routes[initialRouteIndex].key;\n initialState['routeKeyHistory'] = [initialKey];\n }\n return initialState;\n }\n\n return {\n childRouters,\n\n getActionCreators(route, stateKey) {\n return getCustomActionCreators(route, stateKey);\n },\n\n getStateForAction(action, inputState) {\n let prevState = inputState ? { ...inputState } : inputState;\n let state = inputState || getInitialState();\n let activeChildIndex = state.index;\n\n if (action.type === NavigationActions.INIT) {\n // NOTE(brentvatne): this seems weird... why are we merging these\n // params into child routes?\n // ---------------------------------------------------------------\n // Merge any params from the action into all the child routes\n const { params } = action;\n if (params) {\n state.routes = state.routes.map(route => ({\n ...route,\n params: {\n ...route.params,\n ...params,\n ...(route.routeName === initialRouteName\n ? initialRouteParams\n : null),\n },\n }));\n }\n }\n\n if (\n action.type === SwitchActions.JUMP_TO &&\n (action.key == null || action.key === state.key)\n ) {\n const { params } = action;\n const index = state.routes.findIndex(\n route => route.routeName === action.routeName\n );\n\n if (index === -1) {\n throw new Error(\n `There is no route named '${\n action.routeName\n }' in the navigator with the key '${action.key}'.\\n` +\n `Must be one of: ${state.routes\n .map(route => `'${route.routeName}'`)\n .join(',')}`\n );\n }\n\n return getNextState(action, prevState, {\n ...state,\n routes: state.routes.map((route, i) =>\n i === index\n ? {\n ...route,\n params: {\n ...route.params,\n ...params,\n },\n }\n : route\n ),\n index,\n });\n }\n\n // Let the current child handle it\n const activeChildLastState = state.routes[state.index];\n const activeChildRouter = childRouters[order[state.index]];\n if (activeChildRouter) {\n const activeChildState = activeChildRouter.getStateForAction(\n action,\n activeChildLastState\n );\n if (!activeChildState && inputState) {\n return null;\n }\n if (activeChildState && activeChildState !== activeChildLastState) {\n const routes = [...state.routes];\n routes[state.index] = activeChildState;\n return getNextState(action, prevState, {\n ...state,\n routes,\n });\n }\n }\n\n // Handle tab changing. Do this after letting the current tab try to\n // handle the action, to allow inner children to change first\n const isBackEligible =\n action.key == null || action.key === activeChildLastState.key;\n if (action.type === NavigationActions.BACK) {\n if (isBackEligible && backBehavior === 'initialRoute') {\n activeChildIndex = initialRouteIndex;\n } else if (isBackEligible && backBehavior === 'order') {\n activeChildIndex = Math.max(0, activeChildIndex - 1);\n }\n // The history contains current route, so we can only go back\n // if there is more than one item in the history\n else if (\n isBackEligible &&\n backBehavior === 'history' &&\n state.routeKeyHistory.length > 1\n ) {\n const routeKey =\n state.routeKeyHistory[state.routeKeyHistory.length - 2];\n activeChildIndex = order.indexOf(routeKey);\n } else {\n return state;\n }\n }\n\n let didNavigate = false;\n if (action.type === NavigationActions.NAVIGATE) {\n didNavigate = !!order.find((childId, i) => {\n if (childId === action.routeName) {\n activeChildIndex = i;\n return true;\n }\n return false;\n });\n if (didNavigate) {\n const childState = state.routes[activeChildIndex];\n const childRouter = childRouters[action.routeName];\n let newChildState = childState;\n\n if (action.action && childRouter) {\n const childStateUpdate = childRouter.getStateForAction(\n action.action,\n childState\n );\n if (childStateUpdate) {\n newChildState = childStateUpdate;\n }\n }\n\n if (action.params) {\n newChildState = {\n ...newChildState,\n params: {\n ...(newChildState.params || {}),\n ...action.params,\n },\n };\n }\n\n if (newChildState !== childState) {\n const routes = [...state.routes];\n routes[activeChildIndex] = newChildState;\n const nextState = {\n ...state,\n routes,\n index: activeChildIndex,\n };\n return getNextState(action, prevState, nextState);\n } else if (\n newChildState === childState &&\n state.index === activeChildIndex &&\n prevState\n ) {\n return null;\n }\n }\n }\n\n if (action.type === NavigationActions.SET_PARAMS) {\n const key = action.key;\n const lastRoute = state.routes.find(route => route.key === key);\n if (lastRoute) {\n const params = {\n ...lastRoute.params,\n ...action.params,\n };\n const routes = [...state.routes];\n routes[state.routes.indexOf(lastRoute)] = {\n ...lastRoute,\n params,\n };\n return getNextState(action, prevState, {\n ...state,\n routes,\n });\n }\n }\n\n if (activeChildIndex !== state.index) {\n return getNextState(action, prevState, {\n ...state,\n index: activeChildIndex,\n });\n } else if (didNavigate && !inputState) {\n return state;\n } else if (didNavigate) {\n return { ...state };\n }\n\n // Let other children handle it and switch to the first child that returns a new state\n let index = state.index;\n let routes = state.routes;\n order.find((childId, i) => {\n const childRouter = childRouters[childId];\n if (i === index) {\n return false;\n }\n let childState = routes[i];\n if (childRouter) {\n childState = childRouter.getStateForAction(action, childState);\n }\n if (!childState) {\n index = i;\n return true;\n }\n if (childState !== routes[i]) {\n routes = [...routes];\n routes[i] = childState;\n index = i;\n return true;\n }\n return false;\n });\n\n // Nested routers can be updated after switching children with actions such as SET_PARAMS\n // and COMPLETE_TRANSITION.\n if (action.preserveFocus) {\n index = state.index;\n }\n\n if (index !== state.index || routes !== state.routes) {\n return getNextState(action, prevState, {\n ...state,\n index,\n routes,\n });\n }\n return state;\n },\n\n getComponentForState(state) {\n const routeName = state.routes[state.index].routeName;\n invariant(\n routeName,\n `There is no route defined for index ${state.index}. Check that\n that you passed in a navigation state with a valid tab/screen index.`\n );\n const childRouter = childRouters[routeName];\n if (childRouter) {\n return childRouter.getComponentForState(state.routes[state.index]);\n }\n return getScreenForRouteName(routeConfigs, routeName);\n },\n\n getComponentForRouteName(routeName) {\n return getScreenForRouteName(routeConfigs, routeName);\n },\n\n getPathAndParamsForState(state) {\n const route = state.routes[state.index];\n return getPathAndParamsForRoute(route);\n },\n\n getActionForPathAndParams(path, params) {\n return getActionForPathAndParams(path, params);\n },\n\n getScreenOptions: createConfigGetter(\n routeConfigs,\n config.defaultNavigationOptions\n ),\n };\n};\n"]}
+\ No newline at end of file
+diff --git a/node_modules/@react-navigation/core/lib/module/routers/__tests__/PathHandling-test.js b/node_modules/@react-navigation/core/lib/module/routers/__tests__/PathHandling-test.js
+index 0457402..57d0b4d 100644
+--- a/node_modules/@react-navigation/core/lib/module/routers/__tests__/PathHandling-test.js
++++ b/node_modules/@react-navigation/core/lib/module/routers/__tests__/PathHandling-test.js
+@@ -1,2 +1,2 @@
+-import _classCallCheck from"@babel/runtime/helpers/classCallCheck";import _createClass from"@babel/runtime/helpers/createClass";import _possibleConstructorReturn from"@babel/runtime/helpers/possibleConstructorReturn";import _getPrototypeOf from"@babel/runtime/helpers/getPrototypeOf";import _inherits from"@babel/runtime/helpers/inherits";var _jsxFileName="/Users/satya/Workspace/Callstack/react-navigation-core/src/routers/__tests__/PathHandling-test.js";import React from'react';import SwitchRouter from'../SwitchRouter';import StackRouter from'../StackRouter';import TabRouter from'../TabRouter';import*as NavigationActions from'../../NavigationActions';import{_TESTING_ONLY_normalize_keys}from'../KeyGenerator.ts';beforeEach(function(){_TESTING_ONLY_normalize_keys();});var performRouterTest=function performRouterTest(createTestRouter){var ListScreen=function ListScreen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:16}});};var ProfileNavigator=function ProfileNavigator(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:18}});};ProfileNavigator.router=StackRouter({list:{path:'list/:id',screen:ListScreen}});var MainNavigator=function MainNavigator(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:26}});};MainNavigator.router=StackRouter({profile:{path:'p/:id',screen:ProfileNavigator}});var LoginScreen=function LoginScreen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:34}});};var AuthNavigator=function AuthNavigator(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:36}});};AuthNavigator.router=StackRouter({login:{screen:LoginScreen}});var BarScreen=function BarScreen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:43}});};var FooNavigator=function(_React$Component){_inherits(FooNavigator,_React$Component);function FooNavigator(){_classCallCheck(this,FooNavigator);return _possibleConstructorReturn(this,_getPrototypeOf(FooNavigator).apply(this,arguments));}_createClass(FooNavigator,[{key:"render",value:function render(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:53}});}}]);return FooNavigator;}(React.Component);FooNavigator.router=StackRouter({bar:{path:'b/:barThing',screen:BarScreen}});var PersonScreen=function PersonScreen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:57}});};var testRouter=createTestRouter({main:{screen:MainNavigator},baz:{path:null,screen:FooNavigator},auth:{screen:AuthNavigator},person:{path:'people/:id',screen:PersonScreen},foo:{path:'fo/:fooThing',screen:FooNavigator}});it('Handles empty URIs with empty action',function(){var router=createTestRouter({Foo:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:84}});}},Bar:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:87}});}}},{initialRouteName:'Bar',initialRouteParams:{foo:42}});var action=router.getActionForPathAndParams('');expect(action).toEqual(null);var state=router.getStateForAction(action||NavigationActions.init());expect(state.routes[state.index]).toEqual(expect.objectContaining({routeName:'Bar',params:{foo:42}}));});it('Handles paths with several params',function(){var router=createTestRouter({Person:{path:'people/:person',screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:107}});}},Task:{path:'people/:person/tasks/:task',screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:111}});}},ThingA:{path:'things/:good',screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:115}});}},Thing:{path:'things/:good/:thing',screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:119}});}}});var action=router.getActionForPathAndParams('people/brent/tasks/everything');expect(action).toEqual({type:NavigationActions.NAVIGATE,routeName:'Task',params:{person:'brent',task:'everything'}});var action1=router.getActionForPathAndParams('people/lucy');expect(action1).toEqual({type:NavigationActions.NAVIGATE,routeName:'Person',params:{person:'lucy'}});var action2=router.getActionForPathAndParams('things/foo/bar');expect(action2).toEqual({type:NavigationActions.NAVIGATE,routeName:'Thing',params:{good:'foo',thing:'bar'}});var action3=router.getActionForPathAndParams('things/foo');expect(action3).toEqual({type:NavigationActions.NAVIGATE,routeName:'ThingA',params:{good:'foo'}});});it('Handles empty path configuration',function(){var router=createTestRouter({Foo:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:156}});}},Bar:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:159}});},path:''}});var action=router.getActionForPathAndParams('');expect(action).toEqual({type:NavigationActions.NAVIGATE,routeName:'Bar',params:{}});});it('Handles wildcard path configuration',function(){var router=createTestRouter({Foo:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:174}});}},Bar:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:177}});},path:':something'}});var action=router.getActionForPathAndParams('');expect(action).toEqual(null);var action1=router.getActionForPathAndParams('Foo');expect(action1).toEqual({type:NavigationActions.NAVIGATE,routeName:'Foo',params:{}});var action2=router.getActionForPathAndParams('asdf');expect(action2).toEqual({type:NavigationActions.NAVIGATE,routeName:'Bar',params:{something:'asdf'}});});it('Null path behavior',function(){var ScreenA=function ScreenA(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:199}});};var router=createTestRouter({Bar:{screen:ScreenA},Foo:{path:null,screen:ScreenA},Baz:{path:'',screen:ScreenA}});var action0=router.getActionForPathAndParams('test/random',{});expect(action0).toBe(null);var action1=router.getActionForPathAndParams('',{});expect(action1.routeName).toBe('Baz');var state1=router.getStateForAction(action1);expect(state1.routes[state1.index].routeName).toBe('Baz');});it('Multiple null path sub routers path behavior',function(){var ScreenA=function ScreenA(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:223}});};var ScreenB=function ScreenB(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:224}});};ScreenB.router=createTestRouter({Foo:ScreenA});var ScreenC=function ScreenC(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:228}});};ScreenC.router=createTestRouter({Bar:{path:'bar/:id',screen:ScreenA},Empty:{path:'',screen:ScreenA}});var router=createTestRouter({A:{screen:ScreenA},B:{path:null,screen:ScreenB},C:{path:null,screen:ScreenC}});var action0=router.getActionForPathAndParams('Foo',{});expect(action0.routeName).toBe('B');expect(action0.action.routeName).toBe('Foo');var action1=router.getActionForPathAndParams('',{});expect(action1.routeName).toBe('C');expect(action1.action.routeName).toBe('Empty');var action2=router.getActionForPathAndParams('A',{});expect(action2.routeName).toBe('A');var action3=router.getActionForPathAndParams('bar/asdf',{});expect(action3.routeName).toBe('C');expect(action3.action.routeName).toBe('Bar');expect(action3.action.params.id).toBe('asdf');});it('Null and empty string path sub routers behavior',function(){var ScreenA=function ScreenA(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:270}});};var ScreenB=function ScreenB(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:271}});};ScreenB.router=createTestRouter({Foo:ScreenA,Baz:{screen:ScreenA,path:''}});var ScreenC=function ScreenC(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:279}});};ScreenC.router=createTestRouter({Boo:ScreenA,Bar:ScreenA,Baz:{screen:ScreenA,path:''}});var router=createTestRouter({B:{path:null,screen:ScreenB},C:{path:'',screen:ScreenC}});var action0=router.getActionForPathAndParams('',{});expect(action0.routeName).toBe('C');expect(action0.action.routeName).toBe('Baz');var action1=router.getActionForPathAndParams('Foo',{});expect(action1.routeName).toBe('B');expect(action1.action.routeName).toBe('Foo');var action2=router.getActionForPathAndParams('Bar',{});expect(action2.routeName).toBe('C');expect(action2.action.routeName).toBe('Bar');var action3=router.getActionForPathAndParams('unknown',{});expect(action3).toBe(null);});it('Empty path acts as wildcard for nested router',function(){var ScreenA=function ScreenA(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:315}});};var Foo=function Foo(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:316}});};var ScreenC=function ScreenC(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:317}});};ScreenC.router=createTestRouter({Boo:ScreenA,Bar:ScreenA});Foo.router=createTestRouter({Quo:ScreenA,Qux:{screen:ScreenC,path:''}});var router=createTestRouter({Bar:{screen:ScreenA},Foo:Foo});var action0=router.getActionForPathAndParams('Foo/Bar',{});expect(action0.routeName).toBe('Foo');expect(action0.action.routeName).toBe('Qux');expect(action0.action.action.routeName).toBe('Bar');});it('Gets deep path with pure wildcard match',function(){var ScreenA=function ScreenA(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:342}});};var ScreenB=function ScreenB(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:343}});};var ScreenC=function ScreenC(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:344}});};ScreenA.router=createTestRouter({Boo:{path:'boo',screen:ScreenC},Baz:{path:'baz/:bazId',screen:ScreenB}});ScreenC.router=createTestRouter({Boo2:{path:'',screen:ScreenB}});var router=createTestRouter({Foo:{path:null,screen:ScreenA},Bar:{screen:ScreenB}});{var state={index:0,routes:[{index:1,key:'Foo',routeName:'Foo',params:{id:'123'},routes:[{index:0,key:'Boo',routeName:'Boo',routes:[{key:'Boo2',routeName:'Boo2'}]},{key:'Baz',routeName:'Baz',params:{bazId:'321'}}]},{key:'Bar',routeName:'Bar'}]};var _router$getPathAndPar=router.getPathAndParamsForState(state),path=_router$getPathAndPar.path,params=_router$getPathAndPar.params;expect(path).toEqual('baz/321');expect(params.id).toEqual('123');}{var _state={index:0,routes:[{index:0,key:'Foo',routeName:'Foo',params:{id:'123'},routes:[{index:0,key:'Boo',routeName:'Boo',routes:[{key:'Boo2',routeName:'Boo2'}]},{key:'Baz',routeName:'Baz',params:{bazId:'321'}}]},{key:'Bar',routeName:'Bar'}]};var _router$getPathAndPar2=router.getPathAndParamsForState(_state),_path=_router$getPathAndPar2.path,_params=_router$getPathAndPar2.params;expect(_path).toEqual('boo');expect(_params).toEqual({id:'123'});}});it('URI encoded string get passed to deep link',function(){var uri='people/2018%2F02%2F07';var action=testRouter.getActionForPathAndParams(uri);expect(action).toEqual({routeName:'person',params:{id:'2018/02/07'},type:NavigationActions.NAVIGATE});var malformedUri='people/%E0%A4%A';var action2=testRouter.getActionForPathAndParams(malformedUri);expect(action2).toEqual({routeName:'person',params:{id:'%E0%A4%A'},type:NavigationActions.NAVIGATE});});it('URI encoded path param gets parsed and correctly printed',function(){var action=testRouter.getActionForPathAndParams('people/Henry%20L');expect(action).toEqual({routeName:'person',params:{id:'Henry L'},type:NavigationActions.NAVIGATE});var s=testRouter.getStateForAction(action);var out=testRouter.getPathAndParamsForState(s);expect(out.path).toEqual('people/Henry%20L');expect(out.params).toEqual({});});it('Querystring params get passed to nested deep link',function(){var action=testRouter.getActionForPathAndParams('main/p/4/list/10259959195',{code:'test',foo:'bar'});expect(action).toEqual({type:NavigationActions.NAVIGATE,routeName:'main',params:{code:'test',foo:'bar'},action:{type:NavigationActions.NAVIGATE,routeName:'profile',params:{id:'4',code:'test',foo:'bar'},action:{type:NavigationActions.NAVIGATE,routeName:'list',params:{id:'10259959195',code:'test',foo:'bar'}}}});var action2=testRouter.getActionForPathAndParams('main/p/4/list/10259959195',{code:'',foo:'bar'});expect(action2).toEqual({type:NavigationActions.NAVIGATE,routeName:'main',params:{code:'',foo:'bar'},action:{type:NavigationActions.NAVIGATE,routeName:'profile',params:{id:'4',code:'',foo:'bar'},action:{type:NavigationActions.NAVIGATE,routeName:'list',params:{id:'10259959195',code:'',foo:'bar'}}}});});it('paths option on router overrides path from route config',function(){var router=createTestRouter({main:{screen:MainNavigator},baz:{path:null,screen:FooNavigator}},{paths:{baz:'overridden'}});var action=router.getActionForPathAndParams('overridden',{});expect(action.type).toEqual(NavigationActions.NAVIGATE);expect(action.routeName).toEqual('baz');});it('paths option set as null on router overrides path from route config',function(){var router=createTestRouter({main:{screen:MainNavigator},baz:{path:'bazPath',screen:FooNavigator}},{paths:{baz:null}});var action=router.getActionForPathAndParams('b/noBaz',{});expect(action.type).toEqual(NavigationActions.NAVIGATE);expect(action.routeName).toEqual('baz');});};describe('Path handling for stack router',function(){performRouterTest(StackRouter);});describe('Path handling for switch router',function(){performRouterTest(SwitchRouter);});it('Handles nested switch routers',function(){var AScreen=function AScreen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:567}});};var DocsNavigator=function DocsNavigator(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:568}});};DocsNavigator.router=SwitchRouter({A:AScreen,B:AScreen,C:AScreen});DocsNavigator.path='docs';var router=SwitchRouter({Docs:DocsNavigator,D:AScreen});var action=router.getActionForPathAndParams('docs/B',{});expect(action.type).toEqual(NavigationActions.NAVIGATE);expect(action.routeName).toEqual('Docs');expect(action.action.type).toEqual(NavigationActions.NAVIGATE);expect(action.action.routeName).toEqual('B');});var performRouteNameAsPathDisabledTest=function performRouteNameAsPathDisabledTest(createTestRouter){var BScreen=function BScreen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:588}});};var NestedNavigator=function NestedNavigator(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:589}});};NestedNavigator.router=createTestRouter({B:{screen:BScreen,path:'baz'}});var router=createTestRouter({A:NestedNavigator},{disableRouteNamePaths:true});it('disableRouteNamePaths option on router prevent the default path to be the routeName',function(){var action=router.getActionForPathAndParams('baz',{});expect(action.routeName).toBe('A');expect(action.action.routeName).toBe('B');});};describe('Stack router handles disableRouteNamePaths',function(){performRouteNameAsPathDisabledTest(StackRouter);});describe('Switch router handles disableRouteNamePaths',function(){performRouteNameAsPathDisabledTest(SwitchRouter);});describe('Tab router handles disableRouteNamePaths',function(){performRouteNameAsPathDisabledTest(TabRouter);});
++import _classCallCheck from"@babel/runtime/helpers/classCallCheck";import _createClass from"@babel/runtime/helpers/createClass";import _possibleConstructorReturn from"@babel/runtime/helpers/possibleConstructorReturn";import _getPrototypeOf from"@babel/runtime/helpers/getPrototypeOf";import _inherits from"@babel/runtime/helpers/inherits";var _jsxFileName="/Users/brentvatne/coding/react-navigation-core/src/routers/__tests__/PathHandling-test.js";import React from'react';import SwitchRouter from'../SwitchRouter';import StackRouter from'../StackRouter';import TabRouter from'../TabRouter';import*as NavigationActions from'../../NavigationActions';import{_TESTING_ONLY_normalize_keys}from'../KeyGenerator.ts';beforeEach(function(){_TESTING_ONLY_normalize_keys();});var performRouterTest=function performRouterTest(createTestRouter){var ListScreen=function ListScreen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:16}});};var ProfileNavigator=function ProfileNavigator(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:18}});};ProfileNavigator.router=StackRouter({list:{path:'list/:id',screen:ListScreen}});var MainNavigator=function MainNavigator(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:26}});};MainNavigator.router=StackRouter({profile:{path:'p/:id',screen:ProfileNavigator}});var LoginScreen=function LoginScreen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:34}});};var AuthNavigator=function AuthNavigator(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:36}});};AuthNavigator.router=StackRouter({login:{screen:LoginScreen}});var BarScreen=function BarScreen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:43}});};var FooNavigator=function(_React$Component){_inherits(FooNavigator,_React$Component);function FooNavigator(){_classCallCheck(this,FooNavigator);return _possibleConstructorReturn(this,_getPrototypeOf(FooNavigator).apply(this,arguments));}_createClass(FooNavigator,[{key:"render",value:function render(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:53}});}}]);return FooNavigator;}(React.Component);FooNavigator.router=StackRouter({bar:{path:'b/:barThing',screen:BarScreen}});var PersonScreen=function PersonScreen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:57}});};var testRouter=createTestRouter({main:{screen:MainNavigator},baz:{path:null,screen:FooNavigator},auth:{screen:AuthNavigator},person:{path:'people/:id',screen:PersonScreen},foo:{path:'fo/:fooThing',screen:FooNavigator}});it('Handles empty URIs with empty action',function(){var router=createTestRouter({Foo:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:84}});}},Bar:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:87}});}}},{initialRouteName:'Bar',initialRouteParams:{foo:42}});var action=router.getActionForPathAndParams('');expect(action).toEqual(null);var state=router.getStateForAction(action||NavigationActions.init());expect(state.routes[state.index]).toEqual(expect.objectContaining({routeName:'Bar',params:{foo:42}}));});it('Handles paths with several params',function(){var router=createTestRouter({Person:{path:'people/:person',screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:107}});}},Task:{path:'people/:person/tasks/:task',screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:111}});}},ThingA:{path:'things/:good',screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:115}});}},Thing:{path:'things/:good/:thing',screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:119}});}}});var action=router.getActionForPathAndParams('people/brent/tasks/everything');expect(action).toEqual({type:NavigationActions.NAVIGATE,routeName:'Task',params:{person:'brent',task:'everything'}});var action1=router.getActionForPathAndParams('people/lucy');expect(action1).toEqual({type:NavigationActions.NAVIGATE,routeName:'Person',params:{person:'lucy'}});var action2=router.getActionForPathAndParams('things/foo/bar');expect(action2).toEqual({type:NavigationActions.NAVIGATE,routeName:'Thing',params:{good:'foo',thing:'bar'}});var action3=router.getActionForPathAndParams('things/foo');expect(action3).toEqual({type:NavigationActions.NAVIGATE,routeName:'ThingA',params:{good:'foo'}});});it('Handles empty path configuration',function(){var router=createTestRouter({Foo:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:156}});}},Bar:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:159}});},path:''}});var action=router.getActionForPathAndParams('');expect(action).toEqual({type:NavigationActions.NAVIGATE,routeName:'Bar',params:{}});});it('Handles wildcard path configuration',function(){var router=createTestRouter({Foo:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:174}});}},Bar:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:177}});},path:':something'}});var action=router.getActionForPathAndParams('');expect(action).toEqual(null);var action1=router.getActionForPathAndParams('Foo');expect(action1).toEqual({type:NavigationActions.NAVIGATE,routeName:'Foo',params:{}});var action2=router.getActionForPathAndParams('asdf');expect(action2).toEqual({type:NavigationActions.NAVIGATE,routeName:'Bar',params:{something:'asdf'}});});it('Null path behavior',function(){var ScreenA=function ScreenA(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:199}});};var router=createTestRouter({Bar:{screen:ScreenA},Foo:{path:null,screen:ScreenA},Baz:{path:'',screen:ScreenA}});var action0=router.getActionForPathAndParams('test/random',{});expect(action0).toBe(null);var action1=router.getActionForPathAndParams('',{});expect(action1.routeName).toBe('Baz');var state1=router.getStateForAction(action1);expect(state1.routes[state1.index].routeName).toBe('Baz');});it('Multiple null path sub routers path behavior',function(){var ScreenA=function ScreenA(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:223}});};var ScreenB=function ScreenB(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:224}});};ScreenB.router=createTestRouter({Foo:ScreenA});var ScreenC=function ScreenC(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:228}});};ScreenC.router=createTestRouter({Bar:{path:'bar/:id',screen:ScreenA},Empty:{path:'',screen:ScreenA}});var router=createTestRouter({A:{screen:ScreenA},B:{path:null,screen:ScreenB},C:{path:null,screen:ScreenC}});var action0=router.getActionForPathAndParams('Foo',{});expect(action0.routeName).toBe('B');expect(action0.action.routeName).toBe('Foo');var action1=router.getActionForPathAndParams('',{});expect(action1.routeName).toBe('C');expect(action1.action.routeName).toBe('Empty');var action2=router.getActionForPathAndParams('A',{});expect(action2.routeName).toBe('A');var action3=router.getActionForPathAndParams('bar/asdf',{});expect(action3.routeName).toBe('C');expect(action3.action.routeName).toBe('Bar');expect(action3.action.params.id).toBe('asdf');});it('Null and empty string path sub routers behavior',function(){var ScreenA=function ScreenA(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:270}});};var ScreenB=function ScreenB(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:271}});};ScreenB.router=createTestRouter({Foo:ScreenA,Baz:{screen:ScreenA,path:''}});var ScreenC=function ScreenC(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:279}});};ScreenC.router=createTestRouter({Boo:ScreenA,Bar:ScreenA,Baz:{screen:ScreenA,path:''}});var router=createTestRouter({B:{path:null,screen:ScreenB},C:{path:'',screen:ScreenC}});var action0=router.getActionForPathAndParams('',{});expect(action0.routeName).toBe('C');expect(action0.action.routeName).toBe('Baz');var action1=router.getActionForPathAndParams('Foo',{});expect(action1.routeName).toBe('B');expect(action1.action.routeName).toBe('Foo');var action2=router.getActionForPathAndParams('Bar',{});expect(action2.routeName).toBe('C');expect(action2.action.routeName).toBe('Bar');var action3=router.getActionForPathAndParams('unknown',{});expect(action3).toBe(null);});it('Empty path acts as wildcard for nested router',function(){var ScreenA=function ScreenA(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:315}});};var Foo=function Foo(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:316}});};var ScreenC=function ScreenC(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:317}});};ScreenC.router=createTestRouter({Boo:ScreenA,Bar:ScreenA});Foo.router=createTestRouter({Quo:ScreenA,Qux:{screen:ScreenC,path:''}});var router=createTestRouter({Bar:{screen:ScreenA},Foo:Foo});var action0=router.getActionForPathAndParams('Foo/Bar',{});expect(action0.routeName).toBe('Foo');expect(action0.action.routeName).toBe('Qux');expect(action0.action.action.routeName).toBe('Bar');});it('Gets deep path with pure wildcard match',function(){var ScreenA=function ScreenA(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:342}});};var ScreenB=function ScreenB(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:343}});};var ScreenC=function ScreenC(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:344}});};ScreenA.router=createTestRouter({Boo:{path:'boo',screen:ScreenC},Baz:{path:'baz/:bazId',screen:ScreenB}});ScreenC.router=createTestRouter({Boo2:{path:'',screen:ScreenB}});var router=createTestRouter({Foo:{path:null,screen:ScreenA},Bar:{screen:ScreenB}});{var state={index:0,routes:[{index:1,key:'Foo',routeName:'Foo',params:{id:'123'},routes:[{index:0,key:'Boo',routeName:'Boo',routes:[{key:'Boo2',routeName:'Boo2'}]},{key:'Baz',routeName:'Baz',params:{bazId:'321'}}]},{key:'Bar',routeName:'Bar'}]};var _router$getPathAndPar=router.getPathAndParamsForState(state),path=_router$getPathAndPar.path,params=_router$getPathAndPar.params;expect(path).toEqual('baz/321');expect(params.id).toEqual('123');}{var _state={index:0,routes:[{index:0,key:'Foo',routeName:'Foo',params:{id:'123'},routes:[{index:0,key:'Boo',routeName:'Boo',routes:[{key:'Boo2',routeName:'Boo2'}]},{key:'Baz',routeName:'Baz',params:{bazId:'321'}}]},{key:'Bar',routeName:'Bar'}]};var _router$getPathAndPar2=router.getPathAndParamsForState(_state),_path=_router$getPathAndPar2.path,_params=_router$getPathAndPar2.params;expect(_path).toEqual('boo');expect(_params).toEqual({id:'123'});}});it('URI encoded string get passed to deep link',function(){var uri='people/2018%2F02%2F07';var action=testRouter.getActionForPathAndParams(uri);expect(action).toEqual({routeName:'person',params:{id:'2018/02/07'},type:NavigationActions.NAVIGATE});var malformedUri='people/%E0%A4%A';var action2=testRouter.getActionForPathAndParams(malformedUri);expect(action2).toEqual({routeName:'person',params:{id:'%E0%A4%A'},type:NavigationActions.NAVIGATE});});it('URI encoded path param gets parsed and correctly printed',function(){var action=testRouter.getActionForPathAndParams('people/Henry%20L');expect(action).toEqual({routeName:'person',params:{id:'Henry L'},type:NavigationActions.NAVIGATE});var s=testRouter.getStateForAction(action);var out=testRouter.getPathAndParamsForState(s);expect(out.path).toEqual('people/Henry%20L');expect(out.params).toEqual({});});it('Querystring params get passed to nested deep link',function(){var action=testRouter.getActionForPathAndParams('main/p/4/list/10259959195',{code:'test',foo:'bar'});expect(action).toEqual({type:NavigationActions.NAVIGATE,routeName:'main',params:{code:'test',foo:'bar'},action:{type:NavigationActions.NAVIGATE,routeName:'profile',params:{id:'4',code:'test',foo:'bar'},action:{type:NavigationActions.NAVIGATE,routeName:'list',params:{id:'10259959195',code:'test',foo:'bar'}}}});var action2=testRouter.getActionForPathAndParams('main/p/4/list/10259959195',{code:'',foo:'bar'});expect(action2).toEqual({type:NavigationActions.NAVIGATE,routeName:'main',params:{code:'',foo:'bar'},action:{type:NavigationActions.NAVIGATE,routeName:'profile',params:{id:'4',code:'',foo:'bar'},action:{type:NavigationActions.NAVIGATE,routeName:'list',params:{id:'10259959195',code:'',foo:'bar'}}}});});it('paths option on router overrides path from route config',function(){var router=createTestRouter({main:{screen:MainNavigator},baz:{path:null,screen:FooNavigator}},{paths:{baz:'overridden'}});var action=router.getActionForPathAndParams('overridden',{});expect(action.type).toEqual(NavigationActions.NAVIGATE);expect(action.routeName).toEqual('baz');});it('paths option set as null on router overrides path from route config',function(){var router=createTestRouter({main:{screen:MainNavigator},baz:{path:'bazPath',screen:FooNavigator}},{paths:{baz:null}});var action=router.getActionForPathAndParams('b/noBaz',{});expect(action.type).toEqual(NavigationActions.NAVIGATE);expect(action.routeName).toEqual('baz');});};describe('Path handling for stack router',function(){performRouterTest(StackRouter);});describe('Path handling for switch router',function(){performRouterTest(SwitchRouter);});it('Handles nested switch routers',function(){var AScreen=function AScreen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:567}});};var DocsNavigator=function DocsNavigator(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:568}});};DocsNavigator.router=SwitchRouter({A:AScreen,B:AScreen,C:AScreen});DocsNavigator.path='docs';var router=SwitchRouter({Docs:DocsNavigator,D:AScreen});var action=router.getActionForPathAndParams('docs/B',{});expect(action.type).toEqual(NavigationActions.NAVIGATE);expect(action.routeName).toEqual('Docs');expect(action.action.type).toEqual(NavigationActions.NAVIGATE);expect(action.action.routeName).toEqual('B');});var performRouteNameAsPathDisabledTest=function performRouteNameAsPathDisabledTest(createTestRouter){var BScreen=function BScreen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:588}});};var NestedNavigator=function NestedNavigator(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:589}});};NestedNavigator.router=createTestRouter({B:{screen:BScreen,path:'baz'}});var router=createTestRouter({A:NestedNavigator},{disableRouteNamePaths:true});it('disableRouteNamePaths option on router prevent the default path to be the routeName',function(){var action=router.getActionForPathAndParams('baz',{});expect(action.routeName).toBe('A');expect(action.action.routeName).toBe('B');});};describe('Stack router handles disableRouteNamePaths',function(){performRouteNameAsPathDisabledTest(StackRouter);});describe('Switch router handles disableRouteNamePaths',function(){performRouteNameAsPathDisabledTest(SwitchRouter);});describe('Tab router handles disableRouteNamePaths',function(){performRouteNameAsPathDisabledTest(TabRouter);});
+ //# sourceMappingURL=PathHandling-test.js.map
+\ No newline at end of file
+diff --git a/node_modules/@react-navigation/core/lib/module/routers/__tests__/PathHandling-test.js.map b/node_modules/@react-navigation/core/lib/module/routers/__tests__/PathHandling-test.js.map
+index dc5b3ec..f13a71f 100644
+--- a/node_modules/@react-navigation/core/lib/module/routers/__tests__/PathHandling-test.js.map
++++ b/node_modules/@react-navigation/core/lib/module/routers/__tests__/PathHandling-test.js.map
+@@ -1 +1 @@
+-{"version":3,"sources":["PathHandling-test.js"],"names":["React","SwitchRouter","StackRouter","TabRouter","NavigationActions","_TESTING_ONLY_normalize_keys","beforeEach","performRouterTest","createTestRouter","ListScreen","ProfileNavigator","router","list","path","screen","MainNavigator","profile","LoginScreen","AuthNavigator","login","BarScreen","FooNavigator","Component","bar","PersonScreen","testRouter","main","baz","auth","person","foo","it","Foo","Bar","initialRouteName","initialRouteParams","action","getActionForPathAndParams","expect","toEqual","state","getStateForAction","init","routes","index","objectContaining","routeName","params","Person","Task","ThingA","Thing","type","NAVIGATE","task","action1","action2","good","thing","action3","something","ScreenA","Baz","action0","toBe","state1","ScreenB","ScreenC","Empty","A","B","C","id","Boo","Quo","Qux","Boo2","key","bazId","getPathAndParamsForState","uri","malformedUri","s","out","code","paths","describe","AScreen","DocsNavigator","Docs","D","performRouteNameAsPathDisabledTest","BScreen","NestedNavigator","disableRouteNamePaths"],"mappings":"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","sourcesContent":["/* eslint no-shadow:0, react/no-multi-comp:0, react/display-name:0 */\n\nimport React from 'react';\n\nimport SwitchRouter from '../SwitchRouter';\nimport StackRouter from '../StackRouter';\nimport TabRouter from '../TabRouter';\nimport * as NavigationActions from '../../NavigationActions';\nimport { _TESTING_ONLY_normalize_keys } from '../KeyGenerator.ts';\n\nbeforeEach(() => {\n _TESTING_ONLY_normalize_keys();\n});\n\nconst performRouterTest = createTestRouter => {\n const ListScreen = () => ;\n\n const ProfileNavigator = () => ;\n ProfileNavigator.router = StackRouter({\n list: {\n path: 'list/:id',\n screen: ListScreen,\n },\n });\n\n const MainNavigator = () => ;\n MainNavigator.router = StackRouter({\n profile: {\n path: 'p/:id',\n screen: ProfileNavigator,\n },\n });\n\n const LoginScreen = () => ;\n\n const AuthNavigator = () => ;\n AuthNavigator.router = StackRouter({\n login: {\n screen: LoginScreen,\n },\n });\n\n const BarScreen = () => ;\n\n class FooNavigator extends React.Component {\n static router = StackRouter({\n bar: {\n path: 'b/:barThing',\n screen: BarScreen,\n },\n });\n render() {\n return ;\n }\n }\n\n const PersonScreen = () => ;\n\n const testRouter = createTestRouter({\n main: {\n screen: MainNavigator,\n },\n baz: {\n path: null,\n screen: FooNavigator,\n },\n auth: {\n screen: AuthNavigator,\n },\n person: {\n path: 'people/:id',\n screen: PersonScreen,\n },\n foo: {\n path: 'fo/:fooThing',\n screen: FooNavigator,\n },\n });\n\n it('Handles empty URIs with empty action', () => {\n const router = createTestRouter(\n {\n Foo: {\n screen: () => ,\n },\n Bar: {\n screen: () => ,\n },\n },\n { initialRouteName: 'Bar', initialRouteParams: { foo: 42 } }\n );\n const action = router.getActionForPathAndParams('');\n expect(action).toEqual(null);\n const state = router.getStateForAction(action || NavigationActions.init());\n expect(state.routes[state.index]).toEqual(\n expect.objectContaining({\n routeName: 'Bar',\n params: { foo: 42 },\n })\n );\n });\n\n it('Handles paths with several params', () => {\n const router = createTestRouter({\n Person: {\n path: 'people/:person',\n screen: () => ,\n },\n Task: {\n path: 'people/:person/tasks/:task',\n screen: () => ,\n },\n ThingA: {\n path: 'things/:good',\n screen: () => ,\n },\n Thing: {\n path: 'things/:good/:thing',\n screen: () => ,\n },\n });\n const action = router.getActionForPathAndParams(\n 'people/brent/tasks/everything'\n );\n expect(action).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'Task',\n params: { person: 'brent', task: 'everything' },\n });\n\n const action1 = router.getActionForPathAndParams('people/lucy');\n expect(action1).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'Person',\n params: { person: 'lucy' },\n });\n\n const action2 = router.getActionForPathAndParams('things/foo/bar');\n expect(action2).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'Thing',\n params: { good: 'foo', thing: 'bar' },\n });\n\n const action3 = router.getActionForPathAndParams('things/foo');\n expect(action3).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'ThingA',\n params: { good: 'foo' },\n });\n });\n\n it('Handles empty path configuration', () => {\n const router = createTestRouter({\n Foo: {\n screen: () => ,\n },\n Bar: {\n screen: () => ,\n path: '',\n },\n });\n const action = router.getActionForPathAndParams('');\n expect(action).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n params: {},\n });\n });\n\n it('Handles wildcard path configuration', () => {\n const router = createTestRouter({\n Foo: {\n screen: () => ,\n },\n Bar: {\n screen: () => ,\n path: ':something',\n },\n });\n const action = router.getActionForPathAndParams('');\n expect(action).toEqual(null);\n\n const action1 = router.getActionForPathAndParams('Foo');\n expect(action1).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'Foo',\n params: {},\n });\n const action2 = router.getActionForPathAndParams('asdf');\n expect(action2).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n params: { something: 'asdf' },\n });\n });\n\n it('Null path behavior', () => {\n const ScreenA = () => ;\n const router = createTestRouter({\n Bar: {\n screen: ScreenA,\n },\n Foo: {\n path: null,\n screen: ScreenA,\n },\n Baz: {\n path: '',\n screen: ScreenA,\n },\n });\n const action0 = router.getActionForPathAndParams('test/random', {});\n expect(action0).toBe(null);\n\n const action1 = router.getActionForPathAndParams('', {});\n expect(action1.routeName).toBe('Baz');\n const state1 = router.getStateForAction(action1);\n expect(state1.routes[state1.index].routeName).toBe('Baz');\n });\n\n it('Multiple null path sub routers path behavior', () => {\n const ScreenA = () => ;\n const ScreenB = () => ;\n ScreenB.router = createTestRouter({\n Foo: ScreenA,\n });\n const ScreenC = () => ;\n ScreenC.router = createTestRouter({\n Bar: {\n path: 'bar/:id',\n screen: ScreenA,\n },\n Empty: {\n path: '',\n screen: ScreenA,\n },\n });\n const router = createTestRouter({\n A: {\n screen: ScreenA,\n },\n B: {\n path: null,\n screen: ScreenB,\n },\n C: {\n path: null,\n screen: ScreenC,\n },\n });\n const action0 = router.getActionForPathAndParams('Foo', {});\n expect(action0.routeName).toBe('B');\n expect(action0.action.routeName).toBe('Foo');\n\n const action1 = router.getActionForPathAndParams('', {});\n expect(action1.routeName).toBe('C');\n expect(action1.action.routeName).toBe('Empty');\n\n const action2 = router.getActionForPathAndParams('A', {});\n expect(action2.routeName).toBe('A');\n\n const action3 = router.getActionForPathAndParams('bar/asdf', {});\n expect(action3.routeName).toBe('C');\n expect(action3.action.routeName).toBe('Bar');\n expect(action3.action.params.id).toBe('asdf');\n });\n\n it('Null and empty string path sub routers behavior', () => {\n const ScreenA = () => ;\n const ScreenB = () => ;\n ScreenB.router = createTestRouter({\n Foo: ScreenA,\n Baz: {\n screen: ScreenA,\n path: '',\n },\n });\n const ScreenC = () => ;\n ScreenC.router = createTestRouter({\n Boo: ScreenA,\n Bar: ScreenA,\n Baz: {\n screen: ScreenA,\n path: '',\n },\n });\n const router = createTestRouter({\n B: {\n path: null,\n screen: ScreenB,\n },\n C: {\n path: '',\n screen: ScreenC,\n },\n });\n const action0 = router.getActionForPathAndParams('', {});\n expect(action0.routeName).toBe('C');\n expect(action0.action.routeName).toBe('Baz');\n\n const action1 = router.getActionForPathAndParams('Foo', {});\n expect(action1.routeName).toBe('B');\n expect(action1.action.routeName).toBe('Foo');\n\n const action2 = router.getActionForPathAndParams('Bar', {});\n expect(action2.routeName).toBe('C');\n expect(action2.action.routeName).toBe('Bar');\n\n const action3 = router.getActionForPathAndParams('unknown', {});\n expect(action3).toBe(null);\n });\n\n it('Empty path acts as wildcard for nested router', () => {\n const ScreenA = () => ;\n const Foo = () => ;\n const ScreenC = () => ;\n ScreenC.router = createTestRouter({\n Boo: ScreenA,\n Bar: ScreenA,\n });\n Foo.router = createTestRouter({\n Quo: ScreenA,\n Qux: {\n screen: ScreenC,\n path: '',\n },\n });\n const router = createTestRouter({\n Bar: {\n screen: ScreenA,\n },\n Foo,\n });\n const action0 = router.getActionForPathAndParams('Foo/Bar', {});\n expect(action0.routeName).toBe('Foo');\n expect(action0.action.routeName).toBe('Qux');\n expect(action0.action.action.routeName).toBe('Bar');\n });\n\n it('Gets deep path with pure wildcard match', () => {\n const ScreenA = () => ;\n const ScreenB = () => ;\n const ScreenC = () => ;\n ScreenA.router = createTestRouter({\n Boo: { path: 'boo', screen: ScreenC },\n Baz: { path: 'baz/:bazId', screen: ScreenB },\n });\n ScreenC.router = createTestRouter({\n Boo2: { path: '', screen: ScreenB },\n });\n const router = createTestRouter({\n Foo: {\n path: null,\n screen: ScreenA,\n },\n Bar: {\n screen: ScreenB,\n },\n });\n\n {\n const state = {\n index: 0,\n routes: [\n {\n index: 1,\n key: 'Foo',\n routeName: 'Foo',\n params: {\n id: '123',\n },\n routes: [\n {\n index: 0,\n key: 'Boo',\n routeName: 'Boo',\n routes: [{ key: 'Boo2', routeName: 'Boo2' }],\n },\n { key: 'Baz', routeName: 'Baz', params: { bazId: '321' } },\n ],\n },\n { key: 'Bar', routeName: 'Bar' },\n ],\n };\n const { path, params } = router.getPathAndParamsForState(state);\n expect(path).toEqual('baz/321');\n expect(params.id).toEqual('123');\n }\n\n {\n const state = {\n index: 0,\n routes: [\n {\n index: 0,\n key: 'Foo',\n routeName: 'Foo',\n params: {\n id: '123',\n },\n routes: [\n {\n index: 0,\n key: 'Boo',\n routeName: 'Boo',\n routes: [{ key: 'Boo2', routeName: 'Boo2' }],\n },\n { key: 'Baz', routeName: 'Baz', params: { bazId: '321' } },\n ],\n },\n { key: 'Bar', routeName: 'Bar' },\n ],\n };\n const { path, params } = router.getPathAndParamsForState(state);\n expect(path).toEqual('boo');\n expect(params).toEqual({ id: '123' });\n }\n });\n\n it('URI encoded string get passed to deep link', () => {\n const uri = 'people/2018%2F02%2F07';\n const action = testRouter.getActionForPathAndParams(uri);\n expect(action).toEqual({\n routeName: 'person',\n params: {\n id: '2018/02/07',\n },\n type: NavigationActions.NAVIGATE,\n });\n\n const malformedUri = 'people/%E0%A4%A';\n const action2 = testRouter.getActionForPathAndParams(malformedUri);\n expect(action2).toEqual({\n routeName: 'person',\n params: {\n id: '%E0%A4%A',\n },\n type: NavigationActions.NAVIGATE,\n });\n });\n\n it('URI encoded path param gets parsed and correctly printed', () => {\n const action = testRouter.getActionForPathAndParams('people/Henry%20L');\n expect(action).toEqual({\n routeName: 'person',\n params: {\n id: 'Henry L',\n },\n type: NavigationActions.NAVIGATE,\n });\n const s = testRouter.getStateForAction(action);\n const out = testRouter.getPathAndParamsForState(s);\n expect(out.path).toEqual('people/Henry%20L');\n expect(out.params).toEqual({});\n });\n\n it('Querystring params get passed to nested deep link', () => {\n const action = testRouter.getActionForPathAndParams(\n 'main/p/4/list/10259959195',\n { code: 'test', foo: 'bar' }\n );\n expect(action).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'main',\n params: {\n code: 'test',\n foo: 'bar',\n },\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'profile',\n params: {\n id: '4',\n code: 'test',\n foo: 'bar',\n },\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'list',\n params: {\n id: '10259959195',\n code: 'test',\n foo: 'bar',\n },\n },\n },\n });\n\n const action2 = testRouter.getActionForPathAndParams(\n 'main/p/4/list/10259959195',\n { code: '', foo: 'bar' }\n );\n expect(action2).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'main',\n params: {\n code: '',\n foo: 'bar',\n },\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'profile',\n params: {\n id: '4',\n code: '',\n foo: 'bar',\n },\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'list',\n params: {\n id: '10259959195',\n code: '',\n foo: 'bar',\n },\n },\n },\n });\n });\n\n it('paths option on router overrides path from route config', () => {\n const router = createTestRouter(\n {\n main: {\n screen: MainNavigator,\n },\n baz: {\n path: null,\n screen: FooNavigator,\n },\n },\n { paths: { baz: 'overridden' } }\n );\n const action = router.getActionForPathAndParams('overridden', {});\n expect(action.type).toEqual(NavigationActions.NAVIGATE);\n expect(action.routeName).toEqual('baz');\n });\n\n it('paths option set as null on router overrides path from route config', () => {\n const router = createTestRouter(\n {\n main: {\n screen: MainNavigator,\n },\n baz: {\n path: 'bazPath',\n screen: FooNavigator,\n },\n },\n { paths: { baz: null } }\n );\n const action = router.getActionForPathAndParams('b/noBaz', {});\n expect(action.type).toEqual(NavigationActions.NAVIGATE);\n expect(action.routeName).toEqual('baz');\n });\n};\n\ndescribe('Path handling for stack router', () => {\n performRouterTest(StackRouter);\n});\ndescribe('Path handling for switch router', () => {\n performRouterTest(SwitchRouter);\n});\n\nit('Handles nested switch routers', () => {\n const AScreen = () => ;\n const DocsNavigator = () => ;\n DocsNavigator.router = SwitchRouter({\n A: AScreen,\n B: AScreen,\n C: AScreen,\n });\n DocsNavigator.path = 'docs';\n const router = SwitchRouter({\n Docs: DocsNavigator,\n D: AScreen,\n });\n const action = router.getActionForPathAndParams('docs/B', {});\n\n expect(action.type).toEqual(NavigationActions.NAVIGATE);\n expect(action.routeName).toEqual('Docs');\n expect(action.action.type).toEqual(NavigationActions.NAVIGATE);\n expect(action.action.routeName).toEqual('B');\n});\n\nconst performRouteNameAsPathDisabledTest = createTestRouter => {\n const BScreen = () => ;\n const NestedNavigator = () => ;\n NestedNavigator.router = createTestRouter({\n B: {\n screen: BScreen,\n path: 'baz',\n },\n });\n const router = createTestRouter(\n {\n A: NestedNavigator,\n },\n { disableRouteNamePaths: true }\n );\n\n it('disableRouteNamePaths option on router prevent the default path to be the routeName', () => {\n const action = router.getActionForPathAndParams('baz', {});\n\n expect(action.routeName).toBe('A');\n expect(action.action.routeName).toBe('B');\n });\n};\n\ndescribe('Stack router handles disableRouteNamePaths', () => {\n performRouteNameAsPathDisabledTest(StackRouter);\n});\n\ndescribe('Switch router handles disableRouteNamePaths', () => {\n performRouteNameAsPathDisabledTest(SwitchRouter);\n});\n\ndescribe('Tab router handles disableRouteNamePaths', () => {\n performRouteNameAsPathDisabledTest(TabRouter);\n});\n"]}
+\ No newline at end of file
++{"version":3,"sources":["PathHandling-test.js"],"names":["React","SwitchRouter","StackRouter","TabRouter","NavigationActions","_TESTING_ONLY_normalize_keys","beforeEach","performRouterTest","createTestRouter","ListScreen","ProfileNavigator","router","list","path","screen","MainNavigator","profile","LoginScreen","AuthNavigator","login","BarScreen","FooNavigator","Component","bar","PersonScreen","testRouter","main","baz","auth","person","foo","it","Foo","Bar","initialRouteName","initialRouteParams","action","getActionForPathAndParams","expect","toEqual","state","getStateForAction","init","routes","index","objectContaining","routeName","params","Person","Task","ThingA","Thing","type","NAVIGATE","task","action1","action2","good","thing","action3","something","ScreenA","Baz","action0","toBe","state1","ScreenB","ScreenC","Empty","A","B","C","id","Boo","Quo","Qux","Boo2","key","bazId","getPathAndParamsForState","uri","malformedUri","s","out","code","paths","describe","AScreen","DocsNavigator","Docs","D","performRouteNameAsPathDisabledTest","BScreen","NestedNavigator","disableRouteNamePaths"],"mappings":"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","sourcesContent":["/* eslint no-shadow:0, react/no-multi-comp:0, react/display-name:0 */\n\nimport React from 'react';\n\nimport SwitchRouter from '../SwitchRouter';\nimport StackRouter from '../StackRouter';\nimport TabRouter from '../TabRouter';\nimport * as NavigationActions from '../../NavigationActions';\nimport { _TESTING_ONLY_normalize_keys } from '../KeyGenerator.ts';\n\nbeforeEach(() => {\n _TESTING_ONLY_normalize_keys();\n});\n\nconst performRouterTest = createTestRouter => {\n const ListScreen = () => ;\n\n const ProfileNavigator = () => ;\n ProfileNavigator.router = StackRouter({\n list: {\n path: 'list/:id',\n screen: ListScreen,\n },\n });\n\n const MainNavigator = () => ;\n MainNavigator.router = StackRouter({\n profile: {\n path: 'p/:id',\n screen: ProfileNavigator,\n },\n });\n\n const LoginScreen = () => ;\n\n const AuthNavigator = () => ;\n AuthNavigator.router = StackRouter({\n login: {\n screen: LoginScreen,\n },\n });\n\n const BarScreen = () => ;\n\n class FooNavigator extends React.Component {\n static router = StackRouter({\n bar: {\n path: 'b/:barThing',\n screen: BarScreen,\n },\n });\n render() {\n return ;\n }\n }\n\n const PersonScreen = () => ;\n\n const testRouter = createTestRouter({\n main: {\n screen: MainNavigator,\n },\n baz: {\n path: null,\n screen: FooNavigator,\n },\n auth: {\n screen: AuthNavigator,\n },\n person: {\n path: 'people/:id',\n screen: PersonScreen,\n },\n foo: {\n path: 'fo/:fooThing',\n screen: FooNavigator,\n },\n });\n\n it('Handles empty URIs with empty action', () => {\n const router = createTestRouter(\n {\n Foo: {\n screen: () => ,\n },\n Bar: {\n screen: () => ,\n },\n },\n { initialRouteName: 'Bar', initialRouteParams: { foo: 42 } }\n );\n const action = router.getActionForPathAndParams('');\n expect(action).toEqual(null);\n const state = router.getStateForAction(action || NavigationActions.init());\n expect(state.routes[state.index]).toEqual(\n expect.objectContaining({\n routeName: 'Bar',\n params: { foo: 42 },\n })\n );\n });\n\n it('Handles paths with several params', () => {\n const router = createTestRouter({\n Person: {\n path: 'people/:person',\n screen: () => ,\n },\n Task: {\n path: 'people/:person/tasks/:task',\n screen: () => ,\n },\n ThingA: {\n path: 'things/:good',\n screen: () => ,\n },\n Thing: {\n path: 'things/:good/:thing',\n screen: () => ,\n },\n });\n const action = router.getActionForPathAndParams(\n 'people/brent/tasks/everything'\n );\n expect(action).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'Task',\n params: { person: 'brent', task: 'everything' },\n });\n\n const action1 = router.getActionForPathAndParams('people/lucy');\n expect(action1).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'Person',\n params: { person: 'lucy' },\n });\n\n const action2 = router.getActionForPathAndParams('things/foo/bar');\n expect(action2).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'Thing',\n params: { good: 'foo', thing: 'bar' },\n });\n\n const action3 = router.getActionForPathAndParams('things/foo');\n expect(action3).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'ThingA',\n params: { good: 'foo' },\n });\n });\n\n it('Handles empty path configuration', () => {\n const router = createTestRouter({\n Foo: {\n screen: () => ,\n },\n Bar: {\n screen: () => ,\n path: '',\n },\n });\n const action = router.getActionForPathAndParams('');\n expect(action).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n params: {},\n });\n });\n\n it('Handles wildcard path configuration', () => {\n const router = createTestRouter({\n Foo: {\n screen: () => ,\n },\n Bar: {\n screen: () => ,\n path: ':something',\n },\n });\n const action = router.getActionForPathAndParams('');\n expect(action).toEqual(null);\n\n const action1 = router.getActionForPathAndParams('Foo');\n expect(action1).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'Foo',\n params: {},\n });\n const action2 = router.getActionForPathAndParams('asdf');\n expect(action2).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n params: { something: 'asdf' },\n });\n });\n\n it('Null path behavior', () => {\n const ScreenA = () => ;\n const router = createTestRouter({\n Bar: {\n screen: ScreenA,\n },\n Foo: {\n path: null,\n screen: ScreenA,\n },\n Baz: {\n path: '',\n screen: ScreenA,\n },\n });\n const action0 = router.getActionForPathAndParams('test/random', {});\n expect(action0).toBe(null);\n\n const action1 = router.getActionForPathAndParams('', {});\n expect(action1.routeName).toBe('Baz');\n const state1 = router.getStateForAction(action1);\n expect(state1.routes[state1.index].routeName).toBe('Baz');\n });\n\n it('Multiple null path sub routers path behavior', () => {\n const ScreenA = () => ;\n const ScreenB = () => ;\n ScreenB.router = createTestRouter({\n Foo: ScreenA,\n });\n const ScreenC = () => ;\n ScreenC.router = createTestRouter({\n Bar: {\n path: 'bar/:id',\n screen: ScreenA,\n },\n Empty: {\n path: '',\n screen: ScreenA,\n },\n });\n const router = createTestRouter({\n A: {\n screen: ScreenA,\n },\n B: {\n path: null,\n screen: ScreenB,\n },\n C: {\n path: null,\n screen: ScreenC,\n },\n });\n const action0 = router.getActionForPathAndParams('Foo', {});\n expect(action0.routeName).toBe('B');\n expect(action0.action.routeName).toBe('Foo');\n\n const action1 = router.getActionForPathAndParams('', {});\n expect(action1.routeName).toBe('C');\n expect(action1.action.routeName).toBe('Empty');\n\n const action2 = router.getActionForPathAndParams('A', {});\n expect(action2.routeName).toBe('A');\n\n const action3 = router.getActionForPathAndParams('bar/asdf', {});\n expect(action3.routeName).toBe('C');\n expect(action3.action.routeName).toBe('Bar');\n expect(action3.action.params.id).toBe('asdf');\n });\n\n it('Null and empty string path sub routers behavior', () => {\n const ScreenA = () => ;\n const ScreenB = () => ;\n ScreenB.router = createTestRouter({\n Foo: ScreenA,\n Baz: {\n screen: ScreenA,\n path: '',\n },\n });\n const ScreenC = () => ;\n ScreenC.router = createTestRouter({\n Boo: ScreenA,\n Bar: ScreenA,\n Baz: {\n screen: ScreenA,\n path: '',\n },\n });\n const router = createTestRouter({\n B: {\n path: null,\n screen: ScreenB,\n },\n C: {\n path: '',\n screen: ScreenC,\n },\n });\n const action0 = router.getActionForPathAndParams('', {});\n expect(action0.routeName).toBe('C');\n expect(action0.action.routeName).toBe('Baz');\n\n const action1 = router.getActionForPathAndParams('Foo', {});\n expect(action1.routeName).toBe('B');\n expect(action1.action.routeName).toBe('Foo');\n\n const action2 = router.getActionForPathAndParams('Bar', {});\n expect(action2.routeName).toBe('C');\n expect(action2.action.routeName).toBe('Bar');\n\n const action3 = router.getActionForPathAndParams('unknown', {});\n expect(action3).toBe(null);\n });\n\n it('Empty path acts as wildcard for nested router', () => {\n const ScreenA = () => ;\n const Foo = () => ;\n const ScreenC = () => ;\n ScreenC.router = createTestRouter({\n Boo: ScreenA,\n Bar: ScreenA,\n });\n Foo.router = createTestRouter({\n Quo: ScreenA,\n Qux: {\n screen: ScreenC,\n path: '',\n },\n });\n const router = createTestRouter({\n Bar: {\n screen: ScreenA,\n },\n Foo,\n });\n const action0 = router.getActionForPathAndParams('Foo/Bar', {});\n expect(action0.routeName).toBe('Foo');\n expect(action0.action.routeName).toBe('Qux');\n expect(action0.action.action.routeName).toBe('Bar');\n });\n\n it('Gets deep path with pure wildcard match', () => {\n const ScreenA = () => ;\n const ScreenB = () => ;\n const ScreenC = () => ;\n ScreenA.router = createTestRouter({\n Boo: { path: 'boo', screen: ScreenC },\n Baz: { path: 'baz/:bazId', screen: ScreenB },\n });\n ScreenC.router = createTestRouter({\n Boo2: { path: '', screen: ScreenB },\n });\n const router = createTestRouter({\n Foo: {\n path: null,\n screen: ScreenA,\n },\n Bar: {\n screen: ScreenB,\n },\n });\n\n {\n const state = {\n index: 0,\n routes: [\n {\n index: 1,\n key: 'Foo',\n routeName: 'Foo',\n params: {\n id: '123',\n },\n routes: [\n {\n index: 0,\n key: 'Boo',\n routeName: 'Boo',\n routes: [{ key: 'Boo2', routeName: 'Boo2' }],\n },\n { key: 'Baz', routeName: 'Baz', params: { bazId: '321' } },\n ],\n },\n { key: 'Bar', routeName: 'Bar' },\n ],\n };\n const { path, params } = router.getPathAndParamsForState(state);\n expect(path).toEqual('baz/321');\n expect(params.id).toEqual('123');\n }\n\n {\n const state = {\n index: 0,\n routes: [\n {\n index: 0,\n key: 'Foo',\n routeName: 'Foo',\n params: {\n id: '123',\n },\n routes: [\n {\n index: 0,\n key: 'Boo',\n routeName: 'Boo',\n routes: [{ key: 'Boo2', routeName: 'Boo2' }],\n },\n { key: 'Baz', routeName: 'Baz', params: { bazId: '321' } },\n ],\n },\n { key: 'Bar', routeName: 'Bar' },\n ],\n };\n const { path, params } = router.getPathAndParamsForState(state);\n expect(path).toEqual('boo');\n expect(params).toEqual({ id: '123' });\n }\n });\n\n it('URI encoded string get passed to deep link', () => {\n const uri = 'people/2018%2F02%2F07';\n const action = testRouter.getActionForPathAndParams(uri);\n expect(action).toEqual({\n routeName: 'person',\n params: {\n id: '2018/02/07',\n },\n type: NavigationActions.NAVIGATE,\n });\n\n const malformedUri = 'people/%E0%A4%A';\n const action2 = testRouter.getActionForPathAndParams(malformedUri);\n expect(action2).toEqual({\n routeName: 'person',\n params: {\n id: '%E0%A4%A',\n },\n type: NavigationActions.NAVIGATE,\n });\n });\n\n it('URI encoded path param gets parsed and correctly printed', () => {\n const action = testRouter.getActionForPathAndParams('people/Henry%20L');\n expect(action).toEqual({\n routeName: 'person',\n params: {\n id: 'Henry L',\n },\n type: NavigationActions.NAVIGATE,\n });\n const s = testRouter.getStateForAction(action);\n const out = testRouter.getPathAndParamsForState(s);\n expect(out.path).toEqual('people/Henry%20L');\n expect(out.params).toEqual({});\n });\n\n it('Querystring params get passed to nested deep link', () => {\n const action = testRouter.getActionForPathAndParams(\n 'main/p/4/list/10259959195',\n { code: 'test', foo: 'bar' }\n );\n expect(action).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'main',\n params: {\n code: 'test',\n foo: 'bar',\n },\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'profile',\n params: {\n id: '4',\n code: 'test',\n foo: 'bar',\n },\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'list',\n params: {\n id: '10259959195',\n code: 'test',\n foo: 'bar',\n },\n },\n },\n });\n\n const action2 = testRouter.getActionForPathAndParams(\n 'main/p/4/list/10259959195',\n { code: '', foo: 'bar' }\n );\n expect(action2).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'main',\n params: {\n code: '',\n foo: 'bar',\n },\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'profile',\n params: {\n id: '4',\n code: '',\n foo: 'bar',\n },\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'list',\n params: {\n id: '10259959195',\n code: '',\n foo: 'bar',\n },\n },\n },\n });\n });\n\n it('paths option on router overrides path from route config', () => {\n const router = createTestRouter(\n {\n main: {\n screen: MainNavigator,\n },\n baz: {\n path: null,\n screen: FooNavigator,\n },\n },\n { paths: { baz: 'overridden' } }\n );\n const action = router.getActionForPathAndParams('overridden', {});\n expect(action.type).toEqual(NavigationActions.NAVIGATE);\n expect(action.routeName).toEqual('baz');\n });\n\n it('paths option set as null on router overrides path from route config', () => {\n const router = createTestRouter(\n {\n main: {\n screen: MainNavigator,\n },\n baz: {\n path: 'bazPath',\n screen: FooNavigator,\n },\n },\n { paths: { baz: null } }\n );\n const action = router.getActionForPathAndParams('b/noBaz', {});\n expect(action.type).toEqual(NavigationActions.NAVIGATE);\n expect(action.routeName).toEqual('baz');\n });\n};\n\ndescribe('Path handling for stack router', () => {\n performRouterTest(StackRouter);\n});\ndescribe('Path handling for switch router', () => {\n performRouterTest(SwitchRouter);\n});\n\nit('Handles nested switch routers', () => {\n const AScreen = () => ;\n const DocsNavigator = () => ;\n DocsNavigator.router = SwitchRouter({\n A: AScreen,\n B: AScreen,\n C: AScreen,\n });\n DocsNavigator.path = 'docs';\n const router = SwitchRouter({\n Docs: DocsNavigator,\n D: AScreen,\n });\n const action = router.getActionForPathAndParams('docs/B', {});\n\n expect(action.type).toEqual(NavigationActions.NAVIGATE);\n expect(action.routeName).toEqual('Docs');\n expect(action.action.type).toEqual(NavigationActions.NAVIGATE);\n expect(action.action.routeName).toEqual('B');\n});\n\nconst performRouteNameAsPathDisabledTest = createTestRouter => {\n const BScreen = () => ;\n const NestedNavigator = () => ;\n NestedNavigator.router = createTestRouter({\n B: {\n screen: BScreen,\n path: 'baz',\n },\n });\n const router = createTestRouter(\n {\n A: NestedNavigator,\n },\n { disableRouteNamePaths: true }\n );\n\n it('disableRouteNamePaths option on router prevent the default path to be the routeName', () => {\n const action = router.getActionForPathAndParams('baz', {});\n\n expect(action.routeName).toBe('A');\n expect(action.action.routeName).toBe('B');\n });\n};\n\ndescribe('Stack router handles disableRouteNamePaths', () => {\n performRouteNameAsPathDisabledTest(StackRouter);\n});\n\ndescribe('Switch router handles disableRouteNamePaths', () => {\n performRouteNameAsPathDisabledTest(SwitchRouter);\n});\n\ndescribe('Tab router handles disableRouteNamePaths', () => {\n performRouteNameAsPathDisabledTest(TabRouter);\n});\n"]}
+\ No newline at end of file
+diff --git a/node_modules/@react-navigation/core/lib/module/routers/__tests__/Routers-test.js b/node_modules/@react-navigation/core/lib/module/routers/__tests__/Routers-test.js
+index 84fee97..86e2bce 100644
+--- a/node_modules/@react-navigation/core/lib/module/routers/__tests__/Routers-test.js
++++ b/node_modules/@react-navigation/core/lib/module/routers/__tests__/Routers-test.js
+@@ -1,2 +1,2 @@
+-import _objectSpread from"@babel/runtime/helpers/objectSpread";import _classCallCheck from"@babel/runtime/helpers/classCallCheck";import _createClass from"@babel/runtime/helpers/createClass";import _possibleConstructorReturn from"@babel/runtime/helpers/possibleConstructorReturn";import _getPrototypeOf from"@babel/runtime/helpers/getPrototypeOf";import _inherits from"@babel/runtime/helpers/inherits";var _jsxFileName="/Users/satya/Workspace/Callstack/react-navigation-core/src/routers/__tests__/Routers-test.js";import React from'react';import StackRouter from'../StackRouter';import TabRouter from'../TabRouter';import SwitchRouter from'../SwitchRouter';import*as NavigationActions from'../../NavigationActions';import*as StackActions from'../StackActions';import{_TESTING_ONLY_normalize_keys}from'../KeyGenerator.ts';beforeEach(function(){_TESTING_ONLY_normalize_keys();});var ROUTERS={TabRouter:TabRouter,StackRouter:StackRouter,SwitchRouter:SwitchRouter};var dummyEventSubscriber=function dummyEventSubscriber(){return{remove:function remove(){}};};Object.keys(ROUTERS).forEach(function(routerName){var Router=ROUTERS[routerName];describe("General router features - "+routerName,function(){it("title is configurable using navigationOptions and getScreenOptions - "+routerName,function(){var FooView=function(_React$Component){_inherits(FooView,_React$Component);function FooView(){_classCallCheck(this,FooView);return _possibleConstructorReturn(this,_getPrototypeOf(FooView).apply(this,arguments));}_createClass(FooView,[{key:"render",value:function render(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:34}});}}]);return FooView;}(React.Component);var BarView=function(_React$Component2){_inherits(BarView,_React$Component2);function BarView(){_classCallCheck(this,BarView);return _possibleConstructorReturn(this,_getPrototypeOf(BarView).apply(this,arguments));}_createClass(BarView,[{key:"render",value:function render(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:39}});}}]);return BarView;}(React.Component);BarView.navigationOptions={title:'BarTitle'};var BazView=function(_React$Component3){_inherits(BazView,_React$Component3);function BazView(){_classCallCheck(this,BazView);return _possibleConstructorReturn(this,_getPrototypeOf(BazView).apply(this,arguments));}_createClass(BazView,[{key:"render",value:function render(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:45}});}}]);return BazView;}(React.Component);BazView.navigationOptions=function(_ref){var navigation=_ref.navigation;return{title:"Baz-"+navigation.state.params.id};};var router=Router({Foo:{screen:FooView},Bar:{screen:BarView},Baz:{screen:BazView}});var routes=[{key:'A',routeName:'Foo'},{key:'B',routeName:'Bar'},{key:'A',routeName:'Baz',params:{id:'123'}}];expect(router.getScreenOptions({state:routes[0],dispatch:function dispatch(){return false;},addListener:dummyEventSubscriber},{}).title).toEqual(undefined);expect(router.getScreenOptions({state:routes[1],dispatch:function dispatch(){return false;},addListener:dummyEventSubscriber},{}).title).toEqual('BarTitle');expect(router.getScreenOptions({state:routes[2],dispatch:function dispatch(){return false;},addListener:dummyEventSubscriber},{}).title).toEqual('Baz-123');});it("set params works in "+routerName,function(){var FooView=function(_React$Component4){_inherits(FooView,_React$Component4);function FooView(){_classCallCheck(this,FooView);return _possibleConstructorReturn(this,_getPrototypeOf(FooView).apply(this,arguments));}_createClass(FooView,[{key:"render",value:function render(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:96}});}}]);return FooView;}(React.Component);var router=Router({Foo:{screen:FooView},Bar:{screen:FooView}});var initState=router.getStateForAction(NavigationActions.init());var initRoute=initState.routes[initState.index];expect(initRoute.params).toEqual(undefined);var state0=router.getStateForAction(NavigationActions.setParams({params:{foo:42},key:initRoute.key}),initState);expect(state0.routes[state0.index].params.foo).toEqual(42);});});});it('Nested navigate behavior test',function(){var Leaf=function Leaf(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:121}});};var First=function First(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:123}});};First.router=StackRouter({First1:Leaf,First2:Leaf});var Second=function Second(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:129}});};Second.router=StackRouter({Second1:Leaf,Second2:Leaf});var Main=function Main(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:135}});};Main.router=StackRouter({First:First,Second:Second});var TestRouter=SwitchRouter({Login:Leaf,Main:Main});var state1=TestRouter.getStateForAction({type:NavigationActions.INIT});var state2=TestRouter.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'First'},state1);expect(state2.index).toEqual(1);expect(state2.routes[1].index).toEqual(0);expect(state2.routes[1].routes[0].index).toEqual(0);var state3=TestRouter.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Second2'},state2);expect(state3.index).toEqual(1);expect(state3.routes[1].index).toEqual(1);expect(state3.routes[1].routes[1].index).toEqual(1);var state4=TestRouter.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'First',action:{type:NavigationActions.NAVIGATE,routeName:'First2'}},state3,true);expect(state4.index).toEqual(1);expect(state4.routes[1].index).toEqual(0);expect(state4.routes[1].routes[0].index).toEqual(1);var state5=TestRouter.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'First',action:{type:NavigationActions.NAVIGATE,routeName:'First1'}},state3);expect(state5.index).toEqual(1);expect(state5.routes[1].index).toEqual(0);expect(state5.routes[1].routes[0].index).toEqual(0);});it('Handles no-op actions with tabs within stack router',function(){var BarView=function BarView(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:190}});};var FooTabNavigator=function FooTabNavigator(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:191}});};FooTabNavigator.router=TabRouter({Zap:{screen:BarView},Zoo:{screen:BarView}});var TestRouter=StackRouter({Foo:{screen:FooTabNavigator},Bar:{screen:BarView}});var state1=TestRouter.getStateForAction({type:NavigationActions.INIT});var state2=TestRouter.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Qux'});expect(state1.routes[0].key).toEqual('id-0');expect(state2.routes[0].key).toEqual('id-1');state1.routes[0].key=state2.routes[0].key;expect(state1).toEqual(state2);var state3=TestRouter.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Zap'},state2);expect(state2).toEqual(state3);});it('Handles deep action',function(){var BarView=function BarView(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:221}});};var FooTabNavigator=function FooTabNavigator(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:222}});};FooTabNavigator.router=TabRouter({Zap:{screen:BarView},Zoo:{screen:BarView}});var TestRouter=StackRouter({Bar:{screen:BarView},Foo:{screen:FooTabNavigator}});var state1=TestRouter.getStateForAction({type:NavigationActions.INIT});var expectedState={index:0,isTransitioning:false,key:'StackRouterRoot',routes:[{key:'id-0',routeName:'Bar'}]};expect(state1).toEqual(expectedState);var state2=TestRouter.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Foo',immediate:true,action:{type:NavigationActions.NAVIGATE,routeName:'Zoo'}},state1);expect(state2&&state2.index).toEqual(1);expect(state2&&state2.routes[1].index).toEqual(1);});it('Handles the navigate action with params',function(){var FooTabNavigator=function FooTabNavigator(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:258}});};FooTabNavigator.router=TabRouter({Baz:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:260}});}},Boo:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:261}});}}});var TestRouter=StackRouter({Foo:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:265}});}},Bar:{screen:FooTabNavigator}});var state=TestRouter.getStateForAction({type:NavigationActions.INIT});var state2=TestRouter.getStateForAction({type:NavigationActions.NAVIGATE,immediate:true,routeName:'Bar',params:{foo:'42'}},state);expect(state2&&state2.routes[1].params).toEqual({foo:'42'});expect(state2&&state2.routes[1].routes).toEqual([{key:'Baz',routeName:'Baz',params:{foo:'42'}},{key:'Boo',routeName:'Boo',params:{foo:'42'}}]);});it('Handles the setParams action',function(){var FooTabNavigator=function FooTabNavigator(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:294}});};FooTabNavigator.router=TabRouter({Baz:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:296}});}}});var TestRouter=StackRouter({Foo:{screen:FooTabNavigator},Bar:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:300}});}}});var state=TestRouter.getStateForAction({type:NavigationActions.INIT});var state2=TestRouter.getStateForAction({type:NavigationActions.SET_PARAMS,params:{name:'foobar'},key:'Baz'},state);expect(state2&&state2.index).toEqual(0);expect(state2&&state2.routes[0].routes).toEqual([{key:'Baz',routeName:'Baz',params:{name:'foobar'}}]);});it('Supports lazily-evaluated getScreen',function(){var BarView=function BarView(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:322}});};var FooTabNavigator=function FooTabNavigator(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:323}});};FooTabNavigator.router=TabRouter({Zap:{screen:BarView},Zoo:{screen:BarView}});var TestRouter=StackRouter({Foo:{screen:FooTabNavigator},Bar:{getScreen:function getScreen(){return BarView;}}});var state1=TestRouter.getStateForAction({type:NavigationActions.INIT});var state2=TestRouter.getStateForAction({type:NavigationActions.NAVIGATE,immediate:true,routeName:'Qux'});expect(state1.routes[0].key).toEqual('id-0');expect(state2.routes[0].key).toEqual('id-1');state1.routes[0].key=state2.routes[0].key;expect(state1).toEqual(state2);var state3=TestRouter.getStateForAction({type:NavigationActions.NAVIGATE,immediate:true,routeName:'Zap'},state2);expect(state2).toEqual(state3);});it('Does not switch tab index when TabRouter child handles COMPLETE_NAVIGATION or SET_PARAMS',function(){var FooStackNavigator=function FooStackNavigator(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:358}});};var BarView=function BarView(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:359}});};FooStackNavigator.router=StackRouter({Foo:{screen:BarView},Bar:{screen:BarView}});var TestRouter=TabRouter({Zap:{screen:FooStackNavigator},Zoo:{screen:FooStackNavigator}});var state1=TestRouter.getStateForAction({type:NavigationActions.INIT});var state2=TestRouter.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar'},state1);var state3=TestRouter.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Zoo'},state2);var stateAfterCompleteTransition=TestRouter.getStateForAction({type:StackActions.COMPLETE_TRANSITION,preserveFocus:true,key:state2.routes[0].key},state3);var stateAfterSetParams=TestRouter.getStateForAction({type:NavigationActions.SET_PARAMS,preserveFocus:true,key:state1.routes[0].routes[0].key,params:{key:'value'}},state3);expect(stateAfterCompleteTransition.index).toEqual(1);expect(stateAfterSetParams.index).toEqual(1);});it('Inner actions are only unpacked if the current tab matches',function(){var PlainScreen=function PlainScreen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:417}});};var ScreenA=function ScreenA(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:418}});};var ScreenB=function ScreenB(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:419}});};ScreenB.router=StackRouter({Baz:{screen:PlainScreen},Zoo:{screen:PlainScreen}});ScreenA.router=StackRouter({Bar:{screen:PlainScreen},Boo:{screen:ScreenB}});var TestRouter=TabRouter({Foo:{screen:ScreenA}});var screenApreState={index:0,key:'Init',isTransitioning:false,routeName:'Foo',routes:[{key:'Init',routeName:'Bar'}]};var preState={index:0,isTransitioning:false,routes:[screenApreState]};var comparable=function comparable(state){var result={};if(typeof state.routeName==='string'){result=_objectSpread({},result,{routeName:state.routeName});}if(state.routes instanceof Array){result=_objectSpread({},result,{routes:state.routes.map(comparable)});}return result;};var action=NavigationActions.navigate({routeName:'Boo',action:NavigationActions.navigate({routeName:'Zoo'})});var expectedState=ScreenA.router.getStateForAction(action,screenApreState);var state=TestRouter.getStateForAction(action,preState);var innerState=state?state.routes[0]:state;expect(expectedState&&comparable(expectedState)).toEqual(innerState&&comparable(innerState));});
++import _objectSpread from"@babel/runtime/helpers/objectSpread";import _classCallCheck from"@babel/runtime/helpers/classCallCheck";import _createClass from"@babel/runtime/helpers/createClass";import _possibleConstructorReturn from"@babel/runtime/helpers/possibleConstructorReturn";import _getPrototypeOf from"@babel/runtime/helpers/getPrototypeOf";import _inherits from"@babel/runtime/helpers/inherits";var _jsxFileName="/Users/brentvatne/coding/react-navigation-core/src/routers/__tests__/Routers-test.js";import React from'react';import StackRouter from'../StackRouter';import TabRouter from'../TabRouter';import SwitchRouter from'../SwitchRouter';import*as NavigationActions from'../../NavigationActions';import*as StackActions from'../StackActions';import{_TESTING_ONLY_normalize_keys}from'../KeyGenerator.ts';beforeEach(function(){_TESTING_ONLY_normalize_keys();});var ROUTERS={TabRouter:TabRouter,StackRouter:StackRouter,SwitchRouter:SwitchRouter};var dummyEventSubscriber=function dummyEventSubscriber(){return{remove:function remove(){}};};Object.keys(ROUTERS).forEach(function(routerName){var Router=ROUTERS[routerName];describe("General router features - "+routerName,function(){it("title is configurable using navigationOptions and getScreenOptions - "+routerName,function(){var FooView=function(_React$Component){_inherits(FooView,_React$Component);function FooView(){_classCallCheck(this,FooView);return _possibleConstructorReturn(this,_getPrototypeOf(FooView).apply(this,arguments));}_createClass(FooView,[{key:"render",value:function render(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:34}});}}]);return FooView;}(React.Component);var BarView=function(_React$Component2){_inherits(BarView,_React$Component2);function BarView(){_classCallCheck(this,BarView);return _possibleConstructorReturn(this,_getPrototypeOf(BarView).apply(this,arguments));}_createClass(BarView,[{key:"render",value:function render(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:39}});}}]);return BarView;}(React.Component);BarView.navigationOptions={title:'BarTitle'};var BazView=function(_React$Component3){_inherits(BazView,_React$Component3);function BazView(){_classCallCheck(this,BazView);return _possibleConstructorReturn(this,_getPrototypeOf(BazView).apply(this,arguments));}_createClass(BazView,[{key:"render",value:function render(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:45}});}}]);return BazView;}(React.Component);BazView.navigationOptions=function(_ref){var navigation=_ref.navigation;return{title:"Baz-"+navigation.state.params.id};};var router=Router({Foo:{screen:FooView},Bar:{screen:BarView},Baz:{screen:BazView}});var routes=[{key:'A',routeName:'Foo'},{key:'B',routeName:'Bar'},{key:'A',routeName:'Baz',params:{id:'123'}}];expect(router.getScreenOptions({state:routes[0],dispatch:function dispatch(){return false;},addListener:dummyEventSubscriber},{}).title).toEqual(undefined);expect(router.getScreenOptions({state:routes[1],dispatch:function dispatch(){return false;},addListener:dummyEventSubscriber},{}).title).toEqual('BarTitle');expect(router.getScreenOptions({state:routes[2],dispatch:function dispatch(){return false;},addListener:dummyEventSubscriber},{}).title).toEqual('Baz-123');});it("set params works in "+routerName,function(){var FooView=function(_React$Component4){_inherits(FooView,_React$Component4);function FooView(){_classCallCheck(this,FooView);return _possibleConstructorReturn(this,_getPrototypeOf(FooView).apply(this,arguments));}_createClass(FooView,[{key:"render",value:function render(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:96}});}}]);return FooView;}(React.Component);var router=Router({Foo:{screen:FooView},Bar:{screen:FooView}});var initState=router.getStateForAction(NavigationActions.init());var initRoute=initState.routes[initState.index];expect(initRoute.params).toEqual(undefined);var state0=router.getStateForAction(NavigationActions.setParams({params:{foo:42},key:initRoute.key}),initState);expect(state0.routes[state0.index].params.foo).toEqual(42);});});});it('Nested navigate behavior test',function(){var Leaf=function Leaf(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:121}});};var First=function First(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:123}});};First.router=StackRouter({First1:Leaf,First2:Leaf});var Second=function Second(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:129}});};Second.router=StackRouter({Second1:Leaf,Second2:Leaf});var Main=function Main(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:135}});};Main.router=StackRouter({First:First,Second:Second});var TestRouter=SwitchRouter({Login:Leaf,Main:Main});var state1=TestRouter.getStateForAction({type:NavigationActions.INIT});var state2=TestRouter.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'First'},state1);expect(state2.index).toEqual(1);expect(state2.routes[1].index).toEqual(0);expect(state2.routes[1].routes[0].index).toEqual(0);var state3=TestRouter.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Second2'},state2);expect(state3.index).toEqual(1);expect(state3.routes[1].index).toEqual(1);expect(state3.routes[1].routes[1].index).toEqual(1);var state4=TestRouter.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'First',action:{type:NavigationActions.NAVIGATE,routeName:'First2'}},state3,true);expect(state4.index).toEqual(1);expect(state4.routes[1].index).toEqual(0);expect(state4.routes[1].routes[0].index).toEqual(1);var state5=TestRouter.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'First',action:{type:NavigationActions.NAVIGATE,routeName:'First1'}},state3);expect(state5.index).toEqual(1);expect(state5.routes[1].index).toEqual(0);expect(state5.routes[1].routes[0].index).toEqual(0);});it('Handles no-op actions with tabs within stack router',function(){var BarView=function BarView(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:190}});};var FooTabNavigator=function FooTabNavigator(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:191}});};FooTabNavigator.router=TabRouter({Zap:{screen:BarView},Zoo:{screen:BarView}});var TestRouter=StackRouter({Foo:{screen:FooTabNavigator},Bar:{screen:BarView}});var state1=TestRouter.getStateForAction({type:NavigationActions.INIT});var state2=TestRouter.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Qux'});expect(state1.routes[0].key).toEqual('id-0');expect(state2.routes[0].key).toEqual('id-1');state1.routes[0].key=state2.routes[0].key;expect(state1).toEqual(state2);var state3=TestRouter.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Zap'},state2);expect(state2).toEqual(state3);});it('Handles deep action',function(){var BarView=function BarView(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:221}});};var FooTabNavigator=function FooTabNavigator(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:222}});};FooTabNavigator.router=TabRouter({Zap:{screen:BarView},Zoo:{screen:BarView}});var TestRouter=StackRouter({Bar:{screen:BarView},Foo:{screen:FooTabNavigator}});var state1=TestRouter.getStateForAction({type:NavigationActions.INIT});var expectedState={index:0,transitions:{pushing:[],popping:[]},key:'StackRouterRoot',routes:[{key:'id-0',routeName:'Bar'}]};expect(state1).toEqual(expectedState);var state2=TestRouter.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Foo',immediate:true,action:{type:NavigationActions.NAVIGATE,routeName:'Zoo'}},state1);expect(state2&&state2.index).toEqual(1);expect(state2&&state2.routes[1].index).toEqual(1);});it('Handles the navigate action with params',function(){var FooTabNavigator=function FooTabNavigator(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:258}});};FooTabNavigator.router=TabRouter({Baz:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:260}});}},Boo:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:261}});}}});var TestRouter=StackRouter({Foo:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:265}});}},Bar:{screen:FooTabNavigator}});var state=TestRouter.getStateForAction({type:NavigationActions.INIT});var state2=TestRouter.getStateForAction({type:NavigationActions.NAVIGATE,immediate:true,routeName:'Bar',params:{foo:'42'}},state);expect(state2&&state2.routes[1].params).toEqual({foo:'42'});expect(state2&&state2.routes[1].routes).toEqual([{key:'Baz',routeName:'Baz',params:{foo:'42'}},{key:'Boo',routeName:'Boo',params:{foo:'42'}}]);});it('Handles the setParams action',function(){var FooTabNavigator=function FooTabNavigator(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:294}});};FooTabNavigator.router=TabRouter({Baz:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:296}});}}});var TestRouter=StackRouter({Foo:{screen:FooTabNavigator},Bar:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:300}});}}});var state=TestRouter.getStateForAction({type:NavigationActions.INIT});var state2=TestRouter.getStateForAction({type:NavigationActions.SET_PARAMS,params:{name:'foobar'},key:'Baz'},state);expect(state2&&state2.index).toEqual(0);expect(state2&&state2.routes[0].routes).toEqual([{key:'Baz',routeName:'Baz',params:{name:'foobar'}}]);});it('Supports lazily-evaluated getScreen',function(){var BarView=function BarView(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:322}});};var FooTabNavigator=function FooTabNavigator(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:323}});};FooTabNavigator.router=TabRouter({Zap:{screen:BarView},Zoo:{screen:BarView}});var TestRouter=StackRouter({Foo:{screen:FooTabNavigator},Bar:{getScreen:function getScreen(){return BarView;}}});var state1=TestRouter.getStateForAction({type:NavigationActions.INIT});var state2=TestRouter.getStateForAction({type:NavigationActions.NAVIGATE,immediate:true,routeName:'Qux'});expect(state1.routes[0].key).toEqual('id-0');expect(state2.routes[0].key).toEqual('id-1');state1.routes[0].key=state2.routes[0].key;expect(state1).toEqual(state2);var state3=TestRouter.getStateForAction({type:NavigationActions.NAVIGATE,immediate:true,routeName:'Zap'},state2);expect(state2).toEqual(state3);});it('Does not switch tab index when TabRouter child handles COMPLETE_NAVIGATION or SET_PARAMS',function(){var FooStackNavigator=function FooStackNavigator(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:358}});};var BarView=function BarView(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:359}});};FooStackNavigator.router=StackRouter({Foo:{screen:BarView},Bar:{screen:BarView}});var TestRouter=TabRouter({Zap:{screen:FooStackNavigator},Zoo:{screen:FooStackNavigator}});var state1=TestRouter.getStateForAction({type:NavigationActions.INIT});var state2=TestRouter.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar'},state1);var state3=TestRouter.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Zoo'},state2);var stateAfterCompleteTransition=TestRouter.getStateForAction({type:StackActions.COMPLETE_TRANSITION,preserveFocus:true,key:state2.routes[0].key},state3);var stateAfterSetParams=TestRouter.getStateForAction({type:NavigationActions.SET_PARAMS,preserveFocus:true,key:state1.routes[0].routes[0].key,params:{key:'value'}},state3);expect(stateAfterCompleteTransition.index).toEqual(1);expect(stateAfterSetParams.index).toEqual(1);});it('Inner actions are only unpacked if the current tab matches',function(){var PlainScreen=function PlainScreen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:417}});};var ScreenA=function ScreenA(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:418}});};var ScreenB=function ScreenB(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:419}});};ScreenB.router=StackRouter({Baz:{screen:PlainScreen},Zoo:{screen:PlainScreen}});ScreenA.router=StackRouter({Bar:{screen:PlainScreen},Boo:{screen:ScreenB}});var TestRouter=TabRouter({Foo:{screen:ScreenA}});var screenApreState={index:0,key:'Init',transitions:{pushing:[],popping:[]},routeName:'Foo',routes:[{key:'Init',routeName:'Bar'}]};var preState={index:0,transitions:{pushing:[],popping:[]},routes:[screenApreState]};var comparable=function comparable(state){var result={};if(typeof state.routeName==='string'){result=_objectSpread({},result,{routeName:state.routeName});}if(state.routes instanceof Array){result=_objectSpread({},result,{routes:state.routes.map(comparable)});}return result;};var action=NavigationActions.navigate({routeName:'Boo',action:NavigationActions.navigate({routeName:'Zoo'})});var expectedState=ScreenA.router.getStateForAction(action,screenApreState);var state=TestRouter.getStateForAction(action,preState);var innerState=state?state.routes[0]:state;expect(expectedState&&comparable(expectedState)).toEqual(innerState&&comparable(innerState));});
+ //# sourceMappingURL=Routers-test.js.map
+\ No newline at end of file
+diff --git a/node_modules/@react-navigation/core/lib/module/routers/__tests__/Routers-test.js.map b/node_modules/@react-navigation/core/lib/module/routers/__tests__/Routers-test.js.map
+index 1a84d28..099e81e 100644
+--- a/node_modules/@react-navigation/core/lib/module/routers/__tests__/Routers-test.js.map
++++ b/node_modules/@react-navigation/core/lib/module/routers/__tests__/Routers-test.js.map
+@@ -1 +1 @@
+-{"version":3,"sources":["Routers-test.js"],"names":["React","StackRouter","TabRouter","SwitchRouter","NavigationActions","StackActions","_TESTING_ONLY_normalize_keys","beforeEach","ROUTERS","dummyEventSubscriber","remove","Object","keys","forEach","routerName","Router","describe","it","FooView","Component","BarView","navigationOptions","title","BazView","navigation","state","params","id","router","Foo","screen","Bar","Baz","routes","key","routeName","expect","getScreenOptions","dispatch","addListener","toEqual","undefined","initState","getStateForAction","init","initRoute","index","state0","setParams","foo","Leaf","First","First1","First2","Second","Second1","Second2","Main","TestRouter","Login","state1","type","INIT","state2","NAVIGATE","state3","state4","action","state5","FooTabNavigator","Zap","Zoo","expectedState","isTransitioning","immediate","Boo","SET_PARAMS","name","getScreen","FooStackNavigator","stateAfterCompleteTransition","COMPLETE_TRANSITION","preserveFocus","stateAfterSetParams","PlainScreen","ScreenA","ScreenB","screenApreState","preState","comparable","result","Array","map","navigate","innerState"],"mappings":"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","sourcesContent":["/* eslint react/no-multi-comp:0, react/display-name:0 */\n\nimport React from 'react';\n\nimport StackRouter from '../StackRouter';\nimport TabRouter from '../TabRouter';\nimport SwitchRouter from '../SwitchRouter';\n\nimport * as NavigationActions from '../../NavigationActions';\nimport * as StackActions from '../StackActions';\nimport { _TESTING_ONLY_normalize_keys } from '../KeyGenerator.ts';\n\nbeforeEach(() => {\n _TESTING_ONLY_normalize_keys();\n});\n\nconst ROUTERS = {\n TabRouter,\n StackRouter,\n SwitchRouter,\n};\n\nconst dummyEventSubscriber = () => ({\n remove: () => {},\n});\n\nObject.keys(ROUTERS).forEach(routerName => {\n const Router = ROUTERS[routerName];\n\n describe(`General router features - ${routerName}`, () => {\n it(`title is configurable using navigationOptions and getScreenOptions - ${routerName}`, () => {\n class FooView extends React.Component {\n render() {\n return ;\n }\n }\n class BarView extends React.Component {\n render() {\n return ;\n }\n static navigationOptions = { title: 'BarTitle' };\n }\n class BazView extends React.Component {\n render() {\n return ;\n }\n static navigationOptions = ({ navigation }) => ({\n title: `Baz-${navigation.state.params.id}`,\n });\n }\n const router = Router({\n Foo: { screen: FooView },\n Bar: { screen: BarView },\n Baz: { screen: BazView },\n });\n const routes = [\n { key: 'A', routeName: 'Foo' },\n { key: 'B', routeName: 'Bar' },\n { key: 'A', routeName: 'Baz', params: { id: '123' } },\n ];\n expect(\n router.getScreenOptions(\n {\n state: routes[0],\n dispatch: () => false,\n addListener: dummyEventSubscriber,\n },\n {}\n ).title\n ).toEqual(undefined);\n expect(\n router.getScreenOptions(\n {\n state: routes[1],\n dispatch: () => false,\n addListener: dummyEventSubscriber,\n },\n {}\n ).title\n ).toEqual('BarTitle');\n expect(\n router.getScreenOptions(\n {\n state: routes[2],\n dispatch: () => false,\n addListener: dummyEventSubscriber,\n },\n {}\n ).title\n ).toEqual('Baz-123');\n });\n\n it(`set params works in ${routerName}`, () => {\n class FooView extends React.Component {\n render() {\n return ;\n }\n }\n const router = Router({\n Foo: { screen: FooView },\n Bar: { screen: FooView },\n });\n\n const initState = router.getStateForAction(NavigationActions.init());\n const initRoute = initState.routes[initState.index];\n expect(initRoute.params).toEqual(undefined);\n\n const state0 = router.getStateForAction(\n NavigationActions.setParams({\n params: { foo: 42 },\n key: initRoute.key,\n }),\n initState\n );\n expect(state0.routes[state0.index].params.foo).toEqual(42);\n });\n });\n});\n\nit('Nested navigate behavior test', () => {\n const Leaf = () => ;\n\n const First = () => ;\n First.router = StackRouter({\n First1: Leaf,\n First2: Leaf,\n });\n\n const Second = () => ;\n Second.router = StackRouter({\n Second1: Leaf,\n Second2: Leaf,\n });\n\n const Main = () => ;\n Main.router = StackRouter({\n First,\n Second,\n });\n const TestRouter = SwitchRouter({\n Login: Leaf,\n Main,\n });\n\n const state1 = TestRouter.getStateForAction({ type: NavigationActions.INIT });\n\n const state2 = TestRouter.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'First' },\n state1\n );\n expect(state2.index).toEqual(1);\n expect(state2.routes[1].index).toEqual(0);\n expect(state2.routes[1].routes[0].index).toEqual(0);\n\n const state3 = TestRouter.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'Second2' },\n state2\n );\n expect(state3.index).toEqual(1);\n expect(state3.routes[1].index).toEqual(1); // second\n expect(state3.routes[1].routes[1].index).toEqual(1); //second.second2\n\n const state4 = TestRouter.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'First',\n action: { type: NavigationActions.NAVIGATE, routeName: 'First2' },\n },\n state3,\n true\n );\n expect(state4.index).toEqual(1); // main\n expect(state4.routes[1].index).toEqual(0); // first\n expect(state4.routes[1].routes[0].index).toEqual(1); // first2\n\n const state5 = TestRouter.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'First',\n action: { type: NavigationActions.NAVIGATE, routeName: 'First1' },\n },\n state3 // second.second2 is active on state3\n );\n expect(state5.index).toEqual(1); // main\n expect(state5.routes[1].index).toEqual(0); // first\n expect(state5.routes[1].routes[0].index).toEqual(0); // first.first1\n});\n\nit('Handles no-op actions with tabs within stack router', () => {\n const BarView = () => ;\n const FooTabNavigator = () => ;\n FooTabNavigator.router = TabRouter({\n Zap: { screen: BarView },\n Zoo: { screen: BarView },\n });\n const TestRouter = StackRouter({\n Foo: {\n screen: FooTabNavigator,\n },\n Bar: {\n screen: BarView,\n },\n });\n const state1 = TestRouter.getStateForAction({ type: NavigationActions.INIT });\n const state2 = TestRouter.getStateForAction({\n type: NavigationActions.NAVIGATE,\n routeName: 'Qux',\n });\n expect(state1.routes[0].key).toEqual('id-0');\n expect(state2.routes[0].key).toEqual('id-1');\n state1.routes[0].key = state2.routes[0].key;\n expect(state1).toEqual(state2);\n const state3 = TestRouter.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'Zap' },\n state2\n );\n expect(state2).toEqual(state3);\n});\n\nit('Handles deep action', () => {\n const BarView = () => ;\n const FooTabNavigator = () => ;\n FooTabNavigator.router = TabRouter({\n Zap: { screen: BarView },\n Zoo: { screen: BarView },\n });\n const TestRouter = StackRouter({\n Bar: { screen: BarView },\n Foo: { screen: FooTabNavigator },\n });\n const state1 = TestRouter.getStateForAction({ type: NavigationActions.INIT });\n const expectedState = {\n index: 0,\n isTransitioning: false,\n key: 'StackRouterRoot',\n routes: [\n {\n key: 'id-0',\n routeName: 'Bar',\n },\n ],\n };\n expect(state1).toEqual(expectedState);\n const state2 = TestRouter.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Foo',\n immediate: true,\n action: { type: NavigationActions.NAVIGATE, routeName: 'Zoo' },\n },\n state1\n );\n expect(state2 && state2.index).toEqual(1);\n expect(state2 && state2.routes[1].index).toEqual(1);\n});\n\nit('Handles the navigate action with params', () => {\n const FooTabNavigator = () => ;\n FooTabNavigator.router = TabRouter({\n Baz: { screen: () => },\n Boo: { screen: () => },\n });\n\n const TestRouter = StackRouter({\n Foo: { screen: () => },\n Bar: { screen: FooTabNavigator },\n });\n const state = TestRouter.getStateForAction({ type: NavigationActions.INIT });\n const state2 = TestRouter.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n immediate: true,\n routeName: 'Bar',\n params: { foo: '42' },\n },\n state\n );\n expect(state2 && state2.routes[1].params).toEqual({ foo: '42' });\n expect(state2 && state2.routes[1].routes).toEqual([\n {\n key: 'Baz',\n routeName: 'Baz',\n params: { foo: '42' },\n },\n {\n key: 'Boo',\n routeName: 'Boo',\n params: { foo: '42' },\n },\n ]);\n});\n\nit('Handles the setParams action', () => {\n const FooTabNavigator = () => ;\n FooTabNavigator.router = TabRouter({\n Baz: { screen: () => },\n });\n const TestRouter = StackRouter({\n Foo: { screen: FooTabNavigator },\n Bar: { screen: () => },\n });\n const state = TestRouter.getStateForAction({ type: NavigationActions.INIT });\n const state2 = TestRouter.getStateForAction(\n {\n type: NavigationActions.SET_PARAMS,\n params: { name: 'foobar' },\n key: 'Baz',\n },\n state\n );\n expect(state2 && state2.index).toEqual(0);\n expect(state2 && state2.routes[0].routes).toEqual([\n {\n key: 'Baz',\n routeName: 'Baz',\n params: { name: 'foobar' },\n },\n ]);\n});\n\nit('Supports lazily-evaluated getScreen', () => {\n const BarView = () => ;\n const FooTabNavigator = () => ;\n FooTabNavigator.router = TabRouter({\n Zap: { screen: BarView },\n Zoo: { screen: BarView },\n });\n const TestRouter = StackRouter({\n Foo: {\n screen: FooTabNavigator,\n },\n Bar: {\n getScreen: () => BarView,\n },\n });\n const state1 = TestRouter.getStateForAction({ type: NavigationActions.INIT });\n const state2 = TestRouter.getStateForAction({\n type: NavigationActions.NAVIGATE,\n immediate: true,\n routeName: 'Qux',\n });\n expect(state1.routes[0].key).toEqual('id-0');\n expect(state2.routes[0].key).toEqual('id-1');\n state1.routes[0].key = state2.routes[0].key;\n expect(state1).toEqual(state2);\n const state3 = TestRouter.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n immediate: true,\n routeName: 'Zap',\n },\n state2\n );\n expect(state2).toEqual(state3);\n});\n\nit('Does not switch tab index when TabRouter child handles COMPLETE_NAVIGATION or SET_PARAMS', () => {\n const FooStackNavigator = () => ;\n const BarView = () => ;\n FooStackNavigator.router = StackRouter({\n Foo: {\n screen: BarView,\n },\n Bar: {\n screen: BarView,\n },\n });\n\n const TestRouter = TabRouter({\n Zap: { screen: FooStackNavigator },\n Zoo: { screen: FooStackNavigator },\n });\n\n const state1 = TestRouter.getStateForAction({ type: NavigationActions.INIT });\n\n // Navigate to the second screen in the first tab\n const state2 = TestRouter.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n },\n state1\n );\n\n // Switch tabs\n const state3 = TestRouter.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Zoo',\n },\n state2\n );\n\n const stateAfterCompleteTransition = TestRouter.getStateForAction(\n {\n type: StackActions.COMPLETE_TRANSITION,\n preserveFocus: true,\n key: state2.routes[0].key,\n },\n state3\n );\n const stateAfterSetParams = TestRouter.getStateForAction(\n {\n type: NavigationActions.SET_PARAMS,\n preserveFocus: true,\n key: state1.routes[0].routes[0].key,\n params: { key: 'value' },\n },\n state3\n );\n\n expect(stateAfterCompleteTransition.index).toEqual(1);\n expect(stateAfterSetParams.index).toEqual(1);\n});\n\nit('Inner actions are only unpacked if the current tab matches', () => {\n const PlainScreen = () => ;\n const ScreenA = () => ;\n const ScreenB = () => ;\n ScreenB.router = StackRouter({\n Baz: { screen: PlainScreen },\n Zoo: { screen: PlainScreen },\n });\n ScreenA.router = StackRouter({\n Bar: { screen: PlainScreen },\n Boo: { screen: ScreenB },\n });\n const TestRouter = TabRouter({\n Foo: { screen: ScreenA },\n });\n const screenApreState = {\n index: 0,\n key: 'Init',\n isTransitioning: false,\n routeName: 'Foo',\n routes: [{ key: 'Init', routeName: 'Bar' }],\n };\n const preState = {\n index: 0,\n isTransitioning: false,\n routes: [screenApreState],\n };\n\n const comparable = state => {\n let result = {};\n if (typeof state.routeName === 'string') {\n result = { ...result, routeName: state.routeName };\n }\n if (state.routes instanceof Array) {\n result = {\n ...result,\n routes: state.routes.map(comparable),\n };\n }\n return result;\n };\n\n const action = NavigationActions.navigate({\n routeName: 'Boo',\n action: NavigationActions.navigate({ routeName: 'Zoo' }),\n });\n\n const expectedState = ScreenA.router.getStateForAction(\n action,\n screenApreState\n );\n const state = TestRouter.getStateForAction(action, preState);\n const innerState = state ? state.routes[0] : state;\n\n expect(expectedState && comparable(expectedState)).toEqual(\n innerState && comparable(innerState)\n );\n});\n"]}
+\ No newline at end of file
++{"version":3,"sources":["Routers-test.js"],"names":["React","StackRouter","TabRouter","SwitchRouter","NavigationActions","StackActions","_TESTING_ONLY_normalize_keys","beforeEach","ROUTERS","dummyEventSubscriber","remove","Object","keys","forEach","routerName","Router","describe","it","FooView","Component","BarView","navigationOptions","title","BazView","navigation","state","params","id","router","Foo","screen","Bar","Baz","routes","key","routeName","expect","getScreenOptions","dispatch","addListener","toEqual","undefined","initState","getStateForAction","init","initRoute","index","state0","setParams","foo","Leaf","First","First1","First2","Second","Second1","Second2","Main","TestRouter","Login","state1","type","INIT","state2","NAVIGATE","state3","state4","action","state5","FooTabNavigator","Zap","Zoo","expectedState","transitions","pushing","popping","immediate","Boo","SET_PARAMS","name","getScreen","FooStackNavigator","stateAfterCompleteTransition","COMPLETE_TRANSITION","preserveFocus","stateAfterSetParams","PlainScreen","ScreenA","ScreenB","screenApreState","preState","comparable","result","Array","map","navigate","innerState"],"mappings":"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","sourcesContent":["/* eslint react/no-multi-comp:0, react/display-name:0 */\n\nimport React from 'react';\n\nimport StackRouter from '../StackRouter';\nimport TabRouter from '../TabRouter';\nimport SwitchRouter from '../SwitchRouter';\n\nimport * as NavigationActions from '../../NavigationActions';\nimport * as StackActions from '../StackActions';\nimport { _TESTING_ONLY_normalize_keys } from '../KeyGenerator.ts';\n\nbeforeEach(() => {\n _TESTING_ONLY_normalize_keys();\n});\n\nconst ROUTERS = {\n TabRouter,\n StackRouter,\n SwitchRouter,\n};\n\nconst dummyEventSubscriber = () => ({\n remove: () => {},\n});\n\nObject.keys(ROUTERS).forEach(routerName => {\n const Router = ROUTERS[routerName];\n\n describe(`General router features - ${routerName}`, () => {\n it(`title is configurable using navigationOptions and getScreenOptions - ${routerName}`, () => {\n class FooView extends React.Component {\n render() {\n return ;\n }\n }\n class BarView extends React.Component {\n render() {\n return ;\n }\n static navigationOptions = { title: 'BarTitle' };\n }\n class BazView extends React.Component {\n render() {\n return ;\n }\n static navigationOptions = ({ navigation }) => ({\n title: `Baz-${navigation.state.params.id}`,\n });\n }\n const router = Router({\n Foo: { screen: FooView },\n Bar: { screen: BarView },\n Baz: { screen: BazView },\n });\n const routes = [\n { key: 'A', routeName: 'Foo' },\n { key: 'B', routeName: 'Bar' },\n { key: 'A', routeName: 'Baz', params: { id: '123' } },\n ];\n expect(\n router.getScreenOptions(\n {\n state: routes[0],\n dispatch: () => false,\n addListener: dummyEventSubscriber,\n },\n {}\n ).title\n ).toEqual(undefined);\n expect(\n router.getScreenOptions(\n {\n state: routes[1],\n dispatch: () => false,\n addListener: dummyEventSubscriber,\n },\n {}\n ).title\n ).toEqual('BarTitle');\n expect(\n router.getScreenOptions(\n {\n state: routes[2],\n dispatch: () => false,\n addListener: dummyEventSubscriber,\n },\n {}\n ).title\n ).toEqual('Baz-123');\n });\n\n it(`set params works in ${routerName}`, () => {\n class FooView extends React.Component {\n render() {\n return ;\n }\n }\n const router = Router({\n Foo: { screen: FooView },\n Bar: { screen: FooView },\n });\n\n const initState = router.getStateForAction(NavigationActions.init());\n const initRoute = initState.routes[initState.index];\n expect(initRoute.params).toEqual(undefined);\n\n const state0 = router.getStateForAction(\n NavigationActions.setParams({\n params: { foo: 42 },\n key: initRoute.key,\n }),\n initState\n );\n expect(state0.routes[state0.index].params.foo).toEqual(42);\n });\n });\n});\n\nit('Nested navigate behavior test', () => {\n const Leaf = () => ;\n\n const First = () => ;\n First.router = StackRouter({\n First1: Leaf,\n First2: Leaf,\n });\n\n const Second = () => ;\n Second.router = StackRouter({\n Second1: Leaf,\n Second2: Leaf,\n });\n\n const Main = () => ;\n Main.router = StackRouter({\n First,\n Second,\n });\n const TestRouter = SwitchRouter({\n Login: Leaf,\n Main,\n });\n\n const state1 = TestRouter.getStateForAction({ type: NavigationActions.INIT });\n\n const state2 = TestRouter.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'First' },\n state1\n );\n expect(state2.index).toEqual(1);\n expect(state2.routes[1].index).toEqual(0);\n expect(state2.routes[1].routes[0].index).toEqual(0);\n\n const state3 = TestRouter.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'Second2' },\n state2\n );\n expect(state3.index).toEqual(1);\n expect(state3.routes[1].index).toEqual(1); // second\n expect(state3.routes[1].routes[1].index).toEqual(1); //second.second2\n\n const state4 = TestRouter.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'First',\n action: { type: NavigationActions.NAVIGATE, routeName: 'First2' },\n },\n state3,\n true\n );\n expect(state4.index).toEqual(1); // main\n expect(state4.routes[1].index).toEqual(0); // first\n expect(state4.routes[1].routes[0].index).toEqual(1); // first2\n\n const state5 = TestRouter.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'First',\n action: { type: NavigationActions.NAVIGATE, routeName: 'First1' },\n },\n state3 // second.second2 is active on state3\n );\n expect(state5.index).toEqual(1); // main\n expect(state5.routes[1].index).toEqual(0); // first\n expect(state5.routes[1].routes[0].index).toEqual(0); // first.first1\n});\n\nit('Handles no-op actions with tabs within stack router', () => {\n const BarView = () => ;\n const FooTabNavigator = () => ;\n FooTabNavigator.router = TabRouter({\n Zap: { screen: BarView },\n Zoo: { screen: BarView },\n });\n const TestRouter = StackRouter({\n Foo: {\n screen: FooTabNavigator,\n },\n Bar: {\n screen: BarView,\n },\n });\n const state1 = TestRouter.getStateForAction({ type: NavigationActions.INIT });\n const state2 = TestRouter.getStateForAction({\n type: NavigationActions.NAVIGATE,\n routeName: 'Qux',\n });\n expect(state1.routes[0].key).toEqual('id-0');\n expect(state2.routes[0].key).toEqual('id-1');\n state1.routes[0].key = state2.routes[0].key;\n expect(state1).toEqual(state2);\n const state3 = TestRouter.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'Zap' },\n state2\n );\n expect(state2).toEqual(state3);\n});\n\nit('Handles deep action', () => {\n const BarView = () => ;\n const FooTabNavigator = () => ;\n FooTabNavigator.router = TabRouter({\n Zap: { screen: BarView },\n Zoo: { screen: BarView },\n });\n const TestRouter = StackRouter({\n Bar: { screen: BarView },\n Foo: { screen: FooTabNavigator },\n });\n const state1 = TestRouter.getStateForAction({ type: NavigationActions.INIT });\n const expectedState = {\n index: 0,\n transitions: { pushing: [], popping: [] },\n key: 'StackRouterRoot',\n routes: [\n {\n key: 'id-0',\n routeName: 'Bar',\n },\n ],\n };\n expect(state1).toEqual(expectedState);\n const state2 = TestRouter.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Foo',\n immediate: true,\n action: { type: NavigationActions.NAVIGATE, routeName: 'Zoo' },\n },\n state1\n );\n expect(state2 && state2.index).toEqual(1);\n expect(state2 && state2.routes[1].index).toEqual(1);\n});\n\nit('Handles the navigate action with params', () => {\n const FooTabNavigator = () => ;\n FooTabNavigator.router = TabRouter({\n Baz: { screen: () => },\n Boo: { screen: () => },\n });\n\n const TestRouter = StackRouter({\n Foo: { screen: () => },\n Bar: { screen: FooTabNavigator },\n });\n const state = TestRouter.getStateForAction({ type: NavigationActions.INIT });\n const state2 = TestRouter.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n immediate: true,\n routeName: 'Bar',\n params: { foo: '42' },\n },\n state\n );\n expect(state2 && state2.routes[1].params).toEqual({ foo: '42' });\n expect(state2 && state2.routes[1].routes).toEqual([\n {\n key: 'Baz',\n routeName: 'Baz',\n params: { foo: '42' },\n },\n {\n key: 'Boo',\n routeName: 'Boo',\n params: { foo: '42' },\n },\n ]);\n});\n\nit('Handles the setParams action', () => {\n const FooTabNavigator = () => ;\n FooTabNavigator.router = TabRouter({\n Baz: { screen: () => },\n });\n const TestRouter = StackRouter({\n Foo: { screen: FooTabNavigator },\n Bar: { screen: () => },\n });\n const state = TestRouter.getStateForAction({ type: NavigationActions.INIT });\n const state2 = TestRouter.getStateForAction(\n {\n type: NavigationActions.SET_PARAMS,\n params: { name: 'foobar' },\n key: 'Baz',\n },\n state\n );\n expect(state2 && state2.index).toEqual(0);\n expect(state2 && state2.routes[0].routes).toEqual([\n {\n key: 'Baz',\n routeName: 'Baz',\n params: { name: 'foobar' },\n },\n ]);\n});\n\nit('Supports lazily-evaluated getScreen', () => {\n const BarView = () => ;\n const FooTabNavigator = () => ;\n FooTabNavigator.router = TabRouter({\n Zap: { screen: BarView },\n Zoo: { screen: BarView },\n });\n const TestRouter = StackRouter({\n Foo: {\n screen: FooTabNavigator,\n },\n Bar: {\n getScreen: () => BarView,\n },\n });\n const state1 = TestRouter.getStateForAction({ type: NavigationActions.INIT });\n const state2 = TestRouter.getStateForAction({\n type: NavigationActions.NAVIGATE,\n immediate: true,\n routeName: 'Qux',\n });\n expect(state1.routes[0].key).toEqual('id-0');\n expect(state2.routes[0].key).toEqual('id-1');\n state1.routes[0].key = state2.routes[0].key;\n expect(state1).toEqual(state2);\n const state3 = TestRouter.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n immediate: true,\n routeName: 'Zap',\n },\n state2\n );\n expect(state2).toEqual(state3);\n});\n\nit('Does not switch tab index when TabRouter child handles COMPLETE_NAVIGATION or SET_PARAMS', () => {\n const FooStackNavigator = () => ;\n const BarView = () => ;\n FooStackNavigator.router = StackRouter({\n Foo: {\n screen: BarView,\n },\n Bar: {\n screen: BarView,\n },\n });\n\n const TestRouter = TabRouter({\n Zap: { screen: FooStackNavigator },\n Zoo: { screen: FooStackNavigator },\n });\n\n const state1 = TestRouter.getStateForAction({ type: NavigationActions.INIT });\n\n // Navigate to the second screen in the first tab\n const state2 = TestRouter.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n },\n state1\n );\n\n // Switch tabs\n const state3 = TestRouter.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Zoo',\n },\n state2\n );\n\n const stateAfterCompleteTransition = TestRouter.getStateForAction(\n {\n type: StackActions.COMPLETE_TRANSITION,\n preserveFocus: true,\n key: state2.routes[0].key,\n },\n state3\n );\n const stateAfterSetParams = TestRouter.getStateForAction(\n {\n type: NavigationActions.SET_PARAMS,\n preserveFocus: true,\n key: state1.routes[0].routes[0].key,\n params: { key: 'value' },\n },\n state3\n );\n\n expect(stateAfterCompleteTransition.index).toEqual(1);\n expect(stateAfterSetParams.index).toEqual(1);\n});\n\nit('Inner actions are only unpacked if the current tab matches', () => {\n const PlainScreen = () => ;\n const ScreenA = () => ;\n const ScreenB = () => ;\n ScreenB.router = StackRouter({\n Baz: { screen: PlainScreen },\n Zoo: { screen: PlainScreen },\n });\n ScreenA.router = StackRouter({\n Bar: { screen: PlainScreen },\n Boo: { screen: ScreenB },\n });\n const TestRouter = TabRouter({\n Foo: { screen: ScreenA },\n });\n const screenApreState = {\n index: 0,\n key: 'Init',\n transitions: { pushing: [], popping: [] },\n routeName: 'Foo',\n routes: [{ key: 'Init', routeName: 'Bar' }],\n };\n const preState = {\n index: 0,\n transitions: { pushing: [], popping: [] },\n routes: [screenApreState],\n };\n\n const comparable = state => {\n let result = {};\n if (typeof state.routeName === 'string') {\n result = { ...result, routeName: state.routeName };\n }\n if (state.routes instanceof Array) {\n result = {\n ...result,\n routes: state.routes.map(comparable),\n };\n }\n return result;\n };\n\n const action = NavigationActions.navigate({\n routeName: 'Boo',\n action: NavigationActions.navigate({ routeName: 'Zoo' }),\n });\n\n const expectedState = ScreenA.router.getStateForAction(\n action,\n screenApreState\n );\n const state = TestRouter.getStateForAction(action, preState);\n const innerState = state ? state.routes[0] : state;\n\n expect(expectedState && comparable(expectedState)).toEqual(\n innerState && comparable(innerState)\n );\n});\n"]}
+\ No newline at end of file
+diff --git a/node_modules/@react-navigation/core/lib/module/routers/__tests__/StackRouter-test.js b/node_modules/@react-navigation/core/lib/module/routers/__tests__/StackRouter-test.js
+index e470bd0..b594fc2 100644
+--- a/node_modules/@react-navigation/core/lib/module/routers/__tests__/StackRouter-test.js
++++ b/node_modules/@react-navigation/core/lib/module/routers/__tests__/StackRouter-test.js
+@@ -1,2 +1,2 @@
+-import _objectSpread from"@babel/runtime/helpers/objectSpread";import _classCallCheck from"@babel/runtime/helpers/classCallCheck";import _createClass from"@babel/runtime/helpers/createClass";import _possibleConstructorReturn from"@babel/runtime/helpers/possibleConstructorReturn";import _getPrototypeOf from"@babel/runtime/helpers/getPrototypeOf";import _inherits from"@babel/runtime/helpers/inherits";var _jsxFileName="/Users/satya/Workspace/Callstack/react-navigation-core/src/routers/__tests__/StackRouter-test.js";import React from'react';import StackRouter from'../StackRouter';import*as StackActions from'../StackActions';import*as NavigationActions from'../../NavigationActions';import{_TESTING_ONLY_normalize_keys}from'../KeyGenerator.ts';beforeEach(function(){_TESTING_ONLY_normalize_keys();});var ListScreen=function ListScreen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:14}});};var ProfileNavigator=function ProfileNavigator(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:16}});};ProfileNavigator.router=StackRouter({list:{path:'list/:id',screen:ListScreen}});var MainNavigator=function MainNavigator(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:24}});};MainNavigator.router=StackRouter({profile:{path:'p/:id',screen:ProfileNavigator}});var LoginScreen=function LoginScreen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:32}});};var AuthNavigator=function AuthNavigator(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:34}});};AuthNavigator.router=StackRouter({login:{screen:LoginScreen}});var BarScreen=function BarScreen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:41}});};var FooNavigator=function(_React$Component){_inherits(FooNavigator,_React$Component);function FooNavigator(){_classCallCheck(this,FooNavigator);return _possibleConstructorReturn(this,_getPrototypeOf(FooNavigator).apply(this,arguments));}_createClass(FooNavigator,[{key:"render",value:function render(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:51}});}}]);return FooNavigator;}(React.Component);FooNavigator.router=StackRouter({bar:{path:'b/:barThing',screen:BarScreen}});var PersonScreen=function PersonScreen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:55}});};var TestStackRouter=StackRouter({main:{screen:MainNavigator},baz:{path:null,screen:FooNavigator},auth:{screen:AuthNavigator},person:{path:'people/:id',screen:PersonScreen},foo:{path:'fo/:fooThing',screen:FooNavigator}});describe('StackRouter',function(){it('Gets the active screen for a given state',function(){var FooScreen=function FooScreen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:80}});};var BarScreen=function BarScreen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:81}});};var router=StackRouter({foo:{screen:FooScreen},bar:{screen:BarScreen}});expect(router.getComponentForState({index:0,isTransitioning:false,routes:[{key:'a',routeName:'foo'},{key:'b',routeName:'bar'},{key:'c',routeName:'foo'}]})).toBe(FooScreen);expect(router.getComponentForState({index:1,isTransitioning:false,routes:[{key:'a',routeName:'foo'},{key:'b',routeName:'bar'}]})).toBe(BarScreen);});it('Handles getScreen in getComponentForState',function(){var FooScreen=function FooScreen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:115}});};var BarScreen=function BarScreen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:116}});};var router=StackRouter({foo:{getScreen:function getScreen(){return FooScreen;}},bar:{getScreen:function getScreen(){return BarScreen;}}});expect(router.getComponentForState({index:0,isTransitioning:false,routes:[{key:'a',routeName:'foo'},{key:'b',routeName:'bar'},{key:'c',routeName:'foo'}]})).toBe(FooScreen);expect(router.getComponentForState({index:1,isTransitioning:false,routes:[{key:'a',routeName:'foo'},{key:'b',routeName:'bar'}]})).toBe(BarScreen);});it('Gets the screen for given route',function(){var FooScreen=function FooScreen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:150}});};var BarScreen=function(_React$Component2){_inherits(BarScreen,_React$Component2);function BarScreen(){_classCallCheck(this,BarScreen);return _possibleConstructorReturn(this,_getPrototypeOf(BarScreen).apply(this,arguments));}_createClass(BarScreen,[{key:"render",value:function render(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:153}});}}]);return BarScreen;}(React.Component);var BazScreen=function(_React$Component3){_inherits(BazScreen,_React$Component3);function BazScreen(){_classCallCheck(this,BazScreen);return _possibleConstructorReturn(this,_getPrototypeOf(BazScreen).apply(this,arguments));}_createClass(BazScreen,[{key:"render",value:function render(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:158}});}}]);return BazScreen;}(React.Component);var router=StackRouter({foo:{screen:FooScreen},bar:{screen:BarScreen},baz:{screen:BazScreen}});expect(router.getComponentForRouteName('foo')).toBe(FooScreen);expect(router.getComponentForRouteName('bar')).toBe(BarScreen);expect(router.getComponentForRouteName('baz')).toBe(BazScreen);});it('Handles getScreen in getComponent',function(){var FooScreen=function FooScreen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:179}});};var BarScreen=function(_React$Component4){_inherits(BarScreen,_React$Component4);function BarScreen(){_classCallCheck(this,BarScreen);return _possibleConstructorReturn(this,_getPrototypeOf(BarScreen).apply(this,arguments));}_createClass(BarScreen,[{key:"render",value:function render(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:182}});}}]);return BarScreen;}(React.Component);var BazScreen=function(_React$Component5){_inherits(BazScreen,_React$Component5);function BazScreen(){_classCallCheck(this,BazScreen);return _possibleConstructorReturn(this,_getPrototypeOf(BazScreen).apply(this,arguments));}_createClass(BazScreen,[{key:"render",value:function render(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:187}});}}]);return BazScreen;}(React.Component);var router=StackRouter({foo:{getScreen:function getScreen(){return FooScreen;}},bar:{getScreen:function getScreen(){return BarScreen;}},baz:{getScreen:function getScreen(){return BazScreen;}}});expect(router.getComponentForRouteName('foo')).toBe(FooScreen);expect(router.getComponentForRouteName('bar')).toBe(BarScreen);expect(router.getComponentForRouteName('baz')).toBe(BazScreen);});it('Parses simple paths',function(){expect(AuthNavigator.router.getActionForPathAndParams('login')).toEqual({type:NavigationActions.NAVIGATE,routeName:'login',params:{}});});it('Parses paths with a param',function(){expect(TestStackRouter.getActionForPathAndParams('people/foo')).toEqual({type:NavigationActions.NAVIGATE,routeName:'person',params:{id:'foo'}});});it('Parses paths with a query',function(){expect(TestStackRouter.getActionForPathAndParams('people/foo',{code:'test',foo:'bar'})).toEqual({type:NavigationActions.NAVIGATE,routeName:'person',params:{id:'foo',code:'test',foo:'bar'}});});it('Parses paths with an empty query value',function(){expect(TestStackRouter.getActionForPathAndParams('people/foo',{code:'',foo:'bar'})).toEqual({type:NavigationActions.NAVIGATE,routeName:'person',params:{id:'foo',code:'',foo:'bar'}});});it('Correctly parses a path without arguments into an action chain',function(){var uri='auth/login';var action=TestStackRouter.getActionForPathAndParams(uri);expect(action).toEqual({type:NavigationActions.NAVIGATE,routeName:'auth',params:{},action:{type:NavigationActions.NAVIGATE,routeName:'login',params:{}}});});it('Correctly parses a path with arguments into an action chain',function(){var uri='main/p/4/list/10259959195';var action=TestStackRouter.getActionForPathAndParams(uri);expect(action).toEqual({type:NavigationActions.NAVIGATE,routeName:'main',params:{},action:{type:NavigationActions.NAVIGATE,routeName:'profile',params:{id:'4'},action:{type:NavigationActions.NAVIGATE,routeName:'list',params:{id:'10259959195'}}}});});it('Correctly parses a path to the router connected to another router through a pure wildcard route into an action chain',function(){var uri='b/123';var action=TestStackRouter.getActionForPathAndParams(uri);expect(action).toEqual({type:NavigationActions.NAVIGATE,routeName:'baz',params:{},action:{type:NavigationActions.NAVIGATE,routeName:'bar',params:{barThing:'123'}}});});it('Correctly returns null action for non-existent path',function(){var uri='asdf/1234';var action=TestStackRouter.getActionForPathAndParams(uri);expect(action).toEqual(null);});it('Correctly returns action chain for partially matched path',function(){var uri='auth/login';var action=TestStackRouter.getActionForPathAndParams(uri);expect(action).toEqual({type:NavigationActions.NAVIGATE,routeName:'auth',params:{},action:{type:NavigationActions.NAVIGATE,routeName:'login',params:{}}});});it('Correctly returns action for path with multiple parameters',function(){var path='fo/22/b/hello';var action=TestStackRouter.getActionForPathAndParams(path);expect(action).toEqual({type:NavigationActions.NAVIGATE,routeName:'foo',params:{fooThing:'22'},action:{type:NavigationActions.NAVIGATE,routeName:'bar',params:{barThing:'hello'}}});});it('Pushes other navigators when navigating to an unopened route name',function(){var Bar=function Bar(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:356}});};Bar.router=StackRouter({baz:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:358}});}},qux:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:359}});}}});var TestRouter=StackRouter({foo:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:362}});}},bar:{screen:Bar}});var initState=TestRouter.getStateForAction(NavigationActions.init());expect(initState).toEqual({index:0,isTransitioning:false,key:'StackRouterRoot',routes:[{key:'id-0',routeName:'foo'}]});var pushedState=TestRouter.getStateForAction(NavigationActions.navigate({routeName:'qux'}),initState);expect(pushedState.index).toEqual(1);expect(pushedState.routes[1].index).toEqual(1);expect(pushedState.routes[1].routes[1].routeName).toEqual('qux');});it('push bubbles up',function(){var ChildNavigator=function ChildNavigator(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:382}});};ChildNavigator.router=StackRouter({Baz:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:384}});}},Qux:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:385}});}}});var router=StackRouter({Foo:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:388}});}},Bar:{screen:ChildNavigator},Bad:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:390}});}}});var state=router.getStateForAction({type:NavigationActions.INIT});var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar'},state);var state3=router.getStateForAction({type:StackActions.PUSH,routeName:'Bad'},state2);expect(state3&&state3.index).toEqual(2);expect(state3&&state3.routes.length).toEqual(3);});it('pop bubbles up',function(){var ChildNavigator=function ChildNavigator(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:412}});};ChildNavigator.router=StackRouter({Baz:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:414}});}},Qux:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:415}});}}});var router=StackRouter({Foo:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:418}});}},Bar:{screen:ChildNavigator}});var state=router.getStateForAction({type:NavigationActions.INIT});var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar',key:'StackRouterRoot'},state);var state3=router.getStateForAction({type:StackActions.POP},state2);expect(state3&&state3.index).toEqual(0);});it('Handle navigation to nested navigator',function(){var action=TestStackRouter.getActionForPathAndParams('fo/22/b/hello');var state2=TestStackRouter.getStateForAction(action);expect(state2).toEqual({index:0,isTransitioning:false,key:'StackRouterRoot',routes:[{index:0,key:'id-1',isTransitioning:false,routeName:'foo',params:{fooThing:'22'},routes:[{routeName:'bar',key:'id-0',params:{barThing:'hello'}}]}]});});it('popToTop bubbles up',function(){var ChildNavigator=function ChildNavigator(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:472}});};ChildNavigator.router=StackRouter({Baz:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:474}});}},Qux:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:475}});}}});var router=StackRouter({Foo:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:479}});}},Bar:{screen:ChildNavigator}});var state=router.getStateForAction({type:NavigationActions.INIT});var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar'},state);var state3=router.getStateForAction({type:StackActions.POP_TO_TOP},state2);expect(state3&&state3.index).toEqual(0);});it('popToTop targets StackRouter by key if specified',function(){var ChildNavigator=function ChildNavigator(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:501}});};ChildNavigator.router=StackRouter({Baz:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:503}});}},Qux:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:504}});}}});var router=StackRouter({Foo:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:507}});}},Bar:{screen:ChildNavigator}});var state=router.getStateForAction({type:NavigationActions.INIT});var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar'},state);var state3=router.getStateForAction({type:StackActions.POP_TO_TOP,key:state2.key},state2);expect(state3&&state3.index).toEqual(0);});it('pop action works as expected',function(){var TestRouter=StackRouter({foo:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:531}});}},bar:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:532}});}}});var state={index:3,isTransitioning:false,routes:[{key:'A',routeName:'foo'},{key:'B',routeName:'bar',params:{bazId:'321'}},{key:'C',routeName:'foo'},{key:'D',routeName:'bar'}]};var poppedState=TestRouter.getStateForAction(StackActions.pop(),state);expect(poppedState.routes.length).toBe(3);expect(poppedState.index).toBe(2);expect(poppedState.isTransitioning).toBe(true);var poppedState2=TestRouter.getStateForAction(StackActions.pop({n:2,immediate:true}),state);expect(poppedState2.routes.length).toBe(2);expect(poppedState2.index).toBe(1);expect(poppedState2.isTransitioning).toBe(false);var poppedState3=TestRouter.getStateForAction(StackActions.pop({n:5}),state);expect(poppedState3.routes.length).toBe(1);expect(poppedState3.index).toBe(0);expect(poppedState3.isTransitioning).toBe(true);});it('popToTop works as expected',function(){var TestRouter=StackRouter({foo:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:569}});}},bar:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:570}});}}});var state={index:2,isTransitioning:false,routes:[{key:'A',routeName:'foo'},{key:'B',routeName:'bar',params:{bazId:'321'}},{key:'C',routeName:'foo'}]};var poppedState=TestRouter.getStateForAction(StackActions.popToTop(),state);expect(poppedState.routes.length).toBe(1);expect(poppedState.index).toBe(0);expect(poppedState.isTransitioning).toBe(true);var poppedState2=TestRouter.getStateForAction(StackActions.popToTop(),poppedState);expect(poppedState).toEqual(poppedState2);var poppedImmediatelyState=TestRouter.getStateForAction(StackActions.popToTop({immediate:true}),state);expect(poppedImmediatelyState.routes.length).toBe(1);expect(poppedImmediatelyState.index).toBe(0);expect(poppedImmediatelyState.isTransitioning).toBe(false);});it('Navigate does not push duplicate routeName',function(){var TestRouter=StackRouter({foo:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:606}});}},bar:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:607}});}}},{initialRouteName:'foo'});var initState=TestRouter.getStateForAction(NavigationActions.init());var barState=TestRouter.getStateForAction(NavigationActions.navigate({routeName:'bar'}),initState);expect(barState.index).toEqual(1);expect(barState.routes[1].routeName).toEqual('bar');var navigateOnBarState=TestRouter.getStateForAction(NavigationActions.navigate({routeName:'bar'}),barState);expect(navigateOnBarState).toEqual(null);});it('Navigate focuses given routeName if already active in stack',function(){var TestRouter=StackRouter({foo:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:628}});}},bar:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:629}});}},baz:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:630}});}}},{initialRouteName:'foo'});var initialState=TestRouter.getStateForAction(NavigationActions.init());var fooBarState=TestRouter.getStateForAction(NavigationActions.navigate({routeName:'bar'}),initialState);var fooBarBazState=TestRouter.getStateForAction(NavigationActions.navigate({routeName:'baz'}),fooBarState);expect(fooBarBazState.index).toEqual(2);expect(fooBarBazState.routes[2].routeName).toEqual('baz');var fooState=TestRouter.getStateForAction(NavigationActions.navigate({routeName:'foo'}),fooBarBazState);expect(fooState.index).toEqual(0);expect(fooState.routes.length).toEqual(1);expect(fooState.routes[0].routeName).toEqual('foo');});it('Navigate pushes duplicate routeName if unique key is provided',function(){var TestRouter=StackRouter({foo:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:657}});}},bar:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:658}});}}});var initState=TestRouter.getStateForAction(NavigationActions.init());var pushedState=TestRouter.getStateForAction(NavigationActions.navigate({routeName:'bar'}),initState);expect(pushedState.index).toEqual(1);expect(pushedState.routes[1].routeName).toEqual('bar');var pushedTwiceState=TestRouter.getStateForAction(NavigationActions.navigate({routeName:'bar',key:'new-unique-key!'}),pushedState);expect(pushedTwiceState.index).toEqual(2);expect(pushedTwiceState.routes[2].routeName).toEqual('bar');});it('Navigate from top propagates to any arbitary depth of stacks',function(){var GrandChildNavigator=function GrandChildNavigator(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:676}});};GrandChildNavigator.router=StackRouter({Quux:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:678}});}},Corge:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:679}});}}});var ChildNavigator=function ChildNavigator(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:682}});};ChildNavigator.router=StackRouter({Baz:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:684}});}},Woo:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:685}});}},Qux:{screen:GrandChildNavigator}});var Parent=StackRouter({Foo:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:690}});}},Bar:{screen:ChildNavigator}});var state=Parent.getStateForAction({type:NavigationActions.INIT});var state2=Parent.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Corge'},state);expect(state2.isTransitioning).toEqual(true);expect(state2.index).toEqual(1);expect(state2.routes[1].index).toEqual(1);expect(state2.routes[1].routes[1].index).toEqual(1);expect(state2.routes[1].routes[1].routes[1].routeName).toEqual('Corge');});it('Navigate to initial screen is possible',function(){var TestRouter=StackRouter({foo:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:713}});}},bar:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:714}});}}},{initialRouteKey:'foo'});var initState=TestRouter.getStateForAction(NavigationActions.init());var pushedState=TestRouter.getStateForAction(NavigationActions.navigate({routeName:'foo',key:'foo'}),initState);expect(pushedState).toEqual(null);});it('Navigate with key and without it is idempotent',function(){var TestRouter=StackRouter({foo:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:728}});}},bar:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:729}});}}});var initState=TestRouter.getStateForAction(NavigationActions.init());var pushedState=TestRouter.getStateForAction(NavigationActions.navigate({routeName:'bar',key:'a'}),initState);expect(pushedState.index).toEqual(1);expect(pushedState.routes[1].routeName).toEqual('bar');var pushedTwiceState=TestRouter.getStateForAction(NavigationActions.navigate({routeName:'bar',key:'a'}),pushedState);expect(pushedTwiceState).toEqual(null);});it('Navigate on inactive stackrouter is idempotent',function(){var FirstChildNavigator=function FirstChildNavigator(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:747}});};FirstChildNavigator.router=StackRouter({First1:function First1(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:749}});},First2:function First2(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:750}});}});var SecondChildNavigator=function SecondChildNavigator(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:753}});};SecondChildNavigator.router=StackRouter({Second1:function Second1(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:755}});},Second2:function Second2(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:756}});}});var router=StackRouter({Leaf:function Leaf(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:760}});},First:FirstChildNavigator,Second:SecondChildNavigator});var state=router.getStateForAction({type:NavigationActions.INIT});var first=router.getStateForAction(NavigationActions.navigate({routeName:'First2'}),state);var second=router.getStateForAction(NavigationActions.navigate({routeName:'Second2'}),first);var firstAgain=router.getStateForAction(NavigationActions.navigate({routeName:'First2',params:{debug:true}}),second);expect(first.routes.length).toEqual(2);expect(first.index).toEqual(1);expect(second.routes.length).toEqual(3);expect(second.index).toEqual(2);expect(firstAgain.index).toEqual(1);expect(firstAgain.routes.length).toEqual(2);});it('Navigate to current routeName returns null to indicate handled action',function(){var TestRouter=StackRouter({foo:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:796}});}},bar:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:797}});}}});var initState=TestRouter.getStateForAction(NavigationActions.init());var navigatedState=TestRouter.getStateForAction(NavigationActions.navigate({routeName:'foo'}),initState);expect(navigatedState).toBe(null);});it('Push behaves like navigate, except for key',function(){var TestRouter=StackRouter({foo:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:809}});}},bar:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:810}});}}});var initState=TestRouter.getStateForAction(NavigationActions.init());var pushedState=TestRouter.getStateForAction(StackActions.push({routeName:'bar'}),initState);expect(pushedState.index).toEqual(1);expect(pushedState.routes[1].routeName).toEqual('bar');expect(function(){TestRouter.getStateForAction({type:StackActions.PUSH,routeName:'bar',key:'a'},pushedState);}).toThrow('StackRouter does not support key on the push action');});it('Push adds new routes every time',function(){var TestRouter=StackRouter({foo:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:829}});}},bar:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:830}});}}});var initState=TestRouter.getStateForAction(NavigationActions.init());var pushedState=TestRouter.getStateForAction(StackActions.push({routeName:'bar'}),initState);expect(pushedState.index).toEqual(1);expect(pushedState.routes[1].routeName).toEqual('bar');var secondPushedState=TestRouter.getStateForAction(StackActions.push({routeName:'bar'}),pushedState);expect(secondPushedState.index).toEqual(2);expect(secondPushedState.routes[2].routeName).toEqual('bar');});it('Navigate backwards with key removes leading routes',function(){var TestRouter=StackRouter({foo:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:849}});}},bar:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:850}});}}});var initState=TestRouter.getStateForAction(NavigationActions.init());var pushedState=TestRouter.getStateForAction(NavigationActions.navigate({routeName:'bar',key:'a'}),initState);var pushedTwiceState=TestRouter.getStateForAction(NavigationActions.navigate({routeName:'bar',key:'b`'}),pushedState);var pushedThriceState=TestRouter.getStateForAction(NavigationActions.navigate({routeName:'foo',key:'c`'}),pushedTwiceState);expect(pushedThriceState.routes.length).toEqual(4);var navigatedBackToFirstRouteState=TestRouter.getStateForAction(NavigationActions.navigate({routeName:'foo',key:pushedThriceState.routes[0].key}),pushedThriceState);expect(navigatedBackToFirstRouteState.index).toEqual(0);expect(navigatedBackToFirstRouteState.routes.length).toEqual(1);});it('Handle basic stack logic for plain components',function(){var FooScreen=function FooScreen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:879}});};var BarScreen=function BarScreen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:880}});};var router=StackRouter({Foo:{screen:FooScreen},Bar:{screen:BarScreen}});var state=router.getStateForAction({type:NavigationActions.INIT});expect(state).toEqual({index:0,isTransitioning:false,key:'StackRouterRoot',routes:[{key:'id-0',routeName:'Foo'}]});var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar',params:{name:'Zoom'},immediate:true},state);expect(state2.index).toEqual(1);expect(state2.routes[1].routeName).toEqual('Bar');expect(state2.routes[1].params).toEqual({name:'Zoom'});expect(state2.routes.length).toEqual(2);var state3=router.getStateForAction({type:NavigationActions.BACK,immediate:true},state2);expect(state3).toEqual({index:0,isTransitioning:false,key:'StackRouterRoot',routes:[{key:'id-0',routeName:'Foo'}]});});it('Replace action works',function(){var TestRouter=StackRouter({foo:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:933}});}},bar:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:934}});}}});var initState=TestRouter.getStateForAction(NavigationActions.navigate({routeName:'foo'}));var replacedState=TestRouter.getStateForAction(StackActions.replace({routeName:'bar',params:{meaning:42},key:initState.routes[0].key}),initState);expect(replacedState.index).toEqual(0);expect(replacedState.routes.length).toEqual(1);expect(replacedState.routes[0].key).not.toEqual(initState.routes[0].key);expect(replacedState.routes[0].routeName).toEqual('bar');expect(replacedState.routes[0].params.meaning).toEqual(42);var replacedState2=TestRouter.getStateForAction(StackActions.replace({routeName:'bar',key:initState.routes[0].key,newKey:'wow'}),initState);expect(replacedState2.index).toEqual(0);expect(replacedState2.routes.length).toEqual(1);expect(replacedState2.routes[0].key).toEqual('wow');expect(replacedState2.routes[0].routeName).toEqual('bar');});it('Replace action returns most recent route if no key is provided',function(){var GrandChildNavigator=function GrandChildNavigator(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:967}});};GrandChildNavigator.router=StackRouter({Quux:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:969}});}},Corge:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:970}});}},Grault:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:971}});}}});var ChildNavigator=function ChildNavigator(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:974}});};ChildNavigator.router=StackRouter({Baz:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:976}});}},Woo:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:977}});}},Qux:{screen:GrandChildNavigator}});var router=StackRouter({Foo:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:982}});}},Bar:{screen:ChildNavigator}});var state=router.getStateForAction({type:NavigationActions.INIT});var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar'},state);var state3=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Qux'},state2);var state4=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Corge'},state3);var state5=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Grault'},state4);var replacedState=router.getStateForAction(StackActions.replace({routeName:'Woo',params:{meaning:42}}),state5);var originalCurrentScreen=state5.routes[1].routes[1].routes[2];var replacedCurrentScreen=replacedState.routes[1].routes[1].routes[2];expect(replacedState.routes[1].routes[1].index).toEqual(2);expect(replacedState.routes[1].routes[1].routes.length).toEqual(3);expect(replacedCurrentScreen.key).not.toEqual(originalCurrentScreen.key);expect(replacedCurrentScreen.routeName).not.toEqual(originalCurrentScreen.routeName);expect(replacedCurrentScreen.routeName).toEqual('Woo');expect(replacedCurrentScreen.params.meaning).toEqual(42);});it('Handles push transition logic with completion action',function(){var FooScreen=function FooScreen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1038}});};var BarScreen=function BarScreen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1039}});};var router=StackRouter({Foo:{screen:FooScreen},Bar:{screen:BarScreen}});var state=router.getStateForAction({type:NavigationActions.INIT});var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar',params:{name:'Zoom'}},state);expect(state2&&state2.index).toEqual(1);expect(state2&&state2.isTransitioning).toEqual(true);var state3=router.getStateForAction({type:StackActions.COMPLETE_TRANSITION,toChildKey:state2.routes[1].key},state2);expect(state3&&state3.index).toEqual(1);expect(state3&&state3.isTransitioning).toEqual(false);});it('Completion action does not work with incorrect key',function(){var FooScreen=function FooScreen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1071}});};var router=StackRouter({Foo:{screen:FooScreen},Bar:{screen:FooScreen}});var state={key:'StackKey',index:1,isTransitioning:true,routes:[{key:'a',routeName:'Foo'},{key:'b',routeName:'Foo'}]};var outputState=router.getStateForAction({type:StackActions.COMPLETE_TRANSITION,toChildKey:state.routes[state.index].key,key:'not StackKey'},state);expect(outputState.isTransitioning).toEqual(true);});it('Completion action does not work with incorrect toChildKey',function(){var FooScreen=function FooScreen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1098}});};var router=StackRouter({Foo:{screen:FooScreen},Bar:{screen:FooScreen}});var state={key:'StackKey',index:1,isTransitioning:true,routes:[{key:'a',routeName:'Foo'},{key:'b',routeName:'Foo'}]};var outputState=router.getStateForAction({type:StackActions.COMPLETE_TRANSITION,toChildKey:'incorrect',key:'StackKey'},state);expect(outputState.isTransitioning).toEqual(true);});it('Back action parent is prioritized over inactive child routers',function(){var Bar=function Bar(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1126}});};Bar.router=StackRouter({baz:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1128}});}},qux:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1129}});}}});var TestRouter=StackRouter({foo:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1132}});}},bar:{screen:Bar},boo:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1134}});}}});var state={key:'top',index:3,routes:[{routeName:'foo',key:'f'},{routeName:'bar',key:'b',index:1,routes:[{routeName:'baz',key:'bz'},{routeName:'qux',key:'bx'}]},{routeName:'foo',key:'f1'},{routeName:'boo',key:'z'}]};var testState=TestRouter.getStateForAction({type:NavigationActions.BACK},state);expect(testState.index).toBe(2);expect(testState.routes[1].index).toBe(1);});it('Handle basic stack logic for components with router',function(){var FooScreen=function FooScreen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1163}});};var BarScreen=function BarScreen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1164}});};BarScreen.router=StackRouter({Xyz:{screen:function screen(){return null;}}});var router=StackRouter({Foo:{screen:FooScreen},Bar:{screen:BarScreen}});var state=router.getStateForAction({type:NavigationActions.INIT});expect(state).toEqual({index:0,isTransitioning:false,key:'StackRouterRoot',routes:[{key:'id-0',routeName:'Foo'}]});var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar',params:{name:'Zoom'},immediate:true},state);expect(state2&&state2.index).toEqual(1);expect(state2&&state2.routes[1].routeName).toEqual('Bar');expect(state2&&state2.routes[1].params).toEqual({name:'Zoom'});expect(state2&&state2.routes.length).toEqual(2);var state3=router.getStateForAction({type:NavigationActions.BACK,immediate:true},state2);expect(state3).toEqual({index:0,isTransitioning:false,key:'StackRouterRoot',routes:[{key:'id-0',routeName:'Foo'}]});});it('Gets deep path (stack behavior)',function(){var ScreenA=function ScreenA(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1221}});};var ScreenB=function ScreenB(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1222}});};ScreenA.router=StackRouter({Boo:{path:'boo',screen:ScreenB},Baz:{path:'baz/:bazId',screen:ScreenB}});var router=StackRouter({Foo:{path:'f/:id',screen:ScreenA},Bar:{screen:ScreenB}});var state={index:0,isTransitioning:false,routes:[{index:1,key:'Foo',routeName:'Foo',params:{id:'123'},routes:[{key:'Boo',routeName:'Boo'},{key:'Baz',routeName:'Baz',params:{bazId:'321'}}]},{key:'Bar',routeName:'Bar'}]};var _router$getPathAndPar=router.getPathAndParamsForState(state),path=_router$getPathAndPar.path,params=_router$getPathAndPar.params;expect(path).toEqual('f/123/baz/321');expect(params).toEqual({});});it('Handle goBack identified by key',function(){var FooScreen=function FooScreen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1262}});};var BarScreen=function BarScreen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1263}});};var router=StackRouter({Foo:{screen:FooScreen},Bar:{screen:BarScreen}});var state=router.getStateForAction({type:NavigationActions.INIT});var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar',immediate:true,params:{name:'Zoom'}},state);var state3=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar',immediate:true,params:{name:'Foo'}},state2);var state4=router.getStateForAction({type:NavigationActions.BACK,key:'wrongKey'},state3);expect(state3).toEqual(state4);var state5=router.getStateForAction({type:NavigationActions.BACK,key:state3&&state3.routes[1].key,immediate:true},state4);expect(state5).toEqual(state);});it('Handle initial route navigation',function(){var FooScreen=function FooScreen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1308}});};var BarScreen=function BarScreen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1309}});};var router=StackRouter({Foo:{screen:FooScreen},Bar:{screen:BarScreen}},{initialRouteName:'Bar'});var state=router.getStateForAction({type:NavigationActions.INIT});expect(state).toEqual({index:0,isTransitioning:false,key:'StackRouterRoot',routes:[{key:'id-0',routeName:'Bar'}]});});it('Initial route params appear in nav state',function(){var FooScreen=function FooScreen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1336}});};var router=StackRouter({Foo:{screen:FooScreen}},{initialRouteName:'Foo',initialRouteParams:{foo:'bar'}});var state=router.getStateForAction({type:NavigationActions.INIT});expect(state).toEqual({index:0,isTransitioning:false,key:'StackRouterRoot',routes:[{key:state&&state.routes[0].key,routeName:'Foo',params:{foo:'bar'}}]});});it('params in route config are merged with initialRouteParams',function(){var FooScreen=function FooScreen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1361}});};var router=StackRouter({Foo:{screen:FooScreen,params:{foo:'not-bar',meaning:42}}},{initialRouteName:'Foo',initialRouteParams:{foo:'bar'}});var state=router.getStateForAction({type:NavigationActions.INIT});expect(state).toEqual({index:0,isTransitioning:false,key:'StackRouterRoot',routes:[{key:state&&state.routes[0].key,routeName:'Foo',params:{foo:'bar',meaning:42}}]});});it('Action params appear in nav state',function(){var FooScreen=function FooScreen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1387}});};var BarScreen=function BarScreen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1388}});};var router=StackRouter({Foo:{screen:FooScreen},Bar:{screen:BarScreen}});var state=router.getStateForAction({type:NavigationActions.INIT});var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar',params:{bar:'42'},immediate:true},state);expect(state2).not.toBeNull();expect(state2&&state2.index).toEqual(1);expect(state2&&state2.routes[1].params).toEqual({bar:'42'});});it('Handles the SetParams action',function(){var router=StackRouter({Foo:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1416}});}},Bar:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1419}});}}},{initialRouteName:'Bar',initialRouteParams:{name:'Zoo'}});var state=router.getStateForAction({type:NavigationActions.INIT});var key=state&&state.routes[0].key;var state2=key&&router.getStateForAction({type:NavigationActions.SET_PARAMS,params:{name:'Qux'},key:key},state);expect(state2&&state2.index).toEqual(0);expect(state2&&state2.routes[0].params).toEqual({name:'Qux'});});it('Handles the SetParams action for inactive routes',function(){var router=StackRouter({Foo:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1447}});}},Bar:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1450}});}}},{initialRouteName:'Bar',initialRouteParams:{name:'Zoo'}});var initialState={index:1,routes:[{key:'RouteA',routeName:'Foo',params:{name:'InitialParam',other:'Unchanged'}},{key:'RouteB',routeName:'Bar',params:{}}]};var state=router.getStateForAction({type:NavigationActions.SET_PARAMS,params:{name:'NewParam'},key:'RouteA'},initialState);expect(state.index).toEqual(1);expect(state.routes[0].params).toEqual({name:'NewParam',other:'Unchanged'});});it('Handles the setParams action with nested routers',function(){var ChildNavigator=function ChildNavigator(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1485}});};ChildNavigator.router=StackRouter({Baz:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1487}});}},Qux:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1488}});}}});var router=StackRouter({Foo:{screen:ChildNavigator},Bar:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1492}});}}});var state=router.getStateForAction({type:NavigationActions.INIT});var state2=router.getStateForAction({type:NavigationActions.SET_PARAMS,params:{name:'foobar'},key:'id-0'},state);expect(state2&&state2.index).toEqual(0);expect(state2&&state2.routes[0].routes).toEqual([{key:'id-0',routeName:'Baz',params:{name:'foobar'}}]);});it('Handles the reset action',function(){var router=StackRouter({Foo:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1516}});}},Bar:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1519}});}}});var state=router.getStateForAction({type:NavigationActions.INIT});var state2=router.getStateForAction({type:StackActions.RESET,actions:[{type:NavigationActions.NAVIGATE,routeName:'Foo',params:{bar:'42'},immediate:true},{type:NavigationActions.NAVIGATE,routeName:'Bar',immediate:true}],index:1},state);expect(state2&&state2.index).toEqual(1);expect(state2&&state2.routes[0].params).toEqual({bar:'42'});expect(state2&&state2.routes[0].routeName).toEqual('Foo');expect(state2&&state2.routes[1].routeName).toEqual('Bar');});it('Handles the reset action only with correct key set',function(){var router=StackRouter({Foo:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1552}});}},Bar:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1555}});}}});var state1=router.getStateForAction({type:NavigationActions.INIT});var resetAction={type:StackActions.RESET,key:'Bad Key',actions:[{type:NavigationActions.NAVIGATE,routeName:'Foo',params:{bar:'42'},immediate:true},{type:NavigationActions.NAVIGATE,routeName:'Bar',immediate:true}],index:1};var state2=router.getStateForAction(resetAction,state1);expect(state2).toEqual(state1);var state3=router.getStateForAction(_objectSpread({},resetAction,{key:state2.key}),state2);expect(state3&&state3.index).toEqual(1);expect(state3&&state3.routes[0].params).toEqual({bar:'42'});expect(state3&&state3.routes[0].routeName).toEqual('Foo');expect(state3&&state3.routes[1].routeName).toEqual('Bar');});it('Handles the reset action with nested Router',function(){var ChildRouter=StackRouter({baz:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1595}});}}});var ChildNavigator=function ChildNavigator(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1599}});};ChildNavigator.router=ChildRouter;var router=StackRouter({Foo:{screen:ChildNavigator},Bar:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1607}});}}});var state=router.getStateForAction({type:NavigationActions.INIT});var state2=router.getStateForAction({type:StackActions.RESET,key:null,actions:[{type:NavigationActions.NAVIGATE,routeName:'Foo',immediate:true}],index:0},state);expect(state2&&state2.index).toEqual(0);expect(state2&&state2.routes[0].routeName).toEqual('Foo');expect(state2&&state2.routes[0].routes[0].routeName).toEqual('baz');});it('Handles the reset action with a key',function(){var ChildRouter=StackRouter({baz:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1635}});}}});var ChildNavigator=function ChildNavigator(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1639}});};ChildNavigator.router=ChildRouter;var router=StackRouter({Foo:{screen:ChildNavigator},Bar:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1647}});}}});var state=router.getStateForAction({type:NavigationActions.INIT});var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Foo',immediate:true,action:{type:NavigationActions.NAVIGATE,routeName:'baz',immediate:true}},state);var state3=router.getStateForAction({type:StackActions.RESET,key:'Init',actions:[{type:NavigationActions.NAVIGATE,routeName:'Foo',immediate:true}],index:0},state2);var state4=router.getStateForAction({type:StackActions.RESET,key:null,actions:[{type:NavigationActions.NAVIGATE,routeName:'Bar',immediate:true}],index:0},state3);expect(state4&&state4.index).toEqual(0);expect(state4&&state4.routes[0].routeName).toEqual('Bar');});it('Handles the navigate action with params and nested StackRouter',function(){var ChildNavigator=function ChildNavigator(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1700}});};ChildNavigator.router=StackRouter({Baz:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1701}});}}});var router=StackRouter({Foo:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1704}});}},Bar:{screen:ChildNavigator}});var state=router.getStateForAction({type:NavigationActions.INIT});var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,immediate:true,routeName:'Bar',params:{foo:'42'}},state);expect(state2&&state2.routes[1].params).toEqual({foo:'42'});expect(state2&&state2.routes[1].routes).toEqual([expect.objectContaining({routeName:'Baz',params:{foo:'42'}})]);});it('Navigate action to previous nested StackRouter causes isTransitioning start',function(){var ChildNavigator=function ChildNavigator(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1727}});};ChildNavigator.router=StackRouter({Baz:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1729}});}}});var router=StackRouter({Bar:{screen:ChildNavigator},Foo:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1733}});}}});var state=router.getStateForAction({type:NavigationActions.NAVIGATE,immediate:true,routeName:'Foo'},router.getStateForAction({type:NavigationActions.INIT}));var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Baz'},state);expect(state2.index).toEqual(0);expect(state2.isTransitioning).toEqual(true);});it('Handles the navigate action with params and nested StackRouter as a first action',function(){var state=TestStackRouter.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'main',params:{code:'test',foo:'bar'},action:{type:NavigationActions.NAVIGATE,routeName:'profile',params:{id:'4',code:'test',foo:'bar'},action:{type:NavigationActions.NAVIGATE,routeName:'list',params:{id:'10259959195',code:'test',foo:'bar'}}}});expect(state).toEqual({index:0,isTransitioning:false,key:'StackRouterRoot',routes:[{index:0,isTransitioning:false,key:'id-2',params:{code:'test',foo:'bar'},routeName:'main',routes:[{index:0,isTransitioning:false,key:'id-1',params:{code:'test',foo:'bar',id:'4'},routeName:'profile',routes:[{key:'id-0',params:{code:'test',foo:'bar',id:'10259959195'},routeName:'list',type:undefined}]}]}]});var state2=TestStackRouter.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'main',params:{code:'',foo:'bar'},action:{type:NavigationActions.NAVIGATE,routeName:'profile',params:{id:'4',code:'',foo:'bar'},action:{type:NavigationActions.NAVIGATE,routeName:'list',params:{id:'10259959195',code:'',foo:'bar'}}}});expect(state2).toEqual({index:0,isTransitioning:false,key:'StackRouterRoot',routes:[{index:0,isTransitioning:false,key:'id-5',params:{code:'',foo:'bar'},routeName:'main',routes:[{index:0,isTransitioning:false,key:'id-4',params:{code:'',foo:'bar',id:'4'},routeName:'profile',routes:[{key:'id-3',params:{code:'',foo:'bar',id:'10259959195'},routeName:'list',type:undefined}]}]}]});});it('Handles deep navigate completion action',function(){var LeafScreen=function LeafScreen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1875}});};var FooScreen=function FooScreen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1876}});};FooScreen.router=StackRouter({Boo:{path:'boo',screen:LeafScreen},Baz:{path:'baz/:bazId',screen:LeafScreen}});var router=StackRouter({Foo:{screen:FooScreen},Bar:{screen:LeafScreen}});var state=router.getStateForAction({type:NavigationActions.INIT});expect(state&&state.index).toEqual(0);expect(state&&state.routes[0].routeName).toEqual('Foo');var key=state&&state.routes[0].key;var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Baz'},state);expect(state2.index).toEqual(0);expect(state2.isTransitioning).toEqual(false);expect(state2.routes[0].index).toEqual(1);expect(state2.routes[0].isTransitioning).toEqual(true);expect(!!key).toEqual(true);var state3=router.getStateForAction({type:StackActions.COMPLETE_TRANSITION,toChildKey:state2.routes[0].routes[1].key},state2);expect(state3&&state3.index).toEqual(0);expect(state3&&state3.isTransitioning).toEqual(false);expect(state3&&state3.routes[0].index).toEqual(1);expect(state3&&state3.routes[0].isTransitioning).toEqual(false);});it('order of handling navigate action is correct for nested stackrouters',function(){var Screen=function Screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1920}});};var NestedStack=function NestedStack(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1921}});};var nestedRouter=StackRouter({Foo:Screen,Bar:Screen});NestedStack.router=nestedRouter;var router=StackRouter({NestedStack:NestedStack,Bar:Screen,Baz:Screen},{initialRouteName:'Baz'});var state=router.getStateForAction({type:NavigationActions.INIT});expect(state.routes[state.index].routeName).toEqual('Baz');var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar'},state);expect(state2.routes[state2.index].routeName).toEqual('Bar');var state3=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Baz'},state2);expect(state3.routes[state3.index].routeName).toEqual('Baz');var state4=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Foo'},state3);var activeState4=state4.routes[state4.index];expect(activeState4.routeName).toEqual('NestedStack');expect(activeState4.routes[activeState4.index].routeName).toEqual('Foo');var state5=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar'},state4);var activeState5=state5.routes[state5.index];expect(activeState5.routeName).toEqual('NestedStack');expect(activeState5.routes[activeState5.index].routeName).toEqual('Bar');});it('order of handling navigate action is correct for nested stackrouters 2',function(){var Screen=function Screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1985}});};var NestedStack=function NestedStack(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1986}});};var OtherNestedStack=function OtherNestedStack(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1987}});};var nestedRouter=StackRouter({Foo:Screen,Bar:Screen});var otherNestedRouter=StackRouter({Foo:Screen});NestedStack.router=nestedRouter;OtherNestedStack.router=otherNestedRouter;var router=StackRouter({NestedStack:NestedStack,OtherNestedStack:OtherNestedStack,Bar:Screen},{initialRouteName:'OtherNestedStack'});var state=router.getStateForAction({type:NavigationActions.INIT});expect(state.routes[state.index].routeName).toEqual('OtherNestedStack');var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar'},state);expect(state2.routes[state2.index].routeName).toEqual('Bar');var state3=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'NestedStack'},state2);var state4=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar'},state3);var activeState4=state4.routes[state4.index];expect(activeState4.routeName).toEqual('NestedStack');expect(activeState4.routes[activeState4.index].routeName).toEqual('Bar');});});
++import _objectSpread from"@babel/runtime/helpers/objectSpread";import _classCallCheck from"@babel/runtime/helpers/classCallCheck";import _createClass from"@babel/runtime/helpers/createClass";import _possibleConstructorReturn from"@babel/runtime/helpers/possibleConstructorReturn";import _getPrototypeOf from"@babel/runtime/helpers/getPrototypeOf";import _inherits from"@babel/runtime/helpers/inherits";var _jsxFileName="/Users/brentvatne/coding/react-navigation-core/src/routers/__tests__/StackRouter-test.js";import React from'react';import StackRouter from'../StackRouter';import*as StackActions from'../StackActions';import*as NavigationActions from'../../NavigationActions';import{_TESTING_ONLY_normalize_keys}from'../KeyGenerator.ts';beforeEach(function(){_TESTING_ONLY_normalize_keys();});var ListScreen=function ListScreen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:14}});};var ProfileNavigator=function ProfileNavigator(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:16}});};ProfileNavigator.router=StackRouter({list:{path:'list/:id',screen:ListScreen}});var MainNavigator=function MainNavigator(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:24}});};MainNavigator.router=StackRouter({profile:{path:'p/:id',screen:ProfileNavigator}});var LoginScreen=function LoginScreen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:32}});};var AuthNavigator=function AuthNavigator(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:34}});};AuthNavigator.router=StackRouter({login:{screen:LoginScreen}});var BarScreen=function BarScreen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:41}});};var FooNavigator=function(_React$Component){_inherits(FooNavigator,_React$Component);function FooNavigator(){_classCallCheck(this,FooNavigator);return _possibleConstructorReturn(this,_getPrototypeOf(FooNavigator).apply(this,arguments));}_createClass(FooNavigator,[{key:"render",value:function render(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:51}});}}]);return FooNavigator;}(React.Component);FooNavigator.router=StackRouter({bar:{path:'b/:barThing',screen:BarScreen}});var PersonScreen=function PersonScreen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:55}});};var TestStackRouter=StackRouter({main:{screen:MainNavigator},baz:{path:null,screen:FooNavigator},auth:{screen:AuthNavigator},person:{path:'people/:id',screen:PersonScreen},foo:{path:'fo/:fooThing',screen:FooNavigator}});describe('StackRouter',function(){it('Gets the active screen for a given state',function(){var FooScreen=function FooScreen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:80}});};var BarScreen=function BarScreen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:81}});};var router=StackRouter({foo:{screen:FooScreen},bar:{screen:BarScreen}});expect(router.getComponentForState({index:0,transitions:{pushing:[],popping:[]},routes:[{key:'a',routeName:'foo'},{key:'b',routeName:'bar'},{key:'c',routeName:'foo'}]})).toBe(FooScreen);expect(router.getComponentForState({index:1,transitions:{pushing:[],popping:[]},routes:[{key:'a',routeName:'foo'},{key:'b',routeName:'bar'}]})).toBe(BarScreen);});it('Handles getScreen in getComponentForState',function(){var FooScreen=function FooScreen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:115}});};var BarScreen=function BarScreen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:116}});};var router=StackRouter({foo:{getScreen:function getScreen(){return FooScreen;}},bar:{getScreen:function getScreen(){return BarScreen;}}});expect(router.getComponentForState({index:0,transitions:{pushing:[],popping:[]},routes:[{key:'a',routeName:'foo'},{key:'b',routeName:'bar'},{key:'c',routeName:'foo'}]})).toBe(FooScreen);expect(router.getComponentForState({index:1,transitions:{pushing:[],popping:[]},routes:[{key:'a',routeName:'foo'},{key:'b',routeName:'bar'}]})).toBe(BarScreen);});it('Gets the screen for given route',function(){var FooScreen=function FooScreen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:150}});};var BarScreen=function(_React$Component2){_inherits(BarScreen,_React$Component2);function BarScreen(){_classCallCheck(this,BarScreen);return _possibleConstructorReturn(this,_getPrototypeOf(BarScreen).apply(this,arguments));}_createClass(BarScreen,[{key:"render",value:function render(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:153}});}}]);return BarScreen;}(React.Component);var BazScreen=function(_React$Component3){_inherits(BazScreen,_React$Component3);function BazScreen(){_classCallCheck(this,BazScreen);return _possibleConstructorReturn(this,_getPrototypeOf(BazScreen).apply(this,arguments));}_createClass(BazScreen,[{key:"render",value:function render(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:158}});}}]);return BazScreen;}(React.Component);var router=StackRouter({foo:{screen:FooScreen},bar:{screen:BarScreen},baz:{screen:BazScreen}});expect(router.getComponentForRouteName('foo')).toBe(FooScreen);expect(router.getComponentForRouteName('bar')).toBe(BarScreen);expect(router.getComponentForRouteName('baz')).toBe(BazScreen);});it('Handles getScreen in getComponent',function(){var FooScreen=function FooScreen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:179}});};var BarScreen=function(_React$Component4){_inherits(BarScreen,_React$Component4);function BarScreen(){_classCallCheck(this,BarScreen);return _possibleConstructorReturn(this,_getPrototypeOf(BarScreen).apply(this,arguments));}_createClass(BarScreen,[{key:"render",value:function render(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:182}});}}]);return BarScreen;}(React.Component);var BazScreen=function(_React$Component5){_inherits(BazScreen,_React$Component5);function BazScreen(){_classCallCheck(this,BazScreen);return _possibleConstructorReturn(this,_getPrototypeOf(BazScreen).apply(this,arguments));}_createClass(BazScreen,[{key:"render",value:function render(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:187}});}}]);return BazScreen;}(React.Component);var router=StackRouter({foo:{getScreen:function getScreen(){return FooScreen;}},bar:{getScreen:function getScreen(){return BarScreen;}},baz:{getScreen:function getScreen(){return BazScreen;}}});expect(router.getComponentForRouteName('foo')).toBe(FooScreen);expect(router.getComponentForRouteName('bar')).toBe(BarScreen);expect(router.getComponentForRouteName('baz')).toBe(BazScreen);});it('Parses simple paths',function(){expect(AuthNavigator.router.getActionForPathAndParams('login')).toEqual({type:NavigationActions.NAVIGATE,routeName:'login',params:{}});});it('Parses paths with a param',function(){expect(TestStackRouter.getActionForPathAndParams('people/foo')).toEqual({type:NavigationActions.NAVIGATE,routeName:'person',params:{id:'foo'}});});it('Parses paths with a query',function(){expect(TestStackRouter.getActionForPathAndParams('people/foo',{code:'test',foo:'bar'})).toEqual({type:NavigationActions.NAVIGATE,routeName:'person',params:{id:'foo',code:'test',foo:'bar'}});});it('Parses paths with an empty query value',function(){expect(TestStackRouter.getActionForPathAndParams('people/foo',{code:'',foo:'bar'})).toEqual({type:NavigationActions.NAVIGATE,routeName:'person',params:{id:'foo',code:'',foo:'bar'}});});it('Correctly parses a path without arguments into an action chain',function(){var uri='auth/login';var action=TestStackRouter.getActionForPathAndParams(uri);expect(action).toEqual({type:NavigationActions.NAVIGATE,routeName:'auth',params:{},action:{type:NavigationActions.NAVIGATE,routeName:'login',params:{}}});});it('Correctly parses a path with arguments into an action chain',function(){var uri='main/p/4/list/10259959195';var action=TestStackRouter.getActionForPathAndParams(uri);expect(action).toEqual({type:NavigationActions.NAVIGATE,routeName:'main',params:{},action:{type:NavigationActions.NAVIGATE,routeName:'profile',params:{id:'4'},action:{type:NavigationActions.NAVIGATE,routeName:'list',params:{id:'10259959195'}}}});});it('Correctly parses a path to the router connected to another router through a pure wildcard route into an action chain',function(){var uri='b/123';var action=TestStackRouter.getActionForPathAndParams(uri);expect(action).toEqual({type:NavigationActions.NAVIGATE,routeName:'baz',params:{},action:{type:NavigationActions.NAVIGATE,routeName:'bar',params:{barThing:'123'}}});});it('Correctly returns null action for non-existent path',function(){var uri='asdf/1234';var action=TestStackRouter.getActionForPathAndParams(uri);expect(action).toEqual(null);});it('Correctly returns action chain for partially matched path',function(){var uri='auth/login';var action=TestStackRouter.getActionForPathAndParams(uri);expect(action).toEqual({type:NavigationActions.NAVIGATE,routeName:'auth',params:{},action:{type:NavigationActions.NAVIGATE,routeName:'login',params:{}}});});it('Correctly returns action for path with multiple parameters',function(){var path='fo/22/b/hello';var action=TestStackRouter.getActionForPathAndParams(path);expect(action).toEqual({type:NavigationActions.NAVIGATE,routeName:'foo',params:{fooThing:'22'},action:{type:NavigationActions.NAVIGATE,routeName:'bar',params:{barThing:'hello'}}});});it('Pushes other navigators when navigating to an unopened route name',function(){var Bar=function Bar(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:356}});};Bar.router=StackRouter({baz:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:358}});}},qux:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:359}});}}});var TestRouter=StackRouter({foo:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:362}});}},bar:{screen:Bar}});var initState=TestRouter.getStateForAction(NavigationActions.init());expect(initState).toEqual({index:0,transitions:{pushing:[],popping:[]},key:'StackRouterRoot',routes:[{key:'id-0',routeName:'foo'}]});var pushedState=TestRouter.getStateForAction(NavigationActions.navigate({routeName:'qux'}),initState);expect(pushedState.index).toEqual(1);expect(pushedState.routes[1].index).toEqual(1);expect(pushedState.routes[1].routes[1].routeName).toEqual('qux');});it('push bubbles up',function(){var ChildNavigator=function ChildNavigator(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:382}});};ChildNavigator.router=StackRouter({Baz:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:384}});}},Qux:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:385}});}}});var router=StackRouter({Foo:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:388}});}},Bar:{screen:ChildNavigator},Bad:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:390}});}}});var state=router.getStateForAction({type:NavigationActions.INIT});var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar'},state);var state3=router.getStateForAction({type:StackActions.PUSH,routeName:'Bad'},state2);expect(state3&&state3.index).toEqual(2);expect(state3&&state3.routes.length).toEqual(3);});it('pop bubbles up',function(){var ChildNavigator=function ChildNavigator(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:412}});};ChildNavigator.router=StackRouter({Baz:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:414}});}},Qux:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:415}});}}});var router=StackRouter({Foo:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:418}});}},Bar:{screen:ChildNavigator}});var state=router.getStateForAction({type:NavigationActions.INIT});var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar',key:'StackRouterRoot'},state);var state3=router.getStateForAction({type:StackActions.POP},state2);expect(state3&&state3.index).toEqual(0);});it('Handle navigation to nested navigator',function(){var action=TestStackRouter.getActionForPathAndParams('fo/22/b/hello');var state2=TestStackRouter.getStateForAction(action);expect(state2).toEqual({index:0,transitions:{pushing:[],popping:[]},key:'StackRouterRoot',routes:[{index:0,key:'id-1',transitions:{pushing:[],popping:[]},routeName:'foo',params:{fooThing:'22'},routes:[{routeName:'bar',key:'id-0',params:{barThing:'hello'}}]}]});});it('popToTop bubbles up',function(){var ChildNavigator=function ChildNavigator(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:472}});};ChildNavigator.router=StackRouter({Baz:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:474}});}},Qux:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:475}});}}});var router=StackRouter({Foo:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:479}});}},Bar:{screen:ChildNavigator}});var state=router.getStateForAction({type:NavigationActions.INIT});var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar'},state);var state3=router.getStateForAction({type:StackActions.POP_TO_TOP},state2);expect(state3&&state3.index).toEqual(0);});it('popToTop targets StackRouter by key if specified',function(){var ChildNavigator=function ChildNavigator(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:501}});};ChildNavigator.router=StackRouter({Baz:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:503}});}},Qux:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:504}});}}});var router=StackRouter({Foo:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:507}});}},Bar:{screen:ChildNavigator}});var state=router.getStateForAction({type:NavigationActions.INIT});var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar'},state);var state3=router.getStateForAction({type:StackActions.POP_TO_TOP,key:state2.key},state2);expect(state3&&state3.index).toEqual(0);});it('pop action works as expected',function(){var TestRouter=StackRouter({foo:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:531}});}},bar:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:532}});}}});var state={index:3,transitions:{pushing:[],popping:[]},routes:[{key:'A',routeName:'foo'},{key:'B',routeName:'bar',params:{bazId:'321'}},{key:'C',routeName:'foo'},{key:'D',routeName:'bar'}]};var poppedState=TestRouter.getStateForAction(StackActions.pop(),state);expect(poppedState.routes.length).toBe(3);expect(poppedState.index).toBe(2);expect(poppedState.transitions).toEqual({pushing:[],popping:['D']});var poppedState2=TestRouter.getStateForAction(StackActions.pop({n:2,immediate:true}),state);expect(poppedState2.routes.length).toBe(2);expect(poppedState2.index).toBe(1);expect(poppedState2.transitions).toEqual({pushing:[],popping:[]});var poppedState3=TestRouter.getStateForAction(StackActions.pop({n:5}),state);expect(poppedState3.routes.length).toBe(1);expect(poppedState3.index).toBe(0);expect(poppedState3.transitions).toEqual({pushing:[],popping:['D']});});it('popToTop works as expected',function(){var TestRouter=StackRouter({foo:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:569}});}},bar:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:570}});}}});var state={index:2,transitions:{pushing:[],popping:[]},routes:[{key:'A',routeName:'foo'},{key:'B',routeName:'bar',params:{bazId:'321'}},{key:'C',routeName:'foo'}]};var poppedState=TestRouter.getStateForAction(StackActions.popToTop(),state);expect(poppedState.routes.length).toBe(1);expect(poppedState.index).toBe(0);expect(poppedState.transitions).toEqual({popping:['C'],pushing:[]});var poppedState2=TestRouter.getStateForAction(StackActions.popToTop(),poppedState);expect(poppedState).toEqual(poppedState2);var poppedImmediatelyState=TestRouter.getStateForAction(StackActions.popToTop({immediate:true}),state);expect(poppedImmediatelyState.routes.length).toBe(1);expect(poppedImmediatelyState.index).toBe(0);expect(poppedImmediatelyState.transitions).toEqual({pushing:[],popping:[]});});it('Navigate does not push duplicate routeName',function(){var TestRouter=StackRouter({foo:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:609}});}},bar:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:610}});}}},{initialRouteName:'foo'});var initState=TestRouter.getStateForAction(NavigationActions.init());var barState=TestRouter.getStateForAction(NavigationActions.navigate({routeName:'bar'}),initState);expect(barState.index).toEqual(1);expect(barState.routes[1].routeName).toEqual('bar');var navigateOnBarState=TestRouter.getStateForAction(NavigationActions.navigate({routeName:'bar'}),barState);expect(navigateOnBarState).toEqual(null);});it('Navigate focuses given routeName if already active in stack',function(){var TestRouter=StackRouter({foo:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:631}});}},bar:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:632}});}},baz:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:633}});}}},{initialRouteName:'foo'});var initialState=TestRouter.getStateForAction(NavigationActions.init());var fooBarState=TestRouter.getStateForAction(NavigationActions.navigate({routeName:'bar'}),initialState);var fooBarBazState=TestRouter.getStateForAction(NavigationActions.navigate({routeName:'baz'}),fooBarState);expect(fooBarBazState.index).toEqual(2);expect(fooBarBazState.routes[2].routeName).toEqual('baz');var fooState=TestRouter.getStateForAction(NavigationActions.navigate({routeName:'foo'}),fooBarBazState);expect(fooState.index).toEqual(0);expect(fooState.routes.length).toEqual(1);expect(fooState.routes[0].routeName).toEqual('foo');});it('Navigate pushes duplicate routeName if unique key is provided',function(){var TestRouter=StackRouter({foo:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:660}});}},bar:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:661}});}}});var initState=TestRouter.getStateForAction(NavigationActions.init());var pushedState=TestRouter.getStateForAction(NavigationActions.navigate({routeName:'bar'}),initState);expect(pushedState.index).toEqual(1);expect(pushedState.routes[1].routeName).toEqual('bar');var pushedTwiceState=TestRouter.getStateForAction(NavigationActions.navigate({routeName:'bar',key:'new-unique-key!'}),pushedState);expect(pushedTwiceState.index).toEqual(2);expect(pushedTwiceState.routes[2].routeName).toEqual('bar');});it('Navigate from top propagates to any arbitary depth of stacks',function(){var GrandChildNavigator=function GrandChildNavigator(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:679}});};GrandChildNavigator.router=StackRouter({Quux:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:681}});}},Corge:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:682}});}}});var ChildNavigator=function ChildNavigator(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:685}});};ChildNavigator.router=StackRouter({Baz:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:687}});}},Woo:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:688}});}},Qux:{screen:GrandChildNavigator}});var Parent=StackRouter({Foo:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:693}});}},Bar:{screen:ChildNavigator}});var state=Parent.getStateForAction({type:NavigationActions.INIT});var state2=Parent.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Corge'},state);expect(state2.transitions).toEqual({popping:[],pushing:['id-5']});expect(state2.index).toEqual(1);expect(state2.routes[1].index).toEqual(1);expect(state2.routes[1].routes[1].index).toEqual(1);expect(state2.routes[1].routes[1].routes[1].routeName).toEqual('Corge');});it('Navigate to initial screen is possible',function(){var TestRouter=StackRouter({foo:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:716}});}},bar:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:717}});}}},{initialRouteKey:'foo'});var initState=TestRouter.getStateForAction(NavigationActions.init());var pushedState=TestRouter.getStateForAction(NavigationActions.navigate({routeName:'foo',key:'foo'}),initState);expect(pushedState).toEqual(null);});it('Navigate with key and without it is idempotent',function(){var TestRouter=StackRouter({foo:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:731}});}},bar:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:732}});}}});var initState=TestRouter.getStateForAction(NavigationActions.init());var pushedState=TestRouter.getStateForAction(NavigationActions.navigate({routeName:'bar',key:'a'}),initState);expect(pushedState.index).toEqual(1);expect(pushedState.routes[1].routeName).toEqual('bar');var pushedTwiceState=TestRouter.getStateForAction(NavigationActions.navigate({routeName:'bar',key:'a'}),pushedState);expect(pushedTwiceState).toEqual(null);});it('Navigate on inactive stackrouter is idempotent',function(){var FirstChildNavigator=function FirstChildNavigator(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:750}});};FirstChildNavigator.router=StackRouter({First1:function First1(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:752}});},First2:function First2(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:753}});}});var SecondChildNavigator=function SecondChildNavigator(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:756}});};SecondChildNavigator.router=StackRouter({Second1:function Second1(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:758}});},Second2:function Second2(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:759}});}});var router=StackRouter({Leaf:function Leaf(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:763}});},First:FirstChildNavigator,Second:SecondChildNavigator});var state=router.getStateForAction({type:NavigationActions.INIT});var first=router.getStateForAction(NavigationActions.navigate({routeName:'First2'}),state);var second=router.getStateForAction(NavigationActions.navigate({routeName:'Second2'}),first);var firstAgain=router.getStateForAction(NavigationActions.navigate({routeName:'First2',params:{debug:true}}),second);expect(first.routes.length).toEqual(2);expect(first.index).toEqual(1);expect(second.routes.length).toEqual(3);expect(second.index).toEqual(2);expect(firstAgain.index).toEqual(1);expect(firstAgain.routes.length).toEqual(2);});it('Navigate to current routeName returns null to indicate handled action',function(){var TestRouter=StackRouter({foo:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:799}});}},bar:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:800}});}}});var initState=TestRouter.getStateForAction(NavigationActions.init());var navigatedState=TestRouter.getStateForAction(NavigationActions.navigate({routeName:'foo'}),initState);expect(navigatedState).toBe(null);});it('Push behaves like navigate, except for key',function(){var TestRouter=StackRouter({foo:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:812}});}},bar:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:813}});}}});var initState=TestRouter.getStateForAction(NavigationActions.init());var pushedState=TestRouter.getStateForAction(StackActions.push({routeName:'bar'}),initState);expect(pushedState.index).toEqual(1);expect(pushedState.routes[1].routeName).toEqual('bar');expect(function(){TestRouter.getStateForAction({type:StackActions.PUSH,routeName:'bar',key:'a'},pushedState);}).toThrow('StackRouter does not support key on the push action');});it('Push adds new routes every time',function(){var TestRouter=StackRouter({foo:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:832}});}},bar:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:833}});}}});var initState=TestRouter.getStateForAction(NavigationActions.init());var pushedState=TestRouter.getStateForAction(StackActions.push({routeName:'bar'}),initState);expect(pushedState.index).toEqual(1);expect(pushedState.routes[1].routeName).toEqual('bar');var secondPushedState=TestRouter.getStateForAction(StackActions.push({routeName:'bar'}),pushedState);expect(secondPushedState.index).toEqual(2);expect(secondPushedState.routes[2].routeName).toEqual('bar');});it('Navigate backwards with key removes leading routes',function(){var TestRouter=StackRouter({foo:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:852}});}},bar:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:853}});}}});var initState=TestRouter.getStateForAction(NavigationActions.init());var pushedState=TestRouter.getStateForAction(NavigationActions.navigate({routeName:'bar',key:'a'}),initState);var pushedTwiceState=TestRouter.getStateForAction(NavigationActions.navigate({routeName:'bar',key:'b`'}),pushedState);var pushedThriceState=TestRouter.getStateForAction(NavigationActions.navigate({routeName:'foo',key:'c`'}),pushedTwiceState);expect(pushedThriceState.routes.length).toEqual(4);var navigatedBackToFirstRouteState=TestRouter.getStateForAction(NavigationActions.navigate({routeName:'foo',key:pushedThriceState.routes[0].key}),pushedThriceState);expect(navigatedBackToFirstRouteState.index).toEqual(0);expect(navigatedBackToFirstRouteState.routes.length).toEqual(1);});it('Handle basic stack logic for plain components',function(){var FooScreen=function FooScreen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:882}});};var BarScreen=function BarScreen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:883}});};var router=StackRouter({Foo:{screen:FooScreen},Bar:{screen:BarScreen}});var state=router.getStateForAction({type:NavigationActions.INIT});expect(state).toEqual({index:0,transitions:{pushing:[],popping:[]},key:'StackRouterRoot',routes:[{key:'id-0',routeName:'Foo'}]});var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar',params:{name:'Zoom'},immediate:true},state);expect(state2.index).toEqual(1);expect(state2.routes[1].routeName).toEqual('Bar');expect(state2.routes[1].params).toEqual({name:'Zoom'});expect(state2.routes.length).toEqual(2);var state3=router.getStateForAction({type:NavigationActions.BACK,immediate:true},state2);expect(state3).toEqual({index:0,transitions:{pushing:[],popping:[]},key:'StackRouterRoot',routes:[{key:'id-0',routeName:'Foo'}]});});it('Replace action works',function(){var TestRouter=StackRouter({foo:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:936}});}},bar:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:937}});}}});var initState=TestRouter.getStateForAction(NavigationActions.navigate({routeName:'foo'}));var replacedState=TestRouter.getStateForAction(StackActions.replace({routeName:'bar',params:{meaning:42},key:initState.routes[0].key}),initState);expect(replacedState.index).toEqual(0);expect(replacedState.routes.length).toEqual(1);expect(replacedState.routes[0].key).not.toEqual(initState.routes[0].key);expect(replacedState.routes[0].routeName).toEqual('bar');expect(replacedState.routes[0].params.meaning).toEqual(42);var replacedState2=TestRouter.getStateForAction(StackActions.replace({routeName:'bar',key:initState.routes[0].key,newKey:'wow'}),initState);expect(replacedState2.index).toEqual(0);expect(replacedState2.routes.length).toEqual(1);expect(replacedState2.routes[0].key).toEqual('wow');expect(replacedState2.routes[0].routeName).toEqual('bar');});it('Replace action returns most recent route if no key is provided',function(){var GrandChildNavigator=function GrandChildNavigator(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:970}});};GrandChildNavigator.router=StackRouter({Quux:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:972}});}},Corge:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:973}});}},Grault:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:974}});}}});var ChildNavigator=function ChildNavigator(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:977}});};ChildNavigator.router=StackRouter({Baz:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:979}});}},Woo:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:980}});}},Qux:{screen:GrandChildNavigator}});var router=StackRouter({Foo:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:985}});}},Bar:{screen:ChildNavigator}});var state=router.getStateForAction({type:NavigationActions.INIT});var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar'},state);var state3=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Qux'},state2);var state4=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Corge'},state3);var state5=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Grault'},state4);var replacedState=router.getStateForAction(StackActions.replace({routeName:'Woo',params:{meaning:42}}),state5);var originalCurrentScreen=state5.routes[1].routes[1].routes[2];var replacedCurrentScreen=replacedState.routes[1].routes[1].routes[2];expect(replacedState.routes[1].routes[1].index).toEqual(2);expect(replacedState.routes[1].routes[1].routes.length).toEqual(3);expect(replacedCurrentScreen.key).not.toEqual(originalCurrentScreen.key);expect(replacedCurrentScreen.routeName).not.toEqual(originalCurrentScreen.routeName);expect(replacedCurrentScreen.routeName).toEqual('Woo');expect(replacedCurrentScreen.params.meaning).toEqual(42);});it('Handles push transition logic with completion action',function(){var FooScreen=function FooScreen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1041}});};var BarScreen=function BarScreen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1042}});};var router=StackRouter({Foo:{screen:FooScreen},Bar:{screen:BarScreen}});var state=router.getStateForAction({type:NavigationActions.INIT});var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar',params:{name:'Zoom'}},state);expect(state2&&state2.index).toEqual(1);expect(state2&&state2.transitions).toEqual({popping:[],pushing:['id-1']});var state3=router.getStateForAction({type:StackActions.COMPLETE_TRANSITION,toChildKey:state2.routes[1].key},state2);expect(state3&&state3.index).toEqual(1);expect(state3&&state3.transitions).toEqual({pushing:[],popping:[]});});it('Completion action does not work with incorrect key',function(){var FooScreen=function FooScreen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1077}});};var router=StackRouter({Foo:{screen:FooScreen},Bar:{screen:FooScreen}});var state={key:'StackKey',index:1,transitions:{pushing:['b'],popping:[]},routes:[{key:'a',routeName:'Foo'},{key:'b',routeName:'Foo'}]};var outputState=router.getStateForAction({type:StackActions.COMPLETE_TRANSITION,toChildKey:state.routes[state.index].key,key:'not StackKey'},state);expect(outputState.transitions).toEqual({pushing:['b'],popping:[]});});it('Completion action does not work with incorrect toChildKey',function(){var FooScreen=function FooScreen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1104}});};var router=StackRouter({Foo:{screen:FooScreen},Bar:{screen:FooScreen}});var state={key:'StackKey',index:1,transitions:{pushing:['b'],popping:[]},routes:[{key:'a',routeName:'Foo'},{key:'b',routeName:'Foo'}]};var outputState=router.getStateForAction({type:StackActions.COMPLETE_TRANSITION,toChildKey:'incorrect',key:'StackKey'},state);expect(outputState.transitions).toEqual({pushing:['b'],popping:[]});});it('Back action parent is prioritized over inactive child routers',function(){var Bar=function Bar(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1132}});};Bar.router=StackRouter({baz:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1134}});}},qux:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1135}});}}});var TestRouter=StackRouter({foo:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1138}});}},bar:{screen:Bar},boo:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1140}});}}});var state={key:'top',index:3,routes:[{routeName:'foo',key:'f'},{routeName:'bar',key:'b',index:1,routes:[{routeName:'baz',key:'bz'},{routeName:'qux',key:'bx'}]},{routeName:'foo',key:'f1'},{routeName:'boo',key:'z'}],transitions:{pushing:[],popping:[]}};var testState=TestRouter.getStateForAction({type:NavigationActions.BACK},state);expect(testState.index).toBe(2);expect(testState.routes[1].index).toBe(1);});it('Handle basic stack logic for components with router',function(){var FooScreen=function FooScreen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1170}});};var BarScreen=function BarScreen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1171}});};BarScreen.router=StackRouter({Xyz:{screen:function screen(){return null;}}});var router=StackRouter({Foo:{screen:FooScreen},Bar:{screen:BarScreen}});var state=router.getStateForAction({type:NavigationActions.INIT});expect(state).toEqual({index:0,transitions:{pushing:[],popping:[]},key:'StackRouterRoot',routes:[{key:'id-0',routeName:'Foo'}]});var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar',params:{name:'Zoom'},immediate:true},state);expect(state2&&state2.index).toEqual(1);expect(state2&&state2.routes[1].routeName).toEqual('Bar');expect(state2&&state2.routes[1].params).toEqual({name:'Zoom'});expect(state2&&state2.routes.length).toEqual(2);var state3=router.getStateForAction({type:NavigationActions.BACK,immediate:true},state2);expect(state3).toEqual({index:0,transitions:{pushing:[],popping:[]},key:'StackRouterRoot',routes:[{key:'id-0',routeName:'Foo'}]});});it('Gets deep path (stack behavior)',function(){var ScreenA=function ScreenA(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1228}});};var ScreenB=function ScreenB(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1229}});};ScreenA.router=StackRouter({Boo:{path:'boo',screen:ScreenB},Baz:{path:'baz/:bazId',screen:ScreenB}});var router=StackRouter({Foo:{path:'f/:id',screen:ScreenA},Bar:{screen:ScreenB}});var state={index:0,transitions:{pushing:[],popping:[]},routes:[{index:1,key:'Foo',routeName:'Foo',params:{id:'123'},routes:[{key:'Boo',routeName:'Boo'},{key:'Baz',routeName:'Baz',params:{bazId:'321'}}]},{key:'Bar',routeName:'Bar'}]};var _router$getPathAndPar=router.getPathAndParamsForState(state),path=_router$getPathAndPar.path,params=_router$getPathAndPar.params;expect(path).toEqual('f/123/baz/321');expect(params).toEqual({});});it('Handle goBack identified by key',function(){var FooScreen=function FooScreen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1269}});};var BarScreen=function BarScreen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1270}});};var router=StackRouter({Foo:{screen:FooScreen},Bar:{screen:BarScreen}});var state=router.getStateForAction({type:NavigationActions.INIT});var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar',immediate:true,params:{name:'Zoom'}},state);var state3=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar',immediate:true,params:{name:'Foo'}},state2);var state4=router.getStateForAction({type:NavigationActions.BACK,key:'wrongKey'},state3);expect(state3).toEqual(state4);var state5=router.getStateForAction({type:NavigationActions.BACK,key:state3&&state3.routes[1].key,immediate:true},state4);expect(state5).toEqual(state);});it('Handle initial route navigation',function(){var FooScreen=function FooScreen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1315}});};var BarScreen=function BarScreen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1316}});};var router=StackRouter({Foo:{screen:FooScreen},Bar:{screen:BarScreen}},{initialRouteName:'Bar'});var state=router.getStateForAction({type:NavigationActions.INIT});expect(state).toEqual({index:0,transitions:{pushing:[],popping:[]},key:'StackRouterRoot',routes:[{key:'id-0',routeName:'Bar'}]});});it('Initial route params appear in nav state',function(){var FooScreen=function FooScreen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1343}});};var router=StackRouter({Foo:{screen:FooScreen}},{initialRouteName:'Foo',initialRouteParams:{foo:'bar'}});var state=router.getStateForAction({type:NavigationActions.INIT});expect(state).toEqual({index:0,transitions:{pushing:[],popping:[]},key:'StackRouterRoot',routes:[{key:state&&state.routes[0].key,routeName:'Foo',params:{foo:'bar'}}]});});it('params in route config are merged with initialRouteParams',function(){var FooScreen=function FooScreen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1368}});};var router=StackRouter({Foo:{screen:FooScreen,params:{foo:'not-bar',meaning:42}}},{initialRouteName:'Foo',initialRouteParams:{foo:'bar'}});var state=router.getStateForAction({type:NavigationActions.INIT});expect(state).toEqual({index:0,transitions:{pushing:[],popping:[]},key:'StackRouterRoot',routes:[{key:state&&state.routes[0].key,routeName:'Foo',params:{foo:'bar',meaning:42}}]});});it('Action params appear in nav state',function(){var FooScreen=function FooScreen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1394}});};var BarScreen=function BarScreen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1395}});};var router=StackRouter({Foo:{screen:FooScreen},Bar:{screen:BarScreen}});var state=router.getStateForAction({type:NavigationActions.INIT});var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar',params:{bar:'42'},immediate:true},state);expect(state2).not.toBeNull();expect(state2&&state2.index).toEqual(1);expect(state2&&state2.routes[1].params).toEqual({bar:'42'});});it('Handles the SetParams action',function(){var router=StackRouter({Foo:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1423}});}},Bar:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1426}});}}},{initialRouteName:'Bar',initialRouteParams:{name:'Zoo'}});var state=router.getStateForAction({type:NavigationActions.INIT});var key=state&&state.routes[0].key;var state2=key&&router.getStateForAction({type:NavigationActions.SET_PARAMS,params:{name:'Qux'},key:key},state);expect(state2&&state2.index).toEqual(0);expect(state2&&state2.routes[0].params).toEqual({name:'Qux'});});it('Handles the SetParams action for inactive routes',function(){var router=StackRouter({Foo:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1454}});}},Bar:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1457}});}}},{initialRouteName:'Bar',initialRouteParams:{name:'Zoo'}});var initialState={index:1,routes:[{key:'RouteA',routeName:'Foo',params:{name:'InitialParam',other:'Unchanged'}},{key:'RouteB',routeName:'Bar',params:{}}]};var state=router.getStateForAction({type:NavigationActions.SET_PARAMS,params:{name:'NewParam'},key:'RouteA'},initialState);expect(state.index).toEqual(1);expect(state.routes[0].params).toEqual({name:'NewParam',other:'Unchanged'});});it('Handles the setParams action with nested routers',function(){var ChildNavigator=function ChildNavigator(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1492}});};ChildNavigator.router=StackRouter({Baz:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1494}});}},Qux:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1495}});}}});var router=StackRouter({Foo:{screen:ChildNavigator},Bar:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1499}});}}});var state=router.getStateForAction({type:NavigationActions.INIT});var state2=router.getStateForAction({type:NavigationActions.SET_PARAMS,params:{name:'foobar'},key:'id-0'},state);expect(state2&&state2.index).toEqual(0);expect(state2&&state2.routes[0].routes).toEqual([{key:'id-0',routeName:'Baz',params:{name:'foobar'}}]);});it('Handles the reset action',function(){var router=StackRouter({Foo:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1523}});}},Bar:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1526}});}}});var state=router.getStateForAction({type:NavigationActions.INIT});var state2=router.getStateForAction({type:StackActions.RESET,actions:[{type:NavigationActions.NAVIGATE,routeName:'Foo',params:{bar:'42'},immediate:true},{type:NavigationActions.NAVIGATE,routeName:'Bar',immediate:true}],index:1},state);expect(state2&&state2.index).toEqual(1);expect(state2&&state2.routes[0].params).toEqual({bar:'42'});expect(state2&&state2.routes[0].routeName).toEqual('Foo');expect(state2&&state2.routes[1].routeName).toEqual('Bar');});it('Handles the reset action only with correct key set',function(){var router=StackRouter({Foo:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1559}});}},Bar:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1562}});}}});var state1=router.getStateForAction({type:NavigationActions.INIT});var resetAction={type:StackActions.RESET,key:'Bad Key',actions:[{type:NavigationActions.NAVIGATE,routeName:'Foo',params:{bar:'42'},immediate:true},{type:NavigationActions.NAVIGATE,routeName:'Bar',immediate:true}],index:1};var state2=router.getStateForAction(resetAction,state1);expect(state2).toEqual(state1);var state3=router.getStateForAction(_objectSpread({},resetAction,{key:state2.key}),state2);expect(state3&&state3.index).toEqual(1);expect(state3&&state3.routes[0].params).toEqual({bar:'42'});expect(state3&&state3.routes[0].routeName).toEqual('Foo');expect(state3&&state3.routes[1].routeName).toEqual('Bar');});it('Handles the reset action with nested Router',function(){var ChildRouter=StackRouter({baz:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1602}});}}});var ChildNavigator=function ChildNavigator(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1606}});};ChildNavigator.router=ChildRouter;var router=StackRouter({Foo:{screen:ChildNavigator},Bar:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1614}});}}});var state=router.getStateForAction({type:NavigationActions.INIT});var state2=router.getStateForAction({type:StackActions.RESET,key:null,actions:[{type:NavigationActions.NAVIGATE,routeName:'Foo',immediate:true}],index:0},state);expect(state2&&state2.index).toEqual(0);expect(state2&&state2.routes[0].routeName).toEqual('Foo');expect(state2&&state2.routes[0].routes[0].routeName).toEqual('baz');});it('Handles the reset action with a key',function(){var ChildRouter=StackRouter({baz:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1642}});}}});var ChildNavigator=function ChildNavigator(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1646}});};ChildNavigator.router=ChildRouter;var router=StackRouter({Foo:{screen:ChildNavigator},Bar:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1654}});}}});var state=router.getStateForAction({type:NavigationActions.INIT});var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Foo',immediate:true,action:{type:NavigationActions.NAVIGATE,routeName:'baz',immediate:true}},state);var state3=router.getStateForAction({type:StackActions.RESET,key:'Init',actions:[{type:NavigationActions.NAVIGATE,routeName:'Foo',immediate:true}],index:0},state2);var state4=router.getStateForAction({type:StackActions.RESET,key:null,actions:[{type:NavigationActions.NAVIGATE,routeName:'Bar',immediate:true}],index:0},state3);expect(state4&&state4.index).toEqual(0);expect(state4&&state4.routes[0].routeName).toEqual('Bar');});it('Handles the navigate action with params and nested StackRouter',function(){var ChildNavigator=function ChildNavigator(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1707}});};ChildNavigator.router=StackRouter({Baz:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1708}});}}});var router=StackRouter({Foo:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1711}});}},Bar:{screen:ChildNavigator}});var state=router.getStateForAction({type:NavigationActions.INIT});var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,immediate:true,routeName:'Bar',params:{foo:'42'}},state);expect(state2&&state2.routes[1].params).toEqual({foo:'42'});expect(state2&&state2.routes[1].routes).toEqual([expect.objectContaining({routeName:'Baz',params:{foo:'42'}})]);});it('Navigate action to previous nested StackRouter causes no transitions',function(){var ChildNavigator=function ChildNavigator(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1734}});};ChildNavigator.router=StackRouter({Baz:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1736}});}}});var router=StackRouter({Bar:{screen:ChildNavigator},Foo:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1740}});}}});var state=router.getStateForAction({type:NavigationActions.NAVIGATE,immediate:true,routeName:'Foo'},router.getStateForAction({type:NavigationActions.INIT}));var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Baz'},state);expect(state2.index).toEqual(0);expect(state2.transitions).toEqual({pushing:[],popping:[]});});it('Handles the navigate action with params and nested StackRouter as a first action',function(){var state=TestStackRouter.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'main',params:{code:'test',foo:'bar'},action:{type:NavigationActions.NAVIGATE,routeName:'profile',params:{id:'4',code:'test',foo:'bar'},action:{type:NavigationActions.NAVIGATE,routeName:'list',params:{id:'10259959195',code:'test',foo:'bar'}}}});expect(state).toEqual({index:0,transitions:{pushing:[],popping:[]},key:'StackRouterRoot',routes:[{index:0,transitions:{pushing:[],popping:[]},key:'id-2',params:{code:'test',foo:'bar'},routeName:'main',routes:[{index:0,transitions:{pushing:[],popping:[]},key:'id-1',params:{code:'test',foo:'bar',id:'4'},routeName:'profile',routes:[{key:'id-0',params:{code:'test',foo:'bar',id:'10259959195'},routeName:'list',type:undefined}]}]}]});var state2=TestStackRouter.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'main',params:{code:'',foo:'bar'},action:{type:NavigationActions.NAVIGATE,routeName:'profile',params:{id:'4',code:'',foo:'bar'},action:{type:NavigationActions.NAVIGATE,routeName:'list',params:{id:'10259959195',code:'',foo:'bar'}}}});expect(state2).toEqual({index:0,transitions:{pushing:[],popping:[]},key:'StackRouterRoot',routes:[{index:0,transitions:{pushing:[],popping:[]},key:'id-5',params:{code:'',foo:'bar'},routeName:'main',routes:[{index:0,transitions:{pushing:[],popping:[]},key:'id-4',params:{code:'',foo:'bar',id:'4'},routeName:'profile',routes:[{key:'id-3',params:{code:'',foo:'bar',id:'10259959195'},routeName:'list',type:undefined}]}]}]});});it('Handles deep navigate completion action',function(){var LeafScreen=function LeafScreen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1884}});};var FooScreen=function FooScreen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1885}});};FooScreen.router=StackRouter({Boo:{path:'boo',screen:LeafScreen},Baz:{path:'baz/:bazId',screen:LeafScreen}});var router=StackRouter({Foo:{screen:FooScreen},Bar:{screen:LeafScreen}});var state=router.getStateForAction({type:NavigationActions.INIT});expect(state&&state.index).toEqual(0);expect(state&&state.routes[0].routeName).toEqual('Foo');var key=state&&state.routes[0].key;var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Baz'},state);expect(state2.index).toEqual(0);expect(state2.transitions).toEqual({pushing:[],popping:[]});expect(state2.routes[0].index).toEqual(1);expect(state2.routes[0].transitions).toEqual({popping:[],pushing:['id-2']});expect(!!key).toEqual(true);var state3=router.getStateForAction({type:StackActions.COMPLETE_TRANSITION,toChildKey:state2.routes[0].routes[1].key},state2);expect(state3&&state3.index).toEqual(0);expect(state3&&state3.transitions).toEqual({popping:[],pushing:[]});expect(state3&&state3.routes[0].index).toEqual(1);expect(state3&&state3.routes[0].transitions).toEqual({popping:[],pushing:[]});});it('order of handling navigate action is correct for nested stackrouters',function(){var Screen=function Screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1935}});};var NestedStack=function NestedStack(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:1936}});};var nestedRouter=StackRouter({Foo:Screen,Bar:Screen});NestedStack.router=nestedRouter;var router=StackRouter({NestedStack:NestedStack,Bar:Screen,Baz:Screen},{initialRouteName:'Baz'});var state=router.getStateForAction({type:NavigationActions.INIT});expect(state.routes[state.index].routeName).toEqual('Baz');var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar'},state);expect(state2.routes[state2.index].routeName).toEqual('Bar');var state3=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Baz'},state2);expect(state3.routes[state3.index].routeName).toEqual('Baz');var state4=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Foo'},state3);var activeState4=state4.routes[state4.index];expect(activeState4.routeName).toEqual('NestedStack');expect(activeState4.routes[activeState4.index].routeName).toEqual('Foo');var state5=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar'},state4);var activeState5=state5.routes[state5.index];expect(activeState5.routeName).toEqual('NestedStack');expect(activeState5.routes[activeState5.index].routeName).toEqual('Bar');});it('order of handling navigate action is correct for nested stackrouters 2',function(){var Screen=function Screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:2000}});};var NestedStack=function NestedStack(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:2001}});};var OtherNestedStack=function OtherNestedStack(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:2002}});};var nestedRouter=StackRouter({Foo:Screen,Bar:Screen});var otherNestedRouter=StackRouter({Foo:Screen});NestedStack.router=nestedRouter;OtherNestedStack.router=otherNestedRouter;var router=StackRouter({NestedStack:NestedStack,OtherNestedStack:OtherNestedStack,Bar:Screen},{initialRouteName:'OtherNestedStack'});var state=router.getStateForAction({type:NavigationActions.INIT});expect(state.routes[state.index].routeName).toEqual('OtherNestedStack');var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar'},state);expect(state2.routes[state2.index].routeName).toEqual('Bar');var state3=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'NestedStack'},state2);var state4=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar'},state3);var activeState4=state4.routes[state4.index];expect(activeState4.routeName).toEqual('NestedStack');expect(activeState4.routes[activeState4.index].routeName).toEqual('Bar');});});
+ //# sourceMappingURL=StackRouter-test.js.map
+\ No newline at end of file
+diff --git a/node_modules/@react-navigation/core/lib/module/routers/__tests__/StackRouter-test.js.map b/node_modules/@react-navigation/core/lib/module/routers/__tests__/StackRouter-test.js.map
+index 23dc05b..e910b64 100644
+--- a/node_modules/@react-navigation/core/lib/module/routers/__tests__/StackRouter-test.js.map
++++ b/node_modules/@react-navigation/core/lib/module/routers/__tests__/StackRouter-test.js.map
+@@ -1 +1 @@
+-{"version":3,"sources":["StackRouter-test.js"],"names":["React","StackRouter","StackActions","NavigationActions","_TESTING_ONLY_normalize_keys","beforeEach","ListScreen","ProfileNavigator","router","list","path","screen","MainNavigator","profile","LoginScreen","AuthNavigator","login","BarScreen","FooNavigator","Component","bar","PersonScreen","TestStackRouter","main","baz","auth","person","foo","describe","it","FooScreen","expect","getComponentForState","index","isTransitioning","routes","key","routeName","toBe","getScreen","BazScreen","getComponentForRouteName","getActionForPathAndParams","toEqual","type","NAVIGATE","params","id","code","uri","action","barThing","fooThing","Bar","qux","TestRouter","initState","getStateForAction","init","pushedState","navigate","ChildNavigator","Baz","Qux","Foo","Bad","state","INIT","state2","state3","PUSH","length","POP","POP_TO_TOP","bazId","poppedState","pop","poppedState2","n","immediate","poppedState3","popToTop","poppedImmediatelyState","initialRouteName","barState","navigateOnBarState","initialState","fooBarState","fooBarBazState","fooState","pushedTwiceState","GrandChildNavigator","Quux","Corge","Woo","Parent","initialRouteKey","FirstChildNavigator","First1","First2","SecondChildNavigator","Second1","Second2","Leaf","First","Second","first","second","firstAgain","debug","navigatedState","push","toThrow","secondPushedState","pushedThriceState","navigatedBackToFirstRouteState","name","BACK","replacedState","replace","meaning","not","replacedState2","newKey","Grault","state4","state5","originalCurrentScreen","replacedCurrentScreen","COMPLETE_TRANSITION","toChildKey","outputState","boo","testState","Xyz","ScreenA","ScreenB","Boo","getPathAndParamsForState","initialRouteParams","toBeNull","SET_PARAMS","other","RESET","actions","state1","resetAction","ChildRouter","objectContaining","undefined","LeafScreen","Screen","NestedStack","nestedRouter","activeState4","activeState5","OtherNestedStack","otherNestedRouter"],"mappings":"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","sourcesContent":["/* eslint no-shadow:0, react/no-multi-comp:0, react/display-name:0 */\n\nimport React from 'react';\n\nimport StackRouter from '../StackRouter';\nimport * as StackActions from '../StackActions';\nimport * as NavigationActions from '../../NavigationActions';\nimport { _TESTING_ONLY_normalize_keys } from '../KeyGenerator.ts';\n\nbeforeEach(() => {\n _TESTING_ONLY_normalize_keys();\n});\n\nconst ListScreen = () => ;\n\nconst ProfileNavigator = () => ;\nProfileNavigator.router = StackRouter({\n list: {\n path: 'list/:id',\n screen: ListScreen,\n },\n});\n\nconst MainNavigator = () => ;\nMainNavigator.router = StackRouter({\n profile: {\n path: 'p/:id',\n screen: ProfileNavigator,\n },\n});\n\nconst LoginScreen = () => ;\n\nconst AuthNavigator = () => ;\nAuthNavigator.router = StackRouter({\n login: {\n screen: LoginScreen,\n },\n});\n\nconst BarScreen = () => ;\n\nclass FooNavigator extends React.Component {\n static router = StackRouter({\n bar: {\n path: 'b/:barThing',\n screen: BarScreen,\n },\n });\n render() {\n return ;\n }\n}\n\nconst PersonScreen = () => ;\n\nconst TestStackRouter = StackRouter({\n main: {\n screen: MainNavigator,\n },\n baz: {\n path: null,\n screen: FooNavigator,\n },\n auth: {\n screen: AuthNavigator,\n },\n person: {\n path: 'people/:id',\n screen: PersonScreen,\n },\n foo: {\n path: 'fo/:fooThing',\n screen: FooNavigator,\n },\n});\n\ndescribe('StackRouter', () => {\n it('Gets the active screen for a given state', () => {\n const FooScreen = () => ;\n const BarScreen = () => ;\n const router = StackRouter({\n foo: {\n screen: FooScreen,\n },\n bar: {\n screen: BarScreen,\n },\n });\n\n expect(\n router.getComponentForState({\n index: 0,\n isTransitioning: false,\n routes: [\n { key: 'a', routeName: 'foo' },\n { key: 'b', routeName: 'bar' },\n { key: 'c', routeName: 'foo' },\n ],\n })\n ).toBe(FooScreen);\n expect(\n router.getComponentForState({\n index: 1,\n isTransitioning: false,\n routes: [\n { key: 'a', routeName: 'foo' },\n { key: 'b', routeName: 'bar' },\n ],\n })\n ).toBe(BarScreen);\n });\n\n it('Handles getScreen in getComponentForState', () => {\n const FooScreen = () => ;\n const BarScreen = () => ;\n const router = StackRouter({\n foo: {\n getScreen: () => FooScreen,\n },\n bar: {\n getScreen: () => BarScreen,\n },\n });\n\n expect(\n router.getComponentForState({\n index: 0,\n isTransitioning: false,\n routes: [\n { key: 'a', routeName: 'foo' },\n { key: 'b', routeName: 'bar' },\n { key: 'c', routeName: 'foo' },\n ],\n })\n ).toBe(FooScreen);\n expect(\n router.getComponentForState({\n index: 1,\n isTransitioning: false,\n routes: [\n { key: 'a', routeName: 'foo' },\n { key: 'b', routeName: 'bar' },\n ],\n })\n ).toBe(BarScreen);\n });\n\n it('Gets the screen for given route', () => {\n const FooScreen = () => ;\n const BarScreen = class extends React.Component {\n render() {\n return ;\n }\n };\n const BazScreen = class extends React.Component {\n render() {\n return ;\n }\n };\n const router = StackRouter({\n foo: {\n screen: FooScreen,\n },\n bar: {\n screen: BarScreen,\n },\n baz: {\n screen: BazScreen,\n },\n });\n\n expect(router.getComponentForRouteName('foo')).toBe(FooScreen);\n expect(router.getComponentForRouteName('bar')).toBe(BarScreen);\n expect(router.getComponentForRouteName('baz')).toBe(BazScreen);\n });\n\n it('Handles getScreen in getComponent', () => {\n const FooScreen = () => ;\n const BarScreen = class extends React.Component {\n render() {\n return ;\n }\n };\n const BazScreen = class extends React.Component {\n render() {\n return ;\n }\n };\n const router = StackRouter({\n foo: {\n getScreen: () => FooScreen,\n },\n bar: {\n getScreen: () => BarScreen,\n },\n baz: {\n getScreen: () => BazScreen,\n },\n });\n\n expect(router.getComponentForRouteName('foo')).toBe(FooScreen);\n expect(router.getComponentForRouteName('bar')).toBe(BarScreen);\n expect(router.getComponentForRouteName('baz')).toBe(BazScreen);\n });\n\n it('Parses simple paths', () => {\n expect(AuthNavigator.router.getActionForPathAndParams('login')).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'login',\n params: {},\n });\n });\n\n it('Parses paths with a param', () => {\n expect(TestStackRouter.getActionForPathAndParams('people/foo')).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'person',\n params: {\n id: 'foo',\n },\n });\n });\n\n it('Parses paths with a query', () => {\n expect(\n TestStackRouter.getActionForPathAndParams('people/foo', {\n code: 'test',\n foo: 'bar',\n })\n ).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'person',\n params: {\n id: 'foo',\n code: 'test',\n foo: 'bar',\n },\n });\n });\n\n it('Parses paths with an empty query value', () => {\n expect(\n TestStackRouter.getActionForPathAndParams('people/foo', {\n code: '',\n foo: 'bar',\n })\n ).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'person',\n params: {\n id: 'foo',\n code: '',\n foo: 'bar',\n },\n });\n });\n\n it('Correctly parses a path without arguments into an action chain', () => {\n const uri = 'auth/login';\n const action = TestStackRouter.getActionForPathAndParams(uri);\n expect(action).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'auth',\n params: {},\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'login',\n params: {},\n },\n });\n });\n\n it('Correctly parses a path with arguments into an action chain', () => {\n const uri = 'main/p/4/list/10259959195';\n const action = TestStackRouter.getActionForPathAndParams(uri);\n expect(action).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'main',\n params: {},\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'profile',\n params: {\n id: '4',\n },\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'list',\n params: {\n id: '10259959195',\n },\n },\n },\n });\n });\n\n it('Correctly parses a path to the router connected to another router through a pure wildcard route into an action chain', () => {\n const uri = 'b/123';\n const action = TestStackRouter.getActionForPathAndParams(uri);\n expect(action).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'baz',\n params: {},\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'bar',\n params: {\n barThing: '123',\n },\n },\n });\n });\n\n it('Correctly returns null action for non-existent path', () => {\n const uri = 'asdf/1234';\n const action = TestStackRouter.getActionForPathAndParams(uri);\n expect(action).toEqual(null);\n });\n\n it('Correctly returns action chain for partially matched path', () => {\n const uri = 'auth/login';\n const action = TestStackRouter.getActionForPathAndParams(uri);\n expect(action).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'auth',\n params: {},\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'login',\n params: {},\n },\n });\n });\n\n it('Correctly returns action for path with multiple parameters', () => {\n const path = 'fo/22/b/hello';\n const action = TestStackRouter.getActionForPathAndParams(path);\n expect(action).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'foo',\n params: {\n fooThing: '22',\n },\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'bar',\n params: {\n barThing: 'hello',\n },\n },\n });\n });\n\n it('Pushes other navigators when navigating to an unopened route name', () => {\n const Bar = () => ;\n Bar.router = StackRouter({\n baz: { screen: () => },\n qux: { screen: () => },\n });\n const TestRouter = StackRouter({\n foo: { screen: () => },\n bar: { screen: Bar },\n });\n const initState = TestRouter.getStateForAction(NavigationActions.init());\n expect(initState).toEqual({\n index: 0,\n isTransitioning: false,\n key: 'StackRouterRoot',\n routes: [{ key: 'id-0', routeName: 'foo' }],\n });\n const pushedState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'qux' }),\n initState\n );\n expect(pushedState.index).toEqual(1);\n expect(pushedState.routes[1].index).toEqual(1);\n expect(pushedState.routes[1].routes[1].routeName).toEqual('qux');\n });\n\n it('push bubbles up', () => {\n const ChildNavigator = () => ;\n ChildNavigator.router = StackRouter({\n Baz: { screen: () => },\n Qux: { screen: () => },\n });\n const router = StackRouter({\n Foo: { screen: () => },\n Bar: { screen: ChildNavigator },\n Bad: { screen: () => },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n },\n state\n );\n const state3 = router.getStateForAction(\n {\n type: StackActions.PUSH,\n routeName: 'Bad',\n },\n state2\n );\n expect(state3 && state3.index).toEqual(2);\n expect(state3 && state3.routes.length).toEqual(3);\n });\n\n it('pop bubbles up', () => {\n const ChildNavigator = () => ;\n ChildNavigator.router = StackRouter({\n Baz: { screen: () => },\n Qux: { screen: () => },\n });\n const router = StackRouter({\n Foo: { screen: () => },\n Bar: { screen: ChildNavigator },\n });\n\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n key: 'StackRouterRoot',\n },\n state\n );\n const state3 = router.getStateForAction(\n {\n type: StackActions.POP,\n },\n state2\n );\n expect(state3 && state3.index).toEqual(0);\n });\n\n it('Handle navigation to nested navigator', () => {\n const action = TestStackRouter.getActionForPathAndParams('fo/22/b/hello');\n /* $FlowFixMe */\n const state2 = TestStackRouter.getStateForAction(action);\n expect(state2).toEqual({\n index: 0,\n isTransitioning: false,\n key: 'StackRouterRoot',\n routes: [\n {\n index: 0,\n key: 'id-1',\n isTransitioning: false,\n routeName: 'foo',\n params: {\n fooThing: '22',\n },\n routes: [\n {\n routeName: 'bar',\n key: 'id-0',\n params: {\n barThing: 'hello',\n },\n },\n ],\n },\n ],\n });\n });\n\n it('popToTop bubbles up', () => {\n const ChildNavigator = () => ;\n ChildNavigator.router = StackRouter({\n Baz: { screen: () => },\n Qux: { screen: () => },\n });\n\n const router = StackRouter({\n Foo: { screen: () => },\n Bar: { screen: ChildNavigator },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n },\n state\n );\n\n const state3 = router.getStateForAction(\n {\n type: StackActions.POP_TO_TOP,\n },\n state2\n );\n expect(state3 && state3.index).toEqual(0);\n });\n\n it('popToTop targets StackRouter by key if specified', () => {\n const ChildNavigator = () => ;\n ChildNavigator.router = StackRouter({\n Baz: { screen: () => },\n Qux: { screen: () => },\n });\n const router = StackRouter({\n Foo: { screen: () => },\n Bar: { screen: ChildNavigator },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n },\n state\n );\n\n const state3 = router.getStateForAction(\n {\n type: StackActions.POP_TO_TOP,\n key: state2.key,\n },\n state2\n );\n expect(state3 && state3.index).toEqual(0);\n });\n\n it('pop action works as expected', () => {\n const TestRouter = StackRouter({\n foo: { screen: () => },\n bar: { screen: () => },\n });\n\n const state = {\n index: 3,\n isTransitioning: false,\n routes: [\n { key: 'A', routeName: 'foo' },\n { key: 'B', routeName: 'bar', params: { bazId: '321' } },\n { key: 'C', routeName: 'foo' },\n { key: 'D', routeName: 'bar' },\n ],\n };\n const poppedState = TestRouter.getStateForAction(StackActions.pop(), state);\n expect(poppedState.routes.length).toBe(3);\n expect(poppedState.index).toBe(2);\n expect(poppedState.isTransitioning).toBe(true);\n\n const poppedState2 = TestRouter.getStateForAction(\n StackActions.pop({ n: 2, immediate: true }),\n state\n );\n expect(poppedState2.routes.length).toBe(2);\n expect(poppedState2.index).toBe(1);\n expect(poppedState2.isTransitioning).toBe(false);\n\n const poppedState3 = TestRouter.getStateForAction(\n StackActions.pop({ n: 5 }),\n state\n );\n expect(poppedState3.routes.length).toBe(1);\n expect(poppedState3.index).toBe(0);\n expect(poppedState3.isTransitioning).toBe(true);\n });\n\n it('popToTop works as expected', () => {\n const TestRouter = StackRouter({\n foo: { screen: () => },\n bar: { screen: () => },\n });\n\n const state = {\n index: 2,\n isTransitioning: false,\n routes: [\n { key: 'A', routeName: 'foo' },\n { key: 'B', routeName: 'bar', params: { bazId: '321' } },\n { key: 'C', routeName: 'foo' },\n ],\n };\n const poppedState = TestRouter.getStateForAction(\n StackActions.popToTop(),\n state\n );\n expect(poppedState.routes.length).toBe(1);\n expect(poppedState.index).toBe(0);\n expect(poppedState.isTransitioning).toBe(true);\n const poppedState2 = TestRouter.getStateForAction(\n StackActions.popToTop(),\n poppedState\n );\n expect(poppedState).toEqual(poppedState2);\n const poppedImmediatelyState = TestRouter.getStateForAction(\n StackActions.popToTop({ immediate: true }),\n state\n );\n expect(poppedImmediatelyState.routes.length).toBe(1);\n expect(poppedImmediatelyState.index).toBe(0);\n expect(poppedImmediatelyState.isTransitioning).toBe(false);\n });\n\n it('Navigate does not push duplicate routeName', () => {\n const TestRouter = StackRouter(\n {\n foo: { screen: () => },\n bar: { screen: () => },\n },\n { initialRouteName: 'foo' }\n );\n const initState = TestRouter.getStateForAction(NavigationActions.init());\n const barState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'bar' }),\n initState\n );\n expect(barState.index).toEqual(1);\n expect(barState.routes[1].routeName).toEqual('bar');\n const navigateOnBarState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'bar' }),\n barState\n );\n expect(navigateOnBarState).toEqual(null);\n });\n\n it('Navigate focuses given routeName if already active in stack', () => {\n const TestRouter = StackRouter(\n {\n foo: { screen: () => },\n bar: { screen: () => },\n baz: { screen: () => },\n },\n { initialRouteName: 'foo' }\n );\n const initialState = TestRouter.getStateForAction(NavigationActions.init());\n const fooBarState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'bar' }),\n initialState\n );\n const fooBarBazState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'baz' }),\n fooBarState\n );\n expect(fooBarBazState.index).toEqual(2);\n expect(fooBarBazState.routes[2].routeName).toEqual('baz');\n\n const fooState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'foo' }),\n fooBarBazState\n );\n expect(fooState.index).toEqual(0);\n expect(fooState.routes.length).toEqual(1);\n expect(fooState.routes[0].routeName).toEqual('foo');\n });\n\n it('Navigate pushes duplicate routeName if unique key is provided', () => {\n const TestRouter = StackRouter({\n foo: { screen: () => },\n bar: { screen: () => },\n });\n const initState = TestRouter.getStateForAction(NavigationActions.init());\n const pushedState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'bar' }),\n initState\n );\n expect(pushedState.index).toEqual(1);\n expect(pushedState.routes[1].routeName).toEqual('bar');\n const pushedTwiceState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'bar', key: 'new-unique-key!' }),\n pushedState\n );\n expect(pushedTwiceState.index).toEqual(2);\n expect(pushedTwiceState.routes[2].routeName).toEqual('bar');\n });\n\n it('Navigate from top propagates to any arbitary depth of stacks', () => {\n const GrandChildNavigator = () => ;\n GrandChildNavigator.router = StackRouter({\n Quux: { screen: () => },\n Corge: { screen: () => },\n });\n\n const ChildNavigator = () => ;\n ChildNavigator.router = StackRouter({\n Baz: { screen: () => },\n Woo: { screen: () => },\n Qux: { screen: GrandChildNavigator },\n });\n\n const Parent = StackRouter({\n Foo: { screen: () => },\n Bar: { screen: ChildNavigator },\n });\n\n const state = Parent.getStateForAction({ type: NavigationActions.INIT });\n const state2 = Parent.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Corge',\n },\n state\n );\n\n expect(state2.isTransitioning).toEqual(true);\n expect(state2.index).toEqual(1);\n expect(state2.routes[1].index).toEqual(1);\n expect(state2.routes[1].routes[1].index).toEqual(1);\n expect(state2.routes[1].routes[1].routes[1].routeName).toEqual('Corge');\n });\n\n it('Navigate to initial screen is possible', () => {\n const TestRouter = StackRouter(\n {\n foo: { screen: () => },\n bar: { screen: () => },\n },\n { initialRouteKey: 'foo' }\n );\n const initState = TestRouter.getStateForAction(NavigationActions.init());\n const pushedState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'foo', key: 'foo' }),\n initState\n );\n expect(pushedState).toEqual(null);\n });\n\n it('Navigate with key and without it is idempotent', () => {\n const TestRouter = StackRouter({\n foo: { screen: () => },\n bar: { screen: () => },\n });\n const initState = TestRouter.getStateForAction(NavigationActions.init());\n const pushedState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'bar', key: 'a' }),\n initState\n );\n expect(pushedState.index).toEqual(1);\n expect(pushedState.routes[1].routeName).toEqual('bar');\n const pushedTwiceState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'bar', key: 'a' }),\n pushedState\n );\n expect(pushedTwiceState).toEqual(null);\n });\n\n // https://github.com/react-navigation/react-navigation/issues/4063\n it('Navigate on inactive stackrouter is idempotent', () => {\n const FirstChildNavigator = () => ;\n FirstChildNavigator.router = StackRouter({\n First1: () => ,\n First2: () => ,\n });\n\n const SecondChildNavigator = () => ;\n SecondChildNavigator.router = StackRouter({\n Second1: () => ,\n Second2: () => ,\n });\n\n const router = StackRouter({\n Leaf: () => ,\n First: FirstChildNavigator,\n Second: SecondChildNavigator,\n });\n\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n\n const first = router.getStateForAction(\n NavigationActions.navigate({ routeName: 'First2' }),\n state\n );\n\n const second = router.getStateForAction(\n NavigationActions.navigate({ routeName: 'Second2' }),\n first\n );\n\n const firstAgain = router.getStateForAction(\n NavigationActions.navigate({\n routeName: 'First2',\n params: { debug: true },\n }),\n second\n );\n\n expect(first.routes.length).toEqual(2);\n expect(first.index).toEqual(1);\n expect(second.routes.length).toEqual(3);\n expect(second.index).toEqual(2);\n\n expect(firstAgain.index).toEqual(1);\n expect(firstAgain.routes.length).toEqual(2);\n });\n\n it('Navigate to current routeName returns null to indicate handled action', () => {\n const TestRouter = StackRouter({\n foo: { screen: () => },\n bar: { screen: () => },\n });\n const initState = TestRouter.getStateForAction(NavigationActions.init());\n const navigatedState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'foo' }),\n initState\n );\n expect(navigatedState).toBe(null);\n });\n\n it('Push behaves like navigate, except for key', () => {\n const TestRouter = StackRouter({\n foo: { screen: () => },\n bar: { screen: () => },\n });\n const initState = TestRouter.getStateForAction(NavigationActions.init());\n const pushedState = TestRouter.getStateForAction(\n StackActions.push({ routeName: 'bar' }),\n initState\n );\n expect(pushedState.index).toEqual(1);\n expect(pushedState.routes[1].routeName).toEqual('bar');\n expect(() => {\n TestRouter.getStateForAction(\n { type: StackActions.PUSH, routeName: 'bar', key: 'a' },\n pushedState\n );\n }).toThrow('StackRouter does not support key on the push action');\n });\n\n it('Push adds new routes every time', () => {\n const TestRouter = StackRouter({\n foo: { screen: () => },\n bar: { screen: () => },\n });\n const initState = TestRouter.getStateForAction(NavigationActions.init());\n const pushedState = TestRouter.getStateForAction(\n StackActions.push({ routeName: 'bar' }),\n initState\n );\n expect(pushedState.index).toEqual(1);\n expect(pushedState.routes[1].routeName).toEqual('bar');\n const secondPushedState = TestRouter.getStateForAction(\n StackActions.push({ routeName: 'bar' }),\n pushedState\n );\n expect(secondPushedState.index).toEqual(2);\n expect(secondPushedState.routes[2].routeName).toEqual('bar');\n });\n\n it('Navigate backwards with key removes leading routes', () => {\n const TestRouter = StackRouter({\n foo: { screen: () => },\n bar: { screen: () => },\n });\n const initState = TestRouter.getStateForAction(NavigationActions.init());\n const pushedState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'bar', key: 'a' }),\n initState\n );\n const pushedTwiceState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'bar', key: 'b`' }),\n pushedState\n );\n const pushedThriceState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'foo', key: 'c`' }),\n pushedTwiceState\n );\n expect(pushedThriceState.routes.length).toEqual(4);\n\n const navigatedBackToFirstRouteState = TestRouter.getStateForAction(\n NavigationActions.navigate({\n routeName: 'foo',\n key: pushedThriceState.routes[0].key,\n }),\n pushedThriceState\n );\n expect(navigatedBackToFirstRouteState.index).toEqual(0);\n expect(navigatedBackToFirstRouteState.routes.length).toEqual(1);\n });\n\n it('Handle basic stack logic for plain components', () => {\n const FooScreen = () => ;\n const BarScreen = () => ;\n const router = StackRouter({\n Foo: {\n screen: FooScreen,\n },\n Bar: {\n screen: BarScreen,\n },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n expect(state).toEqual({\n index: 0,\n isTransitioning: false,\n key: 'StackRouterRoot',\n routes: [\n {\n key: 'id-0',\n routeName: 'Foo',\n },\n ],\n });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n params: { name: 'Zoom' },\n immediate: true,\n },\n state\n );\n expect(state2.index).toEqual(1);\n expect(state2.routes[1].routeName).toEqual('Bar');\n expect(state2.routes[1].params).toEqual({ name: 'Zoom' });\n expect(state2.routes.length).toEqual(2);\n const state3 = router.getStateForAction(\n { type: NavigationActions.BACK, immediate: true },\n state2\n );\n expect(state3).toEqual({\n index: 0,\n isTransitioning: false,\n key: 'StackRouterRoot',\n routes: [\n {\n key: 'id-0',\n routeName: 'Foo',\n },\n ],\n });\n });\n\n it('Replace action works', () => {\n const TestRouter = StackRouter({\n foo: { screen: () => },\n bar: { screen: () => },\n });\n const initState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'foo' })\n );\n const replacedState = TestRouter.getStateForAction(\n StackActions.replace({\n routeName: 'bar',\n params: { meaning: 42 },\n key: initState.routes[0].key,\n }),\n initState\n );\n expect(replacedState.index).toEqual(0);\n expect(replacedState.routes.length).toEqual(1);\n expect(replacedState.routes[0].key).not.toEqual(initState.routes[0].key);\n expect(replacedState.routes[0].routeName).toEqual('bar');\n expect(replacedState.routes[0].params.meaning).toEqual(42);\n const replacedState2 = TestRouter.getStateForAction(\n StackActions.replace({\n routeName: 'bar',\n key: initState.routes[0].key,\n newKey: 'wow',\n }),\n initState\n );\n expect(replacedState2.index).toEqual(0);\n expect(replacedState2.routes.length).toEqual(1);\n expect(replacedState2.routes[0].key).toEqual('wow');\n expect(replacedState2.routes[0].routeName).toEqual('bar');\n });\n\n it('Replace action returns most recent route if no key is provided', () => {\n const GrandChildNavigator = () => ;\n GrandChildNavigator.router = StackRouter({\n Quux: { screen: () => },\n Corge: { screen: () => },\n Grault: { screen: () => },\n });\n\n const ChildNavigator = () => ;\n ChildNavigator.router = StackRouter({\n Baz: { screen: () => },\n Woo: { screen: () => },\n Qux: { screen: GrandChildNavigator },\n });\n\n const router = StackRouter({\n Foo: { screen: () => },\n Bar: { screen: ChildNavigator },\n });\n\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n },\n state\n );\n const state3 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Qux',\n },\n state2\n );\n const state4 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Corge',\n },\n state3\n );\n const state5 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Grault',\n },\n state4\n );\n\n const replacedState = router.getStateForAction(\n StackActions.replace({\n routeName: 'Woo',\n params: { meaning: 42 },\n }),\n state5\n );\n\n const originalCurrentScreen = state5.routes[1].routes[1].routes[2];\n const replacedCurrentScreen = replacedState.routes[1].routes[1].routes[2];\n\n expect(replacedState.routes[1].routes[1].index).toEqual(2);\n expect(replacedState.routes[1].routes[1].routes.length).toEqual(3);\n expect(replacedCurrentScreen.key).not.toEqual(originalCurrentScreen.key);\n expect(replacedCurrentScreen.routeName).not.toEqual(\n originalCurrentScreen.routeName\n );\n expect(replacedCurrentScreen.routeName).toEqual('Woo');\n expect(replacedCurrentScreen.params.meaning).toEqual(42);\n });\n\n it('Handles push transition logic with completion action', () => {\n const FooScreen = () => ;\n const BarScreen = () => ;\n const router = StackRouter({\n Foo: {\n screen: FooScreen,\n },\n Bar: {\n screen: BarScreen,\n },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n params: { name: 'Zoom' },\n },\n state\n );\n expect(state2 && state2.index).toEqual(1);\n expect(state2 && state2.isTransitioning).toEqual(true);\n const state3 = router.getStateForAction(\n {\n type: StackActions.COMPLETE_TRANSITION,\n toChildKey: state2.routes[1].key,\n },\n state2\n );\n expect(state3 && state3.index).toEqual(1);\n expect(state3 && state3.isTransitioning).toEqual(false);\n });\n\n it('Completion action does not work with incorrect key', () => {\n const FooScreen = () => ;\n const router = StackRouter({\n Foo: {\n screen: FooScreen,\n },\n Bar: {\n screen: FooScreen,\n },\n });\n const state = {\n key: 'StackKey',\n index: 1,\n isTransitioning: true,\n routes: [{ key: 'a', routeName: 'Foo' }, { key: 'b', routeName: 'Foo' }],\n };\n const outputState = router.getStateForAction(\n {\n type: StackActions.COMPLETE_TRANSITION,\n toChildKey: state.routes[state.index].key,\n key: 'not StackKey',\n },\n state\n );\n expect(outputState.isTransitioning).toEqual(true);\n });\n\n it('Completion action does not work with incorrect toChildKey', () => {\n const FooScreen = () => ;\n const router = StackRouter({\n Foo: {\n screen: FooScreen,\n },\n Bar: {\n screen: FooScreen,\n },\n });\n const state = {\n key: 'StackKey',\n index: 1,\n isTransitioning: true,\n routes: [{ key: 'a', routeName: 'Foo' }, { key: 'b', routeName: 'Foo' }],\n };\n const outputState = router.getStateForAction(\n {\n type: StackActions.COMPLETE_TRANSITION,\n // for this action to toggle isTransitioning, toChildKey should be state.routes[state.index].key,\n toChildKey: 'incorrect',\n key: 'StackKey',\n },\n state\n );\n expect(outputState.isTransitioning).toEqual(true);\n });\n\n it('Back action parent is prioritized over inactive child routers', () => {\n const Bar = () => ;\n Bar.router = StackRouter({\n baz: { screen: () => },\n qux: { screen: () => },\n });\n const TestRouter = StackRouter({\n foo: { screen: () => },\n bar: { screen: Bar },\n boo: { screen: () => },\n });\n const state = {\n key: 'top',\n index: 3,\n routes: [\n { routeName: 'foo', key: 'f' },\n {\n routeName: 'bar',\n key: 'b',\n index: 1,\n routes: [\n { routeName: 'baz', key: 'bz' },\n { routeName: 'qux', key: 'bx' },\n ],\n },\n { routeName: 'foo', key: 'f1' },\n { routeName: 'boo', key: 'z' },\n ],\n };\n const testState = TestRouter.getStateForAction(\n { type: NavigationActions.BACK },\n state\n );\n expect(testState.index).toBe(2);\n expect(testState.routes[1].index).toBe(1);\n });\n\n it('Handle basic stack logic for components with router', () => {\n const FooScreen = () => ;\n const BarScreen = () => ;\n BarScreen.router = StackRouter({\n Xyz: {\n screen: () => null,\n },\n });\n const router = StackRouter({\n Foo: {\n screen: FooScreen,\n },\n Bar: {\n screen: BarScreen,\n },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n expect(state).toEqual({\n index: 0,\n isTransitioning: false,\n key: 'StackRouterRoot',\n routes: [\n {\n key: 'id-0',\n routeName: 'Foo',\n },\n ],\n });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n params: { name: 'Zoom' },\n immediate: true,\n },\n state\n );\n expect(state2 && state2.index).toEqual(1);\n expect(state2 && state2.routes[1].routeName).toEqual('Bar');\n expect(state2 && state2.routes[1].params).toEqual({ name: 'Zoom' });\n expect(state2 && state2.routes.length).toEqual(2);\n const state3 = router.getStateForAction(\n { type: NavigationActions.BACK, immediate: true },\n state2\n );\n expect(state3).toEqual({\n index: 0,\n isTransitioning: false,\n key: 'StackRouterRoot',\n routes: [\n {\n key: 'id-0',\n routeName: 'Foo',\n },\n ],\n });\n });\n\n it('Gets deep path (stack behavior)', () => {\n const ScreenA = () => ;\n const ScreenB = () => ;\n ScreenA.router = StackRouter({\n Boo: { path: 'boo', screen: ScreenB },\n Baz: { path: 'baz/:bazId', screen: ScreenB },\n });\n const router = StackRouter({\n Foo: {\n path: 'f/:id',\n screen: ScreenA,\n },\n Bar: {\n screen: ScreenB,\n },\n });\n\n const state = {\n index: 0,\n isTransitioning: false,\n routes: [\n {\n index: 1,\n key: 'Foo',\n routeName: 'Foo',\n params: {\n id: '123',\n },\n routes: [\n { key: 'Boo', routeName: 'Boo' },\n { key: 'Baz', routeName: 'Baz', params: { bazId: '321' } },\n ],\n },\n { key: 'Bar', routeName: 'Bar' },\n ],\n };\n const { path, params } = router.getPathAndParamsForState(state);\n expect(path).toEqual('f/123/baz/321');\n expect(params).toEqual({});\n });\n\n it('Handle goBack identified by key', () => {\n const FooScreen = () => ;\n const BarScreen = () => ;\n const router = StackRouter({\n Foo: {\n screen: FooScreen,\n },\n Bar: {\n screen: BarScreen,\n },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n immediate: true,\n params: { name: 'Zoom' },\n },\n state\n );\n const state3 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n immediate: true,\n params: { name: 'Foo' },\n },\n state2\n );\n const state4 = router.getStateForAction(\n { type: NavigationActions.BACK, key: 'wrongKey' },\n state3\n );\n expect(state3).toEqual(state4);\n const state5 = router.getStateForAction(\n {\n type: NavigationActions.BACK,\n key: state3 && state3.routes[1].key,\n immediate: true,\n },\n state4\n );\n expect(state5).toEqual(state);\n });\n\n it('Handle initial route navigation', () => {\n const FooScreen = () => ;\n const BarScreen = () => ;\n const router = StackRouter(\n {\n Foo: {\n screen: FooScreen,\n },\n Bar: {\n screen: BarScreen,\n },\n },\n { initialRouteName: 'Bar' }\n );\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n expect(state).toEqual({\n index: 0,\n isTransitioning: false,\n key: 'StackRouterRoot',\n routes: [\n {\n key: 'id-0',\n routeName: 'Bar',\n },\n ],\n });\n });\n\n it('Initial route params appear in nav state', () => {\n const FooScreen = () => ;\n const router = StackRouter(\n {\n Foo: {\n screen: FooScreen,\n },\n },\n { initialRouteName: 'Foo', initialRouteParams: { foo: 'bar' } }\n );\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n expect(state).toEqual({\n index: 0,\n isTransitioning: false,\n key: 'StackRouterRoot',\n routes: [\n {\n key: state && state.routes[0].key,\n routeName: 'Foo',\n params: { foo: 'bar' },\n },\n ],\n });\n });\n\n it('params in route config are merged with initialRouteParams', () => {\n const FooScreen = () => ;\n const router = StackRouter(\n {\n Foo: {\n screen: FooScreen,\n params: { foo: 'not-bar', meaning: 42 },\n },\n },\n { initialRouteName: 'Foo', initialRouteParams: { foo: 'bar' } }\n );\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n expect(state).toEqual({\n index: 0,\n isTransitioning: false,\n key: 'StackRouterRoot',\n routes: [\n {\n key: state && state.routes[0].key,\n routeName: 'Foo',\n params: { foo: 'bar', meaning: 42 },\n },\n ],\n });\n });\n\n it('Action params appear in nav state', () => {\n const FooScreen = () => ;\n const BarScreen = () => ;\n const router = StackRouter({\n Foo: {\n screen: FooScreen,\n },\n Bar: {\n screen: BarScreen,\n },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n params: { bar: '42' },\n immediate: true,\n },\n state\n );\n expect(state2).not.toBeNull();\n expect(state2 && state2.index).toEqual(1);\n expect(state2 && state2.routes[1].params).toEqual({ bar: '42' });\n });\n\n it('Handles the SetParams action', () => {\n const router = StackRouter(\n {\n Foo: {\n screen: () => ,\n },\n Bar: {\n screen: () => ,\n },\n },\n {\n initialRouteName: 'Bar',\n initialRouteParams: { name: 'Zoo' },\n }\n );\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const key = state && state.routes[0].key;\n const state2 =\n key &&\n router.getStateForAction(\n {\n type: NavigationActions.SET_PARAMS,\n params: { name: 'Qux' },\n key,\n },\n state\n );\n expect(state2 && state2.index).toEqual(0);\n expect(state2 && state2.routes[0].params).toEqual({ name: 'Qux' });\n });\n\n it('Handles the SetParams action for inactive routes', () => {\n const router = StackRouter(\n {\n Foo: {\n screen: () => ,\n },\n Bar: {\n screen: () => ,\n },\n },\n {\n initialRouteName: 'Bar',\n initialRouteParams: { name: 'Zoo' },\n }\n );\n const initialState = {\n index: 1,\n routes: [\n {\n key: 'RouteA',\n routeName: 'Foo',\n params: { name: 'InitialParam', other: 'Unchanged' },\n },\n { key: 'RouteB', routeName: 'Bar', params: {} },\n ],\n };\n const state = router.getStateForAction(\n {\n type: NavigationActions.SET_PARAMS,\n params: { name: 'NewParam' },\n key: 'RouteA',\n },\n initialState\n );\n expect(state.index).toEqual(1);\n expect(state.routes[0].params).toEqual({\n name: 'NewParam',\n other: 'Unchanged',\n });\n });\n\n it('Handles the setParams action with nested routers', () => {\n const ChildNavigator = () => ;\n ChildNavigator.router = StackRouter({\n Baz: { screen: () => },\n Qux: { screen: () => },\n });\n const router = StackRouter({\n Foo: { screen: ChildNavigator },\n Bar: { screen: () => },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.SET_PARAMS,\n params: { name: 'foobar' },\n key: 'id-0',\n },\n state\n );\n expect(state2 && state2.index).toEqual(0);\n expect(state2 && state2.routes[0].routes).toEqual([\n {\n key: 'id-0',\n routeName: 'Baz',\n params: { name: 'foobar' },\n },\n ]);\n });\n\n it('Handles the reset action', () => {\n const router = StackRouter({\n Foo: {\n screen: () => ,\n },\n Bar: {\n screen: () => ,\n },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: StackActions.RESET,\n actions: [\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Foo',\n params: { bar: '42' },\n immediate: true,\n },\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n immediate: true,\n },\n ],\n index: 1,\n },\n state\n );\n expect(state2 && state2.index).toEqual(1);\n expect(state2 && state2.routes[0].params).toEqual({ bar: '42' });\n expect(state2 && state2.routes[0].routeName).toEqual('Foo');\n expect(state2 && state2.routes[1].routeName).toEqual('Bar');\n });\n\n it('Handles the reset action only with correct key set', () => {\n const router = StackRouter({\n Foo: {\n screen: () => ,\n },\n Bar: {\n screen: () => ,\n },\n });\n const state1 = router.getStateForAction({ type: NavigationActions.INIT });\n const resetAction = {\n type: StackActions.RESET,\n key: 'Bad Key',\n actions: [\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Foo',\n params: { bar: '42' },\n immediate: true,\n },\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n immediate: true,\n },\n ],\n index: 1,\n };\n const state2 = router.getStateForAction(resetAction, state1);\n expect(state2).toEqual(state1);\n const state3 = router.getStateForAction(\n {\n ...resetAction,\n key: state2.key,\n },\n state2\n );\n expect(state3 && state3.index).toEqual(1);\n expect(state3 && state3.routes[0].params).toEqual({ bar: '42' });\n expect(state3 && state3.routes[0].routeName).toEqual('Foo');\n expect(state3 && state3.routes[1].routeName).toEqual('Bar');\n });\n\n it('Handles the reset action with nested Router', () => {\n const ChildRouter = StackRouter({\n baz: {\n screen: () => ,\n },\n });\n\n const ChildNavigator = () => ;\n ChildNavigator.router = ChildRouter;\n\n const router = StackRouter({\n Foo: {\n screen: ChildNavigator,\n },\n Bar: {\n screen: () => ,\n },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: StackActions.RESET,\n key: null,\n actions: [\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Foo',\n immediate: true,\n },\n ],\n index: 0,\n },\n state\n );\n\n expect(state2 && state2.index).toEqual(0);\n expect(state2 && state2.routes[0].routeName).toEqual('Foo');\n expect(state2 && state2.routes[0].routes[0].routeName).toEqual('baz');\n });\n\n it('Handles the reset action with a key', () => {\n const ChildRouter = StackRouter({\n baz: {\n screen: () => ,\n },\n });\n\n const ChildNavigator = () => ;\n ChildNavigator.router = ChildRouter;\n\n const router = StackRouter({\n Foo: {\n screen: ChildNavigator,\n },\n Bar: {\n screen: () => ,\n },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Foo',\n immediate: true,\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'baz',\n immediate: true,\n },\n },\n state\n );\n const state3 = router.getStateForAction(\n {\n type: StackActions.RESET,\n key: 'Init',\n actions: [\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Foo',\n immediate: true,\n },\n ],\n index: 0,\n },\n state2\n );\n const state4 = router.getStateForAction(\n {\n type: StackActions.RESET,\n key: null,\n actions: [\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n immediate: true,\n },\n ],\n index: 0,\n },\n state3\n );\n\n expect(state4 && state4.index).toEqual(0);\n expect(state4 && state4.routes[0].routeName).toEqual('Bar');\n });\n\n it('Handles the navigate action with params and nested StackRouter', () => {\n const ChildNavigator = () => ;\n ChildNavigator.router = StackRouter({ Baz: { screen: () => } });\n\n const router = StackRouter({\n Foo: { screen: () => },\n Bar: { screen: ChildNavigator },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n immediate: true,\n routeName: 'Bar',\n params: { foo: '42' },\n },\n state\n );\n expect(state2 && state2.routes[1].params).toEqual({ foo: '42' });\n expect(state2 && state2.routes[1].routes).toEqual([\n expect.objectContaining({\n routeName: 'Baz',\n params: { foo: '42' },\n }),\n ]);\n });\n\n it('Navigate action to previous nested StackRouter causes isTransitioning start', () => {\n const ChildNavigator = () => ;\n ChildNavigator.router = StackRouter({\n Baz: { screen: () => },\n });\n const router = StackRouter({\n Bar: { screen: ChildNavigator },\n Foo: { screen: () => },\n });\n const state = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n immediate: true,\n routeName: 'Foo',\n },\n router.getStateForAction({ type: NavigationActions.INIT })\n );\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Baz',\n },\n state\n );\n expect(state2.index).toEqual(0);\n expect(state2.isTransitioning).toEqual(true);\n });\n\n it('Handles the navigate action with params and nested StackRouter as a first action', () => {\n const state = TestStackRouter.getStateForAction({\n type: NavigationActions.NAVIGATE,\n routeName: 'main',\n params: {\n code: 'test',\n foo: 'bar',\n },\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'profile',\n params: {\n id: '4',\n code: 'test',\n foo: 'bar',\n },\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'list',\n params: {\n id: '10259959195',\n code: 'test',\n foo: 'bar',\n },\n },\n },\n });\n\n expect(state).toEqual({\n index: 0,\n isTransitioning: false,\n key: 'StackRouterRoot',\n routes: [\n {\n index: 0,\n isTransitioning: false,\n key: 'id-2',\n params: { code: 'test', foo: 'bar' },\n routeName: 'main',\n routes: [\n {\n index: 0,\n isTransitioning: false,\n key: 'id-1',\n params: { code: 'test', foo: 'bar', id: '4' },\n routeName: 'profile',\n routes: [\n {\n key: 'id-0',\n params: { code: 'test', foo: 'bar', id: '10259959195' },\n routeName: 'list',\n type: undefined,\n },\n ],\n },\n ],\n },\n ],\n });\n\n const state2 = TestStackRouter.getStateForAction({\n type: NavigationActions.NAVIGATE,\n routeName: 'main',\n params: {\n code: '',\n foo: 'bar',\n },\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'profile',\n params: {\n id: '4',\n code: '',\n foo: 'bar',\n },\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'list',\n params: {\n id: '10259959195',\n code: '',\n foo: 'bar',\n },\n },\n },\n });\n\n expect(state2).toEqual({\n index: 0,\n isTransitioning: false,\n key: 'StackRouterRoot',\n routes: [\n {\n index: 0,\n isTransitioning: false,\n key: 'id-5',\n params: { code: '', foo: 'bar' },\n routeName: 'main',\n routes: [\n {\n index: 0,\n isTransitioning: false,\n key: 'id-4',\n params: { code: '', foo: 'bar', id: '4' },\n routeName: 'profile',\n routes: [\n {\n key: 'id-3',\n params: { code: '', foo: 'bar', id: '10259959195' },\n routeName: 'list',\n type: undefined,\n },\n ],\n },\n ],\n },\n ],\n });\n });\n\n it('Handles deep navigate completion action', () => {\n const LeafScreen = () => ;\n const FooScreen = () => ;\n FooScreen.router = StackRouter({\n Boo: { path: 'boo', screen: LeafScreen },\n Baz: { path: 'baz/:bazId', screen: LeafScreen },\n });\n const router = StackRouter({\n Foo: {\n screen: FooScreen,\n },\n Bar: {\n screen: LeafScreen,\n },\n });\n\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n expect(state && state.index).toEqual(0);\n expect(state && state.routes[0].routeName).toEqual('Foo');\n const key = state && state.routes[0].key;\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Baz',\n },\n state\n );\n expect(state2.index).toEqual(0);\n expect(state2.isTransitioning).toEqual(false);\n expect(state2.routes[0].index).toEqual(1);\n expect(state2.routes[0].isTransitioning).toEqual(true);\n expect(!!key).toEqual(true);\n const state3 = router.getStateForAction(\n {\n type: StackActions.COMPLETE_TRANSITION,\n toChildKey: state2.routes[0].routes[1].key,\n },\n state2\n );\n expect(state3 && state3.index).toEqual(0);\n expect(state3 && state3.isTransitioning).toEqual(false);\n expect(state3 && state3.routes[0].index).toEqual(1);\n expect(state3 && state3.routes[0].isTransitioning).toEqual(false);\n });\n\n it('order of handling navigate action is correct for nested stackrouters', () => {\n const Screen = () => ;\n const NestedStack = () => ;\n let nestedRouter = StackRouter({\n Foo: Screen,\n Bar: Screen,\n });\n\n NestedStack.router = nestedRouter;\n\n let router = StackRouter(\n {\n NestedStack,\n Bar: Screen,\n Baz: Screen,\n },\n {\n initialRouteName: 'Baz',\n }\n );\n\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n expect(state.routes[state.index].routeName).toEqual('Baz');\n\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n },\n state\n );\n expect(state2.routes[state2.index].routeName).toEqual('Bar');\n\n const state3 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Baz',\n },\n state2\n );\n expect(state3.routes[state3.index].routeName).toEqual('Baz');\n\n const state4 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Foo',\n },\n state3\n );\n let activeState4 = state4.routes[state4.index];\n expect(activeState4.routeName).toEqual('NestedStack');\n expect(activeState4.routes[activeState4.index].routeName).toEqual('Foo');\n\n const state5 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n },\n state4\n );\n let activeState5 = state5.routes[state5.index];\n expect(activeState5.routeName).toEqual('NestedStack');\n expect(activeState5.routes[activeState5.index].routeName).toEqual('Bar');\n });\n\n it('order of handling navigate action is correct for nested stackrouters 2', () => {\n const Screen = () => ;\n const NestedStack = () => ;\n const OtherNestedStack = () => ;\n\n let nestedRouter = StackRouter({ Foo: Screen, Bar: Screen });\n let otherNestedRouter = StackRouter({ Foo: Screen });\n NestedStack.router = nestedRouter;\n OtherNestedStack.router = otherNestedRouter;\n\n let router = StackRouter(\n {\n NestedStack,\n OtherNestedStack,\n Bar: Screen,\n },\n {\n initialRouteName: 'OtherNestedStack',\n }\n );\n\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n expect(state.routes[state.index].routeName).toEqual('OtherNestedStack');\n\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n },\n state\n );\n expect(state2.routes[state2.index].routeName).toEqual('Bar');\n\n const state3 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'NestedStack',\n },\n state2\n );\n const state4 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n },\n state3\n );\n let activeState4 = state4.routes[state4.index];\n expect(activeState4.routeName).toEqual('NestedStack');\n expect(activeState4.routes[activeState4.index].routeName).toEqual('Bar');\n });\n});\n"]}
+\ No newline at end of file
++{"version":3,"sources":["StackRouter-test.js"],"names":["React","StackRouter","StackActions","NavigationActions","_TESTING_ONLY_normalize_keys","beforeEach","ListScreen","ProfileNavigator","router","list","path","screen","MainNavigator","profile","LoginScreen","AuthNavigator","login","BarScreen","FooNavigator","Component","bar","PersonScreen","TestStackRouter","main","baz","auth","person","foo","describe","it","FooScreen","expect","getComponentForState","index","transitions","pushing","popping","routes","key","routeName","toBe","getScreen","BazScreen","getComponentForRouteName","getActionForPathAndParams","toEqual","type","NAVIGATE","params","id","code","uri","action","barThing","fooThing","Bar","qux","TestRouter","initState","getStateForAction","init","pushedState","navigate","ChildNavigator","Baz","Qux","Foo","Bad","state","INIT","state2","state3","PUSH","length","POP","POP_TO_TOP","bazId","poppedState","pop","poppedState2","n","immediate","poppedState3","popToTop","poppedImmediatelyState","initialRouteName","barState","navigateOnBarState","initialState","fooBarState","fooBarBazState","fooState","pushedTwiceState","GrandChildNavigator","Quux","Corge","Woo","Parent","initialRouteKey","FirstChildNavigator","First1","First2","SecondChildNavigator","Second1","Second2","Leaf","First","Second","first","second","firstAgain","debug","navigatedState","push","toThrow","secondPushedState","pushedThriceState","navigatedBackToFirstRouteState","name","BACK","replacedState","replace","meaning","not","replacedState2","newKey","Grault","state4","state5","originalCurrentScreen","replacedCurrentScreen","COMPLETE_TRANSITION","toChildKey","outputState","boo","testState","Xyz","ScreenA","ScreenB","Boo","getPathAndParamsForState","initialRouteParams","toBeNull","SET_PARAMS","other","RESET","actions","state1","resetAction","ChildRouter","objectContaining","undefined","LeafScreen","Screen","NestedStack","nestedRouter","activeState4","activeState5","OtherNestedStack","otherNestedRouter"],"mappings":"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","sourcesContent":["/* eslint no-shadow:0, react/no-multi-comp:0, react/display-name:0 */\n\nimport React from 'react';\n\nimport StackRouter from '../StackRouter';\nimport * as StackActions from '../StackActions';\nimport * as NavigationActions from '../../NavigationActions';\nimport { _TESTING_ONLY_normalize_keys } from '../KeyGenerator.ts';\n\nbeforeEach(() => {\n _TESTING_ONLY_normalize_keys();\n});\n\nconst ListScreen = () => ;\n\nconst ProfileNavigator = () => ;\nProfileNavigator.router = StackRouter({\n list: {\n path: 'list/:id',\n screen: ListScreen,\n },\n});\n\nconst MainNavigator = () => ;\nMainNavigator.router = StackRouter({\n profile: {\n path: 'p/:id',\n screen: ProfileNavigator,\n },\n});\n\nconst LoginScreen = () => ;\n\nconst AuthNavigator = () => ;\nAuthNavigator.router = StackRouter({\n login: {\n screen: LoginScreen,\n },\n});\n\nconst BarScreen = () => ;\n\nclass FooNavigator extends React.Component {\n static router = StackRouter({\n bar: {\n path: 'b/:barThing',\n screen: BarScreen,\n },\n });\n render() {\n return ;\n }\n}\n\nconst PersonScreen = () => ;\n\nconst TestStackRouter = StackRouter({\n main: {\n screen: MainNavigator,\n },\n baz: {\n path: null,\n screen: FooNavigator,\n },\n auth: {\n screen: AuthNavigator,\n },\n person: {\n path: 'people/:id',\n screen: PersonScreen,\n },\n foo: {\n path: 'fo/:fooThing',\n screen: FooNavigator,\n },\n});\n\ndescribe('StackRouter', () => {\n it('Gets the active screen for a given state', () => {\n const FooScreen = () => ;\n const BarScreen = () => ;\n const router = StackRouter({\n foo: {\n screen: FooScreen,\n },\n bar: {\n screen: BarScreen,\n },\n });\n\n expect(\n router.getComponentForState({\n index: 0,\n transitions: { pushing: [], popping: [] },\n routes: [\n { key: 'a', routeName: 'foo' },\n { key: 'b', routeName: 'bar' },\n { key: 'c', routeName: 'foo' },\n ],\n })\n ).toBe(FooScreen);\n expect(\n router.getComponentForState({\n index: 1,\n transitions: { pushing: [], popping: [] },\n routes: [\n { key: 'a', routeName: 'foo' },\n { key: 'b', routeName: 'bar' },\n ],\n })\n ).toBe(BarScreen);\n });\n\n it('Handles getScreen in getComponentForState', () => {\n const FooScreen = () => ;\n const BarScreen = () => ;\n const router = StackRouter({\n foo: {\n getScreen: () => FooScreen,\n },\n bar: {\n getScreen: () => BarScreen,\n },\n });\n\n expect(\n router.getComponentForState({\n index: 0,\n transitions: { pushing: [], popping: [] },\n routes: [\n { key: 'a', routeName: 'foo' },\n { key: 'b', routeName: 'bar' },\n { key: 'c', routeName: 'foo' },\n ],\n })\n ).toBe(FooScreen);\n expect(\n router.getComponentForState({\n index: 1,\n transitions: { pushing: [], popping: [] },\n routes: [\n { key: 'a', routeName: 'foo' },\n { key: 'b', routeName: 'bar' },\n ],\n })\n ).toBe(BarScreen);\n });\n\n it('Gets the screen for given route', () => {\n const FooScreen = () => ;\n const BarScreen = class extends React.Component {\n render() {\n return ;\n }\n };\n const BazScreen = class extends React.Component {\n render() {\n return ;\n }\n };\n const router = StackRouter({\n foo: {\n screen: FooScreen,\n },\n bar: {\n screen: BarScreen,\n },\n baz: {\n screen: BazScreen,\n },\n });\n\n expect(router.getComponentForRouteName('foo')).toBe(FooScreen);\n expect(router.getComponentForRouteName('bar')).toBe(BarScreen);\n expect(router.getComponentForRouteName('baz')).toBe(BazScreen);\n });\n\n it('Handles getScreen in getComponent', () => {\n const FooScreen = () => ;\n const BarScreen = class extends React.Component {\n render() {\n return ;\n }\n };\n const BazScreen = class extends React.Component {\n render() {\n return ;\n }\n };\n const router = StackRouter({\n foo: {\n getScreen: () => FooScreen,\n },\n bar: {\n getScreen: () => BarScreen,\n },\n baz: {\n getScreen: () => BazScreen,\n },\n });\n\n expect(router.getComponentForRouteName('foo')).toBe(FooScreen);\n expect(router.getComponentForRouteName('bar')).toBe(BarScreen);\n expect(router.getComponentForRouteName('baz')).toBe(BazScreen);\n });\n\n it('Parses simple paths', () => {\n expect(AuthNavigator.router.getActionForPathAndParams('login')).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'login',\n params: {},\n });\n });\n\n it('Parses paths with a param', () => {\n expect(TestStackRouter.getActionForPathAndParams('people/foo')).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'person',\n params: {\n id: 'foo',\n },\n });\n });\n\n it('Parses paths with a query', () => {\n expect(\n TestStackRouter.getActionForPathAndParams('people/foo', {\n code: 'test',\n foo: 'bar',\n })\n ).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'person',\n params: {\n id: 'foo',\n code: 'test',\n foo: 'bar',\n },\n });\n });\n\n it('Parses paths with an empty query value', () => {\n expect(\n TestStackRouter.getActionForPathAndParams('people/foo', {\n code: '',\n foo: 'bar',\n })\n ).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'person',\n params: {\n id: 'foo',\n code: '',\n foo: 'bar',\n },\n });\n });\n\n it('Correctly parses a path without arguments into an action chain', () => {\n const uri = 'auth/login';\n const action = TestStackRouter.getActionForPathAndParams(uri);\n expect(action).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'auth',\n params: {},\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'login',\n params: {},\n },\n });\n });\n\n it('Correctly parses a path with arguments into an action chain', () => {\n const uri = 'main/p/4/list/10259959195';\n const action = TestStackRouter.getActionForPathAndParams(uri);\n expect(action).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'main',\n params: {},\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'profile',\n params: {\n id: '4',\n },\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'list',\n params: {\n id: '10259959195',\n },\n },\n },\n });\n });\n\n it('Correctly parses a path to the router connected to another router through a pure wildcard route into an action chain', () => {\n const uri = 'b/123';\n const action = TestStackRouter.getActionForPathAndParams(uri);\n expect(action).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'baz',\n params: {},\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'bar',\n params: {\n barThing: '123',\n },\n },\n });\n });\n\n it('Correctly returns null action for non-existent path', () => {\n const uri = 'asdf/1234';\n const action = TestStackRouter.getActionForPathAndParams(uri);\n expect(action).toEqual(null);\n });\n\n it('Correctly returns action chain for partially matched path', () => {\n const uri = 'auth/login';\n const action = TestStackRouter.getActionForPathAndParams(uri);\n expect(action).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'auth',\n params: {},\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'login',\n params: {},\n },\n });\n });\n\n it('Correctly returns action for path with multiple parameters', () => {\n const path = 'fo/22/b/hello';\n const action = TestStackRouter.getActionForPathAndParams(path);\n expect(action).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'foo',\n params: {\n fooThing: '22',\n },\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'bar',\n params: {\n barThing: 'hello',\n },\n },\n });\n });\n\n it('Pushes other navigators when navigating to an unopened route name', () => {\n const Bar = () => ;\n Bar.router = StackRouter({\n baz: { screen: () => },\n qux: { screen: () => },\n });\n const TestRouter = StackRouter({\n foo: { screen: () => },\n bar: { screen: Bar },\n });\n const initState = TestRouter.getStateForAction(NavigationActions.init());\n expect(initState).toEqual({\n index: 0,\n transitions: { pushing: [], popping: [] },\n key: 'StackRouterRoot',\n routes: [{ key: 'id-0', routeName: 'foo' }],\n });\n const pushedState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'qux' }),\n initState\n );\n expect(pushedState.index).toEqual(1);\n expect(pushedState.routes[1].index).toEqual(1);\n expect(pushedState.routes[1].routes[1].routeName).toEqual('qux');\n });\n\n it('push bubbles up', () => {\n const ChildNavigator = () => ;\n ChildNavigator.router = StackRouter({\n Baz: { screen: () => },\n Qux: { screen: () => },\n });\n const router = StackRouter({\n Foo: { screen: () => },\n Bar: { screen: ChildNavigator },\n Bad: { screen: () => },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n },\n state\n );\n const state3 = router.getStateForAction(\n {\n type: StackActions.PUSH,\n routeName: 'Bad',\n },\n state2\n );\n expect(state3 && state3.index).toEqual(2);\n expect(state3 && state3.routes.length).toEqual(3);\n });\n\n it('pop bubbles up', () => {\n const ChildNavigator = () => ;\n ChildNavigator.router = StackRouter({\n Baz: { screen: () => },\n Qux: { screen: () => },\n });\n const router = StackRouter({\n Foo: { screen: () => },\n Bar: { screen: ChildNavigator },\n });\n\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n key: 'StackRouterRoot',\n },\n state\n );\n const state3 = router.getStateForAction(\n {\n type: StackActions.POP,\n },\n state2\n );\n expect(state3 && state3.index).toEqual(0);\n });\n\n it('Handle navigation to nested navigator', () => {\n const action = TestStackRouter.getActionForPathAndParams('fo/22/b/hello');\n /* $FlowFixMe */\n const state2 = TestStackRouter.getStateForAction(action);\n expect(state2).toEqual({\n index: 0,\n transitions: { pushing: [], popping: [] },\n key: 'StackRouterRoot',\n routes: [\n {\n index: 0,\n key: 'id-1',\n transitions: { pushing: [], popping: [] },\n routeName: 'foo',\n params: {\n fooThing: '22',\n },\n routes: [\n {\n routeName: 'bar',\n key: 'id-0',\n params: {\n barThing: 'hello',\n },\n },\n ],\n },\n ],\n });\n });\n\n it('popToTop bubbles up', () => {\n const ChildNavigator = () => ;\n ChildNavigator.router = StackRouter({\n Baz: { screen: () => },\n Qux: { screen: () => },\n });\n\n const router = StackRouter({\n Foo: { screen: () => },\n Bar: { screen: ChildNavigator },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n },\n state\n );\n\n const state3 = router.getStateForAction(\n {\n type: StackActions.POP_TO_TOP,\n },\n state2\n );\n expect(state3 && state3.index).toEqual(0);\n });\n\n it('popToTop targets StackRouter by key if specified', () => {\n const ChildNavigator = () => ;\n ChildNavigator.router = StackRouter({\n Baz: { screen: () => },\n Qux: { screen: () => },\n });\n const router = StackRouter({\n Foo: { screen: () => },\n Bar: { screen: ChildNavigator },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n },\n state\n );\n\n const state3 = router.getStateForAction(\n {\n type: StackActions.POP_TO_TOP,\n key: state2.key,\n },\n state2\n );\n expect(state3 && state3.index).toEqual(0);\n });\n\n it('pop action works as expected', () => {\n const TestRouter = StackRouter({\n foo: { screen: () => },\n bar: { screen: () => },\n });\n\n const state = {\n index: 3,\n transitions: { pushing: [], popping: [] },\n routes: [\n { key: 'A', routeName: 'foo' },\n { key: 'B', routeName: 'bar', params: { bazId: '321' } },\n { key: 'C', routeName: 'foo' },\n { key: 'D', routeName: 'bar' },\n ],\n };\n const poppedState = TestRouter.getStateForAction(StackActions.pop(), state);\n expect(poppedState.routes.length).toBe(3);\n expect(poppedState.index).toBe(2);\n expect(poppedState.transitions).toEqual({ pushing: [], popping: ['D'] });\n\n const poppedState2 = TestRouter.getStateForAction(\n StackActions.pop({ n: 2, immediate: true }),\n state\n );\n expect(poppedState2.routes.length).toBe(2);\n expect(poppedState2.index).toBe(1);\n expect(poppedState2.transitions).toEqual({ pushing: [], popping: [] });\n\n const poppedState3 = TestRouter.getStateForAction(\n StackActions.pop({ n: 5 }),\n state\n );\n expect(poppedState3.routes.length).toBe(1);\n expect(poppedState3.index).toBe(0);\n expect(poppedState3.transitions).toEqual({ pushing: [], popping: ['D'] });\n });\n\n it('popToTop works as expected', () => {\n const TestRouter = StackRouter({\n foo: { screen: () => },\n bar: { screen: () => },\n });\n\n const state = {\n index: 2,\n transitions: { pushing: [], popping: [] },\n routes: [\n { key: 'A', routeName: 'foo' },\n { key: 'B', routeName: 'bar', params: { bazId: '321' } },\n { key: 'C', routeName: 'foo' },\n ],\n };\n const poppedState = TestRouter.getStateForAction(\n StackActions.popToTop(),\n state\n );\n expect(poppedState.routes.length).toBe(1);\n expect(poppedState.index).toBe(0);\n expect(poppedState.transitions).toEqual({ popping: ['C'], pushing: [] });\n const poppedState2 = TestRouter.getStateForAction(\n StackActions.popToTop(),\n poppedState\n );\n expect(poppedState).toEqual(poppedState2);\n const poppedImmediatelyState = TestRouter.getStateForAction(\n StackActions.popToTop({ immediate: true }),\n state\n );\n expect(poppedImmediatelyState.routes.length).toBe(1);\n expect(poppedImmediatelyState.index).toBe(0);\n expect(poppedImmediatelyState.transitions).toEqual({\n pushing: [],\n popping: [],\n });\n });\n\n it('Navigate does not push duplicate routeName', () => {\n const TestRouter = StackRouter(\n {\n foo: { screen: () => },\n bar: { screen: () => },\n },\n { initialRouteName: 'foo' }\n );\n const initState = TestRouter.getStateForAction(NavigationActions.init());\n const barState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'bar' }),\n initState\n );\n expect(barState.index).toEqual(1);\n expect(barState.routes[1].routeName).toEqual('bar');\n const navigateOnBarState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'bar' }),\n barState\n );\n expect(navigateOnBarState).toEqual(null);\n });\n\n it('Navigate focuses given routeName if already active in stack', () => {\n const TestRouter = StackRouter(\n {\n foo: { screen: () => },\n bar: { screen: () => },\n baz: { screen: () => },\n },\n { initialRouteName: 'foo' }\n );\n const initialState = TestRouter.getStateForAction(NavigationActions.init());\n const fooBarState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'bar' }),\n initialState\n );\n const fooBarBazState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'baz' }),\n fooBarState\n );\n expect(fooBarBazState.index).toEqual(2);\n expect(fooBarBazState.routes[2].routeName).toEqual('baz');\n\n const fooState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'foo' }),\n fooBarBazState\n );\n expect(fooState.index).toEqual(0);\n expect(fooState.routes.length).toEqual(1);\n expect(fooState.routes[0].routeName).toEqual('foo');\n });\n\n it('Navigate pushes duplicate routeName if unique key is provided', () => {\n const TestRouter = StackRouter({\n foo: { screen: () => },\n bar: { screen: () => },\n });\n const initState = TestRouter.getStateForAction(NavigationActions.init());\n const pushedState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'bar' }),\n initState\n );\n expect(pushedState.index).toEqual(1);\n expect(pushedState.routes[1].routeName).toEqual('bar');\n const pushedTwiceState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'bar', key: 'new-unique-key!' }),\n pushedState\n );\n expect(pushedTwiceState.index).toEqual(2);\n expect(pushedTwiceState.routes[2].routeName).toEqual('bar');\n });\n\n it('Navigate from top propagates to any arbitary depth of stacks', () => {\n const GrandChildNavigator = () => ;\n GrandChildNavigator.router = StackRouter({\n Quux: { screen: () => },\n Corge: { screen: () => },\n });\n\n const ChildNavigator = () => ;\n ChildNavigator.router = StackRouter({\n Baz: { screen: () => },\n Woo: { screen: () => },\n Qux: { screen: GrandChildNavigator },\n });\n\n const Parent = StackRouter({\n Foo: { screen: () => },\n Bar: { screen: ChildNavigator },\n });\n\n const state = Parent.getStateForAction({ type: NavigationActions.INIT });\n const state2 = Parent.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Corge',\n },\n state\n );\n\n expect(state2.transitions).toEqual({ popping: [], pushing: ['id-5'] });\n expect(state2.index).toEqual(1);\n expect(state2.routes[1].index).toEqual(1);\n expect(state2.routes[1].routes[1].index).toEqual(1);\n expect(state2.routes[1].routes[1].routes[1].routeName).toEqual('Corge');\n });\n\n it('Navigate to initial screen is possible', () => {\n const TestRouter = StackRouter(\n {\n foo: { screen: () => },\n bar: { screen: () => },\n },\n { initialRouteKey: 'foo' }\n );\n const initState = TestRouter.getStateForAction(NavigationActions.init());\n const pushedState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'foo', key: 'foo' }),\n initState\n );\n expect(pushedState).toEqual(null);\n });\n\n it('Navigate with key and without it is idempotent', () => {\n const TestRouter = StackRouter({\n foo: { screen: () => },\n bar: { screen: () => },\n });\n const initState = TestRouter.getStateForAction(NavigationActions.init());\n const pushedState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'bar', key: 'a' }),\n initState\n );\n expect(pushedState.index).toEqual(1);\n expect(pushedState.routes[1].routeName).toEqual('bar');\n const pushedTwiceState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'bar', key: 'a' }),\n pushedState\n );\n expect(pushedTwiceState).toEqual(null);\n });\n\n // https://github.com/react-navigation/react-navigation/issues/4063\n it('Navigate on inactive stackrouter is idempotent', () => {\n const FirstChildNavigator = () => ;\n FirstChildNavigator.router = StackRouter({\n First1: () => ,\n First2: () => ,\n });\n\n const SecondChildNavigator = () => ;\n SecondChildNavigator.router = StackRouter({\n Second1: () => ,\n Second2: () => ,\n });\n\n const router = StackRouter({\n Leaf: () => ,\n First: FirstChildNavigator,\n Second: SecondChildNavigator,\n });\n\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n\n const first = router.getStateForAction(\n NavigationActions.navigate({ routeName: 'First2' }),\n state\n );\n\n const second = router.getStateForAction(\n NavigationActions.navigate({ routeName: 'Second2' }),\n first\n );\n\n const firstAgain = router.getStateForAction(\n NavigationActions.navigate({\n routeName: 'First2',\n params: { debug: true },\n }),\n second\n );\n\n expect(first.routes.length).toEqual(2);\n expect(first.index).toEqual(1);\n expect(second.routes.length).toEqual(3);\n expect(second.index).toEqual(2);\n\n expect(firstAgain.index).toEqual(1);\n expect(firstAgain.routes.length).toEqual(2);\n });\n\n it('Navigate to current routeName returns null to indicate handled action', () => {\n const TestRouter = StackRouter({\n foo: { screen: () => },\n bar: { screen: () => },\n });\n const initState = TestRouter.getStateForAction(NavigationActions.init());\n const navigatedState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'foo' }),\n initState\n );\n expect(navigatedState).toBe(null);\n });\n\n it('Push behaves like navigate, except for key', () => {\n const TestRouter = StackRouter({\n foo: { screen: () => },\n bar: { screen: () => },\n });\n const initState = TestRouter.getStateForAction(NavigationActions.init());\n const pushedState = TestRouter.getStateForAction(\n StackActions.push({ routeName: 'bar' }),\n initState\n );\n expect(pushedState.index).toEqual(1);\n expect(pushedState.routes[1].routeName).toEqual('bar');\n expect(() => {\n TestRouter.getStateForAction(\n { type: StackActions.PUSH, routeName: 'bar', key: 'a' },\n pushedState\n );\n }).toThrow('StackRouter does not support key on the push action');\n });\n\n it('Push adds new routes every time', () => {\n const TestRouter = StackRouter({\n foo: { screen: () => },\n bar: { screen: () => },\n });\n const initState = TestRouter.getStateForAction(NavigationActions.init());\n const pushedState = TestRouter.getStateForAction(\n StackActions.push({ routeName: 'bar' }),\n initState\n );\n expect(pushedState.index).toEqual(1);\n expect(pushedState.routes[1].routeName).toEqual('bar');\n const secondPushedState = TestRouter.getStateForAction(\n StackActions.push({ routeName: 'bar' }),\n pushedState\n );\n expect(secondPushedState.index).toEqual(2);\n expect(secondPushedState.routes[2].routeName).toEqual('bar');\n });\n\n it('Navigate backwards with key removes leading routes', () => {\n const TestRouter = StackRouter({\n foo: { screen: () => },\n bar: { screen: () => },\n });\n const initState = TestRouter.getStateForAction(NavigationActions.init());\n const pushedState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'bar', key: 'a' }),\n initState\n );\n const pushedTwiceState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'bar', key: 'b`' }),\n pushedState\n );\n const pushedThriceState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'foo', key: 'c`' }),\n pushedTwiceState\n );\n expect(pushedThriceState.routes.length).toEqual(4);\n\n const navigatedBackToFirstRouteState = TestRouter.getStateForAction(\n NavigationActions.navigate({\n routeName: 'foo',\n key: pushedThriceState.routes[0].key,\n }),\n pushedThriceState\n );\n expect(navigatedBackToFirstRouteState.index).toEqual(0);\n expect(navigatedBackToFirstRouteState.routes.length).toEqual(1);\n });\n\n it('Handle basic stack logic for plain components', () => {\n const FooScreen = () => ;\n const BarScreen = () => ;\n const router = StackRouter({\n Foo: {\n screen: FooScreen,\n },\n Bar: {\n screen: BarScreen,\n },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n expect(state).toEqual({\n index: 0,\n transitions: { pushing: [], popping: [] },\n key: 'StackRouterRoot',\n routes: [\n {\n key: 'id-0',\n routeName: 'Foo',\n },\n ],\n });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n params: { name: 'Zoom' },\n immediate: true,\n },\n state\n );\n expect(state2.index).toEqual(1);\n expect(state2.routes[1].routeName).toEqual('Bar');\n expect(state2.routes[1].params).toEqual({ name: 'Zoom' });\n expect(state2.routes.length).toEqual(2);\n const state3 = router.getStateForAction(\n { type: NavigationActions.BACK, immediate: true },\n state2\n );\n expect(state3).toEqual({\n index: 0,\n transitions: { pushing: [], popping: [] },\n key: 'StackRouterRoot',\n routes: [\n {\n key: 'id-0',\n routeName: 'Foo',\n },\n ],\n });\n });\n\n it('Replace action works', () => {\n const TestRouter = StackRouter({\n foo: { screen: () => },\n bar: { screen: () => },\n });\n const initState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'foo' })\n );\n const replacedState = TestRouter.getStateForAction(\n StackActions.replace({\n routeName: 'bar',\n params: { meaning: 42 },\n key: initState.routes[0].key,\n }),\n initState\n );\n expect(replacedState.index).toEqual(0);\n expect(replacedState.routes.length).toEqual(1);\n expect(replacedState.routes[0].key).not.toEqual(initState.routes[0].key);\n expect(replacedState.routes[0].routeName).toEqual('bar');\n expect(replacedState.routes[0].params.meaning).toEqual(42);\n const replacedState2 = TestRouter.getStateForAction(\n StackActions.replace({\n routeName: 'bar',\n key: initState.routes[0].key,\n newKey: 'wow',\n }),\n initState\n );\n expect(replacedState2.index).toEqual(0);\n expect(replacedState2.routes.length).toEqual(1);\n expect(replacedState2.routes[0].key).toEqual('wow');\n expect(replacedState2.routes[0].routeName).toEqual('bar');\n });\n\n it('Replace action returns most recent route if no key is provided', () => {\n const GrandChildNavigator = () => ;\n GrandChildNavigator.router = StackRouter({\n Quux: { screen: () => },\n Corge: { screen: () => },\n Grault: { screen: () => },\n });\n\n const ChildNavigator = () => ;\n ChildNavigator.router = StackRouter({\n Baz: { screen: () => },\n Woo: { screen: () => },\n Qux: { screen: GrandChildNavigator },\n });\n\n const router = StackRouter({\n Foo: { screen: () => },\n Bar: { screen: ChildNavigator },\n });\n\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n },\n state\n );\n const state3 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Qux',\n },\n state2\n );\n const state4 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Corge',\n },\n state3\n );\n const state5 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Grault',\n },\n state4\n );\n\n const replacedState = router.getStateForAction(\n StackActions.replace({\n routeName: 'Woo',\n params: { meaning: 42 },\n }),\n state5\n );\n\n const originalCurrentScreen = state5.routes[1].routes[1].routes[2];\n const replacedCurrentScreen = replacedState.routes[1].routes[1].routes[2];\n\n expect(replacedState.routes[1].routes[1].index).toEqual(2);\n expect(replacedState.routes[1].routes[1].routes.length).toEqual(3);\n expect(replacedCurrentScreen.key).not.toEqual(originalCurrentScreen.key);\n expect(replacedCurrentScreen.routeName).not.toEqual(\n originalCurrentScreen.routeName\n );\n expect(replacedCurrentScreen.routeName).toEqual('Woo');\n expect(replacedCurrentScreen.params.meaning).toEqual(42);\n });\n\n it('Handles push transition logic with completion action', () => {\n const FooScreen = () => ;\n const BarScreen = () => ;\n const router = StackRouter({\n Foo: {\n screen: FooScreen,\n },\n Bar: {\n screen: BarScreen,\n },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n params: { name: 'Zoom' },\n },\n state\n );\n expect(state2 && state2.index).toEqual(1);\n expect(state2 && state2.transitions).toEqual({\n popping: [],\n pushing: ['id-1'],\n });\n const state3 = router.getStateForAction(\n {\n type: StackActions.COMPLETE_TRANSITION,\n toChildKey: state2.routes[1].key,\n },\n state2\n );\n expect(state3 && state3.index).toEqual(1);\n expect(state3 && state3.transitions).toEqual({ pushing: [], popping: [] });\n });\n\n it('Completion action does not work with incorrect key', () => {\n const FooScreen = () => ;\n const router = StackRouter({\n Foo: {\n screen: FooScreen,\n },\n Bar: {\n screen: FooScreen,\n },\n });\n const state = {\n key: 'StackKey',\n index: 1,\n transitions: { pushing: ['b'], popping: [] },\n routes: [{ key: 'a', routeName: 'Foo' }, { key: 'b', routeName: 'Foo' }],\n };\n const outputState = router.getStateForAction(\n {\n type: StackActions.COMPLETE_TRANSITION,\n toChildKey: state.routes[state.index].key,\n key: 'not StackKey',\n },\n state\n );\n expect(outputState.transitions).toEqual({ pushing: ['b'], popping: [] });\n });\n\n it('Completion action does not work with incorrect toChildKey', () => {\n const FooScreen = () => ;\n const router = StackRouter({\n Foo: {\n screen: FooScreen,\n },\n Bar: {\n screen: FooScreen,\n },\n });\n const state = {\n key: 'StackKey',\n index: 1,\n transitions: { pushing: ['b'], popping: [] },\n routes: [{ key: 'a', routeName: 'Foo' }, { key: 'b', routeName: 'Foo' }],\n };\n const outputState = router.getStateForAction(\n {\n type: StackActions.COMPLETE_TRANSITION,\n // for this action to toggle transitions, toChildKey should be state.routes[state.index].key,\n toChildKey: 'incorrect',\n key: 'StackKey',\n },\n state\n );\n expect(outputState.transitions).toEqual({ pushing: ['b'], popping: [] });\n });\n\n it('Back action parent is prioritized over inactive child routers', () => {\n const Bar = () => ;\n Bar.router = StackRouter({\n baz: { screen: () => },\n qux: { screen: () => },\n });\n const TestRouter = StackRouter({\n foo: { screen: () => },\n bar: { screen: Bar },\n boo: { screen: () => },\n });\n const state = {\n key: 'top',\n index: 3,\n routes: [\n { routeName: 'foo', key: 'f' },\n {\n routeName: 'bar',\n key: 'b',\n index: 1,\n routes: [\n { routeName: 'baz', key: 'bz' },\n { routeName: 'qux', key: 'bx' },\n ],\n },\n { routeName: 'foo', key: 'f1' },\n { routeName: 'boo', key: 'z' },\n ],\n transitions: { pushing: [], popping: [] },\n };\n const testState = TestRouter.getStateForAction(\n { type: NavigationActions.BACK },\n state\n );\n expect(testState.index).toBe(2);\n expect(testState.routes[1].index).toBe(1);\n });\n\n it('Handle basic stack logic for components with router', () => {\n const FooScreen = () => ;\n const BarScreen = () => ;\n BarScreen.router = StackRouter({\n Xyz: {\n screen: () => null,\n },\n });\n const router = StackRouter({\n Foo: {\n screen: FooScreen,\n },\n Bar: {\n screen: BarScreen,\n },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n expect(state).toEqual({\n index: 0,\n transitions: { pushing: [], popping: [] },\n key: 'StackRouterRoot',\n routes: [\n {\n key: 'id-0',\n routeName: 'Foo',\n },\n ],\n });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n params: { name: 'Zoom' },\n immediate: true,\n },\n state\n );\n expect(state2 && state2.index).toEqual(1);\n expect(state2 && state2.routes[1].routeName).toEqual('Bar');\n expect(state2 && state2.routes[1].params).toEqual({ name: 'Zoom' });\n expect(state2 && state2.routes.length).toEqual(2);\n const state3 = router.getStateForAction(\n { type: NavigationActions.BACK, immediate: true },\n state2\n );\n expect(state3).toEqual({\n index: 0,\n transitions: { pushing: [], popping: [] },\n key: 'StackRouterRoot',\n routes: [\n {\n key: 'id-0',\n routeName: 'Foo',\n },\n ],\n });\n });\n\n it('Gets deep path (stack behavior)', () => {\n const ScreenA = () => ;\n const ScreenB = () => ;\n ScreenA.router = StackRouter({\n Boo: { path: 'boo', screen: ScreenB },\n Baz: { path: 'baz/:bazId', screen: ScreenB },\n });\n const router = StackRouter({\n Foo: {\n path: 'f/:id',\n screen: ScreenA,\n },\n Bar: {\n screen: ScreenB,\n },\n });\n\n const state = {\n index: 0,\n transitions: { pushing: [], popping: [] },\n routes: [\n {\n index: 1,\n key: 'Foo',\n routeName: 'Foo',\n params: {\n id: '123',\n },\n routes: [\n { key: 'Boo', routeName: 'Boo' },\n { key: 'Baz', routeName: 'Baz', params: { bazId: '321' } },\n ],\n },\n { key: 'Bar', routeName: 'Bar' },\n ],\n };\n const { path, params } = router.getPathAndParamsForState(state);\n expect(path).toEqual('f/123/baz/321');\n expect(params).toEqual({});\n });\n\n it('Handle goBack identified by key', () => {\n const FooScreen = () => ;\n const BarScreen = () => ;\n const router = StackRouter({\n Foo: {\n screen: FooScreen,\n },\n Bar: {\n screen: BarScreen,\n },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n immediate: true,\n params: { name: 'Zoom' },\n },\n state\n );\n const state3 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n immediate: true,\n params: { name: 'Foo' },\n },\n state2\n );\n const state4 = router.getStateForAction(\n { type: NavigationActions.BACK, key: 'wrongKey' },\n state3\n );\n expect(state3).toEqual(state4);\n const state5 = router.getStateForAction(\n {\n type: NavigationActions.BACK,\n key: state3 && state3.routes[1].key,\n immediate: true,\n },\n state4\n );\n expect(state5).toEqual(state);\n });\n\n it('Handle initial route navigation', () => {\n const FooScreen = () => ;\n const BarScreen = () => ;\n const router = StackRouter(\n {\n Foo: {\n screen: FooScreen,\n },\n Bar: {\n screen: BarScreen,\n },\n },\n { initialRouteName: 'Bar' }\n );\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n expect(state).toEqual({\n index: 0,\n transitions: { pushing: [], popping: [] },\n key: 'StackRouterRoot',\n routes: [\n {\n key: 'id-0',\n routeName: 'Bar',\n },\n ],\n });\n });\n\n it('Initial route params appear in nav state', () => {\n const FooScreen = () => ;\n const router = StackRouter(\n {\n Foo: {\n screen: FooScreen,\n },\n },\n { initialRouteName: 'Foo', initialRouteParams: { foo: 'bar' } }\n );\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n expect(state).toEqual({\n index: 0,\n transitions: { pushing: [], popping: [] },\n key: 'StackRouterRoot',\n routes: [\n {\n key: state && state.routes[0].key,\n routeName: 'Foo',\n params: { foo: 'bar' },\n },\n ],\n });\n });\n\n it('params in route config are merged with initialRouteParams', () => {\n const FooScreen = () => ;\n const router = StackRouter(\n {\n Foo: {\n screen: FooScreen,\n params: { foo: 'not-bar', meaning: 42 },\n },\n },\n { initialRouteName: 'Foo', initialRouteParams: { foo: 'bar' } }\n );\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n expect(state).toEqual({\n index: 0,\n transitions: { pushing: [], popping: [] },\n key: 'StackRouterRoot',\n routes: [\n {\n key: state && state.routes[0].key,\n routeName: 'Foo',\n params: { foo: 'bar', meaning: 42 },\n },\n ],\n });\n });\n\n it('Action params appear in nav state', () => {\n const FooScreen = () => ;\n const BarScreen = () => ;\n const router = StackRouter({\n Foo: {\n screen: FooScreen,\n },\n Bar: {\n screen: BarScreen,\n },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n params: { bar: '42' },\n immediate: true,\n },\n state\n );\n expect(state2).not.toBeNull();\n expect(state2 && state2.index).toEqual(1);\n expect(state2 && state2.routes[1].params).toEqual({ bar: '42' });\n });\n\n it('Handles the SetParams action', () => {\n const router = StackRouter(\n {\n Foo: {\n screen: () => ,\n },\n Bar: {\n screen: () => ,\n },\n },\n {\n initialRouteName: 'Bar',\n initialRouteParams: { name: 'Zoo' },\n }\n );\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const key = state && state.routes[0].key;\n const state2 =\n key &&\n router.getStateForAction(\n {\n type: NavigationActions.SET_PARAMS,\n params: { name: 'Qux' },\n key,\n },\n state\n );\n expect(state2 && state2.index).toEqual(0);\n expect(state2 && state2.routes[0].params).toEqual({ name: 'Qux' });\n });\n\n it('Handles the SetParams action for inactive routes', () => {\n const router = StackRouter(\n {\n Foo: {\n screen: () => ,\n },\n Bar: {\n screen: () => ,\n },\n },\n {\n initialRouteName: 'Bar',\n initialRouteParams: { name: 'Zoo' },\n }\n );\n const initialState = {\n index: 1,\n routes: [\n {\n key: 'RouteA',\n routeName: 'Foo',\n params: { name: 'InitialParam', other: 'Unchanged' },\n },\n { key: 'RouteB', routeName: 'Bar', params: {} },\n ],\n };\n const state = router.getStateForAction(\n {\n type: NavigationActions.SET_PARAMS,\n params: { name: 'NewParam' },\n key: 'RouteA',\n },\n initialState\n );\n expect(state.index).toEqual(1);\n expect(state.routes[0].params).toEqual({\n name: 'NewParam',\n other: 'Unchanged',\n });\n });\n\n it('Handles the setParams action with nested routers', () => {\n const ChildNavigator = () => ;\n ChildNavigator.router = StackRouter({\n Baz: { screen: () => },\n Qux: { screen: () => },\n });\n const router = StackRouter({\n Foo: { screen: ChildNavigator },\n Bar: { screen: () => },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.SET_PARAMS,\n params: { name: 'foobar' },\n key: 'id-0',\n },\n state\n );\n expect(state2 && state2.index).toEqual(0);\n expect(state2 && state2.routes[0].routes).toEqual([\n {\n key: 'id-0',\n routeName: 'Baz',\n params: { name: 'foobar' },\n },\n ]);\n });\n\n it('Handles the reset action', () => {\n const router = StackRouter({\n Foo: {\n screen: () => ,\n },\n Bar: {\n screen: () => ,\n },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: StackActions.RESET,\n actions: [\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Foo',\n params: { bar: '42' },\n immediate: true,\n },\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n immediate: true,\n },\n ],\n index: 1,\n },\n state\n );\n expect(state2 && state2.index).toEqual(1);\n expect(state2 && state2.routes[0].params).toEqual({ bar: '42' });\n expect(state2 && state2.routes[0].routeName).toEqual('Foo');\n expect(state2 && state2.routes[1].routeName).toEqual('Bar');\n });\n\n it('Handles the reset action only with correct key set', () => {\n const router = StackRouter({\n Foo: {\n screen: () => ,\n },\n Bar: {\n screen: () => ,\n },\n });\n const state1 = router.getStateForAction({ type: NavigationActions.INIT });\n const resetAction = {\n type: StackActions.RESET,\n key: 'Bad Key',\n actions: [\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Foo',\n params: { bar: '42' },\n immediate: true,\n },\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n immediate: true,\n },\n ],\n index: 1,\n };\n const state2 = router.getStateForAction(resetAction, state1);\n expect(state2).toEqual(state1);\n const state3 = router.getStateForAction(\n {\n ...resetAction,\n key: state2.key,\n },\n state2\n );\n expect(state3 && state3.index).toEqual(1);\n expect(state3 && state3.routes[0].params).toEqual({ bar: '42' });\n expect(state3 && state3.routes[0].routeName).toEqual('Foo');\n expect(state3 && state3.routes[1].routeName).toEqual('Bar');\n });\n\n it('Handles the reset action with nested Router', () => {\n const ChildRouter = StackRouter({\n baz: {\n screen: () => ,\n },\n });\n\n const ChildNavigator = () => ;\n ChildNavigator.router = ChildRouter;\n\n const router = StackRouter({\n Foo: {\n screen: ChildNavigator,\n },\n Bar: {\n screen: () => ,\n },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: StackActions.RESET,\n key: null,\n actions: [\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Foo',\n immediate: true,\n },\n ],\n index: 0,\n },\n state\n );\n\n expect(state2 && state2.index).toEqual(0);\n expect(state2 && state2.routes[0].routeName).toEqual('Foo');\n expect(state2 && state2.routes[0].routes[0].routeName).toEqual('baz');\n });\n\n it('Handles the reset action with a key', () => {\n const ChildRouter = StackRouter({\n baz: {\n screen: () => ,\n },\n });\n\n const ChildNavigator = () => ;\n ChildNavigator.router = ChildRouter;\n\n const router = StackRouter({\n Foo: {\n screen: ChildNavigator,\n },\n Bar: {\n screen: () => ,\n },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Foo',\n immediate: true,\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'baz',\n immediate: true,\n },\n },\n state\n );\n const state3 = router.getStateForAction(\n {\n type: StackActions.RESET,\n key: 'Init',\n actions: [\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Foo',\n immediate: true,\n },\n ],\n index: 0,\n },\n state2\n );\n const state4 = router.getStateForAction(\n {\n type: StackActions.RESET,\n key: null,\n actions: [\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n immediate: true,\n },\n ],\n index: 0,\n },\n state3\n );\n\n expect(state4 && state4.index).toEqual(0);\n expect(state4 && state4.routes[0].routeName).toEqual('Bar');\n });\n\n it('Handles the navigate action with params and nested StackRouter', () => {\n const ChildNavigator = () => ;\n ChildNavigator.router = StackRouter({ Baz: { screen: () => } });\n\n const router = StackRouter({\n Foo: { screen: () => },\n Bar: { screen: ChildNavigator },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n immediate: true,\n routeName: 'Bar',\n params: { foo: '42' },\n },\n state\n );\n expect(state2 && state2.routes[1].params).toEqual({ foo: '42' });\n expect(state2 && state2.routes[1].routes).toEqual([\n expect.objectContaining({\n routeName: 'Baz',\n params: { foo: '42' },\n }),\n ]);\n });\n\n it('Navigate action to previous nested StackRouter causes no transitions', () => {\n const ChildNavigator = () => ;\n ChildNavigator.router = StackRouter({\n Baz: { screen: () => },\n });\n const router = StackRouter({\n Bar: { screen: ChildNavigator },\n Foo: { screen: () => },\n });\n const state = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n immediate: true,\n routeName: 'Foo',\n },\n router.getStateForAction({ type: NavigationActions.INIT })\n );\n\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Baz',\n },\n state\n );\n\n expect(state2.index).toEqual(0);\n expect(state2.transitions).toEqual({ pushing: [], popping: [] });\n });\n\n it('Handles the navigate action with params and nested StackRouter as a first action', () => {\n const state = TestStackRouter.getStateForAction({\n type: NavigationActions.NAVIGATE,\n routeName: 'main',\n params: {\n code: 'test',\n foo: 'bar',\n },\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'profile',\n params: {\n id: '4',\n code: 'test',\n foo: 'bar',\n },\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'list',\n params: {\n id: '10259959195',\n code: 'test',\n foo: 'bar',\n },\n },\n },\n });\n\n expect(state).toEqual({\n index: 0,\n transitions: { pushing: [], popping: [] },\n key: 'StackRouterRoot',\n routes: [\n {\n index: 0,\n transitions: { pushing: [], popping: [] },\n key: 'id-2',\n params: { code: 'test', foo: 'bar' },\n routeName: 'main',\n routes: [\n {\n index: 0,\n transitions: { pushing: [], popping: [] },\n key: 'id-1',\n params: { code: 'test', foo: 'bar', id: '4' },\n routeName: 'profile',\n routes: [\n {\n key: 'id-0',\n params: { code: 'test', foo: 'bar', id: '10259959195' },\n routeName: 'list',\n type: undefined,\n },\n ],\n },\n ],\n },\n ],\n });\n\n const state2 = TestStackRouter.getStateForAction({\n type: NavigationActions.NAVIGATE,\n routeName: 'main',\n params: {\n code: '',\n foo: 'bar',\n },\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'profile',\n params: {\n id: '4',\n code: '',\n foo: 'bar',\n },\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'list',\n params: {\n id: '10259959195',\n code: '',\n foo: 'bar',\n },\n },\n },\n });\n\n expect(state2).toEqual({\n index: 0,\n transitions: { pushing: [], popping: [] },\n key: 'StackRouterRoot',\n routes: [\n {\n index: 0,\n transitions: { pushing: [], popping: [] },\n key: 'id-5',\n params: { code: '', foo: 'bar' },\n routeName: 'main',\n routes: [\n {\n index: 0,\n transitions: { pushing: [], popping: [] },\n key: 'id-4',\n params: { code: '', foo: 'bar', id: '4' },\n routeName: 'profile',\n routes: [\n {\n key: 'id-3',\n params: { code: '', foo: 'bar', id: '10259959195' },\n routeName: 'list',\n type: undefined,\n },\n ],\n },\n ],\n },\n ],\n });\n });\n\n it('Handles deep navigate completion action', () => {\n const LeafScreen = () => ;\n const FooScreen = () => ;\n FooScreen.router = StackRouter({\n Boo: { path: 'boo', screen: LeafScreen },\n Baz: { path: 'baz/:bazId', screen: LeafScreen },\n });\n const router = StackRouter({\n Foo: {\n screen: FooScreen,\n },\n Bar: {\n screen: LeafScreen,\n },\n });\n\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n expect(state && state.index).toEqual(0);\n expect(state && state.routes[0].routeName).toEqual('Foo');\n const key = state && state.routes[0].key;\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Baz',\n },\n state\n );\n expect(state2.index).toEqual(0);\n expect(state2.transitions).toEqual({ pushing: [], popping: [] });\n expect(state2.routes[0].index).toEqual(1);\n expect(state2.routes[0].transitions).toEqual({\n popping: [],\n pushing: ['id-2'],\n });\n expect(!!key).toEqual(true);\n const state3 = router.getStateForAction(\n {\n type: StackActions.COMPLETE_TRANSITION,\n toChildKey: state2.routes[0].routes[1].key,\n },\n state2\n );\n expect(state3 && state3.index).toEqual(0);\n expect(state3 && state3.transitions).toEqual({ popping: [], pushing: [] });\n expect(state3 && state3.routes[0].index).toEqual(1);\n expect(state3 && state3.routes[0].transitions).toEqual({\n popping: [],\n pushing: [],\n });\n });\n\n it('order of handling navigate action is correct for nested stackrouters', () => {\n const Screen = () => ;\n const NestedStack = () => ;\n let nestedRouter = StackRouter({\n Foo: Screen,\n Bar: Screen,\n });\n\n NestedStack.router = nestedRouter;\n\n let router = StackRouter(\n {\n NestedStack,\n Bar: Screen,\n Baz: Screen,\n },\n {\n initialRouteName: 'Baz',\n }\n );\n\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n expect(state.routes[state.index].routeName).toEqual('Baz');\n\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n },\n state\n );\n expect(state2.routes[state2.index].routeName).toEqual('Bar');\n\n const state3 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Baz',\n },\n state2\n );\n expect(state3.routes[state3.index].routeName).toEqual('Baz');\n\n const state4 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Foo',\n },\n state3\n );\n let activeState4 = state4.routes[state4.index];\n expect(activeState4.routeName).toEqual('NestedStack');\n expect(activeState4.routes[activeState4.index].routeName).toEqual('Foo');\n\n const state5 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n },\n state4\n );\n let activeState5 = state5.routes[state5.index];\n expect(activeState5.routeName).toEqual('NestedStack');\n expect(activeState5.routes[activeState5.index].routeName).toEqual('Bar');\n });\n\n it('order of handling navigate action is correct for nested stackrouters 2', () => {\n const Screen = () => ;\n const NestedStack = () => ;\n const OtherNestedStack = () => ;\n\n let nestedRouter = StackRouter({ Foo: Screen, Bar: Screen });\n let otherNestedRouter = StackRouter({ Foo: Screen });\n NestedStack.router = nestedRouter;\n OtherNestedStack.router = otherNestedRouter;\n\n let router = StackRouter(\n {\n NestedStack,\n OtherNestedStack,\n Bar: Screen,\n },\n {\n initialRouteName: 'OtherNestedStack',\n }\n );\n\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n expect(state.routes[state.index].routeName).toEqual('OtherNestedStack');\n\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n },\n state\n );\n expect(state2.routes[state2.index].routeName).toEqual('Bar');\n\n const state3 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'NestedStack',\n },\n state2\n );\n const state4 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n },\n state3\n );\n let activeState4 = state4.routes[state4.index];\n expect(activeState4.routeName).toEqual('NestedStack');\n expect(activeState4.routes[activeState4.index].routeName).toEqual('Bar');\n });\n});\n"]}
+\ No newline at end of file
+diff --git a/node_modules/@react-navigation/core/lib/module/routers/__tests__/SwitchRouter-test.js b/node_modules/@react-navigation/core/lib/module/routers/__tests__/SwitchRouter-test.js
+index a2b6907..e75fbbf 100644
+--- a/node_modules/@react-navigation/core/lib/module/routers/__tests__/SwitchRouter-test.js
++++ b/node_modules/@react-navigation/core/lib/module/routers/__tests__/SwitchRouter-test.js
+@@ -1,2 +1,2 @@
+-import _objectSpread from"@babel/runtime/helpers/objectSpread";import _classCallCheck from"@babel/runtime/helpers/classCallCheck";var _jsxFileName="/Users/satya/Workspace/Callstack/react-navigation-core/src/routers/__tests__/SwitchRouter-test.js";import React from'react';import SwitchRouter from'../SwitchRouter';import StackRouter from'../StackRouter';import*as SwitchActions from'../SwitchActions';import*as NavigationActions from'../../NavigationActions';describe('SwitchRouter',function(){it('resets the route when unfocusing a tab by default',function(){var router=getExampleRouter();var state=router.getStateForAction({type:NavigationActions.INIT});var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'A2'},state);expect(state2.routes[0].index).toEqual(1);expect(state2.routes[0].routes.length).toEqual(2);var state3=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'B'},state2);expect(state3.routes[0].index).toEqual(0);expect(state3.routes[0].routes.length).toEqual(1);});it('does not reset the route on unfocus if resetOnBlur is false',function(){var router=getExampleRouter({resetOnBlur:false});var state=router.getStateForAction({type:NavigationActions.INIT});var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'A2'},state);expect(state2.routes[0].index).toEqual(1);expect(state2.routes[0].routes.length).toEqual(2);var state3=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'B'},state2);expect(state3.routes[0].index).toEqual(1);expect(state3.routes[0].routes.length).toEqual(2);});it('ignores back by default',function(){var router=getExampleRouter();var state=router.getStateForAction({type:NavigationActions.INIT});var state2=router.getStateForAction({type:SwitchActions.JUMP_TO,routeName:'B'},state);expect(state2.index).toEqual(1);var state3=router.getStateForAction({type:NavigationActions.BACK},state2);expect(state3.index).toEqual(1);});it('handles initialRoute backBehavior',function(){var router=getExampleRouter({backBehavior:'initialRoute'});var state=router.getStateForAction({type:NavigationActions.INIT});expect(state.routeKeyHistory).toBeUndefined();var state2=router.getStateForAction({type:SwitchActions.JUMP_TO,routeName:'B'},state);expect(state2.index).toEqual(1);var state3=router.getStateForAction({type:NavigationActions.BACK},state2);expect(state3.index).toEqual(0);});it('handles order backBehavior',function(){var routerHelper=new ExampleRouterHelper({backBehavior:'order'});expect(routerHelper.getCurrentState().routeKeyHistory).toBeUndefined();expect(routerHelper.applyAction({type:SwitchActions.JUMP_TO,routeName:'C'})).toMatchObject({index:2});expect(routerHelper.applyAction({type:NavigationActions.BACK})).toMatchObject({index:1});expect(routerHelper.applyAction({type:NavigationActions.BACK})).toMatchObject({index:0});expect(routerHelper.applyAction({type:NavigationActions.BACK})).toMatchObject({index:0});});it('handles history backBehavior',function(){var routerHelper=new ExampleRouterHelper({backBehavior:'history'});expect(routerHelper.getCurrentState().routeKeyHistory).toMatchObject(['A']);expect(routerHelper.applyAction({type:NavigationActions.NAVIGATE,routeName:'B'})).toMatchObject({index:1,routeKeyHistory:['A','B']});expect(routerHelper.applyAction({type:NavigationActions.NAVIGATE,routeName:'A'})).toMatchObject({index:0,routeKeyHistory:['B','A']});expect(routerHelper.applyAction({type:NavigationActions.NAVIGATE,routeName:'C'})).toMatchObject({index:2,routeKeyHistory:['B','A','C']});expect(routerHelper.applyAction({type:NavigationActions.NAVIGATE,routeName:'A'})).toMatchObject({index:0,routeKeyHistory:['B','C','A']});expect(routerHelper.applyAction({type:NavigationActions.BACK})).toMatchObject({index:2,routeKeyHistory:['B','C']});expect(routerHelper.applyAction({type:NavigationActions.BACK})).toMatchObject({index:1,routeKeyHistory:['B']});expect(routerHelper.applyAction({type:NavigationActions.BACK})).toMatchObject({index:1,routeKeyHistory:['B']});});it('handles nested actions',function(){var router=getExampleRouter();var state=router.getStateForAction({type:NavigationActions.INIT});var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'B',action:{type:NavigationActions.NAVIGATE,routeName:'B2'}},state);var subState=state2.routes[state2.index];var activeGrandChildRoute=subState.routes[subState.index];expect(activeGrandChildRoute.routeName).toEqual('B2');});it('handles nested actions and params simultaneously',function(){var router=getExampleRouter();var state=router.getStateForAction({type:NavigationActions.INIT});var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'B',params:{foo:'bar'},action:{type:NavigationActions.NAVIGATE,routeName:'B2'}},state);var subState=state2.routes[state2.index];var activeGrandChildRoute=subState.routes[subState.index];expect(subState.params.foo).toEqual('bar');expect(activeGrandChildRoute.routeName).toEqual('B2');});it('order of handling navigate action is correct for nested switchrouters',function(){var Screen=function Screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:192}});};var NestedSwitch=function NestedSwitch(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:193}});};var OtherNestedSwitch=function OtherNestedSwitch(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:194}});};var nestedRouter=SwitchRouter({Foo:Screen,Bar:Screen});var otherNestedRouter=SwitchRouter({Foo:Screen});NestedSwitch.router=nestedRouter;OtherNestedSwitch.router=otherNestedRouter;var router=SwitchRouter({NestedSwitch:NestedSwitch,OtherNestedSwitch:OtherNestedSwitch,Bar:Screen},{initialRouteName:'OtherNestedSwitch'});var state=router.getStateForAction({type:NavigationActions.INIT});expect(state.routes[state.index].routeName).toEqual('OtherNestedSwitch');var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar'},state);expect(state2.routes[state2.index].routeName).toEqual('Bar');var state3=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'NestedSwitch'},state2);var state4=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar'},state3);var activeState4=state4.routes[state4.index];expect(activeState4.routeName).toEqual('NestedSwitch');expect(activeState4.routes[activeState4.index].routeName).toEqual('Bar');});it('order of handling navigate action is correct for nested stackrouters',function(){var Screen=function Screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:245}});};var MainStack=function MainStack(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:246}});};var LoginStack=function LoginStack(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:247}});};MainStack.router=StackRouter({Home:Screen,Profile:Screen});LoginStack.router=StackRouter({Form:Screen,ForgotPassword:Screen});var router=SwitchRouter({Home:Screen,Login:LoginStack,Main:MainStack},{initialRouteName:'Login'});var state=router.getStateForAction({type:NavigationActions.INIT});expect(state.routes[state.index].routeName).toEqual('Login');var state2=router.getStateForAction({type:SwitchActions.JUMP_TO,routeName:'Home'},state);expect(state2.routes[state2.index].routeName).toEqual('Home');});});var ExampleRouterHelper=function ExampleRouterHelper(config){var _this=this;_classCallCheck(this,ExampleRouterHelper);this.applyAction=function(action){_this._currentState=_this._router.getStateForAction(action,_this._currentState);return _this._currentState;};this.getCurrentState=function(){return _this._currentState;};this._router=getExampleRouter(config);this._currentState=this._router.getStateForAction({type:NavigationActions.INIT});};var getExampleRouter=function getExampleRouter(){var config=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var PlainScreen=function PlainScreen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:299}});};var StackA=function StackA(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:300}});};var StackB=function StackB(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:301}});};var StackC=function StackC(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:302}});};StackA.router=StackRouter({A1:PlainScreen,A2:PlainScreen});StackB.router=StackRouter({B1:PlainScreen,B2:PlainScreen});StackC.router=StackRouter({C1:PlainScreen,C2:PlainScreen});var router=SwitchRouter({A:{screen:StackA,path:''},B:{screen:StackB,path:'great/path'},C:{screen:StackC,path:'pathC'}},_objectSpread({initialRouteName:'A'},config));return router;};
++import _objectSpread from"@babel/runtime/helpers/objectSpread";import _classCallCheck from"@babel/runtime/helpers/classCallCheck";var _jsxFileName="/Users/brentvatne/coding/react-navigation-core/src/routers/__tests__/SwitchRouter-test.js";import React from'react';import SwitchRouter from'../SwitchRouter';import StackRouter from'../StackRouter';import*as SwitchActions from'../SwitchActions';import*as NavigationActions from'../../NavigationActions';describe('SwitchRouter',function(){it('resets the route when unfocusing a tab by default',function(){var router=getExampleRouter();var state=router.getStateForAction({type:NavigationActions.INIT});var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'A2'},state);expect(state2.routes[0].index).toEqual(1);expect(state2.routes[0].routes.length).toEqual(2);var state3=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'B'},state2);expect(state3.routes[0].index).toEqual(0);expect(state3.routes[0].routes.length).toEqual(1);});it('does not reset the route on unfocus if resetOnBlur is false',function(){var router=getExampleRouter({resetOnBlur:false});var state=router.getStateForAction({type:NavigationActions.INIT});var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'A2'},state);expect(state2.routes[0].index).toEqual(1);expect(state2.routes[0].routes.length).toEqual(2);var state3=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'B'},state2);expect(state3.routes[0].index).toEqual(1);expect(state3.routes[0].routes.length).toEqual(2);});it('ignores back by default',function(){var router=getExampleRouter();var state=router.getStateForAction({type:NavigationActions.INIT});var state2=router.getStateForAction({type:SwitchActions.JUMP_TO,routeName:'B'},state);expect(state2.index).toEqual(1);var state3=router.getStateForAction({type:NavigationActions.BACK},state2);expect(state3.index).toEqual(1);});it('handles initialRoute backBehavior',function(){var router=getExampleRouter({backBehavior:'initialRoute'});var state=router.getStateForAction({type:NavigationActions.INIT});expect(state.routeKeyHistory).toBeUndefined();var state2=router.getStateForAction({type:SwitchActions.JUMP_TO,routeName:'B'},state);expect(state2.index).toEqual(1);var state3=router.getStateForAction({type:NavigationActions.BACK},state2);expect(state3.index).toEqual(0);});it('handles order backBehavior',function(){var routerHelper=new ExampleRouterHelper({backBehavior:'order'});expect(routerHelper.getCurrentState().routeKeyHistory).toBeUndefined();expect(routerHelper.applyAction({type:SwitchActions.JUMP_TO,routeName:'C'})).toMatchObject({index:2});expect(routerHelper.applyAction({type:NavigationActions.BACK})).toMatchObject({index:1});expect(routerHelper.applyAction({type:NavigationActions.BACK})).toMatchObject({index:0});expect(routerHelper.applyAction({type:NavigationActions.BACK})).toMatchObject({index:0});});it('handles history backBehavior',function(){var routerHelper=new ExampleRouterHelper({backBehavior:'history'});expect(routerHelper.getCurrentState().routeKeyHistory).toMatchObject(['A']);expect(routerHelper.applyAction({type:NavigationActions.NAVIGATE,routeName:'B'})).toMatchObject({index:1,routeKeyHistory:['A','B']});expect(routerHelper.applyAction({type:NavigationActions.NAVIGATE,routeName:'A'})).toMatchObject({index:0,routeKeyHistory:['B','A']});expect(routerHelper.applyAction({type:NavigationActions.NAVIGATE,routeName:'C'})).toMatchObject({index:2,routeKeyHistory:['B','A','C']});expect(routerHelper.applyAction({type:NavigationActions.NAVIGATE,routeName:'A'})).toMatchObject({index:0,routeKeyHistory:['B','C','A']});expect(routerHelper.applyAction({type:NavigationActions.BACK})).toMatchObject({index:2,routeKeyHistory:['B','C']});expect(routerHelper.applyAction({type:NavigationActions.BACK})).toMatchObject({index:1,routeKeyHistory:['B']});expect(routerHelper.applyAction({type:NavigationActions.BACK})).toMatchObject({index:1,routeKeyHistory:['B']});});it('handles nested actions',function(){var router=getExampleRouter();var state=router.getStateForAction({type:NavigationActions.INIT});var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'B',action:{type:NavigationActions.NAVIGATE,routeName:'B2'}},state);var subState=state2.routes[state2.index];var activeGrandChildRoute=subState.routes[subState.index];expect(activeGrandChildRoute.routeName).toEqual('B2');});it('handles nested actions and params simultaneously',function(){var router=getExampleRouter();var state=router.getStateForAction({type:NavigationActions.INIT});var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'B',params:{foo:'bar'},action:{type:NavigationActions.NAVIGATE,routeName:'B2'}},state);var subState=state2.routes[state2.index];var activeGrandChildRoute=subState.routes[subState.index];expect(subState.params.foo).toEqual('bar');expect(activeGrandChildRoute.routeName).toEqual('B2');});it('order of handling navigate action is correct for nested switchrouters',function(){var Screen=function Screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:192}});};var NestedSwitch=function NestedSwitch(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:193}});};var OtherNestedSwitch=function OtherNestedSwitch(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:194}});};var nestedRouter=SwitchRouter({Foo:Screen,Bar:Screen});var otherNestedRouter=SwitchRouter({Foo:Screen});NestedSwitch.router=nestedRouter;OtherNestedSwitch.router=otherNestedRouter;var router=SwitchRouter({NestedSwitch:NestedSwitch,OtherNestedSwitch:OtherNestedSwitch,Bar:Screen},{initialRouteName:'OtherNestedSwitch'});var state=router.getStateForAction({type:NavigationActions.INIT});expect(state.routes[state.index].routeName).toEqual('OtherNestedSwitch');var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar'},state);expect(state2.routes[state2.index].routeName).toEqual('Bar');var state3=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'NestedSwitch'},state2);var state4=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar'},state3);var activeState4=state4.routes[state4.index];expect(activeState4.routeName).toEqual('NestedSwitch');expect(activeState4.routes[activeState4.index].routeName).toEqual('Bar');});it('order of handling navigate action is correct for nested stackrouters',function(){var Screen=function Screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:245}});};var MainStack=function MainStack(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:246}});};var LoginStack=function LoginStack(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:247}});};MainStack.router=StackRouter({Home:Screen,Profile:Screen});LoginStack.router=StackRouter({Form:Screen,ForgotPassword:Screen});var router=SwitchRouter({Home:Screen,Login:LoginStack,Main:MainStack},{initialRouteName:'Login'});var state=router.getStateForAction({type:NavigationActions.INIT});expect(state.routes[state.index].routeName).toEqual('Login');var state2=router.getStateForAction({type:SwitchActions.JUMP_TO,routeName:'Home'},state);expect(state2.routes[state2.index].routeName).toEqual('Home');});});var ExampleRouterHelper=function ExampleRouterHelper(config){var _this=this;_classCallCheck(this,ExampleRouterHelper);this.applyAction=function(action){_this._currentState=_this._router.getStateForAction(action,_this._currentState);return _this._currentState;};this.getCurrentState=function(){return _this._currentState;};this._router=getExampleRouter(config);this._currentState=this._router.getStateForAction({type:NavigationActions.INIT});};var getExampleRouter=function getExampleRouter(){var config=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var PlainScreen=function PlainScreen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:299}});};var StackA=function StackA(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:300}});};var StackB=function StackB(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:301}});};var StackC=function StackC(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:302}});};StackA.router=StackRouter({A1:PlainScreen,A2:PlainScreen});StackB.router=StackRouter({B1:PlainScreen,B2:PlainScreen});StackC.router=StackRouter({C1:PlainScreen,C2:PlainScreen});var router=SwitchRouter({A:{screen:StackA,path:''},B:{screen:StackB,path:'great/path'},C:{screen:StackC,path:'pathC'}},_objectSpread({initialRouteName:'A'},config));return router;};
+ //# sourceMappingURL=SwitchRouter-test.js.map
+\ No newline at end of file
+diff --git a/node_modules/@react-navigation/core/lib/module/routers/__tests__/SwitchRouter-test.js.map b/node_modules/@react-navigation/core/lib/module/routers/__tests__/SwitchRouter-test.js.map
+index fa152d7..38517a1 100644
+--- a/node_modules/@react-navigation/core/lib/module/routers/__tests__/SwitchRouter-test.js.map
++++ b/node_modules/@react-navigation/core/lib/module/routers/__tests__/SwitchRouter-test.js.map
+@@ -1 +1 @@
+-{"version":3,"sources":["SwitchRouter-test.js"],"names":["React","SwitchRouter","StackRouter","SwitchActions","NavigationActions","describe","it","router","getExampleRouter","state","getStateForAction","type","INIT","state2","NAVIGATE","routeName","expect","routes","index","toEqual","length","state3","resetOnBlur","JUMP_TO","BACK","backBehavior","routeKeyHistory","toBeUndefined","routerHelper","ExampleRouterHelper","getCurrentState","applyAction","toMatchObject","action","subState","activeGrandChildRoute","params","foo","Screen","NestedSwitch","OtherNestedSwitch","nestedRouter","Foo","Bar","otherNestedRouter","initialRouteName","state4","activeState4","MainStack","LoginStack","Home","Profile","Form","ForgotPassword","Login","Main","config","_currentState","_router","PlainScreen","StackA","StackB","StackC","A1","A2","B1","B2","C1","C2","A","screen","path","B","C"],"mappings":"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","sourcesContent":["/* eslint react/display-name:0 */\n\nimport React from 'react';\nimport SwitchRouter from '../SwitchRouter';\nimport StackRouter from '../StackRouter';\nimport * as SwitchActions from '../SwitchActions';\nimport * as NavigationActions from '../../NavigationActions';\n\ndescribe('SwitchRouter', () => {\n it('resets the route when unfocusing a tab by default', () => {\n const router = getExampleRouter();\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'A2' },\n state\n );\n expect(state2.routes[0].index).toEqual(1);\n expect(state2.routes[0].routes.length).toEqual(2);\n\n const state3 = router.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'B' },\n state2\n );\n\n expect(state3.routes[0].index).toEqual(0);\n expect(state3.routes[0].routes.length).toEqual(1);\n });\n\n it('does not reset the route on unfocus if resetOnBlur is false', () => {\n const router = getExampleRouter({ resetOnBlur: false });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'A2' },\n state\n );\n expect(state2.routes[0].index).toEqual(1);\n expect(state2.routes[0].routes.length).toEqual(2);\n\n const state3 = router.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'B' },\n state2\n );\n\n expect(state3.routes[0].index).toEqual(1);\n expect(state3.routes[0].routes.length).toEqual(2);\n });\n\n it('ignores back by default', () => {\n const router = getExampleRouter();\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n { type: SwitchActions.JUMP_TO, routeName: 'B' },\n state\n );\n expect(state2.index).toEqual(1);\n\n const state3 = router.getStateForAction(\n { type: NavigationActions.BACK },\n state2\n );\n\n expect(state3.index).toEqual(1);\n });\n\n it('handles initialRoute backBehavior', () => {\n const router = getExampleRouter({ backBehavior: 'initialRoute' });\n\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n expect(state.routeKeyHistory).toBeUndefined();\n\n const state2 = router.getStateForAction(\n { type: SwitchActions.JUMP_TO, routeName: 'B' },\n state\n );\n expect(state2.index).toEqual(1);\n\n const state3 = router.getStateForAction(\n { type: NavigationActions.BACK },\n state2\n );\n\n expect(state3.index).toEqual(0);\n });\n\n it('handles order backBehavior', () => {\n const routerHelper = new ExampleRouterHelper({ backBehavior: 'order' });\n expect(routerHelper.getCurrentState().routeKeyHistory).toBeUndefined();\n\n expect(\n routerHelper.applyAction({\n type: SwitchActions.JUMP_TO,\n routeName: 'C',\n })\n ).toMatchObject({ index: 2 });\n\n expect(\n routerHelper.applyAction({ type: NavigationActions.BACK })\n ).toMatchObject({ index: 1 });\n\n expect(\n routerHelper.applyAction({ type: NavigationActions.BACK })\n ).toMatchObject({ index: 0 });\n\n expect(\n routerHelper.applyAction({ type: NavigationActions.BACK })\n ).toMatchObject({ index: 0 });\n });\n\n it('handles history backBehavior', () => {\n const routerHelper = new ExampleRouterHelper({ backBehavior: 'history' });\n expect(routerHelper.getCurrentState().routeKeyHistory).toMatchObject(['A']);\n\n expect(\n routerHelper.applyAction({\n type: NavigationActions.NAVIGATE,\n routeName: 'B',\n })\n ).toMatchObject({ index: 1, routeKeyHistory: ['A', 'B'] });\n\n expect(\n routerHelper.applyAction({\n type: NavigationActions.NAVIGATE,\n routeName: 'A',\n })\n ).toMatchObject({ index: 0, routeKeyHistory: ['B', 'A'] });\n\n expect(\n routerHelper.applyAction({\n type: NavigationActions.NAVIGATE,\n routeName: 'C',\n })\n ).toMatchObject({ index: 2, routeKeyHistory: ['B', 'A', 'C'] });\n\n expect(\n routerHelper.applyAction({\n type: NavigationActions.NAVIGATE,\n routeName: 'A',\n })\n ).toMatchObject({ index: 0, routeKeyHistory: ['B', 'C', 'A'] });\n\n expect(\n routerHelper.applyAction({ type: NavigationActions.BACK })\n ).toMatchObject({ index: 2, routeKeyHistory: ['B', 'C'] });\n\n expect(\n routerHelper.applyAction({ type: NavigationActions.BACK })\n ).toMatchObject({ index: 1, routeKeyHistory: ['B'] });\n\n expect(\n routerHelper.applyAction({ type: NavigationActions.BACK })\n ).toMatchObject({ index: 1, routeKeyHistory: ['B'] });\n });\n\n it('handles nested actions', () => {\n const router = getExampleRouter();\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'B',\n action: { type: NavigationActions.NAVIGATE, routeName: 'B2' },\n },\n state\n );\n const subState = state2.routes[state2.index];\n const activeGrandChildRoute = subState.routes[subState.index];\n expect(activeGrandChildRoute.routeName).toEqual('B2');\n });\n\n it('handles nested actions and params simultaneously', () => {\n const router = getExampleRouter();\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'B',\n params: { foo: 'bar' },\n action: { type: NavigationActions.NAVIGATE, routeName: 'B2' },\n },\n state\n );\n const subState = state2.routes[state2.index];\n const activeGrandChildRoute = subState.routes[subState.index];\n expect(subState.params.foo).toEqual('bar');\n expect(activeGrandChildRoute.routeName).toEqual('B2');\n });\n\n it('order of handling navigate action is correct for nested switchrouters', () => {\n // router = switch({ Nested: switch({ Foo, Bar }), Other: switch({ Foo }), Bar })\n // if we are focused on Other and navigate to Bar, what should happen?\n\n const Screen = () => ;\n const NestedSwitch = () => ;\n const OtherNestedSwitch = () => ;\n\n let nestedRouter = SwitchRouter({ Foo: Screen, Bar: Screen });\n let otherNestedRouter = SwitchRouter({ Foo: Screen });\n NestedSwitch.router = nestedRouter;\n OtherNestedSwitch.router = otherNestedRouter;\n\n let router = SwitchRouter(\n {\n NestedSwitch,\n OtherNestedSwitch,\n Bar: Screen,\n },\n {\n initialRouteName: 'OtherNestedSwitch',\n }\n );\n\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n expect(state.routes[state.index].routeName).toEqual('OtherNestedSwitch');\n\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n },\n state\n );\n expect(state2.routes[state2.index].routeName).toEqual('Bar');\n\n const state3 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'NestedSwitch',\n },\n state2\n );\n const state4 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n },\n state3\n );\n let activeState4 = state4.routes[state4.index];\n expect(activeState4.routeName).toEqual('NestedSwitch');\n expect(activeState4.routes[activeState4.index].routeName).toEqual('Bar');\n });\n\n // https://github.com/react-navigation/react-navigation.github.io/issues/117#issuecomment-385597628\n it('order of handling navigate action is correct for nested stackrouters', () => {\n const Screen = () => ;\n const MainStack = () => ;\n const LoginStack = () => ;\n MainStack.router = StackRouter({ Home: Screen, Profile: Screen });\n LoginStack.router = StackRouter({ Form: Screen, ForgotPassword: Screen });\n\n let router = SwitchRouter(\n {\n Home: Screen,\n Login: LoginStack,\n Main: MainStack,\n },\n {\n initialRouteName: 'Login',\n }\n );\n\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n expect(state.routes[state.index].routeName).toEqual('Login');\n\n const state2 = router.getStateForAction(\n {\n type: SwitchActions.JUMP_TO,\n routeName: 'Home',\n },\n state\n );\n expect(state2.routes[state2.index].routeName).toEqual('Home');\n });\n});\n\n// A simple helper that makes it easier to write basic routing tests\n// As we generally want to apply one action after the other,\n// it's often convenient to manipulate a structure that keeps the router state\nclass ExampleRouterHelper {\n constructor(config) {\n this._router = getExampleRouter(config);\n this._currentState = this._router.getStateForAction({\n type: NavigationActions.INIT,\n });\n }\n\n applyAction = action => {\n this._currentState = this._router.getStateForAction(\n action,\n this._currentState\n );\n return this._currentState;\n };\n\n getCurrentState = () => this._currentState;\n}\n\nconst getExampleRouter = (config = {}) => {\n const PlainScreen = () => ;\n const StackA = () => ;\n const StackB = () => ;\n const StackC = () => ;\n\n StackA.router = StackRouter({\n A1: PlainScreen,\n A2: PlainScreen,\n });\n\n StackB.router = StackRouter({\n B1: PlainScreen,\n B2: PlainScreen,\n });\n\n StackC.router = StackRouter({\n C1: PlainScreen,\n C2: PlainScreen,\n });\n\n const router = SwitchRouter(\n {\n A: {\n screen: StackA,\n path: '',\n },\n B: {\n screen: StackB,\n path: 'great/path',\n },\n C: {\n screen: StackC,\n path: 'pathC',\n },\n },\n {\n initialRouteName: 'A',\n ...config,\n }\n );\n\n return router;\n};\n"]}
+\ No newline at end of file
++{"version":3,"sources":["SwitchRouter-test.js"],"names":["React","SwitchRouter","StackRouter","SwitchActions","NavigationActions","describe","it","router","getExampleRouter","state","getStateForAction","type","INIT","state2","NAVIGATE","routeName","expect","routes","index","toEqual","length","state3","resetOnBlur","JUMP_TO","BACK","backBehavior","routeKeyHistory","toBeUndefined","routerHelper","ExampleRouterHelper","getCurrentState","applyAction","toMatchObject","action","subState","activeGrandChildRoute","params","foo","Screen","NestedSwitch","OtherNestedSwitch","nestedRouter","Foo","Bar","otherNestedRouter","initialRouteName","state4","activeState4","MainStack","LoginStack","Home","Profile","Form","ForgotPassword","Login","Main","config","_currentState","_router","PlainScreen","StackA","StackB","StackC","A1","A2","B1","B2","C1","C2","A","screen","path","B","C"],"mappings":"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","sourcesContent":["/* eslint react/display-name:0 */\n\nimport React from 'react';\nimport SwitchRouter from '../SwitchRouter';\nimport StackRouter from '../StackRouter';\nimport * as SwitchActions from '../SwitchActions';\nimport * as NavigationActions from '../../NavigationActions';\n\ndescribe('SwitchRouter', () => {\n it('resets the route when unfocusing a tab by default', () => {\n const router = getExampleRouter();\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'A2' },\n state\n );\n expect(state2.routes[0].index).toEqual(1);\n expect(state2.routes[0].routes.length).toEqual(2);\n\n const state3 = router.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'B' },\n state2\n );\n\n expect(state3.routes[0].index).toEqual(0);\n expect(state3.routes[0].routes.length).toEqual(1);\n });\n\n it('does not reset the route on unfocus if resetOnBlur is false', () => {\n const router = getExampleRouter({ resetOnBlur: false });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'A2' },\n state\n );\n expect(state2.routes[0].index).toEqual(1);\n expect(state2.routes[0].routes.length).toEqual(2);\n\n const state3 = router.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'B' },\n state2\n );\n\n expect(state3.routes[0].index).toEqual(1);\n expect(state3.routes[0].routes.length).toEqual(2);\n });\n\n it('ignores back by default', () => {\n const router = getExampleRouter();\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n { type: SwitchActions.JUMP_TO, routeName: 'B' },\n state\n );\n expect(state2.index).toEqual(1);\n\n const state3 = router.getStateForAction(\n { type: NavigationActions.BACK },\n state2\n );\n\n expect(state3.index).toEqual(1);\n });\n\n it('handles initialRoute backBehavior', () => {\n const router = getExampleRouter({ backBehavior: 'initialRoute' });\n\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n expect(state.routeKeyHistory).toBeUndefined();\n\n const state2 = router.getStateForAction(\n { type: SwitchActions.JUMP_TO, routeName: 'B' },\n state\n );\n expect(state2.index).toEqual(1);\n\n const state3 = router.getStateForAction(\n { type: NavigationActions.BACK },\n state2\n );\n\n expect(state3.index).toEqual(0);\n });\n\n it('handles order backBehavior', () => {\n const routerHelper = new ExampleRouterHelper({ backBehavior: 'order' });\n expect(routerHelper.getCurrentState().routeKeyHistory).toBeUndefined();\n\n expect(\n routerHelper.applyAction({\n type: SwitchActions.JUMP_TO,\n routeName: 'C',\n })\n ).toMatchObject({ index: 2 });\n\n expect(\n routerHelper.applyAction({ type: NavigationActions.BACK })\n ).toMatchObject({ index: 1 });\n\n expect(\n routerHelper.applyAction({ type: NavigationActions.BACK })\n ).toMatchObject({ index: 0 });\n\n expect(\n routerHelper.applyAction({ type: NavigationActions.BACK })\n ).toMatchObject({ index: 0 });\n });\n\n it('handles history backBehavior', () => {\n const routerHelper = new ExampleRouterHelper({ backBehavior: 'history' });\n expect(routerHelper.getCurrentState().routeKeyHistory).toMatchObject(['A']);\n\n expect(\n routerHelper.applyAction({\n type: NavigationActions.NAVIGATE,\n routeName: 'B',\n })\n ).toMatchObject({ index: 1, routeKeyHistory: ['A', 'B'] });\n\n expect(\n routerHelper.applyAction({\n type: NavigationActions.NAVIGATE,\n routeName: 'A',\n })\n ).toMatchObject({ index: 0, routeKeyHistory: ['B', 'A'] });\n\n expect(\n routerHelper.applyAction({\n type: NavigationActions.NAVIGATE,\n routeName: 'C',\n })\n ).toMatchObject({ index: 2, routeKeyHistory: ['B', 'A', 'C'] });\n\n expect(\n routerHelper.applyAction({\n type: NavigationActions.NAVIGATE,\n routeName: 'A',\n })\n ).toMatchObject({ index: 0, routeKeyHistory: ['B', 'C', 'A'] });\n\n expect(\n routerHelper.applyAction({ type: NavigationActions.BACK })\n ).toMatchObject({ index: 2, routeKeyHistory: ['B', 'C'] });\n\n expect(\n routerHelper.applyAction({ type: NavigationActions.BACK })\n ).toMatchObject({ index: 1, routeKeyHistory: ['B'] });\n\n expect(\n routerHelper.applyAction({ type: NavigationActions.BACK })\n ).toMatchObject({ index: 1, routeKeyHistory: ['B'] });\n });\n\n it('handles nested actions', () => {\n const router = getExampleRouter();\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'B',\n action: { type: NavigationActions.NAVIGATE, routeName: 'B2' },\n },\n state\n );\n const subState = state2.routes[state2.index];\n const activeGrandChildRoute = subState.routes[subState.index];\n expect(activeGrandChildRoute.routeName).toEqual('B2');\n });\n\n it('handles nested actions and params simultaneously', () => {\n const router = getExampleRouter();\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'B',\n params: { foo: 'bar' },\n action: { type: NavigationActions.NAVIGATE, routeName: 'B2' },\n },\n state\n );\n const subState = state2.routes[state2.index];\n const activeGrandChildRoute = subState.routes[subState.index];\n expect(subState.params.foo).toEqual('bar');\n expect(activeGrandChildRoute.routeName).toEqual('B2');\n });\n\n it('order of handling navigate action is correct for nested switchrouters', () => {\n // router = switch({ Nested: switch({ Foo, Bar }), Other: switch({ Foo }), Bar })\n // if we are focused on Other and navigate to Bar, what should happen?\n\n const Screen = () => ;\n const NestedSwitch = () => ;\n const OtherNestedSwitch = () => ;\n\n let nestedRouter = SwitchRouter({ Foo: Screen, Bar: Screen });\n let otherNestedRouter = SwitchRouter({ Foo: Screen });\n NestedSwitch.router = nestedRouter;\n OtherNestedSwitch.router = otherNestedRouter;\n\n let router = SwitchRouter(\n {\n NestedSwitch,\n OtherNestedSwitch,\n Bar: Screen,\n },\n {\n initialRouteName: 'OtherNestedSwitch',\n }\n );\n\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n expect(state.routes[state.index].routeName).toEqual('OtherNestedSwitch');\n\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n },\n state\n );\n expect(state2.routes[state2.index].routeName).toEqual('Bar');\n\n const state3 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'NestedSwitch',\n },\n state2\n );\n const state4 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n },\n state3\n );\n let activeState4 = state4.routes[state4.index];\n expect(activeState4.routeName).toEqual('NestedSwitch');\n expect(activeState4.routes[activeState4.index].routeName).toEqual('Bar');\n });\n\n // https://github.com/react-navigation/react-navigation.github.io/issues/117#issuecomment-385597628\n it('order of handling navigate action is correct for nested stackrouters', () => {\n const Screen = () => ;\n const MainStack = () => ;\n const LoginStack = () => ;\n MainStack.router = StackRouter({ Home: Screen, Profile: Screen });\n LoginStack.router = StackRouter({ Form: Screen, ForgotPassword: Screen });\n\n let router = SwitchRouter(\n {\n Home: Screen,\n Login: LoginStack,\n Main: MainStack,\n },\n {\n initialRouteName: 'Login',\n }\n );\n\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n expect(state.routes[state.index].routeName).toEqual('Login');\n\n const state2 = router.getStateForAction(\n {\n type: SwitchActions.JUMP_TO,\n routeName: 'Home',\n },\n state\n );\n expect(state2.routes[state2.index].routeName).toEqual('Home');\n });\n});\n\n// A simple helper that makes it easier to write basic routing tests\n// As we generally want to apply one action after the other,\n// it's often convenient to manipulate a structure that keeps the router state\nclass ExampleRouterHelper {\n constructor(config) {\n this._router = getExampleRouter(config);\n this._currentState = this._router.getStateForAction({\n type: NavigationActions.INIT,\n });\n }\n\n applyAction = action => {\n this._currentState = this._router.getStateForAction(\n action,\n this._currentState\n );\n return this._currentState;\n };\n\n getCurrentState = () => this._currentState;\n}\n\nconst getExampleRouter = (config = {}) => {\n const PlainScreen = () => ;\n const StackA = () => ;\n const StackB = () => ;\n const StackC = () => ;\n\n StackA.router = StackRouter({\n A1: PlainScreen,\n A2: PlainScreen,\n });\n\n StackB.router = StackRouter({\n B1: PlainScreen,\n B2: PlainScreen,\n });\n\n StackC.router = StackRouter({\n C1: PlainScreen,\n C2: PlainScreen,\n });\n\n const router = SwitchRouter(\n {\n A: {\n screen: StackA,\n path: '',\n },\n B: {\n screen: StackB,\n path: 'great/path',\n },\n C: {\n screen: StackC,\n path: 'pathC',\n },\n },\n {\n initialRouteName: 'A',\n ...config,\n }\n );\n\n return router;\n};\n"]}
+\ No newline at end of file
+diff --git a/node_modules/@react-navigation/core/lib/module/routers/__tests__/TabRouter-test.js b/node_modules/@react-navigation/core/lib/module/routers/__tests__/TabRouter-test.js
+index b9bffd3..553a0e9 100644
+--- a/node_modules/@react-navigation/core/lib/module/routers/__tests__/TabRouter-test.js
++++ b/node_modules/@react-navigation/core/lib/module/routers/__tests__/TabRouter-test.js
+@@ -1,2 +1,2 @@
+-import _objectSpread from"@babel/runtime/helpers/objectSpread";var _jsxFileName="/Users/satya/Workspace/Callstack/react-navigation-core/src/routers/__tests__/TabRouter-test.js";import React from'react';import TabRouter from'../TabRouter';import*as NavigationActions from'../../NavigationActions';var INIT_ACTION={type:NavigationActions.INIT};var BareLeafRouteConfig={screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:11}});}};describe('TabRouter',function(){it('Handles basic tab logic',function(){var ScreenA=function ScreenA(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:16}});};var ScreenB=function ScreenB(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:17}});};var router=TabRouter({Foo:{screen:ScreenA},Bar:{screen:ScreenB}});var state=router.getStateForAction({type:NavigationActions.INIT});var expectedState={index:0,routes:[{key:'Foo',routeName:'Foo'},{key:'Bar',routeName:'Bar'}],isTransitioning:false};expect(state).toEqual(expectedState);var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar'},state);var expectedState2={index:1,routes:[{key:'Foo',routeName:'Foo'},{key:'Bar',routeName:'Bar'}],isTransitioning:false};expect(state2).toEqual(expectedState2);expect(router.getComponentForState(expectedState)).toEqual(ScreenA);expect(router.getComponentForState(expectedState2)).toEqual(ScreenB);var state3=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar'},state2);expect(state3).toEqual(null);});it('Handles getScreen',function(){var ScreenA=function ScreenA(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:55}});};var ScreenB=function ScreenB(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:56}});};var router=TabRouter({Foo:{getScreen:function getScreen(){return ScreenA;}},Bar:{getScreen:function getScreen(){return ScreenB;}}});var state=router.getStateForAction({type:NavigationActions.INIT});var expectedState={index:0,routes:[{key:'Foo',routeName:'Foo'},{key:'Bar',routeName:'Bar'}],isTransitioning:false};expect(state).toEqual(expectedState);var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar'},state);var expectedState2={index:1,routes:[{key:'Foo',routeName:'Foo'},{key:'Bar',routeName:'Bar'}],isTransitioning:false};expect(state2).toEqual(expectedState2);expect(router.getComponentForState(expectedState)).toEqual(ScreenA);expect(router.getComponentForState(expectedState2)).toEqual(ScreenB);var state3=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar'},state2);expect(state3).toEqual(null);});it('Can set the initial tab',function(){var router=TabRouter({Foo:BareLeafRouteConfig,Bar:BareLeafRouteConfig},{initialRouteName:'Bar'});var state=router.getStateForAction({type:NavigationActions.INIT});expect(state).toEqual({index:1,routes:[{key:'Foo',routeName:'Foo'},{key:'Bar',routeName:'Bar'}],isTransitioning:false});});it('Can set the initial params',function(){var router=TabRouter({Foo:BareLeafRouteConfig,Bar:BareLeafRouteConfig},{initialRouteName:'Bar',initialRouteParams:{name:'Qux'}});var state=router.getStateForAction({type:NavigationActions.INIT});expect(state).toEqual({index:1,routes:[{key:'Foo',routeName:'Foo'},{key:'Bar',routeName:'Bar',params:{name:'Qux'}}],isTransitioning:false});});it('Handles the SetParams action',function(){var router=TabRouter({Foo:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:128}});}},Bar:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:131}});}}});var state2=router.getStateForAction({type:NavigationActions.SET_PARAMS,params:{name:'Qux'},key:'Foo'});expect(state2&&state2.routes[0].params).toEqual({name:'Qux'});});it('Handles the SetParams action for inactive routes',function(){var router=TabRouter({Foo:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:146}});}},Bar:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:149}});}}},{initialRouteName:'Bar'});var initialState={index:1,routes:[{key:'RouteA',routeName:'Foo',params:{name:'InitialParam',other:'Unchanged'}},{key:'RouteB',routeName:'Bar',params:{}}]};var state=router.getStateForAction({type:NavigationActions.SET_PARAMS,params:{name:'NewParam'},key:'RouteA'},initialState);expect(state.index).toEqual(1);expect(state.routes[0].params).toEqual({name:'NewParam',other:'Unchanged'});});it('getStateForAction returns null when navigating to same tab',function(){var router=TabRouter({Foo:BareLeafRouteConfig,Bar:BareLeafRouteConfig},{initialRouteName:'Bar'});var state=router.getStateForAction({type:NavigationActions.INIT});var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar'},state);expect(state2).toEqual(null);});it('getStateForAction returns initial navigate',function(){var router=TabRouter({Foo:BareLeafRouteConfig,Bar:BareLeafRouteConfig});var state=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Foo'});expect(state&&state.index).toEqual(0);});it('Handles nested tabs and nested actions',function(){var ChildTabNavigator=function ChildTabNavigator(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:208}});};ChildTabNavigator.router=TabRouter({Foo:BareLeafRouteConfig,Bar:BareLeafRouteConfig});var router=TabRouter({Foo:BareLeafRouteConfig,Baz:{screen:ChildTabNavigator},Boo:BareLeafRouteConfig});var action=router.getActionForPathAndParams('Baz/Bar',{foo:'42'});var navAction={type:NavigationActions.NAVIGATE,routeName:'Baz',params:{foo:'42'},action:{type:NavigationActions.NAVIGATE,routeName:'Bar',params:{foo:'42'}}};expect(action).toEqual(navAction);var state=router.getStateForAction(navAction);expect(state).toEqual({index:1,isTransitioning:false,routes:[{key:'Foo',routeName:'Foo'},{index:1,isTransitioning:false,key:'Baz',routeName:'Baz',params:{foo:'42'},routes:[{key:'Foo',routeName:'Foo'},{key:'Bar',routeName:'Bar',params:{foo:'42'}}]},{key:'Boo',routeName:'Boo'}]});});it('Handles passing params to nested tabs',function(){var ChildTabNavigator=function ChildTabNavigator(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:268}});};ChildTabNavigator.router=TabRouter({Boo:BareLeafRouteConfig,Bar:BareLeafRouteConfig});var router=TabRouter({Foo:BareLeafRouteConfig,Baz:{screen:ChildTabNavigator}});var navAction={type:NavigationActions.NAVIGATE,routeName:'Baz'};var state=router.getStateForAction(navAction);expect(state).toEqual({index:1,isTransitioning:false,routes:[{key:'Foo',routeName:'Foo'},{index:0,key:'Baz',routeName:'Baz',isTransitioning:false,routes:[{key:'Boo',routeName:'Boo'},{key:'Bar',routeName:'Bar'}]}]});state=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar'},state);state=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Boo'},state);expect(state&&state.routes[1]).toEqual({index:0,isTransitioning:false,key:'Baz',routeName:'Baz',routes:[{key:'Boo',routeName:'Boo'},{key:'Bar',routeName:'Bar'}]});});it('Handles initial deep linking into nested tabs',function(){var ChildTabNavigator=function ChildTabNavigator(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:322}});};ChildTabNavigator.router=TabRouter({Foo:BareLeafRouteConfig,Bar:BareLeafRouteConfig});var router=TabRouter({Foo:BareLeafRouteConfig,Baz:{screen:ChildTabNavigator},Boo:BareLeafRouteConfig});var state=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar'});expect(state).toEqual({index:1,isTransitioning:false,routes:[{key:'Foo',routeName:'Foo'},{index:1,key:'Baz',routeName:'Baz',isTransitioning:false,routes:[{key:'Foo',routeName:'Foo'},{key:'Bar',routeName:'Bar'}]},{key:'Boo',routeName:'Boo'}]});var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Foo'},state);expect(state2).toEqual({index:1,isTransitioning:false,routes:[{key:'Foo',routeName:'Foo'},{index:0,key:'Baz',routeName:'Baz',isTransitioning:false,routes:[{key:'Foo',routeName:'Foo'},{key:'Bar',routeName:'Bar'}]},{key:'Boo',routeName:'Boo'}]});var state3=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Foo'},state2);expect(state3).toEqual(null);});it('Handles linking across of deeply nested tabs',function(){var ChildNavigator0=function ChildNavigator0(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:384}});};ChildNavigator0.router=TabRouter({Boo:BareLeafRouteConfig,Baz:BareLeafRouteConfig});var ChildNavigator1=function ChildNavigator1(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:389}});};ChildNavigator1.router=TabRouter({Zoo:BareLeafRouteConfig,Zap:BareLeafRouteConfig});var MidNavigator=function MidNavigator(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:394}});};MidNavigator.router=TabRouter({Fee:{screen:ChildNavigator0},Bar:{screen:ChildNavigator1}});var router=TabRouter({Foo:{screen:MidNavigator},Gah:BareLeafRouteConfig});var state=router.getStateForAction(INIT_ACTION);expect(state).toEqual({index:0,isTransitioning:false,routes:[{index:0,key:'Foo',routeName:'Foo',isTransitioning:false,routes:[{index:0,key:'Fee',routeName:'Fee',isTransitioning:false,routes:[{key:'Boo',routeName:'Boo'},{key:'Baz',routeName:'Baz'}]},{index:0,key:'Bar',routeName:'Bar',isTransitioning:false,routes:[{key:'Zoo',routeName:'Zoo'},{key:'Zap',routeName:'Zap'}]}]},{key:'Gah',routeName:'Gah'}]});var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Zap'},state);expect(state2).toEqual({index:0,isTransitioning:false,routes:[{index:1,key:'Foo',routeName:'Foo',isTransitioning:false,routes:[{index:0,key:'Fee',routeName:'Fee',isTransitioning:false,routes:[{key:'Boo',routeName:'Boo'},{key:'Baz',routeName:'Baz'}]},{index:1,key:'Bar',routeName:'Bar',isTransitioning:false,routes:[{key:'Zoo',routeName:'Zoo'},{key:'Zap',routeName:'Zap'}]}]},{key:'Gah',routeName:'Gah'}]});var state3=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Zap'},state2);expect(state3).toEqual(null);var state4=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Foo',action:{type:NavigationActions.NAVIGATE,routeName:'Bar',action:{type:NavigationActions.NAVIGATE,routeName:'Zap'}}});expect(state4).toEqual({index:0,isTransitioning:false,routes:[{index:1,key:'Foo',routeName:'Foo',isTransitioning:false,routes:[{index:0,key:'Fee',routeName:'Fee',isTransitioning:false,routes:[{key:'Boo',routeName:'Boo'},{key:'Baz',routeName:'Baz'}]},{index:1,key:'Bar',routeName:'Bar',isTransitioning:false,routes:[{key:'Zoo',routeName:'Zoo'},{key:'Zap',routeName:'Zap'}]}]},{key:'Gah',routeName:'Gah'}]});});it('Handles path configuration',function(){var ScreenA=function ScreenA(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:533}});};var ScreenB=function ScreenB(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:534}});};var router=TabRouter({Foo:{path:'f',screen:ScreenA},Bar:{path:'b/:great',screen:ScreenB}});var params={foo:'42'};var action=router.getActionForPathAndParams('b/anything',params);var expectedAction={params:{foo:'42',great:'anything'},routeName:'Bar',type:NavigationActions.NAVIGATE};expect(action).toEqual(expectedAction);var state=router.getStateForAction({type:NavigationActions.INIT});var expectedState={index:0,isTransitioning:false,routes:[{key:'Foo',routeName:'Foo'},{key:'Bar',routeName:'Bar'}]};expect(state).toEqual(expectedState);var state2=router.getStateForAction(expectedAction,state);var expectedState2={index:1,isTransitioning:false,routes:[{key:'Foo',routeName:'Foo',params:undefined},{key:'Bar',routeName:'Bar',params:{foo:'42',great:'anything'}}]};expect(state2).toEqual(expectedState2);expect(router.getComponentForState(expectedState)).toEqual(ScreenA);expect(router.getComponentForState(expectedState2)).toEqual(ScreenB);expect(router.getPathAndParamsForState(expectedState).path).toEqual('f');expect(router.getPathAndParamsForState(expectedState2).path).toEqual('b/anything');});it('Handles default configuration',function(){var ScreenA=function ScreenA(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:590}});};var ScreenB=function ScreenB(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:591}});};var router=TabRouter({Foo:{path:'',screen:ScreenA},Bar:{path:'b',screen:ScreenB}});var action=router.getActionForPathAndParams('',{foo:'42'});expect(action).toEqual({params:{foo:'42'},routeName:'Foo',type:NavigationActions.NAVIGATE});});it('Gets deep path',function(){var ScreenA=function ScreenA(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:613}});};var ScreenB=function ScreenB(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:614}});};ScreenA.router=TabRouter({Boo:{screen:ScreenB},Baz:{screen:ScreenB}});var router=TabRouter({Foo:{path:'f',screen:ScreenA},Bar:{screen:ScreenB}});var state={index:0,isTransitioning:false,routes:[{index:1,key:'Foo',routeName:'Foo',isTransitioning:false,routes:[{key:'Boo',routeName:'Boo'},{key:'Baz',routeName:'Baz'}]},{key:'Bar',routeName:'Bar'}]};var _router$getPathAndPar=router.getPathAndParamsForState(state),path=_router$getPathAndPar.path;expect(path).toEqual('f/Baz');});it('Can navigate to other tab (no router) with params',function(){var ScreenA=function ScreenA(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:651}});};var ScreenB=function ScreenB(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:652}});};var router=TabRouter({a:{screen:ScreenA},b:{screen:ScreenB}});var state0=router.getStateForAction(INIT_ACTION);expect(state0).toEqual({index:0,isTransitioning:false,routes:[{key:'a',routeName:'a'},{key:'b',routeName:'b'}]});var params={key:'value'};var state1=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'b',params:params},state0);expect(state1).toEqual({index:1,isTransitioning:false,routes:[{key:'a',routeName:'a'},{key:'b',routeName:'b',params:params}]});});it('Back actions are not propagated to inactive children',function(){var ScreenA=function ScreenA(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:685}});};var ScreenB=function ScreenB(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:686}});};var ScreenC=function ScreenC(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:687}});};var InnerNavigator=function InnerNavigator(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:688}});};InnerNavigator.router=TabRouter({a:{screen:ScreenA},b:{screen:ScreenB}});var router=TabRouter({inner:{screen:InnerNavigator},c:{screen:ScreenC}},{backBehavior:'none'});var state0=router.getStateForAction(INIT_ACTION);var state1=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'b'},state0);var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'c'},state1);var state3=router.getStateForAction({type:NavigationActions.BACK},state2);expect(state3).toEqual(state2);});it('Back behavior initialRoute works',function(){var ScreenA=function ScreenA(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:725}});};var ScreenB=function ScreenB(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:726}});};var router=TabRouter({a:{screen:ScreenA},b:{screen:ScreenB}});var state0=router.getStateForAction(INIT_ACTION);var state1=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'b'},state0);var state2=router.getStateForAction({type:NavigationActions.BACK},state1);expect(state2).toEqual(state0);});it('Inner actions are only unpacked if the current tab matches',function(){var PlainScreen=function PlainScreen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:748}});};var ScreenA=function ScreenA(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:749}});};var ScreenB=function ScreenB(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:750}});};ScreenB.router=TabRouter({Baz:{screen:PlainScreen},Zoo:{screen:PlainScreen}});ScreenA.router=TabRouter({Bar:{screen:PlainScreen},Boo:{screen:ScreenB}});var router=TabRouter({Foo:{screen:ScreenA}});var screenApreState={index:0,key:'Foo',isTransitioning:false,routeName:'Foo',routes:[{key:'Bar',routeName:'Bar'}]};var preState={index:0,isTransitioning:false,routes:[screenApreState]};var comparable=function comparable(state){var result={};if(typeof state.routeName==='string'){result=_objectSpread({},result,{routeName:state.routeName});}if(state.routes instanceof Array){result=_objectSpread({},result,{routes:state.routes.map(comparable)});}return result;};var action=NavigationActions.navigate({routeName:'Boo',action:NavigationActions.navigate({routeName:'Zoo'})});var expectedState=ScreenA.router.getStateForAction(action,screenApreState);var state=router.getStateForAction(action,preState);var innerState=state?state.routes[0]:state;expect(innerState.routes[1].index).toEqual(1);expect(expectedState&&comparable(expectedState)).toEqual(innerState&&comparable(innerState));var noMatchAction=NavigationActions.navigate({routeName:'Qux',action:NavigationActions.navigate({routeName:'Zoo'})});var expectedState2=ScreenA.router.getStateForAction(noMatchAction,screenApreState);var state2=router.getStateForAction(noMatchAction,preState);var innerState2=state2?state2.routes[0]:state2;expect(innerState2.routes[1].index).toEqual(0);expect(expectedState2&&comparable(expectedState2)).toEqual(innerState2&&comparable(innerState2));});});
++import _objectSpread from"@babel/runtime/helpers/objectSpread";var _jsxFileName="/Users/brentvatne/coding/react-navigation-core/src/routers/__tests__/TabRouter-test.js";import React from'react';import TabRouter from'../TabRouter';import*as NavigationActions from'../../NavigationActions';var INIT_ACTION={type:NavigationActions.INIT};var BareLeafRouteConfig={screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:11}});}};describe('TabRouter',function(){it('Handles basic tab logic',function(){var ScreenA=function ScreenA(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:16}});};var ScreenB=function ScreenB(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:17}});};var router=TabRouter({Foo:{screen:ScreenA},Bar:{screen:ScreenB}});var state=router.getStateForAction({type:NavigationActions.INIT});var expectedState={index:0,routes:[{key:'Foo',routeName:'Foo'},{key:'Bar',routeName:'Bar'}]};expect(state).toEqual(expectedState);var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar'},state);var expectedState2={index:1,routes:[{key:'Foo',routeName:'Foo'},{key:'Bar',routeName:'Bar'}]};expect(state2).toEqual(expectedState2);expect(router.getComponentForState(expectedState)).toEqual(ScreenA);expect(router.getComponentForState(expectedState2)).toEqual(ScreenB);var state3=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar'},state2);expect(state3).toEqual(null);});it('Handles getScreen',function(){var ScreenA=function ScreenA(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:53}});};var ScreenB=function ScreenB(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:54}});};var router=TabRouter({Foo:{getScreen:function getScreen(){return ScreenA;}},Bar:{getScreen:function getScreen(){return ScreenB;}}});var state=router.getStateForAction({type:NavigationActions.INIT});var expectedState={index:0,routes:[{key:'Foo',routeName:'Foo'},{key:'Bar',routeName:'Bar'}]};expect(state).toEqual(expectedState);var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar'},state);var expectedState2={index:1,routes:[{key:'Foo',routeName:'Foo'},{key:'Bar',routeName:'Bar'}]};expect(state2).toEqual(expectedState2);expect(router.getComponentForState(expectedState)).toEqual(ScreenA);expect(router.getComponentForState(expectedState2)).toEqual(ScreenB);var state3=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar'},state2);expect(state3).toEqual(null);});it('Can set the initial tab',function(){var router=TabRouter({Foo:BareLeafRouteConfig,Bar:BareLeafRouteConfig},{initialRouteName:'Bar'});var state=router.getStateForAction({type:NavigationActions.INIT});expect(state).toEqual({index:1,routes:[{key:'Foo',routeName:'Foo'},{key:'Bar',routeName:'Bar'}]});});it('Can set the initial params',function(){var router=TabRouter({Foo:BareLeafRouteConfig,Bar:BareLeafRouteConfig},{initialRouteName:'Bar',initialRouteParams:{name:'Qux'}});var state=router.getStateForAction({type:NavigationActions.INIT});expect(state).toEqual({index:1,routes:[{key:'Foo',routeName:'Foo'},{key:'Bar',routeName:'Bar',params:{name:'Qux'}}]});});it('Handles the SetParams action',function(){var router=TabRouter({Foo:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:122}});}},Bar:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:125}});}}});var state2=router.getStateForAction({type:NavigationActions.SET_PARAMS,params:{name:'Qux'},key:'Foo'});expect(state2&&state2.routes[0].params).toEqual({name:'Qux'});});it('Handles the SetParams action for inactive routes',function(){var router=TabRouter({Foo:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:140}});}},Bar:{screen:function screen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:143}});}}},{initialRouteName:'Bar'});var initialState={index:1,routes:[{key:'RouteA',routeName:'Foo',params:{name:'InitialParam',other:'Unchanged'}},{key:'RouteB',routeName:'Bar',params:{}}]};var state=router.getStateForAction({type:NavigationActions.SET_PARAMS,params:{name:'NewParam'},key:'RouteA'},initialState);expect(state.index).toEqual(1);expect(state.routes[0].params).toEqual({name:'NewParam',other:'Unchanged'});});it('getStateForAction returns null when navigating to same tab',function(){var router=TabRouter({Foo:BareLeafRouteConfig,Bar:BareLeafRouteConfig},{initialRouteName:'Bar'});var state=router.getStateForAction({type:NavigationActions.INIT});var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar'},state);expect(state2).toEqual(null);});it('getStateForAction returns initial navigate',function(){var router=TabRouter({Foo:BareLeafRouteConfig,Bar:BareLeafRouteConfig});var state=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Foo'});expect(state&&state.index).toEqual(0);});it('Handles nested tabs and nested actions',function(){var ChildTabNavigator=function ChildTabNavigator(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:202}});};ChildTabNavigator.router=TabRouter({Foo:BareLeafRouteConfig,Bar:BareLeafRouteConfig});var router=TabRouter({Foo:BareLeafRouteConfig,Baz:{screen:ChildTabNavigator},Boo:BareLeafRouteConfig});var action=router.getActionForPathAndParams('Baz/Bar',{foo:'42'});var navAction={type:NavigationActions.NAVIGATE,routeName:'Baz',params:{foo:'42'},action:{type:NavigationActions.NAVIGATE,routeName:'Bar',params:{foo:'42'}}};expect(action).toEqual(navAction);var state=router.getStateForAction(navAction);expect(state).toEqual({index:1,routes:[{key:'Foo',routeName:'Foo'},{index:1,key:'Baz',routeName:'Baz',params:{foo:'42'},routes:[{key:'Foo',routeName:'Foo'},{key:'Bar',routeName:'Bar',params:{foo:'42'}}]},{key:'Boo',routeName:'Boo'}]});});it('Handles passing params to nested tabs',function(){var ChildTabNavigator=function ChildTabNavigator(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:262}});};ChildTabNavigator.router=TabRouter({Boo:BareLeafRouteConfig,Bar:BareLeafRouteConfig});var router=TabRouter({Foo:BareLeafRouteConfig,Baz:{screen:ChildTabNavigator}});var navAction={type:NavigationActions.NAVIGATE,routeName:'Baz'};var state=router.getStateForAction(navAction);expect(state).toEqual({index:1,routes:[{key:'Foo',routeName:'Foo'},{index:0,key:'Baz',routeName:'Baz',routes:[{key:'Boo',routeName:'Boo'},{key:'Bar',routeName:'Bar'}]}]});state=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar'},state);state=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Boo'},state);expect(state&&state.routes[1]).toEqual({index:0,key:'Baz',routeName:'Baz',routes:[{key:'Boo',routeName:'Boo'},{key:'Bar',routeName:'Bar'}]});});it('Handles initial deep linking into nested tabs',function(){var ChildTabNavigator=function ChildTabNavigator(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:316}});};ChildTabNavigator.router=TabRouter({Foo:BareLeafRouteConfig,Bar:BareLeafRouteConfig});var router=TabRouter({Foo:BareLeafRouteConfig,Baz:{screen:ChildTabNavigator},Boo:BareLeafRouteConfig});var state=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar'});expect(state).toEqual({index:1,routes:[{key:'Foo',routeName:'Foo'},{index:1,key:'Baz',routeName:'Baz',routes:[{key:'Foo',routeName:'Foo'},{key:'Bar',routeName:'Bar'}]},{key:'Boo',routeName:'Boo'}]});var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Foo'},state);expect(state2).toEqual({index:1,routes:[{key:'Foo',routeName:'Foo'},{index:0,key:'Baz',routeName:'Baz',routes:[{key:'Foo',routeName:'Foo'},{key:'Bar',routeName:'Bar'}]},{key:'Boo',routeName:'Boo'}]});var state3=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Foo'},state2);expect(state3).toEqual(null);});it('Handles linking across of deeply nested tabs',function(){var ChildNavigator0=function ChildNavigator0(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:378}});};ChildNavigator0.router=TabRouter({Boo:BareLeafRouteConfig,Baz:BareLeafRouteConfig});var ChildNavigator1=function ChildNavigator1(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:383}});};ChildNavigator1.router=TabRouter({Zoo:BareLeafRouteConfig,Zap:BareLeafRouteConfig});var MidNavigator=function MidNavigator(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:388}});};MidNavigator.router=TabRouter({Fee:{screen:ChildNavigator0},Bar:{screen:ChildNavigator1}});var router=TabRouter({Foo:{screen:MidNavigator},Gah:BareLeafRouteConfig});var state=router.getStateForAction(INIT_ACTION);expect(state).toEqual({index:0,routes:[{index:0,key:'Foo',routeName:'Foo',routes:[{index:0,key:'Fee',routeName:'Fee',routes:[{key:'Boo',routeName:'Boo'},{key:'Baz',routeName:'Baz'}]},{index:0,key:'Bar',routeName:'Bar',routes:[{key:'Zoo',routeName:'Zoo'},{key:'Zap',routeName:'Zap'}]}]},{key:'Gah',routeName:'Gah'}]});var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Zap'},state);expect(state2).toEqual({index:0,routes:[{index:1,key:'Foo',routeName:'Foo',routes:[{index:0,key:'Fee',routeName:'Fee',routes:[{key:'Boo',routeName:'Boo'},{key:'Baz',routeName:'Baz'}]},{index:1,key:'Bar',routeName:'Bar',routes:[{key:'Zoo',routeName:'Zoo'},{key:'Zap',routeName:'Zap'}]}]},{key:'Gah',routeName:'Gah'}]});var state3=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Zap'},state2);expect(state3).toEqual(null);var state4=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Foo',action:{type:NavigationActions.NAVIGATE,routeName:'Bar',action:{type:NavigationActions.NAVIGATE,routeName:'Zap'}}});expect(state4).toEqual({index:0,routes:[{index:1,key:'Foo',routeName:'Foo',routes:[{index:0,key:'Fee',routeName:'Fee',routes:[{key:'Boo',routeName:'Boo'},{key:'Baz',routeName:'Baz'}]},{index:1,key:'Bar',routeName:'Bar',routes:[{key:'Zoo',routeName:'Zoo'},{key:'Zap',routeName:'Zap'}]}]},{key:'Gah',routeName:'Gah'}]});});it('Handles path configuration',function(){var ScreenA=function ScreenA(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:527}});};var ScreenB=function ScreenB(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:528}});};var router=TabRouter({Foo:{path:'f',screen:ScreenA},Bar:{path:'b/:great',screen:ScreenB}});var params={foo:'42'};var action=router.getActionForPathAndParams('b/anything',params);var expectedAction={params:{foo:'42',great:'anything'},routeName:'Bar',type:NavigationActions.NAVIGATE};expect(action).toEqual(expectedAction);var state=router.getStateForAction({type:NavigationActions.INIT});var expectedState={index:0,routes:[{key:'Foo',routeName:'Foo'},{key:'Bar',routeName:'Bar'}]};expect(state).toEqual(expectedState);var state2=router.getStateForAction(expectedAction,state);var expectedState2={index:1,routes:[{key:'Foo',routeName:'Foo',params:undefined},{key:'Bar',routeName:'Bar',params:{foo:'42',great:'anything'}}]};expect(state2).toEqual(expectedState2);expect(router.getComponentForState(expectedState)).toEqual(ScreenA);expect(router.getComponentForState(expectedState2)).toEqual(ScreenB);expect(router.getPathAndParamsForState(expectedState).path).toEqual('f');expect(router.getPathAndParamsForState(expectedState2).path).toEqual('b/anything');});it('Handles default configuration',function(){var ScreenA=function ScreenA(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:584}});};var ScreenB=function ScreenB(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:585}});};var router=TabRouter({Foo:{path:'',screen:ScreenA},Bar:{path:'b',screen:ScreenB}});var action=router.getActionForPathAndParams('',{foo:'42'});expect(action).toEqual({params:{foo:'42'},routeName:'Foo',type:NavigationActions.NAVIGATE});});it('Gets deep path',function(){var ScreenA=function ScreenA(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:607}});};var ScreenB=function ScreenB(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:608}});};ScreenA.router=TabRouter({Boo:{screen:ScreenB},Baz:{screen:ScreenB}});var router=TabRouter({Foo:{path:'f',screen:ScreenA},Bar:{screen:ScreenB}});var state={index:0,routes:[{index:1,key:'Foo',routeName:'Foo',routes:[{key:'Boo',routeName:'Boo'},{key:'Baz',routeName:'Baz'}]},{key:'Bar',routeName:'Bar'}]};var _router$getPathAndPar=router.getPathAndParamsForState(state),path=_router$getPathAndPar.path;expect(path).toEqual('f/Baz');});it('Can navigate to other tab (no router) with params',function(){var ScreenA=function ScreenA(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:645}});};var ScreenB=function ScreenB(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:646}});};var router=TabRouter({a:{screen:ScreenA},b:{screen:ScreenB}});var state0=router.getStateForAction(INIT_ACTION);expect(state0).toEqual({index:0,routes:[{key:'a',routeName:'a'},{key:'b',routeName:'b'}]});var params={key:'value'};var state1=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'b',params:params},state0);expect(state1).toEqual({index:1,routes:[{key:'a',routeName:'a'},{key:'b',routeName:'b',params:params}]});});it('Back actions are not propagated to inactive children',function(){var ScreenA=function ScreenA(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:679}});};var ScreenB=function ScreenB(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:680}});};var ScreenC=function ScreenC(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:681}});};var InnerNavigator=function InnerNavigator(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:682}});};InnerNavigator.router=TabRouter({a:{screen:ScreenA},b:{screen:ScreenB}});var router=TabRouter({inner:{screen:InnerNavigator},c:{screen:ScreenC}},{backBehavior:'none'});var state0=router.getStateForAction(INIT_ACTION);var state1=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'b'},state0);var state2=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'c'},state1);var state3=router.getStateForAction({type:NavigationActions.BACK},state2);expect(state3).toEqual(state2);});it('Back behavior initialRoute works',function(){var ScreenA=function ScreenA(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:719}});};var ScreenB=function ScreenB(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:720}});};var router=TabRouter({a:{screen:ScreenA},b:{screen:ScreenB}});var state0=router.getStateForAction(INIT_ACTION);var state1=router.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'b'},state0);var state2=router.getStateForAction({type:NavigationActions.BACK},state1);expect(state2).toEqual(state0);});it('Inner actions are only unpacked if the current tab matches',function(){var PlainScreen=function PlainScreen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:742}});};var ScreenA=function ScreenA(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:743}});};var ScreenB=function ScreenB(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:744}});};ScreenB.router=TabRouter({Baz:{screen:PlainScreen},Zoo:{screen:PlainScreen}});ScreenA.router=TabRouter({Bar:{screen:PlainScreen},Boo:{screen:ScreenB}});var router=TabRouter({Foo:{screen:ScreenA}});var screenApreState={index:0,key:'Foo',routeName:'Foo',routes:[{key:'Bar',routeName:'Bar'}]};var preState={index:0,routes:[screenApreState]};var comparable=function comparable(state){var result={};if(typeof state.routeName==='string'){result=_objectSpread({},result,{routeName:state.routeName});}if(state.routes instanceof Array){result=_objectSpread({},result,{routes:state.routes.map(comparable)});}return result;};var action=NavigationActions.navigate({routeName:'Boo',action:NavigationActions.navigate({routeName:'Zoo'})});var expectedState=ScreenA.router.getStateForAction(action,screenApreState);var state=router.getStateForAction(action,preState);var innerState=state?state.routes[0]:state;expect(innerState.routes[1].index).toEqual(1);expect(expectedState&&comparable(expectedState)).toEqual(innerState&&comparable(innerState));var noMatchAction=NavigationActions.navigate({routeName:'Qux',action:NavigationActions.navigate({routeName:'Zoo'})});var expectedState2=ScreenA.router.getStateForAction(noMatchAction,screenApreState);var state2=router.getStateForAction(noMatchAction,preState);var innerState2=state2?state2.routes[0]:state2;expect(innerState2.routes[1].index).toEqual(0);expect(expectedState2&&comparable(expectedState2)).toEqual(innerState2&&comparable(innerState2));});});
+ //# sourceMappingURL=TabRouter-test.js.map
+\ No newline at end of file
+diff --git a/node_modules/@react-navigation/core/lib/module/routers/__tests__/TabRouter-test.js.map b/node_modules/@react-navigation/core/lib/module/routers/__tests__/TabRouter-test.js.map
+index 6d4f56a..267033c 100644
+--- a/node_modules/@react-navigation/core/lib/module/routers/__tests__/TabRouter-test.js.map
++++ b/node_modules/@react-navigation/core/lib/module/routers/__tests__/TabRouter-test.js.map
+@@ -1 +1 @@
+-{"version":3,"sources":["TabRouter-test.js"],"names":["React","TabRouter","NavigationActions","INIT_ACTION","type","INIT","BareLeafRouteConfig","screen","describe","it","ScreenA","ScreenB","router","Foo","Bar","state","getStateForAction","expectedState","index","routes","key","routeName","isTransitioning","expect","toEqual","state2","NAVIGATE","expectedState2","getComponentForState","state3","getScreen","initialRouteName","initialRouteParams","name","params","SET_PARAMS","initialState","other","ChildTabNavigator","Baz","Boo","action","getActionForPathAndParams","foo","navAction","ChildNavigator0","ChildNavigator1","Zoo","Zap","MidNavigator","Fee","Gah","state4","path","expectedAction","great","undefined","getPathAndParamsForState","a","b","state0","state1","ScreenC","InnerNavigator","inner","c","backBehavior","BACK","PlainScreen","screenApreState","preState","comparable","result","Array","map","navigate","innerState","noMatchAction","innerState2"],"mappings":"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","sourcesContent":["/* eslint react/display-name:0 */\n\nimport React from 'react';\nimport TabRouter from '../TabRouter';\n\nimport * as NavigationActions from '../../NavigationActions';\n\nconst INIT_ACTION = { type: NavigationActions.INIT };\n\nconst BareLeafRouteConfig = {\n screen: () => ,\n};\n\ndescribe('TabRouter', () => {\n it('Handles basic tab logic', () => {\n const ScreenA = () => ;\n const ScreenB = () => ;\n const router = TabRouter({\n Foo: { screen: ScreenA },\n Bar: { screen: ScreenB },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const expectedState = {\n index: 0,\n routes: [\n { key: 'Foo', routeName: 'Foo' },\n { key: 'Bar', routeName: 'Bar' },\n ],\n isTransitioning: false,\n };\n expect(state).toEqual(expectedState);\n const state2 = router.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'Bar' },\n state\n );\n const expectedState2 = {\n index: 1,\n routes: [\n { key: 'Foo', routeName: 'Foo' },\n { key: 'Bar', routeName: 'Bar' },\n ],\n isTransitioning: false,\n };\n expect(state2).toEqual(expectedState2);\n expect(router.getComponentForState(expectedState)).toEqual(ScreenA);\n expect(router.getComponentForState(expectedState2)).toEqual(ScreenB);\n const state3 = router.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'Bar' },\n state2\n );\n expect(state3).toEqual(null);\n });\n\n it('Handles getScreen', () => {\n const ScreenA = () => ;\n const ScreenB = () => ;\n const router = TabRouter({\n Foo: { getScreen: () => ScreenA },\n Bar: { getScreen: () => ScreenB },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const expectedState = {\n index: 0,\n routes: [\n { key: 'Foo', routeName: 'Foo' },\n { key: 'Bar', routeName: 'Bar' },\n ],\n isTransitioning: false,\n };\n expect(state).toEqual(expectedState);\n const state2 = router.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'Bar' },\n state\n );\n const expectedState2 = {\n index: 1,\n routes: [\n { key: 'Foo', routeName: 'Foo' },\n { key: 'Bar', routeName: 'Bar' },\n ],\n isTransitioning: false,\n };\n expect(state2).toEqual(expectedState2);\n expect(router.getComponentForState(expectedState)).toEqual(ScreenA);\n expect(router.getComponentForState(expectedState2)).toEqual(ScreenB);\n const state3 = router.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'Bar' },\n state2\n );\n expect(state3).toEqual(null);\n });\n\n it('Can set the initial tab', () => {\n const router = TabRouter(\n { Foo: BareLeafRouteConfig, Bar: BareLeafRouteConfig },\n { initialRouteName: 'Bar' }\n );\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n expect(state).toEqual({\n index: 1,\n routes: [\n { key: 'Foo', routeName: 'Foo' },\n { key: 'Bar', routeName: 'Bar' },\n ],\n isTransitioning: false,\n });\n });\n\n it('Can set the initial params', () => {\n const router = TabRouter(\n { Foo: BareLeafRouteConfig, Bar: BareLeafRouteConfig },\n { initialRouteName: 'Bar', initialRouteParams: { name: 'Qux' } }\n );\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n expect(state).toEqual({\n index: 1,\n routes: [\n { key: 'Foo', routeName: 'Foo' },\n { key: 'Bar', routeName: 'Bar', params: { name: 'Qux' } },\n ],\n isTransitioning: false,\n });\n });\n\n it('Handles the SetParams action', () => {\n const router = TabRouter({\n Foo: {\n screen: () => ,\n },\n Bar: {\n screen: () => ,\n },\n });\n const state2 = router.getStateForAction({\n type: NavigationActions.SET_PARAMS,\n params: { name: 'Qux' },\n key: 'Foo',\n });\n expect(state2 && state2.routes[0].params).toEqual({ name: 'Qux' });\n });\n\n it('Handles the SetParams action for inactive routes', () => {\n const router = TabRouter(\n {\n Foo: {\n screen: () => ,\n },\n Bar: {\n screen: () => ,\n },\n },\n {\n initialRouteName: 'Bar',\n }\n );\n const initialState = {\n index: 1,\n routes: [\n {\n key: 'RouteA',\n routeName: 'Foo',\n params: { name: 'InitialParam', other: 'Unchanged' },\n },\n { key: 'RouteB', routeName: 'Bar', params: {} },\n ],\n };\n const state = router.getStateForAction(\n {\n type: NavigationActions.SET_PARAMS,\n params: { name: 'NewParam' },\n key: 'RouteA',\n },\n initialState\n );\n expect(state.index).toEqual(1);\n expect(state.routes[0].params).toEqual({\n name: 'NewParam',\n other: 'Unchanged',\n });\n });\n\n it('getStateForAction returns null when navigating to same tab', () => {\n const router = TabRouter(\n { Foo: BareLeafRouteConfig, Bar: BareLeafRouteConfig },\n { initialRouteName: 'Bar' }\n );\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'Bar' },\n state\n );\n expect(state2).toEqual(null);\n });\n\n it('getStateForAction returns initial navigate', () => {\n const router = TabRouter({\n Foo: BareLeafRouteConfig,\n Bar: BareLeafRouteConfig,\n });\n const state = router.getStateForAction({\n type: NavigationActions.NAVIGATE,\n routeName: 'Foo',\n });\n expect(state && state.index).toEqual(0);\n });\n\n it('Handles nested tabs and nested actions', () => {\n const ChildTabNavigator = () => ;\n ChildTabNavigator.router = TabRouter({\n Foo: BareLeafRouteConfig,\n Bar: BareLeafRouteConfig,\n });\n const router = TabRouter({\n Foo: BareLeafRouteConfig,\n Baz: { screen: ChildTabNavigator },\n Boo: BareLeafRouteConfig,\n });\n const action = router.getActionForPathAndParams('Baz/Bar', { foo: '42' });\n const navAction = {\n type: NavigationActions.NAVIGATE,\n routeName: 'Baz',\n params: { foo: '42' },\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n params: { foo: '42' },\n },\n };\n expect(action).toEqual(navAction);\n const state = router.getStateForAction(navAction);\n expect(state).toEqual({\n index: 1,\n isTransitioning: false,\n routes: [\n {\n key: 'Foo',\n routeName: 'Foo',\n },\n {\n index: 1,\n isTransitioning: false,\n key: 'Baz',\n routeName: 'Baz',\n params: { foo: '42' },\n routes: [\n {\n key: 'Foo',\n routeName: 'Foo',\n },\n {\n key: 'Bar',\n routeName: 'Bar',\n params: {\n foo: '42',\n },\n },\n ],\n },\n {\n key: 'Boo',\n routeName: 'Boo',\n },\n ],\n });\n });\n\n it('Handles passing params to nested tabs', () => {\n const ChildTabNavigator = () => ;\n ChildTabNavigator.router = TabRouter({\n Boo: BareLeafRouteConfig,\n Bar: BareLeafRouteConfig,\n });\n const router = TabRouter({\n Foo: BareLeafRouteConfig,\n Baz: { screen: ChildTabNavigator },\n });\n const navAction = {\n type: NavigationActions.NAVIGATE,\n routeName: 'Baz',\n };\n let state = router.getStateForAction(navAction);\n expect(state).toEqual({\n index: 1,\n isTransitioning: false,\n routes: [\n { key: 'Foo', routeName: 'Foo' },\n {\n index: 0,\n key: 'Baz',\n routeName: 'Baz',\n isTransitioning: false,\n routes: [\n { key: 'Boo', routeName: 'Boo' },\n { key: 'Bar', routeName: 'Bar' },\n ],\n },\n ],\n });\n\n // Ensure that navigating back and forth doesn't overwrite\n state = router.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'Bar' },\n state\n );\n state = router.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'Boo' },\n state\n );\n expect(state && state.routes[1]).toEqual({\n index: 0,\n isTransitioning: false,\n key: 'Baz',\n routeName: 'Baz',\n routes: [\n { key: 'Boo', routeName: 'Boo' },\n { key: 'Bar', routeName: 'Bar' },\n ],\n });\n });\n\n it('Handles initial deep linking into nested tabs', () => {\n const ChildTabNavigator = () => ;\n ChildTabNavigator.router = TabRouter({\n Foo: BareLeafRouteConfig,\n Bar: BareLeafRouteConfig,\n });\n const router = TabRouter({\n Foo: BareLeafRouteConfig,\n Baz: { screen: ChildTabNavigator },\n Boo: BareLeafRouteConfig,\n });\n const state = router.getStateForAction({\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n });\n expect(state).toEqual({\n index: 1,\n isTransitioning: false,\n routes: [\n { key: 'Foo', routeName: 'Foo' },\n {\n index: 1,\n key: 'Baz',\n routeName: 'Baz',\n isTransitioning: false,\n routes: [\n { key: 'Foo', routeName: 'Foo' },\n { key: 'Bar', routeName: 'Bar' },\n ],\n },\n { key: 'Boo', routeName: 'Boo' },\n ],\n });\n const state2 = router.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'Foo' },\n state\n );\n expect(state2).toEqual({\n index: 1,\n isTransitioning: false,\n routes: [\n { key: 'Foo', routeName: 'Foo' },\n {\n index: 0,\n key: 'Baz',\n routeName: 'Baz',\n isTransitioning: false,\n routes: [\n { key: 'Foo', routeName: 'Foo' },\n { key: 'Bar', routeName: 'Bar' },\n ],\n },\n { key: 'Boo', routeName: 'Boo' },\n ],\n });\n const state3 = router.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'Foo' },\n state2\n );\n expect(state3).toEqual(null);\n });\n\n it('Handles linking across of deeply nested tabs', () => {\n const ChildNavigator0 = () => ;\n ChildNavigator0.router = TabRouter({\n Boo: BareLeafRouteConfig,\n Baz: BareLeafRouteConfig,\n });\n const ChildNavigator1 = () => ;\n ChildNavigator1.router = TabRouter({\n Zoo: BareLeafRouteConfig,\n Zap: BareLeafRouteConfig,\n });\n const MidNavigator = () => ;\n MidNavigator.router = TabRouter({\n Fee: { screen: ChildNavigator0 },\n Bar: { screen: ChildNavigator1 },\n });\n const router = TabRouter({\n Foo: { screen: MidNavigator },\n Gah: BareLeafRouteConfig,\n });\n const state = router.getStateForAction(INIT_ACTION);\n expect(state).toEqual({\n index: 0,\n isTransitioning: false,\n routes: [\n {\n index: 0,\n key: 'Foo',\n routeName: 'Foo',\n isTransitioning: false,\n routes: [\n {\n index: 0,\n key: 'Fee',\n routeName: 'Fee',\n isTransitioning: false,\n routes: [\n { key: 'Boo', routeName: 'Boo' },\n { key: 'Baz', routeName: 'Baz' },\n ],\n },\n {\n index: 0,\n key: 'Bar',\n routeName: 'Bar',\n isTransitioning: false,\n routes: [\n { key: 'Zoo', routeName: 'Zoo' },\n { key: 'Zap', routeName: 'Zap' },\n ],\n },\n ],\n },\n { key: 'Gah', routeName: 'Gah' },\n ],\n });\n const state2 = router.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'Zap' },\n state\n );\n expect(state2).toEqual({\n index: 0,\n isTransitioning: false,\n routes: [\n {\n index: 1,\n key: 'Foo',\n routeName: 'Foo',\n isTransitioning: false,\n routes: [\n {\n index: 0,\n key: 'Fee',\n routeName: 'Fee',\n isTransitioning: false,\n routes: [\n { key: 'Boo', routeName: 'Boo' },\n { key: 'Baz', routeName: 'Baz' },\n ],\n },\n {\n index: 1,\n key: 'Bar',\n routeName: 'Bar',\n isTransitioning: false,\n routes: [\n { key: 'Zoo', routeName: 'Zoo' },\n { key: 'Zap', routeName: 'Zap' },\n ],\n },\n ],\n },\n { key: 'Gah', routeName: 'Gah' },\n ],\n });\n const state3 = router.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'Zap' },\n state2\n );\n expect(state3).toEqual(null);\n const state4 = router.getStateForAction({\n type: NavigationActions.NAVIGATE,\n routeName: 'Foo',\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'Zap',\n },\n },\n });\n expect(state4).toEqual({\n index: 0,\n isTransitioning: false,\n routes: [\n {\n index: 1,\n key: 'Foo',\n routeName: 'Foo',\n isTransitioning: false,\n routes: [\n {\n index: 0,\n key: 'Fee',\n routeName: 'Fee',\n isTransitioning: false,\n routes: [\n { key: 'Boo', routeName: 'Boo' },\n { key: 'Baz', routeName: 'Baz' },\n ],\n },\n {\n index: 1,\n key: 'Bar',\n routeName: 'Bar',\n isTransitioning: false,\n routes: [\n { key: 'Zoo', routeName: 'Zoo' },\n { key: 'Zap', routeName: 'Zap' },\n ],\n },\n ],\n },\n { key: 'Gah', routeName: 'Gah' },\n ],\n });\n });\n\n it('Handles path configuration', () => {\n const ScreenA = () => ;\n const ScreenB = () => ;\n const router = TabRouter({\n Foo: {\n path: 'f',\n screen: ScreenA,\n },\n Bar: {\n path: 'b/:great',\n screen: ScreenB,\n },\n });\n const params = { foo: '42' };\n const action = router.getActionForPathAndParams('b/anything', params);\n const expectedAction = {\n params: {\n foo: '42',\n great: 'anything',\n },\n routeName: 'Bar',\n type: NavigationActions.NAVIGATE,\n };\n expect(action).toEqual(expectedAction);\n\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const expectedState = {\n index: 0,\n isTransitioning: false,\n routes: [\n { key: 'Foo', routeName: 'Foo' },\n { key: 'Bar', routeName: 'Bar' },\n ],\n };\n expect(state).toEqual(expectedState);\n const state2 = router.getStateForAction(expectedAction, state);\n const expectedState2 = {\n index: 1,\n isTransitioning: false,\n routes: [\n { key: 'Foo', routeName: 'Foo', params: undefined },\n {\n key: 'Bar',\n routeName: 'Bar',\n params: { foo: '42', great: 'anything' },\n },\n ],\n };\n expect(state2).toEqual(expectedState2);\n expect(router.getComponentForState(expectedState)).toEqual(ScreenA);\n expect(router.getComponentForState(expectedState2)).toEqual(ScreenB);\n expect(router.getPathAndParamsForState(expectedState).path).toEqual('f');\n expect(router.getPathAndParamsForState(expectedState2).path).toEqual(\n 'b/anything'\n );\n });\n\n it('Handles default configuration', () => {\n const ScreenA = () => ;\n const ScreenB = () => ;\n const router = TabRouter({\n Foo: {\n path: '',\n screen: ScreenA,\n },\n Bar: {\n path: 'b',\n screen: ScreenB,\n },\n });\n const action = router.getActionForPathAndParams('', { foo: '42' });\n expect(action).toEqual({\n params: {\n foo: '42',\n },\n routeName: 'Foo',\n type: NavigationActions.NAVIGATE,\n });\n });\n\n it('Gets deep path', () => {\n const ScreenA = () => ;\n const ScreenB = () => ;\n ScreenA.router = TabRouter({\n Boo: { screen: ScreenB },\n Baz: { screen: ScreenB },\n });\n const router = TabRouter({\n Foo: {\n path: 'f',\n screen: ScreenA,\n },\n Bar: {\n screen: ScreenB,\n },\n });\n\n const state = {\n index: 0,\n isTransitioning: false,\n routes: [\n {\n index: 1,\n key: 'Foo',\n routeName: 'Foo',\n isTransitioning: false,\n routes: [\n { key: 'Boo', routeName: 'Boo' },\n { key: 'Baz', routeName: 'Baz' },\n ],\n },\n { key: 'Bar', routeName: 'Bar' },\n ],\n };\n const { path } = router.getPathAndParamsForState(state);\n expect(path).toEqual('f/Baz');\n });\n\n it('Can navigate to other tab (no router) with params', () => {\n const ScreenA = () => ;\n const ScreenB = () => ;\n\n const router = TabRouter({\n a: { screen: ScreenA },\n b: { screen: ScreenB },\n });\n\n const state0 = router.getStateForAction(INIT_ACTION);\n\n expect(state0).toEqual({\n index: 0,\n isTransitioning: false,\n routes: [{ key: 'a', routeName: 'a' }, { key: 'b', routeName: 'b' }],\n });\n\n const params = { key: 'value' };\n\n const state1 = router.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'b', params },\n state0\n );\n\n expect(state1).toEqual({\n index: 1,\n isTransitioning: false,\n routes: [\n { key: 'a', routeName: 'a' },\n { key: 'b', routeName: 'b', params },\n ],\n });\n });\n\n it('Back actions are not propagated to inactive children', () => {\n const ScreenA = () => ;\n const ScreenB = () => ;\n const ScreenC = () => ;\n const InnerNavigator = () => ;\n InnerNavigator.router = TabRouter({\n a: { screen: ScreenA },\n b: { screen: ScreenB },\n });\n\n const router = TabRouter(\n {\n inner: { screen: InnerNavigator },\n c: { screen: ScreenC },\n },\n {\n backBehavior: 'none',\n }\n );\n\n const state0 = router.getStateForAction(INIT_ACTION);\n\n const state1 = router.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'b' },\n state0\n );\n\n const state2 = router.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'c' },\n state1\n );\n\n const state3 = router.getStateForAction(\n { type: NavigationActions.BACK },\n state2\n );\n\n expect(state3).toEqual(state2);\n });\n\n it('Back behavior initialRoute works', () => {\n const ScreenA = () => ;\n const ScreenB = () => ;\n const router = TabRouter({\n a: { screen: ScreenA },\n b: { screen: ScreenB },\n });\n\n const state0 = router.getStateForAction(INIT_ACTION);\n\n const state1 = router.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'b' },\n state0\n );\n\n const state2 = router.getStateForAction(\n { type: NavigationActions.BACK },\n state1\n );\n\n expect(state2).toEqual(state0);\n });\n\n it('Inner actions are only unpacked if the current tab matches', () => {\n const PlainScreen = () => ;\n const ScreenA = () => ;\n const ScreenB = () => ;\n ScreenB.router = TabRouter({\n Baz: { screen: PlainScreen },\n Zoo: { screen: PlainScreen },\n });\n ScreenA.router = TabRouter({\n Bar: { screen: PlainScreen },\n Boo: { screen: ScreenB },\n });\n const router = TabRouter({\n Foo: { screen: ScreenA },\n });\n const screenApreState = {\n index: 0,\n key: 'Foo',\n isTransitioning: false,\n routeName: 'Foo',\n routes: [{ key: 'Bar', routeName: 'Bar' }],\n };\n const preState = {\n index: 0,\n isTransitioning: false,\n routes: [screenApreState],\n };\n\n const comparable = state => {\n let result = {};\n if (typeof state.routeName === 'string') {\n result = { ...result, routeName: state.routeName };\n }\n if (state.routes instanceof Array) {\n result = {\n ...result,\n routes: state.routes.map(comparable),\n };\n }\n return result;\n };\n\n const action = NavigationActions.navigate({\n routeName: 'Boo',\n action: NavigationActions.navigate({ routeName: 'Zoo' }),\n });\n const expectedState = ScreenA.router.getStateForAction(\n action,\n screenApreState\n );\n const state = router.getStateForAction(action, preState);\n const innerState = state ? state.routes[0] : state;\n\n expect(innerState.routes[1].index).toEqual(1);\n expect(expectedState && comparable(expectedState)).toEqual(\n innerState && comparable(innerState)\n );\n\n const noMatchAction = NavigationActions.navigate({\n routeName: 'Qux',\n action: NavigationActions.navigate({ routeName: 'Zoo' }),\n });\n const expectedState2 = ScreenA.router.getStateForAction(\n noMatchAction,\n screenApreState\n );\n const state2 = router.getStateForAction(noMatchAction, preState);\n const innerState2 = state2 ? state2.routes[0] : state2;\n\n expect(innerState2.routes[1].index).toEqual(0);\n expect(expectedState2 && comparable(expectedState2)).toEqual(\n innerState2 && comparable(innerState2)\n );\n });\n});\n"]}
+\ No newline at end of file
++{"version":3,"sources":["TabRouter-test.js"],"names":["React","TabRouter","NavigationActions","INIT_ACTION","type","INIT","BareLeafRouteConfig","screen","describe","it","ScreenA","ScreenB","router","Foo","Bar","state","getStateForAction","expectedState","index","routes","key","routeName","expect","toEqual","state2","NAVIGATE","expectedState2","getComponentForState","state3","getScreen","initialRouteName","initialRouteParams","name","params","SET_PARAMS","initialState","other","ChildTabNavigator","Baz","Boo","action","getActionForPathAndParams","foo","navAction","ChildNavigator0","ChildNavigator1","Zoo","Zap","MidNavigator","Fee","Gah","state4","path","expectedAction","great","undefined","getPathAndParamsForState","a","b","state0","state1","ScreenC","InnerNavigator","inner","c","backBehavior","BACK","PlainScreen","screenApreState","preState","comparable","result","Array","map","navigate","innerState","noMatchAction","innerState2"],"mappings":"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","sourcesContent":["/* eslint react/display-name:0 */\n\nimport React from 'react';\nimport TabRouter from '../TabRouter';\n\nimport * as NavigationActions from '../../NavigationActions';\n\nconst INIT_ACTION = { type: NavigationActions.INIT };\n\nconst BareLeafRouteConfig = {\n screen: () => ,\n};\n\ndescribe('TabRouter', () => {\n it('Handles basic tab logic', () => {\n const ScreenA = () => ;\n const ScreenB = () => ;\n const router = TabRouter({\n Foo: { screen: ScreenA },\n Bar: { screen: ScreenB },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const expectedState = {\n index: 0,\n routes: [\n { key: 'Foo', routeName: 'Foo' },\n { key: 'Bar', routeName: 'Bar' },\n ],\n };\n expect(state).toEqual(expectedState);\n const state2 = router.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'Bar' },\n state\n );\n const expectedState2 = {\n index: 1,\n routes: [\n { key: 'Foo', routeName: 'Foo' },\n { key: 'Bar', routeName: 'Bar' },\n ],\n };\n expect(state2).toEqual(expectedState2);\n expect(router.getComponentForState(expectedState)).toEqual(ScreenA);\n expect(router.getComponentForState(expectedState2)).toEqual(ScreenB);\n const state3 = router.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'Bar' },\n state2\n );\n expect(state3).toEqual(null);\n });\n\n it('Handles getScreen', () => {\n const ScreenA = () => ;\n const ScreenB = () => ;\n const router = TabRouter({\n Foo: { getScreen: () => ScreenA },\n Bar: { getScreen: () => ScreenB },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const expectedState = {\n index: 0,\n routes: [\n { key: 'Foo', routeName: 'Foo' },\n { key: 'Bar', routeName: 'Bar' },\n ],\n };\n expect(state).toEqual(expectedState);\n const state2 = router.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'Bar' },\n state\n );\n const expectedState2 = {\n index: 1,\n routes: [\n { key: 'Foo', routeName: 'Foo' },\n { key: 'Bar', routeName: 'Bar' },\n ],\n };\n expect(state2).toEqual(expectedState2);\n expect(router.getComponentForState(expectedState)).toEqual(ScreenA);\n expect(router.getComponentForState(expectedState2)).toEqual(ScreenB);\n const state3 = router.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'Bar' },\n state2\n );\n expect(state3).toEqual(null);\n });\n\n it('Can set the initial tab', () => {\n const router = TabRouter(\n { Foo: BareLeafRouteConfig, Bar: BareLeafRouteConfig },\n { initialRouteName: 'Bar' }\n );\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n expect(state).toEqual({\n index: 1,\n routes: [\n { key: 'Foo', routeName: 'Foo' },\n { key: 'Bar', routeName: 'Bar' },\n ],\n });\n });\n\n it('Can set the initial params', () => {\n const router = TabRouter(\n { Foo: BareLeafRouteConfig, Bar: BareLeafRouteConfig },\n { initialRouteName: 'Bar', initialRouteParams: { name: 'Qux' } }\n );\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n expect(state).toEqual({\n index: 1,\n routes: [\n { key: 'Foo', routeName: 'Foo' },\n { key: 'Bar', routeName: 'Bar', params: { name: 'Qux' } },\n ],\n });\n });\n\n it('Handles the SetParams action', () => {\n const router = TabRouter({\n Foo: {\n screen: () => ,\n },\n Bar: {\n screen: () => ,\n },\n });\n const state2 = router.getStateForAction({\n type: NavigationActions.SET_PARAMS,\n params: { name: 'Qux' },\n key: 'Foo',\n });\n expect(state2 && state2.routes[0].params).toEqual({ name: 'Qux' });\n });\n\n it('Handles the SetParams action for inactive routes', () => {\n const router = TabRouter(\n {\n Foo: {\n screen: () => ,\n },\n Bar: {\n screen: () => ,\n },\n },\n {\n initialRouteName: 'Bar',\n }\n );\n const initialState = {\n index: 1,\n routes: [\n {\n key: 'RouteA',\n routeName: 'Foo',\n params: { name: 'InitialParam', other: 'Unchanged' },\n },\n { key: 'RouteB', routeName: 'Bar', params: {} },\n ],\n };\n const state = router.getStateForAction(\n {\n type: NavigationActions.SET_PARAMS,\n params: { name: 'NewParam' },\n key: 'RouteA',\n },\n initialState\n );\n expect(state.index).toEqual(1);\n expect(state.routes[0].params).toEqual({\n name: 'NewParam',\n other: 'Unchanged',\n });\n });\n\n it('getStateForAction returns null when navigating to same tab', () => {\n const router = TabRouter(\n { Foo: BareLeafRouteConfig, Bar: BareLeafRouteConfig },\n { initialRouteName: 'Bar' }\n );\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'Bar' },\n state\n );\n expect(state2).toEqual(null);\n });\n\n it('getStateForAction returns initial navigate', () => {\n const router = TabRouter({\n Foo: BareLeafRouteConfig,\n Bar: BareLeafRouteConfig,\n });\n const state = router.getStateForAction({\n type: NavigationActions.NAVIGATE,\n routeName: 'Foo',\n });\n expect(state && state.index).toEqual(0);\n });\n\n it('Handles nested tabs and nested actions', () => {\n const ChildTabNavigator = () => ;\n ChildTabNavigator.router = TabRouter({\n Foo: BareLeafRouteConfig,\n Bar: BareLeafRouteConfig,\n });\n const router = TabRouter({\n Foo: BareLeafRouteConfig,\n Baz: { screen: ChildTabNavigator },\n Boo: BareLeafRouteConfig,\n });\n const action = router.getActionForPathAndParams('Baz/Bar', { foo: '42' });\n const navAction = {\n type: NavigationActions.NAVIGATE,\n routeName: 'Baz',\n params: { foo: '42' },\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n params: { foo: '42' },\n },\n };\n expect(action).toEqual(navAction);\n const state = router.getStateForAction(navAction);\n expect(state).toEqual({\n index: 1,\n\n routes: [\n {\n key: 'Foo',\n routeName: 'Foo',\n },\n {\n index: 1,\n\n key: 'Baz',\n routeName: 'Baz',\n params: { foo: '42' },\n routes: [\n {\n key: 'Foo',\n routeName: 'Foo',\n },\n {\n key: 'Bar',\n routeName: 'Bar',\n params: {\n foo: '42',\n },\n },\n ],\n },\n {\n key: 'Boo',\n routeName: 'Boo',\n },\n ],\n });\n });\n\n it('Handles passing params to nested tabs', () => {\n const ChildTabNavigator = () => ;\n ChildTabNavigator.router = TabRouter({\n Boo: BareLeafRouteConfig,\n Bar: BareLeafRouteConfig,\n });\n const router = TabRouter({\n Foo: BareLeafRouteConfig,\n Baz: { screen: ChildTabNavigator },\n });\n const navAction = {\n type: NavigationActions.NAVIGATE,\n routeName: 'Baz',\n };\n let state = router.getStateForAction(navAction);\n expect(state).toEqual({\n index: 1,\n\n routes: [\n { key: 'Foo', routeName: 'Foo' },\n {\n index: 0,\n key: 'Baz',\n routeName: 'Baz',\n\n routes: [\n { key: 'Boo', routeName: 'Boo' },\n { key: 'Bar', routeName: 'Bar' },\n ],\n },\n ],\n });\n\n // Ensure that navigating back and forth doesn't overwrite\n state = router.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'Bar' },\n state\n );\n state = router.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'Boo' },\n state\n );\n expect(state && state.routes[1]).toEqual({\n index: 0,\n\n key: 'Baz',\n routeName: 'Baz',\n routes: [\n { key: 'Boo', routeName: 'Boo' },\n { key: 'Bar', routeName: 'Bar' },\n ],\n });\n });\n\n it('Handles initial deep linking into nested tabs', () => {\n const ChildTabNavigator = () => ;\n ChildTabNavigator.router = TabRouter({\n Foo: BareLeafRouteConfig,\n Bar: BareLeafRouteConfig,\n });\n const router = TabRouter({\n Foo: BareLeafRouteConfig,\n Baz: { screen: ChildTabNavigator },\n Boo: BareLeafRouteConfig,\n });\n const state = router.getStateForAction({\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n });\n expect(state).toEqual({\n index: 1,\n\n routes: [\n { key: 'Foo', routeName: 'Foo' },\n {\n index: 1,\n key: 'Baz',\n routeName: 'Baz',\n\n routes: [\n { key: 'Foo', routeName: 'Foo' },\n { key: 'Bar', routeName: 'Bar' },\n ],\n },\n { key: 'Boo', routeName: 'Boo' },\n ],\n });\n const state2 = router.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'Foo' },\n state\n );\n expect(state2).toEqual({\n index: 1,\n\n routes: [\n { key: 'Foo', routeName: 'Foo' },\n {\n index: 0,\n key: 'Baz',\n routeName: 'Baz',\n\n routes: [\n { key: 'Foo', routeName: 'Foo' },\n { key: 'Bar', routeName: 'Bar' },\n ],\n },\n { key: 'Boo', routeName: 'Boo' },\n ],\n });\n const state3 = router.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'Foo' },\n state2\n );\n expect(state3).toEqual(null);\n });\n\n it('Handles linking across of deeply nested tabs', () => {\n const ChildNavigator0 = () => ;\n ChildNavigator0.router = TabRouter({\n Boo: BareLeafRouteConfig,\n Baz: BareLeafRouteConfig,\n });\n const ChildNavigator1 = () => ;\n ChildNavigator1.router = TabRouter({\n Zoo: BareLeafRouteConfig,\n Zap: BareLeafRouteConfig,\n });\n const MidNavigator = () => ;\n MidNavigator.router = TabRouter({\n Fee: { screen: ChildNavigator0 },\n Bar: { screen: ChildNavigator1 },\n });\n const router = TabRouter({\n Foo: { screen: MidNavigator },\n Gah: BareLeafRouteConfig,\n });\n const state = router.getStateForAction(INIT_ACTION);\n expect(state).toEqual({\n index: 0,\n\n routes: [\n {\n index: 0,\n key: 'Foo',\n routeName: 'Foo',\n\n routes: [\n {\n index: 0,\n key: 'Fee',\n routeName: 'Fee',\n\n routes: [\n { key: 'Boo', routeName: 'Boo' },\n { key: 'Baz', routeName: 'Baz' },\n ],\n },\n {\n index: 0,\n key: 'Bar',\n routeName: 'Bar',\n\n routes: [\n { key: 'Zoo', routeName: 'Zoo' },\n { key: 'Zap', routeName: 'Zap' },\n ],\n },\n ],\n },\n { key: 'Gah', routeName: 'Gah' },\n ],\n });\n const state2 = router.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'Zap' },\n state\n );\n expect(state2).toEqual({\n index: 0,\n\n routes: [\n {\n index: 1,\n key: 'Foo',\n routeName: 'Foo',\n\n routes: [\n {\n index: 0,\n key: 'Fee',\n routeName: 'Fee',\n\n routes: [\n { key: 'Boo', routeName: 'Boo' },\n { key: 'Baz', routeName: 'Baz' },\n ],\n },\n {\n index: 1,\n key: 'Bar',\n routeName: 'Bar',\n\n routes: [\n { key: 'Zoo', routeName: 'Zoo' },\n { key: 'Zap', routeName: 'Zap' },\n ],\n },\n ],\n },\n { key: 'Gah', routeName: 'Gah' },\n ],\n });\n const state3 = router.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'Zap' },\n state2\n );\n expect(state3).toEqual(null);\n const state4 = router.getStateForAction({\n type: NavigationActions.NAVIGATE,\n routeName: 'Foo',\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'Zap',\n },\n },\n });\n expect(state4).toEqual({\n index: 0,\n\n routes: [\n {\n index: 1,\n key: 'Foo',\n routeName: 'Foo',\n\n routes: [\n {\n index: 0,\n key: 'Fee',\n routeName: 'Fee',\n\n routes: [\n { key: 'Boo', routeName: 'Boo' },\n { key: 'Baz', routeName: 'Baz' },\n ],\n },\n {\n index: 1,\n key: 'Bar',\n routeName: 'Bar',\n\n routes: [\n { key: 'Zoo', routeName: 'Zoo' },\n { key: 'Zap', routeName: 'Zap' },\n ],\n },\n ],\n },\n { key: 'Gah', routeName: 'Gah' },\n ],\n });\n });\n\n it('Handles path configuration', () => {\n const ScreenA = () => ;\n const ScreenB = () => ;\n const router = TabRouter({\n Foo: {\n path: 'f',\n screen: ScreenA,\n },\n Bar: {\n path: 'b/:great',\n screen: ScreenB,\n },\n });\n const params = { foo: '42' };\n const action = router.getActionForPathAndParams('b/anything', params);\n const expectedAction = {\n params: {\n foo: '42',\n great: 'anything',\n },\n routeName: 'Bar',\n type: NavigationActions.NAVIGATE,\n };\n expect(action).toEqual(expectedAction);\n\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const expectedState = {\n index: 0,\n\n routes: [\n { key: 'Foo', routeName: 'Foo' },\n { key: 'Bar', routeName: 'Bar' },\n ],\n };\n expect(state).toEqual(expectedState);\n const state2 = router.getStateForAction(expectedAction, state);\n const expectedState2 = {\n index: 1,\n\n routes: [\n { key: 'Foo', routeName: 'Foo', params: undefined },\n {\n key: 'Bar',\n routeName: 'Bar',\n params: { foo: '42', great: 'anything' },\n },\n ],\n };\n expect(state2).toEqual(expectedState2);\n expect(router.getComponentForState(expectedState)).toEqual(ScreenA);\n expect(router.getComponentForState(expectedState2)).toEqual(ScreenB);\n expect(router.getPathAndParamsForState(expectedState).path).toEqual('f');\n expect(router.getPathAndParamsForState(expectedState2).path).toEqual(\n 'b/anything'\n );\n });\n\n it('Handles default configuration', () => {\n const ScreenA = () => ;\n const ScreenB = () => ;\n const router = TabRouter({\n Foo: {\n path: '',\n screen: ScreenA,\n },\n Bar: {\n path: 'b',\n screen: ScreenB,\n },\n });\n const action = router.getActionForPathAndParams('', { foo: '42' });\n expect(action).toEqual({\n params: {\n foo: '42',\n },\n routeName: 'Foo',\n type: NavigationActions.NAVIGATE,\n });\n });\n\n it('Gets deep path', () => {\n const ScreenA = () => ;\n const ScreenB = () => ;\n ScreenA.router = TabRouter({\n Boo: { screen: ScreenB },\n Baz: { screen: ScreenB },\n });\n const router = TabRouter({\n Foo: {\n path: 'f',\n screen: ScreenA,\n },\n Bar: {\n screen: ScreenB,\n },\n });\n\n const state = {\n index: 0,\n\n routes: [\n {\n index: 1,\n key: 'Foo',\n routeName: 'Foo',\n\n routes: [\n { key: 'Boo', routeName: 'Boo' },\n { key: 'Baz', routeName: 'Baz' },\n ],\n },\n { key: 'Bar', routeName: 'Bar' },\n ],\n };\n const { path } = router.getPathAndParamsForState(state);\n expect(path).toEqual('f/Baz');\n });\n\n it('Can navigate to other tab (no router) with params', () => {\n const ScreenA = () => ;\n const ScreenB = () => ;\n\n const router = TabRouter({\n a: { screen: ScreenA },\n b: { screen: ScreenB },\n });\n\n const state0 = router.getStateForAction(INIT_ACTION);\n\n expect(state0).toEqual({\n index: 0,\n\n routes: [{ key: 'a', routeName: 'a' }, { key: 'b', routeName: 'b' }],\n });\n\n const params = { key: 'value' };\n\n const state1 = router.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'b', params },\n state0\n );\n\n expect(state1).toEqual({\n index: 1,\n\n routes: [\n { key: 'a', routeName: 'a' },\n { key: 'b', routeName: 'b', params },\n ],\n });\n });\n\n it('Back actions are not propagated to inactive children', () => {\n const ScreenA = () => ;\n const ScreenB = () => ;\n const ScreenC = () => ;\n const InnerNavigator = () => ;\n InnerNavigator.router = TabRouter({\n a: { screen: ScreenA },\n b: { screen: ScreenB },\n });\n\n const router = TabRouter(\n {\n inner: { screen: InnerNavigator },\n c: { screen: ScreenC },\n },\n {\n backBehavior: 'none',\n }\n );\n\n const state0 = router.getStateForAction(INIT_ACTION);\n\n const state1 = router.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'b' },\n state0\n );\n\n const state2 = router.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'c' },\n state1\n );\n\n const state3 = router.getStateForAction(\n { type: NavigationActions.BACK },\n state2\n );\n\n expect(state3).toEqual(state2);\n });\n\n it('Back behavior initialRoute works', () => {\n const ScreenA = () => ;\n const ScreenB = () => ;\n const router = TabRouter({\n a: { screen: ScreenA },\n b: { screen: ScreenB },\n });\n\n const state0 = router.getStateForAction(INIT_ACTION);\n\n const state1 = router.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'b' },\n state0\n );\n\n const state2 = router.getStateForAction(\n { type: NavigationActions.BACK },\n state1\n );\n\n expect(state2).toEqual(state0);\n });\n\n it('Inner actions are only unpacked if the current tab matches', () => {\n const PlainScreen = () => ;\n const ScreenA = () => ;\n const ScreenB = () => ;\n ScreenB.router = TabRouter({\n Baz: { screen: PlainScreen },\n Zoo: { screen: PlainScreen },\n });\n ScreenA.router = TabRouter({\n Bar: { screen: PlainScreen },\n Boo: { screen: ScreenB },\n });\n const router = TabRouter({\n Foo: { screen: ScreenA },\n });\n const screenApreState = {\n index: 0,\n key: 'Foo',\n\n routeName: 'Foo',\n routes: [{ key: 'Bar', routeName: 'Bar' }],\n };\n const preState = {\n index: 0,\n\n routes: [screenApreState],\n };\n\n const comparable = state => {\n let result = {};\n if (typeof state.routeName === 'string') {\n result = { ...result, routeName: state.routeName };\n }\n if (state.routes instanceof Array) {\n result = {\n ...result,\n routes: state.routes.map(comparable),\n };\n }\n return result;\n };\n\n const action = NavigationActions.navigate({\n routeName: 'Boo',\n action: NavigationActions.navigate({ routeName: 'Zoo' }),\n });\n const expectedState = ScreenA.router.getStateForAction(\n action,\n screenApreState\n );\n const state = router.getStateForAction(action, preState);\n const innerState = state ? state.routes[0] : state;\n\n expect(innerState.routes[1].index).toEqual(1);\n expect(expectedState && comparable(expectedState)).toEqual(\n innerState && comparable(innerState)\n );\n\n const noMatchAction = NavigationActions.navigate({\n routeName: 'Qux',\n action: NavigationActions.navigate({ routeName: 'Zoo' }),\n });\n const expectedState2 = ScreenA.router.getStateForAction(\n noMatchAction,\n screenApreState\n );\n const state2 = router.getStateForAction(noMatchAction, preState);\n const innerState2 = state2 ? state2.routes[0] : state2;\n\n expect(innerState2.routes[1].index).toEqual(0);\n expect(expectedState2 && comparable(expectedState2)).toEqual(\n innerState2 && comparable(innerState2)\n );\n });\n});\n"]}
+\ No newline at end of file
+diff --git a/node_modules/@react-navigation/core/lib/module/routers/__tests__/validateRouteConfigMap-test.js b/node_modules/@react-navigation/core/lib/module/routers/__tests__/validateRouteConfigMap-test.js
+index a2172d9..17b1626 100644
+--- a/node_modules/@react-navigation/core/lib/module/routers/__tests__/validateRouteConfigMap-test.js
++++ b/node_modules/@react-navigation/core/lib/module/routers/__tests__/validateRouteConfigMap-test.js
+@@ -1,2 +1,2 @@
+-var _jsxFileName="/Users/satya/Workspace/Callstack/react-navigation-core/src/routers/__tests__/validateRouteConfigMap-test.js";import React from'react';import validateRouteConfigMap from'../validateRouteConfigMap';import StackRouter from'../StackRouter';var ListScreen=function ListScreen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:6}});};var ProfileNavigator=function ProfileNavigator(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:8}});};ProfileNavigator.router=StackRouter({list:{screen:ListScreen}});describe('validateRouteConfigMap',function(){it('Fails on empty bare screen',function(){var invalidMap={Home:undefined};expect(function(){return validateRouteConfigMap(invalidMap);}).toThrowErrorMatchingSnapshot();});it('Fails on empty config',function(){var invalidMap={};expect(function(){return validateRouteConfigMap(invalidMap);}).toThrowErrorMatchingSnapshot();});it('Fails on bad object',function(){var invalidMap={Home:{foo:'bar'}};expect(function(){return validateRouteConfigMap(invalidMap);}).toThrowErrorMatchingSnapshot();});it('Fails if both screen and getScreen are defined',function(){var invalidMap={Home:{screen:ListScreen,getScreen:function getScreen(){return ListScreen;}}};expect(function(){return validateRouteConfigMap(invalidMap);}).toThrowErrorMatchingSnapshot();});it('Succeeds on a valid config',function(){var validMap={Home:{screen:ProfileNavigator},Chat:ListScreen};validateRouteConfigMap(validMap);});});
++var _jsxFileName="/Users/brentvatne/coding/react-navigation-core/src/routers/__tests__/validateRouteConfigMap-test.js";import React from'react';import validateRouteConfigMap from'../validateRouteConfigMap';import StackRouter from'../StackRouter';var ListScreen=function ListScreen(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:6}});};var ProfileNavigator=function ProfileNavigator(){return React.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:8}});};ProfileNavigator.router=StackRouter({list:{screen:ListScreen}});describe('validateRouteConfigMap',function(){it('Fails on empty bare screen',function(){var invalidMap={Home:undefined};expect(function(){return validateRouteConfigMap(invalidMap);}).toThrowErrorMatchingSnapshot();});it('Fails on empty config',function(){var invalidMap={};expect(function(){return validateRouteConfigMap(invalidMap);}).toThrowErrorMatchingSnapshot();});it('Fails on bad object',function(){var invalidMap={Home:{foo:'bar'}};expect(function(){return validateRouteConfigMap(invalidMap);}).toThrowErrorMatchingSnapshot();});it('Fails if both screen and getScreen are defined',function(){var invalidMap={Home:{screen:ListScreen,getScreen:function getScreen(){return ListScreen;}}};expect(function(){return validateRouteConfigMap(invalidMap);}).toThrowErrorMatchingSnapshot();});it('Succeeds on a valid config',function(){var validMap={Home:{screen:ProfileNavigator},Chat:ListScreen};validateRouteConfigMap(validMap);});});
+ //# sourceMappingURL=validateRouteConfigMap-test.js.map
+\ No newline at end of file
+diff --git a/node_modules/@react-navigation/core/lib/module/routers/__tests__/validateRouteConfigMap-test.js.map b/node_modules/@react-navigation/core/lib/module/routers/__tests__/validateRouteConfigMap-test.js.map
+index 8313e50..31d668d 100644
+--- a/node_modules/@react-navigation/core/lib/module/routers/__tests__/validateRouteConfigMap-test.js.map
++++ b/node_modules/@react-navigation/core/lib/module/routers/__tests__/validateRouteConfigMap-test.js.map
+@@ -1 +1 @@
+-{"version":3,"sources":["validateRouteConfigMap-test.js"],"names":["React","validateRouteConfigMap","StackRouter","ListScreen","ProfileNavigator","router","list","screen","describe","it","invalidMap","Home","undefined","expect","toThrowErrorMatchingSnapshot","foo","getScreen","validMap","Chat"],"mappings":"+HAAA,MAAOA,CAAAA,KAAP,KAAkB,OAAlB,CAEA,MAAOC,CAAAA,sBAAP,KAAmC,2BAAnC,CACA,MAAOC,CAAAA,WAAP,KAAwB,gBAAxB,CAEA,GAAMC,CAAAA,UAAU,CAAG,QAAbA,CAAAA,UAAa,SAAM,2EAAN,EAAnB,CAEA,GAAMC,CAAAA,gBAAgB,CAAG,QAAnBA,CAAAA,gBAAmB,SAAM,2EAAN,EAAzB,CACAA,gBAAgB,CAACC,MAAjB,CAA0BH,WAAW,CAAC,CACpCI,IAAI,CAAE,CACJC,MAAM,CAAEJ,UADJ,CAD8B,CAAD,CAArC,CAMAK,QAAQ,CAAC,wBAAD,CAA2B,UAAM,CACvCC,EAAE,CAAC,4BAAD,CAA+B,UAAM,CACrC,GAAMC,CAAAA,UAAU,CAAG,CACjBC,IAAI,CAAEC,SADW,CAAnB,CAGAC,MAAM,CAAC,iBACLZ,CAAAA,sBAAsB,CAACS,UAAD,CADjB,EAAD,CAAN,CAEEI,4BAFF,GAGD,CAPC,CAAF,CAQAL,EAAE,CAAC,uBAAD,CAA0B,UAAM,CAChC,GAAMC,CAAAA,UAAU,CAAG,EAAnB,CACAG,MAAM,CAAC,iBACLZ,CAAAA,sBAAsB,CAACS,UAAD,CADjB,EAAD,CAAN,CAEEI,4BAFF,GAGD,CALC,CAAF,CAMAL,EAAE,CAAC,qBAAD,CAAwB,UAAM,CAC9B,GAAMC,CAAAA,UAAU,CAAG,CACjBC,IAAI,CAAE,CACJI,GAAG,CAAE,KADD,CADW,CAAnB,CAKAF,MAAM,CAAC,iBACLZ,CAAAA,sBAAsB,CAACS,UAAD,CADjB,EAAD,CAAN,CAEEI,4BAFF,GAGD,CATC,CAAF,CAUAL,EAAE,CAAC,gDAAD,CAAmD,UAAM,CACzD,GAAMC,CAAAA,UAAU,CAAG,CACjBC,IAAI,CAAE,CACJJ,MAAM,CAAEJ,UADJ,CAEJa,SAAS,CAAE,2BAAMb,CAAAA,UAAN,EAFP,CADW,CAAnB,CAMAU,MAAM,CAAC,iBACLZ,CAAAA,sBAAsB,CAACS,UAAD,CADjB,EAAD,CAAN,CAEEI,4BAFF,GAGD,CAVC,CAAF,CAWAL,EAAE,CAAC,4BAAD,CAA+B,UAAM,CACrC,GAAMQ,CAAAA,QAAQ,CAAG,CACfN,IAAI,CAAE,CACJJ,MAAM,CAAEH,gBADJ,CADS,CAIfc,IAAI,CAAEf,UAJS,CAAjB,CAMAF,sBAAsB,CAACgB,QAAD,CAAtB,CACD,CARC,CAAF,CASD,CA7CO,CAAR","sourcesContent":["import React from 'react';\n\nimport validateRouteConfigMap from '../validateRouteConfigMap';\nimport StackRouter from '../StackRouter';\n\nconst ListScreen = () => ;\n\nconst ProfileNavigator = () => ;\nProfileNavigator.router = StackRouter({\n list: {\n screen: ListScreen,\n },\n});\n\ndescribe('validateRouteConfigMap', () => {\n it('Fails on empty bare screen', () => {\n const invalidMap = {\n Home: undefined,\n };\n expect(() =>\n validateRouteConfigMap(invalidMap)\n ).toThrowErrorMatchingSnapshot();\n });\n it('Fails on empty config', () => {\n const invalidMap = {};\n expect(() =>\n validateRouteConfigMap(invalidMap)\n ).toThrowErrorMatchingSnapshot();\n });\n it('Fails on bad object', () => {\n const invalidMap = {\n Home: {\n foo: 'bar',\n },\n };\n expect(() =>\n validateRouteConfigMap(invalidMap)\n ).toThrowErrorMatchingSnapshot();\n });\n it('Fails if both screen and getScreen are defined', () => {\n const invalidMap = {\n Home: {\n screen: ListScreen,\n getScreen: () => ListScreen,\n },\n };\n expect(() =>\n validateRouteConfigMap(invalidMap)\n ).toThrowErrorMatchingSnapshot();\n });\n it('Succeeds on a valid config', () => {\n const validMap = {\n Home: {\n screen: ProfileNavigator,\n },\n Chat: ListScreen,\n };\n validateRouteConfigMap(validMap);\n });\n});\n"]}
+\ No newline at end of file
++{"version":3,"sources":["validateRouteConfigMap-test.js"],"names":["React","validateRouteConfigMap","StackRouter","ListScreen","ProfileNavigator","router","list","screen","describe","it","invalidMap","Home","undefined","expect","toThrowErrorMatchingSnapshot","foo","getScreen","validMap","Chat"],"mappings":"uHAAA,MAAOA,CAAAA,KAAP,KAAkB,OAAlB,CAEA,MAAOC,CAAAA,sBAAP,KAAmC,2BAAnC,CACA,MAAOC,CAAAA,WAAP,KAAwB,gBAAxB,CAEA,GAAMC,CAAAA,UAAU,CAAG,QAAbA,CAAAA,UAAa,SAAM,2EAAN,EAAnB,CAEA,GAAMC,CAAAA,gBAAgB,CAAG,QAAnBA,CAAAA,gBAAmB,SAAM,2EAAN,EAAzB,CACAA,gBAAgB,CAACC,MAAjB,CAA0BH,WAAW,CAAC,CACpCI,IAAI,CAAE,CACJC,MAAM,CAAEJ,UADJ,CAD8B,CAAD,CAArC,CAMAK,QAAQ,CAAC,wBAAD,CAA2B,UAAM,CACvCC,EAAE,CAAC,4BAAD,CAA+B,UAAM,CACrC,GAAMC,CAAAA,UAAU,CAAG,CACjBC,IAAI,CAAEC,SADW,CAAnB,CAGAC,MAAM,CAAC,iBACLZ,CAAAA,sBAAsB,CAACS,UAAD,CADjB,EAAD,CAAN,CAEEI,4BAFF,GAGD,CAPC,CAAF,CAQAL,EAAE,CAAC,uBAAD,CAA0B,UAAM,CAChC,GAAMC,CAAAA,UAAU,CAAG,EAAnB,CACAG,MAAM,CAAC,iBACLZ,CAAAA,sBAAsB,CAACS,UAAD,CADjB,EAAD,CAAN,CAEEI,4BAFF,GAGD,CALC,CAAF,CAMAL,EAAE,CAAC,qBAAD,CAAwB,UAAM,CAC9B,GAAMC,CAAAA,UAAU,CAAG,CACjBC,IAAI,CAAE,CACJI,GAAG,CAAE,KADD,CADW,CAAnB,CAKAF,MAAM,CAAC,iBACLZ,CAAAA,sBAAsB,CAACS,UAAD,CADjB,EAAD,CAAN,CAEEI,4BAFF,GAGD,CATC,CAAF,CAUAL,EAAE,CAAC,gDAAD,CAAmD,UAAM,CACzD,GAAMC,CAAAA,UAAU,CAAG,CACjBC,IAAI,CAAE,CACJJ,MAAM,CAAEJ,UADJ,CAEJa,SAAS,CAAE,2BAAMb,CAAAA,UAAN,EAFP,CADW,CAAnB,CAMAU,MAAM,CAAC,iBACLZ,CAAAA,sBAAsB,CAACS,UAAD,CADjB,EAAD,CAAN,CAEEI,4BAFF,GAGD,CAVC,CAAF,CAWAL,EAAE,CAAC,4BAAD,CAA+B,UAAM,CACrC,GAAMQ,CAAAA,QAAQ,CAAG,CACfN,IAAI,CAAE,CACJJ,MAAM,CAAEH,gBADJ,CADS,CAIfc,IAAI,CAAEf,UAJS,CAAjB,CAMAF,sBAAsB,CAACgB,QAAD,CAAtB,CACD,CARC,CAAF,CASD,CA7CO,CAAR","sourcesContent":["import React from 'react';\n\nimport validateRouteConfigMap from '../validateRouteConfigMap';\nimport StackRouter from '../StackRouter';\n\nconst ListScreen = () => ;\n\nconst ProfileNavigator = () => ;\nProfileNavigator.router = StackRouter({\n list: {\n screen: ListScreen,\n },\n});\n\ndescribe('validateRouteConfigMap', () => {\n it('Fails on empty bare screen', () => {\n const invalidMap = {\n Home: undefined,\n };\n expect(() =>\n validateRouteConfigMap(invalidMap)\n ).toThrowErrorMatchingSnapshot();\n });\n it('Fails on empty config', () => {\n const invalidMap = {};\n expect(() =>\n validateRouteConfigMap(invalidMap)\n ).toThrowErrorMatchingSnapshot();\n });\n it('Fails on bad object', () => {\n const invalidMap = {\n Home: {\n foo: 'bar',\n },\n };\n expect(() =>\n validateRouteConfigMap(invalidMap)\n ).toThrowErrorMatchingSnapshot();\n });\n it('Fails if both screen and getScreen are defined', () => {\n const invalidMap = {\n Home: {\n screen: ListScreen,\n getScreen: () => ListScreen,\n },\n };\n expect(() =>\n validateRouteConfigMap(invalidMap)\n ).toThrowErrorMatchingSnapshot();\n });\n it('Succeeds on a valid config', () => {\n const validMap = {\n Home: {\n screen: ProfileNavigator,\n },\n Chat: ListScreen,\n };\n validateRouteConfigMap(validMap);\n });\n});\n"]}
+\ No newline at end of file
+diff --git a/node_modules/@react-navigation/core/lib/module/views/SceneView.js b/node_modules/@react-navigation/core/lib/module/views/SceneView.js
+index af36d2b..22ba4ec 100644
+--- a/node_modules/@react-navigation/core/lib/module/views/SceneView.js
++++ b/node_modules/@react-navigation/core/lib/module/views/SceneView.js
+@@ -1,2 +1,2 @@
+-import _classCallCheck from"@babel/runtime/helpers/classCallCheck";import _createClass from"@babel/runtime/helpers/createClass";import _possibleConstructorReturn from"@babel/runtime/helpers/possibleConstructorReturn";import _getPrototypeOf from"@babel/runtime/helpers/getPrototypeOf";import _inherits from"@babel/runtime/helpers/inherits";var _jsxFileName="/Users/satya/Workspace/Callstack/react-navigation-core/src/views/SceneView.js";import React from'react';import NavigationContext from'./NavigationContext';var SceneView=function(_React$PureComponent){_inherits(SceneView,_React$PureComponent);function SceneView(){_classCallCheck(this,SceneView);return _possibleConstructorReturn(this,_getPrototypeOf(SceneView).apply(this,arguments));}_createClass(SceneView,[{key:"render",value:function render(){var _this$props=this.props,screenProps=_this$props.screenProps,Component=_this$props.component,navigation=_this$props.navigation;return React.createElement(NavigationContext.Provider,{value:navigation,__source:{fileName:_jsxFileName,lineNumber:8}},React.createElement(Component,{screenProps:screenProps,navigation:navigation,__source:{fileName:_jsxFileName,lineNumber:9}}));}}]);return SceneView;}(React.PureComponent);export{SceneView as default};
++import _classCallCheck from"@babel/runtime/helpers/classCallCheck";import _createClass from"@babel/runtime/helpers/createClass";import _possibleConstructorReturn from"@babel/runtime/helpers/possibleConstructorReturn";import _getPrototypeOf from"@babel/runtime/helpers/getPrototypeOf";import _inherits from"@babel/runtime/helpers/inherits";var _jsxFileName="/Users/brentvatne/coding/react-navigation-core/src/views/SceneView.js";import React from'react';import NavigationContext from'./NavigationContext';var SceneView=function(_React$PureComponent){_inherits(SceneView,_React$PureComponent);function SceneView(){_classCallCheck(this,SceneView);return _possibleConstructorReturn(this,_getPrototypeOf(SceneView).apply(this,arguments));}_createClass(SceneView,[{key:"render",value:function render(){var _this$props=this.props,screenProps=_this$props.screenProps,Component=_this$props.component,navigation=_this$props.navigation;return React.createElement(NavigationContext.Provider,{value:navigation,__source:{fileName:_jsxFileName,lineNumber:8}},React.createElement(Component,{screenProps:screenProps,navigation:navigation,__source:{fileName:_jsxFileName,lineNumber:9}}));}}]);return SceneView;}(React.PureComponent);export{SceneView as default};
+ //# sourceMappingURL=SceneView.js.map
+\ No newline at end of file
+diff --git a/node_modules/@react-navigation/core/lib/module/views/SceneView.js.map b/node_modules/@react-navigation/core/lib/module/views/SceneView.js.map
+index 3a262a9..551aba6 100644
+--- a/node_modules/@react-navigation/core/lib/module/views/SceneView.js.map
++++ b/node_modules/@react-navigation/core/lib/module/views/SceneView.js.map
+@@ -1 +1 @@
+-{"version":3,"sources":["SceneView.js"],"names":["React","NavigationContext","SceneView","props","screenProps","Component","component","navigation","PureComponent"],"mappings":"obAAA,MAAOA,CAAAA,KAAP,KAAkB,OAAlB,CACA,MAAOC,CAAAA,iBAAP,KAA8B,qBAA9B,C,GAEqBC,CAAAA,S,sRACV,iBACmD,KAAKC,KADxD,CACCC,WADD,aACCA,WADD,CACyBC,SADzB,aACcC,SADd,CACoCC,UADpC,aACoCA,UADpC,CAEP,MACE,qBAAC,iBAAD,CAAmB,QAAnB,EAA4B,KAAK,CAAEA,UAAnC,gDACE,oBAAC,SAAD,EAAW,WAAW,CAAEH,WAAxB,CAAqC,UAAU,CAAEG,UAAjD,gDADF,CADF,CAKD,C,uBARoCP,KAAK,CAACQ,a,SAAxBN,S","sourcesContent":["import React from 'react';\nimport NavigationContext from './NavigationContext';\n\nexport default class SceneView extends React.PureComponent {\n render() {\n const { screenProps, component: Component, navigation } = this.props;\n return (\n \n \n \n );\n }\n}\n"]}
+\ No newline at end of file
++{"version":3,"sources":["SceneView.js"],"names":["React","NavigationContext","SceneView","props","screenProps","Component","component","navigation","PureComponent"],"mappings":"4aAAA,MAAOA,CAAAA,KAAP,KAAkB,OAAlB,CACA,MAAOC,CAAAA,iBAAP,KAA8B,qBAA9B,C,GAEqBC,CAAAA,S,sRACV,iBACmD,KAAKC,KADxD,CACCC,WADD,aACCA,WADD,CACyBC,SADzB,aACcC,SADd,CACoCC,UADpC,aACoCA,UADpC,CAEP,MACE,qBAAC,iBAAD,CAAmB,QAAnB,EAA4B,KAAK,CAAEA,UAAnC,gDACE,oBAAC,SAAD,EAAW,WAAW,CAAEH,WAAxB,CAAqC,UAAU,CAAEG,UAAjD,gDADF,CADF,CAKD,C,uBARoCP,KAAK,CAACQ,a,SAAxBN,S","sourcesContent":["import React from 'react';\nimport NavigationContext from './NavigationContext';\n\nexport default class SceneView extends React.PureComponent {\n render() {\n const { screenProps, component: Component, navigation } = this.props;\n return (\n \n \n \n );\n }\n}\n"]}
+\ No newline at end of file
+diff --git a/node_modules/@react-navigation/core/lib/module/views/SwitchView/SwitchView.js b/node_modules/@react-navigation/core/lib/module/views/SwitchView/SwitchView.js
+index e297eea..a72685f 100644
+--- a/node_modules/@react-navigation/core/lib/module/views/SwitchView/SwitchView.js
++++ b/node_modules/@react-navigation/core/lib/module/views/SwitchView/SwitchView.js
+@@ -1,2 +1,2 @@
+-import _classCallCheck from"@babel/runtime/helpers/classCallCheck";import _createClass from"@babel/runtime/helpers/createClass";import _possibleConstructorReturn from"@babel/runtime/helpers/possibleConstructorReturn";import _getPrototypeOf from"@babel/runtime/helpers/getPrototypeOf";import _inherits from"@babel/runtime/helpers/inherits";var _jsxFileName="/Users/satya/Workspace/Callstack/react-navigation-core/src/views/SwitchView/SwitchView.js";import React from'react';import SceneView from'../SceneView';var SwitchView=function(_React$Component){_inherits(SwitchView,_React$Component);function SwitchView(){_classCallCheck(this,SwitchView);return _possibleConstructorReturn(this,_getPrototypeOf(SwitchView).apply(this,arguments));}_createClass(SwitchView,[{key:"render",value:function render(){var state=this.props.navigation.state;var activeKey=state.routes[state.index].key;var descriptor=this.props.descriptors[activeKey];var ChildComponent=descriptor.getComponent();return React.createElement(SceneView,{component:ChildComponent,navigation:descriptor.navigation,screenProps:this.props.screenProps,__source:{fileName:_jsxFileName,lineNumber:12}});}}]);return SwitchView;}(React.Component);export{SwitchView as default};
++import _classCallCheck from"@babel/runtime/helpers/classCallCheck";import _createClass from"@babel/runtime/helpers/createClass";import _possibleConstructorReturn from"@babel/runtime/helpers/possibleConstructorReturn";import _getPrototypeOf from"@babel/runtime/helpers/getPrototypeOf";import _inherits from"@babel/runtime/helpers/inherits";var _jsxFileName="/Users/brentvatne/coding/react-navigation-core/src/views/SwitchView/SwitchView.js";import React from'react';import SceneView from'../SceneView';var SwitchView=function(_React$Component){_inherits(SwitchView,_React$Component);function SwitchView(){_classCallCheck(this,SwitchView);return _possibleConstructorReturn(this,_getPrototypeOf(SwitchView).apply(this,arguments));}_createClass(SwitchView,[{key:"render",value:function render(){var state=this.props.navigation.state;var activeKey=state.routes[state.index].key;var descriptor=this.props.descriptors[activeKey];var ChildComponent=descriptor.getComponent();return React.createElement(SceneView,{component:ChildComponent,navigation:descriptor.navigation,screenProps:this.props.screenProps,__source:{fileName:_jsxFileName,lineNumber:12}});}}]);return SwitchView;}(React.Component);export{SwitchView as default};
+ //# sourceMappingURL=SwitchView.js.map
+\ No newline at end of file
+diff --git a/node_modules/@react-navigation/core/lib/module/views/SwitchView/SwitchView.js.map b/node_modules/@react-navigation/core/lib/module/views/SwitchView/SwitchView.js.map
+index 517712b..bf3ffd6 100644
+--- a/node_modules/@react-navigation/core/lib/module/views/SwitchView/SwitchView.js.map
++++ b/node_modules/@react-navigation/core/lib/module/views/SwitchView/SwitchView.js.map
+@@ -1 +1 @@
+-{"version":3,"sources":["SwitchView.js"],"names":["React","SceneView","SwitchView","state","props","navigation","activeKey","routes","index","key","descriptor","descriptors","ChildComponent","getComponent","screenProps","Component"],"mappings":"gcAAA,MAAOA,CAAAA,KAAP,KAAkB,OAAlB,CACA,MAAOC,CAAAA,SAAP,KAAsB,cAAtB,C,GAEqBC,CAAAA,U,mRACV,IACCC,CAAAA,KADD,CACW,KAAKC,KAAL,CAAWC,UADtB,CACCF,KADD,CAEP,GAAMG,CAAAA,SAAS,CAAGH,KAAK,CAACI,MAAN,CAAaJ,KAAK,CAACK,KAAnB,EAA0BC,GAA5C,CACA,GAAMC,CAAAA,UAAU,CAAG,KAAKN,KAAL,CAAWO,WAAX,CAAuBL,SAAvB,CAAnB,CACA,GAAMM,CAAAA,cAAc,CAAGF,UAAU,CAACG,YAAX,EAAvB,CAEA,MACE,qBAAC,SAAD,EACE,SAAS,CAAED,cADb,CAEE,UAAU,CAAEF,UAAU,CAACL,UAFzB,CAGE,WAAW,CAAE,KAAKD,KAAL,CAAWU,WAH1B,iDADF,CAOD,C,wBAdqCd,KAAK,CAACe,S,SAAzBb,U","sourcesContent":["import React from 'react';\nimport SceneView from '../SceneView';\n\nexport default class SwitchView extends React.Component {\n render() {\n const { state } = this.props.navigation;\n const activeKey = state.routes[state.index].key;\n const descriptor = this.props.descriptors[activeKey];\n const ChildComponent = descriptor.getComponent();\n\n return (\n \n );\n }\n}\n"]}
+\ No newline at end of file
++{"version":3,"sources":["SwitchView.js"],"names":["React","SceneView","SwitchView","state","props","navigation","activeKey","routes","index","key","descriptor","descriptors","ChildComponent","getComponent","screenProps","Component"],"mappings":"wbAAA,MAAOA,CAAAA,KAAP,KAAkB,OAAlB,CACA,MAAOC,CAAAA,SAAP,KAAsB,cAAtB,C,GAEqBC,CAAAA,U,mRACV,IACCC,CAAAA,KADD,CACW,KAAKC,KAAL,CAAWC,UADtB,CACCF,KADD,CAEP,GAAMG,CAAAA,SAAS,CAAGH,KAAK,CAACI,MAAN,CAAaJ,KAAK,CAACK,KAAnB,EAA0BC,GAA5C,CACA,GAAMC,CAAAA,UAAU,CAAG,KAAKN,KAAL,CAAWO,WAAX,CAAuBL,SAAvB,CAAnB,CACA,GAAMM,CAAAA,cAAc,CAAGF,UAAU,CAACG,YAAX,EAAvB,CAEA,MACE,qBAAC,SAAD,EACE,SAAS,CAAED,cADb,CAEE,UAAU,CAAEF,UAAU,CAACL,UAFzB,CAGE,WAAW,CAAE,KAAKD,KAAL,CAAWU,WAH1B,iDADF,CAOD,C,wBAdqCd,KAAK,CAACe,S,SAAzBb,U","sourcesContent":["import React from 'react';\nimport SceneView from '../SceneView';\n\nexport default class SwitchView extends React.Component {\n render() {\n const { state } = this.props.navigation;\n const activeKey = state.routes[state.index].key;\n const descriptor = this.props.descriptors[activeKey];\n const ChildComponent = descriptor.getComponent();\n\n return (\n \n );\n }\n}\n"]}
+\ No newline at end of file
+diff --git a/node_modules/@react-navigation/core/lib/module/views/__tests__/NavigationEvents-test.js b/node_modules/@react-navigation/core/lib/module/views/__tests__/NavigationEvents-test.js
+index 1baf8ad..a6abe09 100644
+--- a/node_modules/@react-navigation/core/lib/module/views/__tests__/NavigationEvents-test.js
++++ b/node_modules/@react-navigation/core/lib/module/views/__tests__/NavigationEvents-test.js
+@@ -1,2 +1,2 @@
+-import _extends from"@babel/runtime/helpers/extends";var _jsxFileName="/Users/satya/Workspace/Callstack/react-navigation-core/src/views/__tests__/NavigationEvents-test.js";import React from'react';import renderer from'react-test-renderer';import NavigationEvents from'../NavigationEvents';import NavigationContext from'../NavigationContext';var createPropListener=function createPropListener(){return jest.fn();};var createEventListenersProp=function createEventListenersProp(){return{onWillFocus:createPropListener(),onDidFocus:createPropListener(),onWillBlur:createPropListener(),onDidBlur:createPropListener()};};var createTestNavigationAndHelpers=function createTestNavigationAndHelpers(){var NavigationListenersAPI=function(){var listeners={willFocus:[],didFocus:[],willBlur:[],didBlur:[]};return{add:function add(eventName,handler){listeners[eventName].push(handler);},remove:function remove(eventName,handler){listeners[eventName]=listeners[eventName].filter(function(h){return h!==handler;});},get:function get(eventName){return listeners[eventName];},call:function call(eventName){listeners[eventName].forEach(function(listener){return listener();});}};}();var navigation={addListener:jest.fn(function(eventName,handler){NavigationListenersAPI.add(eventName,handler);return{remove:function remove(){return NavigationListenersAPI.remove(eventName,handler);}};})};return{navigation:navigation,NavigationListenersAPI:NavigationListenersAPI};};describe('NavigationEvents',function(){it('add all listeners on mount and remove them on unmount, even without any event prop provided (see #5058)',function(){var _createTestNavigation=createTestNavigationAndHelpers(),navigation=_createTestNavigation.navigation,NavigationListenersAPI=_createTestNavigation.NavigationListenersAPI;var component=renderer.create(React.createElement(NavigationEvents,{navigation:navigation,__source:{fileName:_jsxFileName,lineNumber:63}}));expect(NavigationListenersAPI.get('willFocus').length).toBe(1);expect(NavigationListenersAPI.get('didFocus').length).toBe(1);expect(NavigationListenersAPI.get('willBlur').length).toBe(1);expect(NavigationListenersAPI.get('didBlur').length).toBe(1);component.unmount();expect(NavigationListenersAPI.get('willFocus').length).toBe(0);expect(NavigationListenersAPI.get('didFocus').length).toBe(0);expect(NavigationListenersAPI.get('willBlur').length).toBe(0);expect(NavigationListenersAPI.get('didBlur').length).toBe(0);});it('support context-provided navigation',function(){var _createTestNavigation2=createTestNavigationAndHelpers(),navigation=_createTestNavigation2.navigation,NavigationListenersAPI=_createTestNavigation2.NavigationListenersAPI;var component=renderer.create(React.createElement(NavigationContext.Provider,{value:navigation,__source:{fileName:_jsxFileName,lineNumber:83}},React.createElement(NavigationEvents,{__source:{fileName:_jsxFileName,lineNumber:84}})));expect(NavigationListenersAPI.get('willFocus').length).toBe(1);expect(NavigationListenersAPI.get('didFocus').length).toBe(1);expect(NavigationListenersAPI.get('willBlur').length).toBe(1);expect(NavigationListenersAPI.get('didBlur').length).toBe(1);component.unmount();expect(NavigationListenersAPI.get('willFocus').length).toBe(0);expect(NavigationListenersAPI.get('didFocus').length).toBe(0);expect(NavigationListenersAPI.get('willBlur').length).toBe(0);expect(NavigationListenersAPI.get('didBlur').length).toBe(0);});it('wire props listeners to navigation listeners',function(){var _createTestNavigation3=createTestNavigationAndHelpers(),navigation=_createTestNavigation3.navigation,NavigationListenersAPI=_createTestNavigation3.NavigationListenersAPI;var eventListenerProps=createEventListenersProp();renderer.create(React.createElement(NavigationEvents,_extends({navigation:navigation},eventListenerProps,{__source:{fileName:_jsxFileName,lineNumber:108}})));var checkPropListenerIsCalled=function checkPropListenerIsCalled(eventName,propName){expect(eventListenerProps[propName]).toHaveBeenCalledTimes(0);NavigationListenersAPI.call(eventName);expect(eventListenerProps[propName]).toHaveBeenCalledTimes(1);};checkPropListenerIsCalled('willFocus','onWillFocus');checkPropListenerIsCalled('didFocus','onDidFocus');checkPropListenerIsCalled('willBlur','onWillBlur');checkPropListenerIsCalled('didBlur','onDidBlur');});it('wire latest props listener to navigation listeners on updates (support closure/arrow functions update)',function(){var _createTestNavigation4=createTestNavigationAndHelpers(),navigation=_createTestNavigation4.navigation,NavigationListenersAPI=_createTestNavigation4.NavigationListenersAPI;var component=renderer.create(React.createElement(NavigationEvents,_extends({navigation:navigation},createEventListenersProp(),{__source:{fileName:_jsxFileName,lineNumber:130}})));component.update(React.createElement(NavigationEvents,{navigation:navigation,onWillBlur:function onWillBlur(){throw new Error('should not be called');},onDidFocus:function onDidFocus(){throw new Error('should not be called');},__source:{fileName:_jsxFileName,lineNumber:137}}));component.update(React.createElement(NavigationEvents,_extends({navigation:navigation},createEventListenersProp(),{__source:{fileName:_jsxFileName,lineNumber:149}})));var latestEventListenerProps=createEventListenersProp();component.update(React.createElement(NavigationEvents,_extends({navigation:navigation},latestEventListenerProps,{__source:{fileName:_jsxFileName,lineNumber:157}})));var checkLatestPropListenerCalled=function checkLatestPropListenerCalled(eventName,propName){expect(latestEventListenerProps[propName]).toHaveBeenCalledTimes(0);NavigationListenersAPI.call(eventName);expect(latestEventListenerProps[propName]).toHaveBeenCalledTimes(1);};checkLatestPropListenerCalled('willFocus','onWillFocus');checkLatestPropListenerCalled('didFocus','onDidFocus');checkLatestPropListenerCalled('willBlur','onWillBlur');checkLatestPropListenerCalled('didBlur','onDidBlur');});});
++import _extends from"@babel/runtime/helpers/extends";var _jsxFileName="/Users/brentvatne/coding/react-navigation-core/src/views/__tests__/NavigationEvents-test.js";import React from'react';import renderer from'react-test-renderer';import NavigationEvents from'../NavigationEvents';import NavigationContext from'../NavigationContext';var createPropListener=function createPropListener(){return jest.fn();};var createEventListenersProp=function createEventListenersProp(){return{onWillFocus:createPropListener(),onDidFocus:createPropListener(),onWillBlur:createPropListener(),onDidBlur:createPropListener()};};var createTestNavigationAndHelpers=function createTestNavigationAndHelpers(){var NavigationListenersAPI=function(){var listeners={willFocus:[],didFocus:[],willBlur:[],didBlur:[]};return{add:function add(eventName,handler){listeners[eventName].push(handler);},remove:function remove(eventName,handler){listeners[eventName]=listeners[eventName].filter(function(h){return h!==handler;});},get:function get(eventName){return listeners[eventName];},call:function call(eventName){listeners[eventName].forEach(function(listener){return listener();});}};}();var navigation={addListener:jest.fn(function(eventName,handler){NavigationListenersAPI.add(eventName,handler);return{remove:function remove(){return NavigationListenersAPI.remove(eventName,handler);}};})};return{navigation:navigation,NavigationListenersAPI:NavigationListenersAPI};};describe('NavigationEvents',function(){it('add all listeners on mount and remove them on unmount, even without any event prop provided (see #5058)',function(){var _createTestNavigation=createTestNavigationAndHelpers(),navigation=_createTestNavigation.navigation,NavigationListenersAPI=_createTestNavigation.NavigationListenersAPI;var component=renderer.create(React.createElement(NavigationEvents,{navigation:navigation,__source:{fileName:_jsxFileName,lineNumber:63}}));expect(NavigationListenersAPI.get('willFocus').length).toBe(1);expect(NavigationListenersAPI.get('didFocus').length).toBe(1);expect(NavigationListenersAPI.get('willBlur').length).toBe(1);expect(NavigationListenersAPI.get('didBlur').length).toBe(1);component.unmount();expect(NavigationListenersAPI.get('willFocus').length).toBe(0);expect(NavigationListenersAPI.get('didFocus').length).toBe(0);expect(NavigationListenersAPI.get('willBlur').length).toBe(0);expect(NavigationListenersAPI.get('didBlur').length).toBe(0);});it('support context-provided navigation',function(){var _createTestNavigation2=createTestNavigationAndHelpers(),navigation=_createTestNavigation2.navigation,NavigationListenersAPI=_createTestNavigation2.NavigationListenersAPI;var component=renderer.create(React.createElement(NavigationContext.Provider,{value:navigation,__source:{fileName:_jsxFileName,lineNumber:83}},React.createElement(NavigationEvents,{__source:{fileName:_jsxFileName,lineNumber:84}})));expect(NavigationListenersAPI.get('willFocus').length).toBe(1);expect(NavigationListenersAPI.get('didFocus').length).toBe(1);expect(NavigationListenersAPI.get('willBlur').length).toBe(1);expect(NavigationListenersAPI.get('didBlur').length).toBe(1);component.unmount();expect(NavigationListenersAPI.get('willFocus').length).toBe(0);expect(NavigationListenersAPI.get('didFocus').length).toBe(0);expect(NavigationListenersAPI.get('willBlur').length).toBe(0);expect(NavigationListenersAPI.get('didBlur').length).toBe(0);});it('wire props listeners to navigation listeners',function(){var _createTestNavigation3=createTestNavigationAndHelpers(),navigation=_createTestNavigation3.navigation,NavigationListenersAPI=_createTestNavigation3.NavigationListenersAPI;var eventListenerProps=createEventListenersProp();renderer.create(React.createElement(NavigationEvents,_extends({navigation:navigation},eventListenerProps,{__source:{fileName:_jsxFileName,lineNumber:108}})));var checkPropListenerIsCalled=function checkPropListenerIsCalled(eventName,propName){expect(eventListenerProps[propName]).toHaveBeenCalledTimes(0);NavigationListenersAPI.call(eventName);expect(eventListenerProps[propName]).toHaveBeenCalledTimes(1);};checkPropListenerIsCalled('willFocus','onWillFocus');checkPropListenerIsCalled('didFocus','onDidFocus');checkPropListenerIsCalled('willBlur','onWillBlur');checkPropListenerIsCalled('didBlur','onDidBlur');});it('wire latest props listener to navigation listeners on updates (support closure/arrow functions update)',function(){var _createTestNavigation4=createTestNavigationAndHelpers(),navigation=_createTestNavigation4.navigation,NavigationListenersAPI=_createTestNavigation4.NavigationListenersAPI;var component=renderer.create(React.createElement(NavigationEvents,_extends({navigation:navigation},createEventListenersProp(),{__source:{fileName:_jsxFileName,lineNumber:130}})));component.update(React.createElement(NavigationEvents,{navigation:navigation,onWillBlur:function onWillBlur(){throw new Error('should not be called');},onDidFocus:function onDidFocus(){throw new Error('should not be called');},__source:{fileName:_jsxFileName,lineNumber:137}}));component.update(React.createElement(NavigationEvents,_extends({navigation:navigation},createEventListenersProp(),{__source:{fileName:_jsxFileName,lineNumber:149}})));var latestEventListenerProps=createEventListenersProp();component.update(React.createElement(NavigationEvents,_extends({navigation:navigation},latestEventListenerProps,{__source:{fileName:_jsxFileName,lineNumber:157}})));var checkLatestPropListenerCalled=function checkLatestPropListenerCalled(eventName,propName){expect(latestEventListenerProps[propName]).toHaveBeenCalledTimes(0);NavigationListenersAPI.call(eventName);expect(latestEventListenerProps[propName]).toHaveBeenCalledTimes(1);};checkLatestPropListenerCalled('willFocus','onWillFocus');checkLatestPropListenerCalled('didFocus','onDidFocus');checkLatestPropListenerCalled('willBlur','onWillBlur');checkLatestPropListenerCalled('didBlur','onDidBlur');});});
+ //# sourceMappingURL=NavigationEvents-test.js.map
+\ No newline at end of file
+diff --git a/node_modules/@react-navigation/core/lib/module/views/__tests__/NavigationEvents-test.js.map b/node_modules/@react-navigation/core/lib/module/views/__tests__/NavigationEvents-test.js.map
+index f941e04..1511c0c 100644
+--- a/node_modules/@react-navigation/core/lib/module/views/__tests__/NavigationEvents-test.js.map
++++ b/node_modules/@react-navigation/core/lib/module/views/__tests__/NavigationEvents-test.js.map
+@@ -1 +1 @@
+-{"version":3,"sources":["NavigationEvents-test.js"],"names":["React","renderer","NavigationEvents","NavigationContext","createPropListener","jest","fn","createEventListenersProp","onWillFocus","onDidFocus","onWillBlur","onDidBlur","createTestNavigationAndHelpers","NavigationListenersAPI","listeners","willFocus","didFocus","willBlur","didBlur","add","eventName","handler","push","remove","filter","h","get","call","forEach","listener","navigation","addListener","describe","it","component","create","expect","length","toBe","unmount","eventListenerProps","checkPropListenerIsCalled","propName","toHaveBeenCalledTimes","update","Error","latestEventListenerProps","checkLatestPropListenerCalled"],"mappings":"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","sourcesContent":["import React from 'react';\nimport renderer from 'react-test-renderer';\nimport NavigationEvents from '../NavigationEvents';\nimport NavigationContext from '../NavigationContext';\n\nconst createPropListener = () => jest.fn();\n\n// An easy way to create the 4 listeners prop\nconst createEventListenersProp = () => ({\n onWillFocus: createPropListener(),\n onDidFocus: createPropListener(),\n onWillBlur: createPropListener(),\n onDidBlur: createPropListener(),\n});\n\nconst createTestNavigationAndHelpers = () => {\n const NavigationListenersAPI = (() => {\n let listeners = {\n willFocus: [],\n didFocus: [],\n willBlur: [],\n didBlur: [],\n };\n return {\n add: (eventName, handler) => {\n listeners[eventName].push(handler);\n },\n remove: (eventName, handler) => {\n listeners[eventName] = listeners[eventName].filter(h => h !== handler);\n },\n get: eventName => {\n return listeners[eventName];\n },\n call: eventName => {\n listeners[eventName].forEach(listener => listener());\n },\n };\n })();\n\n const navigation = {\n addListener: jest.fn((eventName, handler) => {\n NavigationListenersAPI.add(eventName, handler);\n return {\n remove: () => NavigationListenersAPI.remove(eventName, handler),\n };\n }),\n };\n\n return {\n navigation,\n NavigationListenersAPI,\n };\n};\n\ndescribe('NavigationEvents', () => {\n it('add all listeners on mount and remove them on unmount, even without any event prop provided (see #5058)', () => {\n const {\n navigation,\n NavigationListenersAPI,\n } = createTestNavigationAndHelpers();\n\n const component = renderer.create(\n \n );\n expect(NavigationListenersAPI.get('willFocus').length).toBe(1);\n expect(NavigationListenersAPI.get('didFocus').length).toBe(1);\n expect(NavigationListenersAPI.get('willBlur').length).toBe(1);\n expect(NavigationListenersAPI.get('didBlur').length).toBe(1);\n\n component.unmount();\n expect(NavigationListenersAPI.get('willFocus').length).toBe(0);\n expect(NavigationListenersAPI.get('didFocus').length).toBe(0);\n expect(NavigationListenersAPI.get('willBlur').length).toBe(0);\n expect(NavigationListenersAPI.get('didBlur').length).toBe(0);\n });\n\n it('support context-provided navigation', () => {\n const {\n navigation,\n NavigationListenersAPI,\n } = createTestNavigationAndHelpers();\n const component = renderer.create(\n \n \n \n );\n\n expect(NavigationListenersAPI.get('willFocus').length).toBe(1);\n expect(NavigationListenersAPI.get('didFocus').length).toBe(1);\n expect(NavigationListenersAPI.get('willBlur').length).toBe(1);\n expect(NavigationListenersAPI.get('didBlur').length).toBe(1);\n\n component.unmount();\n expect(NavigationListenersAPI.get('willFocus').length).toBe(0);\n expect(NavigationListenersAPI.get('didFocus').length).toBe(0);\n expect(NavigationListenersAPI.get('willBlur').length).toBe(0);\n expect(NavigationListenersAPI.get('didBlur').length).toBe(0);\n });\n\n it('wire props listeners to navigation listeners', () => {\n const {\n navigation,\n NavigationListenersAPI,\n } = createTestNavigationAndHelpers();\n\n const eventListenerProps = createEventListenersProp();\n renderer.create(\n \n );\n\n const checkPropListenerIsCalled = (eventName, propName) => {\n expect(eventListenerProps[propName]).toHaveBeenCalledTimes(0);\n NavigationListenersAPI.call(eventName);\n expect(eventListenerProps[propName]).toHaveBeenCalledTimes(1);\n };\n\n checkPropListenerIsCalled('willFocus', 'onWillFocus');\n checkPropListenerIsCalled('didFocus', 'onDidFocus');\n checkPropListenerIsCalled('willBlur', 'onWillBlur');\n checkPropListenerIsCalled('didBlur', 'onDidBlur');\n });\n\n it('wire latest props listener to navigation listeners on updates (support closure/arrow functions update)', () => {\n const {\n navigation,\n NavigationListenersAPI,\n } = createTestNavigationAndHelpers();\n\n const component = renderer.create(\n \n );\n\n component.update(\n {\n throw new Error('should not be called');\n }}\n onDidFocus={() => {\n throw new Error('should not be called');\n }}\n />\n );\n\n component.update(\n \n );\n\n const latestEventListenerProps = createEventListenersProp();\n component.update(\n \n );\n\n const checkLatestPropListenerCalled = (eventName, propName) => {\n expect(latestEventListenerProps[propName]).toHaveBeenCalledTimes(0);\n NavigationListenersAPI.call(eventName);\n expect(latestEventListenerProps[propName]).toHaveBeenCalledTimes(1);\n };\n\n checkLatestPropListenerCalled('willFocus', 'onWillFocus');\n checkLatestPropListenerCalled('didFocus', 'onDidFocus');\n checkLatestPropListenerCalled('willBlur', 'onWillBlur');\n checkLatestPropListenerCalled('didBlur', 'onDidBlur');\n });\n});\n"]}
+\ No newline at end of file
++{"version":3,"sources":["NavigationEvents-test.js"],"names":["React","renderer","NavigationEvents","NavigationContext","createPropListener","jest","fn","createEventListenersProp","onWillFocus","onDidFocus","onWillBlur","onDidBlur","createTestNavigationAndHelpers","NavigationListenersAPI","listeners","willFocus","didFocus","willBlur","didBlur","add","eventName","handler","push","remove","filter","h","get","call","forEach","listener","navigation","addListener","describe","it","component","create","expect","length","toBe","unmount","eventListenerProps","checkPropListenerIsCalled","propName","toHaveBeenCalledTimes","update","Error","latestEventListenerProps","checkLatestPropListenerCalled"],"mappings":"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","sourcesContent":["import React from 'react';\nimport renderer from 'react-test-renderer';\nimport NavigationEvents from '../NavigationEvents';\nimport NavigationContext from '../NavigationContext';\n\nconst createPropListener = () => jest.fn();\n\n// An easy way to create the 4 listeners prop\nconst createEventListenersProp = () => ({\n onWillFocus: createPropListener(),\n onDidFocus: createPropListener(),\n onWillBlur: createPropListener(),\n onDidBlur: createPropListener(),\n});\n\nconst createTestNavigationAndHelpers = () => {\n const NavigationListenersAPI = (() => {\n let listeners = {\n willFocus: [],\n didFocus: [],\n willBlur: [],\n didBlur: [],\n };\n return {\n add: (eventName, handler) => {\n listeners[eventName].push(handler);\n },\n remove: (eventName, handler) => {\n listeners[eventName] = listeners[eventName].filter(h => h !== handler);\n },\n get: eventName => {\n return listeners[eventName];\n },\n call: eventName => {\n listeners[eventName].forEach(listener => listener());\n },\n };\n })();\n\n const navigation = {\n addListener: jest.fn((eventName, handler) => {\n NavigationListenersAPI.add(eventName, handler);\n return {\n remove: () => NavigationListenersAPI.remove(eventName, handler),\n };\n }),\n };\n\n return {\n navigation,\n NavigationListenersAPI,\n };\n};\n\ndescribe('NavigationEvents', () => {\n it('add all listeners on mount and remove them on unmount, even without any event prop provided (see #5058)', () => {\n const {\n navigation,\n NavigationListenersAPI,\n } = createTestNavigationAndHelpers();\n\n const component = renderer.create(\n \n );\n expect(NavigationListenersAPI.get('willFocus').length).toBe(1);\n expect(NavigationListenersAPI.get('didFocus').length).toBe(1);\n expect(NavigationListenersAPI.get('willBlur').length).toBe(1);\n expect(NavigationListenersAPI.get('didBlur').length).toBe(1);\n\n component.unmount();\n expect(NavigationListenersAPI.get('willFocus').length).toBe(0);\n expect(NavigationListenersAPI.get('didFocus').length).toBe(0);\n expect(NavigationListenersAPI.get('willBlur').length).toBe(0);\n expect(NavigationListenersAPI.get('didBlur').length).toBe(0);\n });\n\n it('support context-provided navigation', () => {\n const {\n navigation,\n NavigationListenersAPI,\n } = createTestNavigationAndHelpers();\n const component = renderer.create(\n \n \n \n );\n\n expect(NavigationListenersAPI.get('willFocus').length).toBe(1);\n expect(NavigationListenersAPI.get('didFocus').length).toBe(1);\n expect(NavigationListenersAPI.get('willBlur').length).toBe(1);\n expect(NavigationListenersAPI.get('didBlur').length).toBe(1);\n\n component.unmount();\n expect(NavigationListenersAPI.get('willFocus').length).toBe(0);\n expect(NavigationListenersAPI.get('didFocus').length).toBe(0);\n expect(NavigationListenersAPI.get('willBlur').length).toBe(0);\n expect(NavigationListenersAPI.get('didBlur').length).toBe(0);\n });\n\n it('wire props listeners to navigation listeners', () => {\n const {\n navigation,\n NavigationListenersAPI,\n } = createTestNavigationAndHelpers();\n\n const eventListenerProps = createEventListenersProp();\n renderer.create(\n \n );\n\n const checkPropListenerIsCalled = (eventName, propName) => {\n expect(eventListenerProps[propName]).toHaveBeenCalledTimes(0);\n NavigationListenersAPI.call(eventName);\n expect(eventListenerProps[propName]).toHaveBeenCalledTimes(1);\n };\n\n checkPropListenerIsCalled('willFocus', 'onWillFocus');\n checkPropListenerIsCalled('didFocus', 'onDidFocus');\n checkPropListenerIsCalled('willBlur', 'onWillBlur');\n checkPropListenerIsCalled('didBlur', 'onDidBlur');\n });\n\n it('wire latest props listener to navigation listeners on updates (support closure/arrow functions update)', () => {\n const {\n navigation,\n NavigationListenersAPI,\n } = createTestNavigationAndHelpers();\n\n const component = renderer.create(\n \n );\n\n component.update(\n {\n throw new Error('should not be called');\n }}\n onDidFocus={() => {\n throw new Error('should not be called');\n }}\n />\n );\n\n component.update(\n \n );\n\n const latestEventListenerProps = createEventListenersProp();\n component.update(\n \n );\n\n const checkLatestPropListenerCalled = (eventName, propName) => {\n expect(latestEventListenerProps[propName]).toHaveBeenCalledTimes(0);\n NavigationListenersAPI.call(eventName);\n expect(latestEventListenerProps[propName]).toHaveBeenCalledTimes(1);\n };\n\n checkLatestPropListenerCalled('willFocus', 'onWillFocus');\n checkLatestPropListenerCalled('didFocus', 'onDidFocus');\n checkLatestPropListenerCalled('willBlur', 'onWillBlur');\n checkLatestPropListenerCalled('didBlur', 'onDidBlur');\n });\n});\n"]}
+\ No newline at end of file
+diff --git a/node_modules/@react-navigation/core/lib/module/views/withNavigation.js b/node_modules/@react-navigation/core/lib/module/views/withNavigation.js
+index 42a840b..74a3705 100644
+--- a/node_modules/@react-navigation/core/lib/module/views/withNavigation.js
++++ b/node_modules/@react-navigation/core/lib/module/views/withNavigation.js
+@@ -1,2 +1,2 @@
+-import _extends from"@babel/runtime/helpers/extends";import _classCallCheck from"@babel/runtime/helpers/classCallCheck";import _createClass from"@babel/runtime/helpers/createClass";import _possibleConstructorReturn from"@babel/runtime/helpers/possibleConstructorReturn";import _getPrototypeOf from"@babel/runtime/helpers/getPrototypeOf";import _inherits from"@babel/runtime/helpers/inherits";var _jsxFileName="/Users/satya/Workspace/Callstack/react-navigation-core/src/views/withNavigation.js";import React from'react';import hoistStatics from'hoist-non-react-statics';import invariant from'../utils/invariant';import NavigationContext from'./NavigationContext';export default function withNavigation(Component){var config=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{forwardRef:true};var ComponentWithNavigation=function(_React$Component){_inherits(ComponentWithNavigation,_React$Component);function ComponentWithNavigation(){_classCallCheck(this,ComponentWithNavigation);return _possibleConstructorReturn(this,_getPrototypeOf(ComponentWithNavigation).apply(this,arguments));}_createClass(ComponentWithNavigation,[{key:"render",value:function render(){var _this=this;var navigationProp=this.props.navigation;return React.createElement(NavigationContext.Consumer,{__source:{fileName:_jsxFileName,lineNumber:17}},function(navigationContext){var navigation=navigationProp||navigationContext;invariant(!!navigation,'withNavigation can only be used on a view hierarchy of a navigator. The wrapped component is unable to get access to navigation from props or context.');return React.createElement(Component,_extends({},_this.props,{navigation:navigation,ref:config.forwardRef?_this.props.onRef:undefined,__source:{fileName:_jsxFileName,lineNumber:25}}));});}}]);return ComponentWithNavigation;}(React.Component);ComponentWithNavigation.displayName="withNavigation("+(Component.displayName||Component.name)+")";return hoistStatics(ComponentWithNavigation,Component);}
++import _extends from"@babel/runtime/helpers/extends";import _classCallCheck from"@babel/runtime/helpers/classCallCheck";import _createClass from"@babel/runtime/helpers/createClass";import _possibleConstructorReturn from"@babel/runtime/helpers/possibleConstructorReturn";import _getPrototypeOf from"@babel/runtime/helpers/getPrototypeOf";import _inherits from"@babel/runtime/helpers/inherits";var _jsxFileName="/Users/brentvatne/coding/react-navigation-core/src/views/withNavigation.js";import React from'react';import hoistStatics from'hoist-non-react-statics';import invariant from'../utils/invariant';import NavigationContext from'./NavigationContext';export default function withNavigation(Component){var config=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{forwardRef:true};var ComponentWithNavigation=function(_React$Component){_inherits(ComponentWithNavigation,_React$Component);function ComponentWithNavigation(){_classCallCheck(this,ComponentWithNavigation);return _possibleConstructorReturn(this,_getPrototypeOf(ComponentWithNavigation).apply(this,arguments));}_createClass(ComponentWithNavigation,[{key:"render",value:function render(){var _this=this;var navigationProp=this.props.navigation;return React.createElement(NavigationContext.Consumer,{__source:{fileName:_jsxFileName,lineNumber:17}},function(navigationContext){var navigation=navigationProp||navigationContext;invariant(!!navigation,'withNavigation can only be used on a view hierarchy of a navigator. The wrapped component is unable to get access to navigation from props or context.');return React.createElement(Component,_extends({},_this.props,{navigation:navigation,ref:config.forwardRef?_this.props.onRef:undefined,__source:{fileName:_jsxFileName,lineNumber:25}}));});}}]);return ComponentWithNavigation;}(React.Component);ComponentWithNavigation.displayName="withNavigation("+(Component.displayName||Component.name)+")";return hoistStatics(ComponentWithNavigation,Component);}
+ //# sourceMappingURL=withNavigation.js.map
+\ No newline at end of file
+diff --git a/node_modules/@react-navigation/core/lib/module/views/withNavigation.js.map b/node_modules/@react-navigation/core/lib/module/views/withNavigation.js.map
+index aa1a6ec..b670f53 100644
+--- a/node_modules/@react-navigation/core/lib/module/views/withNavigation.js.map
++++ b/node_modules/@react-navigation/core/lib/module/views/withNavigation.js.map
+@@ -1 +1 @@
+-{"version":3,"sources":["withNavigation.js"],"names":["React","hoistStatics","invariant","NavigationContext","withNavigation","Component","config","forwardRef","ComponentWithNavigation","navigationProp","props","navigation","navigationContext","onRef","undefined","displayName","name"],"mappings":"8eAAA,MAAOA,CAAAA,KAAP,KAAkB,OAAlB,CACA,MAAOC,CAAAA,YAAP,KAAyB,yBAAzB,CACA,MAAOC,CAAAA,SAAP,KAAsB,oBAAtB,CACA,MAAOC,CAAAA,iBAAP,KAA8B,qBAA9B,CAEA,cAAe,SAASC,CAAAA,cAAT,CACbC,SADa,CAGb,IADAC,CAAAA,MACA,2DADS,CAAEC,UAAU,CAAE,IAAd,CACT,IACMC,CAAAA,uBADN,oVAKW,gBACP,GAAMC,CAAAA,cAAc,CAAG,KAAKC,KAAL,CAAWC,UAAlC,CACA,MACE,qBAAC,iBAAD,CAAmB,QAAnB,kDACG,SAAAC,iBAAiB,CAAI,CACpB,GAAMD,CAAAA,UAAU,CAAGF,cAAc,EAAIG,iBAArC,CACAV,SAAS,CACP,CAAC,CAACS,UADK,CAEP,wJAFO,CAAT,CAIA,MACE,qBAAC,SAAD,aACM,KAAI,CAACD,KADX,EAEE,UAAU,CAAEC,UAFd,CAGE,GAAG,CAAEL,MAAM,CAACC,UAAP,CAAoB,KAAI,CAACG,KAAL,CAAWG,KAA/B,CAAuCC,SAH9C,kDADF,CAOD,CAdH,CADF,CAkBD,CAzBH,qCACsCd,KAAK,CAACK,SAD5C,EACMG,uBADN,CAESO,WAFT,oBAEyCV,SAAS,CAACU,WAAV,EACrCV,SAAS,CAACW,IAHd,MA4BA,MAAOf,CAAAA,YAAY,CAACO,uBAAD,CAA0BH,SAA1B,CAAnB,CACD","sourcesContent":["import React from 'react';\nimport hoistStatics from 'hoist-non-react-statics';\nimport invariant from '../utils/invariant';\nimport NavigationContext from './NavigationContext';\n\nexport default function withNavigation(\n Component,\n config = { forwardRef: true }\n) {\n class ComponentWithNavigation extends React.Component {\n static displayName = `withNavigation(${Component.displayName ||\n Component.name})`;\n\n render() {\n const navigationProp = this.props.navigation;\n return (\n \n {navigationContext => {\n const navigation = navigationProp || navigationContext;\n invariant(\n !!navigation,\n 'withNavigation can only be used on a view hierarchy of a navigator. The wrapped component is unable to get access to navigation from props or context.'\n );\n return (\n \n );\n }}\n \n );\n }\n }\n\n return hoistStatics(ComponentWithNavigation, Component);\n}\n"]}
+\ No newline at end of file
++{"version":3,"sources":["withNavigation.js"],"names":["React","hoistStatics","invariant","NavigationContext","withNavigation","Component","config","forwardRef","ComponentWithNavigation","navigationProp","props","navigation","navigationContext","onRef","undefined","displayName","name"],"mappings":"seAAA,MAAOA,CAAAA,KAAP,KAAkB,OAAlB,CACA,MAAOC,CAAAA,YAAP,KAAyB,yBAAzB,CACA,MAAOC,CAAAA,SAAP,KAAsB,oBAAtB,CACA,MAAOC,CAAAA,iBAAP,KAA8B,qBAA9B,CAEA,cAAe,SAASC,CAAAA,cAAT,CACbC,SADa,CAGb,IADAC,CAAAA,MACA,2DADS,CAAEC,UAAU,CAAE,IAAd,CACT,IACMC,CAAAA,uBADN,oVAKW,gBACP,GAAMC,CAAAA,cAAc,CAAG,KAAKC,KAAL,CAAWC,UAAlC,CACA,MACE,qBAAC,iBAAD,CAAmB,QAAnB,kDACG,SAAAC,iBAAiB,CAAI,CACpB,GAAMD,CAAAA,UAAU,CAAGF,cAAc,EAAIG,iBAArC,CACAV,SAAS,CACP,CAAC,CAACS,UADK,CAEP,wJAFO,CAAT,CAIA,MACE,qBAAC,SAAD,aACM,KAAI,CAACD,KADX,EAEE,UAAU,CAAEC,UAFd,CAGE,GAAG,CAAEL,MAAM,CAACC,UAAP,CAAoB,KAAI,CAACG,KAAL,CAAWG,KAA/B,CAAuCC,SAH9C,kDADF,CAOD,CAdH,CADF,CAkBD,CAzBH,qCACsCd,KAAK,CAACK,SAD5C,EACMG,uBADN,CAESO,WAFT,oBAEyCV,SAAS,CAACU,WAAV,EACrCV,SAAS,CAACW,IAHd,MA4BA,MAAOf,CAAAA,YAAY,CAACO,uBAAD,CAA0BH,SAA1B,CAAnB,CACD","sourcesContent":["import React from 'react';\nimport hoistStatics from 'hoist-non-react-statics';\nimport invariant from '../utils/invariant';\nimport NavigationContext from './NavigationContext';\n\nexport default function withNavigation(\n Component,\n config = { forwardRef: true }\n) {\n class ComponentWithNavigation extends React.Component {\n static displayName = `withNavigation(${Component.displayName ||\n Component.name})`;\n\n render() {\n const navigationProp = this.props.navigation;\n return (\n \n {navigationContext => {\n const navigation = navigationProp || navigationContext;\n invariant(\n !!navigation,\n 'withNavigation can only be used on a view hierarchy of a navigator. The wrapped component is unable to get access to navigation from props or context.'\n );\n return (\n \n );\n }}\n \n );\n }\n }\n\n return hoistStatics(ComponentWithNavigation, Component);\n}\n"]}
+\ No newline at end of file
+diff --git a/node_modules/@react-navigation/core/lib/module/views/withNavigationFocus.js b/node_modules/@react-navigation/core/lib/module/views/withNavigationFocus.js
+index 724e653..2b982e1 100644
+--- a/node_modules/@react-navigation/core/lib/module/views/withNavigationFocus.js
++++ b/node_modules/@react-navigation/core/lib/module/views/withNavigationFocus.js
+@@ -1,2 +1,2 @@
+-import _extends from"@babel/runtime/helpers/extends";import _classCallCheck from"@babel/runtime/helpers/classCallCheck";import _createClass from"@babel/runtime/helpers/createClass";import _possibleConstructorReturn from"@babel/runtime/helpers/possibleConstructorReturn";import _getPrototypeOf from"@babel/runtime/helpers/getPrototypeOf";import _inherits from"@babel/runtime/helpers/inherits";var _jsxFileName="/Users/satya/Workspace/Callstack/react-navigation-core/src/views/withNavigationFocus.js";import React from'react';import hoistStatics from'hoist-non-react-statics';import withNavigation from'./withNavigation';export default function withNavigationFocus(Component){var ComponentWithNavigationFocus=function(_React$Component){_inherits(ComponentWithNavigationFocus,_React$Component);function ComponentWithNavigationFocus(props){var _this;_classCallCheck(this,ComponentWithNavigationFocus);_this=_possibleConstructorReturn(this,_getPrototypeOf(ComponentWithNavigationFocus).call(this,props));_this.subscriptions=[props.navigation.addListener('didFocus',function(){return _this.setState({isFocused:true});}),props.navigation.addListener('willBlur',function(){return _this.setState({isFocused:false});})];_this.state={isFocused:props.navigation?props.navigation.isFocused():false};return _this;}_createClass(ComponentWithNavigationFocus,[{key:"componentWillUnmount",value:function componentWillUnmount(){this.subscriptions.forEach(function(sub){return sub.remove();});}},{key:"render",value:function render(){return React.createElement(Component,_extends({},this.props,{isFocused:this.state.isFocused,ref:this.props.onRef,__source:{fileName:_jsxFileName,lineNumber:33}}));}}]);return ComponentWithNavigationFocus;}(React.Component);ComponentWithNavigationFocus.displayName="withNavigationFocus("+(Component.displayName||Component.name)+")";return hoistStatics(withNavigation(ComponentWithNavigationFocus,{forwardRef:false}),Component);}
++import _extends from"@babel/runtime/helpers/extends";import _classCallCheck from"@babel/runtime/helpers/classCallCheck";import _createClass from"@babel/runtime/helpers/createClass";import _possibleConstructorReturn from"@babel/runtime/helpers/possibleConstructorReturn";import _getPrototypeOf from"@babel/runtime/helpers/getPrototypeOf";import _inherits from"@babel/runtime/helpers/inherits";var _jsxFileName="/Users/brentvatne/coding/react-navigation-core/src/views/withNavigationFocus.js";import React from'react';import hoistStatics from'hoist-non-react-statics';import withNavigation from'./withNavigation';export default function withNavigationFocus(Component){var ComponentWithNavigationFocus=function(_React$Component){_inherits(ComponentWithNavigationFocus,_React$Component);function ComponentWithNavigationFocus(props){var _this;_classCallCheck(this,ComponentWithNavigationFocus);_this=_possibleConstructorReturn(this,_getPrototypeOf(ComponentWithNavigationFocus).call(this,props));_this.subscriptions=[props.navigation.addListener('didFocus',function(){return _this.setState({isFocused:true});}),props.navigation.addListener('willBlur',function(){return _this.setState({isFocused:false});})];_this.state={isFocused:props.navigation?props.navigation.isFocused():false};return _this;}_createClass(ComponentWithNavigationFocus,[{key:"componentWillUnmount",value:function componentWillUnmount(){this.subscriptions.forEach(function(sub){return sub.remove();});}},{key:"render",value:function render(){return React.createElement(Component,_extends({},this.props,{isFocused:this.state.isFocused,ref:this.props.onRef,__source:{fileName:_jsxFileName,lineNumber:33}}));}}]);return ComponentWithNavigationFocus;}(React.Component);ComponentWithNavigationFocus.displayName="withNavigationFocus("+(Component.displayName||Component.name)+")";return hoistStatics(withNavigation(ComponentWithNavigationFocus,{forwardRef:false}),Component);}
+ //# sourceMappingURL=withNavigationFocus.js.map
+\ No newline at end of file
+diff --git a/node_modules/@react-navigation/core/lib/module/views/withNavigationFocus.js.map b/node_modules/@react-navigation/core/lib/module/views/withNavigationFocus.js.map
+index 83bb9c8..58e7e3b 100644
+--- a/node_modules/@react-navigation/core/lib/module/views/withNavigationFocus.js.map
++++ b/node_modules/@react-navigation/core/lib/module/views/withNavigationFocus.js.map
+@@ -1 +1 @@
+-{"version":3,"sources":["withNavigationFocus.js"],"names":["React","hoistStatics","withNavigation","withNavigationFocus","Component","ComponentWithNavigationFocus","props","subscriptions","navigation","addListener","setState","isFocused","state","forEach","sub","remove","onRef","displayName","name","forwardRef"],"mappings":"mfAAA,MAAOA,CAAAA,KAAP,KAAkB,OAAlB,CACA,MAAOC,CAAAA,YAAP,KAAyB,yBAAzB,CACA,MAAOC,CAAAA,cAAP,KAA2B,kBAA3B,CAEA,cAAe,SAASC,CAAAA,mBAAT,CAA6BC,SAA7B,CAAwC,IAC/CC,CAAAA,4BAD+C,qFAKnD,sCAAYC,KAAZ,CAAmB,8DACjB,8FAAMA,KAAN,GAEA,MAAKC,aAAL,CAAqB,CACnBD,KAAK,CAACE,UAAN,CAAiBC,WAAjB,CAA6B,UAA7B,CAAyC,iBACvC,OAAKC,QAAL,CAAc,CAAEC,SAAS,CAAE,IAAb,CAAd,CADuC,EAAzC,CADmB,CAInBL,KAAK,CAACE,UAAN,CAAiBC,WAAjB,CAA6B,UAA7B,CAAyC,iBACvC,OAAKC,QAAL,CAAc,CAAEC,SAAS,CAAE,KAAb,CAAd,CADuC,EAAzC,CAJmB,CAArB,CASA,MAAKC,KAAL,CAAa,CACXD,SAAS,CAAEL,KAAK,CAACE,UAAN,CAAmBF,KAAK,CAACE,UAAN,CAAiBG,SAAjB,EAAnB,CAAkD,KADlD,CAAb,CAZiB,aAelB,CApBkD,4GAsB5B,CACrB,KAAKJ,aAAL,CAAmBM,OAAnB,CAA2B,SAAAC,GAAG,QAAIA,CAAAA,GAAG,CAACC,MAAJ,EAAJ,EAA9B,EACD,CAxBkD,uCA0B1C,CACP,MACE,qBAAC,SAAD,aACM,KAAKT,KADX,EAEE,SAAS,CAAE,KAAKM,KAAL,CAAWD,SAFxB,CAGE,GAAG,CAAE,KAAKL,KAAL,CAAWU,KAHlB,kDADF,CAOD,CAlCkD,0CACVhB,KAAK,CAACI,SADI,EAC/CC,4BAD+C,CAE5CY,WAF4C,yBAEPb,SAAS,CAACa,WAAV,EAC1Cb,SAAS,CAACc,IAHuC,MAqCrD,MAAOjB,CAAAA,YAAY,CACjBC,cAAc,CAACG,4BAAD,CAA+B,CAAEc,UAAU,CAAE,KAAd,CAA/B,CADG,CAEjBf,SAFiB,CAAnB,CAID","sourcesContent":["import React from 'react';\nimport hoistStatics from 'hoist-non-react-statics';\nimport withNavigation from './withNavigation';\n\nexport default function withNavigationFocus(Component) {\n class ComponentWithNavigationFocus extends React.Component {\n static displayName = `withNavigationFocus(${Component.displayName ||\n Component.name})`;\n\n constructor(props) {\n super(props);\n\n this.subscriptions = [\n props.navigation.addListener('didFocus', () =>\n this.setState({ isFocused: true })\n ),\n props.navigation.addListener('willBlur', () =>\n this.setState({ isFocused: false })\n ),\n ];\n\n this.state = {\n isFocused: props.navigation ? props.navigation.isFocused() : false,\n };\n }\n\n componentWillUnmount() {\n this.subscriptions.forEach(sub => sub.remove());\n }\n\n render() {\n return (\n \n );\n }\n }\n\n return hoistStatics(\n withNavigation(ComponentWithNavigationFocus, { forwardRef: false }),\n Component\n );\n}\n"]}
+\ No newline at end of file
++{"version":3,"sources":["withNavigationFocus.js"],"names":["React","hoistStatics","withNavigation","withNavigationFocus","Component","ComponentWithNavigationFocus","props","subscriptions","navigation","addListener","setState","isFocused","state","forEach","sub","remove","onRef","displayName","name","forwardRef"],"mappings":"2eAAA,MAAOA,CAAAA,KAAP,KAAkB,OAAlB,CACA,MAAOC,CAAAA,YAAP,KAAyB,yBAAzB,CACA,MAAOC,CAAAA,cAAP,KAA2B,kBAA3B,CAEA,cAAe,SAASC,CAAAA,mBAAT,CAA6BC,SAA7B,CAAwC,IAC/CC,CAAAA,4BAD+C,qFAKnD,sCAAYC,KAAZ,CAAmB,8DACjB,8FAAMA,KAAN,GAEA,MAAKC,aAAL,CAAqB,CACnBD,KAAK,CAACE,UAAN,CAAiBC,WAAjB,CAA6B,UAA7B,CAAyC,iBACvC,OAAKC,QAAL,CAAc,CAAEC,SAAS,CAAE,IAAb,CAAd,CADuC,EAAzC,CADmB,CAInBL,KAAK,CAACE,UAAN,CAAiBC,WAAjB,CAA6B,UAA7B,CAAyC,iBACvC,OAAKC,QAAL,CAAc,CAAEC,SAAS,CAAE,KAAb,CAAd,CADuC,EAAzC,CAJmB,CAArB,CASA,MAAKC,KAAL,CAAa,CACXD,SAAS,CAAEL,KAAK,CAACE,UAAN,CAAmBF,KAAK,CAACE,UAAN,CAAiBG,SAAjB,EAAnB,CAAkD,KADlD,CAAb,CAZiB,aAelB,CApBkD,4GAsB5B,CACrB,KAAKJ,aAAL,CAAmBM,OAAnB,CAA2B,SAAAC,GAAG,QAAIA,CAAAA,GAAG,CAACC,MAAJ,EAAJ,EAA9B,EACD,CAxBkD,uCA0B1C,CACP,MACE,qBAAC,SAAD,aACM,KAAKT,KADX,EAEE,SAAS,CAAE,KAAKM,KAAL,CAAWD,SAFxB,CAGE,GAAG,CAAE,KAAKL,KAAL,CAAWU,KAHlB,kDADF,CAOD,CAlCkD,0CACVhB,KAAK,CAACI,SADI,EAC/CC,4BAD+C,CAE5CY,WAF4C,yBAEPb,SAAS,CAACa,WAAV,EAC1Cb,SAAS,CAACc,IAHuC,MAqCrD,MAAOjB,CAAAA,YAAY,CACjBC,cAAc,CAACG,4BAAD,CAA+B,CAAEc,UAAU,CAAE,KAAd,CAA/B,CADG,CAEjBf,SAFiB,CAAnB,CAID","sourcesContent":["import React from 'react';\nimport hoistStatics from 'hoist-non-react-statics';\nimport withNavigation from './withNavigation';\n\nexport default function withNavigationFocus(Component) {\n class ComponentWithNavigationFocus extends React.Component {\n static displayName = `withNavigationFocus(${Component.displayName ||\n Component.name})`;\n\n constructor(props) {\n super(props);\n\n this.subscriptions = [\n props.navigation.addListener('didFocus', () =>\n this.setState({ isFocused: true })\n ),\n props.navigation.addListener('willBlur', () =>\n this.setState({ isFocused: false })\n ),\n ];\n\n this.state = {\n isFocused: props.navigation ? props.navigation.isFocused() : false,\n };\n }\n\n componentWillUnmount() {\n this.subscriptions.forEach(sub => sub.remove());\n }\n\n render() {\n return (\n \n );\n }\n }\n\n return hoistStatics(\n withNavigation(ComponentWithNavigationFocus, { forwardRef: false }),\n Component\n );\n}\n"]}
+\ No newline at end of file