diff --git a/twopane-navigation/packages/example/App.tsx b/twopane-navigation/packages/example/App.tsx index 64b4fdd..ca0a3fe 100644 --- a/twopane-navigation/packages/example/App.tsx +++ b/twopane-navigation/packages/example/App.tsx @@ -9,115 +9,18 @@ */ import React from 'react'; -import { - SafeAreaView, - StyleSheet, - ScrollView, - View, - Text, - StatusBar, - Button, -} from 'react-native'; -import { - Header, - LearnMoreLinks, - Colors, - DebugInstructions, - ReloadInstructions, -} from 'react-native/Libraries/NewAppScreen'; +import {TwoPaneApp, ITwoPaneAppProps} from "twopane-navigation"; -declare const global: {HermesInternal: null | {}}; - -import { autoScreen } from "twopane-navigation" const App = () => { return ( - <> - - - -
- {global.HermesInternal == null ? null : ( - - Engine: Hermes - - )} - - - - - Edit App.tsx to change - this screen and then come back to see your edits. - - - - See Your Changes - - - - - - Debug - - - - - - Learn More - - Read the docs to discover what to do next: - - - - - - - ); }; -const styles = StyleSheet.create({ - scrollView: { - backgroundColor: Colors.lighter, - }, - engine: { - position: 'absolute', - right: 0, - }, - body: { - backgroundColor: Colors.white, - }, - sectionContainer: { - marginTop: 32, - paddingHorizontal: 24, - }, - sectionTitle: { - fontSize: 24, - fontWeight: '600', - color: Colors.black, - }, - sectionDescription: { - marginTop: 8, - fontSize: 18, - fontWeight: '400', - color: Colors.dark, - }, - highlight: { - fontWeight: '700', - }, - footer: { - color: Colors.dark, - fontSize: 12, - fontWeight: '600', - padding: 4, - paddingRight: 12, - textAlign: 'right', - }, -}); +const TwoPaneAppDefaultComponents: ITwoPaneAppProps +{ + onePaneScreen: { + } +} export default App; diff --git a/twopane-navigation/packages/twopane-navigation/ReadME.md b/twopane-navigation/packages/twopane-navigation/ReadME.md index 0505772..b19e1c1 100644 --- a/twopane-navigation/packages/twopane-navigation/ReadME.md +++ b/twopane-navigation/packages/twopane-navigation/ReadME.md @@ -11,7 +11,7 @@ This library was built with the idea to work side by side with the react-navigat ## Getting started -The Dual Navigation library is built around the core concept of viewing each screen on your multi-screen device as its own stack (LIFO) like system and rendering the very top element of said stack as the current page for the user to see. +The TWO Navigation library is built around the core concept of viewing each screen on your multi-screen device as its own stack (LIFO) like system and rendering the very top element of said stack as the current page for the user to see. This can be seen by the picture below ![stack Example](docs/stackExample.png) @@ -20,64 +20,64 @@ This can be seen by the picture below coming soon -### Hello Dual Navigation +### Hello TWO Navigation -- **Dual App** is a component that must be the base for your React Native application and has the following properites +- **TWO App** is a component that must be the base for your React Native application and has the following properites - - singleScreen - this will be the base screen you want to show when in single mode + - onePane - this will be the base screen you want to show when in ONE mode - - dualScreen - this will be the base screen you want to show when in dual mode with the singleScreen showing on the other available screen + - twoPane - this will be the base screen you want to show when in TWO mode with the onePane showing on the other available screen - navigationContainer? - AppContainer if using React Navigation -![DualApp Example](docs/DualApp.png) +![TWOApp Example](docs/TWOApp.png) -Now with our Dual App set up if we open up our app with only one active screen we will see. +Now with our TWO App set up if we open up our app with only one active screen we will see. -![singleScreen Example](docs/SingleScreenExample.png) +![onePane Example](docs/onePaneExample.png) And now if we extend our application to make use of our multi screens we will see -![dualScreen Example](docs/DualScreenExample.png) -\*notice how the singleScreen is now showing in the first panel as its own seperate entity +![twoPane Example](docs/twoPaneExample.png) +\*notice how the onePane is now showing in the first panel as its own seperate entity ### Fundamentals #### Navigating Screens -Now with our Dual App set up we can finally start navigating. +Now with our TWO App set up we can finally start navigating. To navigate between screens we have a variety of built-in methods you can call. For purpose of this demonstration we will be introducing you to the core methods you will use during your development journey. ##### Moving Forward -- (single | dual | auto)screen.Add(element: IScreenComponent) - Push a new screen to the stack of your choosing +- (ONE | TWO | auto)screen.Add(element: IPaneComponent) - Push a new screen to the stack of your choosing - - For this example we will be pushing to the dual screen if both screens are active or we will be pushing to the single screen if only using one screen + - For this example we will be pushing to the TWO screen if both screens are active or we will be pushing to the ONE screen if only using one screen - ![dualScreen Example](docs/addingScreenExample.png) + ![twoPane Example](docs/addingScreenExample.png) - - Now if we run our application in dual mode we will see that we have only pushed the new screen to the dualStack + - Now if we run our application in TWO mode we will see that we have only pushed the new screen to the TWOStack - ![dualScreenView Example](docs/addingScreenViewExample.png) + ![twoPaneView Example](docs/addingScreenViewExample.png) ##### Going Back -The header provided by Dual Navigator automatically includes a back button when it is possible to go back from the current screen(if there is only one screen in the stack, there is nothing that you can go back to, and so there is no back button) +The header provided by TWO Navigator automatically includes a back button when it is possible to go back from the current screen(if there is only one screen in the stack, there is nothing that you can go back to, and so there is no back button) If you want to programmatically go back we give you the power by calling -- (single | dual | auto)Screen.GoBack() - go back one element in the stack of your choosing +- (ONE | TWO | auto)Screen.GoBack() - go back one element in the stack of your choosing ![goBack Example](docs/GoBackExample.png) If you have multiple screens in the stack and would like to go back to the very first screen in your stack(defaultScreen) you can call -- (single | dual | auto)Screen.BackToHome() - go back to the base element of the stack +- (ONE | TWO | auto)Screen.BackToHome() - go back to the base element of the stack ![goBackToHome Example](docs/BackToHomeExample.png) ##### React Navigation -To use React Navigation with the Dual Navigation library is very simple. -create all the StackNavigators,SwitchNavigators,DrawerNavigators,etc... and pass the appContainer into the navigationContainer prop in our DualApp Component. After that you can access the navigation/route objects with the useNavigation/useRoute hooks. +To use React Navigation with the TWO Navigation library is very simple. +create all the StackNavigators,SwitchNavigators,DrawerNavigators,etc... and pass the appContainer into the navigationContainer prop in our TWOApp Component. After that you can access the navigation/route objects with the useNavigation/useRoute hooks. - In the example we are opening a DrawerNavigator on icon press ![NavigationService Example](docs/navigationReferenceExample.PNG) @@ -90,13 +90,13 @@ Coming Soon #### Screen Merging -when you want to keep screens through screen transition from single screen to dual screen mode you need to mark the screens you want as mergeable. +when you want to keep screens through screen transition from ONE screen to TWO screen mode you need to mark the screens you want as mergeable. to do this is very simple, simply mark isMerge = true when you add your screen to the stack.(defaulted to false) ![ScreenMerge Code Example](docs/ScreenMergeCodeExample.PNG) -now when we start with a dual screen application and move it to single screen we can easily transition and keep our previous screen +now when we start with a TWO screen application and move it to ONE screen we can easily transition and keep our previous screen ![ScreenMerge Example](docs/addingScreenViewExample.png) ![ScreenMerge Example](docs/ScreenMergeExample.png) @@ -118,31 +118,31 @@ how to use #### Screens -singleScreen- will call every action specifically for the singleScreen stack +onePane- will call every action specifically for the onePane stack -dualScreen - will call every action specifically for the dualScreen stack +twoPane - will call every action specifically for the twoPane stack -autoScreen - will check to see if the user is currently in singleScreen or DualScreen mode, +autoPane - will check to see if the user is currently in onePane or twoPane mode, and will call the appropriate action the current modes stack. - Example: - If in singleScreen mode will call an action only to the single screen stack. + If in onePane mode will call an action only to the ONE screen stack. - If in dualScreen mode will call an action only to the dual screen stack + If in twoPane mode will call an action only to the TWO screen stack #### Methods -- (single | dual | auto)Screen.Add - Pushes element to the top of the stack +- (ONE | TWO | auto)Screen.Add - Pushes element to the top of the stack -- (single | dual | auto)Screen.AddOrMoveToFront - Automatically pushes element to the top of stack or if the key is already in the stack,move that key to the top of the stack based on screen size +- (ONE | TWO | auto)Screen.AddOrMoveToFront - Automatically pushes element to the top of stack or if the key is already in the stack,move that key to the top of the stack based on screen size -- (single | dual | auto)Screen.BackToHome - Removes all elements of the stack and returns the base element of the stack +- (ONE | TWO | auto)Screen.BackToHome - Removes all elements of the stack and returns the base element of the stack -- (single | dual | auto)Screen.GoBack - Go back one element in the stack +- (ONE | TWO | auto)Screen.GoBack - Go back one element in the stack -- (single | dual | auto)Screen.ReplaceScreen - Replace the default element for this component +- (ONE | TWO | auto)Screen.ReplaceScreen - Replace the default element for this component -- (single | dual | auto)Screen.ReplaceHeader - Replace the default header for this component +- (ONE | TWO | auto)Screen.ReplaceHeader - Replace the default header for this component #### Hooks diff --git a/twopane-navigation/packages/twopane-navigation/coverage/clover.xml b/twopane-navigation/packages/twopane-navigation/coverage/clover.xml index 24493c3..1dd77a1 100644 --- a/twopane-navigation/packages/twopane-navigation/coverage/clover.xml +++ b/twopane-navigation/packages/twopane-navigation/coverage/clover.xml @@ -1,10 +1,10 @@ - - + + - + - + @@ -18,9 +18,9 @@ - + - + @@ -29,7 +29,7 @@ - + @@ -44,21 +44,21 @@ - + - + - + - + @@ -66,9 +66,9 @@ - + - + @@ -79,7 +79,7 @@ - + @@ -114,12 +114,12 @@ - + - + @@ -129,9 +129,9 @@ - + - + @@ -147,9 +147,9 @@ - + - + @@ -158,7 +158,7 @@ - + @@ -173,21 +173,21 @@ - + - + - + - + @@ -195,21 +195,21 @@ - + - + - + - + @@ -217,29 +217,85 @@ - + - - - - - - - - - - - - - + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -261,106 +317,9 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -399,9 +358,50 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -438,17 +438,17 @@ - + - + - + diff --git a/twopane-navigation/packages/twopane-navigation/coverage/coverage-final.json b/twopane-navigation/packages/twopane-navigation/coverage/coverage-final.json index 2d62a58..301bd53 100644 --- a/twopane-navigation/packages/twopane-navigation/coverage/coverage-final.json +++ b/twopane-navigation/packages/twopane-navigation/coverage/coverage-final.json @@ -1,36 +1,36 @@ -{"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\appStore.ts": {"path":"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\appStore.ts","statementMap":{"0":{"start":{"line":10,"column":0},"end":{"line":10,"column":40}},"1":{"start":{"line":12,"column":20},"end":{"line":17,"column":2}},"2":{"start":{"line":20,"column":26},"end":{"line":20,"column":37}},"3":{"start":{"line":27,"column":20},"end":{"line":35,"column":1}},"4":{"start":{"line":28,"column":2},"end":{"line":34,"column":3}},"5":{"start":{"line":30,"column":6},"end":{"line":30,"column":24}},"6":{"start":{"line":31,"column":6},"end":{"line":31,"column":40}},"7":{"start":{"line":33,"column":6},"end":{"line":33,"column":40}},"8":{"start":{"line":39,"column":24},"end":{"line":41,"column":2}},"9":{"start":{"line":39,"column":42},"end":{"line":41,"column":1}},"10":{"start":{"line":43,"column":21},"end":{"line":43,"column":45}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":27,"column":20},"end":{"line":27,"column":21}},"loc":{"start":{"line":27,"column":49},"end":{"line":35,"column":1}},"line":27},"1":{"name":"(anonymous_1)","decl":{"start":{"line":39,"column":24},"end":{"line":39,"column":25}},"loc":{"start":{"line":39,"column":42},"end":{"line":41,"column":1}},"line":39}},"branchMap":{"0":{"loc":{"start":{"line":28,"column":2},"end":{"line":34,"column":3}},"type":"switch","locations":[{"start":{"line":29,"column":4},"end":{"line":31,"column":40}},{"start":{"line":32,"column":4},"end":{"line":33,"column":40}}],"line":28}},"s":{"0":8,"1":8,"2":8,"3":8,"4":325,"5":36,"6":36,"7":289,"8":8,"9":36,"10":8},"f":{"0":325,"1":36},"b":{"0":[36,289]},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"80f899e71269ba795b9d9f40628ce100b7dc1e92"} -,"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\Shared\\screenStore\\headerStore\\header.actions.ts": {"path":"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\Shared\\screenStore\\headerStore\\header.actions.ts","statementMap":{"0":{"start":{"line":5,"column":26},"end":{"line":14,"column":2}},"1":{"start":{"line":8,"column":21},"end":{"line":14,"column":1}},"2":{"start":{"line":16,"column":29},"end":{"line":25,"column":2}},"3":{"start":{"line":19,"column":21},"end":{"line":25,"column":1}},"4":{"start":{"line":27,"column":33},"end":{"line":34,"column":2}},"5":{"start":{"line":29,"column":22},"end":{"line":34,"column":1}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":5,"column":26},"end":{"line":5,"column":27}},"loc":{"start":{"line":8,"column":21},"end":{"line":14,"column":1}},"line":8},"1":{"name":"(anonymous_1)","decl":{"start":{"line":16,"column":29},"end":{"line":16,"column":30}},"loc":{"start":{"line":19,"column":21},"end":{"line":25,"column":1}},"line":19},"2":{"name":"(anonymous_2)","decl":{"start":{"line":27,"column":33},"end":{"line":27,"column":34}},"loc":{"start":{"line":29,"column":22},"end":{"line":34,"column":1}},"line":29}},"branchMap":{},"s":{"0":5,"1":26,"2":5,"3":10,"4":5,"5":18},"f":{"0":26,"1":10,"2":18},"b":{},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"3b941ec6d8d483b6c0080119da2105afdf64b1dc"} -,"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\Shared\\screenStore\\headerStore\\header.reducer.ts": {"path":"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\Shared\\screenStore\\headerStore\\header.reducer.ts","statementMap":{"0":{"start":{"line":6,"column":35},"end":{"line":8,"column":1}},"1":{"start":{"line":10,"column":22},"end":{"line":46,"column":1}},"2":{"start":{"line":14,"column":4},"end":{"line":45,"column":5}},"3":{"start":{"line":16,"column":12},"end":{"line":22,"column":14}},"4":{"start":{"line":25,"column":27},"end":{"line":25,"column":62}},"5":{"start":{"line":26,"column":12},"end":{"line":28,"column":13}},"6":{"start":{"line":27,"column":16},"end":{"line":27,"column":36}},"7":{"start":{"line":29,"column":12},"end":{"line":35,"column":14}},"8":{"start":{"line":39,"column":28},"end":{"line":39,"column":33}},"9":{"start":{"line":40,"column":12},"end":{"line":40,"column":55}},"10":{"start":{"line":41,"column":12},"end":{"line":41,"column":33}},"11":{"start":{"line":44,"column":12},"end":{"line":44,"column":25}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":10,"column":22},"end":{"line":10,"column":23}},"loc":{"start":{"line":13,"column":19},"end":{"line":46,"column":1}},"line":13}},"branchMap":{"0":{"loc":{"start":{"line":11,"column":4},"end":{"line":11,"column":38}},"type":"default-arg","locations":[{"start":{"line":11,"column":26},"end":{"line":11,"column":38}}],"line":11},"1":{"loc":{"start":{"line":14,"column":4},"end":{"line":45,"column":5}},"type":"switch","locations":[{"start":{"line":15,"column":8},"end":{"line":23,"column":9}},{"start":{"line":24,"column":8},"end":{"line":36,"column":9}},{"start":{"line":37,"column":8},"end":{"line":42,"column":9}},{"start":{"line":43,"column":8},"end":{"line":44,"column":25}}],"line":14},"2":{"loc":{"start":{"line":26,"column":12},"end":{"line":28,"column":13}},"type":"if","locations":[{"start":{"line":26,"column":12},"end":{"line":28,"column":13}},{"start":{"line":26,"column":12},"end":{"line":28,"column":13}}],"line":26}},"s":{"0":8,"1":8,"2":341,"3":26,"4":10,"5":10,"6":5,"7":5,"8":18,"9":18,"10":18,"11":287},"f":{"0":341},"b":{"0":[60],"1":[26,10,18,287],"2":[5,5]},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"32700d448314dce5283cbf743eb393970336c109"} -,"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\Shared\\screenStore\\headerStore\\header.selector.ts": {"path":"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\Shared\\screenStore\\headerStore\\header.selector.ts","statementMap":{"0":{"start":{"line":5,"column":33},"end":{"line":7,"column":1}},"1":{"start":{"line":6,"column":4},"end":{"line":6,"column":72}},"2":{"start":{"line":6,"column":51},"end":{"line":6,"column":70}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":5,"column":33},"end":{"line":5,"column":34}},"loc":{"start":{"line":5,"column":53},"end":{"line":7,"column":1}},"line":5},"1":{"name":"(anonymous_1)","decl":{"start":{"line":6,"column":23},"end":{"line":6,"column":24}},"loc":{"start":{"line":6,"column":51},"end":{"line":6,"column":70}},"line":6}},"branchMap":{},"s":{"0":1,"1":2,"2":11},"f":{"0":2,"1":11},"b":{},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"907b05e9debba71d93db14a757802daf4f736593"} -,"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\Shared\\screenStore\\headerStore\\header.types.ts": {"path":"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\Shared\\screenStore\\headerStore\\header.types.ts","statementMap":{"0":{"start":{"line":1,"column":35},"end":{"line":1,"column":48}},"1":{"start":{"line":3,"column":38},"end":{"line":3,"column":54}},"2":{"start":{"line":5,"column":41},"end":{"line":5,"column":60}}},"fnMap":{},"branchMap":{},"s":{"0":8,"1":8,"2":8},"f":{},"b":{},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"caf864f8ebd532d88cea7bde98e7c115c3dd2168"} -,"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\Shared\\screenStore\\headerStore\\tests\\header.methods.helpers.tsx": {"path":"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\Shared\\screenStore\\headerStore\\tests\\header.methods.helpers.tsx","statementMap":{"0":{"start":{"line":3,"column":35},"end":{"line":11,"column":1}},"1":{"start":{"line":4,"column":4},"end":{"line":10,"column":5}},"2":{"start":{"line":13,"column":35},"end":{"line":17,"column":1}},"3":{"start":{"line":14,"column":4},"end":{"line":16,"column":5}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":3,"column":35},"end":{"line":3,"column":36}},"loc":{"start":{"line":3,"column":98},"end":{"line":11,"column":1}},"line":3},"1":{"name":"(anonymous_1)","decl":{"start":{"line":13,"column":35},"end":{"line":13,"column":36}},"loc":{"start":{"line":13,"column":84},"end":{"line":17,"column":1}},"line":13}},"branchMap":{},"s":{"0":3,"1":4,"2":3,"3":4},"f":{"0":4,"1":4},"b":{},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"3db9966edafdf5141ce46d9b8ab9f1c0af19fb59"} -,"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\Shared\\screenStore\\keyStore\\key.actions.ts": {"path":"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\Shared\\screenStore\\keyStore\\key.actions.ts","statementMap":{"0":{"start":{"line":5,"column":23},"end":{"line":16,"column":2}},"1":{"start":{"line":9,"column":18},"end":{"line":16,"column":1}},"2":{"start":{"line":21,"column":26},"end":{"line":26,"column":2}},"3":{"start":{"line":21,"column":70},"end":{"line":26,"column":1}},"4":{"start":{"line":32,"column":25},"end":{"line":37,"column":2}},"5":{"start":{"line":32,"column":69},"end":{"line":37,"column":1}},"6":{"start":{"line":39,"column":27},"end":{"line":47,"column":2}},"7":{"start":{"line":41,"column":24},"end":{"line":47,"column":1}},"8":{"start":{"line":49,"column":28},"end":{"line":57,"column":2}},"9":{"start":{"line":51,"column":24},"end":{"line":57,"column":1}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":5,"column":23},"end":{"line":5,"column":24}},"loc":{"start":{"line":9,"column":18},"end":{"line":16,"column":1}},"line":9},"1":{"name":"(anonymous_1)","decl":{"start":{"line":21,"column":26},"end":{"line":21,"column":27}},"loc":{"start":{"line":21,"column":70},"end":{"line":26,"column":1}},"line":21},"2":{"name":"(anonymous_2)","decl":{"start":{"line":32,"column":25},"end":{"line":32,"column":26}},"loc":{"start":{"line":32,"column":69},"end":{"line":37,"column":1}},"line":32},"3":{"name":"(anonymous_3)","decl":{"start":{"line":39,"column":27},"end":{"line":39,"column":28}},"loc":{"start":{"line":41,"column":24},"end":{"line":47,"column":1}},"line":41},"4":{"name":"(anonymous_4)","decl":{"start":{"line":49,"column":28},"end":{"line":49,"column":29}},"loc":{"start":{"line":51,"column":24},"end":{"line":57,"column":1}},"line":51}},"branchMap":{},"s":{"0":5,"1":118,"2":5,"3":8,"4":5,"5":18,"6":5,"7":10,"8":5,"9":8},"f":{"0":118,"1":8,"2":18,"3":10,"4":8},"b":{},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"63b622a99645575c8dcc9d80374503a4ec52d2e7"} -,"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\Shared\\screenStore\\keyStore\\key.reducer.ts": {"path":"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\Shared\\screenStore\\keyStore\\key.reducer.ts","statementMap":{"0":{"start":{"line":8,"column":32},"end":{"line":10,"column":1}},"1":{"start":{"line":12,"column":20},"end":{"line":93,"column":1}},"2":{"start":{"line":16,"column":4},"end":{"line":92,"column":5}},"3":{"start":{"line":18,"column":42},"end":{"line":22,"column":13}},"4":{"start":{"line":23,"column":12},"end":{"line":26,"column":14}},"5":{"start":{"line":29,"column":38},"end":{"line":29,"column":92}},"6":{"start":{"line":29,"column":61},"end":{"line":29,"column":91}},"7":{"start":{"line":30,"column":36},"end":{"line":30,"column":88}},"8":{"start":{"line":30,"column":59},"end":{"line":30,"column":87}},"9":{"start":{"line":32,"column":12},"end":{"line":37,"column":13}},"10":{"start":{"line":33,"column":16},"end":{"line":36,"column":18}},"11":{"start":{"line":39,"column":12},"end":{"line":42,"column":14}},"12":{"start":{"line":45,"column":38},"end":{"line":45,"column":92}},"13":{"start":{"line":45,"column":61},"end":{"line":45,"column":91}},"14":{"start":{"line":46,"column":36},"end":{"line":46,"column":88}},"15":{"start":{"line":46,"column":59},"end":{"line":46,"column":87}},"16":{"start":{"line":48,"column":12},"end":{"line":52,"column":13}},"17":{"start":{"line":49,"column":16},"end":{"line":49,"column":40}},"18":{"start":{"line":51,"column":16},"end":{"line":51,"column":38}},"19":{"start":{"line":54,"column":12},"end":{"line":57,"column":14}},"20":{"start":{"line":61,"column":38},"end":{"line":61,"column":92}},"21":{"start":{"line":61,"column":61},"end":{"line":61,"column":91}},"22":{"start":{"line":62,"column":36},"end":{"line":62,"column":88}},"23":{"start":{"line":62,"column":59},"end":{"line":62,"column":87}},"24":{"start":{"line":64,"column":12},"end":{"line":73,"column":13}},"25":{"start":{"line":65,"column":31},"end":{"line":67,"column":18}},"26":{"start":{"line":66,"column":20},"end":{"line":66,"column":72}},"27":{"start":{"line":69,"column":16},"end":{"line":72,"column":18}},"28":{"start":{"line":75,"column":27},"end":{"line":77,"column":14}},"29":{"start":{"line":76,"column":16},"end":{"line":76,"column":68}},"30":{"start":{"line":79,"column":12},"end":{"line":82,"column":14}},"31":{"start":{"line":85,"column":12},"end":{"line":88,"column":14}},"32":{"start":{"line":91,"column":12},"end":{"line":91,"column":25}},"33":{"start":{"line":96,"column":4},"end":{"line":112,"column":6}},"34":{"start":{"line":97,"column":8},"end":{"line":100,"column":9}},"35":{"start":{"line":99,"column":12},"end":{"line":99,"column":23}},"36":{"start":{"line":101,"column":40},"end":{"line":105,"column":9}},"37":{"start":{"line":108,"column":8},"end":{"line":111,"column":9}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":12,"column":20},"end":{"line":12,"column":21}},"loc":{"start":{"line":15,"column":16},"end":{"line":93,"column":1}},"line":15},"1":{"name":"(anonymous_1)","decl":{"start":{"line":29,"column":56},"end":{"line":29,"column":57}},"loc":{"start":{"line":29,"column":61},"end":{"line":29,"column":91}},"line":29},"2":{"name":"(anonymous_2)","decl":{"start":{"line":30,"column":54},"end":{"line":30,"column":55}},"loc":{"start":{"line":30,"column":59},"end":{"line":30,"column":87}},"line":30},"3":{"name":"(anonymous_3)","decl":{"start":{"line":45,"column":56},"end":{"line":45,"column":57}},"loc":{"start":{"line":45,"column":61},"end":{"line":45,"column":91}},"line":45},"4":{"name":"(anonymous_4)","decl":{"start":{"line":46,"column":54},"end":{"line":46,"column":55}},"loc":{"start":{"line":46,"column":59},"end":{"line":46,"column":87}},"line":46},"5":{"name":"(anonymous_5)","decl":{"start":{"line":61,"column":56},"end":{"line":61,"column":57}},"loc":{"start":{"line":61,"column":61},"end":{"line":61,"column":91}},"line":61},"6":{"name":"(anonymous_6)","decl":{"start":{"line":62,"column":54},"end":{"line":62,"column":55}},"loc":{"start":{"line":62,"column":59},"end":{"line":62,"column":87}},"line":62},"7":{"name":"(anonymous_7)","decl":{"start":{"line":65,"column":59},"end":{"line":65,"column":60}},"loc":{"start":{"line":65,"column":75},"end":{"line":67,"column":17}},"line":65},"8":{"name":"(anonymous_8)","decl":{"start":{"line":75,"column":53},"end":{"line":75,"column":54}},"loc":{"start":{"line":75,"column":69},"end":{"line":77,"column":13}},"line":75},"9":{"name":"updateObjectInArray","decl":{"start":{"line":95,"column":9},"end":{"line":95,"column":28}},"loc":{"start":{"line":95,"column":69},"end":{"line":113,"column":1}},"line":95},"10":{"name":"(anonymous_10)","decl":{"start":{"line":96,"column":20},"end":{"line":96,"column":21}},"loc":{"start":{"line":96,"column":30},"end":{"line":112,"column":5}},"line":96}},"branchMap":{"0":{"loc":{"start":{"line":13,"column":4},"end":{"line":13,"column":35}},"type":"default-arg","locations":[{"start":{"line":13,"column":23},"end":{"line":13,"column":35}}],"line":13},"1":{"loc":{"start":{"line":16,"column":4},"end":{"line":92,"column":5}},"type":"switch","locations":[{"start":{"line":17,"column":8},"end":{"line":27,"column":9}},{"start":{"line":28,"column":8},"end":{"line":43,"column":9}},{"start":{"line":44,"column":8},"end":{"line":58,"column":9}},{"start":{"line":59,"column":8},"end":{"line":83,"column":9}},{"start":{"line":84,"column":8},"end":{"line":89,"column":9}},{"start":{"line":90,"column":8},"end":{"line":91,"column":25}}],"line":16},"2":{"loc":{"start":{"line":32,"column":12},"end":{"line":37,"column":13}},"type":"if","locations":[{"start":{"line":32,"column":12},"end":{"line":37,"column":13}},{"start":{"line":32,"column":12},"end":{"line":37,"column":13}}],"line":32},"3":{"loc":{"start":{"line":48,"column":12},"end":{"line":52,"column":13}},"type":"if","locations":[{"start":{"line":48,"column":12},"end":{"line":52,"column":13}},{"start":{"line":48,"column":12},"end":{"line":52,"column":13}}],"line":48},"4":{"loc":{"start":{"line":64,"column":12},"end":{"line":73,"column":13}},"type":"if","locations":[{"start":{"line":64,"column":12},"end":{"line":73,"column":13}},{"start":{"line":64,"column":12},"end":{"line":73,"column":13}}],"line":64},"5":{"loc":{"start":{"line":66,"column":27},"end":{"line":66,"column":71}},"type":"cond-expr","locations":[{"start":{"line":66,"column":66},"end":{"line":66,"column":67}},{"start":{"line":66,"column":70},"end":{"line":66,"column":71}}],"line":66},"6":{"loc":{"start":{"line":76,"column":23},"end":{"line":76,"column":67}},"type":"cond-expr","locations":[{"start":{"line":76,"column":62},"end":{"line":76,"column":63}},{"start":{"line":76,"column":66},"end":{"line":76,"column":67}}],"line":76},"7":{"loc":{"start":{"line":97,"column":8},"end":{"line":100,"column":9}},"type":"if","locations":[{"start":{"line":97,"column":8},"end":{"line":100,"column":9}},{"start":{"line":97,"column":8},"end":{"line":100,"column":9}}],"line":97}},"s":{"0":8,"1":8,"2":341,"3":118,"4":118,"5":8,"6":38,"7":8,"8":38,"9":8,"10":4,"11":4,"12":18,"13":74,"14":18,"15":74,"16":18,"17":9,"18":9,"19":18,"20":10,"21":33,"22":10,"23":33,"24":10,"25":5,"26":14,"27":5,"28":5,"29":13,"30":5,"31":8,"32":179,"33":8,"34":36,"35":28,"36":8,"37":8},"f":{"0":341,"1":38,"2":38,"3":74,"4":74,"5":33,"6":33,"7":14,"8":13,"9":8,"10":36},"b":{"0":[60],"1":[118,8,18,10,8,179],"2":[4,4],"3":[9,9],"4":[5,5],"5":[6,8],"6":[5,8],"7":[28,8]},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"1886f22fdf89055a7b7ac92ffda610ea1e8fd083"} -,"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\Shared\\screenStore\\keyStore\\key.selector.ts": {"path":"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\Shared\\screenStore\\keyStore\\key.selector.ts","statementMap":{"0":{"start":{"line":5,"column":33},"end":{"line":7,"column":1}},"1":{"start":{"line":6,"column":4},"end":{"line":6,"column":70}},"2":{"start":{"line":6,"column":51},"end":{"line":6,"column":68}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":5,"column":33},"end":{"line":5,"column":34}},"loc":{"start":{"line":5,"column":50},"end":{"line":7,"column":1}},"line":5},"1":{"name":"(anonymous_1)","decl":{"start":{"line":6,"column":23},"end":{"line":6,"column":24}},"loc":{"start":{"line":6,"column":51},"end":{"line":6,"column":68}},"line":6}},"branchMap":{},"s":{"0":1,"1":2,"2":11},"f":{"0":2,"1":11},"b":{},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"93c93f3f60cf4420eeda5f8d9ab5251dfc83e9dd"} -,"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\Shared\\screenStore\\keyStore\\key.types.ts": {"path":"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\Shared\\screenStore\\keyStore\\key.types.ts","statementMap":{"0":{"start":{"line":1,"column":32},"end":{"line":1,"column":42}},"1":{"start":{"line":3,"column":40},"end":{"line":3,"column":58}},"2":{"start":{"line":5,"column":31},"end":{"line":5,"column":40}},"3":{"start":{"line":7,"column":41},"end":{"line":7,"column":54}},"4":{"start":{"line":9,"column":34},"end":{"line":9,"column":46}},"5":{"start":{"line":11,"column":41},"end":{"line":11,"column":60}}},"fnMap":{},"branchMap":{},"s":{"0":8,"1":8,"2":8,"3":8,"4":8,"5":8},"f":{},"b":{},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"275b8e138bc87ec1d26b6c0a93e0e77cae37b831"} -,"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\Shared\\screenStore\\keyStore\\tests\\key.methods.helpers.tsx": {"path":"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\Shared\\screenStore\\keyStore\\tests\\key.methods.helpers.tsx","statementMap":{"0":{"start":{"line":6,"column":32},"end":{"line":15,"column":1}},"1":{"start":{"line":7,"column":4},"end":{"line":14,"column":5}},"2":{"start":{"line":20,"column":28},"end":{"line":27,"column":1}},"3":{"start":{"line":21,"column":18},"end":{"line":21,"column":73}},"4":{"start":{"line":22,"column":19},"end":{"line":22,"column":75}},"5":{"start":{"line":23,"column":18},"end":{"line":23,"column":73}},"6":{"start":{"line":24,"column":4},"end":{"line":26,"column":5}},"7":{"start":{"line":29,"column":32},"end":{"line":35,"column":1}},"8":{"start":{"line":30,"column":4},"end":{"line":34,"column":5}},"9":{"start":{"line":37,"column":33},"end":{"line":40,"column":1}},"10":{"start":{"line":38,"column":21},"end":{"line":38,"column":50}},"11":{"start":{"line":39,"column":4},"end":{"line":39,"column":98}},"12":{"start":{"line":39,"column":29},"end":{"line":39,"column":97}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":6,"column":32},"end":{"line":6,"column":33}},"loc":{"start":{"line":6,"column":113},"end":{"line":15,"column":1}},"line":6},"1":{"name":"(anonymous_1)","decl":{"start":{"line":20,"column":28},"end":{"line":20,"column":29}},"loc":{"start":{"line":20,"column":106},"end":{"line":27,"column":1}},"line":20},"2":{"name":"(anonymous_2)","decl":{"start":{"line":29,"column":32},"end":{"line":29,"column":33}},"loc":{"start":{"line":29,"column":99},"end":{"line":35,"column":1}},"line":29},"3":{"name":"(anonymous_3)","decl":{"start":{"line":37,"column":33},"end":{"line":37,"column":34}},"loc":{"start":{"line":37,"column":75},"end":{"line":40,"column":1}},"line":37},"4":{"name":"(anonymous_4)","decl":{"start":{"line":39,"column":22},"end":{"line":39,"column":23}},"loc":{"start":{"line":39,"column":29},"end":{"line":39,"column":97}},"line":39}},"branchMap":{"0":{"loc":{"start":{"line":20,"column":67},"end":{"line":20,"column":90}},"type":"default-arg","locations":[{"start":{"line":20,"column":88},"end":{"line":20,"column":90}}],"line":20}},"s":{"0":3,"1":8,"2":3,"3":40,"4":40,"5":40,"6":40,"7":3,"8":152,"9":3,"10":24,"11":24,"12":72},"f":{"0":8,"1":40,"2":152,"3":24,"4":72},"b":{"0":[26]},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"1caff645c29f6565a5bfe8246d5a25d3af786a9d"} -,"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\Shared\\screenStore\\twoPaneElementStore\\twoPaneElement.action.ts": {"path":"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\Shared\\screenStore\\twoPaneElementStore\\twoPaneElement.action.ts","statementMap":{"0":{"start":{"line":6,"column":27},"end":{"line":15,"column":2}},"1":{"start":{"line":9,"column":29},"end":{"line":15,"column":1}},"2":{"start":{"line":17,"column":37},"end":{"line":26,"column":2}},"3":{"start":{"line":20,"column":29},"end":{"line":26,"column":1}},"4":{"start":{"line":29,"column":41},"end":{"line":36,"column":2}},"5":{"start":{"line":31,"column":22},"end":{"line":36,"column":1}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":6,"column":27},"end":{"line":6,"column":28}},"loc":{"start":{"line":9,"column":29},"end":{"line":15,"column":1}},"line":9},"1":{"name":"(anonymous_1)","decl":{"start":{"line":17,"column":37},"end":{"line":17,"column":38}},"loc":{"start":{"line":20,"column":29},"end":{"line":26,"column":1}},"line":20},"2":{"name":"(anonymous_2)","decl":{"start":{"line":29,"column":41},"end":{"line":29,"column":42}},"loc":{"start":{"line":31,"column":22},"end":{"line":36,"column":1}},"line":31}},"branchMap":{},"s":{"0":5,"1":34,"2":5,"3":10,"4":5,"5":18},"f":{"0":34,"1":10,"2":18},"b":{},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"47d3a58e5ee017cc9450d21a115fd86f775c0593"} -,"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\Shared\\screenStore\\twoPaneElementStore\\twoPaneElement.reducer.ts": {"path":"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\Shared\\screenStore\\twoPaneElementStore\\twoPaneElement.reducer.ts","statementMap":{"0":{"start":{"line":5,"column":43},"end":{"line":7,"column":1}},"1":{"start":{"line":9,"column":30},"end":{"line":46,"column":1}},"2":{"start":{"line":13,"column":4},"end":{"line":45,"column":5}},"3":{"start":{"line":15,"column":12},"end":{"line":21,"column":14}},"4":{"start":{"line":24,"column":27},"end":{"line":24,"column":70}},"5":{"start":{"line":25,"column":12},"end":{"line":27,"column":13}},"6":{"start":{"line":26,"column":16},"end":{"line":26,"column":36}},"7":{"start":{"line":28,"column":12},"end":{"line":34,"column":14}},"8":{"start":{"line":39,"column":28},"end":{"line":39,"column":33}},"9":{"start":{"line":40,"column":12},"end":{"line":40,"column":63}},"10":{"start":{"line":41,"column":12},"end":{"line":41,"column":33}},"11":{"start":{"line":44,"column":12},"end":{"line":44,"column":25}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":9,"column":30},"end":{"line":9,"column":31}},"loc":{"start":{"line":12,"column":27},"end":{"line":46,"column":1}},"line":12}},"branchMap":{"0":{"loc":{"start":{"line":10,"column":4},"end":{"line":10,"column":46}},"type":"default-arg","locations":[{"start":{"line":10,"column":34},"end":{"line":10,"column":46}}],"line":10},"1":{"loc":{"start":{"line":13,"column":4},"end":{"line":45,"column":5}},"type":"switch","locations":[{"start":{"line":14,"column":8},"end":{"line":22,"column":9}},{"start":{"line":23,"column":8},"end":{"line":36,"column":9}},{"start":{"line":37,"column":8},"end":{"line":42,"column":9}},{"start":{"line":43,"column":8},"end":{"line":44,"column":25}}],"line":13},"2":{"loc":{"start":{"line":25,"column":12},"end":{"line":27,"column":13}},"type":"if","locations":[{"start":{"line":25,"column":12},"end":{"line":27,"column":13}},{"start":{"line":25,"column":12},"end":{"line":27,"column":13}}],"line":25}},"s":{"0":8,"1":8,"2":341,"3":34,"4":10,"5":10,"6":5,"7":5,"8":18,"9":18,"10":18,"11":279},"f":{"0":341},"b":{"0":[60],"1":[34,10,18,279],"2":[5,5]},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"66cba71c3db62c2a2b7fc44894cce96a2d56d7dc"} -,"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\Shared\\screenStore\\twoPaneElementStore\\twoPaneElement.selectors.ts": {"path":"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\Shared\\screenStore\\twoPaneElementStore\\twoPaneElement.selectors.ts","statementMap":{"0":{"start":{"line":5,"column":41},"end":{"line":7,"column":1}},"1":{"start":{"line":6,"column":4},"end":{"line":6,"column":80}},"2":{"start":{"line":6,"column":51},"end":{"line":6,"column":78}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":5,"column":41},"end":{"line":5,"column":42}},"loc":{"start":{"line":5,"column":69},"end":{"line":7,"column":1}},"line":5},"1":{"name":"(anonymous_1)","decl":{"start":{"line":6,"column":23},"end":{"line":6,"column":24}},"loc":{"start":{"line":6,"column":51},"end":{"line":6,"column":78}},"line":6}},"branchMap":{},"s":{"0":1,"1":2,"2":11},"f":{"0":2,"1":11},"b":{},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"be3153b583c81c071c1387ecfff7314594150d45"} -,"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\Shared\\screenStore\\twoPaneElementStore\\twoPaneElement.types.ts": {"path":"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\Shared\\screenStore\\twoPaneElementStore\\twoPaneElement.types.ts","statementMap":{"0":{"start":{"line":1,"column":44},"end":{"line":1,"column":66}},"1":{"start":{"line":3,"column":50},"end":{"line":3,"column":78}},"2":{"start":{"line":5,"column":47},"end":{"line":5,"column":72}}},"fnMap":{},"branchMap":{},"s":{"0":8,"1":8,"2":8},"f":{},"b":{},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"17ed66b4641758970e2649a7e889359bcb43de85"} -,"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\Shared\\screenStore\\twoPaneElementStore\\tests\\twoPaneElement.methods.helpers.tsx": {"path":"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\Shared\\screenStore\\twoPaneElementStore\\tests\\twoPaneElement.methods.helpers.tsx","statementMap":{"0":{"start":{"line":4,"column":43},"end":{"line":12,"column":1}},"1":{"start":{"line":5,"column":4},"end":{"line":11,"column":5}},"2":{"start":{"line":16,"column":43},"end":{"line":20,"column":1}},"3":{"start":{"line":17,"column":4},"end":{"line":19,"column":5}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":4,"column":43},"end":{"line":4,"column":44}},"loc":{"start":{"line":4,"column":133},"end":{"line":12,"column":1}},"line":4},"1":{"name":"(anonymous_1)","decl":{"start":{"line":16,"column":43},"end":{"line":16,"column":44}},"loc":{"start":{"line":16,"column":113},"end":{"line":20,"column":1}},"line":16}},"branchMap":{},"s":{"0":3,"1":8,"2":3,"3":4},"f":{"0":8,"1":4},"b":{},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"c397e4d272a47f1d31ff6cff42399070da4449aa"} -,"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\Shared\\utilityStore\\utilityStore.actions.ts": {"path":"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\Shared\\utilityStore\\utilityStore.actions.ts","statementMap":{"0":{"start":{"line":4,"column":34},"end":{"line":10,"column":6}},"1":{"start":{"line":5,"column":28},"end":{"line":10,"column":5}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":4,"column":34},"end":{"line":4,"column":35}},"loc":{"start":{"line":5,"column":28},"end":{"line":10,"column":5}},"line":5}},"branchMap":{},"s":{"0":2,"1":3},"f":{"0":3},"b":{},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"10d83b99bcd2dc467d9a49862209a8223d3a071e"} -,"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\Shared\\utilityStore\\utilityStore.methods.ts": {"path":"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\Shared\\utilityStore\\utilityStore.methods.ts","statementMap":{"0":{"start":{"line":4,"column":21},"end":{"line":6,"column":1}},"1":{"start":{"line":5,"column":4},"end":{"line":5,"column":53}},"2":{"start":{"line":8,"column":26},"end":{"line":10,"column":1}},"3":{"start":{"line":14,"column":39},"end":{"line":14,"column":56}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":4,"column":21},"end":{"line":4,"column":22}},"loc":{"start":{"line":4,"column":48},"end":{"line":6,"column":1}},"line":4}},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":1},"f":{"0":1},"b":{},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"e5a025ad4d4f5ee6879bbec198600d2e3f76e387"} -,"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\Shared\\utilityStore\\utilityStore.reducer.ts": {"path":"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\Shared\\utilityStore\\utilityStore.reducer.ts","statementMap":{"0":{"start":{"line":3,"column":41},"end":{"line":5,"column":1}},"1":{"start":{"line":7,"column":28},"end":{"line":20,"column":1}},"2":{"start":{"line":11,"column":4},"end":{"line":19,"column":5}},"3":{"start":{"line":13,"column":12},"end":{"line":15,"column":14}},"4":{"start":{"line":18,"column":12},"end":{"line":18,"column":25}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":7,"column":28},"end":{"line":7,"column":29}},"loc":{"start":{"line":10,"column":25},"end":{"line":20,"column":1}},"line":10}},"branchMap":{"0":{"loc":{"start":{"line":8,"column":4},"end":{"line":8,"column":44}},"type":"default-arg","locations":[{"start":{"line":8,"column":32},"end":{"line":8,"column":44}}],"line":8},"1":{"loc":{"start":{"line":11,"column":4},"end":{"line":19,"column":5}},"type":"switch","locations":[{"start":{"line":12,"column":8},"end":{"line":16,"column":9}},{"start":{"line":17,"column":8},"end":{"line":18,"column":25}}],"line":11}},"s":{"0":8,"1":8,"2":341,"3":3,"4":338},"f":{"0":341},"b":{"0":[60],"1":[3,338]},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"8a80c0dec41312895b2f6062dcdafd7f6c6d8df1"} -,"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\Shared\\utilityStore\\utilityStore.types.ts": {"path":"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\Shared\\utilityStore\\utilityStore.types.ts","statementMap":{"0":{"start":{"line":1,"column":37},"end":{"line":1,"column":52}}},"fnMap":{},"branchMap":{},"s":{"0":8},"f":{},"b":{},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"d934b6de900526fecd738d21a8e8c4ac1608e776"} -,"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\components\\dualApp\\DualApp.tsx": {"path":"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\components\\dualApp\\DualApp.tsx","statementMap":{"0":{"start":{"line":32,"column":16},"end":{"line":59,"column":1}},"1":{"start":{"line":34,"column":22},"end":{"line":34,"column":55}},"2":{"start":{"line":36,"column":29},"end":{"line":36,"column":102}},"3":{"start":{"line":36,"column":53},"end":{"line":36,"column":101}},"4":{"start":{"line":37,"column":27},"end":{"line":37,"column":98}},"5":{"start":{"line":37,"column":51},"end":{"line":37,"column":97}},"6":{"start":{"line":39,"column":2},"end":{"line":44,"column":9}},"7":{"start":{"line":40,"column":4},"end":{"line":43,"column":5}},"8":{"start":{"line":41,"column":6},"end":{"line":41,"column":112}},"9":{"start":{"line":42,"column":6},"end":{"line":42,"column":104}},"10":{"start":{"line":46,"column":2},"end":{"line":58,"column":4}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":32,"column":16},"end":{"line":32,"column":17}},"loc":{"start":{"line":32,"column":42},"end":{"line":59,"column":1}},"line":32},"1":{"name":"(anonymous_1)","decl":{"start":{"line":36,"column":46},"end":{"line":36,"column":47}},"loc":{"start":{"line":36,"column":53},"end":{"line":36,"column":101}},"line":36},"2":{"name":"(anonymous_2)","decl":{"start":{"line":37,"column":44},"end":{"line":37,"column":45}},"loc":{"start":{"line":37,"column":51},"end":{"line":37,"column":97}},"line":37},"3":{"name":"(anonymous_3)","decl":{"start":{"line":39,"column":12},"end":{"line":39,"column":13}},"loc":{"start":{"line":39,"column":18},"end":{"line":44,"column":3}},"line":39}},"branchMap":{"0":{"loc":{"start":{"line":40,"column":4},"end":{"line":43,"column":5}},"type":"if","locations":[{"start":{"line":40,"column":4},"end":{"line":43,"column":5}},{"start":{"line":40,"column":4},"end":{"line":43,"column":5}}],"line":40},"1":{"loc":{"start":{"line":40,"column":8},"end":{"line":40,"column":30}},"type":"binary-expr","locations":[{"start":{"line":40,"column":8},"end":{"line":40,"column":18}},{"start":{"line":40,"column":22},"end":{"line":40,"column":30}}],"line":40},"2":{"loc":{"start":{"line":49,"column":9},"end":{"line":55,"column":11}},"type":"cond-expr","locations":[{"start":{"line":50,"column":10},"end":{"line":50,"column":35}},{"start":{"line":52,"column":12},"end":{"line":54,"column":23}}],"line":49}},"s":{"0":1,"1":1,"2":1,"3":0,"4":1,"5":0,"6":1,"7":1,"8":1,"9":1,"10":1},"f":{"0":1,"1":0,"2":0,"3":1},"b":{"0":[1,0],"1":[1,1],"2":[0,1]},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"906fee2e06a61d5415e35af0d355567e0dfca90f"} -,"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\components\\dualHub\\DualHub.tsx": {"path":"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\components\\dualHub\\DualHub.tsx","statementMap":{"0":{"start":{"line":18,"column":16},"end":{"line":62,"column":1}},"1":{"start":{"line":20,"column":52},"end":{"line":20,"column":79}},"2":{"start":{"line":21,"column":36},"end":{"line":21,"column":55}},"3":{"start":{"line":23,"column":19},"end":{"line":23,"column":38}},"4":{"start":{"line":25,"column":2},"end":{"line":32,"column":8}},"5":{"start":{"line":26,"column":4},"end":{"line":26,"column":56}},"6":{"start":{"line":27,"column":4},"end":{"line":27,"column":81}},"7":{"start":{"line":29,"column":4},"end":{"line":31,"column":5}},"8":{"start":{"line":30,"column":6},"end":{"line":30,"column":86}},"9":{"start":{"line":34,"column":42},"end":{"line":43,"column":50}},"10":{"start":{"line":35,"column":4},"end":{"line":42,"column":6}},"11":{"start":{"line":36,"column":6},"end":{"line":41,"column":7}},"12":{"start":{"line":45,"column":33},"end":{"line":52,"column":3}},"13":{"start":{"line":46,"column":4},"end":{"line":46,"column":48}},"14":{"start":{"line":47,"column":4},"end":{"line":51,"column":5}},"15":{"start":{"line":48,"column":6},"end":{"line":48,"column":43}},"16":{"start":{"line":50,"column":6},"end":{"line":50,"column":41}},"17":{"start":{"line":54,"column":2},"end":{"line":61,"column":4}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":18,"column":16},"end":{"line":18,"column":17}},"loc":{"start":{"line":18,"column":22},"end":{"line":62,"column":1}},"line":18},"1":{"name":"(anonymous_1)","decl":{"start":{"line":25,"column":12},"end":{"line":25,"column":13}},"loc":{"start":{"line":25,"column":18},"end":{"line":32,"column":3}},"line":25},"2":{"name":"(anonymous_2)","decl":{"start":{"line":29,"column":11},"end":{"line":29,"column":12}},"loc":{"start":{"line":29,"column":17},"end":{"line":31,"column":5}},"line":29},"3":{"name":"(anonymous_3)","decl":{"start":{"line":34,"column":50},"end":{"line":34,"column":51}},"loc":{"start":{"line":34,"column":56},"end":{"line":43,"column":3}},"line":34},"4":{"name":"(anonymous_4)","decl":{"start":{"line":35,"column":29},"end":{"line":35,"column":30}},"loc":{"start":{"line":35,"column":45},"end":{"line":42,"column":5}},"line":35},"5":{"name":"(anonymous_5)","decl":{"start":{"line":45,"column":33},"end":{"line":45,"column":34}},"loc":{"start":{"line":45,"column":68},"end":{"line":52,"column":3}},"line":45}},"branchMap":{"0":{"loc":{"start":{"line":47,"column":4},"end":{"line":51,"column":5}},"type":"if","locations":[{"start":{"line":47,"column":4},"end":{"line":51,"column":5}},{"start":{"line":47,"column":4},"end":{"line":51,"column":5}}],"line":47}},"s":{"0":1,"1":2,"2":2,"3":2,"4":2,"5":1,"6":1,"7":1,"8":0,"9":2,"10":2,"11":2,"12":2,"13":0,"14":0,"15":0,"16":0,"17":2},"f":{"0":2,"1":1,"2":0,"3":2,"4":2,"5":0},"b":{"0":[0,0]},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"0c8ce83ff909ed2ff8e0bf46a97bea5a821e3ee1"} -,"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\components\\screenHeader\\ScreenHeader.style.ts": {"path":"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\components\\screenHeader\\ScreenHeader.style.ts","statementMap":{"0":{"start":{"line":3,"column":34},"end":{"line":19,"column":2}}},"fnMap":{},"branchMap":{},"s":{"0":1},"f":{},"b":{},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"87ae53cd1e5e873a2e568b99987d8fec9bb2a714"} -,"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\components\\screenHeader\\ScreenHeader.tsx": {"path":"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\components\\screenHeader\\ScreenHeader.tsx","statementMap":{"0":{"start":{"line":9,"column":21},"end":{"line":32,"column":1}},"1":{"start":{"line":10,"column":2},"end":{"line":31,"column":4}},"2":{"start":{"line":18,"column":27},"end":{"line":18,"column":46}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":9,"column":21},"end":{"line":9,"column":22}},"loc":{"start":{"line":9,"column":52},"end":{"line":32,"column":1}},"line":9},"1":{"name":"(anonymous_1)","decl":{"start":{"line":18,"column":21},"end":{"line":18,"column":22}},"loc":{"start":{"line":18,"column":27},"end":{"line":18,"column":46}},"line":18}},"branchMap":{"0":{"loc":{"start":{"line":14,"column":7},"end":{"line":23,"column":7}},"type":"binary-expr","locations":[{"start":{"line":14,"column":7},"end":{"line":14,"column":37}},{"start":{"line":15,"column":8},"end":{"line":22,"column":19}}],"line":14}},"s":{"0":1,"1":2,"2":0},"f":{"0":2,"1":0},"b":{"0":[2,0]},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"abc1652e4014b4357be1ccf58a438f69c850b3be"} -,"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\components\\screenHeaderContainer\\ScreenHeaderContainer.style.ts": {"path":"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\components\\screenHeaderContainer\\ScreenHeaderContainer.style.ts","statementMap":{"0":{"start":{"line":3,"column":43},"end":{"line":8,"column":2}}},"fnMap":{},"branchMap":{},"s":{"0":1},"f":{},"b":{},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"e06fd2df6a5fc0d03735144b84c815b8df4e8e46"} -,"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\components\\screenHeaderContainer\\ScreenHeaderContainer.tsx": {"path":"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\components\\screenHeaderContainer\\ScreenHeaderContainer.tsx","statementMap":{"0":{"start":{"line":14,"column":30},"end":{"line":58,"column":1}},"1":{"start":{"line":16,"column":47},"end":{"line":16,"column":52}},"2":{"start":{"line":18,"column":4},"end":{"line":57,"column":5}},"3":{"start":{"line":36,"column":38},"end":{"line":36,"column":47}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":14,"column":30},"end":{"line":14,"column":31}},"loc":{"start":{"line":14,"column":70},"end":{"line":58,"column":1}},"line":14},"1":{"name":"(anonymous_1)","decl":{"start":{"line":36,"column":30},"end":{"line":36,"column":31}},"loc":{"start":{"line":36,"column":36},"end":{"line":36,"column":49}},"line":36}},"branchMap":{"0":{"loc":{"start":{"line":20,"column":13},"end":{"line":55,"column":17}},"type":"cond-expr","locations":[{"start":{"line":21,"column":16},"end":{"line":38,"column":18}},{"start":{"line":41,"column":20},"end":{"line":54,"column":22}}],"line":20},"1":{"loc":{"start":{"line":27,"column":24},"end":{"line":31,"column":29}},"type":"cond-expr","locations":[{"start":{"line":28,"column":28},"end":{"line":28,"column":50}},{"start":{"line":30,"column":32},"end":{"line":30,"column":88}}],"line":27},"2":{"loc":{"start":{"line":34,"column":24},"end":{"line":36,"column":49}},"type":"cond-expr","locations":[{"start":{"line":35,"column":30},"end":{"line":35,"column":53}},{"start":{"line":36,"column":30},"end":{"line":36,"column":49}}],"line":34},"3":{"loc":{"start":{"line":47,"column":28},"end":{"line":48,"column":50}},"type":"binary-expr","locations":[{"start":{"line":47,"column":28},"end":{"line":47,"column":50}},{"start":{"line":48,"column":28},"end":{"line":48,"column":50}}],"line":47},"4":{"loc":{"start":{"line":51,"column":28},"end":{"line":52,"column":51}},"type":"binary-expr","locations":[{"start":{"line":51,"column":28},"end":{"line":51,"column":51}},{"start":{"line":52,"column":28},"end":{"line":52,"column":51}}],"line":51}},"s":{"0":1,"1":2,"2":2,"3":0},"f":{"0":2,"1":0},"b":{"0":[0,2],"1":[0,0],"2":[0,0],"3":[2,0],"4":[2,0]},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"ae184aca7fa6abee54e450524e2ee72aca30d063"} -,"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\components\\screenOverlay\\ScreenOverlay.styles.ts": {"path":"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\components\\screenOverlay\\ScreenOverlay.styles.ts","statementMap":{"0":{"start":{"line":3,"column":35},"end":{"line":19,"column":2}}},"fnMap":{},"branchMap":{},"s":{"0":1},"f":{},"b":{},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"cf7b4a5bb2238ba82d3ee5f03751ced5563417f3"} -,"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\components\\screenOverlay\\ScreenOverlay.tsx": {"path":"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\components\\screenOverlay\\ScreenOverlay.tsx","statementMap":{"0":{"start":{"line":31,"column":22},"end":{"line":57,"column":1}},"1":{"start":{"line":32,"column":2},"end":{"line":56,"column":4}},"2":{"start":{"line":39,"column":14},"end":{"line":46,"column":15}},"3":{"start":{"line":42,"column":16},"end":{"line":45,"column":17}},"4":{"start":{"line":44,"column":18},"end":{"line":44,"column":44}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":31,"column":22},"end":{"line":31,"column":23}},"loc":{"start":{"line":31,"column":54},"end":{"line":57,"column":1}},"line":31},"1":{"name":"(anonymous_1)","decl":{"start":{"line":37,"column":31},"end":{"line":37,"column":32}},"loc":{"start":{"line":37,"column":40},"end":{"line":47,"column":13}},"line":37}},"branchMap":{"0":{"loc":{"start":{"line":34,"column":7},"end":{"line":54,"column":7}},"type":"binary-expr","locations":[{"start":{"line":34,"column":7},"end":{"line":34,"column":22}},{"start":{"line":35,"column":8},"end":{"line":53,"column":17}}],"line":34},"1":{"loc":{"start":{"line":39,"column":14},"end":{"line":46,"column":15}},"type":"if","locations":[{"start":{"line":39,"column":14},"end":{"line":46,"column":15}},{"start":{"line":39,"column":14},"end":{"line":46,"column":15}}],"line":39},"2":{"loc":{"start":{"line":42,"column":16},"end":{"line":45,"column":17}},"type":"if","locations":[{"start":{"line":42,"column":16},"end":{"line":45,"column":17}},{"start":{"line":42,"column":16},"end":{"line":45,"column":17}}],"line":42}},"s":{"0":1,"1":1,"2":0,"3":0,"4":0},"f":{"0":1,"1":0},"b":{"0":[1,1],"1":[0,0],"2":[0,0]},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"3f5050722c8793e2dc6384551a2ece3836cb113b"} -,"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\components\\screenRenderer\\ScreenRenderer.tsx": {"path":"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\components\\screenRenderer\\ScreenRenderer.tsx","statementMap":{"0":{"start":{"line":13,"column":23},"end":{"line":40,"column":1}},"1":{"start":{"line":14,"column":44},"end":{"line":14,"column":49}},"2":{"start":{"line":16,"column":27},"end":{"line":16,"column":97}},"3":{"start":{"line":16,"column":55},"end":{"line":16,"column":85}},"4":{"start":{"line":17,"column":25},"end":{"line":17,"column":93}},"5":{"start":{"line":17,"column":53},"end":{"line":17,"column":81}},"6":{"start":{"line":18,"column":4},"end":{"line":39,"column":5}},"7":{"start":{"line":22,"column":20},"end":{"line":35,"column":27}},"8":{"start":{"line":28,"column":47},"end":{"line":28,"column":125}},"9":{"start":{"line":42,"column":29},"end":{"line":63,"column":2}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":13,"column":23},"end":{"line":13,"column":24}},"loc":{"start":{"line":13,"column":56},"end":{"line":40,"column":1}},"line":13},"1":{"name":"(anonymous_1)","decl":{"start":{"line":16,"column":50},"end":{"line":16,"column":51}},"loc":{"start":{"line":16,"column":55},"end":{"line":16,"column":85}},"line":16},"2":{"name":"(anonymous_2)","decl":{"start":{"line":17,"column":48},"end":{"line":17,"column":49}},"loc":{"start":{"line":17,"column":53},"end":{"line":17,"column":81}},"line":17},"3":{"name":"(anonymous_3)","decl":{"start":{"line":21,"column":36},"end":{"line":21,"column":37}},"loc":{"start":{"line":22,"column":20},"end":{"line":35,"column":27}},"line":22},"4":{"name":"(anonymous_4)","decl":{"start":{"line":28,"column":40},"end":{"line":28,"column":41}},"loc":{"start":{"line":28,"column":47},"end":{"line":28,"column":125}},"line":28}},"branchMap":{"0":{"loc":{"start":{"line":23,"column":65},"end":{"line":23,"column":159}},"type":"cond-expr","locations":[{"start":{"line":23,"column":100},"end":{"line":23,"column":129}},{"start":{"line":23,"column":132},"end":{"line":23,"column":159}}],"line":23},"1":{"loc":{"start":{"line":26,"column":43},"end":{"line":26,"column":107}},"type":"cond-expr","locations":[{"start":{"line":26,"column":78},"end":{"line":26,"column":92}},{"start":{"line":26,"column":95},"end":{"line":26,"column":107}}],"line":26},"2":{"loc":{"start":{"line":28,"column":47},"end":{"line":28,"column":125}},"type":"cond-expr","locations":[{"start":{"line":28,"column":82},"end":{"line":28,"column":103}},{"start":{"line":28,"column":106},"end":{"line":28,"column":125}}],"line":28}},"s":{"0":1,"1":2,"2":2,"3":2,"4":2,"5":2,"6":2,"7":2,"8":0,"9":1},"f":{"0":2,"1":2,"2":2,"3":2,"4":0},"b":{"0":[1,1],"1":[1,1],"2":[0,0]},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"2bb8a396ae6b426dcb6dd897d2a23c279fc31aa1"} -,"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\dualScreen\\dualScreenStore\\dualScreen.methods.ts": {"path":"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\dualScreen\\dualScreenStore\\dualScreen.methods.ts","statementMap":{"0":{"start":{"line":14,"column":12},"end":{"line":21,"column":1}},"1":{"start":{"line":16,"column":2},"end":{"line":16,"column":57}},"2":{"start":{"line":17,"column":2},"end":{"line":17,"column":68}},"3":{"start":{"line":18,"column":2},"end":{"line":20,"column":3}},"4":{"start":{"line":19,"column":4},"end":{"line":19,"column":68}},"5":{"start":{"line":27,"column":25},"end":{"line":36,"column":1}},"6":{"start":{"line":28,"column":26},"end":{"line":28,"column":54}},"7":{"start":{"line":29,"column":40},"end":{"line":29,"column":91}},"8":{"start":{"line":29,"column":62},"end":{"line":29,"column":90}},"9":{"start":{"line":31,"column":2},"end":{"line":35,"column":3}},"10":{"start":{"line":31,"column":35},"end":{"line":31,"column":74}},"11":{"start":{"line":32,"column":4},"end":{"line":32,"column":38}},"12":{"start":{"line":34,"column":4},"end":{"line":34,"column":78}},"13":{"start":{"line":40,"column":30},"end":{"line":48,"column":1}},"14":{"start":{"line":41,"column":26},"end":{"line":41,"column":54}},"15":{"start":{"line":42,"column":2},"end":{"line":46,"column":4}},"16":{"start":{"line":43,"column":4},"end":{"line":45,"column":5}},"17":{"start":{"line":44,"column":6},"end":{"line":44,"column":62}},"18":{"start":{"line":54,"column":19},"end":{"line":63,"column":1}},"19":{"start":{"line":55,"column":26},"end":{"line":55,"column":54}},"20":{"start":{"line":56,"column":40},"end":{"line":56,"column":91}},"21":{"start":{"line":56,"column":62},"end":{"line":56,"column":90}},"22":{"start":{"line":58,"column":2},"end":{"line":61,"column":3}},"23":{"start":{"line":58,"column":15},"end":{"line":58,"column":16}},"24":{"start":{"line":59,"column":4},"end":{"line":59,"column":62}},"25":{"start":{"line":60,"column":4},"end":{"line":60,"column":70}},"26":{"start":{"line":62,"column":2},"end":{"line":62,"column":46}},"27":{"start":{"line":68,"column":15},"end":{"line":76,"column":1}},"28":{"start":{"line":69,"column":26},"end":{"line":69,"column":54}},"29":{"start":{"line":70,"column":40},"end":{"line":70,"column":91}},"30":{"start":{"line":70,"column":62},"end":{"line":70,"column":90}},"31":{"start":{"line":72,"column":2},"end":{"line":72,"column":64}},"32":{"start":{"line":73,"column":2},"end":{"line":73,"column":72}},"33":{"start":{"line":74,"column":2},"end":{"line":74,"column":45}},"34":{"start":{"line":81,"column":22},"end":{"line":83,"column":1}},"35":{"start":{"line":82,"column":2},"end":{"line":82,"column":77}},"36":{"start":{"line":88,"column":22},"end":{"line":90,"column":1}},"37":{"start":{"line":89,"column":2},"end":{"line":89,"column":45}},"38":{"start":{"line":92,"column":29},"end":{"line":100,"column":1}},"39":{"start":{"line":104,"column":40},"end":{"line":104,"column":60}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":14,"column":12},"end":{"line":14,"column":13}},"loc":{"start":{"line":14,"column":102},"end":{"line":21,"column":1}},"line":14},"1":{"name":"(anonymous_1)","decl":{"start":{"line":27,"column":25},"end":{"line":27,"column":26}},"loc":{"start":{"line":27,"column":116},"end":{"line":36,"column":1}},"line":27},"2":{"name":"(anonymous_2)","decl":{"start":{"line":29,"column":57},"end":{"line":29,"column":58}},"loc":{"start":{"line":29,"column":62},"end":{"line":29,"column":90}},"line":29},"3":{"name":"(anonymous_3)","decl":{"start":{"line":31,"column":28},"end":{"line":31,"column":29}},"loc":{"start":{"line":31,"column":35},"end":{"line":31,"column":74}},"line":31},"4":{"name":"(anonymous_4)","decl":{"start":{"line":40,"column":30},"end":{"line":40,"column":31}},"loc":{"start":{"line":40,"column":36},"end":{"line":48,"column":1}},"line":40},"5":{"name":"(anonymous_5)","decl":{"start":{"line":42,"column":16},"end":{"line":42,"column":17}},"loc":{"start":{"line":42,"column":23},"end":{"line":46,"column":3}},"line":42},"6":{"name":"(anonymous_6)","decl":{"start":{"line":54,"column":19},"end":{"line":54,"column":20}},"loc":{"start":{"line":54,"column":25},"end":{"line":63,"column":1}},"line":54},"7":{"name":"(anonymous_7)","decl":{"start":{"line":56,"column":57},"end":{"line":56,"column":58}},"loc":{"start":{"line":56,"column":62},"end":{"line":56,"column":90}},"line":56},"8":{"name":"(anonymous_8)","decl":{"start":{"line":68,"column":15},"end":{"line":68,"column":16}},"loc":{"start":{"line":68,"column":21},"end":{"line":76,"column":1}},"line":68},"9":{"name":"(anonymous_9)","decl":{"start":{"line":70,"column":57},"end":{"line":70,"column":58}},"loc":{"start":{"line":70,"column":62},"end":{"line":70,"column":90}},"line":70},"10":{"name":"(anonymous_10)","decl":{"start":{"line":81,"column":22},"end":{"line":81,"column":23}},"loc":{"start":{"line":81,"column":68},"end":{"line":83,"column":1}},"line":81},"11":{"name":"(anonymous_11)","decl":{"start":{"line":88,"column":22},"end":{"line":88,"column":23}},"loc":{"start":{"line":88,"column":56},"end":{"line":90,"column":1}},"line":88}},"branchMap":{"0":{"loc":{"start":{"line":14,"column":73},"end":{"line":14,"column":97}},"type":"default-arg","locations":[{"start":{"line":14,"column":92},"end":{"line":14,"column":97}}],"line":14},"1":{"loc":{"start":{"line":18,"column":2},"end":{"line":20,"column":3}},"type":"if","locations":[{"start":{"line":18,"column":2},"end":{"line":20,"column":3}},{"start":{"line":18,"column":2},"end":{"line":20,"column":3}}],"line":18},"2":{"loc":{"start":{"line":27,"column":86},"end":{"line":27,"column":110}},"type":"default-arg","locations":[{"start":{"line":27,"column":105},"end":{"line":27,"column":110}}],"line":27},"3":{"loc":{"start":{"line":31,"column":2},"end":{"line":35,"column":3}},"type":"if","locations":[{"start":{"line":31,"column":2},"end":{"line":35,"column":3}},{"start":{"line":31,"column":2},"end":{"line":35,"column":3}}],"line":31},"4":{"loc":{"start":{"line":43,"column":4},"end":{"line":45,"column":5}},"type":"if","locations":[{"start":{"line":43,"column":4},"end":{"line":45,"column":5}},{"start":{"line":43,"column":4},"end":{"line":45,"column":5}}],"line":43},"5":{"loc":{"start":{"line":43,"column":8},"end":{"line":43,"column":53}},"type":"binary-expr","locations":[{"start":{"line":43,"column":8},"end":{"line":43,"column":38}},{"start":{"line":43,"column":42},"end":{"line":43,"column":53}}],"line":43}},"s":{"0":3,"1":8,"2":8,"3":8,"4":4,"5":3,"6":4,"7":4,"8":11,"9":4,"10":7,"11":1,"12":3,"13":3,"14":1,"15":1,"16":5,"17":3,"18":3,"19":2,"20":2,"21":10,"22":2,"23":2,"24":5,"25":5,"26":2,"27":3,"28":2,"29":2,"30":8,"31":2,"32":2,"33":2,"34":3,"35":2,"36":3,"37":2,"38":3,"39":3},"f":{"0":8,"1":4,"2":11,"3":7,"4":1,"5":5,"6":2,"7":10,"8":2,"9":8,"10":2,"11":2},"b":{"0":[3],"1":[4,4],"2":[0],"3":[1,3],"4":[3,2],"5":[5,5]},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"c31644b2f7766fce962162de02aebd2093c4d7a6"} -,"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\singleScreen\\singleScreenStore\\singleScreen.methods.ts": {"path":"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\singleScreen\\singleScreenStore\\singleScreen.methods.ts","statementMap":{"0":{"start":{"line":15,"column":12},"end":{"line":21,"column":1}},"1":{"start":{"line":16,"column":2},"end":{"line":16,"column":59}},"2":{"start":{"line":17,"column":2},"end":{"line":17,"column":70}},"3":{"start":{"line":18,"column":2},"end":{"line":20,"column":3}},"4":{"start":{"line":19,"column":4},"end":{"line":19,"column":70}},"5":{"start":{"line":27,"column":25},"end":{"line":36,"column":1}},"6":{"start":{"line":28,"column":26},"end":{"line":28,"column":54}},"7":{"start":{"line":29,"column":42},"end":{"line":29,"column":95}},"8":{"start":{"line":29,"column":64},"end":{"line":29,"column":94}},"9":{"start":{"line":31,"column":2},"end":{"line":35,"column":3}},"10":{"start":{"line":31,"column":37},"end":{"line":31,"column":78}},"11":{"start":{"line":32,"column":4},"end":{"line":32,"column":38}},"12":{"start":{"line":34,"column":4},"end":{"line":34,"column":82}},"13":{"start":{"line":41,"column":30},"end":{"line":48,"column":1}},"14":{"start":{"line":42,"column":26},"end":{"line":42,"column":54}},"15":{"start":{"line":43,"column":2},"end":{"line":47,"column":4}},"16":{"start":{"line":44,"column":4},"end":{"line":46,"column":5}},"17":{"start":{"line":45,"column":6},"end":{"line":45,"column":60}},"18":{"start":{"line":55,"column":19},"end":{"line":65,"column":1}},"19":{"start":{"line":56,"column":26},"end":{"line":56,"column":54}},"20":{"start":{"line":57,"column":42},"end":{"line":57,"column":95}},"21":{"start":{"line":57,"column":64},"end":{"line":57,"column":94}},"22":{"start":{"line":59,"column":2},"end":{"line":62,"column":3}},"23":{"start":{"line":59,"column":15},"end":{"line":59,"column":16}},"24":{"start":{"line":60,"column":4},"end":{"line":60,"column":64}},"25":{"start":{"line":61,"column":4},"end":{"line":61,"column":72}},"26":{"start":{"line":64,"column":2},"end":{"line":64,"column":48}},"27":{"start":{"line":70,"column":15},"end":{"line":78,"column":1}},"28":{"start":{"line":71,"column":26},"end":{"line":71,"column":54}},"29":{"start":{"line":72,"column":42},"end":{"line":72,"column":95}},"30":{"start":{"line":72,"column":64},"end":{"line":72,"column":94}},"31":{"start":{"line":74,"column":2},"end":{"line":74,"column":66}},"32":{"start":{"line":75,"column":2},"end":{"line":75,"column":74}},"33":{"start":{"line":76,"column":2},"end":{"line":76,"column":47}},"34":{"start":{"line":84,"column":22},"end":{"line":86,"column":1}},"35":{"start":{"line":85,"column":2},"end":{"line":85,"column":79}},"36":{"start":{"line":91,"column":22},"end":{"line":93,"column":1}},"37":{"start":{"line":92,"column":2},"end":{"line":92,"column":71}},"38":{"start":{"line":95,"column":31},"end":{"line":103,"column":1}},"39":{"start":{"line":107,"column":44},"end":{"line":107,"column":66}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":15,"column":12},"end":{"line":15,"column":13}},"loc":{"start":{"line":15,"column":96},"end":{"line":21,"column":1}},"line":15},"1":{"name":"(anonymous_1)","decl":{"start":{"line":27,"column":25},"end":{"line":27,"column":26}},"loc":{"start":{"line":27,"column":115},"end":{"line":36,"column":1}},"line":27},"2":{"name":"(anonymous_2)","decl":{"start":{"line":29,"column":59},"end":{"line":29,"column":60}},"loc":{"start":{"line":29,"column":64},"end":{"line":29,"column":94}},"line":29},"3":{"name":"(anonymous_3)","decl":{"start":{"line":31,"column":30},"end":{"line":31,"column":31}},"loc":{"start":{"line":31,"column":37},"end":{"line":31,"column":78}},"line":31},"4":{"name":"(anonymous_4)","decl":{"start":{"line":41,"column":30},"end":{"line":41,"column":31}},"loc":{"start":{"line":41,"column":36},"end":{"line":48,"column":1}},"line":41},"5":{"name":"(anonymous_5)","decl":{"start":{"line":43,"column":16},"end":{"line":43,"column":17}},"loc":{"start":{"line":43,"column":23},"end":{"line":47,"column":3}},"line":43},"6":{"name":"(anonymous_6)","decl":{"start":{"line":55,"column":19},"end":{"line":55,"column":20}},"loc":{"start":{"line":55,"column":25},"end":{"line":65,"column":1}},"line":55},"7":{"name":"(anonymous_7)","decl":{"start":{"line":57,"column":59},"end":{"line":57,"column":60}},"loc":{"start":{"line":57,"column":64},"end":{"line":57,"column":94}},"line":57},"8":{"name":"(anonymous_8)","decl":{"start":{"line":70,"column":15},"end":{"line":70,"column":16}},"loc":{"start":{"line":70,"column":21},"end":{"line":78,"column":1}},"line":70},"9":{"name":"(anonymous_9)","decl":{"start":{"line":72,"column":59},"end":{"line":72,"column":60}},"loc":{"start":{"line":72,"column":64},"end":{"line":72,"column":94}},"line":72},"10":{"name":"(anonymous_10)","decl":{"start":{"line":84,"column":22},"end":{"line":84,"column":23}},"loc":{"start":{"line":84,"column":68},"end":{"line":86,"column":1}},"line":84},"11":{"name":"(anonymous_11)","decl":{"start":{"line":91,"column":22},"end":{"line":91,"column":23}},"loc":{"start":{"line":91,"column":56},"end":{"line":93,"column":1}},"line":91}},"branchMap":{"0":{"loc":{"start":{"line":15,"column":67},"end":{"line":15,"column":91}},"type":"default-arg","locations":[{"start":{"line":15,"column":86},"end":{"line":15,"column":91}}],"line":15},"1":{"loc":{"start":{"line":18,"column":2},"end":{"line":20,"column":3}},"type":"if","locations":[{"start":{"line":18,"column":2},"end":{"line":20,"column":3}},{"start":{"line":18,"column":2},"end":{"line":20,"column":3}}],"line":18},"2":{"loc":{"start":{"line":27,"column":86},"end":{"line":27,"column":110}},"type":"default-arg","locations":[{"start":{"line":27,"column":105},"end":{"line":27,"column":110}}],"line":27},"3":{"loc":{"start":{"line":31,"column":2},"end":{"line":35,"column":3}},"type":"if","locations":[{"start":{"line":31,"column":2},"end":{"line":35,"column":3}},{"start":{"line":31,"column":2},"end":{"line":35,"column":3}}],"line":31},"4":{"loc":{"start":{"line":44,"column":4},"end":{"line":46,"column":5}},"type":"if","locations":[{"start":{"line":44,"column":4},"end":{"line":46,"column":5}},{"start":{"line":44,"column":4},"end":{"line":46,"column":5}}],"line":44},"5":{"loc":{"start":{"line":44,"column":8},"end":{"line":44,"column":55}},"type":"binary-expr","locations":[{"start":{"line":44,"column":8},"end":{"line":44,"column":40}},{"start":{"line":44,"column":44},"end":{"line":44,"column":55}}],"line":44}},"s":{"0":3,"1":8,"2":8,"3":8,"4":4,"5":3,"6":4,"7":4,"8":12,"9":4,"10":7,"11":1,"12":3,"13":3,"14":1,"15":1,"16":5,"17":3,"18":3,"19":2,"20":2,"21":10,"22":2,"23":2,"24":5,"25":5,"26":2,"27":3,"28":2,"29":2,"30":8,"31":2,"32":2,"33":2,"34":3,"35":2,"36":3,"37":2,"38":3,"39":3},"f":{"0":8,"1":4,"2":12,"3":7,"4":1,"5":5,"6":2,"7":10,"8":2,"9":8,"10":2,"11":2},"b":{"0":[3],"1":[4,4],"2":[0],"3":[1,3],"4":[3,2],"5":[5,5]},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"c5d785088be515cb114b0731d7626dff0b542c69"} -,"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\utilities\\auto.methods.ts": {"path":"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\utilities\\auto.methods.ts","statementMap":{"0":{"start":{"line":11,"column":12},"end":{"line":17,"column":1}},"1":{"start":{"line":12,"column":2},"end":{"line":16,"column":3}},"2":{"start":{"line":13,"column":4},"end":{"line":13,"column":54}},"3":{"start":{"line":15,"column":4},"end":{"line":15,"column":58}},"4":{"start":{"line":23,"column":25},"end":{"line":29,"column":1}},"5":{"start":{"line":24,"column":2},"end":{"line":28,"column":3}},"6":{"start":{"line":25,"column":4},"end":{"line":25,"column":67}},"7":{"start":{"line":27,"column":4},"end":{"line":27,"column":71}},"8":{"start":{"line":35,"column":29},"end":{"line":41,"column":1}},"9":{"start":{"line":36,"column":2},"end":{"line":40,"column":3}},"10":{"start":{"line":37,"column":4},"end":{"line":37,"column":67}},"11":{"start":{"line":39,"column":4},"end":{"line":39,"column":58}},"12":{"start":{"line":47,"column":31},"end":{"line":53,"column":1}},"13":{"start":{"line":48,"column":2},"end":{"line":52,"column":3}},"14":{"start":{"line":49,"column":4},"end":{"line":49,"column":54}},"15":{"start":{"line":51,"column":4},"end":{"line":51,"column":71}},"16":{"start":{"line":58,"column":19},"end":{"line":64,"column":1}},"17":{"start":{"line":59,"column":2},"end":{"line":63,"column":3}},"18":{"start":{"line":60,"column":4},"end":{"line":60,"column":28}},"19":{"start":{"line":62,"column":4},"end":{"line":62,"column":30}},"20":{"start":{"line":70,"column":15},"end":{"line":76,"column":1}},"21":{"start":{"line":71,"column":2},"end":{"line":75,"column":3}},"22":{"start":{"line":72,"column":4},"end":{"line":72,"column":24}},"23":{"start":{"line":74,"column":4},"end":{"line":74,"column":26}},"24":{"start":{"line":81,"column":22},"end":{"line":87,"column":1}},"25":{"start":{"line":82,"column":2},"end":{"line":86,"column":3}},"26":{"start":{"line":83,"column":4},"end":{"line":83,"column":50}},"27":{"start":{"line":85,"column":4},"end":{"line":85,"column":52}},"28":{"start":{"line":93,"column":22},"end":{"line":99,"column":1}},"29":{"start":{"line":94,"column":2},"end":{"line":98,"column":3}},"30":{"start":{"line":95,"column":4},"end":{"line":95,"column":42}},"31":{"start":{"line":97,"column":4},"end":{"line":97,"column":44}},"32":{"start":{"line":103,"column":29},"end":{"line":112,"column":1}},"33":{"start":{"line":116,"column":40},"end":{"line":116,"column":60}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":11,"column":12},"end":{"line":11,"column":13}},"loc":{"start":{"line":11,"column":114},"end":{"line":17,"column":1}},"line":11},"1":{"name":"(anonymous_1)","decl":{"start":{"line":23,"column":25},"end":{"line":23,"column":26}},"loc":{"start":{"line":23,"column":128},"end":{"line":29,"column":1}},"line":23},"2":{"name":"(anonymous_2)","decl":{"start":{"line":35,"column":29},"end":{"line":35,"column":30}},"loc":{"start":{"line":35,"column":132},"end":{"line":41,"column":1}},"line":35},"3":{"name":"(anonymous_3)","decl":{"start":{"line":47,"column":31},"end":{"line":47,"column":32}},"loc":{"start":{"line":47,"column":134},"end":{"line":53,"column":1}},"line":47},"4":{"name":"(anonymous_4)","decl":{"start":{"line":58,"column":19},"end":{"line":58,"column":20}},"loc":{"start":{"line":58,"column":25},"end":{"line":64,"column":1}},"line":58},"5":{"name":"(anonymous_5)","decl":{"start":{"line":70,"column":15},"end":{"line":70,"column":16}},"loc":{"start":{"line":70,"column":21},"end":{"line":76,"column":1}},"line":70},"6":{"name":"(anonymous_6)","decl":{"start":{"line":81,"column":22},"end":{"line":81,"column":23}},"loc":{"start":{"line":81,"column":75},"end":{"line":87,"column":1}},"line":81},"7":{"name":"(anonymous_7)","decl":{"start":{"line":93,"column":22},"end":{"line":93,"column":23}},"loc":{"start":{"line":93,"column":56},"end":{"line":99,"column":1}},"line":93}},"branchMap":{"0":{"loc":{"start":{"line":11,"column":67},"end":{"line":11,"column":88}},"type":"default-arg","locations":[{"start":{"line":11,"column":83},"end":{"line":11,"column":88}}],"line":11},"1":{"loc":{"start":{"line":11,"column":90},"end":{"line":11,"column":109}},"type":"default-arg","locations":[{"start":{"line":11,"column":104},"end":{"line":11,"column":109}}],"line":11},"2":{"loc":{"start":{"line":12,"column":2},"end":{"line":16,"column":3}},"type":"if","locations":[{"start":{"line":12,"column":2},"end":{"line":16,"column":3}},{"start":{"line":12,"column":2},"end":{"line":16,"column":3}}],"line":12},"3":{"loc":{"start":{"line":23,"column":80},"end":{"line":23,"column":101}},"type":"default-arg","locations":[{"start":{"line":23,"column":96},"end":{"line":23,"column":101}}],"line":23},"4":{"loc":{"start":{"line":23,"column":103},"end":{"line":23,"column":122}},"type":"default-arg","locations":[{"start":{"line":23,"column":117},"end":{"line":23,"column":122}}],"line":23},"5":{"loc":{"start":{"line":24,"column":2},"end":{"line":28,"column":3}},"type":"if","locations":[{"start":{"line":24,"column":2},"end":{"line":28,"column":3}},{"start":{"line":24,"column":2},"end":{"line":28,"column":3}}],"line":24},"6":{"loc":{"start":{"line":35,"column":84},"end":{"line":35,"column":105}},"type":"default-arg","locations":[{"start":{"line":35,"column":100},"end":{"line":35,"column":105}}],"line":35},"7":{"loc":{"start":{"line":35,"column":107},"end":{"line":35,"column":126}},"type":"default-arg","locations":[{"start":{"line":35,"column":121},"end":{"line":35,"column":126}}],"line":35},"8":{"loc":{"start":{"line":36,"column":2},"end":{"line":40,"column":3}},"type":"if","locations":[{"start":{"line":36,"column":2},"end":{"line":40,"column":3}},{"start":{"line":36,"column":2},"end":{"line":40,"column":3}}],"line":36},"9":{"loc":{"start":{"line":47,"column":86},"end":{"line":47,"column":107}},"type":"default-arg","locations":[{"start":{"line":47,"column":102},"end":{"line":47,"column":107}}],"line":47},"10":{"loc":{"start":{"line":47,"column":109},"end":{"line":47,"column":128}},"type":"default-arg","locations":[{"start":{"line":47,"column":123},"end":{"line":47,"column":128}}],"line":47},"11":{"loc":{"start":{"line":48,"column":2},"end":{"line":52,"column":3}},"type":"if","locations":[{"start":{"line":48,"column":2},"end":{"line":52,"column":3}},{"start":{"line":48,"column":2},"end":{"line":52,"column":3}}],"line":48},"12":{"loc":{"start":{"line":59,"column":2},"end":{"line":63,"column":3}},"type":"if","locations":[{"start":{"line":59,"column":2},"end":{"line":63,"column":3}},{"start":{"line":59,"column":2},"end":{"line":63,"column":3}}],"line":59},"13":{"loc":{"start":{"line":71,"column":2},"end":{"line":75,"column":3}},"type":"if","locations":[{"start":{"line":71,"column":2},"end":{"line":75,"column":3}},{"start":{"line":71,"column":2},"end":{"line":75,"column":3}}],"line":71},"14":{"loc":{"start":{"line":82,"column":2},"end":{"line":86,"column":3}},"type":"if","locations":[{"start":{"line":82,"column":2},"end":{"line":86,"column":3}},{"start":{"line":82,"column":2},"end":{"line":86,"column":3}}],"line":82},"15":{"loc":{"start":{"line":94,"column":2},"end":{"line":98,"column":3}},"type":"if","locations":[{"start":{"line":94,"column":2},"end":{"line":98,"column":3}},{"start":{"line":94,"column":2},"end":{"line":98,"column":3}}],"line":94}},"s":{"0":1,"1":2,"2":1,"3":1,"4":1,"5":2,"6":1,"7":1,"8":1,"9":2,"10":1,"11":1,"12":1,"13":2,"14":1,"15":1,"16":1,"17":2,"18":1,"19":1,"20":1,"21":2,"22":1,"23":1,"24":1,"25":2,"26":1,"27":1,"28":1,"29":2,"30":1,"31":1,"32":1,"33":1},"f":{"0":2,"1":2,"2":2,"3":2,"4":2,"5":2,"6":2,"7":2},"b":{"0":[2],"1":[2],"2":[1,1],"3":[2],"4":[2],"5":[1,1],"6":[2],"7":[2],"8":[1,1],"9":[2],"10":[2],"11":[1,1],"12":[1,1],"13":[1,1],"14":[1,1],"15":[1,1]},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"1be27fe3be6edcb69fdf12fa1cffa596a69ebe81"} -,"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\utilities\\extensionMethods.ts": {"path":"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\utilities\\extensionMethods.ts","statementMap":{"0":{"start":{"line":11,"column":0},"end":{"line":17,"column":2}},"1":{"start":{"line":12,"column":4},"end":{"line":14,"column":5}},"2":{"start":{"line":13,"column":8},"end":{"line":13,"column":37}},"3":{"start":{"line":16,"column":4},"end":{"line":16,"column":21}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":11,"column":23},"end":{"line":11,"column":24}},"loc":{"start":{"line":11,"column":35},"end":{"line":17,"column":1}},"line":11}},"branchMap":{"0":{"loc":{"start":{"line":12,"column":4},"end":{"line":14,"column":5}},"type":"if","locations":[{"start":{"line":12,"column":4},"end":{"line":14,"column":5}},{"start":{"line":12,"column":4},"end":{"line":14,"column":5}}],"line":12}},"s":{"0":8,"1":8,"2":8,"3":0},"f":{"0":8},"b":{"0":[8,0]},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"d6105ddecd66f85a21b5bb39840130fcc4df3e21"} -,"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\utilities\\interfaces.ts": {"path":"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\utilities\\interfaces.ts","statementMap":{},"fnMap":{},"branchMap":{},"s":{},"f":{},"b":{},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"dd0ba87b012c435f204717d0677b9f65fdf9d248"} -,"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\utilities\\utility.methods.ts": {"path":"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\utilities\\utility.methods.ts","statementMap":{"0":{"start":{"line":4,"column":21},"end":{"line":6,"column":1}},"1":{"start":{"line":5,"column":2},"end":{"line":5,"column":58}},"2":{"start":{"line":8,"column":26},"end":{"line":10,"column":1}},"3":{"start":{"line":14,"column":34},"end":{"line":14,"column":51}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":4,"column":21},"end":{"line":4,"column":22}},"loc":{"start":{"line":4,"column":36},"end":{"line":6,"column":1}},"line":4}},"branchMap":{},"s":{"0":1,"1":0,"2":1,"3":1},"f":{"0":0},"b":{},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"9b6bf8b411c35a57139f633902053339ba2eea45"} +{"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\src\\appStore.ts": {"path":"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\src\\appStore.ts","statementMap":{"0":{"start":{"line":10,"column":0},"end":{"line":10,"column":40}},"1":{"start":{"line":12,"column":20},"end":{"line":17,"column":2}},"2":{"start":{"line":20,"column":26},"end":{"line":20,"column":37}},"3":{"start":{"line":27,"column":20},"end":{"line":35,"column":1}},"4":{"start":{"line":28,"column":2},"end":{"line":34,"column":3}},"5":{"start":{"line":30,"column":6},"end":{"line":30,"column":24}},"6":{"start":{"line":31,"column":6},"end":{"line":31,"column":40}},"7":{"start":{"line":33,"column":6},"end":{"line":33,"column":40}},"8":{"start":{"line":39,"column":24},"end":{"line":41,"column":2}},"9":{"start":{"line":39,"column":42},"end":{"line":41,"column":1}},"10":{"start":{"line":43,"column":21},"end":{"line":43,"column":45}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":27,"column":20},"end":{"line":27,"column":21}},"loc":{"start":{"line":27,"column":49},"end":{"line":35,"column":1}},"line":27},"1":{"name":"(anonymous_1)","decl":{"start":{"line":39,"column":24},"end":{"line":39,"column":25}},"loc":{"start":{"line":39,"column":42},"end":{"line":41,"column":1}},"line":39}},"branchMap":{"0":{"loc":{"start":{"line":28,"column":2},"end":{"line":34,"column":3}},"type":"switch","locations":[{"start":{"line":29,"column":4},"end":{"line":31,"column":40}},{"start":{"line":32,"column":4},"end":{"line":33,"column":40}}],"line":28}},"s":{"0":8,"1":8,"2":8,"3":8,"4":325,"5":36,"6":36,"7":289,"8":8,"9":36,"10":8},"f":{"0":325,"1":36},"b":{"0":[36,289]},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"05ce1ec635e067a52c9a4fa61f82db2beadf861e"} +,"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\src\\Shared\\screenStore\\headerStore\\header.actions.ts": {"path":"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\src\\Shared\\screenStore\\headerStore\\header.actions.ts","statementMap":{"0":{"start":{"line":5,"column":26},"end":{"line":14,"column":2}},"1":{"start":{"line":8,"column":21},"end":{"line":14,"column":1}},"2":{"start":{"line":16,"column":29},"end":{"line":25,"column":2}},"3":{"start":{"line":19,"column":21},"end":{"line":25,"column":1}},"4":{"start":{"line":27,"column":33},"end":{"line":34,"column":2}},"5":{"start":{"line":29,"column":22},"end":{"line":34,"column":1}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":5,"column":26},"end":{"line":5,"column":27}},"loc":{"start":{"line":8,"column":21},"end":{"line":14,"column":1}},"line":8},"1":{"name":"(anonymous_1)","decl":{"start":{"line":16,"column":29},"end":{"line":16,"column":30}},"loc":{"start":{"line":19,"column":21},"end":{"line":25,"column":1}},"line":19},"2":{"name":"(anonymous_2)","decl":{"start":{"line":27,"column":33},"end":{"line":27,"column":34}},"loc":{"start":{"line":29,"column":22},"end":{"line":34,"column":1}},"line":29}},"branchMap":{},"s":{"0":5,"1":26,"2":5,"3":10,"4":5,"5":18},"f":{"0":26,"1":10,"2":18},"b":{},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"cbf0eca562a49ac09463bfba90047b550f631694"} +,"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\src\\Shared\\screenStore\\headerStore\\header.reducer.ts": {"path":"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\src\\Shared\\screenStore\\headerStore\\header.reducer.ts","statementMap":{"0":{"start":{"line":6,"column":35},"end":{"line":8,"column":1}},"1":{"start":{"line":10,"column":22},"end":{"line":46,"column":1}},"2":{"start":{"line":14,"column":4},"end":{"line":45,"column":5}},"3":{"start":{"line":16,"column":12},"end":{"line":22,"column":14}},"4":{"start":{"line":25,"column":27},"end":{"line":25,"column":62}},"5":{"start":{"line":26,"column":12},"end":{"line":28,"column":13}},"6":{"start":{"line":27,"column":16},"end":{"line":27,"column":36}},"7":{"start":{"line":29,"column":12},"end":{"line":35,"column":14}},"8":{"start":{"line":39,"column":28},"end":{"line":39,"column":33}},"9":{"start":{"line":40,"column":12},"end":{"line":40,"column":55}},"10":{"start":{"line":41,"column":12},"end":{"line":41,"column":33}},"11":{"start":{"line":44,"column":12},"end":{"line":44,"column":25}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":10,"column":22},"end":{"line":10,"column":23}},"loc":{"start":{"line":13,"column":19},"end":{"line":46,"column":1}},"line":13}},"branchMap":{"0":{"loc":{"start":{"line":11,"column":4},"end":{"line":11,"column":38}},"type":"default-arg","locations":[{"start":{"line":11,"column":26},"end":{"line":11,"column":38}}],"line":11},"1":{"loc":{"start":{"line":14,"column":4},"end":{"line":45,"column":5}},"type":"switch","locations":[{"start":{"line":15,"column":8},"end":{"line":23,"column":9}},{"start":{"line":24,"column":8},"end":{"line":36,"column":9}},{"start":{"line":37,"column":8},"end":{"line":42,"column":9}},{"start":{"line":43,"column":8},"end":{"line":44,"column":25}}],"line":14},"2":{"loc":{"start":{"line":26,"column":12},"end":{"line":28,"column":13}},"type":"if","locations":[{"start":{"line":26,"column":12},"end":{"line":28,"column":13}},{"start":{"line":26,"column":12},"end":{"line":28,"column":13}}],"line":26}},"s":{"0":8,"1":8,"2":341,"3":26,"4":10,"5":10,"6":5,"7":5,"8":18,"9":18,"10":18,"11":287},"f":{"0":341},"b":{"0":[60],"1":[26,10,18,287],"2":[5,5]},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"d88206ee3f50372fa46ad5e2b6489faf54e67714"} +,"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\src\\Shared\\screenStore\\headerStore\\header.selector.ts": {"path":"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\src\\Shared\\screenStore\\headerStore\\header.selector.ts","statementMap":{"0":{"start":{"line":5,"column":33},"end":{"line":7,"column":1}},"1":{"start":{"line":6,"column":4},"end":{"line":6,"column":72}},"2":{"start":{"line":6,"column":51},"end":{"line":6,"column":70}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":5,"column":33},"end":{"line":5,"column":34}},"loc":{"start":{"line":5,"column":53},"end":{"line":7,"column":1}},"line":5},"1":{"name":"(anonymous_1)","decl":{"start":{"line":6,"column":23},"end":{"line":6,"column":24}},"loc":{"start":{"line":6,"column":51},"end":{"line":6,"column":70}},"line":6}},"branchMap":{},"s":{"0":1,"1":2,"2":11},"f":{"0":2,"1":11},"b":{},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"d3e50948c7628fe21ecce11d711dd4ddd0d8d5d1"} +,"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\src\\Shared\\screenStore\\headerStore\\header.types.ts": {"path":"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\src\\Shared\\screenStore\\headerStore\\header.types.ts","statementMap":{"0":{"start":{"line":1,"column":35},"end":{"line":1,"column":48}},"1":{"start":{"line":3,"column":38},"end":{"line":3,"column":54}},"2":{"start":{"line":5,"column":41},"end":{"line":5,"column":60}}},"fnMap":{},"branchMap":{},"s":{"0":8,"1":8,"2":8},"f":{},"b":{},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"564e6e817b7fba8aa842ffdce7f3e74a3eef067d"} +,"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\src\\Shared\\screenStore\\headerStore\\tests\\header.methods.helpers.tsx": {"path":"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\src\\Shared\\screenStore\\headerStore\\tests\\header.methods.helpers.tsx","statementMap":{"0":{"start":{"line":3,"column":35},"end":{"line":11,"column":1}},"1":{"start":{"line":4,"column":4},"end":{"line":10,"column":5}},"2":{"start":{"line":13,"column":35},"end":{"line":17,"column":1}},"3":{"start":{"line":14,"column":4},"end":{"line":16,"column":5}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":3,"column":35},"end":{"line":3,"column":36}},"loc":{"start":{"line":3,"column":98},"end":{"line":11,"column":1}},"line":3},"1":{"name":"(anonymous_1)","decl":{"start":{"line":13,"column":35},"end":{"line":13,"column":36}},"loc":{"start":{"line":13,"column":84},"end":{"line":17,"column":1}},"line":13}},"branchMap":{},"s":{"0":3,"1":4,"2":3,"3":4},"f":{"0":4,"1":4},"b":{},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"6a242b85a76fe09cf744ab6e03413c5256b99a56"} +,"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\src\\Shared\\screenStore\\keyStore\\key.actions.ts": {"path":"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\src\\Shared\\screenStore\\keyStore\\key.actions.ts","statementMap":{"0":{"start":{"line":5,"column":23},"end":{"line":16,"column":2}},"1":{"start":{"line":9,"column":18},"end":{"line":16,"column":1}},"2":{"start":{"line":21,"column":26},"end":{"line":26,"column":2}},"3":{"start":{"line":21,"column":68},"end":{"line":26,"column":1}},"4":{"start":{"line":32,"column":25},"end":{"line":37,"column":2}},"5":{"start":{"line":32,"column":67},"end":{"line":37,"column":1}},"6":{"start":{"line":39,"column":27},"end":{"line":47,"column":2}},"7":{"start":{"line":41,"column":24},"end":{"line":47,"column":1}},"8":{"start":{"line":49,"column":28},"end":{"line":57,"column":2}},"9":{"start":{"line":51,"column":24},"end":{"line":57,"column":1}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":5,"column":23},"end":{"line":5,"column":24}},"loc":{"start":{"line":9,"column":18},"end":{"line":16,"column":1}},"line":9},"1":{"name":"(anonymous_1)","decl":{"start":{"line":21,"column":26},"end":{"line":21,"column":27}},"loc":{"start":{"line":21,"column":68},"end":{"line":26,"column":1}},"line":21},"2":{"name":"(anonymous_2)","decl":{"start":{"line":32,"column":25},"end":{"line":32,"column":26}},"loc":{"start":{"line":32,"column":67},"end":{"line":37,"column":1}},"line":32},"3":{"name":"(anonymous_3)","decl":{"start":{"line":39,"column":27},"end":{"line":39,"column":28}},"loc":{"start":{"line":41,"column":24},"end":{"line":47,"column":1}},"line":41},"4":{"name":"(anonymous_4)","decl":{"start":{"line":49,"column":28},"end":{"line":49,"column":29}},"loc":{"start":{"line":51,"column":24},"end":{"line":57,"column":1}},"line":51}},"branchMap":{},"s":{"0":5,"1":118,"2":5,"3":8,"4":5,"5":18,"6":5,"7":10,"8":5,"9":8},"f":{"0":118,"1":8,"2":18,"3":10,"4":8},"b":{},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"b270fe9a09b74026f9b395df1d73e3d6e9c0fb3e"} +,"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\src\\Shared\\screenStore\\keyStore\\key.reducer.ts": {"path":"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\src\\Shared\\screenStore\\keyStore\\key.reducer.ts","statementMap":{"0":{"start":{"line":8,"column":32},"end":{"line":10,"column":1}},"1":{"start":{"line":12,"column":20},"end":{"line":93,"column":1}},"2":{"start":{"line":16,"column":4},"end":{"line":92,"column":5}},"3":{"start":{"line":18,"column":42},"end":{"line":22,"column":13}},"4":{"start":{"line":23,"column":12},"end":{"line":26,"column":14}},"5":{"start":{"line":29,"column":33},"end":{"line":29,"column":82}},"6":{"start":{"line":29,"column":56},"end":{"line":29,"column":81}},"7":{"start":{"line":30,"column":33},"end":{"line":30,"column":82}},"8":{"start":{"line":30,"column":56},"end":{"line":30,"column":81}},"9":{"start":{"line":32,"column":12},"end":{"line":37,"column":13}},"10":{"start":{"line":33,"column":16},"end":{"line":36,"column":18}},"11":{"start":{"line":39,"column":12},"end":{"line":42,"column":14}},"12":{"start":{"line":45,"column":33},"end":{"line":45,"column":82}},"13":{"start":{"line":45,"column":56},"end":{"line":45,"column":81}},"14":{"start":{"line":46,"column":33},"end":{"line":46,"column":82}},"15":{"start":{"line":46,"column":56},"end":{"line":46,"column":81}},"16":{"start":{"line":48,"column":12},"end":{"line":52,"column":13}},"17":{"start":{"line":49,"column":16},"end":{"line":49,"column":35}},"18":{"start":{"line":51,"column":16},"end":{"line":51,"column":35}},"19":{"start":{"line":54,"column":12},"end":{"line":57,"column":14}},"20":{"start":{"line":61,"column":33},"end":{"line":61,"column":82}},"21":{"start":{"line":61,"column":56},"end":{"line":61,"column":81}},"22":{"start":{"line":62,"column":33},"end":{"line":62,"column":82}},"23":{"start":{"line":62,"column":56},"end":{"line":62,"column":81}},"24":{"start":{"line":64,"column":12},"end":{"line":73,"column":13}},"25":{"start":{"line":65,"column":31},"end":{"line":67,"column":18}},"26":{"start":{"line":66,"column":20},"end":{"line":66,"column":72}},"27":{"start":{"line":69,"column":16},"end":{"line":72,"column":18}},"28":{"start":{"line":75,"column":27},"end":{"line":77,"column":14}},"29":{"start":{"line":76,"column":16},"end":{"line":76,"column":68}},"30":{"start":{"line":79,"column":12},"end":{"line":82,"column":14}},"31":{"start":{"line":85,"column":12},"end":{"line":88,"column":14}},"32":{"start":{"line":91,"column":12},"end":{"line":91,"column":25}},"33":{"start":{"line":96,"column":4},"end":{"line":112,"column":6}},"34":{"start":{"line":97,"column":8},"end":{"line":100,"column":9}},"35":{"start":{"line":99,"column":12},"end":{"line":99,"column":23}},"36":{"start":{"line":101,"column":40},"end":{"line":105,"column":9}},"37":{"start":{"line":108,"column":8},"end":{"line":111,"column":9}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":12,"column":20},"end":{"line":12,"column":21}},"loc":{"start":{"line":15,"column":16},"end":{"line":93,"column":1}},"line":15},"1":{"name":"(anonymous_1)","decl":{"start":{"line":29,"column":51},"end":{"line":29,"column":52}},"loc":{"start":{"line":29,"column":56},"end":{"line":29,"column":81}},"line":29},"2":{"name":"(anonymous_2)","decl":{"start":{"line":30,"column":51},"end":{"line":30,"column":52}},"loc":{"start":{"line":30,"column":56},"end":{"line":30,"column":81}},"line":30},"3":{"name":"(anonymous_3)","decl":{"start":{"line":45,"column":51},"end":{"line":45,"column":52}},"loc":{"start":{"line":45,"column":56},"end":{"line":45,"column":81}},"line":45},"4":{"name":"(anonymous_4)","decl":{"start":{"line":46,"column":51},"end":{"line":46,"column":52}},"loc":{"start":{"line":46,"column":56},"end":{"line":46,"column":81}},"line":46},"5":{"name":"(anonymous_5)","decl":{"start":{"line":61,"column":51},"end":{"line":61,"column":52}},"loc":{"start":{"line":61,"column":56},"end":{"line":61,"column":81}},"line":61},"6":{"name":"(anonymous_6)","decl":{"start":{"line":62,"column":51},"end":{"line":62,"column":52}},"loc":{"start":{"line":62,"column":56},"end":{"line":62,"column":81}},"line":62},"7":{"name":"(anonymous_7)","decl":{"start":{"line":65,"column":54},"end":{"line":65,"column":55}},"loc":{"start":{"line":65,"column":70},"end":{"line":67,"column":17}},"line":65},"8":{"name":"(anonymous_8)","decl":{"start":{"line":75,"column":50},"end":{"line":75,"column":51}},"loc":{"start":{"line":75,"column":66},"end":{"line":77,"column":13}},"line":75},"9":{"name":"updateObjectInArray","decl":{"start":{"line":95,"column":9},"end":{"line":95,"column":28}},"loc":{"start":{"line":95,"column":69},"end":{"line":113,"column":1}},"line":95},"10":{"name":"(anonymous_10)","decl":{"start":{"line":96,"column":20},"end":{"line":96,"column":21}},"loc":{"start":{"line":96,"column":30},"end":{"line":112,"column":5}},"line":96}},"branchMap":{"0":{"loc":{"start":{"line":13,"column":4},"end":{"line":13,"column":35}},"type":"default-arg","locations":[{"start":{"line":13,"column":23},"end":{"line":13,"column":35}}],"line":13},"1":{"loc":{"start":{"line":16,"column":4},"end":{"line":92,"column":5}},"type":"switch","locations":[{"start":{"line":17,"column":8},"end":{"line":27,"column":9}},{"start":{"line":28,"column":8},"end":{"line":43,"column":9}},{"start":{"line":44,"column":8},"end":{"line":58,"column":9}},{"start":{"line":59,"column":8},"end":{"line":83,"column":9}},{"start":{"line":84,"column":8},"end":{"line":89,"column":9}},{"start":{"line":90,"column":8},"end":{"line":91,"column":25}}],"line":16},"2":{"loc":{"start":{"line":32,"column":12},"end":{"line":37,"column":13}},"type":"if","locations":[{"start":{"line":32,"column":12},"end":{"line":37,"column":13}},{"start":{"line":32,"column":12},"end":{"line":37,"column":13}}],"line":32},"3":{"loc":{"start":{"line":48,"column":12},"end":{"line":52,"column":13}},"type":"if","locations":[{"start":{"line":48,"column":12},"end":{"line":52,"column":13}},{"start":{"line":48,"column":12},"end":{"line":52,"column":13}}],"line":48},"4":{"loc":{"start":{"line":64,"column":12},"end":{"line":73,"column":13}},"type":"if","locations":[{"start":{"line":64,"column":12},"end":{"line":73,"column":13}},{"start":{"line":64,"column":12},"end":{"line":73,"column":13}}],"line":64},"5":{"loc":{"start":{"line":66,"column":27},"end":{"line":66,"column":71}},"type":"cond-expr","locations":[{"start":{"line":66,"column":66},"end":{"line":66,"column":67}},{"start":{"line":66,"column":70},"end":{"line":66,"column":71}}],"line":66},"6":{"loc":{"start":{"line":76,"column":23},"end":{"line":76,"column":67}},"type":"cond-expr","locations":[{"start":{"line":76,"column":62},"end":{"line":76,"column":63}},{"start":{"line":76,"column":66},"end":{"line":76,"column":67}}],"line":76},"7":{"loc":{"start":{"line":97,"column":8},"end":{"line":100,"column":9}},"type":"if","locations":[{"start":{"line":97,"column":8},"end":{"line":100,"column":9}},{"start":{"line":97,"column":8},"end":{"line":100,"column":9}}],"line":97}},"s":{"0":8,"1":8,"2":341,"3":118,"4":118,"5":8,"6":38,"7":8,"8":38,"9":8,"10":4,"11":4,"12":18,"13":74,"14":18,"15":74,"16":18,"17":9,"18":9,"19":18,"20":10,"21":33,"22":10,"23":33,"24":10,"25":5,"26":14,"27":5,"28":5,"29":13,"30":5,"31":8,"32":179,"33":8,"34":36,"35":28,"36":8,"37":8},"f":{"0":341,"1":38,"2":38,"3":74,"4":74,"5":33,"6":33,"7":14,"8":13,"9":8,"10":36},"b":{"0":[60],"1":[118,8,18,10,8,179],"2":[4,4],"3":[9,9],"4":[5,5],"5":[6,8],"6":[5,8],"7":[28,8]},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"883ec68df53a21e0fbc4c4d8227648c04e83c713"} +,"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\src\\Shared\\screenStore\\keyStore\\key.selector.ts": {"path":"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\src\\Shared\\screenStore\\keyStore\\key.selector.ts","statementMap":{"0":{"start":{"line":5,"column":33},"end":{"line":7,"column":1}},"1":{"start":{"line":6,"column":4},"end":{"line":6,"column":70}},"2":{"start":{"line":6,"column":51},"end":{"line":6,"column":68}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":5,"column":33},"end":{"line":5,"column":34}},"loc":{"start":{"line":5,"column":50},"end":{"line":7,"column":1}},"line":5},"1":{"name":"(anonymous_1)","decl":{"start":{"line":6,"column":23},"end":{"line":6,"column":24}},"loc":{"start":{"line":6,"column":51},"end":{"line":6,"column":68}},"line":6}},"branchMap":{},"s":{"0":1,"1":2,"2":11},"f":{"0":2,"1":11},"b":{},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"8066f90fe3c7cc62cf17b17559ded056ee7e221e"} +,"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\src\\Shared\\screenStore\\keyStore\\key.types.ts": {"path":"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\src\\Shared\\screenStore\\keyStore\\key.types.ts","statementMap":{"0":{"start":{"line":1,"column":32},"end":{"line":1,"column":42}},"1":{"start":{"line":3,"column":40},"end":{"line":3,"column":58}},"2":{"start":{"line":5,"column":31},"end":{"line":5,"column":40}},"3":{"start":{"line":7,"column":41},"end":{"line":7,"column":54}},"4":{"start":{"line":9,"column":34},"end":{"line":9,"column":46}},"5":{"start":{"line":11,"column":41},"end":{"line":11,"column":60}}},"fnMap":{},"branchMap":{},"s":{"0":8,"1":8,"2":8,"3":8,"4":8,"5":8},"f":{},"b":{},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"b7d45fd2ee7ae18b80d5ea26ccce251f7dc43f1e"} +,"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\src\\Shared\\screenStore\\keyStore\\tests\\key.methods.helpers.tsx": {"path":"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\src\\Shared\\screenStore\\keyStore\\tests\\key.methods.helpers.tsx","statementMap":{"0":{"start":{"line":6,"column":32},"end":{"line":15,"column":1}},"1":{"start":{"line":7,"column":4},"end":{"line":14,"column":5}},"2":{"start":{"line":20,"column":28},"end":{"line":27,"column":1}},"3":{"start":{"line":21,"column":18},"end":{"line":21,"column":73}},"4":{"start":{"line":22,"column":19},"end":{"line":22,"column":75}},"5":{"start":{"line":23,"column":18},"end":{"line":23,"column":73}},"6":{"start":{"line":24,"column":4},"end":{"line":26,"column":5}},"7":{"start":{"line":29,"column":32},"end":{"line":35,"column":1}},"8":{"start":{"line":30,"column":4},"end":{"line":34,"column":5}},"9":{"start":{"line":37,"column":33},"end":{"line":40,"column":1}},"10":{"start":{"line":38,"column":21},"end":{"line":38,"column":50}},"11":{"start":{"line":39,"column":4},"end":{"line":39,"column":98}},"12":{"start":{"line":39,"column":29},"end":{"line":39,"column":97}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":6,"column":32},"end":{"line":6,"column":33}},"loc":{"start":{"line":6,"column":111},"end":{"line":15,"column":1}},"line":6},"1":{"name":"(anonymous_1)","decl":{"start":{"line":20,"column":28},"end":{"line":20,"column":29}},"loc":{"start":{"line":20,"column":104},"end":{"line":27,"column":1}},"line":20},"2":{"name":"(anonymous_2)","decl":{"start":{"line":29,"column":32},"end":{"line":29,"column":33}},"loc":{"start":{"line":29,"column":97},"end":{"line":35,"column":1}},"line":29},"3":{"name":"(anonymous_3)","decl":{"start":{"line":37,"column":33},"end":{"line":37,"column":34}},"loc":{"start":{"line":37,"column":73},"end":{"line":40,"column":1}},"line":37},"4":{"name":"(anonymous_4)","decl":{"start":{"line":39,"column":22},"end":{"line":39,"column":23}},"loc":{"start":{"line":39,"column":29},"end":{"line":39,"column":97}},"line":39}},"branchMap":{"0":{"loc":{"start":{"line":20,"column":65},"end":{"line":20,"column":88}},"type":"default-arg","locations":[{"start":{"line":20,"column":86},"end":{"line":20,"column":88}}],"line":20}},"s":{"0":3,"1":8,"2":3,"3":40,"4":40,"5":40,"6":40,"7":3,"8":152,"9":3,"10":24,"11":24,"12":72},"f":{"0":8,"1":40,"2":152,"3":24,"4":72},"b":{"0":[26]},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"f9a018a225eb951b3320b679f61e8aee81f88130"} +,"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\src\\Shared\\screenStore\\paneElementStore\\paneElement.action.ts": {"path":"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\src\\Shared\\screenStore\\paneElementStore\\paneElement.action.ts","statementMap":{"0":{"start":{"line":6,"column":27},"end":{"line":15,"column":2}},"1":{"start":{"line":9,"column":26},"end":{"line":15,"column":1}},"2":{"start":{"line":17,"column":34},"end":{"line":26,"column":2}},"3":{"start":{"line":20,"column":26},"end":{"line":26,"column":1}},"4":{"start":{"line":29,"column":38},"end":{"line":36,"column":2}},"5":{"start":{"line":31,"column":22},"end":{"line":36,"column":1}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":6,"column":27},"end":{"line":6,"column":28}},"loc":{"start":{"line":9,"column":26},"end":{"line":15,"column":1}},"line":9},"1":{"name":"(anonymous_1)","decl":{"start":{"line":17,"column":34},"end":{"line":17,"column":35}},"loc":{"start":{"line":20,"column":26},"end":{"line":26,"column":1}},"line":20},"2":{"name":"(anonymous_2)","decl":{"start":{"line":29,"column":38},"end":{"line":29,"column":39}},"loc":{"start":{"line":31,"column":22},"end":{"line":36,"column":1}},"line":31}},"branchMap":{},"s":{"0":5,"1":34,"2":5,"3":10,"4":5,"5":18},"f":{"0":34,"1":10,"2":18},"b":{},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"9c21ed0e546f5b635034d02a24bf2c25074d931b"} +,"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\src\\Shared\\screenStore\\paneElementStore\\paneElement.reducer.ts": {"path":"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\src\\Shared\\screenStore\\paneElementStore\\paneElement.reducer.ts","statementMap":{"0":{"start":{"line":5,"column":40},"end":{"line":7,"column":1}},"1":{"start":{"line":9,"column":27},"end":{"line":46,"column":1}},"2":{"start":{"line":13,"column":4},"end":{"line":45,"column":5}},"3":{"start":{"line":15,"column":12},"end":{"line":21,"column":14}},"4":{"start":{"line":24,"column":27},"end":{"line":24,"column":67}},"5":{"start":{"line":25,"column":12},"end":{"line":27,"column":13}},"6":{"start":{"line":26,"column":16},"end":{"line":26,"column":36}},"7":{"start":{"line":28,"column":12},"end":{"line":34,"column":14}},"8":{"start":{"line":39,"column":28},"end":{"line":39,"column":33}},"9":{"start":{"line":40,"column":12},"end":{"line":40,"column":60}},"10":{"start":{"line":41,"column":12},"end":{"line":41,"column":33}},"11":{"start":{"line":44,"column":12},"end":{"line":44,"column":25}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":9,"column":27},"end":{"line":9,"column":28}},"loc":{"start":{"line":12,"column":24},"end":{"line":46,"column":1}},"line":12}},"branchMap":{"0":{"loc":{"start":{"line":10,"column":4},"end":{"line":10,"column":43}},"type":"default-arg","locations":[{"start":{"line":10,"column":31},"end":{"line":10,"column":43}}],"line":10},"1":{"loc":{"start":{"line":13,"column":4},"end":{"line":45,"column":5}},"type":"switch","locations":[{"start":{"line":14,"column":8},"end":{"line":22,"column":9}},{"start":{"line":23,"column":8},"end":{"line":36,"column":9}},{"start":{"line":37,"column":8},"end":{"line":42,"column":9}},{"start":{"line":43,"column":8},"end":{"line":44,"column":25}}],"line":13},"2":{"loc":{"start":{"line":25,"column":12},"end":{"line":27,"column":13}},"type":"if","locations":[{"start":{"line":25,"column":12},"end":{"line":27,"column":13}},{"start":{"line":25,"column":12},"end":{"line":27,"column":13}}],"line":25}},"s":{"0":8,"1":8,"2":341,"3":34,"4":10,"5":10,"6":5,"7":5,"8":18,"9":18,"10":18,"11":279},"f":{"0":341},"b":{"0":[60],"1":[34,10,18,279],"2":[5,5]},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"45d5325af92d08144c9b1c532ceb25b7d12a87da"} +,"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\src\\Shared\\screenStore\\paneElementStore\\paneElement.selectors.ts": {"path":"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\src\\Shared\\screenStore\\paneElementStore\\paneElement.selectors.ts","statementMap":{"0":{"start":{"line":5,"column":38},"end":{"line":7,"column":1}},"1":{"start":{"line":6,"column":4},"end":{"line":6,"column":77}},"2":{"start":{"line":6,"column":51},"end":{"line":6,"column":75}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":5,"column":38},"end":{"line":5,"column":39}},"loc":{"start":{"line":5,"column":63},"end":{"line":7,"column":1}},"line":5},"1":{"name":"(anonymous_1)","decl":{"start":{"line":6,"column":23},"end":{"line":6,"column":24}},"loc":{"start":{"line":6,"column":51},"end":{"line":6,"column":75}},"line":6}},"branchMap":{},"s":{"0":1,"1":2,"2":11},"f":{"0":2,"1":11},"b":{},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"d70efbead24010d9417e0117b2a8bb511c679b20"} +,"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\src\\Shared\\screenStore\\paneElementStore\\paneElement.types.ts": {"path":"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\src\\Shared\\screenStore\\paneElementStore\\paneElement.types.ts","statementMap":{"0":{"start":{"line":1,"column":41},"end":{"line":1,"column":60}},"1":{"start":{"line":3,"column":47},"end":{"line":3,"column":72}},"2":{"start":{"line":5,"column":44},"end":{"line":5,"column":66}}},"fnMap":{},"branchMap":{},"s":{"0":8,"1":8,"2":8},"f":{},"b":{},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"4970739bb3c4528bc65ecfd451c6dcbbbbe711b5"} +,"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\src\\Shared\\screenStore\\paneElementStore\\tests\\paneElement.methods.helpers.tsx": {"path":"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\src\\Shared\\screenStore\\paneElementStore\\tests\\paneElement.methods.helpers.tsx","statementMap":{"0":{"start":{"line":4,"column":40},"end":{"line":12,"column":1}},"1":{"start":{"line":5,"column":4},"end":{"line":11,"column":5}},"2":{"start":{"line":16,"column":40},"end":{"line":20,"column":1}},"3":{"start":{"line":17,"column":4},"end":{"line":19,"column":5}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":4,"column":40},"end":{"line":4,"column":41}},"loc":{"start":{"line":4,"column":124},"end":{"line":12,"column":1}},"line":4},"1":{"name":"(anonymous_1)","decl":{"start":{"line":16,"column":40},"end":{"line":16,"column":41}},"loc":{"start":{"line":16,"column":104},"end":{"line":20,"column":1}},"line":16}},"branchMap":{},"s":{"0":3,"1":8,"2":3,"3":4},"f":{"0":8,"1":4},"b":{},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"07ced5c1e97f8e742ac571f3129c0ff1e57939f0"} +,"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\src\\Shared\\utilityStore\\utilityStore.actions.ts": {"path":"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\src\\Shared\\utilityStore\\utilityStore.actions.ts","statementMap":{"0":{"start":{"line":4,"column":31},"end":{"line":10,"column":6}},"1":{"start":{"line":5,"column":28},"end":{"line":10,"column":5}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":4,"column":31},"end":{"line":4,"column":32}},"loc":{"start":{"line":5,"column":28},"end":{"line":10,"column":5}},"line":5}},"branchMap":{},"s":{"0":2,"1":3},"f":{"0":3},"b":{},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"2fa85268184709ac1f9556a07f1d81a2c432d987"} +,"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\src\\Shared\\utilityStore\\utilityStore.methods.ts": {"path":"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\src\\Shared\\utilityStore\\utilityStore.methods.ts","statementMap":{"0":{"start":{"line":4,"column":18},"end":{"line":6,"column":1}},"1":{"start":{"line":5,"column":4},"end":{"line":5,"column":47}},"2":{"start":{"line":8,"column":26},"end":{"line":10,"column":1}},"3":{"start":{"line":14,"column":39},"end":{"line":14,"column":56}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":4,"column":18},"end":{"line":4,"column":19}},"loc":{"start":{"line":4,"column":42},"end":{"line":6,"column":1}},"line":4}},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":1},"f":{"0":1},"b":{},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"2bf7bd6004f3992896a6779bcc2d2dd55d2643bd"} +,"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\src\\Shared\\utilityStore\\utilityStore.reducer.ts": {"path":"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\src\\Shared\\utilityStore\\utilityStore.reducer.ts","statementMap":{"0":{"start":{"line":3,"column":41},"end":{"line":5,"column":1}},"1":{"start":{"line":7,"column":28},"end":{"line":20,"column":1}},"2":{"start":{"line":11,"column":4},"end":{"line":19,"column":5}},"3":{"start":{"line":13,"column":12},"end":{"line":15,"column":14}},"4":{"start":{"line":18,"column":12},"end":{"line":18,"column":25}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":7,"column":28},"end":{"line":7,"column":29}},"loc":{"start":{"line":10,"column":25},"end":{"line":20,"column":1}},"line":10}},"branchMap":{"0":{"loc":{"start":{"line":8,"column":4},"end":{"line":8,"column":44}},"type":"default-arg","locations":[{"start":{"line":8,"column":32},"end":{"line":8,"column":44}}],"line":8},"1":{"loc":{"start":{"line":11,"column":4},"end":{"line":19,"column":5}},"type":"switch","locations":[{"start":{"line":12,"column":8},"end":{"line":16,"column":9}},{"start":{"line":17,"column":8},"end":{"line":18,"column":25}}],"line":11}},"s":{"0":8,"1":8,"2":341,"3":3,"4":338},"f":{"0":341},"b":{"0":[60],"1":[3,338]},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"3726841cdb7a909b310c6a7f619c994fb53a7590"} +,"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\src\\Shared\\utilityStore\\utilityStore.types.ts": {"path":"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\src\\Shared\\utilityStore\\utilityStore.types.ts","statementMap":{"0":{"start":{"line":1,"column":34},"end":{"line":1,"column":46}}},"fnMap":{},"branchMap":{},"s":{"0":8},"f":{},"b":{},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"a5d85d5e7c91518bc9b27b7c3f9a4bbe78a1007e"} +,"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\src\\components\\paneHeader\\PaneHeader.style.ts": {"path":"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\src\\components\\paneHeader\\PaneHeader.style.ts","statementMap":{"0":{"start":{"line":3,"column":32},"end":{"line":19,"column":2}}},"fnMap":{},"branchMap":{},"s":{"0":1},"f":{},"b":{},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"fb377e56d2f4a7354e12cc477cc72a10920b51d1"} +,"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\src\\components\\paneHeader\\PaneHeader.tsx": {"path":"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\src\\components\\paneHeader\\PaneHeader.tsx","statementMap":{"0":{"start":{"line":6,"column":19},"end":{"line":29,"column":1}},"1":{"start":{"line":7,"column":2},"end":{"line":28,"column":4}},"2":{"start":{"line":15,"column":27},"end":{"line":15,"column":46}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":6,"column":19},"end":{"line":6,"column":20}},"loc":{"start":{"line":6,"column":48},"end":{"line":29,"column":1}},"line":6},"1":{"name":"(anonymous_1)","decl":{"start":{"line":15,"column":21},"end":{"line":15,"column":22}},"loc":{"start":{"line":15,"column":27},"end":{"line":15,"column":46}},"line":15}},"branchMap":{"0":{"loc":{"start":{"line":11,"column":7},"end":{"line":20,"column":7}},"type":"binary-expr","locations":[{"start":{"line":11,"column":7},"end":{"line":11,"column":37}},{"start":{"line":12,"column":8},"end":{"line":19,"column":19}}],"line":11}},"s":{"0":1,"1":2,"2":0},"f":{"0":2,"1":0},"b":{"0":[2,0]},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"eaee8bb02cfe20e0976a9bb88d2dcc98b97e9b87"} +,"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\src\\components\\paneHeaderContainer\\PaneHeaderContainer.style.ts": {"path":"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\src\\components\\paneHeaderContainer\\PaneHeaderContainer.style.ts","statementMap":{"0":{"start":{"line":3,"column":41},"end":{"line":8,"column":2}}},"fnMap":{},"branchMap":{},"s":{"0":1},"f":{},"b":{},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"08b8b69c9598bf19efc62b80f920062a131d7124"} +,"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\src\\components\\paneHeaderContainer\\PaneHeaderContainer.tsx": {"path":"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\src\\components\\paneHeaderContainer\\PaneHeaderContainer.tsx","statementMap":{"0":{"start":{"line":14,"column":28},"end":{"line":58,"column":1}},"1":{"start":{"line":16,"column":47},"end":{"line":16,"column":52}},"2":{"start":{"line":18,"column":4},"end":{"line":57,"column":5}},"3":{"start":{"line":36,"column":38},"end":{"line":36,"column":47}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":14,"column":28},"end":{"line":14,"column":29}},"loc":{"start":{"line":14,"column":66},"end":{"line":58,"column":1}},"line":14},"1":{"name":"(anonymous_1)","decl":{"start":{"line":36,"column":30},"end":{"line":36,"column":31}},"loc":{"start":{"line":36,"column":36},"end":{"line":36,"column":49}},"line":36}},"branchMap":{"0":{"loc":{"start":{"line":20,"column":13},"end":{"line":55,"column":17}},"type":"cond-expr","locations":[{"start":{"line":21,"column":16},"end":{"line":38,"column":18}},{"start":{"line":41,"column":20},"end":{"line":54,"column":22}}],"line":20},"1":{"loc":{"start":{"line":27,"column":24},"end":{"line":31,"column":29}},"type":"cond-expr","locations":[{"start":{"line":28,"column":28},"end":{"line":28,"column":50}},{"start":{"line":30,"column":32},"end":{"line":30,"column":88}}],"line":27},"2":{"loc":{"start":{"line":34,"column":24},"end":{"line":36,"column":49}},"type":"cond-expr","locations":[{"start":{"line":35,"column":30},"end":{"line":35,"column":53}},{"start":{"line":36,"column":30},"end":{"line":36,"column":49}}],"line":34},"3":{"loc":{"start":{"line":47,"column":28},"end":{"line":48,"column":50}},"type":"binary-expr","locations":[{"start":{"line":47,"column":28},"end":{"line":47,"column":50}},{"start":{"line":48,"column":28},"end":{"line":48,"column":50}}],"line":47},"4":{"loc":{"start":{"line":51,"column":28},"end":{"line":52,"column":51}},"type":"binary-expr","locations":[{"start":{"line":51,"column":28},"end":{"line":51,"column":51}},{"start":{"line":52,"column":28},"end":{"line":52,"column":51}}],"line":51}},"s":{"0":1,"1":2,"2":2,"3":0},"f":{"0":2,"1":0},"b":{"0":[0,2],"1":[0,0],"2":[0,0],"3":[2,0],"4":[2,0]},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"7b49d2b9b8be45b65c41f19f19194563d120d161"} +,"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\src\\components\\paneOverlay\\PaneOverlay.styles.ts": {"path":"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\src\\components\\paneOverlay\\PaneOverlay.styles.ts","statementMap":{"0":{"start":{"line":3,"column":33},"end":{"line":19,"column":2}}},"fnMap":{},"branchMap":{},"s":{"0":1},"f":{},"b":{},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"5eae437fd3564de647a6cad023d821a23c814f43"} +,"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\src\\components\\paneOverlay\\PaneOverlay.tsx": {"path":"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\src\\components\\paneOverlay\\PaneOverlay.tsx","statementMap":{"0":{"start":{"line":31,"column":20},"end":{"line":57,"column":1}},"1":{"start":{"line":32,"column":2},"end":{"line":56,"column":4}},"2":{"start":{"line":39,"column":14},"end":{"line":46,"column":15}},"3":{"start":{"line":42,"column":16},"end":{"line":45,"column":17}},"4":{"start":{"line":44,"column":18},"end":{"line":44,"column":44}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":31,"column":20},"end":{"line":31,"column":21}},"loc":{"start":{"line":31,"column":50},"end":{"line":57,"column":1}},"line":31},"1":{"name":"(anonymous_1)","decl":{"start":{"line":37,"column":31},"end":{"line":37,"column":32}},"loc":{"start":{"line":37,"column":40},"end":{"line":47,"column":13}},"line":37}},"branchMap":{"0":{"loc":{"start":{"line":34,"column":7},"end":{"line":54,"column":7}},"type":"binary-expr","locations":[{"start":{"line":34,"column":7},"end":{"line":34,"column":22}},{"start":{"line":35,"column":8},"end":{"line":53,"column":17}}],"line":34},"1":{"loc":{"start":{"line":39,"column":14},"end":{"line":46,"column":15}},"type":"if","locations":[{"start":{"line":39,"column":14},"end":{"line":46,"column":15}},{"start":{"line":39,"column":14},"end":{"line":46,"column":15}}],"line":39},"2":{"loc":{"start":{"line":42,"column":16},"end":{"line":45,"column":17}},"type":"if","locations":[{"start":{"line":42,"column":16},"end":{"line":45,"column":17}},{"start":{"line":42,"column":16},"end":{"line":45,"column":17}}],"line":42}},"s":{"0":1,"1":1,"2":0,"3":0,"4":0},"f":{"0":1,"1":0},"b":{"0":[1,1],"1":[0,0],"2":[0,0]},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"f4b656105921bb5f9adf4af35f709f96b4f0f96e"} +,"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\src\\components\\paneRenderer\\PaneRenderer.tsx": {"path":"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\src\\components\\paneRenderer\\PaneRenderer.tsx","statementMap":{"0":{"start":{"line":13,"column":23},"end":{"line":40,"column":1}},"1":{"start":{"line":14,"column":44},"end":{"line":14,"column":49}},"2":{"start":{"line":16,"column":24},"end":{"line":16,"column":89}},"3":{"start":{"line":16,"column":52},"end":{"line":16,"column":77}},"4":{"start":{"line":17,"column":24},"end":{"line":17,"column":89}},"5":{"start":{"line":17,"column":52},"end":{"line":17,"column":77}},"6":{"start":{"line":18,"column":4},"end":{"line":39,"column":5}},"7":{"start":{"line":22,"column":20},"end":{"line":35,"column":27}},"8":{"start":{"line":28,"column":47},"end":{"line":28,"column":112}},"9":{"start":{"line":42,"column":29},"end":{"line":63,"column":2}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":13,"column":23},"end":{"line":13,"column":24}},"loc":{"start":{"line":13,"column":56},"end":{"line":40,"column":1}},"line":13},"1":{"name":"(anonymous_1)","decl":{"start":{"line":16,"column":47},"end":{"line":16,"column":48}},"loc":{"start":{"line":16,"column":52},"end":{"line":16,"column":77}},"line":16},"2":{"name":"(anonymous_2)","decl":{"start":{"line":17,"column":47},"end":{"line":17,"column":48}},"loc":{"start":{"line":17,"column":52},"end":{"line":17,"column":77}},"line":17},"3":{"name":"(anonymous_3)","decl":{"start":{"line":21,"column":36},"end":{"line":21,"column":37}},"loc":{"start":{"line":22,"column":20},"end":{"line":35,"column":27}},"line":22},"4":{"name":"(anonymous_4)","decl":{"start":{"line":28,"column":40},"end":{"line":28,"column":41}},"loc":{"start":{"line":28,"column":47},"end":{"line":28,"column":112}},"line":28}},"branchMap":{"0":{"loc":{"start":{"line":23,"column":65},"end":{"line":23,"column":150}},"type":"cond-expr","locations":[{"start":{"line":23,"column":95},"end":{"line":23,"column":121}},{"start":{"line":23,"column":124},"end":{"line":23,"column":150}}],"line":23},"1":{"loc":{"start":{"line":26,"column":43},"end":{"line":26,"column":98}},"type":"cond-expr","locations":[{"start":{"line":26,"column":73},"end":{"line":26,"column":84}},{"start":{"line":26,"column":87},"end":{"line":26,"column":98}}],"line":26},"2":{"loc":{"start":{"line":28,"column":47},"end":{"line":28,"column":112}},"type":"cond-expr","locations":[{"start":{"line":28,"column":77},"end":{"line":28,"column":93}},{"start":{"line":28,"column":96},"end":{"line":28,"column":112}}],"line":28}},"s":{"0":1,"1":2,"2":2,"3":2,"4":2,"5":2,"6":2,"7":2,"8":0,"9":1},"f":{"0":2,"1":2,"2":2,"3":2,"4":0},"b":{"0":[1,1],"1":[1,1],"2":[0,0]},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"ed80270a776096c8f837ac08fcde85bc3e1f2aaa"} +,"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\src\\components\\twoPaneApp\\TwoPaneApp.tsx": {"path":"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\src\\components\\twoPaneApp\\TwoPaneApp.tsx","statementMap":{"0":{"start":{"line":11,"column":19},"end":{"line":38,"column":1}},"1":{"start":{"line":13,"column":22},"end":{"line":13,"column":55}},"2":{"start":{"line":15,"column":37},"end":{"line":15,"column":109}},"3":{"start":{"line":15,"column":61},"end":{"line":15,"column":108}},"4":{"start":{"line":16,"column":37},"end":{"line":16,"column":109}},"5":{"start":{"line":16,"column":61},"end":{"line":16,"column":108}},"6":{"start":{"line":18,"column":2},"end":{"line":23,"column":9}},"7":{"start":{"line":19,"column":4},"end":{"line":22,"column":5}},"8":{"start":{"line":20,"column":6},"end":{"line":20,"column":113}},"9":{"start":{"line":21,"column":6},"end":{"line":21,"column":113}},"10":{"start":{"line":25,"column":2},"end":{"line":37,"column":4}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":11,"column":19},"end":{"line":11,"column":20}},"loc":{"start":{"line":11,"column":48},"end":{"line":38,"column":1}},"line":11},"1":{"name":"(anonymous_1)","decl":{"start":{"line":15,"column":54},"end":{"line":15,"column":55}},"loc":{"start":{"line":15,"column":61},"end":{"line":15,"column":108}},"line":15},"2":{"name":"(anonymous_2)","decl":{"start":{"line":16,"column":54},"end":{"line":16,"column":55}},"loc":{"start":{"line":16,"column":61},"end":{"line":16,"column":108}},"line":16},"3":{"name":"(anonymous_3)","decl":{"start":{"line":18,"column":12},"end":{"line":18,"column":13}},"loc":{"start":{"line":18,"column":18},"end":{"line":23,"column":3}},"line":18}},"branchMap":{"0":{"loc":{"start":{"line":19,"column":4},"end":{"line":22,"column":5}},"type":"if","locations":[{"start":{"line":19,"column":4},"end":{"line":22,"column":5}},{"start":{"line":19,"column":4},"end":{"line":22,"column":5}}],"line":19},"1":{"loc":{"start":{"line":19,"column":8},"end":{"line":19,"column":48}},"type":"binary-expr","locations":[{"start":{"line":19,"column":8},"end":{"line":19,"column":26}},{"start":{"line":19,"column":30},"end":{"line":19,"column":48}}],"line":19},"2":{"loc":{"start":{"line":28,"column":9},"end":{"line":34,"column":11}},"type":"cond-expr","locations":[{"start":{"line":29,"column":10},"end":{"line":29,"column":35}},{"start":{"line":31,"column":12},"end":{"line":33,"column":23}}],"line":28}},"s":{"0":1,"1":1,"2":1,"3":0,"4":1,"5":0,"6":1,"7":1,"8":1,"9":1,"10":1},"f":{"0":1,"1":0,"2":0,"3":1},"b":{"0":[1,0],"1":[1,1],"2":[0,1]},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"5e429f426ac7e4fdb02cd2e97f63377b6dbabd05"} +,"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\src\\components\\twoPaneHub\\TwoPaneHub.tsx": {"path":"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\src\\components\\twoPaneHub\\TwoPaneHub.tsx","statementMap":{"0":{"start":{"line":18,"column":19},"end":{"line":62,"column":1}},"1":{"start":{"line":20,"column":49},"end":{"line":20,"column":73}},"2":{"start":{"line":21,"column":36},"end":{"line":21,"column":55}},"3":{"start":{"line":23,"column":19},"end":{"line":23,"column":38}},"4":{"start":{"line":25,"column":2},"end":{"line":32,"column":8}},"5":{"start":{"line":26,"column":4},"end":{"line":26,"column":53}},"6":{"start":{"line":27,"column":4},"end":{"line":27,"column":81}},"7":{"start":{"line":29,"column":4},"end":{"line":31,"column":5}},"8":{"start":{"line":30,"column":6},"end":{"line":30,"column":86}},"9":{"start":{"line":34,"column":40},"end":{"line":43,"column":50}},"10":{"start":{"line":35,"column":4},"end":{"line":42,"column":6}},"11":{"start":{"line":36,"column":6},"end":{"line":41,"column":7}},"12":{"start":{"line":45,"column":33},"end":{"line":52,"column":3}},"13":{"start":{"line":46,"column":4},"end":{"line":46,"column":45}},"14":{"start":{"line":47,"column":4},"end":{"line":51,"column":5}},"15":{"start":{"line":48,"column":6},"end":{"line":48,"column":38}},"16":{"start":{"line":50,"column":6},"end":{"line":50,"column":38}},"17":{"start":{"line":54,"column":2},"end":{"line":61,"column":4}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":18,"column":19},"end":{"line":18,"column":20}},"loc":{"start":{"line":18,"column":25},"end":{"line":62,"column":1}},"line":18},"1":{"name":"(anonymous_1)","decl":{"start":{"line":25,"column":12},"end":{"line":25,"column":13}},"loc":{"start":{"line":25,"column":18},"end":{"line":32,"column":3}},"line":25},"2":{"name":"(anonymous_2)","decl":{"start":{"line":29,"column":11},"end":{"line":29,"column":12}},"loc":{"start":{"line":29,"column":17},"end":{"line":31,"column":5}},"line":29},"3":{"name":"(anonymous_3)","decl":{"start":{"line":34,"column":48},"end":{"line":34,"column":49}},"loc":{"start":{"line":34,"column":54},"end":{"line":43,"column":3}},"line":34},"4":{"name":"(anonymous_4)","decl":{"start":{"line":35,"column":29},"end":{"line":35,"column":30}},"loc":{"start":{"line":35,"column":45},"end":{"line":42,"column":5}},"line":35},"5":{"name":"(anonymous_5)","decl":{"start":{"line":45,"column":33},"end":{"line":45,"column":34}},"loc":{"start":{"line":45,"column":68},"end":{"line":52,"column":3}},"line":45}},"branchMap":{"0":{"loc":{"start":{"line":47,"column":4},"end":{"line":51,"column":5}},"type":"if","locations":[{"start":{"line":47,"column":4},"end":{"line":51,"column":5}},{"start":{"line":47,"column":4},"end":{"line":51,"column":5}}],"line":47}},"s":{"0":1,"1":2,"2":2,"3":2,"4":2,"5":1,"6":1,"7":1,"8":0,"9":2,"10":2,"11":2,"12":2,"13":0,"14":0,"15":0,"16":0,"17":2},"f":{"0":2,"1":1,"2":0,"3":2,"4":2,"5":0},"b":{"0":[0,0]},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"c515c05e66cbdf11d3868783220c1654e6f1eb12"} +,"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\src\\onePane\\onePaneStore\\onePane.methods.ts": {"path":"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\src\\onePane\\onePaneStore\\onePane.methods.ts","statementMap":{"0":{"start":{"line":15,"column":12},"end":{"line":21,"column":1}},"1":{"start":{"line":16,"column":2},"end":{"line":16,"column":54}},"2":{"start":{"line":17,"column":2},"end":{"line":17,"column":65}},"3":{"start":{"line":18,"column":2},"end":{"line":20,"column":3}},"4":{"start":{"line":19,"column":4},"end":{"line":19,"column":65}},"5":{"start":{"line":27,"column":25},"end":{"line":36,"column":1}},"6":{"start":{"line":28,"column":26},"end":{"line":28,"column":54}},"7":{"start":{"line":29,"column":37},"end":{"line":29,"column":85}},"8":{"start":{"line":29,"column":59},"end":{"line":29,"column":84}},"9":{"start":{"line":31,"column":2},"end":{"line":35,"column":3}},"10":{"start":{"line":31,"column":32},"end":{"line":31,"column":68}},"11":{"start":{"line":32,"column":4},"end":{"line":32,"column":38}},"12":{"start":{"line":34,"column":4},"end":{"line":34,"column":72}},"13":{"start":{"line":41,"column":30},"end":{"line":48,"column":1}},"14":{"start":{"line":42,"column":26},"end":{"line":42,"column":54}},"15":{"start":{"line":43,"column":2},"end":{"line":47,"column":4}},"16":{"start":{"line":44,"column":4},"end":{"line":46,"column":5}},"17":{"start":{"line":45,"column":6},"end":{"line":45,"column":57}},"18":{"start":{"line":55,"column":19},"end":{"line":65,"column":1}},"19":{"start":{"line":56,"column":26},"end":{"line":56,"column":54}},"20":{"start":{"line":57,"column":37},"end":{"line":57,"column":85}},"21":{"start":{"line":57,"column":59},"end":{"line":57,"column":84}},"22":{"start":{"line":59,"column":2},"end":{"line":62,"column":3}},"23":{"start":{"line":59,"column":15},"end":{"line":59,"column":16}},"24":{"start":{"line":60,"column":4},"end":{"line":60,"column":59}},"25":{"start":{"line":61,"column":4},"end":{"line":61,"column":64}},"26":{"start":{"line":64,"column":2},"end":{"line":64,"column":43}},"27":{"start":{"line":70,"column":15},"end":{"line":78,"column":1}},"28":{"start":{"line":71,"column":26},"end":{"line":71,"column":54}},"29":{"start":{"line":72,"column":37},"end":{"line":72,"column":85}},"30":{"start":{"line":72,"column":59},"end":{"line":72,"column":84}},"31":{"start":{"line":74,"column":2},"end":{"line":74,"column":61}},"32":{"start":{"line":75,"column":2},"end":{"line":75,"column":66}},"33":{"start":{"line":76,"column":2},"end":{"line":76,"column":42}},"34":{"start":{"line":84,"column":22},"end":{"line":86,"column":1}},"35":{"start":{"line":85,"column":2},"end":{"line":85,"column":71}},"36":{"start":{"line":91,"column":22},"end":{"line":93,"column":1}},"37":{"start":{"line":92,"column":2},"end":{"line":92,"column":66}},"38":{"start":{"line":95,"column":26},"end":{"line":103,"column":1}},"39":{"start":{"line":107,"column":34},"end":{"line":107,"column":51}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":15,"column":12},"end":{"line":15,"column":13}},"loc":{"start":{"line":15,"column":96},"end":{"line":21,"column":1}},"line":15},"1":{"name":"(anonymous_1)","decl":{"start":{"line":27,"column":25},"end":{"line":27,"column":26}},"loc":{"start":{"line":27,"column":115},"end":{"line":36,"column":1}},"line":27},"2":{"name":"(anonymous_2)","decl":{"start":{"line":29,"column":54},"end":{"line":29,"column":55}},"loc":{"start":{"line":29,"column":59},"end":{"line":29,"column":84}},"line":29},"3":{"name":"(anonymous_3)","decl":{"start":{"line":31,"column":25},"end":{"line":31,"column":26}},"loc":{"start":{"line":31,"column":32},"end":{"line":31,"column":68}},"line":31},"4":{"name":"(anonymous_4)","decl":{"start":{"line":41,"column":30},"end":{"line":41,"column":31}},"loc":{"start":{"line":41,"column":36},"end":{"line":48,"column":1}},"line":41},"5":{"name":"(anonymous_5)","decl":{"start":{"line":43,"column":16},"end":{"line":43,"column":17}},"loc":{"start":{"line":43,"column":23},"end":{"line":47,"column":3}},"line":43},"6":{"name":"(anonymous_6)","decl":{"start":{"line":55,"column":19},"end":{"line":55,"column":20}},"loc":{"start":{"line":55,"column":25},"end":{"line":65,"column":1}},"line":55},"7":{"name":"(anonymous_7)","decl":{"start":{"line":57,"column":54},"end":{"line":57,"column":55}},"loc":{"start":{"line":57,"column":59},"end":{"line":57,"column":84}},"line":57},"8":{"name":"(anonymous_8)","decl":{"start":{"line":70,"column":15},"end":{"line":70,"column":16}},"loc":{"start":{"line":70,"column":21},"end":{"line":78,"column":1}},"line":70},"9":{"name":"(anonymous_9)","decl":{"start":{"line":72,"column":54},"end":{"line":72,"column":55}},"loc":{"start":{"line":72,"column":59},"end":{"line":72,"column":84}},"line":72},"10":{"name":"(anonymous_10)","decl":{"start":{"line":84,"column":22},"end":{"line":84,"column":23}},"loc":{"start":{"line":84,"column":68},"end":{"line":86,"column":1}},"line":84},"11":{"name":"(anonymous_11)","decl":{"start":{"line":91,"column":22},"end":{"line":91,"column":23}},"loc":{"start":{"line":91,"column":56},"end":{"line":93,"column":1}},"line":91}},"branchMap":{"0":{"loc":{"start":{"line":15,"column":67},"end":{"line":15,"column":91}},"type":"default-arg","locations":[{"start":{"line":15,"column":86},"end":{"line":15,"column":91}}],"line":15},"1":{"loc":{"start":{"line":18,"column":2},"end":{"line":20,"column":3}},"type":"if","locations":[{"start":{"line":18,"column":2},"end":{"line":20,"column":3}},{"start":{"line":18,"column":2},"end":{"line":20,"column":3}}],"line":18},"2":{"loc":{"start":{"line":27,"column":86},"end":{"line":27,"column":110}},"type":"default-arg","locations":[{"start":{"line":27,"column":105},"end":{"line":27,"column":110}}],"line":27},"3":{"loc":{"start":{"line":31,"column":2},"end":{"line":35,"column":3}},"type":"if","locations":[{"start":{"line":31,"column":2},"end":{"line":35,"column":3}},{"start":{"line":31,"column":2},"end":{"line":35,"column":3}}],"line":31},"4":{"loc":{"start":{"line":44,"column":4},"end":{"line":46,"column":5}},"type":"if","locations":[{"start":{"line":44,"column":4},"end":{"line":46,"column":5}},{"start":{"line":44,"column":4},"end":{"line":46,"column":5}}],"line":44},"5":{"loc":{"start":{"line":44,"column":8},"end":{"line":44,"column":50}},"type":"binary-expr","locations":[{"start":{"line":44,"column":8},"end":{"line":44,"column":35}},{"start":{"line":44,"column":39},"end":{"line":44,"column":50}}],"line":44}},"s":{"0":3,"1":8,"2":8,"3":8,"4":4,"5":3,"6":4,"7":4,"8":12,"9":4,"10":7,"11":1,"12":3,"13":3,"14":1,"15":1,"16":5,"17":3,"18":3,"19":2,"20":2,"21":10,"22":2,"23":2,"24":5,"25":5,"26":2,"27":3,"28":2,"29":2,"30":8,"31":2,"32":2,"33":2,"34":3,"35":2,"36":3,"37":2,"38":3,"39":3},"f":{"0":8,"1":4,"2":12,"3":7,"4":1,"5":5,"6":2,"7":10,"8":2,"9":8,"10":2,"11":2},"b":{"0":[3],"1":[4,4],"2":[0],"3":[1,3],"4":[3,2],"5":[5,5]},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"25f502d63a147c9cb500c62e14ff0d3dbd532dbd"} +,"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\src\\twoPane\\twoPaneStore\\twoPane.methods.ts": {"path":"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\src\\twoPane\\twoPaneStore\\twoPane.methods.ts","statementMap":{"0":{"start":{"line":14,"column":12},"end":{"line":21,"column":1}},"1":{"start":{"line":16,"column":2},"end":{"line":16,"column":54}},"2":{"start":{"line":17,"column":2},"end":{"line":17,"column":65}},"3":{"start":{"line":18,"column":2},"end":{"line":20,"column":3}},"4":{"start":{"line":19,"column":4},"end":{"line":19,"column":65}},"5":{"start":{"line":27,"column":25},"end":{"line":36,"column":1}},"6":{"start":{"line":28,"column":26},"end":{"line":28,"column":54}},"7":{"start":{"line":29,"column":37},"end":{"line":29,"column":85}},"8":{"start":{"line":29,"column":59},"end":{"line":29,"column":84}},"9":{"start":{"line":31,"column":2},"end":{"line":35,"column":3}},"10":{"start":{"line":31,"column":32},"end":{"line":31,"column":68}},"11":{"start":{"line":32,"column":4},"end":{"line":32,"column":38}},"12":{"start":{"line":34,"column":4},"end":{"line":34,"column":72}},"13":{"start":{"line":40,"column":30},"end":{"line":48,"column":1}},"14":{"start":{"line":41,"column":26},"end":{"line":41,"column":54}},"15":{"start":{"line":42,"column":2},"end":{"line":46,"column":4}},"16":{"start":{"line":43,"column":4},"end":{"line":45,"column":5}},"17":{"start":{"line":44,"column":6},"end":{"line":44,"column":57}},"18":{"start":{"line":54,"column":19},"end":{"line":63,"column":1}},"19":{"start":{"line":55,"column":26},"end":{"line":55,"column":54}},"20":{"start":{"line":56,"column":37},"end":{"line":56,"column":85}},"21":{"start":{"line":56,"column":59},"end":{"line":56,"column":84}},"22":{"start":{"line":58,"column":2},"end":{"line":61,"column":3}},"23":{"start":{"line":58,"column":15},"end":{"line":58,"column":16}},"24":{"start":{"line":59,"column":4},"end":{"line":59,"column":59}},"25":{"start":{"line":60,"column":4},"end":{"line":60,"column":64}},"26":{"start":{"line":62,"column":2},"end":{"line":62,"column":43}},"27":{"start":{"line":68,"column":15},"end":{"line":76,"column":1}},"28":{"start":{"line":69,"column":26},"end":{"line":69,"column":54}},"29":{"start":{"line":70,"column":37},"end":{"line":70,"column":85}},"30":{"start":{"line":70,"column":59},"end":{"line":70,"column":84}},"31":{"start":{"line":72,"column":2},"end":{"line":72,"column":61}},"32":{"start":{"line":73,"column":2},"end":{"line":73,"column":66}},"33":{"start":{"line":74,"column":2},"end":{"line":74,"column":42}},"34":{"start":{"line":81,"column":22},"end":{"line":83,"column":1}},"35":{"start":{"line":82,"column":2},"end":{"line":82,"column":71}},"36":{"start":{"line":88,"column":22},"end":{"line":90,"column":1}},"37":{"start":{"line":89,"column":2},"end":{"line":89,"column":45}},"38":{"start":{"line":92,"column":26},"end":{"line":100,"column":1}},"39":{"start":{"line":104,"column":34},"end":{"line":104,"column":51}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":14,"column":12},"end":{"line":14,"column":13}},"loc":{"start":{"line":14,"column":102},"end":{"line":21,"column":1}},"line":14},"1":{"name":"(anonymous_1)","decl":{"start":{"line":27,"column":25},"end":{"line":27,"column":26}},"loc":{"start":{"line":27,"column":116},"end":{"line":36,"column":1}},"line":27},"2":{"name":"(anonymous_2)","decl":{"start":{"line":29,"column":54},"end":{"line":29,"column":55}},"loc":{"start":{"line":29,"column":59},"end":{"line":29,"column":84}},"line":29},"3":{"name":"(anonymous_3)","decl":{"start":{"line":31,"column":25},"end":{"line":31,"column":26}},"loc":{"start":{"line":31,"column":32},"end":{"line":31,"column":68}},"line":31},"4":{"name":"(anonymous_4)","decl":{"start":{"line":40,"column":30},"end":{"line":40,"column":31}},"loc":{"start":{"line":40,"column":36},"end":{"line":48,"column":1}},"line":40},"5":{"name":"(anonymous_5)","decl":{"start":{"line":42,"column":16},"end":{"line":42,"column":17}},"loc":{"start":{"line":42,"column":23},"end":{"line":46,"column":3}},"line":42},"6":{"name":"(anonymous_6)","decl":{"start":{"line":54,"column":19},"end":{"line":54,"column":20}},"loc":{"start":{"line":54,"column":25},"end":{"line":63,"column":1}},"line":54},"7":{"name":"(anonymous_7)","decl":{"start":{"line":56,"column":54},"end":{"line":56,"column":55}},"loc":{"start":{"line":56,"column":59},"end":{"line":56,"column":84}},"line":56},"8":{"name":"(anonymous_8)","decl":{"start":{"line":68,"column":15},"end":{"line":68,"column":16}},"loc":{"start":{"line":68,"column":21},"end":{"line":76,"column":1}},"line":68},"9":{"name":"(anonymous_9)","decl":{"start":{"line":70,"column":54},"end":{"line":70,"column":55}},"loc":{"start":{"line":70,"column":59},"end":{"line":70,"column":84}},"line":70},"10":{"name":"(anonymous_10)","decl":{"start":{"line":81,"column":22},"end":{"line":81,"column":23}},"loc":{"start":{"line":81,"column":68},"end":{"line":83,"column":1}},"line":81},"11":{"name":"(anonymous_11)","decl":{"start":{"line":88,"column":22},"end":{"line":88,"column":23}},"loc":{"start":{"line":88,"column":56},"end":{"line":90,"column":1}},"line":88}},"branchMap":{"0":{"loc":{"start":{"line":14,"column":73},"end":{"line":14,"column":97}},"type":"default-arg","locations":[{"start":{"line":14,"column":92},"end":{"line":14,"column":97}}],"line":14},"1":{"loc":{"start":{"line":18,"column":2},"end":{"line":20,"column":3}},"type":"if","locations":[{"start":{"line":18,"column":2},"end":{"line":20,"column":3}},{"start":{"line":18,"column":2},"end":{"line":20,"column":3}}],"line":18},"2":{"loc":{"start":{"line":27,"column":86},"end":{"line":27,"column":110}},"type":"default-arg","locations":[{"start":{"line":27,"column":105},"end":{"line":27,"column":110}}],"line":27},"3":{"loc":{"start":{"line":31,"column":2},"end":{"line":35,"column":3}},"type":"if","locations":[{"start":{"line":31,"column":2},"end":{"line":35,"column":3}},{"start":{"line":31,"column":2},"end":{"line":35,"column":3}}],"line":31},"4":{"loc":{"start":{"line":43,"column":4},"end":{"line":45,"column":5}},"type":"if","locations":[{"start":{"line":43,"column":4},"end":{"line":45,"column":5}},{"start":{"line":43,"column":4},"end":{"line":45,"column":5}}],"line":43},"5":{"loc":{"start":{"line":43,"column":8},"end":{"line":43,"column":50}},"type":"binary-expr","locations":[{"start":{"line":43,"column":8},"end":{"line":43,"column":35}},{"start":{"line":43,"column":39},"end":{"line":43,"column":50}}],"line":43}},"s":{"0":3,"1":8,"2":8,"3":8,"4":4,"5":3,"6":4,"7":4,"8":11,"9":4,"10":7,"11":1,"12":3,"13":3,"14":1,"15":1,"16":5,"17":3,"18":3,"19":2,"20":2,"21":10,"22":2,"23":2,"24":5,"25":5,"26":2,"27":3,"28":2,"29":2,"30":8,"31":2,"32":2,"33":2,"34":3,"35":2,"36":3,"37":2,"38":3,"39":3},"f":{"0":8,"1":4,"2":11,"3":7,"4":1,"5":5,"6":2,"7":10,"8":2,"9":8,"10":2,"11":2},"b":{"0":[3],"1":[4,4],"2":[0],"3":[1,3],"4":[3,2],"5":[5,5]},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"0e1c3304249e6f17b8810cad9f91ee3470df5a99"} +,"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\src\\utilities\\autoPane.methods.ts": {"path":"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\src\\utilities\\autoPane.methods.ts","statementMap":{"0":{"start":{"line":11,"column":12},"end":{"line":17,"column":1}},"1":{"start":{"line":12,"column":2},"end":{"line":16,"column":3}},"2":{"start":{"line":13,"column":4},"end":{"line":13,"column":50}},"3":{"start":{"line":15,"column":4},"end":{"line":15,"column":50}},"4":{"start":{"line":23,"column":25},"end":{"line":29,"column":1}},"5":{"start":{"line":24,"column":2},"end":{"line":28,"column":3}},"6":{"start":{"line":25,"column":4},"end":{"line":25,"column":63}},"7":{"start":{"line":27,"column":4},"end":{"line":27,"column":63}},"8":{"start":{"line":35,"column":28},"end":{"line":41,"column":1}},"9":{"start":{"line":36,"column":2},"end":{"line":40,"column":3}},"10":{"start":{"line":37,"column":4},"end":{"line":37,"column":63}},"11":{"start":{"line":39,"column":4},"end":{"line":39,"column":50}},"12":{"start":{"line":47,"column":28},"end":{"line":53,"column":1}},"13":{"start":{"line":48,"column":2},"end":{"line":52,"column":3}},"14":{"start":{"line":49,"column":4},"end":{"line":49,"column":50}},"15":{"start":{"line":51,"column":4},"end":{"line":51,"column":63}},"16":{"start":{"line":58,"column":19},"end":{"line":64,"column":1}},"17":{"start":{"line":59,"column":2},"end":{"line":63,"column":3}},"18":{"start":{"line":60,"column":4},"end":{"line":60,"column":25}},"19":{"start":{"line":62,"column":4},"end":{"line":62,"column":25}},"20":{"start":{"line":70,"column":15},"end":{"line":76,"column":1}},"21":{"start":{"line":71,"column":2},"end":{"line":75,"column":3}},"22":{"start":{"line":72,"column":4},"end":{"line":72,"column":21}},"23":{"start":{"line":74,"column":4},"end":{"line":74,"column":21}},"24":{"start":{"line":81,"column":22},"end":{"line":87,"column":1}},"25":{"start":{"line":82,"column":2},"end":{"line":86,"column":3}},"26":{"start":{"line":83,"column":4},"end":{"line":83,"column":47}},"27":{"start":{"line":85,"column":4},"end":{"line":85,"column":47}},"28":{"start":{"line":93,"column":22},"end":{"line":99,"column":1}},"29":{"start":{"line":94,"column":2},"end":{"line":98,"column":3}},"30":{"start":{"line":95,"column":4},"end":{"line":95,"column":39}},"31":{"start":{"line":97,"column":4},"end":{"line":97,"column":39}},"32":{"start":{"line":103,"column":27},"end":{"line":112,"column":1}},"33":{"start":{"line":116,"column":36},"end":{"line":116,"column":54}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":11,"column":12},"end":{"line":11,"column":13}},"loc":{"start":{"line":11,"column":110},"end":{"line":17,"column":1}},"line":11},"1":{"name":"(anonymous_1)","decl":{"start":{"line":23,"column":25},"end":{"line":23,"column":26}},"loc":{"start":{"line":23,"column":124},"end":{"line":29,"column":1}},"line":23},"2":{"name":"(anonymous_2)","decl":{"start":{"line":35,"column":28},"end":{"line":35,"column":29}},"loc":{"start":{"line":35,"column":127},"end":{"line":41,"column":1}},"line":35},"3":{"name":"(anonymous_3)","decl":{"start":{"line":47,"column":28},"end":{"line":47,"column":29}},"loc":{"start":{"line":47,"column":127},"end":{"line":53,"column":1}},"line":47},"4":{"name":"(anonymous_4)","decl":{"start":{"line":58,"column":19},"end":{"line":58,"column":20}},"loc":{"start":{"line":58,"column":25},"end":{"line":64,"column":1}},"line":58},"5":{"name":"(anonymous_5)","decl":{"start":{"line":70,"column":15},"end":{"line":70,"column":16}},"loc":{"start":{"line":70,"column":21},"end":{"line":76,"column":1}},"line":70},"6":{"name":"(anonymous_6)","decl":{"start":{"line":81,"column":22},"end":{"line":81,"column":23}},"loc":{"start":{"line":81,"column":75},"end":{"line":87,"column":1}},"line":81},"7":{"name":"(anonymous_7)","decl":{"start":{"line":93,"column":22},"end":{"line":93,"column":23}},"loc":{"start":{"line":93,"column":56},"end":{"line":99,"column":1}},"line":93}},"branchMap":{"0":{"loc":{"start":{"line":11,"column":67},"end":{"line":11,"column":85}},"type":"default-arg","locations":[{"start":{"line":11,"column":80},"end":{"line":11,"column":85}}],"line":11},"1":{"loc":{"start":{"line":11,"column":87},"end":{"line":11,"column":105}},"type":"default-arg","locations":[{"start":{"line":11,"column":100},"end":{"line":11,"column":105}}],"line":11},"2":{"loc":{"start":{"line":12,"column":2},"end":{"line":16,"column":3}},"type":"if","locations":[{"start":{"line":12,"column":2},"end":{"line":16,"column":3}},{"start":{"line":12,"column":2},"end":{"line":16,"column":3}}],"line":12},"3":{"loc":{"start":{"line":23,"column":80},"end":{"line":23,"column":98}},"type":"default-arg","locations":[{"start":{"line":23,"column":93},"end":{"line":23,"column":98}}],"line":23},"4":{"loc":{"start":{"line":23,"column":100},"end":{"line":23,"column":118}},"type":"default-arg","locations":[{"start":{"line":23,"column":113},"end":{"line":23,"column":118}}],"line":23},"5":{"loc":{"start":{"line":24,"column":2},"end":{"line":28,"column":3}},"type":"if","locations":[{"start":{"line":24,"column":2},"end":{"line":28,"column":3}},{"start":{"line":24,"column":2},"end":{"line":28,"column":3}}],"line":24},"6":{"loc":{"start":{"line":35,"column":83},"end":{"line":35,"column":101}},"type":"default-arg","locations":[{"start":{"line":35,"column":96},"end":{"line":35,"column":101}}],"line":35},"7":{"loc":{"start":{"line":35,"column":103},"end":{"line":35,"column":121}},"type":"default-arg","locations":[{"start":{"line":35,"column":116},"end":{"line":35,"column":121}}],"line":35},"8":{"loc":{"start":{"line":36,"column":2},"end":{"line":40,"column":3}},"type":"if","locations":[{"start":{"line":36,"column":2},"end":{"line":40,"column":3}},{"start":{"line":36,"column":2},"end":{"line":40,"column":3}}],"line":36},"9":{"loc":{"start":{"line":47,"column":83},"end":{"line":47,"column":101}},"type":"default-arg","locations":[{"start":{"line":47,"column":96},"end":{"line":47,"column":101}}],"line":47},"10":{"loc":{"start":{"line":47,"column":103},"end":{"line":47,"column":121}},"type":"default-arg","locations":[{"start":{"line":47,"column":116},"end":{"line":47,"column":121}}],"line":47},"11":{"loc":{"start":{"line":48,"column":2},"end":{"line":52,"column":3}},"type":"if","locations":[{"start":{"line":48,"column":2},"end":{"line":52,"column":3}},{"start":{"line":48,"column":2},"end":{"line":52,"column":3}}],"line":48},"12":{"loc":{"start":{"line":59,"column":2},"end":{"line":63,"column":3}},"type":"if","locations":[{"start":{"line":59,"column":2},"end":{"line":63,"column":3}},{"start":{"line":59,"column":2},"end":{"line":63,"column":3}}],"line":59},"13":{"loc":{"start":{"line":71,"column":2},"end":{"line":75,"column":3}},"type":"if","locations":[{"start":{"line":71,"column":2},"end":{"line":75,"column":3}},{"start":{"line":71,"column":2},"end":{"line":75,"column":3}}],"line":71},"14":{"loc":{"start":{"line":82,"column":2},"end":{"line":86,"column":3}},"type":"if","locations":[{"start":{"line":82,"column":2},"end":{"line":86,"column":3}},{"start":{"line":82,"column":2},"end":{"line":86,"column":3}}],"line":82},"15":{"loc":{"start":{"line":94,"column":2},"end":{"line":98,"column":3}},"type":"if","locations":[{"start":{"line":94,"column":2},"end":{"line":98,"column":3}},{"start":{"line":94,"column":2},"end":{"line":98,"column":3}}],"line":94}},"s":{"0":1,"1":2,"2":1,"3":1,"4":1,"5":2,"6":1,"7":1,"8":1,"9":2,"10":1,"11":1,"12":1,"13":2,"14":1,"15":1,"16":1,"17":2,"18":1,"19":1,"20":1,"21":2,"22":1,"23":1,"24":1,"25":2,"26":1,"27":1,"28":1,"29":2,"30":1,"31":1,"32":1,"33":1},"f":{"0":2,"1":2,"2":2,"3":2,"4":2,"5":2,"6":2,"7":2},"b":{"0":[2],"1":[2],"2":[1,1],"3":[2],"4":[2],"5":[1,1],"6":[2],"7":[2],"8":[1,1],"9":[2],"10":[2],"11":[1,1],"12":[1,1],"13":[1,1],"14":[1,1],"15":[1,1]},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"2a10eb1cae2fb476eb8cf842ef851c00939bcd90"} +,"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\src\\utilities\\extensionMethods.ts": {"path":"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\src\\utilities\\extensionMethods.ts","statementMap":{"0":{"start":{"line":11,"column":0},"end":{"line":17,"column":2}},"1":{"start":{"line":12,"column":4},"end":{"line":14,"column":5}},"2":{"start":{"line":13,"column":8},"end":{"line":13,"column":37}},"3":{"start":{"line":16,"column":4},"end":{"line":16,"column":21}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":11,"column":23},"end":{"line":11,"column":24}},"loc":{"start":{"line":11,"column":35},"end":{"line":17,"column":1}},"line":11}},"branchMap":{"0":{"loc":{"start":{"line":12,"column":4},"end":{"line":14,"column":5}},"type":"if","locations":[{"start":{"line":12,"column":4},"end":{"line":14,"column":5}},{"start":{"line":12,"column":4},"end":{"line":14,"column":5}}],"line":12}},"s":{"0":8,"1":8,"2":8,"3":0},"f":{"0":8},"b":{"0":[8,0]},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"fb922234113d19b48914b703029028d26d266094"} +,"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\src\\utilities\\interfaces.ts": {"path":"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\src\\utilities\\interfaces.ts","statementMap":{},"fnMap":{},"branchMap":{},"s":{},"f":{},"b":{},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"f641aef9db51203d928b02bf9259178b429ed46b"} +,"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\src\\utilities\\utility.methods.ts": {"path":"C:\\Users\\v-kealoi\\Documents\\DEV\\react-native-dualscreen\\twopane-navigation\\packages\\twopane-navigation\\src\\utilities\\utility.methods.ts","statementMap":{"0":{"start":{"line":4,"column":18},"end":{"line":6,"column":1}},"1":{"start":{"line":5,"column":2},"end":{"line":5,"column":55}},"2":{"start":{"line":8,"column":26},"end":{"line":10,"column":1}},"3":{"start":{"line":14,"column":34},"end":{"line":14,"column":51}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":4,"column":18},"end":{"line":4,"column":19}},"loc":{"start":{"line":4,"column":33},"end":{"line":6,"column":1}},"line":4}},"branchMap":{},"s":{"0":1,"1":0,"2":1,"3":1},"f":{"0":0},"b":{},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"6e2e5cb27a4aea213b75f9f3708a2f84fca7c96a"} } diff --git a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/index.html b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/index.html index 8b20804..70cbf89 100644 --- a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/index.html +++ b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/index.html @@ -72,7 +72,7 @@ - twopane-navigation + src
@@ -87,7 +87,7 @@ - twopane-navigation/Shared/screenStore/headerStore + src/Shared/screenStore/headerStore
@@ -102,7 +102,7 @@ - twopane-navigation/Shared/screenStore/headerStore/tests + src/Shared/screenStore/headerStore/tests
@@ -117,7 +117,7 @@ - twopane-navigation/Shared/screenStore/keyStore + src/Shared/screenStore/keyStore
@@ -132,7 +132,7 @@ - twopane-navigation/Shared/screenStore/keyStore/tests + src/Shared/screenStore/keyStore/tests
@@ -147,7 +147,7 @@ - twopane-navigation/Shared/screenStore/twoPaneElementStore + src/Shared/screenStore/paneElementStore
@@ -162,7 +162,7 @@ - twopane-navigation/Shared/screenStore/twoPaneElementStore/tests + src/Shared/screenStore/paneElementStore/tests
@@ -177,7 +177,7 @@ - twopane-navigation/Shared/utilityStore + src/Shared/utilityStore
@@ -192,37 +192,7 @@ - twopane-navigation/components/dualApp - -
- - 81.82% - 9/11 - 66.67% - 4/6 - 50% - 2/4 - 100% - 9/9 - - - - twopane-navigation/components/dualHub - -
- - 72.22% - 13/18 - 0% - 0/2 - 66.67% - 4/6 - 72.22% - 13/18 - - - - twopane-navigation/components/screenHeader + src/components/paneHeader
@@ -237,7 +207,7 @@ - twopane-navigation/components/screenHeaderContainer + src/components/paneHeaderContainer
@@ -252,7 +222,7 @@ - twopane-navigation/components/screenOverlay + src/components/paneOverlay
@@ -267,7 +237,7 @@ - twopane-navigation/components/screenRenderer + src/components/paneRenderer
@@ -282,7 +252,37 @@ - twopane-navigation/dualScreen/dualScreenStore + src/components/twoPaneApp + +
+ + 81.82% + 9/11 + 66.67% + 4/6 + 50% + 2/4 + 100% + 9/9 + + + + src/components/twoPaneHub + +
+ + 72.22% + 13/18 + 0% + 0/2 + 66.67% + 4/6 + 72.22% + 13/18 + + + + src/onePane/onePaneStore
@@ -297,7 +297,7 @@ - twopane-navigation/singleScreen/singleScreenStore + src/twoPane/twoPaneStore
@@ -312,7 +312,7 @@ - twopane-navigation/utilities + src/utilities
@@ -334,7 +334,7 @@ diff --git a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/Shared/screenStore/headerStore/header.actions.ts.html b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/Shared/screenStore/headerStore/header.actions.ts.html similarity index 95% rename from twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/Shared/screenStore/headerStore/header.actions.ts.html rename to twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/Shared/screenStore/headerStore/header.actions.ts.html index d8f45f3..dd6215c 100644 --- a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/Shared/screenStore/headerStore/header.actions.ts.html +++ b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/Shared/screenStore/headerStore/header.actions.ts.html @@ -3,7 +3,7 @@ - Code coverage report for twopane-navigation/Shared/screenStore/headerStore/header.actions.ts + Code coverage report for src/Shared/screenStore/headerStore/header.actions.ts @@ -18,7 +18,7 @@
-

All files / twopane-navigation/Shared/screenStore/headerStore header.actions.ts

+

All files / src/Shared/screenStore/headerStore header.actions.ts

@@ -128,7 +128,7 @@    
import { IHeaderAction, IHeader } from "./header.interface";
 import { PUSH_HEADER, REPLACE_HEADER, REMOVE_KEY_HEADER } from "./header.types";
-import { IKeyAction, IKeyOnlyAction } from "../keyStore/key.interface";
+import { IKeyOnlyAction } from "../keyStore/key.interface";
  
 export const pushHeader = (
     key: string,
@@ -168,7 +168,7 @@ export const removeHeaderByKey = (
             
         
diff --git a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/Shared/screenStore/headerStore/header.reducer.ts.html b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/Shared/screenStore/headerStore/header.reducer.ts.html similarity index 96% rename from twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/Shared/screenStore/headerStore/header.reducer.ts.html rename to twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/Shared/screenStore/headerStore/header.reducer.ts.html index ec6c5c4..56ce26c 100644 --- a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/Shared/screenStore/headerStore/header.reducer.ts.html +++ b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/Shared/screenStore/headerStore/header.reducer.ts.html @@ -3,7 +3,7 @@ - Code coverage report for twopane-navigation/Shared/screenStore/headerStore/header.reducer.ts + Code coverage report for src/Shared/screenStore/headerStore/header.reducer.ts @@ -18,7 +18,7 @@
-

All files / twopane-navigation/Shared/screenStore/headerStore header.reducer.ts

+

All files / src/Shared/screenStore/headerStore header.reducer.ts

@@ -207,7 +207,7 @@ export default headerReducer;
diff --git a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/Shared/screenStore/headerStore/header.selector.ts.html b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/Shared/screenStore/headerStore/header.selector.ts.html similarity index 92% rename from twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/Shared/screenStore/headerStore/header.selector.ts.html rename to twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/Shared/screenStore/headerStore/header.selector.ts.html index 27b6244..3940fa1 100644 --- a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/Shared/screenStore/headerStore/header.selector.ts.html +++ b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/Shared/screenStore/headerStore/header.selector.ts.html @@ -3,7 +3,7 @@ - Code coverage report for twopane-navigation/Shared/screenStore/headerStore/header.selector.ts + Code coverage report for src/Shared/screenStore/headerStore/header.selector.ts @@ -18,7 +18,7 @@
-

All files / twopane-navigation/Shared/screenStore/headerStore header.selector.ts

+

All files / src/Shared/screenStore/headerStore header.selector.ts

@@ -84,7 +84,7 @@ export const getHeaderSelector = (): IHeaderState => {
diff --git a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/Shared/screenStore/headerStore/header.types.ts.html b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/Shared/screenStore/headerStore/header.types.ts.html similarity index 93% rename from twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/Shared/screenStore/headerStore/header.types.ts.html rename to twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/Shared/screenStore/headerStore/header.types.ts.html index c824256..6e01ae6 100644 --- a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/Shared/screenStore/headerStore/header.types.ts.html +++ b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/Shared/screenStore/headerStore/header.types.ts.html @@ -3,7 +3,7 @@ - Code coverage report for twopane-navigation/Shared/screenStore/headerStore/header.types.ts + Code coverage report for src/Shared/screenStore/headerStore/header.types.ts @@ -18,7 +18,7 @@
-

All files / twopane-navigation/Shared/screenStore/headerStore header.types.ts

+

All files / src/Shared/screenStore/headerStore header.types.ts

@@ -84,7 +84,7 @@ export const REMOVE_KEY_HEADER: string = 'REMOVE_KEY_HEADER';
diff --git a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/Shared/screenStore/headerStore/index.html b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/Shared/screenStore/headerStore/index.html similarity index 95% rename from twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/Shared/screenStore/headerStore/index.html rename to twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/Shared/screenStore/headerStore/index.html index eb3a453..669b273 100644 --- a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/Shared/screenStore/headerStore/index.html +++ b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/Shared/screenStore/headerStore/index.html @@ -3,7 +3,7 @@ - Code coverage report for twopane-navigation/Shared/screenStore/headerStore + Code coverage report for src/Shared/screenStore/headerStore @@ -18,7 +18,7 @@
-

All files twopane-navigation/Shared/screenStore/headerStore

+

All files src/Shared/screenStore/headerStore

@@ -139,7 +139,7 @@
diff --git a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/Shared/screenStore/headerStore/tests/header.methods.helpers.tsx.html b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/Shared/screenStore/headerStore/tests/header.methods.helpers.tsx.html similarity index 93% rename from twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/Shared/screenStore/headerStore/tests/header.methods.helpers.tsx.html rename to twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/Shared/screenStore/headerStore/tests/header.methods.helpers.tsx.html index 896dcf0..5b78180 100644 --- a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/Shared/screenStore/headerStore/tests/header.methods.helpers.tsx.html +++ b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/Shared/screenStore/headerStore/tests/header.methods.helpers.tsx.html @@ -3,7 +3,7 @@ - Code coverage report for twopane-navigation/Shared/screenStore/headerStore/tests/header.methods.helpers.tsx + Code coverage report for src/Shared/screenStore/headerStore/tests/header.methods.helpers.tsx @@ -18,7 +18,7 @@
-

All files / twopane-navigation/Shared/screenStore/headerStore/tests header.methods.helpers.tsx

+

All files / src/Shared/screenStore/headerStore/tests header.methods.helpers.tsx

@@ -117,7 +117,7 @@ export const headerObjectBuilder = (key: string, header: IHeader): IHeaderObject
diff --git a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/Shared/screenStore/headerStore/tests/index.html b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/Shared/screenStore/headerStore/tests/index.html similarity index 93% rename from twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/Shared/screenStore/headerStore/tests/index.html rename to twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/Shared/screenStore/headerStore/tests/index.html index bf7204b..7301f8b 100644 --- a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/Shared/screenStore/headerStore/tests/index.html +++ b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/Shared/screenStore/headerStore/tests/index.html @@ -3,7 +3,7 @@ - Code coverage report for twopane-navigation/Shared/screenStore/headerStore/tests + Code coverage report for src/Shared/screenStore/headerStore/tests @@ -18,7 +18,7 @@
-

All files twopane-navigation/Shared/screenStore/headerStore/tests

+

All files src/Shared/screenStore/headerStore/tests

@@ -94,7 +94,7 @@
diff --git a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/Shared/screenStore/keyStore/index.html b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/Shared/screenStore/keyStore/index.html similarity index 95% rename from twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/Shared/screenStore/keyStore/index.html rename to twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/Shared/screenStore/keyStore/index.html index c416c0f..249f80b 100644 --- a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/Shared/screenStore/keyStore/index.html +++ b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/Shared/screenStore/keyStore/index.html @@ -3,7 +3,7 @@ - Code coverage report for twopane-navigation/Shared/screenStore/keyStore + Code coverage report for src/Shared/screenStore/keyStore @@ -18,7 +18,7 @@
-

All files twopane-navigation/Shared/screenStore/keyStore

+

All files src/Shared/screenStore/keyStore

@@ -139,7 +139,7 @@
diff --git a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/Shared/screenStore/keyStore/key.actions.ts.html b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/Shared/screenStore/keyStore/key.actions.ts.html similarity index 93% rename from twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/Shared/screenStore/keyStore/key.actions.ts.html rename to twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/Shared/screenStore/keyStore/key.actions.ts.html index 51f7a7b..dbb26fd 100644 --- a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/Shared/screenStore/keyStore/key.actions.ts.html +++ b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/Shared/screenStore/keyStore/key.actions.ts.html @@ -3,7 +3,7 @@ - Code coverage report for twopane-navigation/Shared/screenStore/keyStore/key.actions.ts + Code coverage report for src/Shared/screenStore/keyStore/key.actions.ts @@ -18,7 +18,7 @@
-

All files / twopane-navigation/Shared/screenStore/keyStore key.actions.ts

+

All files / src/Shared/screenStore/keyStore key.actions.ts

@@ -174,12 +174,12 @@       - 
import { screenType } from "../../../utilities/interfaces";
+ 
import { paneType } from "../../../utilities/interfaces";
 import { IKeyAction, IScreenOnlyAction, IKeyScreenAction } from "./key.interface";
 import { PUSH_KEY, POP_KEY, MOVE_TO_FRONT_KEY, REMOVE_KEY, CHANGE_SCREEN_KEY, POP_TO_FRONT_KEY } from "./key.types";
  
 export const pushKey = (
-    screen: screenType,
+    screen: paneType,
     key: string,
     isMerge: boolean
 ): IKeyAction => ({
@@ -194,7 +194,7 @@ export const pushKey = (
 /**
  * Removes all elements of the stack and returns element in index 0
  */
-export const popToFront = (screen: screenType): IScreenOnlyAction => ({
+export const popToFront = (screen: paneType): IScreenOnlyAction => ({
     type: POP_TO_FRONT_KEY,
     payload: {
         screen: screen
@@ -205,14 +205,14 @@ export const popToFront = (screen: screenType): IScreenOnlyAction => ({
 /**
  * Go back one element in the stack
  */
-export const popScreen = (screen: screenType): IScreenOnlyAction => ({
+export const popScreen = (screen: paneType): IScreenOnlyAction => ({
     type: POP_KEY,
     payload: {
         screen: screen
     }
 });
  
-export const moveToFront = (screen: screenType,
+export const moveToFront = (screen: paneType,
     key: string
 ): IKeyScreenAction => ({
     type: MOVE_TO_FRONT_KEY,
@@ -222,7 +222,7 @@ export const moveToFront = (screen: screenType,
     }
 });
  
-export const changeScreen = (screen: screenType,
+export const changeScreen = (screen: paneType,
     key: string
 ): IKeyScreenAction => ({
     type: CHANGE_SCREEN_KEY,
@@ -240,7 +240,7 @@ export const changeScreen = (screen: screenType,
             
         
diff --git a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/Shared/screenStore/keyStore/key.reducer.ts.html b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/Shared/screenStore/keyStore/key.reducer.ts.html similarity index 90% rename from twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/Shared/screenStore/keyStore/key.reducer.ts.html rename to twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/Shared/screenStore/keyStore/key.reducer.ts.html index e4ba141..d0caf72 100644 --- a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/Shared/screenStore/keyStore/key.reducer.ts.html +++ b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/Shared/screenStore/keyStore/key.reducer.ts.html @@ -3,7 +3,7 @@ - Code coverage report for twopane-navigation/Shared/screenStore/keyStore/key.reducer.ts + Code coverage report for src/Shared/screenStore/keyStore/key.reducer.ts @@ -18,7 +18,7 @@
-

All files / twopane-navigation/Shared/screenStore/keyStore key.reducer.ts

+

All files / src/Shared/screenStore/keyStore key.reducer.ts

@@ -285,7 +285,7 @@      
import {
-    screenType,
+    paneType,
 } from '../../../utilities/interfaces';
 import { IKeyState, IKeyAction, IKeyObject } from './key.interface';
 import _ from 'lodash';
@@ -312,59 +312,59 @@ const keyReducers = (
             };
         }
         case POP_TO_FRONT_KEY: {
-            const singleScreenState = state.keys.filter(x => x.screen === screenType.SINGLE);
-            const dualScreenState = state.keys.filter(x => x.screen === screenType.DUAL);
+            const onePaneState = state.keys.filter(x => x.screen === paneType.ONE);
+            const twoPaneState = state.keys.filter(x => x.screen === paneType.TWO);
  
-            if (action.payload.screen === screenType.SINGLE) {
+            if (action.payload.screen === paneType.ONE) {
                 return {
                     ...state, //state retains state for all variables
-                    keys: [singleScreenState[0], ...dualScreenState]
+                    keys: [onePaneState[0], ...twoPaneState]
                 };
             };
  
             return {
                 ...state, //state retains state for all variables
-                keys: [...singleScreenState, dualScreenState[0]]
+                keys: [...onePaneState, twoPaneState[0]]
             };
         }
         case POP_KEY: {
-            const singleScreenState = state.keys.filter(x => x.screen === screenType.SINGLE);
-            const dualScreenState = state.keys.filter(x => x.screen === screenType.DUAL);
+            const onePaneState = state.keys.filter(x => x.screen === paneType.ONE);
+            const twoPaneState = state.keys.filter(x => x.screen === paneType.TWO);
  
-            if (action.payload.screen === screenType.SINGLE) {
-                singleScreenState.pop();
+            if (action.payload.screen === paneType.ONE) {
+                onePaneState.pop();
             } else {
-                dualScreenState.pop();
+                twoPaneState.pop();
             }
  
             return {
                 ...state,
-                keys: [...singleScreenState, ...dualScreenState]
+                keys: [...onePaneState, ...twoPaneState]
             };
         }
         case MOVE_TO_FRONT_KEY: {
             //TODO: REMOVE LODASH AND CREATE OUR OWN
-            const singleScreenState = state.keys.filter(x => x.screen === screenType.SINGLE);
-            const dualScreenState = state.keys.filter(x => x.screen === screenType.DUAL);
+            const onePaneState = state.keys.filter(x => x.screen === paneType.ONE);
+            const twoPaneState = state.keys.filter(x => x.screen === paneType.TWO);
  
-            if (action.payload.screen === screenType.SINGLE) {
-                const sorted = _.sortBy(singleScreenState, function (item) {
+            if (action.payload.screen === paneType.ONE) {
+                const sorted = _.sortBy(onePaneState, function (item) {
                     return item.key === `${action.payload.key}` ? 1 : 0;
                 });
  
                 return {
                     ...state, //retains state for all variables
-                    keys: [...sorted, ...dualScreenState]
+                    keys: [...sorted, ...twoPaneState]
                 };
             };
  
-            const sorted = _.sortBy(dualScreenState, function (item) {
+            const sorted = _.sortBy(twoPaneState, function (item) {
                 return item.key === `${action.payload.key}` ? 1 : 0;
             });
  
             return {
                 ...state, //retains state for all variables
-                keys: [...singleScreenState, ...sorted]
+                keys: [...onePaneState, ...sorted]
             };
         }
         case CHANGE_SCREEN_KEY: {
@@ -405,7 +405,7 @@ export default keyReducers;
diff --git a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/Shared/screenStore/keyStore/key.selector.ts.html b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/Shared/screenStore/keyStore/key.selector.ts.html similarity index 93% rename from twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/Shared/screenStore/keyStore/key.selector.ts.html rename to twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/Shared/screenStore/keyStore/key.selector.ts.html index 3cd7e9c..8cf88f2 100644 --- a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/Shared/screenStore/keyStore/key.selector.ts.html +++ b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/Shared/screenStore/keyStore/key.selector.ts.html @@ -3,7 +3,7 @@ - Code coverage report for twopane-navigation/Shared/screenStore/keyStore/key.selector.ts + Code coverage report for src/Shared/screenStore/keyStore/key.selector.ts @@ -18,7 +18,7 @@
-

All files / twopane-navigation/Shared/screenStore/keyStore key.selector.ts

+

All files / src/Shared/screenStore/keyStore key.selector.ts

@@ -84,7 +84,7 @@ export const getScreenKeyState = (): IKeyState => {
diff --git a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/Shared/screenStore/keyStore/key.types.ts.html b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/Shared/screenStore/keyStore/key.types.ts.html similarity index 93% rename from twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/Shared/screenStore/keyStore/key.types.ts.html rename to twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/Shared/screenStore/keyStore/key.types.ts.html index e5c0ce8..0ac8748 100644 --- a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/Shared/screenStore/keyStore/key.types.ts.html +++ b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/Shared/screenStore/keyStore/key.types.ts.html @@ -3,7 +3,7 @@ - Code coverage report for twopane-navigation/Shared/screenStore/keyStore/key.types.ts + Code coverage report for src/Shared/screenStore/keyStore/key.types.ts @@ -18,7 +18,7 @@
-

All files / twopane-navigation/Shared/screenStore/keyStore key.types.ts

+

All files / src/Shared/screenStore/keyStore key.types.ts

@@ -96,7 +96,7 @@ export const CHANGE_SCREEN_KEY: string = 'CHANGE_SCREEN_KEY';
diff --git a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/Shared/screenStore/keyStore/tests/index.html b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/Shared/screenStore/keyStore/tests/index.html similarity index 93% rename from twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/Shared/screenStore/keyStore/tests/index.html rename to twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/Shared/screenStore/keyStore/tests/index.html index c9874d3..92d3d51 100644 --- a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/Shared/screenStore/keyStore/tests/index.html +++ b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/Shared/screenStore/keyStore/tests/index.html @@ -3,7 +3,7 @@ - Code coverage report for twopane-navigation/Shared/screenStore/keyStore/tests + Code coverage report for src/Shared/screenStore/keyStore/tests @@ -18,7 +18,7 @@
-

All files twopane-navigation/Shared/screenStore/keyStore/tests

+

All files src/Shared/screenStore/keyStore/tests

@@ -94,7 +94,7 @@
diff --git a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/Shared/screenStore/keyStore/tests/key.methods.helpers.tsx.html b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/Shared/screenStore/keyStore/tests/key.methods.helpers.tsx.html similarity index 91% rename from twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/Shared/screenStore/keyStore/tests/key.methods.helpers.tsx.html rename to twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/Shared/screenStore/keyStore/tests/key.methods.helpers.tsx.html index da77923..bf456c2 100644 --- a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/Shared/screenStore/keyStore/tests/key.methods.helpers.tsx.html +++ b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/Shared/screenStore/keyStore/tests/key.methods.helpers.tsx.html @@ -3,7 +3,7 @@ - Code coverage report for twopane-navigation/Shared/screenStore/keyStore/tests/key.methods.helpers.tsx + Code coverage report for src/Shared/screenStore/keyStore/tests/key.methods.helpers.tsx @@ -18,7 +18,7 @@
-

All files / twopane-navigation/Shared/screenStore/keyStore/tests key.methods.helpers.tsx

+

All files / src/Shared/screenStore/keyStore/tests key.methods.helpers.tsx

@@ -137,11 +137,11 @@ 72x    
import { IKeyAction, IKeyState, IKeyObject } from '../key.interface';
-import { screenType } from '../../../../utilities/interfaces';
+import { paneType } from '../../../../utilities/interfaces';
 import { store } from '../../../../appStore';
 import * as keyActions from '../key.actions';
  
-export const KeyActionBuilder = (type: string, screen: screenType, key: string, isMerge: boolean): IKeyAction => {
+export const KeyActionBuilder = (type: string, screen: paneType, key: string, isMerge: boolean): IKeyAction => {
     return {
         type: type,
         payload: {
@@ -155,7 +155,7 @@ export const KeyActionBuilder = (type: string, screen: screenType, key: string,
  * mocks keyState building 3 objects for the final state
  */
 //TODO: TURN INTO FOR LOOP AUTO INCREMENT FUNCTION 
-export const mockKeyState = (screen: screenType, isMerge: boolean, prependKey: string = ''): IKeyState => {
+export const mockKeyState = (screen: paneType, isMerge: boolean, prependKey: string = ''): IKeyState => {
     const first = keyObjectBuilder(`${prependKey}first`, isMerge, screen)
     const second = keyObjectBuilder(`${prependKey}second`, isMerge, screen)
     const third = keyObjectBuilder(`${prependKey}third`, isMerge, screen)
@@ -164,7 +164,7 @@ export const mockKeyState = (screen: screenType, isMerge: boolean, prependKey: s
     }
 }
  
-export const keyObjectBuilder = (key: string, isMerge: boolean, screen: screenType): IKeyObject => {
+export const keyObjectBuilder = (key: string, isMerge: boolean, screen: paneType): IKeyObject => {
     return {
         key: key,
         isMerge: isMerge,
@@ -172,7 +172,7 @@ export const keyObjectBuilder = (key: string, isMerge: boolean, screen: screenTy
     }
 }
  
-export const populateKeyStore3 = (screen: screenType, isMerge: boolean) => {
+export const populateKeyStore3 = (screen: paneType, isMerge: boolean) => {
     const keyState = mockKeyState(screen, isMerge);
     keyState.keys.map(val => store.dispatch(keyActions.pushKey(val.screen, val.key, val.isMerge)))
 }
@@ -183,7 +183,7 @@ export const populateKeyStore3 = (screen: screenType, isMerge: boolean) => {
             
         
diff --git a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/Shared/screenStore/twoPaneElementStore/index.html b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/Shared/screenStore/paneElementStore/index.html similarity index 87% rename from twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/Shared/screenStore/twoPaneElementStore/index.html rename to twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/Shared/screenStore/paneElementStore/index.html index 1d5acf8..44ea9a5 100644 --- a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/Shared/screenStore/twoPaneElementStore/index.html +++ b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/Shared/screenStore/paneElementStore/index.html @@ -3,7 +3,7 @@ - Code coverage report for twopane-navigation/Shared/screenStore/twoPaneElementStore + Code coverage report for src/Shared/screenStore/paneElementStore @@ -18,7 +18,7 @@
-

All files twopane-navigation/Shared/screenStore/twoPaneElementStore

+

All files src/Shared/screenStore/paneElementStore

@@ -72,7 +72,7 @@ - twoPaneElement.action.ts + paneElement.action.ts
@@ -87,7 +87,7 @@ - twoPaneElement.reducer.ts + paneElement.reducer.ts
@@ -102,7 +102,7 @@ - twoPaneElement.selectors.ts + paneElement.selectors.ts
@@ -117,7 +117,7 @@ - twoPaneElement.types.ts + paneElement.types.ts
@@ -139,7 +139,7 @@
diff --git a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/Shared/screenStore/twoPaneElementStore/twoPaneElement.action.ts.html b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/Shared/screenStore/paneElementStore/paneElement.action.ts.html similarity index 86% rename from twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/Shared/screenStore/twoPaneElementStore/twoPaneElement.action.ts.html rename to twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/Shared/screenStore/paneElementStore/paneElement.action.ts.html index 8b126b5..f0779fe 100644 --- a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/Shared/screenStore/twoPaneElementStore/twoPaneElement.action.ts.html +++ b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/Shared/screenStore/paneElementStore/paneElement.action.ts.html @@ -3,7 +3,7 @@ - Code coverage report for twopane-navigation/Shared/screenStore/twoPaneElementStore/twoPaneElement.action.ts + Code coverage report for src/Shared/screenStore/paneElementStore/paneElement.action.ts @@ -18,7 +18,7 @@
-

All files / twopane-navigation/Shared/screenStore/twoPaneElementStore twoPaneElement.action.ts

+

All files / src/Shared/screenStore/paneElementStore paneElement.action.ts

@@ -126,38 +126,38 @@       - 
import { PUSH_TWOPANE_ELEMENT, REMOVE_KEY_TWOPANE_ELEMENT, REPLACE_TWOPANE_ELEMENT } from "./twoPaneElement.types";
-import { ReactElement } from "react";
-import { ITwoPaneElementAction } from "./twoPaneElement.interface";
+ 
import { PUSH_PANE_ELEMENT, REMOVE_KEY_PANE_ELEMENT, REPLACE_PANE_ELEMENT } from "./paneElement.types";
+import react, { ReactElement } from "react";
+import { IPaneElementAction } from "./paneElement.interface";
 import { IKeyOnlyAction } from "../keyStore/key.interface";
  
 export const pushElement = (
     key: string,
-    twoPaneElement: ReactElement
-): ITwoPaneElementAction => ({
-    type: PUSH_TWOPANE_ELEMENT,
+    paneElement: ReactElement
+): IPaneElementAction => ({
+    type: PUSH_PANE_ELEMENT,
     payload: {
         key: key,
-        twoPaneElement: twoPaneElement
+        paneElement: paneElement
     }
 });
  
-export const replacetwoPaneElement = (
+export const replacePaneElement = (
     key: string,
-    twoPaneElement: ReactElement
-): ITwoPaneElementAction => ({
-    type: REPLACE_TWOPANE_ELEMENT,
+    paneElement: ReactElement
+): IPaneElementAction => ({
+    type: REPLACE_PANE_ELEMENT,
     payload: {
         key: key,
-        twoPaneElement: twoPaneElement
+        paneElement: paneElement
     }
 });
  
  
-export const removetwoPaneElementByKey = (
+export const removePaneElementByKey = (
     twoPaneElementKey: string
 ): IKeyOnlyAction => ({
-    type: REMOVE_KEY_TWOPANE_ELEMENT,
+    type: REMOVE_KEY_PANE_ELEMENT,
     payload: {
         key: twoPaneElementKey
     }
@@ -168,7 +168,7 @@ export const removetwoPaneElementByKey = (
             
         
diff --git a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/Shared/screenStore/twoPaneElementStore/twoPaneElement.reducer.ts.html b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/Shared/screenStore/paneElementStore/paneElement.reducer.ts.html similarity index 86% rename from twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/Shared/screenStore/twoPaneElementStore/twoPaneElement.reducer.ts.html rename to twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/Shared/screenStore/paneElementStore/paneElement.reducer.ts.html index bf196b5..20bb165 100644 --- a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/Shared/screenStore/twoPaneElementStore/twoPaneElement.reducer.ts.html +++ b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/Shared/screenStore/paneElementStore/paneElement.reducer.ts.html @@ -3,7 +3,7 @@ - Code coverage report for twopane-navigation/Shared/screenStore/twoPaneElementStore/twoPaneElement.reducer.ts + Code coverage report for src/Shared/screenStore/paneElementStore/paneElement.reducer.ts @@ -18,7 +18,7 @@
-

All files / twopane-navigation/Shared/screenStore/twoPaneElementStore twoPaneElement.reducer.ts

+

All files / src/Shared/screenStore/paneElementStore paneElement.reducer.ts

@@ -153,45 +153,45 @@      
 
-import { PUSH_TWOPANE_ELEMENT, REMOVE_KEY_TWOPANE_ELEMENT, REPLACE_TWOPANE_ELEMENT } from './twoPaneElement.types';
-import { ITwoPaneElementState, ITwoPaneElementAction } from './twoPaneElement.interface';
+import { PUSH_PANE_ELEMENT, REMOVE_KEY_PANE_ELEMENT, REPLACE_PANE_ELEMENT } from './paneElement.types';
+import { IPaneElementState, IPaneElementAction } from './paneElement.interface';
  
-const initialState: ITwoPaneElementState = {
-    twoPaneElements: {}
+const initialState: IPaneElementState = {
+    PaneElements: {}
 };
  
-const twoPaneElementReducer = (
-    state: ITwoPaneElementState = initialState,
-    action: ITwoPaneElementAction
-): ITwoPaneElementState => {
+const PaneElementReducer = (
+    state: IPaneElementState = initialState,
+    action: IPaneElementAction
+): IPaneElementState => {
     switch (action.type) {
-        case PUSH_TWOPANE_ELEMENT: {
+        case PUSH_PANE_ELEMENT: {
             return {
                 ...state,
-                twoPaneElements: {
-                    ...state.twoPaneElements,
-                    [action.payload.key as string]: action.payload.twoPaneElement
+                PaneElements: {
+                    ...state.PaneElements,
+                    [action.payload.key as string]: action.payload.paneElement
                 }
             };
         }
-        case REPLACE_TWOPANE_ELEMENT: {
-            const hasKey = action.payload.key in state.twoPaneElements;
+        case REPLACE_PANE_ELEMENT: {
+            const hasKey = action.payload.key in state.PaneElements;
             if (!hasKey) {
                 return { ...state };
             }
             return {
                 ...state,
-                twoPaneElements: {
-                    ...state.twoPaneElements,
-                    [action.payload.key as string]: action.payload.twoPaneElement
+                PaneElements: {
+                    ...state.PaneElements,
+                    [action.payload.key as string]: action.payload.paneElement
                 },
             };
  
         }
-        case REMOVE_KEY_TWOPANE_ELEMENT: {
+        case REMOVE_KEY_PANE_ELEMENT: {
             // using delete over lodash.omit to reduce dependencies on external libraries
             const newData = state;
-            delete newData.twoPaneElements[action.payload.key];
+            delete newData.PaneElements[action.payload.key];
             return { ...newData }
         }
         default:
@@ -199,7 +199,7 @@ const twoPaneElementReducer = (
     }
 };
  
-export default twoPaneElementReducer;
+export default PaneElementReducer;
  
@@ -207,7 +207,7 @@ export default twoPaneElementReducer;
diff --git a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/Shared/screenStore/twoPaneElementStore/twoPaneElement.selectors.ts.html b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/Shared/screenStore/paneElementStore/paneElement.selectors.ts.html similarity index 86% rename from twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/Shared/screenStore/twoPaneElementStore/twoPaneElement.selectors.ts.html rename to twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/Shared/screenStore/paneElementStore/paneElement.selectors.ts.html index ad2cd2c..f230d11 100644 --- a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/Shared/screenStore/twoPaneElementStore/twoPaneElement.selectors.ts.html +++ b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/Shared/screenStore/paneElementStore/paneElement.selectors.ts.html @@ -3,7 +3,7 @@ - Code coverage report for twopane-navigation/Shared/screenStore/twoPaneElementStore/twoPaneElement.selectors.ts + Code coverage report for src/Shared/screenStore/paneElementStore/paneElement.selectors.ts @@ -18,7 +18,7 @@
-

All files / twopane-navigation/Shared/screenStore/twoPaneElementStore twoPaneElement.selectors.ts

+

All files / src/Shared/screenStore/paneElementStore paneElement.selectors.ts

@@ -72,10 +72,10 @@    
import { useSelector } from "react-redux";
 import { rootReducerType } from "../../../appStore";
-import { ITwoPaneElementState } from "./twoPaneElement.interface";
+import { IPaneElementState} from "./paneElement.interface";
  
-export const getTwoPaneElementSelector = (): ITwoPaneElementState => {
-    return useSelector((state: rootReducerType) => state.twoPaneElementReducer);
+export const getPaneElementSelector = (): IPaneElementState => {
+    return useSelector((state: rootReducerType) => state.PaneElementReducer);
 };
  
@@ -84,7 +84,7 @@ export const getTwoPaneElementSelector = (): ITwoPaneElementState => {
diff --git a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/Shared/screenStore/twoPaneElementStore/twoPaneElement.types.ts.html b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/Shared/screenStore/paneElementStore/paneElement.types.ts.html similarity index 85% rename from twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/Shared/screenStore/twoPaneElementStore/twoPaneElement.types.ts.html rename to twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/Shared/screenStore/paneElementStore/paneElement.types.ts.html index 5e8df82..7f7d069 100644 --- a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/Shared/screenStore/twoPaneElementStore/twoPaneElement.types.ts.html +++ b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/Shared/screenStore/paneElementStore/paneElement.types.ts.html @@ -3,7 +3,7 @@ - Code coverage report for twopane-navigation/Shared/screenStore/twoPaneElementStore/twoPaneElement.types.ts + Code coverage report for src/Shared/screenStore/paneElementStore/paneElement.types.ts @@ -18,7 +18,7 @@
-

All files / twopane-navigation/Shared/screenStore/twoPaneElementStore twoPaneElement.types.ts

+

All files / src/Shared/screenStore/paneElementStore paneElement.types.ts

@@ -70,11 +70,11 @@ 8x     - 
export const PUSH_TWOPANE_ELEMENT: string = 'PUSH_TWOPANE_ELEMENT';
+ 
export const PUSH_PANE_ELEMENT: string = 'PUSH_PANE_ELEMENT';
  
-export const REMOVE_KEY_TWOPANE_ELEMENT: string = 'REMOVE_KEY_TWOPANE_ELEMENT';
+export const REMOVE_KEY_PANE_ELEMENT: string = 'REMOVE_KEY_PANE_ELEMENT';
  
-export const REPLACE_TWOPANE_ELEMENT: string = 'REPLACE_TWOPANE_ELEMENT';
+export const REPLACE_PANE_ELEMENT: string = 'REPLACE_PANE_ELEMENT';
  
  
  
@@ -84,7 +84,7 @@ export const REPLACE_TWOPANE_ELEMENT: string = 'REPLACE_TWOPANE_ELEMENT';
diff --git a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/Shared/screenStore/twoPaneElementStore/tests/index.html b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/Shared/screenStore/paneElementStore/tests/index.html similarity index 89% rename from twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/Shared/screenStore/twoPaneElementStore/tests/index.html rename to twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/Shared/screenStore/paneElementStore/tests/index.html index ecf04f5..037a8e5 100644 --- a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/Shared/screenStore/twoPaneElementStore/tests/index.html +++ b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/Shared/screenStore/paneElementStore/tests/index.html @@ -3,7 +3,7 @@ - Code coverage report for twopane-navigation/Shared/screenStore/twoPaneElementStore/tests + Code coverage report for src/Shared/screenStore/paneElementStore/tests @@ -18,7 +18,7 @@
-

All files twopane-navigation/Shared/screenStore/twoPaneElementStore/tests

+

All files src/Shared/screenStore/paneElementStore/tests

@@ -72,7 +72,7 @@ - twoPaneElement.methods.helpers.tsx + paneElement.methods.helpers.tsx
@@ -94,7 +94,7 @@
diff --git a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/Shared/screenStore/twoPaneElementStore/tests/twoPaneElement.methods.helpers.tsx.html b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/Shared/screenStore/paneElementStore/tests/paneElement.methods.helpers.tsx.html similarity index 85% rename from twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/Shared/screenStore/twoPaneElementStore/tests/twoPaneElement.methods.helpers.tsx.html rename to twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/Shared/screenStore/paneElementStore/tests/paneElement.methods.helpers.tsx.html index d1b1c7a..e0cd430 100644 --- a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/Shared/screenStore/twoPaneElementStore/tests/twoPaneElement.methods.helpers.tsx.html +++ b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/Shared/screenStore/paneElementStore/tests/paneElement.methods.helpers.tsx.html @@ -3,7 +3,7 @@ - Code coverage report for twopane-navigation/Shared/screenStore/twoPaneElementStore/tests/twoPaneElement.methods.helpers.tsx + Code coverage report for src/Shared/screenStore/paneElementStore/tests/paneElement.methods.helpers.tsx @@ -18,7 +18,7 @@
-

All files / twopane-navigation/Shared/screenStore/twoPaneElementStore/tests twoPaneElement.methods.helpers.tsx

+

All files / src/Shared/screenStore/paneElementStore/tests paneElement.methods.helpers.tsx

@@ -94,24 +94,24 @@ 4x     - 
import { ITwoPaneElementAction, ITwoPaneElementObject } from "../twoPaneElement.interface"
+ 
import { IPaneElementAction, IPaneElementObject } from "../paneElement.interface"
 import React, { ReactElement } from 'react';
  
-export const twoPaneElementActionBuilder = (type: string, key: string, twoPaneElement: React.ReactElement): ITwoPaneElementAction => {
+export const paneElementActionBuilder = (type: string, key: string, paneElement: React.ReactElement): IPaneElementAction => {
     return {
         type: type,
         payload: {
             key: key,
-            twoPaneElement: twoPaneElement
+            paneElement: paneElement
         }
     }
 }
  
  
  
-export const twoPaneElementObjectBuilder = (key: string, twoPaneElement: ReactElement): ITwoPaneElementObject => {
+export const paneElementObjectBuilder = (key: string, paneElement: ReactElement): IPaneElementObject => {
     return {
-        [key]: twoPaneElement
+        [key]: paneElement
     }
 }
@@ -120,7 +120,7 @@ export const twoPaneElementObjectBuilder = (key: string, twoPaneElement: ReactEl
diff --git a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/Shared/utilityStore/index.html b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/Shared/utilityStore/index.html similarity index 96% rename from twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/Shared/utilityStore/index.html rename to twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/Shared/utilityStore/index.html index bf1937f..c6057b0 100644 --- a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/Shared/utilityStore/index.html +++ b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/Shared/utilityStore/index.html @@ -3,7 +3,7 @@ - Code coverage report for twopane-navigation/Shared/utilityStore + Code coverage report for src/Shared/utilityStore @@ -18,7 +18,7 @@
-

All files twopane-navigation/Shared/utilityStore

+

All files src/Shared/utilityStore

@@ -139,7 +139,7 @@
diff --git a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/Shared/utilityStore/utilityStore.actions.ts.html b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/Shared/utilityStore/utilityStore.actions.ts.html similarity index 89% rename from twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/Shared/utilityStore/utilityStore.actions.ts.html rename to twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/Shared/utilityStore/utilityStore.actions.ts.html index 9ef0d99..9f7fb2e 100644 --- a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/Shared/utilityStore/utilityStore.actions.ts.html +++ b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/Shared/utilityStore/utilityStore.actions.ts.html @@ -3,7 +3,7 @@ - Code coverage report for twopane-navigation/Shared/utilityStore/utilityStore.actions.ts + Code coverage report for src/Shared/utilityStore/utilityStore.actions.ts @@ -18,7 +18,7 @@
-

All files / twopane-navigation/Shared/utilityStore utilityStore.actions.ts

+

All files / src/Shared/utilityStore utilityStore.actions.ts

@@ -77,13 +77,13 @@      
import { IUtilityStoreAction } from "./utilityStore.interfaces";
-import { IS_DUALSCREEN } from "./utilityStore.types";
+import { IS_TWOPANE } from "./utilityStore.types";
  
-export const isDualScreenAction = (isDualScreen: boolean):
+export const isTwoPaneAction = (isTwoPane: boolean):
     IUtilityStoreAction => ({
-        type: IS_DUALSCREEN,
+        type: IS_TWOPANE,
         payload: {
-            isDualScreen: isDualScreen
+            isTwoPane: isTwoPane
         }
     });
  
@@ -93,7 +93,7 @@ export const isDualScreenAction = (isDualScreen: boolean):
diff --git a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/Shared/utilityStore/utilityStore.methods.ts.html b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/Shared/utilityStore/utilityStore.methods.ts.html similarity index 90% rename from twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/Shared/utilityStore/utilityStore.methods.ts.html rename to twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/Shared/utilityStore/utilityStore.methods.ts.html index 91c3fda..68d3df7 100644 --- a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/Shared/utilityStore/utilityStore.methods.ts.html +++ b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/Shared/utilityStore/utilityStore.methods.ts.html @@ -3,7 +3,7 @@ - Code coverage report for twopane-navigation/Shared/utilityStore/utilityStore.methods.ts + Code coverage report for src/Shared/utilityStore/utilityStore.methods.ts @@ -18,7 +18,7 @@
-

All files / twopane-navigation/Shared/utilityStore utilityStore.methods.ts

+

All files / src/Shared/utilityStore utilityStore.methods.ts

@@ -89,14 +89,14 @@      
import { store } from "../../appStore";
-import { isDualScreenAction } from "./utilityStore.actions";
+import { isTwoPaneAction } from "./utilityStore.actions";
  
-const isDualScreen = (isDualScreen: boolean) => {
-    store.dispatch(isDualScreenAction(isDualScreen));
+const isTwoPane = (isTwoPane: boolean) => {
+    store.dispatch(isTwoPaneAction(isTwoPane));
 };
  
 const _UtilityFunctions = {
-    isDualScreen,
+    isTwoPane,
 };
  
 type utilityFunctions = typeof _UtilityFunctions;
@@ -111,7 +111,7 @@ export default utilityStore;
             
         
diff --git a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/Shared/utilityStore/utilityStore.reducer.ts.html b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/Shared/utilityStore/utilityStore.reducer.ts.html similarity index 92% rename from twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/Shared/utilityStore/utilityStore.reducer.ts.html rename to twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/Shared/utilityStore/utilityStore.reducer.ts.html index 4ad42a8..aad83e5 100644 --- a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/Shared/utilityStore/utilityStore.reducer.ts.html +++ b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/Shared/utilityStore/utilityStore.reducer.ts.html @@ -3,7 +3,7 @@ - Code coverage report for twopane-navigation/Shared/utilityStore/utilityStore.reducer.ts + Code coverage report for src/Shared/utilityStore/utilityStore.reducer.ts @@ -18,7 +18,7 @@
-

All files / twopane-navigation/Shared/utilityStore utilityStore.reducer.ts

+

All files / src/Shared/utilityStore utilityStore.reducer.ts

@@ -101,9 +101,9 @@      
import { IUtilityStoreState, IUtilityStoreAction } from "./utilityStore.interfaces";
-import { IS_DUALSCREEN } from './utilityStore.types'
+import { IS_TWOPANE } from './utilityStore.types'
 const initialState: IUtilityStoreState = {
-    isDualScreen: false
+    isTwoPane: false
 };
  
 const utilityStoreReducer = (
@@ -111,9 +111,9 @@ const utilityStoreReducer = (
     action: IUtilityStoreAction
 ): IUtilityStoreState => {
     switch (action.type) {
-        case IS_DUALSCREEN: {
+        case IS_TWOPANE: {
             return {
-                isDualScreen: action.payload.isDualScreen
+                isTwoPane: action.payload.isTwoPane
             };
         }
         default:
@@ -129,7 +129,7 @@ export default utilityStoreReducer;
             
         
diff --git a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/Shared/utilityStore/utilityStore.types.ts.html b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/Shared/utilityStore/utilityStore.types.ts.html similarity index 88% rename from twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/Shared/utilityStore/utilityStore.types.ts.html rename to twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/Shared/utilityStore/utilityStore.types.ts.html index 01b3146..e863ee0 100644 --- a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/Shared/utilityStore/utilityStore.types.ts.html +++ b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/Shared/utilityStore/utilityStore.types.ts.html @@ -3,7 +3,7 @@ - Code coverage report for twopane-navigation/Shared/utilityStore/utilityStore.types.ts + Code coverage report for src/Shared/utilityStore/utilityStore.types.ts @@ -18,7 +18,7 @@
-

All files / twopane-navigation/Shared/utilityStore utilityStore.types.ts

+

All files / src/Shared/utilityStore utilityStore.types.ts

@@ -56,14 +56,14 @@

-
18x
export const IS_DUALSCREEN: string = 'IS_DUALSCREEN';
+18x
export const IS_TWOPANE: string = 'IS_TWOPANE';
diff --git a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/appStore.ts.html b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/appStore.ts.html similarity index 95% rename from twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/appStore.ts.html rename to twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/appStore.ts.html index c45e2bf..08613b0 100644 --- a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/appStore.ts.html +++ b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/appStore.ts.html @@ -3,7 +3,7 @@ - Code coverage report for twopane-navigation/appStore.ts + Code coverage report for src/appStore.ts @@ -18,7 +18,7 @@
-

All files / twopane-navigation appStore.ts

+

All files / src appStore.ts

@@ -146,7 +146,7 @@     import keyReducers from './Shared/screenStore/keyStore/key.reducer'; -import twoPaneElementReducer from './Shared/screenStore/twoPaneElementStore/twoPaneElement.reducer'; +import PaneElementReducer from './Shared/screenStore/paneElementStore/paneElement.reducer'; import headerReducer from './Shared/screenStore/headerStore/header.reducer'; import utilityStoreReducer from './Shared/utilityStore/utilityStore.reducer';   @@ -156,7 +156,7 @@ require('./utilities/extensionMethods'); const rootReducer = combineReducers({ KeyReducers: keyReducers, headerReducer, - twoPaneElementReducer, + PaneElementReducer, utilityStoreReducer });   @@ -192,7 +192,7 @@ export const store = createStore(TestReducer);
diff --git a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/components/screenHeader/ScreenHeader.style.ts.html b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/components/paneHeader/PaneHeader.style.ts.html similarity index 93% rename from twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/components/screenHeader/ScreenHeader.style.ts.html rename to twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/components/paneHeader/PaneHeader.style.ts.html index bd6f893..6f0ca0b 100644 --- a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/components/screenHeader/ScreenHeader.style.ts.html +++ b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/components/paneHeader/PaneHeader.style.ts.html @@ -3,7 +3,7 @@ - Code coverage report for twopane-navigation/components/screenHeader/ScreenHeader.style.ts + Code coverage report for src/components/paneHeader/PaneHeader.style.ts @@ -18,7 +18,7 @@
-

All files / twopane-navigation/components/screenHeader ScreenHeader.style.ts

+

All files / src/components/paneHeader PaneHeader.style.ts

@@ -96,7 +96,7 @@    
import { StyleSheet } from 'react-native';
  
-export const ScreenHeaderStyles = StyleSheet.create({
+export const PaneHeaderStyles = StyleSheet.create({
   container: {
     flex: 1,
     justifyContent: 'flex-start',
@@ -120,7 +120,7 @@ export const ScreenHeaderStyles = StyleSheet.create({
             
         
diff --git a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/components/screenHeader/ScreenHeader.tsx.html b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/components/paneHeader/PaneHeader.tsx.html similarity index 85% rename from twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/components/screenHeader/ScreenHeader.tsx.html rename to twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/components/paneHeader/PaneHeader.tsx.html index 6e596e8..296027c 100644 --- a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/components/screenHeader/ScreenHeader.tsx.html +++ b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/components/paneHeader/PaneHeader.tsx.html @@ -3,7 +3,7 @@ - Code coverage report for twopane-navigation/components/screenHeader/ScreenHeader.tsx + Code coverage report for src/components/paneHeader/PaneHeader.tsx @@ -18,7 +18,7 @@
-

All files / twopane-navigation/components/screenHeader ScreenHeader.tsx

+

All files / src/components/paneHeader PaneHeader.tsx

@@ -87,13 +87,7 @@ 29 30 31 -32 -33 -34 -35  -  -  -  +32        @@ -126,21 +120,18 @@    
import React, { Fragment } from 'react';
 import { Text, TouchableOpacity, View } from 'react-native';
-import { ScreenHeaderStyles } from './ScreenHeader.style';
-import { IHeader } from '../../Shared/screenStore/headerStore/header.interface';
+import { PaneHeaderStyles } from './PaneHeader.style';
+import { IPaneHeaderProps } from '../../utilities/interfaces';
  
-export interface IScreenheaderProps extends IHeader {
-}
- 
-const ScreenHeader = (props: IScreenheaderProps) => {
+const PaneHeader = (props: IPaneHeaderProps) => {
   return (
     <View
-      style={[ScreenHeaderStyles.container, props.style]} //prop
+      style={[PaneHeaderStyles.container, props.style]} //prop
     >
       {props?.leftIcon! !== undefined && (
         <Fragment>
           <TouchableOpacity
-            style={ScreenHeaderStyles.leftButton}
+            style={PaneHeaderStyles.leftButton}
             onPress={() => props?.IconPress!()} //element
           >
             {props.leftIcon}
@@ -149,7 +140,7 @@ const ScreenHeader = (props: IScreenheaderProps) => {
       )}
  
       <Text
-        style={ScreenHeaderStyles.title} //prop
+        style={PaneHeaderStyles.title} //prop
       >
         {props?.title}
       </Text>
@@ -157,7 +148,7 @@ const ScreenHeader = (props: IScreenheaderProps) => {
   );
 };
  
-export default ScreenHeader;
+export default PaneHeader;
  
@@ -165,7 +156,7 @@ export default ScreenHeader;
diff --git a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/components/screenHeader/index.html b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/components/paneHeader/index.html similarity index 90% rename from twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/components/screenHeader/index.html rename to twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/components/paneHeader/index.html index 4d74c44..75107f1 100644 --- a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/components/screenHeader/index.html +++ b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/components/paneHeader/index.html @@ -3,7 +3,7 @@ - Code coverage report for twopane-navigation/components/screenHeader + Code coverage report for src/components/paneHeader @@ -18,7 +18,7 @@
-

All files twopane-navigation/components/screenHeader

+

All files src/components/paneHeader

@@ -72,7 +72,7 @@ - ScreenHeader.style.ts + PaneHeader.style.ts
@@ -87,7 +87,7 @@ - ScreenHeader.tsx + PaneHeader.tsx
@@ -109,7 +109,7 @@
diff --git a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/components/screenHeaderContainer/ScreenHeaderContainer.style.ts.html b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/components/paneHeaderContainer/PaneHeaderContainer.style.ts.html similarity index 90% rename from twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/components/screenHeaderContainer/ScreenHeaderContainer.style.ts.html rename to twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/components/paneHeaderContainer/PaneHeaderContainer.style.ts.html index 75168e5..8bde832 100644 --- a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/components/screenHeaderContainer/ScreenHeaderContainer.style.ts.html +++ b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/components/paneHeaderContainer/PaneHeaderContainer.style.ts.html @@ -3,7 +3,7 @@ - Code coverage report for twopane-navigation/components/screenHeaderContainer/ScreenHeaderContainer.style.ts + Code coverage report for src/components/paneHeaderContainer/PaneHeaderContainer.style.ts @@ -18,7 +18,7 @@
-

All files / twopane-navigation/components/screenHeaderContainer ScreenHeaderContainer.style.ts

+

All files / src/components/paneHeaderContainer PaneHeaderContainer.style.ts

@@ -74,7 +74,7 @@    
import { StyleSheet } from 'react-native';
  
-export const screenHeaderContainerStyles = StyleSheet.create({
+export const paneHeaderContainerStyles = StyleSheet.create({
     HeaderDefault: {
         paddingHorizontal: 25,
         backgroundColor: '#212121'
@@ -87,7 +87,7 @@ export const screenHeaderContainerStyles = StyleSheet.create({
             
         
diff --git a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/components/screenHeaderContainer/ScreenHeaderContainer.tsx.html b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/components/paneHeaderContainer/PaneHeaderContainer.tsx.html similarity index 91% rename from twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/components/screenHeaderContainer/ScreenHeaderContainer.tsx.html rename to twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/components/paneHeaderContainer/PaneHeaderContainer.tsx.html index 500d36f..ecd1f7b 100644 --- a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/components/screenHeaderContainer/ScreenHeaderContainer.tsx.html +++ b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/components/paneHeaderContainer/PaneHeaderContainer.tsx.html @@ -3,7 +3,7 @@ - Code coverage report for twopane-navigation/components/screenHeaderContainer/ScreenHeaderContainer.tsx + Code coverage report for src/components/paneHeaderContainer/PaneHeaderContainer.tsx @@ -18,7 +18,7 @@
-

All files / twopane-navigation/components/screenHeaderContainer ScreenHeaderContainer.tsx

+

All files / src/components/paneHeaderContainer PaneHeaderContainer.tsx

@@ -174,20 +174,20 @@       - 
import React, { } from 'react';
-import { Text, View } from 'react-native';
+ 
import React from 'react';
+import { View } from 'react-native';
 import Icon from 'react-native-vector-icons/MaterialIcons';
-import ScreenHeader from '../screenHeader/ScreenHeader';
-import { screenHeaderContainerStyles } from './ScreenHeaderContainer.style';
+import ScreenHeader from '../paneHeader/PaneHeader';
+import { paneHeaderContainerStyles } from './PaneHeaderContainer.style';
 import { IHeader } from '../../Shared/screenStore/headerStore/header.interface';
  
-interface IScreenHeaderContainerProps {
+interface IPaneHeaderContainerProps {
     isGoBack: boolean;
     screenHeader: IHeader | undefined;
     goBack: () => any;
 }
  
-const ScreenHeaderContainer = (props: IScreenHeaderContainerProps) => {
+const PaneHeaderContainer = (props: IPaneHeaderContainerProps) => {
  
     const { isGoBack, screenHeader, goBack } = props;
  
@@ -196,7 +196,7 @@ const ScreenHeaderContainer = (props: IScreenHeaderContainerProps) => {
             {isGoBack ? (
                 <ScreenHeader
                     style={{
-                        ...screenHeaderContainerStyles.HeaderDefault //look into header
+                        ...paneHeaderContainerStyles.HeaderDefault //look into header
                     }}
                     title={screenHeader?.title}
                     leftIcon={
@@ -216,7 +216,7 @@ const ScreenHeaderContainer = (props: IScreenHeaderContainerProps) => {
                     //</View>
                     <ScreenHeader
                         style={{
-                            ...screenHeaderContainerStyles.HeaderDefault
+                            ...paneHeaderContainerStyles.HeaderDefault
                         }}
                         title={screenHeader?.title}
                         leftIcon={
@@ -233,14 +233,14 @@ const ScreenHeaderContainer = (props: IScreenHeaderContainerProps) => {
     )
 }
  
-export default ScreenHeaderContainer;
+export default PaneHeaderContainer;
diff --git a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/components/screenHeaderContainer/index.html b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/components/paneHeaderContainer/index.html similarity index 88% rename from twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/components/screenHeaderContainer/index.html rename to twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/components/paneHeaderContainer/index.html index 13b5d8c..38b524c 100644 --- a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/components/screenHeaderContainer/index.html +++ b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/components/paneHeaderContainer/index.html @@ -3,7 +3,7 @@ - Code coverage report for twopane-navigation/components/screenHeaderContainer + Code coverage report for src/components/paneHeaderContainer @@ -18,7 +18,7 @@
-

All files twopane-navigation/components/screenHeaderContainer

+

All files src/components/paneHeaderContainer

@@ -72,7 +72,7 @@ - ScreenHeaderContainer.style.ts + PaneHeaderContainer.style.ts
@@ -87,7 +87,7 @@ - ScreenHeaderContainer.tsx + PaneHeaderContainer.tsx
@@ -109,7 +109,7 @@
diff --git a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/components/screenOverlay/ScreenOverlay.styles.ts.html b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/components/paneOverlay/PaneOverlay.styles.ts.html similarity index 93% rename from twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/components/screenOverlay/ScreenOverlay.styles.ts.html rename to twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/components/paneOverlay/PaneOverlay.styles.ts.html index 304a829..1cca577 100644 --- a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/components/screenOverlay/ScreenOverlay.styles.ts.html +++ b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/components/paneOverlay/PaneOverlay.styles.ts.html @@ -3,7 +3,7 @@ - Code coverage report for twopane-navigation/components/screenOverlay/ScreenOverlay.styles.ts + Code coverage report for src/components/paneOverlay/PaneOverlay.styles.ts @@ -18,7 +18,7 @@
-

All files / twopane-navigation/components/screenOverlay ScreenOverlay.styles.ts

+

All files / src/components/paneOverlay PaneOverlay.styles.ts

@@ -96,7 +96,7 @@    
import { StyleSheet } from 'react-native';
  
-export const ScreenOverlayStyles = StyleSheet.create({
+export const PaneOverlayStyles = StyleSheet.create({
   backdrop: {
     flex: 1,
     position: 'absolute',
@@ -120,7 +120,7 @@ export const ScreenOverlayStyles = StyleSheet.create({
             
         
diff --git a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/components/screenOverlay/ScreenOverlay.tsx.html b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/components/paneOverlay/PaneOverlay.tsx.html similarity index 94% rename from twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/components/screenOverlay/ScreenOverlay.tsx.html rename to twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/components/paneOverlay/PaneOverlay.tsx.html index e74ec16..6150f1f 100644 --- a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/components/screenOverlay/ScreenOverlay.tsx.html +++ b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/components/paneOverlay/PaneOverlay.tsx.html @@ -3,7 +3,7 @@ - Code coverage report for twopane-navigation/components/screenOverlay/ScreenOverlay.tsx + Code coverage report for src/components/paneOverlay/PaneOverlay.tsx @@ -18,7 +18,7 @@
-

All files / twopane-navigation/components/screenOverlay ScreenOverlay.tsx

+

All files / src/components/paneOverlay PaneOverlay.tsx

@@ -179,9 +179,9 @@ import { View, ViewStyle, StyleProp, } from 'react-native'; -import { ScreenOverlayStyles } from './ScreenOverlay.styles'; +import { PaneOverlayStyles } from './PaneOverlay.styles';   -interface IScreenOverlayProps { +interface IPaneOverlayProps { /** * Content of the overlay */ @@ -204,12 +204,12 @@ interface IScreenOverlayProps { onBackdropPress?:()=> void; }   -const ScreenOverlay = (props: IScreenOverlayProps) => { +const PaneOverlay = (props: IPaneOverlayProps) => { return ( <Fragment> {props.isVisible && ( <View - style={[ScreenOverlayStyles.backdrop, props.backdropStyle]} + style={[PaneOverlayStyles.backdrop, props.backdropStyle]} onTouchEndCapture={event => { //check if we are clicking ourselves or a different component if ( @@ -223,7 +223,7 @@ const ScreenOverlay = (props: IScreenOverlayProps) => { }}> <View pointerEvents={'box-none'} - style={[ScreenOverlayStyles.overlay, props.overlayStyle]}> + style={[PaneOverlayStyles.overlay, props.overlayStyle]}> {props.children} </View> </View> @@ -232,7 +232,7 @@ const ScreenOverlay = (props: IScreenOverlayProps) => { ); };   -export default ScreenOverlay; +export default PaneOverlay;  
@@ -240,7 +240,7 @@ export default ScreenOverlay;
diff --git a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/components/screenOverlay/index.html b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/components/paneOverlay/index.html similarity index 89% rename from twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/components/screenOverlay/index.html rename to twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/components/paneOverlay/index.html index 9f5d726..9c7cd61 100644 --- a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/components/screenOverlay/index.html +++ b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/components/paneOverlay/index.html @@ -3,7 +3,7 @@ - Code coverage report for twopane-navigation/components/screenOverlay + Code coverage report for src/components/paneOverlay @@ -18,7 +18,7 @@
-

All files twopane-navigation/components/screenOverlay

+

All files src/components/paneOverlay

@@ -72,7 +72,7 @@ - ScreenOverlay.styles.ts + PaneOverlay.styles.ts
@@ -87,7 +87,7 @@ - ScreenOverlay.tsx + PaneOverlay.tsx
@@ -109,7 +109,7 @@
diff --git a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/components/screenRenderer/ScreenRenderer.tsx.html b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/components/paneRenderer/PaneRenderer.tsx.html similarity index 87% rename from twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/components/screenRenderer/ScreenRenderer.tsx.html rename to twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/components/paneRenderer/PaneRenderer.tsx.html index b9a4f2d..63738be 100644 --- a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/components/screenRenderer/ScreenRenderer.tsx.html +++ b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/components/paneRenderer/PaneRenderer.tsx.html @@ -3,7 +3,7 @@ - Code coverage report for twopane-navigation/components/screenRenderer/ScreenRenderer.tsx + Code coverage report for src/components/paneRenderer/PaneRenderer.tsx @@ -18,7 +18,7 @@
-

All files / twopane-navigation/components/screenRenderer ScreenRenderer.tsx

+

All files / src/components/paneRenderer PaneRenderer.tsx

@@ -184,34 +184,34 @@       - 
import { IScreenComponent, screenType } from "../../utilities/interfaces";
-import { StyleSheet, View, StyleProp, ViewStyle } from "react-native";
-import ScreenHeaderContainer from "../screenHeaderContainer/ScreenHeaderContainer";
-import singleScreen from "../../singleScreen/singleScreenStore/singleScreen.methods";
+ 
import { IPaneComponent, paneType } from "../../utilities/interfaces";
+import { StyleSheet, View} from "react-native";
+import ScreenHeaderContainer from "../paneHeaderContainer/PaneHeaderContainer";
+import onePane from "../../onePane/onePaneStore/onePane.methods";
 import React, { Fragment } from "react";
-import dualScreen from "../../dualScreen/dualScreenStore/dualScreen.methods";
+import twoPane from "../../twoPane/twoPaneStore/twoPane.methods";
  
 interface IScreenRendererProps {
     prependKey: string;
-    screenComponent: IScreenComponent[];
+    screenComponent: IPaneComponent[];
 }
  
 const ScreenRenderer = (props: IScreenRendererProps) => {
     const { prependKey, screenComponent } = props;
  
-    const isGoBackSingle = screenComponent.filter(x => x.screen === screenType.SINGLE).length > 1;
-    const isGoBackDual = screenComponent.filter(x => x.screen === screenType.DUAL).length > 1;
+    const isGoBackONE = screenComponent.filter(x => x.screen === paneType.ONE).length > 1;
+    const isGoBackTWO = screenComponent.filter(x => x.screen === paneType.TWO).length > 1;
     return (
         <Fragment>
             {
-                screenComponent.map((val: IScreenComponent) =>
+                screenComponent.map((val: IPaneComponent) =>
                     <View key={prependKey + val.key}
-                        style={[ScreenRendererStyles.container, (val.screen === screenType.SINGLE ? ScreenRendererStyles.isSingle : ScreenRendererStyles.isDual)]}>
+                        style={[ScreenRendererStyles.container, (val.screen === paneType.ONE ? ScreenRendererStyles.isONE : ScreenRendererStyles.isTWO)]}>
                         <View style={ScreenRendererStyles.header}>
                             <ScreenHeaderContainer
-                                isGoBack={(val.screen === screenType.SINGLE ? isGoBackSingle : isGoBackDual)}
+                                isGoBack={(val.screen === paneType.ONE ? isGoBackONE : isGoBackTWO)}
                                 screenHeader={val.header}
-                                goBack={() => (val.screen === screenType.SINGLE ? singleScreen.GoBack() : dualScreen.GoBack())}
+                                goBack={() => (val.screen === paneType.ONE ? onePane.GoBack() : twoPane.GoBack())}
                             />
                         </View>
                         <View
@@ -233,10 +233,10 @@ const ScreenRendererStyles = StyleSheet.create({
         width: 540,
         backgroundColor: 'black',
     },
-    isSingle: {
+    isONE: {
         left: 0,
     },
-    isDual: {
+    isTWO: {
         left: 570,
     },
  
@@ -255,7 +255,7 @@ export default ScreenRenderer;
diff --git a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/components/screenRenderer/index.html b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/components/paneRenderer/index.html similarity index 91% rename from twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/components/screenRenderer/index.html rename to twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/components/paneRenderer/index.html index ba7a914..32b4054 100644 --- a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/components/screenRenderer/index.html +++ b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/components/paneRenderer/index.html @@ -3,7 +3,7 @@ - Code coverage report for twopane-navigation/components/screenRenderer + Code coverage report for src/components/paneRenderer @@ -18,7 +18,7 @@
-

All files twopane-navigation/components/screenRenderer

+

All files src/components/paneRenderer

@@ -72,7 +72,7 @@ - ScreenRenderer.tsx + PaneRenderer.tsx
@@ -94,7 +94,7 @@
diff --git a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/components/dualApp/DualApp.tsx.html b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/components/twoPaneApp/TwoPaneApp.tsx.html similarity index 65% rename from twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/components/dualApp/DualApp.tsx.html rename to twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/components/twoPaneApp/TwoPaneApp.tsx.html index 794faa3..ea213b0 100644 --- a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/components/dualApp/DualApp.tsx.html +++ b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/components/twoPaneApp/TwoPaneApp.tsx.html @@ -3,7 +3,7 @@ - Code coverage report for twopane-navigation/components/dualApp/DualApp.tsx + Code coverage report for src/components/twoPaneApp/TwoPaneApp.tsx @@ -18,7 +18,7 @@
-

All files / twopane-navigation/components/dualApp DualApp.tsx

+

All files / src/components/twoPaneApp TwoPaneApp.tsx

@@ -96,49 +96,7 @@ 38 39 40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  +41        @@ -182,44 +140,23 @@ import { Provider } from 'react-redux';   import { store } from '../../appStore'; -import { IScreenComponent } from '../../utilities/interfaces'; -import DualHub from '../dualHub/DualHub'; -import singleScreen from '../../singleScreen/singleScreenStore/singleScreen.methods'; -import dualScreen from '../../dualScreen/dualScreenStore/dualScreen.methods'; +import { ITwoPaneAppProps } from '../../utilities/interfaces'; +import TwoPaneHub from '../twoPaneHub/TwoPaneHub'; +import onePane from '../../onePane/onePaneStore/onePane.methods'; +import twoPane from '../../twoPane/twoPaneStore/twoPane.methods';   -export interface IDualAppProps { - /** - * Default element for single screen mode - */ - singleScreen: IScreenComponent;   - /** - * Default element for dual screen mode - */ - dualScreen: IScreenComponent; -  - /** - * AppContainer if using React Navigation - */ - navigationContainer?: JSX.Element; -  - /** - * Items to render in app drawer. If empty, drawer will not be included. - */ - drawerItems?: JSX.Element[]; -} -  -const DualApp = (props: IDualAppProps) => { +const TwoPaneApp = (props: ITwoPaneAppProps) => {   const screenState = store.getState().KeyReducers.keys; //TODO: possibly look into utility state for things like isMount to keep data between renders - const hasSingle: boolean = screenState.some(val => val.key === (`SINGLE_${props.singleScreen.key}`)); - const hasDual: boolean = screenState.some(val => val.key === (`DUAL_${props.singleScreen.key}`)); + const hasOnePaneDefault: boolean = screenState.some(val => val.key === (`ONE_${props.onePaneDefault.key}`)); + const hasTwoPaneDefault: boolean = screenState.some(val => val.key === (`TWO_${props.twoPaneDefault.key}`));   useEffect(() => { - Eif (!hasSingle && !hasDual) { - singleScreen.Add(props.singleScreen.key, props.singleScreen.twoPaneElement, props?.singleScreen?.header!); - dualScreen.Add(props.dualScreen.key, props.dualScreen.twoPaneElement, props?.dualScreen?.header!); + Eif (!hasOnePaneDefault && !hasTwoPaneDefault) { + onePane.Add(props.onePaneDefault.key, props.onePaneDefault.twoPaneElement, props?.onePaneDefault?.header!); + twoPane.Add(props.twoPaneDefault.key, props.twoPaneDefault.twoPaneElement, props?.twoPaneDefault?.header!); } }, []);   @@ -230,7 +167,7 @@ const DualApp = (props: IDualAppProps) => { props.navigationContainer ) : ( <Fragment> - <DualHub /> + <TwoPaneHub /> </Fragment> )} </Provider> @@ -238,7 +175,7 @@ const DualApp = (props: IDualAppProps) => { ); };   -export default DualApp; +export default TwoPaneApp;  
@@ -246,7 +183,7 @@ export default DualApp;
diff --git a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/components/dualApp/index.html b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/components/twoPaneApp/index.html similarity index 91% rename from twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/components/dualApp/index.html rename to twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/components/twoPaneApp/index.html index b85603e..8194b5b 100644 --- a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/components/dualApp/index.html +++ b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/components/twoPaneApp/index.html @@ -3,7 +3,7 @@ - Code coverage report for twopane-navigation/components/dualApp + Code coverage report for src/components/twoPaneApp @@ -18,7 +18,7 @@
-

All files twopane-navigation/components/dualApp

+

All files src/components/twoPaneApp

@@ -72,7 +72,7 @@ - DualApp.tsx + TwoPaneApp.tsx
@@ -94,7 +94,7 @@
diff --git a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/components/dualHub/DualHub.tsx.html b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/components/twoPaneHub/TwoPaneHub.tsx.html similarity index 88% rename from twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/components/dualHub/DualHub.tsx.html rename to twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/components/twoPaneHub/TwoPaneHub.tsx.html index 1eb3b30..2bef0b4 100644 --- a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/components/dualHub/DualHub.tsx.html +++ b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/components/twoPaneHub/TwoPaneHub.tsx.html @@ -3,7 +3,7 @@ - Code coverage report for twopane-navigation/components/dualHub/DualHub.tsx + Code coverage report for src/components/twoPaneHub/TwoPaneHub.tsx @@ -18,7 +18,7 @@
-

All files / twopane-navigation/components/dualHub DualHub.tsx

+

All files / src/components/twoPaneHub TwoPaneHub.tsx

@@ -186,30 +186,30 @@    
import React, { useMemo, useEffect } from 'react';
 import { View } from 'react-native';
-import { IScreenComponent } from '../../utilities/interfaces';
+import { IPaneComponent } from '../../utilities/interfaces';
  
-import { getTwoPaneElementSelector } from '../../Shared/screenStore/twoPaneElementStore/twoPaneElement.selectors';
+import { getPaneElementSelector } from '../../Shared/screenStore/paneElementStore/paneElement.selectors';
 import { getHeaderSelector } from '../../Shared/screenStore/headerStore/header.selector';
 import { IHeaderState } from '../../Shared/screenStore/headerStore/header.interface';
-import { ITwoPaneElementState } from '../../Shared/screenStore/twoPaneElementStore/twoPaneElement.interface';
+import { IPaneElementState } from '../../Shared/screenStore/paneElementStore/paneElement.interface';
  
-import ScreenRenderer from '../screenRenderer/ScreenRenderer';
+import ScreenRenderer from '../paneRenderer/PaneRenderer';
 import { getScreenKeyState } from '../../Shared/screenStore/keyStore/key.selector';
 import { DualScreenInfo, DualScreenInfoPayload } from 'react-native-dualscreeninfo';
 import utilityStore from '../../Shared/utilityStore/utilityStore.methods';
-import singleScreen from '../../singleScreen/singleScreenStore/singleScreen.methods';
-import dualScreen from '../../dualScreen/dualScreenStore/dualScreen.methods';
+import onePane from '../../onePane/onePaneStore/onePane.methods';
+import twoPane from '../../twoPane/twoPaneStore/twoPane.methods';
  
  
-const DualHub = () => {
+const TwoPaneHub = () => {
  
-  const twoPaneElementState: ITwoPaneElementState = getTwoPaneElementSelector();
+  const twoPaneElementState: IPaneElementState = getPaneElementSelector();
   const headerState: IHeaderState = getHeaderSelector();
  
   const keyState = getScreenKeyState();
  
   useEffect(() => {
-    utilityStore.isDualScreen(DualScreenInfo.isSpanning)
+    utilityStore.isTwoPane(DualScreenInfo.isSpanning)
     DualScreenInfo.addEventListener('didUpdateSpanning', _handleSpanningChanged);
  
     return () => {
@@ -217,11 +217,11 @@ const DualHub = () => {
     }
   }, [])
  
-  const screenStack: IScreenComponent[] = useMemo(() => {
+  const screenStack: IPaneComponent[] = useMemo(() => {
     return keyState.keys.map((val, index) => {
       return {
         key: val.key,
-        twoPaneElement: twoPaneElementState.twoPaneElements[val.key],
+        twoPaneElement: twoPaneElementState.PaneElements[val.key],
         header: headerState.headers[val.key],
         screen: val.screen
       }
@@ -229,11 +229,11 @@ const DualHub = () => {
   }, [keyState, twoPaneElementState, headerState])
  
   const _handleSpanningChanged = (update: DualScreenInfoPayload) => {
-    utilityStore.isDualScreen(update.isSpanning)
+    utilityStore.isTwoPane(update.isSpanning)
     if (update.isSpanning) {
-      singleScreen.mergeToOppositeScreen();
+      onePane.mergeToOppositeScreen();
     } else {
-      dualScreen.mergeToOppositeScreen();
+      twoPane.mergeToOppositeScreen();
     }
   };
  
@@ -247,7 +247,7 @@ const DualHub = () => {
   );
 };
  
-export default DualHub;
+export default TwoPaneHub;
  
@@ -255,7 +255,7 @@ export default DualHub;
diff --git a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/components/dualHub/index.html b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/components/twoPaneHub/index.html similarity index 91% rename from twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/components/dualHub/index.html rename to twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/components/twoPaneHub/index.html index 2af56dd..947dd3d 100644 --- a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/components/dualHub/index.html +++ b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/components/twoPaneHub/index.html @@ -3,7 +3,7 @@ - Code coverage report for twopane-navigation/components/dualHub + Code coverage report for src/components/twoPaneHub @@ -18,7 +18,7 @@
-

All files twopane-navigation/components/dualHub

+

All files src/components/twoPaneHub

@@ -72,7 +72,7 @@ - DualHub.tsx + TwoPaneHub.tsx
@@ -94,7 +94,7 @@
diff --git a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/index.html b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/index.html similarity index 95% rename from twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/index.html rename to twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/index.html index 300a2ff..ff3f9fa 100644 --- a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/index.html +++ b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/index.html @@ -3,7 +3,7 @@ - Code coverage report for twopane-navigation + Code coverage report for src @@ -18,7 +18,7 @@
-

All files twopane-navigation

+

All files src

@@ -94,7 +94,7 @@
diff --git a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/dualScreen/dualScreenStore/index.html b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/onePane/onePaneStore/index.html similarity index 90% rename from twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/dualScreen/dualScreenStore/index.html rename to twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/onePane/onePaneStore/index.html index e7c19ec..ffb09b9 100644 --- a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/dualScreen/dualScreenStore/index.html +++ b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/onePane/onePaneStore/index.html @@ -3,7 +3,7 @@ - Code coverage report for twopane-navigation/dualScreen/dualScreenStore + Code coverage report for src/onePane/onePaneStore @@ -18,7 +18,7 @@
-

All files twopane-navigation/dualScreen/dualScreenStore

+

All files src/onePane/onePaneStore

@@ -72,7 +72,7 @@ - dualScreen.methods.ts + onePane.methods.ts
@@ -94,7 +94,7 @@
diff --git a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/singleScreen/singleScreenStore/singleScreen.methods.ts.html b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/onePane/onePaneStore/onePane.methods.ts.html similarity index 84% rename from twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/singleScreen/singleScreenStore/singleScreen.methods.ts.html rename to twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/onePane/onePaneStore/onePane.methods.ts.html index 5440114..62babec 100644 --- a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/singleScreen/singleScreenStore/singleScreen.methods.ts.html +++ b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/onePane/onePaneStore/onePane.methods.ts.html @@ -3,7 +3,7 @@ - Code coverage report for twopane-navigation/singleScreen/singleScreenStore/singleScreen.methods.ts + Code coverage report for src/onePane/onePaneStore/onePane.methods.ts @@ -18,7 +18,7 @@
-

All files / twopane-navigation/singleScreen/singleScreenStore singleScreen.methods.ts

+

All files / src/onePane/onePaneStore onePane.methods.ts

@@ -276,99 +276,99 @@    
import { store } from '../../appStore';
 import {
-  screenType
+  paneType
 } from '../../utilities/interfaces';
 import { pushKey, popToFront, popScreen, moveToFront, changeScreen } from '../../Shared/screenStore/keyStore/key.actions';
 import { pushHeader, replaceHeader, removeHeaderByKey } from '../../Shared/screenStore/headerStore/header.actions';
-import { pushElement, removetwoPaneElementByKey, replacetwoPaneElement } from '../../Shared/screenStore/twoPaneElementStore/twoPaneElement.action';
+import { pushElement, removePaneElementByKey, replacePaneElement } from '../../Shared/screenStore/paneElementStore/paneElement.action';
 import { ReactElement } from 'react';
 import { IHeader } from '../../Shared/screenStore/headerStore/header.interface';
 import { IKeyState, IKeyObject } from '../../Shared/screenStore/keyStore/key.interface';
  
 /**
- * Pushes element to the top of the single screen stack
+ * Pushes element to the top of the onePane stack
  */
 const Add = (key: string, element: ReactElement, header?: IHeader, isMerge: boolean = false) => {
-  store.dispatch(pushKey(screenType.SINGLE, key, isMerge));
-  store.dispatch(pushElement(`${screenType.SINGLE}_${key}`, element));
+  store.dispatch(pushKey(paneType.ONE, key, isMerge));
+  store.dispatch(pushElement(`${paneType.ONE}_${key}`, element));
   if (header) {
-    store.dispatch(pushHeader(`${screenType.SINGLE}_${key}`, header));
+    store.dispatch(pushHeader(`${paneType.ONE}_${key}`, header));
   }
 };
  
 /**
- * Pushes element to the top of the single screen stack or if the key is already in the stack,
-    move that key to the top ofthe stack 
+ * Pushes element to the top of the onePane stack or if the key is already in the stack,
+    move that key to the top of the stack 
  */
 const AddOrMoveToFront = (key: string, element: React.ReactElement, header?: IHeader, isMerge: boolean = false) => {
   const keys: IKeyState = store.getState().KeyReducers;
-  const singleScreenState: IKeyObject[] = keys.keys.filter(x => x.screen === screenType.SINGLE)
+  const onePaneState: IKeyObject[] = keys.keys.filter(x => x.screen === paneType.ONE)
  
-  if (!singleScreenState.some(val => val.key === `${screenType.SINGLE}_${key}`)) {
+  if (!onePaneState.some(val => val.key === `${paneType.ONE}_${key}`)) {
     Add(key, element, header, isMerge)
   } else {
-    store.dispatch(moveToFront(screenType.SINGLE, `${screenType.SINGLE}_${key}`));
+    store.dispatch(moveToFront(paneType.ONE, `${paneType.ONE}_${key}`));
   }
 }
  
 /**
- * when the app screensize changes move screens marked as isMerged to the DualScreen
+ * when the app screen size changes move screens marked as isMerged to twoPane
  */
 const mergeToOppositeScreen = () => {
   const keys: IKeyState = store.getState().KeyReducers;
   keys.keys.map(val => {
-    if (val.screen === screenType.SINGLE && val.isMerge) {
-      store.dispatch(changeScreen(screenType.DUAL, val.key))
+    if (val.screen === paneType.ONE && val.isMerge) {
+      store.dispatch(changeScreen(paneType.TWO, val.key))
     }
   })
 }
  
  
 /**
- * Removes all elements of the single screen stack
- * and returns the base element of the single screen stack
+ * Removes all elements of the onePane stack
+ * and returns the base element of the onePane stack
  */
 const BackToHome = () => {
   const keys: IKeyState = store.getState().KeyReducers;
-  const singleScreenState: IKeyObject[] = keys.keys.filter(x => x.screen === screenType.SINGLE)
+  const onePaneState: IKeyObject[] = keys.keys.filter(x => x.screen === paneType.ONE)
  
-  for (let i = 1; i < singleScreenState.length; i++) {
-    store.dispatch(removeHeaderByKey(singleScreenState[i].key));
-    store.dispatch(removetwoPaneElementByKey(singleScreenState[i].key));
+  for (let i = 1; i < onePaneState.length; i++) {
+    store.dispatch(removeHeaderByKey(onePaneState[i].key));
+    store.dispatch(removePaneElementByKey(onePaneState[i].key));
   }
  
-  store.dispatch(popToFront(screenType.SINGLE));
+  store.dispatch(popToFront(paneType.ONE));
 };
  
 /**
- * Go back one element in the single screen stack
+ * Go back one element in the onePane stack
  */
 const GoBack = () => {
   const keys: IKeyState = store.getState().KeyReducers;
-  const singleScreenState: IKeyObject[] = keys.keys.filter(x => x.screen === screenType.SINGLE)
+  const onePaneState: IKeyObject[] = keys.keys.filter(x => x.screen === paneType.ONE)
  
-  store.dispatch(removeHeaderByKey(singleScreenState.peek().key));
-  store.dispatch(removetwoPaneElementByKey(singleScreenState.peek().key));
-  store.dispatch(popScreen(screenType.SINGLE));
+  store.dispatch(removeHeaderByKey(onePaneState.peek().key));
+  store.dispatch(removePaneElementByKey(onePaneState.peek().key));
+  store.dispatch(popScreen(paneType.ONE));
  
 };
  
  
 /**
- * Replace the current element for this single screen component
+ * Replace the current element for this onePane component
  */
 const ReplaceScreen = (key: string, element: React.ReactElement) => {
-  store.dispatch(replacetwoPaneElement(`${screenType.SINGLE}_${key}`, element))
+  store.dispatch(replacePaneElement(`${paneType.ONE}_${key}`, element))
 }
  
 /**
- * Replace the default header for this single screen component
+ * Replace the default header for this onePane component
  */
 const ReplaceHeader = (key: string, header: IHeader) => {
-  store.dispatch(replaceHeader(`${screenType.SINGLE}_${key}`, header));
+  store.dispatch(replaceHeader(`${paneType.ONE}_${key}`, header));
 };
  
-const _singleScreenFunctions = {
+const _onePaneFunctions = {
   Add,
   AddOrMoveToFront,
   mergeToOppositeScreen,
@@ -378,11 +378,11 @@ const _singleScreenFunctions = {
   ReplaceHeader,
 };
  
-type singleScreenFunctions = typeof _singleScreenFunctions;
+type onePaneFunctions = typeof _onePaneFunctions;
  
-const singleScreen: singleScreenFunctions = _singleScreenFunctions;
+const onePane: onePaneFunctions = _onePaneFunctions;
  
-export default singleScreen;
+export default onePane;
  
@@ -390,7 +390,7 @@ export default singleScreen;
diff --git a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/singleScreen/singleScreenStore/index.html b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/twoPane/twoPaneStore/index.html similarity index 90% rename from twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/singleScreen/singleScreenStore/index.html rename to twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/twoPane/twoPaneStore/index.html index 307b60a..fc022e2 100644 --- a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/singleScreen/singleScreenStore/index.html +++ b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/twoPane/twoPaneStore/index.html @@ -3,7 +3,7 @@ - Code coverage report for twopane-navigation/singleScreen/singleScreenStore + Code coverage report for src/twoPane/twoPaneStore @@ -18,7 +18,7 @@
-

All files twopane-navigation/singleScreen/singleScreenStore

+

All files src/twoPane/twoPaneStore

@@ -72,7 +72,7 @@ - singleScreen.methods.ts + twoPane.methods.ts
@@ -94,7 +94,7 @@
diff --git a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/dualScreen/dualScreenStore/dualScreen.methods.ts.html b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/twoPane/twoPaneStore/twoPane.methods.ts.html similarity index 85% rename from twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/dualScreen/dualScreenStore/dualScreen.methods.ts.html rename to twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/twoPane/twoPaneStore/twoPane.methods.ts.html index d9bcc9a..4396ae6 100644 --- a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/dualScreen/dualScreenStore/dualScreen.methods.ts.html +++ b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/twoPane/twoPaneStore/twoPane.methods.ts.html @@ -3,7 +3,7 @@ - Code coverage report for twopane-navigation/dualScreen/dualScreenStore/dualScreen.methods.ts + Code coverage report for src/twoPane/twoPaneStore/twoPane.methods.ts @@ -18,7 +18,7 @@
-

All files / twopane-navigation/dualScreen/dualScreenStore dualScreen.methods.ts

+

All files / src/twoPane/twoPaneStore twoPane.methods.ts

@@ -270,96 +270,96 @@    
import { store } from '../../appStore';
 import {
-  screenType
+  paneType
 } from '../../utilities/interfaces';
 import { pushKey, popToFront, popScreen, moveToFront, changeScreen } from '../../Shared/screenStore/keyStore/key.actions';
 import { pushHeader, replaceHeader, removeHeaderByKey } from '../../Shared/screenStore/headerStore/header.actions';
-import { pushElement, removetwoPaneElementByKey, replacetwoPaneElement } from '../../Shared/screenStore/twoPaneElementStore/twoPaneElement.action';
+import { pushElement, removePaneElementByKey, replacePaneElement } from '../../Shared/screenStore/paneElementStore/paneElement.action';
 import { IHeader } from '../../Shared/screenStore/headerStore/header.interface';
 import { IKeyState, IKeyObject } from '../../Shared/screenStore/keyStore/key.interface';
  
 /**
- * Pushes element to the top of the dual screen stack.
+ * Pushes element to the top of the Twopane stack.
  */
 const Add = (key: string, element: React.ReactElement, header?: IHeader, isMerge: boolean = false) => {
  
-  store.dispatch(pushKey(screenType.DUAL, key, isMerge));
-  store.dispatch(pushElement(`${screenType.DUAL}_${key}`, element));
+  store.dispatch(pushKey(paneType.TWO, key, isMerge));
+  store.dispatch(pushElement(`${paneType.TWO}_${key}`, element));
   if (header) {
-    store.dispatch(pushHeader(`${screenType.DUAL}_${key}`, header));
+    store.dispatch(pushHeader(`${paneType.TWO}_${key}`, header));
   }
 };
  
 /**
- * Pushes element to the top of the dual screen stack or if the key is already in the stack,
-    move that key to the top ofthe stack 
+ * Pushes element to the top of the twopane stack or if the key is already in the stack,
+    move that key to the top of the stack 
  */
 const AddOrMoveToFront = (key: string, element: React.ReactElement, header?: IHeader, isMerge: boolean = false,) => {
   const keys: IKeyState = store.getState().KeyReducers;
-  const dualScreenState: IKeyObject[] = keys.keys.filter(x => x.screen === screenType.DUAL)
+  const twoPaneState: IKeyObject[] = keys.keys.filter(x => x.screen === paneType.TWO)
  
-  if (!dualScreenState.some(val => val.key === `${screenType.DUAL}_${key}`)) {
+  if (!twoPaneState.some(val => val.key === `${paneType.TWO}_${key}`)) {
     Add(key, element, header, isMerge)
   } else {
-    store.dispatch(moveToFront(screenType.DUAL, `${screenType.DUAL}_${key}`));
+    store.dispatch(moveToFront(paneType.TWO, `${paneType.TWO}_${key}`));
   }
 }
 /**
- * when the app screensize changes move screens marked as isMerged to the singleScreen
+ * when the app screen size changes move screens marked as isMerged to onePane
  */
 const mergeToOppositeScreen = () => {
   const keys: IKeyState = store.getState().KeyReducers;
   keys.keys.map(val => {
-    if (val.screen === screenType.DUAL && val.isMerge) {
-      store.dispatch(changeScreen(screenType.SINGLE, val.key))
+    if (val.screen === paneType.TWO && val.isMerge) {
+      store.dispatch(changeScreen(paneType.ONE, val.key))
     }
   })
  
 }
  
 /**
- * Removes all elements of the dual screen stack
- * and returns the base element of the dual screen stack
+ * Removes all elements of the twoPane stack
+ * and returns the base element of the twoPane stack
  */
 const BackToHome = () => {
   const keys: IKeyState = store.getState().KeyReducers;
-  const dualScreenState: IKeyObject[] = keys.keys.filter(x => x.screen === screenType.DUAL)
+  const twoPaneState: IKeyObject[] = keys.keys.filter(x => x.screen === paneType.TWO)
  
-  for (let i = 1; i < dualScreenState.length; i++) {
-    store.dispatch(removeHeaderByKey(dualScreenState[i].key));
-    store.dispatch(removetwoPaneElementByKey(dualScreenState[i].key));
+  for (let i = 1; i < twoPaneState.length; i++) {
+    store.dispatch(removeHeaderByKey(twoPaneState[i].key));
+    store.dispatch(removePaneElementByKey(twoPaneState[i].key));
   }
-  store.dispatch(popToFront(screenType.DUAL));
+  store.dispatch(popToFront(paneType.TWO));
 };
  
 /**
- * Go back one element in the dual screen stack
+ * Go back one element in the twoPane stack
  */
 const GoBack = () => {
   const keys: IKeyState = store.getState().KeyReducers;
-  const dualScreenState: IKeyObject[] = keys.keys.filter(x => x.screen === screenType.DUAL)
+  const twoPaneState: IKeyObject[] = keys.keys.filter(x => x.screen === paneType.TWO)
  
-  store.dispatch(removeHeaderByKey(dualScreenState.peek().key));
-  store.dispatch(removetwoPaneElementByKey(dualScreenState.peek().key));
-  store.dispatch(popScreen(screenType.DUAL));
+  store.dispatch(removeHeaderByKey(twoPaneState.peek().key));
+  store.dispatch(removePaneElementByKey(twoPaneState.peek().key));
+  store.dispatch(popScreen(paneType.TWO));
  
 };
  
 /**
- * Replace the current element for this dual screen component
+ * Replace the current element for this twoPane component
  */
 const ReplaceScreen = (key: string, element: React.ReactElement) => {
-  store.dispatch(replacetwoPaneElement(`${screenType.DUAL}_${key}`, element))
+  store.dispatch(replacePaneElement(`${paneType.TWO}_${key}`, element))
 }
  
 /**
- * Replace the default header for this dual screen component
+ * Replace the default header for this twoPane component
  */
 const ReplaceHeader = (key: string, header: IHeader) => {
   store.dispatch(replaceHeader(key, header));
 };
  
-const _dualScreenFunctions = {
+const _twoPaneFunctions = {
   Add,
   AddOrMoveToFront,
   mergeToOppositeScreen,
@@ -369,11 +369,11 @@ const _dualScreenFunctions = {
   ReplaceHeader,
 };
  
-type dualScreenFunctions = typeof _dualScreenFunctions;
+type twoPaneFunctions = typeof _twoPaneFunctions;
  
-const dualScreen: dualScreenFunctions = _dualScreenFunctions;
+const twoPane: twoPaneFunctions = _twoPaneFunctions;
  
-export default dualScreen;
+export default twoPane;
  
@@ -381,7 +381,7 @@ export default dualScreen;
diff --git a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/utilities/auto.methods.ts.html b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/utilities/autoPane.methods.ts.html similarity index 86% rename from twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/utilities/auto.methods.ts.html rename to twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/utilities/autoPane.methods.ts.html index e678fc4..e8d0d6c 100644 --- a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/utilities/auto.methods.ts.html +++ b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/utilities/autoPane.methods.ts.html @@ -3,7 +3,7 @@ - Code coverage report for twopane-navigation/utilities/auto.methods.ts + Code coverage report for src/utilities/autoPane.methods.ts @@ -18,7 +18,7 @@
-

All files / twopane-navigation/utilities auto.methods.ts

+

All files / src/utilities autoPane.methods.ts

@@ -293,20 +293,20 @@      
import utility from './utility.methods';
-import dualScreen from '../dualScreen/dualScreenStore/dualScreen.methods';
-import singleScreen from '../singleScreen/singleScreenStore/singleScreen.methods';
-import { ReactElement } from 'react';
+import twoPane from '../twoPane/twoPaneStore/twoPane.methods';
+import onePane from '../onePane/onePaneStore/onePane.methods';
+import react, { ReactElement } from 'react';
 import { IHeader } from '../Shared/screenStore/headerStore/header.interface';
  
  
 /**
  * Automatically pushes element to the top of the stack based on screen size.
  */
-const Add = (key: string, element: ReactElement, header?: IHeader, isMergeSingle = false, isMergeDual = false) => {
-  if (utility.isDualScreen()) {
-    dualScreen.Add(key, element, header, isMergeDual);
+const Add = (key: string, element: ReactElement, header?: IHeader, isMergeONE = false, isMergeTWO = false) => {
+  if (utility.isTwoPane()) {
+    twoPane.Add(key, element, header, isMergeTWO);
   } else {
-    singleScreen.Add(key, element, header, isMergeSingle);
+    onePane.Add(key, element, header, isMergeONE);
   }
 };
  
@@ -314,35 +314,35 @@ const Add = (key: string, element: ReactElement, header?: IHeader, isMergeSingle
  * Automatically pushes element to the top of stack or if the key is already in the stack,
     move that key to the top of the stack based on screen size
  */
-const AddOrMoveToFront = (key: string, element: ReactElement, header?: IHeader, isMergeSingle = false, isMergeDual = false,) => {
-  if (utility.isDualScreen()) {
-    dualScreen.AddOrMoveToFront(key, element, header, isMergeDual);
+const AddOrMoveToFront = (key: string, element: ReactElement, header?: IHeader, isMergeONE = false, isMergeTWO = false,) => {
+  if (utility.isTwoPane()) {
+    twoPane.AddOrMoveToFront(key, element, header, isMergeTWO);
   } else {
-    singleScreen.AddOrMoveToFront(key, element, header, isMergeSingle);
+    onePane.AddOrMoveToFront(key, element, header, isMergeONE);
   }
 };
  
 /**
- * Automatically pushes element to the top of stack or if the key is already in the  dual screen stack,
-    move that key to the top of the dual screen stack based on screen size
+ * Automatically pushes element to the top of stack or if the key is already in the  TWO screen stack,
+    move that key to the top of the TWO screen stack based on screen size
  */
-const AddOrMoveToFrontDual = (key: string, element: ReactElement, header?: IHeader, isMergeSingle = false, isMergeDual = false,) => {
-  if (utility.isDualScreen()) {
-    dualScreen.AddOrMoveToFront(key, element, header, isMergeDual);
+const AddOrMoveToFrontTWO = (key: string, element: ReactElement, header?: IHeader, isMergeONE = false, isMergeTWO = false,) => {
+  if (utility.isTwoPane()) {
+    twoPane.AddOrMoveToFront(key, element, header, isMergeTWO);
   } else {
-    singleScreen.Add(key, element, header, isMergeSingle);
+    onePane.Add(key, element, header, isMergeONE);
   }
 };
  
 /**
- * Automatically pushes element to the top of stack or if the key is already in the single screen stack,
-    move that key to the top of the single screen stack based on screen size
+ * Automatically pushes element to the top of stack or if the key is already in the ONE screen stack,
+    move that key to the top of the ONE screen stack based on screen size
  */
-const AddOrMoveToFrontSingle = (key: string, element: ReactElement, header?: IHeader, isMergeSingle = false, isMergeDual = false,) => {
-  if (utility.isDualScreen()) {
-    dualScreen.Add(key, element, header, isMergeDual);
+const AddOrMoveToFrontONE = (key: string, element: ReactElement, header?: IHeader, isMergeONE = false, isMergeTWO = false,) => {
+  if (utility.isTwoPane()) {
+    twoPane.Add(key, element, header, isMergeTWO);
   } else {
-    singleScreen.AddOrMoveToFront(key, element, header, isMergeSingle);
+    onePane.AddOrMoveToFront(key, element, header, isMergeONE);
   }
 };
  
@@ -350,10 +350,10 @@ const AddOrMoveToFrontSingle = (key: string, element: ReactElement, header?: IHe
  * Automatically Removes all elements of the stack and returns the base element of the screen stack based on screen size
  */
 const BackToHome = () => {
-  if (utility.isDualScreen()) {
-    dualScreen.BackToHome();
+  if (utility.isTwoPane()) {
+    twoPane.BackToHome();
   } else {
-    singleScreen.BackToHome();
+    onePane.BackToHome();
   }
 };
  
@@ -362,10 +362,10 @@ const BackToHome = () => {
  * Automatically go back one element in the stack based on screen size
  */
 const GoBack = () => {
-  if (utility.isDualScreen()) {
-    dualScreen.GoBack();
+  if (utility.isTwoPane()) {
+    twoPane.GoBack();
   } else {
-    singleScreen.GoBack();
+    onePane.GoBack();
   }
 };
  
@@ -373,10 +373,10 @@ const GoBack = () => {
  * Automatically replace element in the stack based on screen size
  */
 const ReplaceScreen = (key: string, twoPaneElement: React.ReactElement) => {
-  if (utility.isDualScreen()) {
-    dualScreen.ReplaceScreen(key, twoPaneElement);
+  if (utility.isTwoPane()) {
+    twoPane.ReplaceScreen(key, twoPaneElement);
   } else {
-    singleScreen.ReplaceScreen(key, twoPaneElement);
+    onePane.ReplaceScreen(key, twoPaneElement);
   }
 };
  
@@ -385,31 +385,31 @@ const ReplaceScreen = (key: string, twoPaneElement: React.ReactElement) => {
  * Automatically replace header in the stack based on screen size
  */
 const ReplaceHeader = (key: string, header: IHeader) => {
-  if (utility.isDualScreen()) {
-    dualScreen.ReplaceHeader(key, header);
+  if (utility.isTwoPane()) {
+    twoPane.ReplaceHeader(key, header);
   } else {
-    singleScreen.ReplaceHeader(key, header);
+    onePane.ReplaceHeader(key, header);
   }
 };
  
  
  
-const _autoScreenFunctions = {
+const _autoPaneFunctions = {
   Add,
   AddOrMoveToFront,
-  AddOrMoveToFrontDual,
-  AddOrMoveToFrontSingle,
+  AddOrMoveToFrontTWO,
+  AddOrMoveToFrontONE,
   BackToHome,
   GoBack,
   ReplaceScreen,
   ReplaceHeader
 };
  
-type autoScreenFunctions = typeof _autoScreenFunctions;
+type autoPaneFunctions = typeof _autoPaneFunctions;
  
-const autoScreen: autoScreenFunctions = _autoScreenFunctions;
+const autoPane: autoPaneFunctions = _autoPaneFunctions;
  
-export default autoScreen;
+export default autoPane;
  
@@ -417,7 +417,7 @@ export default autoScreen;
diff --git a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/utilities/extensionMethods.ts.html b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/utilities/extensionMethods.ts.html similarity index 95% rename from twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/utilities/extensionMethods.ts.html rename to twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/utilities/extensionMethods.ts.html index 9fe1d60..c1364f0 100644 --- a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/utilities/extensionMethods.ts.html +++ b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/utilities/extensionMethods.ts.html @@ -3,7 +3,7 @@ - Code coverage report for twopane-navigation/utilities/extensionMethods.ts + Code coverage report for src/utilities/extensionMethods.ts @@ -18,7 +18,7 @@
-

All files / twopane-navigation/utilities extensionMethods.ts

+

All files / src/utilities extensionMethods.ts

@@ -120,7 +120,7 @@ export {}
diff --git a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/utilities/index.html b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/utilities/index.html similarity index 94% rename from twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/utilities/index.html rename to twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/utilities/index.html index dc38c22..0eaf4ed 100644 --- a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/utilities/index.html +++ b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/utilities/index.html @@ -3,7 +3,7 @@ - Code coverage report for twopane-navigation/utilities + Code coverage report for src/utilities @@ -18,7 +18,7 @@
-

All files twopane-navigation/utilities

+

All files src/utilities

@@ -72,7 +72,7 @@ - auto.methods.ts + autoPane.methods.ts
@@ -139,7 +139,7 @@
diff --git a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/utilities/interfaces.ts.html b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/utilities/interfaces.ts.html similarity index 60% rename from twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/utilities/interfaces.ts.html rename to twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/utilities/interfaces.ts.html index 1307042..b403a3d 100644 --- a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/utilities/interfaces.ts.html +++ b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/utilities/interfaces.ts.html @@ -3,7 +3,7 @@ - Code coverage report for twopane-navigation/utilities/interfaces.ts + Code coverage report for src/utilities/interfaces.ts @@ -18,7 +18,7 @@
-

All files / twopane-navigation/utilities interfaces.ts

+

All files / src/utilities interfaces.ts

@@ -81,7 +81,59 @@ 23 24 25 -26  +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +        @@ -109,28 +161,54 @@  
import React, { ReactElement } from 'react';
 import { IHeader } from '../Shared/screenStore/headerStore/header.interface';
  
-export interface IScreenComponent {
+export interface IPaneComponent {
   key: string;
   twoPaneElement: ReactElement;
   header?: IHeader;
-  screen?: screenType;
+  screen?: paneType;
 }
  
-export interface IScreenState {
-  screen: Array<IScreenComponent>;
+export interface IPaneState {
+  screen: Array<IPaneComponent>;
 }
  
- 
 export interface IEmptyAction {
   type: string;
   payload: {
   };
 }
  
-export enum screenType {
-  SINGLE = 'SINGLE',
-  DUAL = 'DUAL'
+export enum paneType {
+  ONE = 'ONE',
+  TWO = 'TWO'
 }
+ 
+export interface ITwoPaneAppProps {
+  /**
+   * Default element for ONE screen mode
+   */
+  onePaneDefault: IPaneComponent;
+ 
+  /**
+   * Default element for TWO screen mode
+   */
+  twoPaneDefault: IPaneComponent;
+ 
+  /**
+   * AppContainer if using React Navigation
+   */
+  navigationContainer?: JSX.Element;
+ 
+  /**
+   * Items to render in app drawer. If empty, drawer will not be included.
+   */
+  drawerItems?: JSX.Element[];
+}
+ 
+export interface IPaneHeaderProps extends IHeader {
+}
+ 
+ 
  
@@ -138,7 +216,7 @@ export enum screenType {
diff --git a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/utilities/utility.methods.ts.html b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/utilities/utility.methods.ts.html similarity index 91% rename from twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/utilities/utility.methods.ts.html rename to twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/utilities/utility.methods.ts.html index 361292a..db29f8a 100644 --- a/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/twopane-navigation/utilities/utility.methods.ts.html +++ b/twopane-navigation/packages/twopane-navigation/coverage/lcov-report/src/utilities/utility.methods.ts.html @@ -3,7 +3,7 @@ - Code coverage report for twopane-navigation/utilities/utility.methods.ts + Code coverage report for src/utilities/utility.methods.ts @@ -18,7 +18,7 @@
-

All files / twopane-navigation/utilities utility.methods.ts

+

All files / src/utilities utility.methods.ts

@@ -91,12 +91,12 @@  
import { useRef, useEffect } from 'react';
 import { store } from '../appStore';
  
-const isDualScreen = (): boolean => {
-  return store.getState().utilityStoreReducer.isDualScreen
+const isTwoPane = (): boolean => {
+  return store.getState().utilityStoreReducer.isTwoPane
 };
  
 const _utilityFunctions = {
-  isDualScreen,
+  isTwoPane,
 };
  
 type utilityFunctions = typeof _utilityFunctions;
@@ -111,7 +111,7 @@ export default utility;
             
         
diff --git a/twopane-navigation/packages/twopane-navigation/coverage/lcov.info b/twopane-navigation/packages/twopane-navigation/coverage/lcov.info index 32c5b1c..eacf45a 100644 --- a/twopane-navigation/packages/twopane-navigation/coverage/lcov.info +++ b/twopane-navigation/packages/twopane-navigation/coverage/lcov.info @@ -1,5 +1,5 @@ TN: -SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\appStore.ts +SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\appStore.ts FN:27,(anonymous_0) FN:39,(anonymous_1) FNF:2 @@ -24,7 +24,7 @@ BRF:2 BRH:2 end_of_record TN: -SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\Shared\screenStore\headerStore\header.actions.ts +SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\Shared\screenStore\headerStore\header.actions.ts FN:5,(anonymous_0) FN:16,(anonymous_1) FN:27,(anonymous_2) @@ -45,7 +45,7 @@ BRF:0 BRH:0 end_of_record TN: -SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\Shared\screenStore\headerStore\header.reducer.ts +SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\Shared\screenStore\headerStore\header.reducer.ts FN:10,(anonymous_0) FNF:1 FNH:1 @@ -75,7 +75,7 @@ BRF:7 BRH:7 end_of_record TN: -SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\Shared\screenStore\headerStore\header.selector.ts +SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\Shared\screenStore\headerStore\header.selector.ts FN:5,(anonymous_0) FN:6,(anonymous_1) FNF:2 @@ -90,7 +90,7 @@ BRF:0 BRH:0 end_of_record TN: -SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\Shared\screenStore\headerStore\header.types.ts +SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\Shared\screenStore\headerStore\header.types.ts FNF:0 FNH:0 DA:1,8 @@ -102,7 +102,7 @@ BRF:0 BRH:0 end_of_record TN: -SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\Shared\screenStore\headerStore\tests\header.methods.helpers.tsx +SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\Shared\screenStore\headerStore\tests\header.methods.helpers.tsx FN:3,(anonymous_0) FN:13,(anonymous_1) FNF:2 @@ -119,7 +119,7 @@ BRF:0 BRH:0 end_of_record TN: -SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\Shared\screenStore\keyStore\key.actions.ts +SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\Shared\screenStore\keyStore\key.actions.ts FN:5,(anonymous_0) FN:21,(anonymous_1) FN:32,(anonymous_2) @@ -146,7 +146,7 @@ BRF:0 BRH:0 end_of_record TN: -SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\Shared\screenStore\keyStore\key.reducer.ts +SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\Shared\screenStore\keyStore\key.reducer.ts FN:12,(anonymous_0) FN:29,(anonymous_1) FN:30,(anonymous_2) @@ -228,7 +228,7 @@ BRF:19 BRH:19 end_of_record TN: -SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\Shared\screenStore\keyStore\key.selector.ts +SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\Shared\screenStore\keyStore\key.selector.ts FN:5,(anonymous_0) FN:6,(anonymous_1) FNF:2 @@ -243,7 +243,7 @@ BRF:0 BRH:0 end_of_record TN: -SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\Shared\screenStore\keyStore\key.types.ts +SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\Shared\screenStore\keyStore\key.types.ts FNF:0 FNH:0 DA:1,8 @@ -258,7 +258,7 @@ BRF:0 BRH:0 end_of_record TN: -SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\Shared\screenStore\keyStore\tests\key.methods.helpers.tsx +SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\Shared\screenStore\keyStore\tests\key.methods.helpers.tsx FN:6,(anonymous_0) FN:20,(anonymous_1) FN:29,(anonymous_2) @@ -290,7 +290,7 @@ BRF:1 BRH:1 end_of_record TN: -SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\Shared\screenStore\twoPaneElementStore\twoPaneElement.action.ts +SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\Shared\screenStore\paneElementStore\paneElement.action.ts FN:6,(anonymous_0) FN:17,(anonymous_1) FN:29,(anonymous_2) @@ -311,7 +311,7 @@ BRF:0 BRH:0 end_of_record TN: -SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\Shared\screenStore\twoPaneElementStore\twoPaneElement.reducer.ts +SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\Shared\screenStore\paneElementStore\paneElement.reducer.ts FN:9,(anonymous_0) FNF:1 FNH:1 @@ -341,7 +341,7 @@ BRF:7 BRH:7 end_of_record TN: -SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\Shared\screenStore\twoPaneElementStore\twoPaneElement.selectors.ts +SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\Shared\screenStore\paneElementStore\paneElement.selectors.ts FN:5,(anonymous_0) FN:6,(anonymous_1) FNF:2 @@ -356,7 +356,7 @@ BRF:0 BRH:0 end_of_record TN: -SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\Shared\screenStore\twoPaneElementStore\twoPaneElement.types.ts +SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\Shared\screenStore\paneElementStore\paneElement.types.ts FNF:0 FNH:0 DA:1,8 @@ -368,7 +368,7 @@ BRF:0 BRH:0 end_of_record TN: -SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\Shared\screenStore\twoPaneElementStore\tests\twoPaneElement.methods.helpers.tsx +SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\Shared\screenStore\paneElementStore\tests\paneElement.methods.helpers.tsx FN:4,(anonymous_0) FN:16,(anonymous_1) FNF:2 @@ -385,7 +385,7 @@ BRF:0 BRH:0 end_of_record TN: -SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\Shared\utilityStore\utilityStore.actions.ts +SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\Shared\utilityStore\utilityStore.actions.ts FN:4,(anonymous_0) FNF:1 FNH:1 @@ -398,7 +398,7 @@ BRF:0 BRH:0 end_of_record TN: -SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\Shared\utilityStore\utilityStore.methods.ts +SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\Shared\utilityStore\utilityStore.methods.ts FN:4,(anonymous_0) FNF:1 FNH:1 @@ -413,7 +413,7 @@ BRF:0 BRH:0 end_of_record TN: -SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\Shared\utilityStore\utilityStore.reducer.ts +SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\Shared\utilityStore\utilityStore.reducer.ts FN:7,(anonymous_0) FNF:1 FNH:1 @@ -432,7 +432,7 @@ BRF:3 BRH:3 end_of_record TN: -SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\Shared\utilityStore\utilityStore.types.ts +SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\Shared\utilityStore\utilityStore.types.ts FNF:0 FNH:0 DA:1,8 @@ -442,39 +442,171 @@ BRF:0 BRH:0 end_of_record TN: -SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\components\dualApp\DualApp.tsx -FN:32,(anonymous_0) +SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\components\paneHeader\PaneHeader.style.ts +FNF:0 +FNH:0 +DA:3,1 +LF:1 +LH:1 +BRF:0 +BRH:0 +end_of_record +TN: +SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\components\paneHeader\PaneHeader.tsx +FN:6,(anonymous_0) +FN:15,(anonymous_1) +FNF:2 +FNH:1 +FNDA:2,(anonymous_0) +FNDA:0,(anonymous_1) +DA:6,1 +DA:7,2 +DA:15,0 +LF:3 +LH:2 +BRDA:11,0,0,2 +BRDA:11,0,1,0 +BRF:2 +BRH:1 +end_of_record +TN: +SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\components\paneHeaderContainer\PaneHeaderContainer.style.ts +FNF:0 +FNH:0 +DA:3,1 +LF:1 +LH:1 +BRF:0 +BRH:0 +end_of_record +TN: +SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\components\paneHeaderContainer\PaneHeaderContainer.tsx +FN:14,(anonymous_0) FN:36,(anonymous_1) -FN:37,(anonymous_2) -FN:39,(anonymous_3) +FNF:2 +FNH:1 +FNDA:2,(anonymous_0) +FNDA:0,(anonymous_1) +DA:14,1 +DA:16,2 +DA:18,2 +DA:36,0 +LF:4 +LH:3 +BRDA:20,0,0,0 +BRDA:20,0,1,2 +BRDA:27,1,0,0 +BRDA:27,1,1,0 +BRDA:34,2,0,0 +BRDA:34,2,1,0 +BRDA:47,3,0,2 +BRDA:47,3,1,0 +BRDA:51,4,0,2 +BRDA:51,4,1,0 +BRF:10 +BRH:3 +end_of_record +TN: +SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\components\paneOverlay\PaneOverlay.styles.ts +FNF:0 +FNH:0 +DA:3,1 +LF:1 +LH:1 +BRF:0 +BRH:0 +end_of_record +TN: +SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\components\paneOverlay\PaneOverlay.tsx +FN:31,(anonymous_0) +FN:37,(anonymous_1) +FNF:2 +FNH:1 +FNDA:1,(anonymous_0) +FNDA:0,(anonymous_1) +DA:31,1 +DA:32,1 +DA:39,0 +DA:42,0 +DA:44,0 +LF:5 +LH:2 +BRDA:34,0,0,1 +BRDA:34,0,1,1 +BRDA:39,1,0,0 +BRDA:39,1,1,0 +BRDA:42,2,0,0 +BRDA:42,2,1,0 +BRF:6 +BRH:2 +end_of_record +TN: +SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\components\paneRenderer\PaneRenderer.tsx +FN:13,(anonymous_0) +FN:16,(anonymous_1) +FN:17,(anonymous_2) +FN:21,(anonymous_3) +FN:28,(anonymous_4) +FNF:5 +FNH:4 +FNDA:2,(anonymous_0) +FNDA:2,(anonymous_1) +FNDA:2,(anonymous_2) +FNDA:2,(anonymous_3) +FNDA:0,(anonymous_4) +DA:13,1 +DA:14,2 +DA:16,2 +DA:17,2 +DA:18,2 +DA:22,2 +DA:28,0 +DA:42,1 +LF:8 +LH:7 +BRDA:23,0,0,1 +BRDA:23,0,1,1 +BRDA:26,1,0,1 +BRDA:26,1,1,1 +BRDA:28,2,0,0 +BRDA:28,2,1,0 +BRF:6 +BRH:4 +end_of_record +TN: +SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\components\twoPaneApp\TwoPaneApp.tsx +FN:11,(anonymous_0) +FN:15,(anonymous_1) +FN:16,(anonymous_2) +FN:18,(anonymous_3) FNF:4 FNH:2 FNDA:1,(anonymous_0) FNDA:0,(anonymous_1) FNDA:0,(anonymous_2) FNDA:1,(anonymous_3) -DA:32,1 -DA:34,1 -DA:36,1 -DA:37,1 -DA:39,1 -DA:40,1 -DA:41,1 -DA:42,1 -DA:46,1 +DA:11,1 +DA:13,1 +DA:15,1 +DA:16,1 +DA:18,1 +DA:19,1 +DA:20,1 +DA:21,1 +DA:25,1 LF:9 LH:9 -BRDA:40,0,0,1 -BRDA:40,0,1,0 -BRDA:40,1,0,1 -BRDA:40,1,1,1 -BRDA:49,2,0,0 -BRDA:49,2,1,1 +BRDA:19,0,0,1 +BRDA:19,0,1,0 +BRDA:19,1,0,1 +BRDA:19,1,1,1 +BRDA:28,2,0,0 +BRDA:28,2,1,1 BRF:6 BRH:4 end_of_record TN: -SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\components\dualHub\DualHub.tsx +SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\components\twoPaneHub\TwoPaneHub.tsx FN:18,(anonymous_0) FN:25,(anonymous_1) FN:29,(anonymous_2) @@ -515,217 +647,7 @@ BRF:2 BRH:0 end_of_record TN: -SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\components\screenHeader\ScreenHeader.style.ts -FNF:0 -FNH:0 -DA:3,1 -LF:1 -LH:1 -BRF:0 -BRH:0 -end_of_record -TN: -SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\components\screenHeader\ScreenHeader.tsx -FN:9,(anonymous_0) -FN:18,(anonymous_1) -FNF:2 -FNH:1 -FNDA:2,(anonymous_0) -FNDA:0,(anonymous_1) -DA:9,1 -DA:10,2 -DA:18,0 -LF:3 -LH:2 -BRDA:14,0,0,2 -BRDA:14,0,1,0 -BRF:2 -BRH:1 -end_of_record -TN: -SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\components\screenHeaderContainer\ScreenHeaderContainer.style.ts -FNF:0 -FNH:0 -DA:3,1 -LF:1 -LH:1 -BRF:0 -BRH:0 -end_of_record -TN: -SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\components\screenHeaderContainer\ScreenHeaderContainer.tsx -FN:14,(anonymous_0) -FN:36,(anonymous_1) -FNF:2 -FNH:1 -FNDA:2,(anonymous_0) -FNDA:0,(anonymous_1) -DA:14,1 -DA:16,2 -DA:18,2 -DA:36,0 -LF:4 -LH:3 -BRDA:20,0,0,0 -BRDA:20,0,1,2 -BRDA:27,1,0,0 -BRDA:27,1,1,0 -BRDA:34,2,0,0 -BRDA:34,2,1,0 -BRDA:47,3,0,2 -BRDA:47,3,1,0 -BRDA:51,4,0,2 -BRDA:51,4,1,0 -BRF:10 -BRH:3 -end_of_record -TN: -SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\components\screenOverlay\ScreenOverlay.styles.ts -FNF:0 -FNH:0 -DA:3,1 -LF:1 -LH:1 -BRF:0 -BRH:0 -end_of_record -TN: -SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\components\screenOverlay\ScreenOverlay.tsx -FN:31,(anonymous_0) -FN:37,(anonymous_1) -FNF:2 -FNH:1 -FNDA:1,(anonymous_0) -FNDA:0,(anonymous_1) -DA:31,1 -DA:32,1 -DA:39,0 -DA:42,0 -DA:44,0 -LF:5 -LH:2 -BRDA:34,0,0,1 -BRDA:34,0,1,1 -BRDA:39,1,0,0 -BRDA:39,1,1,0 -BRDA:42,2,0,0 -BRDA:42,2,1,0 -BRF:6 -BRH:2 -end_of_record -TN: -SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\components\screenRenderer\ScreenRenderer.tsx -FN:13,(anonymous_0) -FN:16,(anonymous_1) -FN:17,(anonymous_2) -FN:21,(anonymous_3) -FN:28,(anonymous_4) -FNF:5 -FNH:4 -FNDA:2,(anonymous_0) -FNDA:2,(anonymous_1) -FNDA:2,(anonymous_2) -FNDA:2,(anonymous_3) -FNDA:0,(anonymous_4) -DA:13,1 -DA:14,2 -DA:16,2 -DA:17,2 -DA:18,2 -DA:22,2 -DA:28,0 -DA:42,1 -LF:8 -LH:7 -BRDA:23,0,0,1 -BRDA:23,0,1,1 -BRDA:26,1,0,1 -BRDA:26,1,1,1 -BRDA:28,2,0,0 -BRDA:28,2,1,0 -BRF:6 -BRH:4 -end_of_record -TN: -SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\dualScreen\dualScreenStore\dualScreen.methods.ts -FN:14,(anonymous_0) -FN:27,(anonymous_1) -FN:29,(anonymous_2) -FN:31,(anonymous_3) -FN:40,(anonymous_4) -FN:42,(anonymous_5) -FN:54,(anonymous_6) -FN:56,(anonymous_7) -FN:68,(anonymous_8) -FN:70,(anonymous_9) -FN:81,(anonymous_10) -FN:88,(anonymous_11) -FNF:12 -FNH:12 -FNDA:8,(anonymous_0) -FNDA:4,(anonymous_1) -FNDA:11,(anonymous_2) -FNDA:7,(anonymous_3) -FNDA:1,(anonymous_4) -FNDA:5,(anonymous_5) -FNDA:2,(anonymous_6) -FNDA:10,(anonymous_7) -FNDA:2,(anonymous_8) -FNDA:8,(anonymous_9) -FNDA:2,(anonymous_10) -FNDA:2,(anonymous_11) -DA:14,3 -DA:16,8 -DA:17,8 -DA:18,8 -DA:19,4 -DA:27,3 -DA:28,4 -DA:29,11 -DA:31,7 -DA:32,1 -DA:34,3 -DA:40,3 -DA:41,1 -DA:42,1 -DA:43,5 -DA:44,3 -DA:54,3 -DA:55,2 -DA:56,10 -DA:58,2 -DA:59,5 -DA:60,5 -DA:62,2 -DA:68,3 -DA:69,2 -DA:70,8 -DA:72,2 -DA:73,2 -DA:74,2 -DA:81,3 -DA:82,2 -DA:88,3 -DA:89,2 -DA:92,3 -DA:104,3 -LF:35 -LH:35 -BRDA:14,0,0,3 -BRDA:18,1,0,4 -BRDA:18,1,1,4 -BRDA:27,2,0,0 -BRDA:31,3,0,1 -BRDA:31,3,1,3 -BRDA:43,4,0,3 -BRDA:43,4,1,2 -BRDA:43,5,0,5 -BRDA:43,5,1,5 -BRF:10 -BRH:9 -end_of_record -TN: -SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\singleScreen\singleScreenStore\singleScreen.methods.ts +SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\onePane\onePaneStore\onePane.methods.ts FN:15,(anonymous_0) FN:27,(anonymous_1) FN:29,(anonymous_2) @@ -803,7 +725,85 @@ BRF:10 BRH:9 end_of_record TN: -SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\utilities\auto.methods.ts +SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\twoPane\twoPaneStore\twoPane.methods.ts +FN:14,(anonymous_0) +FN:27,(anonymous_1) +FN:29,(anonymous_2) +FN:31,(anonymous_3) +FN:40,(anonymous_4) +FN:42,(anonymous_5) +FN:54,(anonymous_6) +FN:56,(anonymous_7) +FN:68,(anonymous_8) +FN:70,(anonymous_9) +FN:81,(anonymous_10) +FN:88,(anonymous_11) +FNF:12 +FNH:12 +FNDA:8,(anonymous_0) +FNDA:4,(anonymous_1) +FNDA:11,(anonymous_2) +FNDA:7,(anonymous_3) +FNDA:1,(anonymous_4) +FNDA:5,(anonymous_5) +FNDA:2,(anonymous_6) +FNDA:10,(anonymous_7) +FNDA:2,(anonymous_8) +FNDA:8,(anonymous_9) +FNDA:2,(anonymous_10) +FNDA:2,(anonymous_11) +DA:14,3 +DA:16,8 +DA:17,8 +DA:18,8 +DA:19,4 +DA:27,3 +DA:28,4 +DA:29,11 +DA:31,7 +DA:32,1 +DA:34,3 +DA:40,3 +DA:41,1 +DA:42,1 +DA:43,5 +DA:44,3 +DA:54,3 +DA:55,2 +DA:56,10 +DA:58,2 +DA:59,5 +DA:60,5 +DA:62,2 +DA:68,3 +DA:69,2 +DA:70,8 +DA:72,2 +DA:73,2 +DA:74,2 +DA:81,3 +DA:82,2 +DA:88,3 +DA:89,2 +DA:92,3 +DA:104,3 +LF:35 +LH:35 +BRDA:14,0,0,3 +BRDA:18,1,0,4 +BRDA:18,1,1,4 +BRDA:27,2,0,0 +BRDA:31,3,0,1 +BRDA:31,3,1,3 +BRDA:43,4,0,3 +BRDA:43,4,1,2 +BRDA:43,5,0,5 +BRDA:43,5,1,5 +BRF:10 +BRH:9 +end_of_record +TN: +SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\utilities\autoPane.methods.ts FN:11,(anonymous_0) FN:23,(anonymous_1) FN:35,(anonymous_2) @@ -886,7 +886,7 @@ BRF:24 BRH:24 end_of_record TN: -SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\utilities\extensionMethods.ts +SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\utilities\extensionMethods.ts FN:11,(anonymous_0) FNF:1 FNH:1 @@ -903,7 +903,7 @@ BRF:2 BRH:1 end_of_record TN: -SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\utilities\interfaces.ts +SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\utilities\interfaces.ts FNF:0 FNH:0 LF:0 @@ -912,7 +912,7 @@ BRF:0 BRH:0 end_of_record TN: -SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\utilities\utility.methods.ts +SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\utilities\utility.methods.ts FN:4,(anonymous_0) FNF:1 FNH:0 diff --git a/twopane-navigation/packages/twopane-navigation/src/Shared/screenStore/headerStore/header.actions.ts b/twopane-navigation/packages/twopane-navigation/src/Shared/screenStore/headerStore/header.actions.ts index 3d0ee68..4470d11 100644 --- a/twopane-navigation/packages/twopane-navigation/src/Shared/screenStore/headerStore/header.actions.ts +++ b/twopane-navigation/packages/twopane-navigation/src/Shared/screenStore/headerStore/header.actions.ts @@ -1,6 +1,6 @@ import { IHeaderAction, IHeader } from "./header.interface"; import { PUSH_HEADER, REPLACE_HEADER, REMOVE_KEY_HEADER } from "./header.types"; -import { IKeyAction, IKeyOnlyAction } from "../keyStore/key.interface"; +import { IKeyOnlyAction } from "../keyStore/key.interface"; export const pushHeader = ( key: string, diff --git a/twopane-navigation/packages/twopane-navigation/src/Shared/screenStore/headerStore/header.interface.ts b/twopane-navigation/packages/twopane-navigation/src/Shared/screenStore/headerStore/header.interface.ts index e102943..3bae1b7 100644 --- a/twopane-navigation/packages/twopane-navigation/src/Shared/screenStore/headerStore/header.interface.ts +++ b/twopane-navigation/packages/twopane-navigation/src/Shared/screenStore/headerStore/header.interface.ts @@ -1,5 +1,5 @@ import { StyleProp, ViewStyle } from "react-native"; -import { ReactElement } from "react"; +import react, { ReactElement } from "react"; export interface IHeader { title?: string; diff --git a/twopane-navigation/packages/twopane-navigation/src/Shared/screenStore/keyStore/key.actions.ts b/twopane-navigation/packages/twopane-navigation/src/Shared/screenStore/keyStore/key.actions.ts index 2ae93fe..88d0967 100644 --- a/twopane-navigation/packages/twopane-navigation/src/Shared/screenStore/keyStore/key.actions.ts +++ b/twopane-navigation/packages/twopane-navigation/src/Shared/screenStore/keyStore/key.actions.ts @@ -1,9 +1,9 @@ -import { screenType } from "../../../utilities/interfaces"; +import { paneType } from "../../../utilities/interfaces"; import { IKeyAction, IScreenOnlyAction, IKeyScreenAction } from "./key.interface"; import { PUSH_KEY, POP_KEY, MOVE_TO_FRONT_KEY, REMOVE_KEY, CHANGE_SCREEN_KEY, POP_TO_FRONT_KEY } from "./key.types"; export const pushKey = ( - screen: screenType, + screen: paneType, key: string, isMerge: boolean ): IKeyAction => ({ @@ -18,7 +18,7 @@ export const pushKey = ( /** * Removes all elements of the stack and returns element in index 0 */ -export const popToFront = (screen: screenType): IScreenOnlyAction => ({ +export const popToFront = (screen: paneType): IScreenOnlyAction => ({ type: POP_TO_FRONT_KEY, payload: { screen: screen @@ -29,14 +29,14 @@ export const popToFront = (screen: screenType): IScreenOnlyAction => ({ /** * Go back one element in the stack */ -export const popScreen = (screen: screenType): IScreenOnlyAction => ({ +export const popScreen = (screen: paneType): IScreenOnlyAction => ({ type: POP_KEY, payload: { screen: screen } }); -export const moveToFront = (screen: screenType, +export const moveToFront = (screen: paneType, key: string ): IKeyScreenAction => ({ type: MOVE_TO_FRONT_KEY, @@ -46,7 +46,7 @@ export const moveToFront = (screen: screenType, } }); -export const changeScreen = (screen: screenType, +export const changeScreen = (screen: paneType, key: string ): IKeyScreenAction => ({ type: CHANGE_SCREEN_KEY, diff --git a/twopane-navigation/packages/twopane-navigation/src/Shared/screenStore/keyStore/key.interface.ts b/twopane-navigation/packages/twopane-navigation/src/Shared/screenStore/keyStore/key.interface.ts index 68843c4..94b8749 100644 --- a/twopane-navigation/packages/twopane-navigation/src/Shared/screenStore/keyStore/key.interface.ts +++ b/twopane-navigation/packages/twopane-navigation/src/Shared/screenStore/keyStore/key.interface.ts @@ -1,4 +1,4 @@ -import { screenType } from "../../../utilities/interfaces"; +import { paneType } from "../../../utilities/interfaces"; export interface IKeyState { keys: Array; @@ -7,7 +7,7 @@ export interface IKeyState { export interface IKeyAction { type: string; payload: { - screen: screenType, + screen: paneType, key: string; isMerge: boolean; }; @@ -23,14 +23,14 @@ export interface IKeyOnlyAction { export interface IScreenOnlyAction { type: string; payload: { - screen: screenType; + screen: paneType; }; } export interface IKeyScreenAction { type: string; payload: { - screen: screenType; + screen: paneType; key: string; }; } @@ -40,5 +40,5 @@ export interface IKeyScreenAction { export interface IKeyObject { key: string, isMerge: boolean; - screen: screenType; + screen: paneType; } \ No newline at end of file diff --git a/twopane-navigation/packages/twopane-navigation/src/Shared/screenStore/keyStore/key.reducer.ts b/twopane-navigation/packages/twopane-navigation/src/Shared/screenStore/keyStore/key.reducer.ts index a2055c3..a9752f9 100644 --- a/twopane-navigation/packages/twopane-navigation/src/Shared/screenStore/keyStore/key.reducer.ts +++ b/twopane-navigation/packages/twopane-navigation/src/Shared/screenStore/keyStore/key.reducer.ts @@ -1,5 +1,5 @@ import { - screenType, + paneType, } from '../../../utilities/interfaces'; import { IKeyState, IKeyAction, IKeyObject } from './key.interface'; import _ from 'lodash'; @@ -26,59 +26,59 @@ const keyReducers = ( }; } case POP_TO_FRONT_KEY: { - const singleScreenState = state.keys.filter(x => x.screen === screenType.SINGLE); - const dualScreenState = state.keys.filter(x => x.screen === screenType.DUAL); + const onePaneState = state.keys.filter(x => x.screen === paneType.ONE); + const twoPaneState = state.keys.filter(x => x.screen === paneType.TWO); - if (action.payload.screen === screenType.SINGLE) { + if (action.payload.screen === paneType.ONE) { return { ...state, //state retains state for all variables - keys: [singleScreenState[0], ...dualScreenState] + keys: [onePaneState[0], ...twoPaneState] }; }; return { ...state, //state retains state for all variables - keys: [...singleScreenState, dualScreenState[0]] + keys: [...onePaneState, twoPaneState[0]] }; } case POP_KEY: { - const singleScreenState = state.keys.filter(x => x.screen === screenType.SINGLE); - const dualScreenState = state.keys.filter(x => x.screen === screenType.DUAL); + const onePaneState = state.keys.filter(x => x.screen === paneType.ONE); + const twoPaneState = state.keys.filter(x => x.screen === paneType.TWO); - if (action.payload.screen === screenType.SINGLE) { - singleScreenState.pop(); + if (action.payload.screen === paneType.ONE) { + onePaneState.pop(); } else { - dualScreenState.pop(); + twoPaneState.pop(); } return { ...state, - keys: [...singleScreenState, ...dualScreenState] + keys: [...onePaneState, ...twoPaneState] }; } case MOVE_TO_FRONT_KEY: { //TODO: REMOVE LODASH AND CREATE OUR OWN - const singleScreenState = state.keys.filter(x => x.screen === screenType.SINGLE); - const dualScreenState = state.keys.filter(x => x.screen === screenType.DUAL); + const onePaneState = state.keys.filter(x => x.screen === paneType.ONE); + const twoPaneState = state.keys.filter(x => x.screen === paneType.TWO); - if (action.payload.screen === screenType.SINGLE) { - const sorted = _.sortBy(singleScreenState, function (item) { + if (action.payload.screen === paneType.ONE) { + const sorted = _.sortBy(onePaneState, function (item) { return item.key === `${action.payload.key}` ? 1 : 0; }); return { ...state, //retains state for all variables - keys: [...sorted, ...dualScreenState] + keys: [...sorted, ...twoPaneState] }; }; - const sorted = _.sortBy(dualScreenState, function (item) { + const sorted = _.sortBy(twoPaneState, function (item) { return item.key === `${action.payload.key}` ? 1 : 0; }); return { ...state, //retains state for all variables - keys: [...singleScreenState, ...sorted] + keys: [...onePaneState, ...sorted] }; } case CHANGE_SCREEN_KEY: { diff --git a/twopane-navigation/packages/twopane-navigation/src/Shared/screenStore/keyStore/tests/key.methods.helpers.tsx b/twopane-navigation/packages/twopane-navigation/src/Shared/screenStore/keyStore/tests/key.methods.helpers.tsx index d51220a..a6dd2c2 100644 --- a/twopane-navigation/packages/twopane-navigation/src/Shared/screenStore/keyStore/tests/key.methods.helpers.tsx +++ b/twopane-navigation/packages/twopane-navigation/src/Shared/screenStore/keyStore/tests/key.methods.helpers.tsx @@ -1,9 +1,9 @@ import { IKeyAction, IKeyState, IKeyObject } from '../key.interface'; -import { screenType } from '../../../../utilities/interfaces'; +import { paneType } from '../../../../utilities/interfaces'; import { store } from '../../../../appStore'; import * as keyActions from '../key.actions'; -export const KeyActionBuilder = (type: string, screen: screenType, key: string, isMerge: boolean): IKeyAction => { +export const KeyActionBuilder = (type: string, screen: paneType, key: string, isMerge: boolean): IKeyAction => { return { type: type, payload: { @@ -17,7 +17,7 @@ export const KeyActionBuilder = (type: string, screen: screenType, key: string, * mocks keyState building 3 objects for the final state */ //TODO: TURN INTO FOR LOOP AUTO INCREMENT FUNCTION -export const mockKeyState = (screen: screenType, isMerge: boolean, prependKey: string = ''): IKeyState => { +export const mockKeyState = (screen: paneType, isMerge: boolean, prependKey: string = ''): IKeyState => { const first = keyObjectBuilder(`${prependKey}first`, isMerge, screen) const second = keyObjectBuilder(`${prependKey}second`, isMerge, screen) const third = keyObjectBuilder(`${prependKey}third`, isMerge, screen) @@ -26,7 +26,7 @@ export const mockKeyState = (screen: screenType, isMerge: boolean, prependKey: s } } -export const keyObjectBuilder = (key: string, isMerge: boolean, screen: screenType): IKeyObject => { +export const keyObjectBuilder = (key: string, isMerge: boolean, screen: paneType): IKeyObject => { return { key: key, isMerge: isMerge, @@ -34,7 +34,7 @@ export const keyObjectBuilder = (key: string, isMerge: boolean, screen: screenTy } } -export const populateKeyStore3 = (screen: screenType, isMerge: boolean) => { +export const populateKeyStore3 = (screen: paneType, isMerge: boolean) => { const keyState = mockKeyState(screen, isMerge); keyState.keys.map(val => store.dispatch(keyActions.pushKey(val.screen, val.key, val.isMerge))) } diff --git a/twopane-navigation/packages/twopane-navigation/src/Shared/screenStore/keyStore/tests/key.test.ts b/twopane-navigation/packages/twopane-navigation/src/Shared/screenStore/keyStore/tests/key.test.ts index dc6b4ad..9f72647 100644 --- a/twopane-navigation/packages/twopane-navigation/src/Shared/screenStore/keyStore/tests/key.test.ts +++ b/twopane-navigation/packages/twopane-navigation/src/Shared/screenStore/keyStore/tests/key.test.ts @@ -1,7 +1,7 @@ import { store, resetApp } from "../../../../appStore" import { IKeyState } from "../key.interface"; import { populateKeyStore3, mockKeyState, keyObjectBuilder } from "./key.methods.helpers"; -import { screenType } from "../../../../utilities/interfaces"; +import { paneType } from "../../../../utilities/interfaces"; import { pushKey, popToFront, popScreen, moveToFront, changeScreen } from "../key.actions"; describe('keyStore tests', () => { @@ -9,16 +9,16 @@ describe('keyStore tests', () => { store.dispatch(resetApp()) }); - describe('singleScreen', () => { + describe('onePane', () => { it('PUSH_KEY', () => { // Arrange - const expectedState = mockKeyState(screenType.SINGLE, false, `${screenType.SINGLE}_`); + const expectedState = mockKeyState(paneType.ONE, false, `${paneType.ONE}_`); // Act - store.dispatch(pushKey(screenType.SINGLE, `first`, false)); - store.dispatch(pushKey(screenType.SINGLE, `second`, false)); - store.dispatch(pushKey(screenType.SINGLE, `third`, false)); + store.dispatch(pushKey(paneType.ONE, `first`, false)); + store.dispatch(pushKey(paneType.ONE, `second`, false)); + store.dispatch(pushKey(paneType.ONE, `third`, false)); const data = store.getState().KeyReducers; // Assert expect(data).toStrictEqual(expectedState) @@ -27,19 +27,19 @@ describe('keyStore tests', () => { it('PUSH_KEY_EXPECT_DUPLICATION', () => { // Arrange - const original = mockKeyState(screenType.SINGLE, false, `${screenType.SINGLE}_`); - const duplicate = mockKeyState(screenType.SINGLE, false, `${screenType.SINGLE}_`); + const original = mockKeyState(paneType.ONE, false, `${paneType.ONE}_`); + const duplicate = mockKeyState(paneType.ONE, false, `${paneType.ONE}_`); const expectedState: IKeyState = { keys: [...original.keys, ...duplicate.keys] } // Act - store.dispatch(pushKey(screenType.SINGLE, `first`, false)); - store.dispatch(pushKey(screenType.SINGLE, `second`, false)); - store.dispatch(pushKey(screenType.SINGLE, `third`, false)); - store.dispatch(pushKey(screenType.SINGLE, `first`, false)); - store.dispatch(pushKey(screenType.SINGLE, `second`, false)); - store.dispatch(pushKey(screenType.SINGLE, `third`, false)); + store.dispatch(pushKey(paneType.ONE, `first`, false)); + store.dispatch(pushKey(paneType.ONE, `second`, false)); + store.dispatch(pushKey(paneType.ONE, `third`, false)); + store.dispatch(pushKey(paneType.ONE, `first`, false)); + store.dispatch(pushKey(paneType.ONE, `second`, false)); + store.dispatch(pushKey(paneType.ONE, `third`, false)); const data = store.getState().KeyReducers; // Assert @@ -50,178 +50,178 @@ describe('keyStore tests', () => { // Arrange const expectedState: IKeyState = { - keys: [keyObjectBuilder(`${screenType.SINGLE}_first`, false, screenType.SINGLE)] + keys: [keyObjectBuilder(`${paneType.ONE}_first`, false, paneType.ONE)] } - populateKeyStore3(screenType.SINGLE, false); + populateKeyStore3(paneType.ONE, false); // Act - store.dispatch(popToFront(screenType.SINGLE)) + store.dispatch(popToFront(paneType.ONE)) const data = store.getState().KeyReducers; // Assert expect(data).toStrictEqual(expectedState) }) - it('POP_TO_FRONT_KEY dualScreen untouched', () => { + it('POP_TO_FRONT_KEY twoPane untouched', () => { // Arrange - const expectedSingleState: IKeyState = + const expectedONEState: IKeyState = { - keys: [keyObjectBuilder(`${screenType.SINGLE}_first`, false, screenType.SINGLE)] + keys: [keyObjectBuilder(`${paneType.ONE}_first`, false, paneType.ONE)] } - const expectedDualState: IKeyState = mockKeyState(screenType.DUAL, false, `${screenType.DUAL}_`) - populateKeyStore3(screenType.SINGLE, false); - populateKeyStore3(screenType.DUAL, false); + const expectedTWOState: IKeyState = mockKeyState(paneType.TWO, false, `${paneType.TWO}_`) + populateKeyStore3(paneType.ONE, false); + populateKeyStore3(paneType.TWO, false); // Act - store.dispatch(popToFront(screenType.SINGLE)) + store.dispatch(popToFront(paneType.ONE)) const data = store.getState().KeyReducers; - const singleScreenState = data.keys.filter(x => x.screen === screenType.SINGLE); - const dualScreenState = data.keys.filter(x => x.screen === screenType.DUAL); + const onePaneState = data.keys.filter(x => x.screen === paneType.ONE); + const twoPaneState = data.keys.filter(x => x.screen === paneType.TWO); // Assert - expect(singleScreenState).toStrictEqual(expectedSingleState.keys) - expect(dualScreenState).toStrictEqual(expectedDualState.keys) + expect(onePaneState).toStrictEqual(expectedONEState.keys) + expect(twoPaneState).toStrictEqual(expectedTWOState.keys) }) it('POP_KEY', () => { // Arrange - const expectedSingleState: IKeyState = + const expectedONEState: IKeyState = { - keys: [keyObjectBuilder(`${screenType.SINGLE}_first`, false, screenType.SINGLE), - keyObjectBuilder(`${screenType.SINGLE}_second`, false, screenType.SINGLE)] + keys: [keyObjectBuilder(`${paneType.ONE}_first`, false, paneType.ONE), + keyObjectBuilder(`${paneType.ONE}_second`, false, paneType.ONE)] } - populateKeyStore3(screenType.SINGLE, false); + populateKeyStore3(paneType.ONE, false); // Act - store.dispatch(popScreen(screenType.SINGLE)) + store.dispatch(popScreen(paneType.ONE)) const data = store.getState().KeyReducers; // Assert - expect(data).toStrictEqual(expectedSingleState) + expect(data).toStrictEqual(expectedONEState) }) it('POP_KEY Multiple', () => { // Arrange - const expectedSingleState: IKeyState = + const expectedONEState: IKeyState = { - keys: [keyObjectBuilder(`${screenType.SINGLE}_first`, false, screenType.SINGLE)] + keys: [keyObjectBuilder(`${paneType.ONE}_first`, false, paneType.ONE)] } - populateKeyStore3(screenType.SINGLE, false); - populateKeyStore3(screenType.SINGLE, false); + populateKeyStore3(paneType.ONE, false); + populateKeyStore3(paneType.ONE, false); // Act - store.dispatch(popScreen(screenType.SINGLE)) - store.dispatch(popScreen(screenType.SINGLE)) - store.dispatch(popScreen(screenType.SINGLE)) - store.dispatch(popScreen(screenType.SINGLE)) - store.dispatch(popScreen(screenType.SINGLE)) + store.dispatch(popScreen(paneType.ONE)) + store.dispatch(popScreen(paneType.ONE)) + store.dispatch(popScreen(paneType.ONE)) + store.dispatch(popScreen(paneType.ONE)) + store.dispatch(popScreen(paneType.ONE)) const data = store.getState().KeyReducers; // Assert - expect(data).toStrictEqual(expectedSingleState) + expect(data).toStrictEqual(expectedONEState) }) - it('POP_KEY dualScreen untouched', () => { + it('POP_KEY twoPane untouched', () => { // Arrange - const expectedSingleState: IKeyState = + const expectedONEState: IKeyState = { - keys: [keyObjectBuilder(`${screenType.SINGLE}_first`, false, screenType.SINGLE), - keyObjectBuilder(`${screenType.SINGLE}_second`, false, screenType.SINGLE)] + keys: [keyObjectBuilder(`${paneType.ONE}_first`, false, paneType.ONE), + keyObjectBuilder(`${paneType.ONE}_second`, false, paneType.ONE)] } - const expectedDualState: IKeyState = mockKeyState(screenType.DUAL, false, `${screenType.DUAL}_`); + const expectedTWOState: IKeyState = mockKeyState(paneType.TWO, false, `${paneType.TWO}_`); - populateKeyStore3(screenType.SINGLE, false); - populateKeyStore3(screenType.DUAL, false); + populateKeyStore3(paneType.ONE, false); + populateKeyStore3(paneType.TWO, false); // Act - store.dispatch(popScreen(screenType.SINGLE)) + store.dispatch(popScreen(paneType.ONE)) const data = store.getState().KeyReducers; - const singleScreenState = data.keys.filter(x => x.screen === screenType.SINGLE); - const dualScreenState = data.keys.filter(x => x.screen === screenType.DUAL); + const onePaneState = data.keys.filter(x => x.screen === paneType.ONE); + const twoPaneState = data.keys.filter(x => x.screen === paneType.TWO); // Assert - expect(singleScreenState).toStrictEqual(expectedSingleState.keys) - expect(dualScreenState).toStrictEqual(expectedDualState.keys) + expect(onePaneState).toStrictEqual(expectedONEState.keys) + expect(twoPaneState).toStrictEqual(expectedTWOState.keys) }) it('MOVE_TO_FRONT_KEY', () => { // Arrange - const expectedSingleState: IKeyState = + const expectedONEState: IKeyState = { - keys: [keyObjectBuilder(`${screenType.SINGLE}_second`, false, screenType.SINGLE), - keyObjectBuilder(`${screenType.SINGLE}_third`, false, screenType.SINGLE), - keyObjectBuilder(`${screenType.SINGLE}_first`, false, screenType.SINGLE)] + keys: [keyObjectBuilder(`${paneType.ONE}_second`, false, paneType.ONE), + keyObjectBuilder(`${paneType.ONE}_third`, false, paneType.ONE), + keyObjectBuilder(`${paneType.ONE}_first`, false, paneType.ONE)] } // Act - populateKeyStore3(screenType.SINGLE, false); - store.dispatch(moveToFront(screenType.SINGLE, `${screenType.SINGLE}_first`)); + populateKeyStore3(paneType.ONE, false); + store.dispatch(moveToFront(paneType.ONE, `${paneType.ONE}_first`)); const data = store.getState().KeyReducers; // Assert - expect(data).toStrictEqual(expectedSingleState) + expect(data).toStrictEqual(expectedONEState) }) - it('MOVE_TO_FRONT_KEY dualScreen untouched', () => { + it('MOVE_TO_FRONT_KEY twoPane untouched', () => { // Arrange - const expectedSingleState: IKeyState = + const expectedONEState: IKeyState = { - keys: [keyObjectBuilder(`${screenType.SINGLE}_second`, false, screenType.SINGLE), - keyObjectBuilder(`${screenType.SINGLE}_third`, false, screenType.SINGLE), - keyObjectBuilder(`${screenType.SINGLE}_first`, false, screenType.SINGLE)] + keys: [keyObjectBuilder(`${paneType.ONE}_second`, false, paneType.ONE), + keyObjectBuilder(`${paneType.ONE}_third`, false, paneType.ONE), + keyObjectBuilder(`${paneType.ONE}_first`, false, paneType.ONE)] } - const expectedDualState: IKeyState = mockKeyState(screenType.DUAL, false, `${screenType.DUAL}_`); - populateKeyStore3(screenType.SINGLE, false); - populateKeyStore3(screenType.DUAL, false); + const expectedTWOState: IKeyState = mockKeyState(paneType.TWO, false, `${paneType.TWO}_`); + populateKeyStore3(paneType.ONE, false); + populateKeyStore3(paneType.TWO, false); // Act - store.dispatch(moveToFront(screenType.SINGLE, `${screenType.SINGLE}_first`)); + store.dispatch(moveToFront(paneType.ONE, `${paneType.ONE}_first`)); const data = store.getState().KeyReducers; - const singleScreenState = data.keys.filter(x => x.screen === screenType.SINGLE); - const dualScreenState = data.keys.filter(x => x.screen === screenType.DUAL); + const onePaneState = data.keys.filter(x => x.screen === paneType.ONE); + const twoPaneState = data.keys.filter(x => x.screen === paneType.TWO); // Assert - expect(singleScreenState).toStrictEqual(expectedSingleState.keys) - expect(dualScreenState).toStrictEqual(expectedDualState.keys) + expect(onePaneState).toStrictEqual(expectedONEState.keys) + expect(twoPaneState).toStrictEqual(expectedTWOState.keys) }) it('CHANGE_SCREEN_KEY', () => { // Arrange - const expectedSingleState: IKeyState = + const expectedONEState: IKeyState = { - keys: [keyObjectBuilder(`${screenType.SINGLE}_first`, false, screenType.SINGLE), - keyObjectBuilder(`${screenType.SINGLE}_second`, false, screenType.DUAL), - keyObjectBuilder(`${screenType.SINGLE}_third`, false, screenType.SINGLE)] + keys: [keyObjectBuilder(`${paneType.ONE}_first`, false, paneType.ONE), + keyObjectBuilder(`${paneType.ONE}_second`, false, paneType.TWO), + keyObjectBuilder(`${paneType.ONE}_third`, false, paneType.ONE)] } // Act - populateKeyStore3(screenType.SINGLE, false); - store.dispatch(changeScreen(screenType.DUAL, `${screenType.SINGLE}_second`)); + populateKeyStore3(paneType.ONE, false); + store.dispatch(changeScreen(paneType.TWO, `${paneType.ONE}_second`)); const data = store.getState().KeyReducers; // Assert - expect(data).toStrictEqual(expectedSingleState) + expect(data).toStrictEqual(expectedONEState) }) }); - describe('dualScreen', () => { + describe('twoPane', () => { it('PUSH_KEY', () => { // Arrange - const expectedState = mockKeyState(screenType.DUAL, false, `${screenType.DUAL}_`); + const expectedState = mockKeyState(paneType.TWO, false, `${paneType.TWO}_`); // Act - store.dispatch(pushKey(screenType.DUAL, `first`, false)); - store.dispatch(pushKey(screenType.DUAL, `second`, false)); - store.dispatch(pushKey(screenType.DUAL, `third`, false)); + store.dispatch(pushKey(paneType.TWO, `first`, false)); + store.dispatch(pushKey(paneType.TWO, `second`, false)); + store.dispatch(pushKey(paneType.TWO, `third`, false)); const data = store.getState().KeyReducers; // Assert @@ -230,19 +230,19 @@ describe('keyStore tests', () => { it('PUSH_KEY_EXPECT_DUPLICATION', () => { // Arrange - const original = mockKeyState(screenType.DUAL, false, `${screenType.DUAL}_`); - const duplicate = mockKeyState(screenType.DUAL, false, `${screenType.DUAL}_`); + const original = mockKeyState(paneType.TWO, false, `${paneType.TWO}_`); + const duplicate = mockKeyState(paneType.TWO, false, `${paneType.TWO}_`); const expectedState: IKeyState = { keys: [...original.keys, ...duplicate.keys] } // Act - store.dispatch(pushKey(screenType.DUAL, `first`, false)); - store.dispatch(pushKey(screenType.DUAL, `second`, false)); - store.dispatch(pushKey(screenType.DUAL, `third`, false)); - store.dispatch(pushKey(screenType.DUAL, `first`, false)); - store.dispatch(pushKey(screenType.DUAL, `second`, false)); - store.dispatch(pushKey(screenType.DUAL, `third`, false)); + store.dispatch(pushKey(paneType.TWO, `first`, false)); + store.dispatch(pushKey(paneType.TWO, `second`, false)); + store.dispatch(pushKey(paneType.TWO, `third`, false)); + store.dispatch(pushKey(paneType.TWO, `first`, false)); + store.dispatch(pushKey(paneType.TWO, `second`, false)); + store.dispatch(pushKey(paneType.TWO, `third`, false)); const data = store.getState().KeyReducers; // Assert @@ -253,165 +253,165 @@ describe('keyStore tests', () => { // Arrange const expectedState: IKeyState = { - keys: [keyObjectBuilder(`${screenType.DUAL}_first`, false, screenType.DUAL)] + keys: [keyObjectBuilder(`${paneType.TWO}_first`, false, paneType.TWO)] } - populateKeyStore3(screenType.DUAL, false); + populateKeyStore3(paneType.TWO, false); // Act - store.dispatch(popToFront(screenType.DUAL)) + store.dispatch(popToFront(paneType.TWO)) const data = store.getState().KeyReducers; // Assert expect(data).toStrictEqual(expectedState) }) - it('POP_TO_FRONT_KEY singleScreen untouched', () => { + it('POP_TO_FRONT_KEY onePane untouched', () => { // Arrange - const expectedSingleState: IKeyState = mockKeyState(screenType.SINGLE, false, `${screenType.SINGLE}_`) - const expectedDualState: IKeyState = { - keys: [keyObjectBuilder(`${screenType.DUAL}_first`, false, screenType.DUAL)] + const expectedONEState: IKeyState = mockKeyState(paneType.ONE, false, `${paneType.ONE}_`) + const expectedTWOState: IKeyState = { + keys: [keyObjectBuilder(`${paneType.TWO}_first`, false, paneType.TWO)] } - populateKeyStore3(screenType.SINGLE, false); - populateKeyStore3(screenType.DUAL, false); + populateKeyStore3(paneType.ONE, false); + populateKeyStore3(paneType.TWO, false); // Act - store.dispatch(popToFront(screenType.DUAL)) + store.dispatch(popToFront(paneType.TWO)) const data = store.getState().KeyReducers; - const singleScreenState = data.keys.filter(x => x.screen === screenType.SINGLE); - const dualScreenState = data.keys.filter(x => x.screen === screenType.DUAL); + const onePaneState = data.keys.filter(x => x.screen === paneType.ONE); + const twoPaneState = data.keys.filter(x => x.screen === paneType.TWO); // Assert - expect(singleScreenState).toStrictEqual(expectedSingleState.keys) - expect(dualScreenState).toStrictEqual(expectedDualState.keys) + expect(onePaneState).toStrictEqual(expectedONEState.keys) + expect(twoPaneState).toStrictEqual(expectedTWOState.keys) }) it('POP_KEY', () => { // Arrange - const expectedDualState: IKeyState = + const expectedTWOState: IKeyState = { - keys: [keyObjectBuilder(`${screenType.DUAL}_first`, false, screenType.DUAL), - keyObjectBuilder(`${screenType.DUAL}_second`, false, screenType.DUAL)] + keys: [keyObjectBuilder(`${paneType.TWO}_first`, false, paneType.TWO), + keyObjectBuilder(`${paneType.TWO}_second`, false, paneType.TWO)] } - populateKeyStore3(screenType.DUAL, false); + populateKeyStore3(paneType.TWO, false); // Act - store.dispatch(popScreen(screenType.DUAL)) + store.dispatch(popScreen(paneType.TWO)) const data = store.getState().KeyReducers; // Assert - expect(data).toStrictEqual(expectedDualState) + expect(data).toStrictEqual(expectedTWOState) }) it('POP_KEY Multiple', () => { // Arrange - const expectedDualState: IKeyState = + const expectedTWOState: IKeyState = { - keys: [keyObjectBuilder(`${screenType.DUAL}_first`, false, screenType.DUAL)] + keys: [keyObjectBuilder(`${paneType.TWO}_first`, false, paneType.TWO)] } - populateKeyStore3(screenType.DUAL, false); - populateKeyStore3(screenType.DUAL, false); + populateKeyStore3(paneType.TWO, false); + populateKeyStore3(paneType.TWO, false); // Act - store.dispatch(popScreen(screenType.DUAL)) - store.dispatch(popScreen(screenType.DUAL)) - store.dispatch(popScreen(screenType.DUAL)) - store.dispatch(popScreen(screenType.DUAL)) - store.dispatch(popScreen(screenType.DUAL)) + store.dispatch(popScreen(paneType.TWO)) + store.dispatch(popScreen(paneType.TWO)) + store.dispatch(popScreen(paneType.TWO)) + store.dispatch(popScreen(paneType.TWO)) + store.dispatch(popScreen(paneType.TWO)) const data = store.getState().KeyReducers; // Assert - expect(data).toStrictEqual(expectedDualState) + expect(data).toStrictEqual(expectedTWOState) }) - it('POP_KEY singleScreen untouched', () => { + it('POP_KEY onePane untouched', () => { // Arrange - const expectedSingleState: IKeyState = mockKeyState(screenType.SINGLE, false, `${screenType.SINGLE}_`); - const expectedDualState: IKeyState = + const expectedONEState: IKeyState = mockKeyState(paneType.ONE, false, `${paneType.ONE}_`); + const expectedTWOState: IKeyState = { - keys: [keyObjectBuilder(`${screenType.DUAL}_first`, false, screenType.DUAL), - keyObjectBuilder(`${screenType.DUAL}_second`, false, screenType.DUAL)] + keys: [keyObjectBuilder(`${paneType.TWO}_first`, false, paneType.TWO), + keyObjectBuilder(`${paneType.TWO}_second`, false, paneType.TWO)] } - populateKeyStore3(screenType.SINGLE, false); - populateKeyStore3(screenType.DUAL, false); + populateKeyStore3(paneType.ONE, false); + populateKeyStore3(paneType.TWO, false); // Act - store.dispatch(popScreen(screenType.DUAL)) + store.dispatch(popScreen(paneType.TWO)) const data = store.getState().KeyReducers; - const singleScreenState = data.keys.filter(x => x.screen === screenType.SINGLE); - const dualScreenState = data.keys.filter(x => x.screen === screenType.DUAL); + const onePaneState = data.keys.filter(x => x.screen === paneType.ONE); + const twoPaneState = data.keys.filter(x => x.screen === paneType.TWO); // Assert - expect(singleScreenState).toStrictEqual(expectedSingleState.keys) - expect(dualScreenState).toStrictEqual(expectedDualState.keys) + expect(onePaneState).toStrictEqual(expectedONEState.keys) + expect(twoPaneState).toStrictEqual(expectedTWOState.keys) }) it('MOVE_TO_FRONT_KEY', () => { // Arrange - const expectedDualState: IKeyState = + const expectedTWOState: IKeyState = { - keys: [keyObjectBuilder(`${screenType.DUAL}_second`, false, screenType.DUAL), - keyObjectBuilder(`${screenType.DUAL}_third`, false, screenType.DUAL), - keyObjectBuilder(`${screenType.DUAL}_first`, false, screenType.DUAL)] + keys: [keyObjectBuilder(`${paneType.TWO}_second`, false, paneType.TWO), + keyObjectBuilder(`${paneType.TWO}_third`, false, paneType.TWO), + keyObjectBuilder(`${paneType.TWO}_first`, false, paneType.TWO)] } // Act - populateKeyStore3(screenType.DUAL, false); - store.dispatch(moveToFront(screenType.DUAL, `${screenType.DUAL}_first`)); + populateKeyStore3(paneType.TWO, false); + store.dispatch(moveToFront(paneType.TWO, `${paneType.TWO}_first`)); const data = store.getState().KeyReducers; // Assert - expect(data).toStrictEqual(expectedDualState) + expect(data).toStrictEqual(expectedTWOState) }) - it('MOVE_TO_FRONT_KEY singleScreen untouched', () => { + it('MOVE_TO_FRONT_KEY onePane untouched', () => { // Arrange - const expectedDualState: IKeyState = + const expectedTWOState: IKeyState = { - keys: [keyObjectBuilder(`${screenType.DUAL}_second`, false, screenType.DUAL), - keyObjectBuilder(`${screenType.DUAL}_third`, false, screenType.DUAL), - keyObjectBuilder(`${screenType.DUAL}_first`, false, screenType.DUAL)] + keys: [keyObjectBuilder(`${paneType.TWO}_second`, false, paneType.TWO), + keyObjectBuilder(`${paneType.TWO}_third`, false, paneType.TWO), + keyObjectBuilder(`${paneType.TWO}_first`, false, paneType.TWO)] } - const expectedSingleState: IKeyState = mockKeyState(screenType.SINGLE, false, `${screenType.SINGLE}_`); - populateKeyStore3(screenType.SINGLE, false); - populateKeyStore3(screenType.DUAL, false); + const expectedONEState: IKeyState = mockKeyState(paneType.ONE, false, `${paneType.ONE}_`); + populateKeyStore3(paneType.ONE, false); + populateKeyStore3(paneType.TWO, false); // Act - store.dispatch(moveToFront(screenType.DUAL, `${screenType.DUAL}_first`)); + store.dispatch(moveToFront(paneType.TWO, `${paneType.TWO}_first`)); const data = store.getState().KeyReducers; - const singleScreenState = data.keys.filter(x => x.screen === screenType.SINGLE); - const dualScreenState = data.keys.filter(x => x.screen === screenType.DUAL); + const onePaneState = data.keys.filter(x => x.screen === paneType.ONE); + const twoPaneState = data.keys.filter(x => x.screen === paneType.TWO); // Assert - expect(singleScreenState).toStrictEqual(expectedSingleState.keys) - expect(dualScreenState).toStrictEqual(expectedDualState.keys) + expect(onePaneState).toStrictEqual(expectedONEState.keys) + expect(twoPaneState).toStrictEqual(expectedTWOState.keys) }) it('CHANGE_SCREEN_KEY', () => { // Arrange - const expectedSingleState: IKeyState = + const expectedONEState: IKeyState = { - keys: [keyObjectBuilder(`${screenType.DUAL}_first`, false, screenType.DUAL), - keyObjectBuilder(`${screenType.DUAL}_second`, false, screenType.SINGLE), - keyObjectBuilder(`${screenType.DUAL}_third`, false, screenType.DUAL)] + keys: [keyObjectBuilder(`${paneType.TWO}_first`, false, paneType.TWO), + keyObjectBuilder(`${paneType.TWO}_second`, false, paneType.ONE), + keyObjectBuilder(`${paneType.TWO}_third`, false, paneType.TWO)] } // Act - populateKeyStore3(screenType.DUAL, false); - store.dispatch(changeScreen(screenType.SINGLE, `${screenType.DUAL}_second`)); + populateKeyStore3(paneType.TWO, false); + store.dispatch(changeScreen(paneType.ONE, `${paneType.TWO}_second`)); const data = store.getState().KeyReducers; // Assert - expect(data).toStrictEqual(expectedSingleState) + expect(data).toStrictEqual(expectedONEState) }) }); diff --git a/twopane-navigation/packages/twopane-navigation/src/Shared/screenStore/paneElementStore/paneElement.action.ts b/twopane-navigation/packages/twopane-navigation/src/Shared/screenStore/paneElementStore/paneElement.action.ts new file mode 100644 index 0000000..9a8e631 --- /dev/null +++ b/twopane-navigation/packages/twopane-navigation/src/Shared/screenStore/paneElementStore/paneElement.action.ts @@ -0,0 +1,36 @@ +import { PUSH_PANE_ELEMENT, REMOVE_KEY_PANE_ELEMENT, REPLACE_PANE_ELEMENT } from "./paneElement.types"; +import react, { ReactElement } from "react"; +import { IPaneElementAction } from "./paneElement.interface"; +import { IKeyOnlyAction } from "../keyStore/key.interface"; + +export const pushElement = ( + key: string, + paneElement: ReactElement +): IPaneElementAction => ({ + type: PUSH_PANE_ELEMENT, + payload: { + key: key, + paneElement: paneElement + } +}); + +export const replacePaneElement = ( + key: string, + paneElement: ReactElement +): IPaneElementAction => ({ + type: REPLACE_PANE_ELEMENT, + payload: { + key: key, + paneElement: paneElement + } +}); + + +export const removePaneElementByKey = ( + twoPaneElementKey: string +): IKeyOnlyAction => ({ + type: REMOVE_KEY_PANE_ELEMENT, + payload: { + key: twoPaneElementKey + } +}); \ No newline at end of file diff --git a/twopane-navigation/packages/twopane-navigation/src/Shared/screenStore/paneElementStore/paneElement.interface.ts b/twopane-navigation/packages/twopane-navigation/src/Shared/screenStore/paneElementStore/paneElement.interface.ts new file mode 100644 index 0000000..5885bf7 --- /dev/null +++ b/twopane-navigation/packages/twopane-navigation/src/Shared/screenStore/paneElementStore/paneElement.interface.ts @@ -0,0 +1,17 @@ +import react, { ReactElement } from "react"; + +export interface IPaneElementObject { + [key: string]: ReactElement; +} + +export interface IPaneElementState { + PaneElements: IPaneElementObject; +} + +export interface IPaneElementAction { + type: string; + payload: { + key: string + paneElement: ReactElement; + }; +} diff --git a/twopane-navigation/packages/twopane-navigation/src/Shared/screenStore/paneElementStore/paneElement.reducer.ts b/twopane-navigation/packages/twopane-navigation/src/Shared/screenStore/paneElementStore/paneElement.reducer.ts new file mode 100644 index 0000000..2b9eabf --- /dev/null +++ b/twopane-navigation/packages/twopane-navigation/src/Shared/screenStore/paneElementStore/paneElement.reducer.ts @@ -0,0 +1,48 @@ + +import { PUSH_PANE_ELEMENT, REMOVE_KEY_PANE_ELEMENT, REPLACE_PANE_ELEMENT } from './paneElement.types'; +import { IPaneElementState, IPaneElementAction } from './paneElement.interface'; + +const initialState: IPaneElementState = { + PaneElements: {} +}; + +const PaneElementReducer = ( + state: IPaneElementState = initialState, + action: IPaneElementAction +): IPaneElementState => { + switch (action.type) { + case PUSH_PANE_ELEMENT: { + return { + ...state, + PaneElements: { + ...state.PaneElements, + [action.payload.key as string]: action.payload.paneElement + } + }; + } + case REPLACE_PANE_ELEMENT: { + const hasKey = action.payload.key in state.PaneElements; + if (!hasKey) { + return { ...state }; + } + return { + ...state, + PaneElements: { + ...state.PaneElements, + [action.payload.key as string]: action.payload.paneElement + }, + }; + + } + case REMOVE_KEY_PANE_ELEMENT: { + // using delete over lodash.omit to reduce dependencies on external libraries + const newData = state; + delete newData.PaneElements[action.payload.key]; + return { ...newData } + } + default: + return state; + } +}; + +export default PaneElementReducer; diff --git a/twopane-navigation/packages/twopane-navigation/src/Shared/screenStore/paneElementStore/paneElement.selectors.ts b/twopane-navigation/packages/twopane-navigation/src/Shared/screenStore/paneElementStore/paneElement.selectors.ts new file mode 100644 index 0000000..60be67a --- /dev/null +++ b/twopane-navigation/packages/twopane-navigation/src/Shared/screenStore/paneElementStore/paneElement.selectors.ts @@ -0,0 +1,7 @@ +import { useSelector } from "react-redux"; +import { rootReducerType } from "../../../appStore"; +import { IPaneElementState} from "./paneElement.interface"; + +export const getPaneElementSelector = (): IPaneElementState => { + return useSelector((state: rootReducerType) => state.PaneElementReducer); +}; diff --git a/twopane-navigation/packages/twopane-navigation/src/Shared/screenStore/paneElementStore/paneElement.types.ts b/twopane-navigation/packages/twopane-navigation/src/Shared/screenStore/paneElementStore/paneElement.types.ts new file mode 100644 index 0000000..56e9252 --- /dev/null +++ b/twopane-navigation/packages/twopane-navigation/src/Shared/screenStore/paneElementStore/paneElement.types.ts @@ -0,0 +1,7 @@ +export const PUSH_PANE_ELEMENT: string = 'PUSH_PANE_ELEMENT'; + +export const REMOVE_KEY_PANE_ELEMENT: string = 'REMOVE_KEY_PANE_ELEMENT'; + +export const REPLACE_PANE_ELEMENT: string = 'REPLACE_PANE_ELEMENT'; + + diff --git a/twopane-navigation/packages/twopane-navigation/src/Shared/screenStore/paneElementStore/tests/paneElement.methods.helpers.tsx b/twopane-navigation/packages/twopane-navigation/src/Shared/screenStore/paneElementStore/tests/paneElement.methods.helpers.tsx new file mode 100644 index 0000000..3b61a11 --- /dev/null +++ b/twopane-navigation/packages/twopane-navigation/src/Shared/screenStore/paneElementStore/tests/paneElement.methods.helpers.tsx @@ -0,0 +1,20 @@ +import { IPaneElementAction, IPaneElementObject } from "../paneElement.interface" +import React, { ReactElement } from 'react'; + +export const paneElementActionBuilder = (type: string, key: string, paneElement: React.ReactElement): IPaneElementAction => { + return { + type: type, + payload: { + key: key, + paneElement: paneElement + } + } +} + + + +export const paneElementObjectBuilder = (key: string, paneElement: ReactElement): IPaneElementObject => { + return { + [key]: paneElement + } +} \ No newline at end of file diff --git a/twopane-navigation/packages/twopane-navigation/src/Shared/screenStore/twoPaneElementStore/tests/twoPaneElement.test.tsx b/twopane-navigation/packages/twopane-navigation/src/Shared/screenStore/paneElementStore/tests/paneElement.test.tsx similarity index 51% rename from twopane-navigation/packages/twopane-navigation/src/Shared/screenStore/twoPaneElementStore/tests/twoPaneElement.test.tsx rename to twopane-navigation/packages/twopane-navigation/src/Shared/screenStore/paneElementStore/tests/paneElement.test.tsx index 852e569..4059ee6 100644 --- a/twopane-navigation/packages/twopane-navigation/src/Shared/screenStore/twoPaneElementStore/tests/twoPaneElement.test.tsx +++ b/twopane-navigation/packages/twopane-navigation/src/Shared/screenStore/paneElementStore/tests/paneElement.test.tsx @@ -1,35 +1,35 @@ -import { ITwoPaneElementState } from "../twoPaneElement.interface" -import { twoPaneElementObjectBuilder } from "./twoPaneElement.methods.helpers" +import { IPaneElementState } from "../paneElement.interface" +import { paneElementObjectBuilder } from "./paneElement.methods.helpers" import React, { Fragment } from 'react'; -import { pushElement, replacetwoPaneElement, removetwoPaneElementByKey } from "../twoPaneElement.action" +import { pushElement, replacePaneElement, removePaneElementByKey } from "../PaneElement.action" import { store, resetApp } from "../../../../appStore"; import { Text } from "react-native"; -describe('twoPaneElementStore tests', () => { +describe('PaneElementStore tests', () => { beforeEach(() => { store.dispatch(resetApp()) }); - it('PUSH_TWOPANE_ELEMENT', () => { + it('PUSH_PANE_ELEMENT', () => { // Arrange - const expectedState: ITwoPaneElementState = + const expectedState: IPaneElementState = { - twoPaneElements: twoPaneElementObjectBuilder('first', ) + PaneElements: paneElementObjectBuilder('first', ) } // Act store.dispatch(pushElement('first', )) - const data = store.getState().twoPaneElementReducer + const data = store.getState().PaneElementReducer // Assert expect(data).toStrictEqual(expectedState); }) - it('PUSH_TWOPANE_ELEMENT Multiple', () => { + it('PUSH_PANE_ELEMENT Multiple', () => { // Arrange - const expectedState: ITwoPaneElementState = + const expectedState: IPaneElementState = { - twoPaneElements: { + PaneElements: { 'first': , 'second': , 'third': , @@ -40,66 +40,66 @@ describe('twoPaneElementStore tests', () => { store.dispatch(pushElement('first', )) store.dispatch(pushElement('second', )) store.dispatch(pushElement('third', )) - const data = store.getState().twoPaneElementReducer + const data = store.getState().PaneElementReducer // Assert expect(data).toStrictEqual(expectedState); }) - it('REPLACE_TWOPANE_ELEMENT', () => { + it('REPLACE_PANE_ELEMENT', () => { // Arrange - const expectedState: ITwoPaneElementState = { - twoPaneElements: twoPaneElementObjectBuilder('first', second) + const expectedState: IPaneElementState = { + PaneElements: paneElementObjectBuilder('first', second) } // Act store.dispatch(pushElement('first', first)) - store.dispatch(replacetwoPaneElement('first', second)) - const data = store.getState().twoPaneElementReducer + store.dispatch(replacePaneElement('first', second)) + const data = store.getState().PaneElementReducer // Assert expect(data).toStrictEqual(expectedState); }) - it('REPLACE_TWOPANE_ELEMENT Multiple', () => { + it('REPLACE_PANE_ELEMENT Multiple', () => { // Arrange - const expectedState: ITwoPaneElementState = { - twoPaneElements: twoPaneElementObjectBuilder('first', fifth) + const expectedState: IPaneElementState = { + PaneElements: paneElementObjectBuilder('first', fifth) } // Act store.dispatch(pushElement('first', first)) - store.dispatch(replacetwoPaneElement('first', second)) - store.dispatch(replacetwoPaneElement('first', third)) - store.dispatch(replacetwoPaneElement('first', fourth)) - store.dispatch(replacetwoPaneElement('first', fifth)) - const data = store.getState().twoPaneElementReducer + store.dispatch(replacePaneElement('first', second)) + store.dispatch(replacePaneElement('first', third)) + store.dispatch(replacePaneElement('first', fourth)) + store.dispatch(replacePaneElement('first', fifth)) + const data = store.getState().PaneElementReducer // Assert expect(data).toStrictEqual(expectedState); }) - it('REPLACE_TWOPANE_ELEMENT not found', () => { + it('REPLACE_PANE_ELEMENT not found', () => { // Arrange - const expectedState: ITwoPaneElementState = { - twoPaneElements: twoPaneElementObjectBuilder('first', first) + const expectedState: IPaneElementState = { + PaneElements: paneElementObjectBuilder('first', first) } // Act store.dispatch(pushElement('first', first)) - store.dispatch(replacetwoPaneElement('does not exist', second)) - const data = store.getState().twoPaneElementReducer + store.dispatch(replacePaneElement('does not exist', second)) + const data = store.getState().PaneElementReducer // Assert expect(data).toStrictEqual(expectedState); }) - it('REMOVE_KEY_TWOPANE_ELEMENT', () => { + it('REMOVE_KEY_PANE_ELEMENT', () => { // Arrange - const expectedState: ITwoPaneElementState = + const expectedState: IPaneElementState = { - twoPaneElements: { + PaneElements: { 'first': first, 'third': third, } @@ -109,18 +109,18 @@ describe('twoPaneElementStore tests', () => { store.dispatch(pushElement('first', first)) store.dispatch(pushElement('second', second)) store.dispatch(pushElement('third', third)) - store.dispatch(removetwoPaneElementByKey('second')) - const data = store.getState().twoPaneElementReducer + store.dispatch(removePaneElementByKey('second')) + const data = store.getState().PaneElementReducer // Assert expect(data).toStrictEqual(expectedState); }) - it('REMOVE_KEY_TWOPANE_ELEMENT Multiple', () => { + it('REMOVE_KEY_PANE_ELEMENT Multiple', () => { // Arrange - const expectedState: ITwoPaneElementState = + const expectedState: IPaneElementState = { - twoPaneElements: { + PaneElements: { 'first': first, 'third': third, 'fifth': fifth, @@ -133,19 +133,19 @@ describe('twoPaneElementStore tests', () => { store.dispatch(pushElement('third', third,)) store.dispatch(pushElement('fourth', fourth,)) store.dispatch(pushElement('fifth', fifth,)) - store.dispatch(removetwoPaneElementByKey('second')) - store.dispatch(removetwoPaneElementByKey('fourth')) - const data = store.getState().twoPaneElementReducer + store.dispatch(removePaneElementByKey('second')) + store.dispatch(removePaneElementByKey('fourth')) + const data = store.getState().PaneElementReducer // Assert expect(data).toStrictEqual(expectedState); }) - it('REMOVE_KEY_TWOPANE_ELEMENT not found ', () => { + it('REMOVE_KEY_PANE_ELEMENT not found ', () => { // Arrange - const expectedState: ITwoPaneElementState = + const expectedState: IPaneElementState = { - twoPaneElements: { + PaneElements: { 'first': first, 'second': second, 'third': third, @@ -156,8 +156,8 @@ describe('twoPaneElementStore tests', () => { store.dispatch(pushElement('first', first,)) store.dispatch(pushElement('second', second,)) store.dispatch(pushElement('third', third,)) - store.dispatch(removetwoPaneElementByKey('does not exist')) - const data = store.getState().twoPaneElementReducer + store.dispatch(removePaneElementByKey('does not exist')) + const data = store.getState().PaneElementReducer // Assert expect(data).toStrictEqual(expectedState); diff --git a/twopane-navigation/packages/twopane-navigation/src/Shared/screenStore/twoPaneElementStore/tests/twoPaneElement.methods.helpers.tsx b/twopane-navigation/packages/twopane-navigation/src/Shared/screenStore/twoPaneElementStore/tests/twoPaneElement.methods.helpers.tsx deleted file mode 100644 index 492b405..0000000 --- a/twopane-navigation/packages/twopane-navigation/src/Shared/screenStore/twoPaneElementStore/tests/twoPaneElement.methods.helpers.tsx +++ /dev/null @@ -1,20 +0,0 @@ -import { ITwoPaneElementAction, ITwoPaneElementObject } from "../twoPaneElement.interface" -import React, { ReactElement } from 'react'; - -export const twoPaneElementActionBuilder = (type: string, key: string, twoPaneElement: React.ReactElement): ITwoPaneElementAction => { - return { - type: type, - payload: { - key: key, - twoPaneElement: twoPaneElement - } - } -} - - - -export const twoPaneElementObjectBuilder = (key: string, twoPaneElement: ReactElement): ITwoPaneElementObject => { - return { - [key]: twoPaneElement - } -} \ No newline at end of file diff --git a/twopane-navigation/packages/twopane-navigation/src/Shared/screenStore/twoPaneElementStore/twoPaneElement.action.ts b/twopane-navigation/packages/twopane-navigation/src/Shared/screenStore/twoPaneElementStore/twoPaneElement.action.ts deleted file mode 100644 index f0526cc..0000000 --- a/twopane-navigation/packages/twopane-navigation/src/Shared/screenStore/twoPaneElementStore/twoPaneElement.action.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { PUSH_TWOPANE_ELEMENT, REMOVE_KEY_TWOPANE_ELEMENT, REPLACE_TWOPANE_ELEMENT } from "./twoPaneElement.types"; -import { ReactElement } from "react"; -import { ITwoPaneElementAction } from "./twoPaneElement.interface"; -import { IKeyOnlyAction } from "../keyStore/key.interface"; - -export const pushElement = ( - key: string, - twoPaneElement: ReactElement -): ITwoPaneElementAction => ({ - type: PUSH_TWOPANE_ELEMENT, - payload: { - key: key, - twoPaneElement: twoPaneElement - } -}); - -export const replacetwoPaneElement = ( - key: string, - twoPaneElement: ReactElement -): ITwoPaneElementAction => ({ - type: REPLACE_TWOPANE_ELEMENT, - payload: { - key: key, - twoPaneElement: twoPaneElement - } -}); - - -export const removetwoPaneElementByKey = ( - twoPaneElementKey: string -): IKeyOnlyAction => ({ - type: REMOVE_KEY_TWOPANE_ELEMENT, - payload: { - key: twoPaneElementKey - } -}); \ No newline at end of file diff --git a/twopane-navigation/packages/twopane-navigation/src/Shared/screenStore/twoPaneElementStore/twoPaneElement.interface.ts b/twopane-navigation/packages/twopane-navigation/src/Shared/screenStore/twoPaneElementStore/twoPaneElement.interface.ts deleted file mode 100644 index cfa9868..0000000 --- a/twopane-navigation/packages/twopane-navigation/src/Shared/screenStore/twoPaneElementStore/twoPaneElement.interface.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { ReactElement } from "react"; - -export interface ITwoPaneElementObject { - [key: string]: ReactElement; -} - -export interface ITwoPaneElementState { - twoPaneElements: ITwoPaneElementObject; -} - -export interface ITwoPaneElementAction { - type: string; - payload: { - key: string - twoPaneElement: ReactElement; - }; -} diff --git a/twopane-navigation/packages/twopane-navigation/src/Shared/screenStore/twoPaneElementStore/twoPaneElement.reducer.ts b/twopane-navigation/packages/twopane-navigation/src/Shared/screenStore/twoPaneElementStore/twoPaneElement.reducer.ts deleted file mode 100644 index 460b986..0000000 --- a/twopane-navigation/packages/twopane-navigation/src/Shared/screenStore/twoPaneElementStore/twoPaneElement.reducer.ts +++ /dev/null @@ -1,48 +0,0 @@ - -import { PUSH_TWOPANE_ELEMENT, REMOVE_KEY_TWOPANE_ELEMENT, REPLACE_TWOPANE_ELEMENT } from './twoPaneElement.types'; -import { ITwoPaneElementState, ITwoPaneElementAction } from './twoPaneElement.interface'; - -const initialState: ITwoPaneElementState = { - twoPaneElements: {} -}; - -const twoPaneElementReducer = ( - state: ITwoPaneElementState = initialState, - action: ITwoPaneElementAction -): ITwoPaneElementState => { - switch (action.type) { - case PUSH_TWOPANE_ELEMENT: { - return { - ...state, - twoPaneElements: { - ...state.twoPaneElements, - [action.payload.key as string]: action.payload.twoPaneElement - } - }; - } - case REPLACE_TWOPANE_ELEMENT: { - const hasKey = action.payload.key in state.twoPaneElements; - if (!hasKey) { - return { ...state }; - } - return { - ...state, - twoPaneElements: { - ...state.twoPaneElements, - [action.payload.key as string]: action.payload.twoPaneElement - }, - }; - - } - case REMOVE_KEY_TWOPANE_ELEMENT: { - // using delete over lodash.omit to reduce dependencies on external libraries - const newData = state; - delete newData.twoPaneElements[action.payload.key]; - return { ...newData } - } - default: - return state; - } -}; - -export default twoPaneElementReducer; diff --git a/twopane-navigation/packages/twopane-navigation/src/Shared/screenStore/twoPaneElementStore/twoPaneElement.selectors.ts b/twopane-navigation/packages/twopane-navigation/src/Shared/screenStore/twoPaneElementStore/twoPaneElement.selectors.ts deleted file mode 100644 index a80c8df..0000000 --- a/twopane-navigation/packages/twopane-navigation/src/Shared/screenStore/twoPaneElementStore/twoPaneElement.selectors.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { useSelector } from "react-redux"; -import { rootReducerType } from "../../../appStore"; -import { ITwoPaneElementState } from "./twoPaneElement.interface"; - -export const getTwoPaneElementSelector = (): ITwoPaneElementState => { - return useSelector((state: rootReducerType) => state.twoPaneElementReducer); -}; diff --git a/twopane-navigation/packages/twopane-navigation/src/Shared/screenStore/twoPaneElementStore/twoPaneElement.types.ts b/twopane-navigation/packages/twopane-navigation/src/Shared/screenStore/twoPaneElementStore/twoPaneElement.types.ts deleted file mode 100644 index 1b90779..0000000 --- a/twopane-navigation/packages/twopane-navigation/src/Shared/screenStore/twoPaneElementStore/twoPaneElement.types.ts +++ /dev/null @@ -1,7 +0,0 @@ -export const PUSH_TWOPANE_ELEMENT: string = 'PUSH_TWOPANE_ELEMENT'; - -export const REMOVE_KEY_TWOPANE_ELEMENT: string = 'REMOVE_KEY_TWOPANE_ELEMENT'; - -export const REPLACE_TWOPANE_ELEMENT: string = 'REPLACE_TWOPANE_ELEMENT'; - - diff --git a/twopane-navigation/packages/twopane-navigation/src/Shared/utilityStore/tests/UtilityStore.test.ts b/twopane-navigation/packages/twopane-navigation/src/Shared/utilityStore/tests/UtilityStore.test.ts index f7e0f77..7b2c7f2 100644 --- a/twopane-navigation/packages/twopane-navigation/src/Shared/utilityStore/tests/UtilityStore.test.ts +++ b/twopane-navigation/packages/twopane-navigation/src/Shared/utilityStore/tests/UtilityStore.test.ts @@ -1,31 +1,31 @@ import { IUtilityStoreState } from "../utilityStore.interfaces" import { store } from "../../../appStore" -import { isDualScreenAction } from "../utilityStore.actions" +import { isTwoPaneAction } from "../utilityStore.actions" describe('utilityStore reducer tests', () => { - it('is DualScreen', () => { + it('is twoPane', () => { // Arrange const expectedState: IUtilityStoreState = { - isDualScreen: true + isTwoPane: true } // Act - store.dispatch(isDualScreenAction(true)); + store.dispatch(isTwoPaneAction(true)); const data = store.getState().utilityStoreReducer; // Assert expect(data).toStrictEqual(expectedState) }) - it('is DualScreen false', () => { + it('is twoPane false', () => { // Arrange const expectedState: IUtilityStoreState = { - isDualScreen: false + isTwoPane: false } // Act - store.dispatch(isDualScreenAction(false)); + store.dispatch(isTwoPaneAction(false)); const data = store.getState().utilityStoreReducer; // Assert diff --git a/twopane-navigation/packages/twopane-navigation/src/Shared/utilityStore/utilityStore.actions.ts b/twopane-navigation/packages/twopane-navigation/src/Shared/utilityStore/utilityStore.actions.ts index 7d4783f..2773f5a 100644 --- a/twopane-navigation/packages/twopane-navigation/src/Shared/utilityStore/utilityStore.actions.ts +++ b/twopane-navigation/packages/twopane-navigation/src/Shared/utilityStore/utilityStore.actions.ts @@ -1,10 +1,10 @@ import { IUtilityStoreAction } from "./utilityStore.interfaces"; -import { IS_DUALSCREEN } from "./utilityStore.types"; +import { IS_TWOPANE } from "./utilityStore.types"; -export const isDualScreenAction = (isDualScreen: boolean): +export const isTwoPaneAction = (isTwoPane: boolean): IUtilityStoreAction => ({ - type: IS_DUALSCREEN, + type: IS_TWOPANE, payload: { - isDualScreen: isDualScreen + isTwoPane: isTwoPane } }); diff --git a/twopane-navigation/packages/twopane-navigation/src/Shared/utilityStore/utilityStore.interfaces.ts b/twopane-navigation/packages/twopane-navigation/src/Shared/utilityStore/utilityStore.interfaces.ts index a8fde0b..819598e 100644 --- a/twopane-navigation/packages/twopane-navigation/src/Shared/utilityStore/utilityStore.interfaces.ts +++ b/twopane-navigation/packages/twopane-navigation/src/Shared/utilityStore/utilityStore.interfaces.ts @@ -1,10 +1,10 @@ export interface IUtilityStoreState { - isDualScreen: boolean; + isTwoPane: boolean; } export interface IUtilityStoreAction { type: string; payload: { - isDualScreen: boolean; + isTwoPane: boolean; }; } diff --git a/twopane-navigation/packages/twopane-navigation/src/Shared/utilityStore/utilityStore.methods.ts b/twopane-navigation/packages/twopane-navigation/src/Shared/utilityStore/utilityStore.methods.ts index 1b61646..addd2ce 100644 --- a/twopane-navigation/packages/twopane-navigation/src/Shared/utilityStore/utilityStore.methods.ts +++ b/twopane-navigation/packages/twopane-navigation/src/Shared/utilityStore/utilityStore.methods.ts @@ -1,12 +1,12 @@ import { store } from "../../appStore"; -import { isDualScreenAction } from "./utilityStore.actions"; +import { isTwoPaneAction } from "./utilityStore.actions"; -const isDualScreen = (isDualScreen: boolean) => { - store.dispatch(isDualScreenAction(isDualScreen)); +const isTwoPane = (isTwoPane: boolean) => { + store.dispatch(isTwoPaneAction(isTwoPane)); }; const _UtilityFunctions = { - isDualScreen, + isTwoPane, }; type utilityFunctions = typeof _UtilityFunctions; diff --git a/twopane-navigation/packages/twopane-navigation/src/Shared/utilityStore/utilityStore.reducer.ts b/twopane-navigation/packages/twopane-navigation/src/Shared/utilityStore/utilityStore.reducer.ts index 28a9c78..93168fc 100644 --- a/twopane-navigation/packages/twopane-navigation/src/Shared/utilityStore/utilityStore.reducer.ts +++ b/twopane-navigation/packages/twopane-navigation/src/Shared/utilityStore/utilityStore.reducer.ts @@ -1,7 +1,7 @@ import { IUtilityStoreState, IUtilityStoreAction } from "./utilityStore.interfaces"; -import { IS_DUALSCREEN } from './utilityStore.types' +import { IS_TWOPANE } from './utilityStore.types' const initialState: IUtilityStoreState = { - isDualScreen: false + isTwoPane: false }; const utilityStoreReducer = ( @@ -9,9 +9,9 @@ const utilityStoreReducer = ( action: IUtilityStoreAction ): IUtilityStoreState => { switch (action.type) { - case IS_DUALSCREEN: { + case IS_TWOPANE: { return { - isDualScreen: action.payload.isDualScreen + isTwoPane: action.payload.isTwoPane }; } default: diff --git a/twopane-navigation/packages/twopane-navigation/src/Shared/utilityStore/utilityStore.selectors.ts b/twopane-navigation/packages/twopane-navigation/src/Shared/utilityStore/utilityStore.selectors.ts index cf11a82..c1a34a4 100644 --- a/twopane-navigation/packages/twopane-navigation/src/Shared/utilityStore/utilityStore.selectors.ts +++ b/twopane-navigation/packages/twopane-navigation/src/Shared/utilityStore/utilityStore.selectors.ts @@ -2,6 +2,6 @@ import { rootReducerType } from "../../appStore"; import { useSelector } from "react-redux"; import { IUtilityStoreState } from "./utilityStore.interfaces"; -export const getIsDualScreen = (): IUtilityStoreState => { +export const getIsTwoPane = (): IUtilityStoreState => { return useSelector((state: rootReducerType) => state.utilityStoreReducer); }; \ No newline at end of file diff --git a/twopane-navigation/packages/twopane-navigation/src/Shared/utilityStore/utilityStore.types.ts b/twopane-navigation/packages/twopane-navigation/src/Shared/utilityStore/utilityStore.types.ts index 4d5f59b..5d747ac 100644 --- a/twopane-navigation/packages/twopane-navigation/src/Shared/utilityStore/utilityStore.types.ts +++ b/twopane-navigation/packages/twopane-navigation/src/Shared/utilityStore/utilityStore.types.ts @@ -1 +1 @@ -export const IS_DUALSCREEN: string = 'IS_DUALSCREEN'; \ No newline at end of file +export const IS_TWOPANE: string = 'IS_TWOPANE'; \ No newline at end of file diff --git a/twopane-navigation/packages/twopane-navigation/src/appStore.ts b/twopane-navigation/packages/twopane-navigation/src/appStore.ts index faad4f3..f860ae9 100644 --- a/twopane-navigation/packages/twopane-navigation/src/appStore.ts +++ b/twopane-navigation/packages/twopane-navigation/src/appStore.ts @@ -2,7 +2,7 @@ import { combineReducers, createStore } from 'redux'; import keyReducers from './Shared/screenStore/keyStore/key.reducer'; -import twoPaneElementReducer from './Shared/screenStore/twoPaneElementStore/twoPaneElement.reducer'; +import PaneElementReducer from './Shared/screenStore/paneElementStore/paneElement.reducer'; import headerReducer from './Shared/screenStore/headerStore/header.reducer'; import utilityStoreReducer from './Shared/utilityStore/utilityStore.reducer'; @@ -12,7 +12,7 @@ require('./utilities/extensionMethods'); const rootReducer = combineReducers({ KeyReducers: keyReducers, headerReducer, - twoPaneElementReducer, + PaneElementReducer, utilityStoreReducer }); diff --git a/twopane-navigation/packages/twopane-navigation/src/components/dualApp/DualApp.tsx b/twopane-navigation/packages/twopane-navigation/src/components/dualApp/DualApp.tsx deleted file mode 100644 index 759c4cd..0000000 --- a/twopane-navigation/packages/twopane-navigation/src/components/dualApp/DualApp.tsx +++ /dev/null @@ -1,61 +0,0 @@ -import React, { Fragment, useEffect } from 'react'; -import { Provider } from 'react-redux'; - -import { store } from '../../appStore'; -import { IScreenComponent } from '../../utilities/interfaces'; -import DualHub from '../dualHub/DualHub'; -import singleScreen from '../../singleScreen/singleScreenStore/singleScreen.methods'; -import dualScreen from '../../dualScreen/dualScreenStore/dualScreen.methods'; - -export interface IDualAppProps { - /** - * Default element for single screen mode - */ - singleScreen: IScreenComponent; - - /** - * Default element for dual screen mode - */ - dualScreen: IScreenComponent; - - /** - * AppContainer if using React Navigation - */ - navigationContainer?: JSX.Element; - - /** - * Items to render in app drawer. If empty, drawer will not be included. - */ - drawerItems?: JSX.Element[]; -} - -const DualApp = (props: IDualAppProps) => { - - const screenState = store.getState().KeyReducers.keys; - //TODO: possibly look into utility state for things like isMount to keep data between renders - const hasSingle: boolean = screenState.some(val => val.key === (`SINGLE_${props.singleScreen.key}`)); - const hasDual: boolean = screenState.some(val => val.key === (`DUAL_${props.singleScreen.key}`)); - - useEffect(() => { - if (!hasSingle && !hasDual) { - singleScreen.Add(props.singleScreen.key, props.singleScreen.twoPaneElement, props?.singleScreen?.header!); - dualScreen.Add(props.dualScreen.key, props.dualScreen.twoPaneElement, props?.dualScreen?.header!); - } - }, []); - - return ( - - - {props.navigationContainer !== undefined ? ( - props.navigationContainer - ) : ( - - - - )} - - - ); -}; - -export default DualApp; diff --git a/twopane-navigation/packages/twopane-navigation/src/components/dualHub/DualHub.style.ts b/twopane-navigation/packages/twopane-navigation/src/components/dualHub/DualHub.style.ts deleted file mode 100644 index 24216c9..0000000 --- a/twopane-navigation/packages/twopane-navigation/src/components/dualHub/DualHub.style.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { StyleSheet } from 'react-native'; - -export const DualHeaderStyles = StyleSheet.create({ -}); diff --git a/twopane-navigation/packages/twopane-navigation/src/components/screenHeader/ScreenHeader.style.ts b/twopane-navigation/packages/twopane-navigation/src/components/paneHeader/PaneHeader.style.ts similarity index 84% rename from twopane-navigation/packages/twopane-navigation/src/components/screenHeader/ScreenHeader.style.ts rename to twopane-navigation/packages/twopane-navigation/src/components/paneHeader/PaneHeader.style.ts index d6dbd7c..24a23fb 100644 --- a/twopane-navigation/packages/twopane-navigation/src/components/screenHeader/ScreenHeader.style.ts +++ b/twopane-navigation/packages/twopane-navigation/src/components/paneHeader/PaneHeader.style.ts @@ -1,6 +1,6 @@ import { StyleSheet } from 'react-native'; -export const ScreenHeaderStyles = StyleSheet.create({ +export const PaneHeaderStyles = StyleSheet.create({ container: { flex: 1, justifyContent: 'flex-start', diff --git a/twopane-navigation/packages/twopane-navigation/src/components/screenHeader/ScreenHeader.tsx b/twopane-navigation/packages/twopane-navigation/src/components/paneHeader/PaneHeader.tsx similarity index 50% rename from twopane-navigation/packages/twopane-navigation/src/components/screenHeader/ScreenHeader.tsx rename to twopane-navigation/packages/twopane-navigation/src/components/paneHeader/PaneHeader.tsx index aa99e09..fa484df 100644 --- a/twopane-navigation/packages/twopane-navigation/src/components/screenHeader/ScreenHeader.tsx +++ b/twopane-navigation/packages/twopane-navigation/src/components/paneHeader/PaneHeader.tsx @@ -1,20 +1,17 @@ import React, { Fragment } from 'react'; import { Text, TouchableOpacity, View } from 'react-native'; -import { ScreenHeaderStyles } from './ScreenHeader.style'; -import { IHeader } from '../../Shared/screenStore/headerStore/header.interface'; +import { PaneHeaderStyles } from './PaneHeader.style'; +import { IPaneHeaderProps } from '../../utilities/interfaces'; -export interface IScreenheaderProps extends IHeader { -} - -const ScreenHeader = (props: IScreenheaderProps) => { +const PaneHeader = (props: IPaneHeaderProps) => { return ( {props?.leftIcon! !== undefined && ( props?.IconPress!()} //element > {props.leftIcon} @@ -23,7 +20,7 @@ const ScreenHeader = (props: IScreenheaderProps) => { )} {props?.title} @@ -31,4 +28,4 @@ const ScreenHeader = (props: IScreenheaderProps) => { ); }; -export default ScreenHeader; +export default PaneHeader; diff --git a/twopane-navigation/packages/twopane-navigation/src/components/screenHeaderContainer/ScreenHeaderContainer.style.ts b/twopane-navigation/packages/twopane-navigation/src/components/paneHeaderContainer/PaneHeaderContainer.style.ts similarity index 69% rename from twopane-navigation/packages/twopane-navigation/src/components/screenHeaderContainer/ScreenHeaderContainer.style.ts rename to twopane-navigation/packages/twopane-navigation/src/components/paneHeaderContainer/PaneHeaderContainer.style.ts index a4da472..18f11a2 100644 --- a/twopane-navigation/packages/twopane-navigation/src/components/screenHeaderContainer/ScreenHeaderContainer.style.ts +++ b/twopane-navigation/packages/twopane-navigation/src/components/paneHeaderContainer/PaneHeaderContainer.style.ts @@ -1,6 +1,6 @@ import { StyleSheet } from 'react-native'; -export const screenHeaderContainerStyles = StyleSheet.create({ +export const paneHeaderContainerStyles = StyleSheet.create({ HeaderDefault: { paddingHorizontal: 25, backgroundColor: '#212121' diff --git a/twopane-navigation/packages/twopane-navigation/src/components/screenHeaderContainer/ScreenHeaderContainer.tsx b/twopane-navigation/packages/twopane-navigation/src/components/paneHeaderContainer/PaneHeaderContainer.tsx similarity index 75% rename from twopane-navigation/packages/twopane-navigation/src/components/screenHeaderContainer/ScreenHeaderContainer.tsx rename to twopane-navigation/packages/twopane-navigation/src/components/paneHeaderContainer/PaneHeaderContainer.tsx index a9574ee..f96633c 100644 --- a/twopane-navigation/packages/twopane-navigation/src/components/screenHeaderContainer/ScreenHeaderContainer.tsx +++ b/twopane-navigation/packages/twopane-navigation/src/components/paneHeaderContainer/PaneHeaderContainer.tsx @@ -1,17 +1,17 @@ -import React, { } from 'react'; -import { Text, View } from 'react-native'; +import React from 'react'; +import { View } from 'react-native'; import Icon from 'react-native-vector-icons/MaterialIcons'; -import ScreenHeader from '../screenHeader/ScreenHeader'; -import { screenHeaderContainerStyles } from './ScreenHeaderContainer.style'; +import ScreenHeader from '../paneHeader/PaneHeader'; +import { paneHeaderContainerStyles } from './PaneHeaderContainer.style'; import { IHeader } from '../../Shared/screenStore/headerStore/header.interface'; -interface IScreenHeaderContainerProps { +interface IPaneHeaderContainerProps { isGoBack: boolean; screenHeader: IHeader | undefined; goBack: () => any; } -const ScreenHeaderContainer = (props: IScreenHeaderContainerProps) => { +const PaneHeaderContainer = (props: IPaneHeaderContainerProps) => { const { isGoBack, screenHeader, goBack } = props; @@ -20,7 +20,7 @@ const ScreenHeaderContainer = (props: IScreenHeaderContainerProps) => { {isGoBack ? ( { // { ) } -export default ScreenHeaderContainer; \ No newline at end of file +export default PaneHeaderContainer; \ No newline at end of file diff --git a/twopane-navigation/packages/twopane-navigation/src/components/screenOverlay/ScreenOverlay.styles.ts b/twopane-navigation/packages/twopane-navigation/src/components/paneOverlay/PaneOverlay.styles.ts similarity index 85% rename from twopane-navigation/packages/twopane-navigation/src/components/screenOverlay/ScreenOverlay.styles.ts rename to twopane-navigation/packages/twopane-navigation/src/components/paneOverlay/PaneOverlay.styles.ts index 1ec7982..12ebdf3 100644 --- a/twopane-navigation/packages/twopane-navigation/src/components/screenOverlay/ScreenOverlay.styles.ts +++ b/twopane-navigation/packages/twopane-navigation/src/components/paneOverlay/PaneOverlay.styles.ts @@ -1,6 +1,6 @@ import { StyleSheet } from 'react-native'; -export const ScreenOverlayStyles = StyleSheet.create({ +export const PaneOverlayStyles = StyleSheet.create({ backdrop: { flex: 1, position: 'absolute', diff --git a/twopane-navigation/packages/twopane-navigation/src/components/screenOverlay/ScreenOverlay.tsx b/twopane-navigation/packages/twopane-navigation/src/components/paneOverlay/PaneOverlay.tsx similarity index 77% rename from twopane-navigation/packages/twopane-navigation/src/components/screenOverlay/ScreenOverlay.tsx rename to twopane-navigation/packages/twopane-navigation/src/components/paneOverlay/PaneOverlay.tsx index eb28214..d0402f8 100644 --- a/twopane-navigation/packages/twopane-navigation/src/components/screenOverlay/ScreenOverlay.tsx +++ b/twopane-navigation/packages/twopane-navigation/src/components/paneOverlay/PaneOverlay.tsx @@ -3,9 +3,9 @@ import React, { Fragment} from 'react'; import { View, ViewStyle, StyleProp, } from 'react-native'; -import { ScreenOverlayStyles } from './ScreenOverlay.styles'; +import { PaneOverlayStyles } from './PaneOverlay.styles'; -interface IScreenOverlayProps { +interface IPaneOverlayProps { /** * Content of the overlay */ @@ -28,12 +28,12 @@ interface IScreenOverlayProps { onBackdropPress?:()=> void; } -const ScreenOverlay = (props: IScreenOverlayProps) => { +const PaneOverlay = (props: IPaneOverlayProps) => { return ( {props.isVisible && ( { //check if we are clicking ourselves or a different component if ( @@ -47,7 +47,7 @@ const ScreenOverlay = (props: IScreenOverlayProps) => { }}> + style={[PaneOverlayStyles.overlay, props.overlayStyle]}> {props.children} @@ -56,4 +56,4 @@ const ScreenOverlay = (props: IScreenOverlayProps) => { ); }; -export default ScreenOverlay; +export default PaneOverlay; diff --git a/twopane-navigation/packages/twopane-navigation/src/components/screenOverlay/tests/ScreenOverlay.test.tsx b/twopane-navigation/packages/twopane-navigation/src/components/paneOverlay/tests/PaneOverlay.test.tsx similarity index 75% rename from twopane-navigation/packages/twopane-navigation/src/components/screenOverlay/tests/ScreenOverlay.test.tsx rename to twopane-navigation/packages/twopane-navigation/src/components/paneOverlay/tests/PaneOverlay.test.tsx index ec13822..834b353 100644 --- a/twopane-navigation/packages/twopane-navigation/src/components/screenOverlay/tests/ScreenOverlay.test.tsx +++ b/twopane-navigation/packages/twopane-navigation/src/components/paneOverlay/tests/PaneOverlay.test.tsx @@ -1,6 +1,6 @@ import React, { Fragment } from 'react'; import renderer from 'react-test-renderer'; -import ScreenOverlay from '../ScreenOverlay'; +import PaneOverlay from '../PaneOverlay'; describe('ScreenOverlay Tests', () => { it('should render', () => { @@ -9,9 +9,9 @@ describe('ScreenOverlay Tests', () => { // Act const tree = renderer.create( - + - + ); // Assert diff --git a/twopane-navigation/packages/twopane-navigation/src/components/screenOverlay/tests/__snapshots__/ScreenOverlay.test.tsx.snap b/twopane-navigation/packages/twopane-navigation/src/components/paneOverlay/tests/__snapshots__/PaneOverlay.test.tsx.snap similarity index 100% rename from twopane-navigation/packages/twopane-navigation/src/components/screenOverlay/tests/__snapshots__/ScreenOverlay.test.tsx.snap rename to twopane-navigation/packages/twopane-navigation/src/components/paneOverlay/tests/__snapshots__/PaneOverlay.test.tsx.snap diff --git a/twopane-navigation/packages/twopane-navigation/src/components/screenRenderer/ScreenRenderer.tsx b/twopane-navigation/packages/twopane-navigation/src/components/paneRenderer/PaneRenderer.tsx similarity index 52% rename from twopane-navigation/packages/twopane-navigation/src/components/screenRenderer/ScreenRenderer.tsx rename to twopane-navigation/packages/twopane-navigation/src/components/paneRenderer/PaneRenderer.tsx index e9ed995..9ec1bb8 100644 --- a/twopane-navigation/packages/twopane-navigation/src/components/screenRenderer/ScreenRenderer.tsx +++ b/twopane-navigation/packages/twopane-navigation/src/components/paneRenderer/PaneRenderer.tsx @@ -1,31 +1,31 @@ -import { IScreenComponent, screenType } from "../../utilities/interfaces"; -import { StyleSheet, View, StyleProp, ViewStyle } from "react-native"; -import ScreenHeaderContainer from "../screenHeaderContainer/ScreenHeaderContainer"; -import singleScreen from "../../singleScreen/singleScreenStore/singleScreen.methods"; +import { IPaneComponent, paneType } from "../../utilities/interfaces"; +import { StyleSheet, View} from "react-native"; +import ScreenHeaderContainer from "../paneHeaderContainer/PaneHeaderContainer"; +import onePane from "../../onePane/onePaneStore/onePane.methods"; import React, { Fragment } from "react"; -import dualScreen from "../../dualScreen/dualScreenStore/dualScreen.methods"; +import twoPane from "../../twoPane/twoPaneStore/twoPane.methods"; interface IScreenRendererProps { prependKey: string; - screenComponent: IScreenComponent[]; + screenComponent: IPaneComponent[]; } const ScreenRenderer = (props: IScreenRendererProps) => { const { prependKey, screenComponent } = props; - const isGoBackSingle = screenComponent.filter(x => x.screen === screenType.SINGLE).length > 1; - const isGoBackDual = screenComponent.filter(x => x.screen === screenType.DUAL).length > 1; + const isGoBackONE = screenComponent.filter(x => x.screen === paneType.ONE).length > 1; + const isGoBackTWO = screenComponent.filter(x => x.screen === paneType.TWO).length > 1; return ( { - screenComponent.map((val: IScreenComponent) => + screenComponent.map((val: IPaneComponent) => + style={[ScreenRendererStyles.container, (val.screen === paneType.ONE ? ScreenRendererStyles.isONE : ScreenRendererStyles.isTWO)]}> (val.screen === screenType.SINGLE ? singleScreen.GoBack() : dualScreen.GoBack())} + goBack={() => (val.screen === paneType.ONE ? onePane.GoBack() : twoPane.GoBack())} /> { + + const screenState = store.getState().KeyReducers.keys; + //TODO: possibly look into utility state for things like isMount to keep data between renders + const hasOnePaneDefault: boolean = screenState.some(val => val.key === (`ONE_${props.onePaneDefault.key}`)); + const hasTwoPaneDefault: boolean = screenState.some(val => val.key === (`TWO_${props.twoPaneDefault.key}`)); + + useEffect(() => { + if (!hasOnePaneDefault && !hasTwoPaneDefault) { + onePane.Add(props.onePaneDefault.key, props.onePaneDefault.twoPaneElement, props?.onePaneDefault?.header!); + twoPane.Add(props.twoPaneDefault.key, props.twoPaneDefault.twoPaneElement, props?.twoPaneDefault?.header!); + } + }, []); + + return ( + + + {props.navigationContainer !== undefined ? ( + props.navigationContainer + ) : ( + + + + )} + + + ); +}; + +export default TwoPaneApp; diff --git a/twopane-navigation/packages/twopane-navigation/src/components/dualApp/tests/DualApp.test.tsx b/twopane-navigation/packages/twopane-navigation/src/components/twoPaneApp/tests/TwoPaneApp.test.tsx similarity index 66% rename from twopane-navigation/packages/twopane-navigation/src/components/dualApp/tests/DualApp.test.tsx rename to twopane-navigation/packages/twopane-navigation/src/components/twoPaneApp/tests/TwoPaneApp.test.tsx index a8ecff0..2264e73 100644 --- a/twopane-navigation/packages/twopane-navigation/src/components/dualApp/tests/DualApp.test.tsx +++ b/twopane-navigation/packages/twopane-navigation/src/components/twoPaneApp/tests/TwoPaneApp.test.tsx @@ -1,13 +1,13 @@ import React, { Fragment } from 'react'; -import DualApp from '../DualApp'; -import { IScreenComponent } from '../../../utilities/interfaces'; +import DualApp from '../twoPaneApp'; +import { IPaneComponent } from '../../../utilities/interfaces'; import { render, toJSON } from '@testing-library/react-native'; describe('DualApp Tests', () => { it('should render singleScreen', () => { // Arrange jest.useFakeTimers(); - const singleScreenDefault: IScreenComponent = { + const _onePaneDefault: IPaneComponent = { key: 'singleDefault', twoPaneElement: , header: { @@ -15,19 +15,19 @@ describe('DualApp Tests', () => { } }; - const dualScreenDefault: IScreenComponent = { + const _twoPaneDefault: IPaneComponent = { key: 'dualDefault', twoPaneElement: , header: { - title: 'dualScreenDefaultTitle' + title: 'onePaneDefaultTitle' } }; // Act const { container } = render( ); diff --git a/twopane-navigation/packages/twopane-navigation/src/components/dualApp/tests/__snapshots__/DualApp.test.tsx.snap b/twopane-navigation/packages/twopane-navigation/src/components/twoPaneApp/tests/__snapshots__/TwoPaneApp.test.tsx.snap similarity index 98% rename from twopane-navigation/packages/twopane-navigation/src/components/dualApp/tests/__snapshots__/DualApp.test.tsx.snap rename to twopane-navigation/packages/twopane-navigation/src/components/twoPaneApp/tests/__snapshots__/TwoPaneApp.test.tsx.snap index 150bd3d..3ca63a2 100644 --- a/twopane-navigation/packages/twopane-navigation/src/components/dualApp/tests/__snapshots__/DualApp.test.tsx.snap +++ b/twopane-navigation/packages/twopane-navigation/src/components/twoPaneApp/tests/__snapshots__/TwoPaneApp.test.tsx.snap @@ -144,7 +144,7 @@ exports[`DualApp Tests should render singleScreen 1`] = ` } } > - dualScreenDefaultTitle + onePaneDefaultTitle diff --git a/twopane-navigation/packages/twopane-navigation/src/components/dualHub/DualHub.tsx b/twopane-navigation/packages/twopane-navigation/src/components/twoPaneHub/TwoPaneHub.tsx similarity index 57% rename from twopane-navigation/packages/twopane-navigation/src/components/dualHub/DualHub.tsx rename to twopane-navigation/packages/twopane-navigation/src/components/twoPaneHub/TwoPaneHub.tsx index 94b0227..05032cc 100644 --- a/twopane-navigation/packages/twopane-navigation/src/components/dualHub/DualHub.tsx +++ b/twopane-navigation/packages/twopane-navigation/src/components/twoPaneHub/TwoPaneHub.tsx @@ -1,29 +1,29 @@ import React, { useMemo, useEffect } from 'react'; import { View } from 'react-native'; -import { IScreenComponent } from '../../utilities/interfaces'; +import { IPaneComponent } from '../../utilities/interfaces'; -import { getTwoPaneElementSelector } from '../../Shared/screenStore/twoPaneElementStore/twoPaneElement.selectors'; +import { getPaneElementSelector } from '../../Shared/screenStore/paneElementStore/paneElement.selectors'; import { getHeaderSelector } from '../../Shared/screenStore/headerStore/header.selector'; import { IHeaderState } from '../../Shared/screenStore/headerStore/header.interface'; -import { ITwoPaneElementState } from '../../Shared/screenStore/twoPaneElementStore/twoPaneElement.interface'; +import { IPaneElementState } from '../../Shared/screenStore/paneElementStore/paneElement.interface'; -import ScreenRenderer from '../screenRenderer/ScreenRenderer'; +import ScreenRenderer from '../paneRenderer/PaneRenderer'; import { getScreenKeyState } from '../../Shared/screenStore/keyStore/key.selector'; import { DualScreenInfo, DualScreenInfoPayload } from 'react-native-dualscreeninfo'; import utilityStore from '../../Shared/utilityStore/utilityStore.methods'; -import singleScreen from '../../singleScreen/singleScreenStore/singleScreen.methods'; -import dualScreen from '../../dualScreen/dualScreenStore/dualScreen.methods'; +import onePane from '../../onePane/onePaneStore/onePane.methods'; +import twoPane from '../../twoPane/twoPaneStore/twoPane.methods'; -const DualHub = () => { +const TwoPaneHub = () => { - const twoPaneElementState: ITwoPaneElementState = getTwoPaneElementSelector(); + const twoPaneElementState: IPaneElementState = getPaneElementSelector(); const headerState: IHeaderState = getHeaderSelector(); const keyState = getScreenKeyState(); useEffect(() => { - utilityStore.isDualScreen(DualScreenInfo.isSpanning) + utilityStore.isTwoPane(DualScreenInfo.isSpanning) DualScreenInfo.addEventListener('didUpdateSpanning', _handleSpanningChanged); return () => { @@ -31,11 +31,11 @@ const DualHub = () => { } }, []) - const screenStack: IScreenComponent[] = useMemo(() => { + const screenStack: IPaneComponent[] = useMemo(() => { return keyState.keys.map((val, index) => { return { key: val.key, - twoPaneElement: twoPaneElementState.twoPaneElements[val.key], + twoPaneElement: twoPaneElementState.PaneElements[val.key], header: headerState.headers[val.key], screen: val.screen } @@ -43,11 +43,11 @@ const DualHub = () => { }, [keyState, twoPaneElementState, headerState]) const _handleSpanningChanged = (update: DualScreenInfoPayload) => { - utilityStore.isDualScreen(update.isSpanning) + utilityStore.isTwoPane(update.isSpanning) if (update.isSpanning) { - singleScreen.mergeToOppositeScreen(); + onePane.mergeToOppositeScreen(); } else { - dualScreen.mergeToOppositeScreen(); + twoPane.mergeToOppositeScreen(); } }; @@ -61,4 +61,4 @@ const DualHub = () => { ); }; -export default DualHub; +export default TwoPaneHub; diff --git a/twopane-navigation/packages/twopane-navigation/src/dualScreen/dualScreenStore/dualScreen.methods.ts b/twopane-navigation/packages/twopane-navigation/src/dualScreen/dualScreenStore/dualScreen.methods.ts deleted file mode 100644 index f9dfe80..0000000 --- a/twopane-navigation/packages/twopane-navigation/src/dualScreen/dualScreenStore/dualScreen.methods.ts +++ /dev/null @@ -1,106 +0,0 @@ -import { store } from '../../appStore'; -import { - screenType -} from '../../utilities/interfaces'; -import { pushKey, popToFront, popScreen, moveToFront, changeScreen } from '../../Shared/screenStore/keyStore/key.actions'; -import { pushHeader, replaceHeader, removeHeaderByKey } from '../../Shared/screenStore/headerStore/header.actions'; -import { pushElement, removetwoPaneElementByKey, replacetwoPaneElement } from '../../Shared/screenStore/twoPaneElementStore/twoPaneElement.action'; -import { IHeader } from '../../Shared/screenStore/headerStore/header.interface'; -import { IKeyState, IKeyObject } from '../../Shared/screenStore/keyStore/key.interface'; - -/** - * Pushes element to the top of the dual screen stack. - */ -const Add = (key: string, element: React.ReactElement, header?: IHeader, isMerge: boolean = false) => { - - store.dispatch(pushKey(screenType.DUAL, key, isMerge)); - store.dispatch(pushElement(`${screenType.DUAL}_${key}`, element)); - if (header) { - store.dispatch(pushHeader(`${screenType.DUAL}_${key}`, header)); - } -}; - -/** - * Pushes element to the top of the dual screen stack or if the key is already in the stack, - move that key to the top ofthe stack - */ -const AddOrMoveToFront = (key: string, element: React.ReactElement, header?: IHeader, isMerge: boolean = false,) => { - const keys: IKeyState = store.getState().KeyReducers; - const dualScreenState: IKeyObject[] = keys.keys.filter(x => x.screen === screenType.DUAL) - - if (!dualScreenState.some(val => val.key === `${screenType.DUAL}_${key}`)) { - Add(key, element, header, isMerge) - } else { - store.dispatch(moveToFront(screenType.DUAL, `${screenType.DUAL}_${key}`)); - } -} -/** - * when the app screensize changes move screens marked as isMerged to the singleScreen - */ -const mergeToOppositeScreen = () => { - const keys: IKeyState = store.getState().KeyReducers; - keys.keys.map(val => { - if (val.screen === screenType.DUAL && val.isMerge) { - store.dispatch(changeScreen(screenType.SINGLE, val.key)) - } - }) - -} - -/** - * Removes all elements of the dual screen stack - * and returns the base element of the dual screen stack - */ -const BackToHome = () => { - const keys: IKeyState = store.getState().KeyReducers; - const dualScreenState: IKeyObject[] = keys.keys.filter(x => x.screen === screenType.DUAL) - - for (let i = 1; i < dualScreenState.length; i++) { - store.dispatch(removeHeaderByKey(dualScreenState[i].key)); - store.dispatch(removetwoPaneElementByKey(dualScreenState[i].key)); - } - store.dispatch(popToFront(screenType.DUAL)); -}; - -/** - * Go back one element in the dual screen stack - */ -const GoBack = () => { - const keys: IKeyState = store.getState().KeyReducers; - const dualScreenState: IKeyObject[] = keys.keys.filter(x => x.screen === screenType.DUAL) - - store.dispatch(removeHeaderByKey(dualScreenState.peek().key)); - store.dispatch(removetwoPaneElementByKey(dualScreenState.peek().key)); - store.dispatch(popScreen(screenType.DUAL)); - -}; - -/** - * Replace the current element for this dual screen component - */ -const ReplaceScreen = (key: string, element: React.ReactElement) => { - store.dispatch(replacetwoPaneElement(`${screenType.DUAL}_${key}`, element)) -} - -/** - * Replace the default header for this dual screen component - */ -const ReplaceHeader = (key: string, header: IHeader) => { - store.dispatch(replaceHeader(key, header)); -}; - -const _dualScreenFunctions = { - Add, - AddOrMoveToFront, - mergeToOppositeScreen, - BackToHome, - GoBack, - ReplaceScreen, - ReplaceHeader, -}; - -type dualScreenFunctions = typeof _dualScreenFunctions; - -const dualScreen: dualScreenFunctions = _dualScreenFunctions; - -export default dualScreen; diff --git a/twopane-navigation/packages/twopane-navigation/src/dualScreen/dualScreenStore/tests/dualScreen.methods.test.tsx b/twopane-navigation/packages/twopane-navigation/src/dualScreen/dualScreenStore/tests/dualScreen.methods.test.tsx deleted file mode 100644 index 8e094e2..0000000 --- a/twopane-navigation/packages/twopane-navigation/src/dualScreen/dualScreenStore/tests/dualScreen.methods.test.tsx +++ /dev/null @@ -1,256 +0,0 @@ -import React from 'react' -import dualScreen from '../dualScreen.methods'; -import * as keyActions from '../../../Shared/screenStore/keyStore/key.actions'; -import * as headerActions from '../../../Shared/screenStore/headerStore/header.actions'; -import * as twoPaneElementActions from '../../../Shared/screenStore/twoPaneElementStore/twoPaneElement.action'; - -import { Fragment } from 'react'; -import { IKeyAction, IKeyState } from '../../../Shared/screenStore/keyStore/key.interface'; -import { screenType } from '../../../utilities/interfaces'; -import { PUSH_KEY } from '../../../Shared/screenStore/keyStore/key.types'; -import { IHeaderAction } from '../../../Shared/screenStore/headerStore/header.interface'; -import { PUSH_HEADER } from '../../../Shared/screenStore/headerStore/header.types'; -import { ITwoPaneElementAction } from '../../../Shared/screenStore/twoPaneElementStore/twoPaneElement.interface'; -import { PUSH_TWOPANE_ELEMENT } from '../../../Shared/screenStore/twoPaneElementStore/twoPaneElement.types'; -import { twoPaneElementActionBuilder } from '../../../Shared/screenStore/twoPaneElementStore/tests/twoPaneElement.methods.helpers'; -import { headerActionBuilder } from '../../../Shared/screenStore/headerStore/tests/header.methods.helpers'; -import { KeyActionBuilder, mockKeyState } from '../../../Shared/screenStore/keyStore/tests/key.methods.helpers'; -import { store } from '../../../appStore'; - -describe('dualScreen methods', () => { - beforeEach(() => { - jest.clearAllMocks(); - }); - - it('dualScreen Add with header with merge', () => { - // Arrange - const expectedKey: IKeyAction = KeyActionBuilder(PUSH_KEY, screenType.DUAL, 'test1', true); - - const expectedHeader: IHeaderAction = headerActionBuilder(PUSH_HEADER, `${screenType.DUAL}_test1`, { title: 'test title' }); - - const expectedtwoPaneElement: ITwoPaneElementAction = twoPaneElementActionBuilder(PUSH_TWOPANE_ELEMENT, `${screenType.DUAL}_test1`, ); - - const pushKeySpy = jest.spyOn(keyActions, 'pushKey'); - const pushheaderSpy = jest.spyOn(headerActions, 'pushHeader'); - const pushtwoPaneElementsSpy = jest.spyOn(twoPaneElementActions, 'pushElement'); - - // Act - const _dualScreenAdd = dualScreen.Add('test1', , { title: 'test title' }, true); - - // Assert - expect(pushKeySpy).toBeCalled(); - expect(pushheaderSpy).toBeCalled(); - expect(pushtwoPaneElementsSpy).toBeCalled(); - expect(pushKeySpy.mock.results.find(x => x.value)?.value).toStrictEqual(expectedKey) - expect(pushheaderSpy.mock.results.find(x => x.value)?.value).toStrictEqual(expectedHeader) - expect(pushtwoPaneElementsSpy.mock.results.find(x => x.value)?.value).toStrictEqual(expectedtwoPaneElement) - }); - - it('dualScreen Add with header with no merge', () => { - // Arrange - const expectedKey: IKeyAction = KeyActionBuilder(PUSH_KEY, screenType.DUAL, 'test2', false); - - const expectedHeader: IHeaderAction = headerActionBuilder(PUSH_HEADER, `${screenType.DUAL}_test2`, { title: 'test title' }); - - const expectedtwoPaneElement: ITwoPaneElementAction = twoPaneElementActionBuilder(PUSH_TWOPANE_ELEMENT, `${screenType.DUAL}_test2`, ); - - const pushKeySpy = jest.spyOn(keyActions, 'pushKey'); - const pushheaderSpy = jest.spyOn(headerActions, 'pushHeader'); - const pushtwoPaneElementsSpy = jest.spyOn(twoPaneElementActions, 'pushElement'); - - // Act - const _dualScreenAdd = dualScreen.Add('test2', , { title: 'test title' }); - - // Assert - expect(pushKeySpy).toBeCalled(); - expect(pushheaderSpy).toBeCalled(); - expect(pushtwoPaneElementsSpy).toBeCalled(); - expect(pushKeySpy.mock.results.find(x => x.value)?.value).toStrictEqual(expectedKey) - expect(pushheaderSpy.mock.results.find(x => x.value)?.value).toStrictEqual(expectedHeader) - expect(pushtwoPaneElementsSpy.mock.results.find(x => x.value)?.value).toStrictEqual(expectedtwoPaneElement) - }); - - it('dualScreen Add no header with merge', () => { - // Arrange - const expectedKey: IKeyAction = KeyActionBuilder(PUSH_KEY, screenType.DUAL, 'test3', true); - - const expectedtwoPaneElement: ITwoPaneElementAction = twoPaneElementActionBuilder(PUSH_TWOPANE_ELEMENT, `${screenType.DUAL}_test3`, ); - - const pushKeySpy = jest.spyOn(keyActions, 'pushKey'); - const pushheaderSpy = jest.spyOn(headerActions, 'pushHeader'); - - const pushtwoPaneElementsSpy = jest.spyOn(twoPaneElementActions, 'pushElement'); - - // Act - const _dualScreenAdd = dualScreen.Add('test3', , undefined, true); - - // Assert - expect(pushKeySpy).toBeCalled(); - expect(pushheaderSpy).not.toBeCalled(); - expect(pushtwoPaneElementsSpy).toBeCalled(); - expect(pushKeySpy.mock.results.find(x => x.value)?.value).toStrictEqual(expectedKey) - expect(pushtwoPaneElementsSpy.mock.results.find(x => x.value)?.value).toStrictEqual(expectedtwoPaneElement) - }); - - it('dualScreen Add with no header with no merge', () => { - // Arrange - const expectedKey: IKeyAction = KeyActionBuilder(PUSH_KEY, screenType.DUAL, 'test4', false); - - const expectedtwoPaneElement: ITwoPaneElementAction = twoPaneElementActionBuilder(PUSH_TWOPANE_ELEMENT, `${screenType.DUAL}_test4`, ); - - const pushKeySpy = jest.spyOn(keyActions, 'pushKey'); - const pushheaderSpy = jest.spyOn(headerActions, 'pushHeader'); - const pushtwoPaneElementsSpy = jest.spyOn(twoPaneElementActions, 'pushElement'); - - // Act - const _dualScreenAdd = dualScreen.Add('test4', ); - - // Assert - expect(pushKeySpy).toBeCalled(); - expect(pushtwoPaneElementsSpy).toBeCalled(); - expect(pushheaderSpy).not.toBeCalled(); - - expect(pushKeySpy.mock.results.find(x => x.value)?.value).toStrictEqual(expectedKey) - expect(pushtwoPaneElementsSpy.mock.results.find(x => x.value)?.value).toStrictEqual(expectedtwoPaneElement) - }); - - - it('dualScreen AddOrMoveToFront add called', () => { - // Arrange - - const pushKeySpy = jest.spyOn(keyActions, 'pushKey'); - const pushheaderSpy = jest.spyOn(headerActions, 'pushHeader'); - const pushtwoPaneElementsSpy = jest.spyOn(twoPaneElementActions, 'pushElement'); - const moveToFrontSpy = jest.spyOn(keyActions, 'moveToFront'); - - // Act - const _dualScreenAdd = dualScreen.AddOrMoveToFront('test5', , { title: 'test title' }, true); - - // Assert - expect(pushKeySpy).toBeCalled(); - expect(pushheaderSpy).toBeCalled(); - expect(pushtwoPaneElementsSpy).toBeCalled(); - expect(moveToFrontSpy).not.toBeCalled(); - }); - - - - it('dualScreen AddOrMoveToFront moveToFront called', () => { - // Arrange - const pushKeySpy = jest.spyOn(keyActions, 'pushKey'); - const pushheaderSpy = jest.spyOn(headerActions, 'pushHeader'); - const pushtwoPaneElementsSpy = jest.spyOn(twoPaneElementActions, 'pushElement'); - const moveToFrontSpy = jest.spyOn(keyActions, 'moveToFront'); - - // Act - const _dualScreenAdd = dualScreen.AddOrMoveToFront('test1', , { title: 'test title' }, true); - - // Assert - expect(pushKeySpy).not.toBeCalled(); - expect(pushheaderSpy).not.toBeCalled(); - expect(pushtwoPaneElementsSpy).not.toBeCalled(); - expect(moveToFrontSpy).toBeCalled(); - }); - - - it('dualScreen mergeToOppositeScreen called', () => { - // Arrange - const moveToFrontSpy = jest.spyOn(keyActions, 'changeScreen'); - - // Act - const _dualScreenAdd = dualScreen.mergeToOppositeScreen(); - const keyStore = store.getState().KeyReducers; - - // Assert - expect(moveToFrontSpy).toBeCalled(); - expect(moveToFrontSpy).toBeCalledTimes(3); - expect(keyStore.keys.filter(val => val.screen === screenType.SINGLE).length).toEqual(3) - expect(keyStore.keys.filter(val => val.screen === screenType.DUAL).length).toEqual(2) - }); - - - it('dualScreenBackToHome calls BackToHome', () => { - // Arrange - const keyState = mockKeyState(screenType.DUAL, false); - keyState.keys.map(val => store.dispatch(keyActions.pushKey(val.screen, val.key, val.isMerge))) - - const popToFrontSpy = jest.spyOn(keyActions, 'popToFront') - const removeHeaderKeyBySpy = jest.spyOn(headerActions, 'removeHeaderByKey'); - const remodetwoPaneElementBySpy = jest.spyOn(twoPaneElementActions, 'removetwoPaneElementByKey'); - - - // Act - const _dualScreenBackToHome = dualScreen.BackToHome(); - - // Assert - expect(popToFrontSpy).toBeCalled(); - expect(popToFrontSpy).toBeCalledTimes(1); - - expect(removeHeaderKeyBySpy).toBeCalled(); - expect(removeHeaderKeyBySpy).toBeCalledTimes(4); - - expect(remodetwoPaneElementBySpy).toBeCalled(); - expect(remodetwoPaneElementBySpy).toBeCalledTimes(4); - }); - - it('dualScreenGoBack calls GoBack', () => { - // Arrange - const keyState = mockKeyState(screenType.DUAL, false, `${screenType.DUAL}_`); - keyState.keys.map(val => store.dispatch(keyActions.pushKey(val.screen, val.key, val.isMerge))) - const expectedState: IKeyState = - { - keys: - [{ key: 'DUAL_test3', isMerge: true, screen: screenType.SINGLE }, - { key: 'DUAL_test5', isMerge: true, screen: screenType.SINGLE }, - { key: 'DUAL_test1', isMerge: true, screen: screenType.SINGLE }, - { key: 'DUAL_test2', isMerge: false, screen: screenType.DUAL }, - { key: 'DUAL_DUAL_first', isMerge: false, screen: screenType.DUAL }, - { key: 'DUAL_DUAL_second', isMerge: false, screen: screenType.DUAL }] - } - - const popScreenSpy = jest.spyOn(keyActions, 'popScreen') - const removeHeaderKeyBySpy = jest.spyOn(headerActions, 'removeHeaderByKey'); - const removetwoPaneElementBySpy = jest.spyOn(twoPaneElementActions, 'removetwoPaneElementByKey'); - - - // Act - const _dualScreenBack = dualScreen.GoBack(); - const finalState: IKeyState = store.getState().KeyReducers; - // Assert - expect(finalState).toStrictEqual(expectedState) - - expect(popScreenSpy).toBeCalled(); - expect(popScreenSpy).toBeCalledTimes(1); - - expect(removeHeaderKeyBySpy).toBeCalled(); - expect(removeHeaderKeyBySpy).toBeCalledTimes(1); - - expect(removetwoPaneElementBySpy).toBeCalled(); - expect(removetwoPaneElementBySpy).toBeCalledTimes(1); - }); - - it('replaceScreen calls', () => { - // Arrange - const replacetwoPaneElementSpy = jest.spyOn(twoPaneElementActions, 'replacetwoPaneElement'); - - // Act - const _dualScreenBack = dualScreen.ReplaceScreen('test', ); - - // Assert - expect(replacetwoPaneElementSpy).toBeCalled(); - expect(replacetwoPaneElementSpy).toBeCalledTimes(1); - }); - - it('ReplaceHeader calls', () => { - // Arrange - const replaceHeaderSpy = jest.spyOn(headerActions, 'replaceHeader'); - - // Act - const _dualScreenBack = dualScreen.ReplaceHeader('test', { title: 'test' }); - - // Assert - expect(replaceHeaderSpy).toBeCalled(); - expect(replaceHeaderSpy).toBeCalledTimes(1); - }); - -}); diff --git a/twopane-navigation/packages/twopane-navigation/src/index.ts b/twopane-navigation/packages/twopane-navigation/src/index.ts index 2a664dd..a3e87b8 100644 --- a/twopane-navigation/packages/twopane-navigation/src/index.ts +++ b/twopane-navigation/packages/twopane-navigation/src/index.ts @@ -1,13 +1,13 @@ // components -export {default as DualApp} from './components/dualApp/DualApp' -export {default as ScreenOverlay} from './components/screenOverlay/ScreenOverlay' +export {default as TwoPaneApp} from './components/twoPaneApp/TwoPaneApp' +export {default as ScreenOverlay} from './components/paneOverlay/PaneOverlay' // methods -export {default as singleScreen} from './singleScreen/singleScreenStore/singleScreen.methods' -export {default as dualScreen} from './dualScreen/dualScreenStore/dualScreen.methods' -export {default as autoScreen}from './utilities/auto.methods' +export {default as onePane} from './onePane/onePaneStore/onePane.methods' +export {default as twoPane} from './twoPane/twoPaneStore/twoPane.methods' +export {default as autoPane}from './utilities/autoPane.methods' export {default as utility} from './utilities/utility.methods' /// STORES /// @@ -26,11 +26,11 @@ export * from './Shared/screenStore/keyStore/key.selector' export * from './Shared/screenStore/keyStore/key.types' // element -export * from './Shared/screenStore/twoPaneElementStore/twoPaneElement.action' -export * from './Shared/screenStore/twoPaneElementStore/twoPaneElement.interface' -export * from './Shared/screenStore/twoPaneElementStore/twoPaneElement.reducer' -export * from './Shared/screenStore/twoPaneElementStore/twoPaneElement.selectors' -export * from './Shared/screenStore/twoPaneElementStore/twoPaneElement.types' +export * from './Shared/screenStore/paneElementStore/paneElement.action' +export * from './Shared/screenStore/paneElementStore/paneElement.interface' +export * from './Shared/screenStore/paneElementStore/paneElement.reducer' +export * from './Shared/screenStore/paneElementStore/paneElement.selectors' +export * from './Shared/screenStore/paneElementStore/paneElement.types' // Utility export * from './Shared/utilityStore/utilityStore.actions' diff --git a/twopane-navigation/packages/twopane-navigation/src/onePane/onePaneStore/onePane.methods.ts b/twopane-navigation/packages/twopane-navigation/src/onePane/onePaneStore/onePane.methods.ts new file mode 100644 index 0000000..f013165 --- /dev/null +++ b/twopane-navigation/packages/twopane-navigation/src/onePane/onePaneStore/onePane.methods.ts @@ -0,0 +1,109 @@ +import { store } from '../../appStore'; +import { + paneType +} from '../../utilities/interfaces'; +import { pushKey, popToFront, popScreen, moveToFront, changeScreen } from '../../Shared/screenStore/keyStore/key.actions'; +import { pushHeader, replaceHeader, removeHeaderByKey } from '../../Shared/screenStore/headerStore/header.actions'; +import { pushElement, removePaneElementByKey, replacePaneElement } from '../../Shared/screenStore/paneElementStore/paneElement.action'; +import { ReactElement } from 'react'; +import { IHeader } from '../../Shared/screenStore/headerStore/header.interface'; +import { IKeyState, IKeyObject } from '../../Shared/screenStore/keyStore/key.interface'; + +/** + * Pushes element to the top of the onePane stack + */ +const Add = (key: string, element: ReactElement, header?: IHeader, isMerge: boolean = false) => { + store.dispatch(pushKey(paneType.ONE, key, isMerge)); + store.dispatch(pushElement(`${paneType.ONE}_${key}`, element)); + if (header) { + store.dispatch(pushHeader(`${paneType.ONE}_${key}`, header)); + } +}; + +/** + * Pushes element to the top of the onePane stack or if the key is already in the stack, + move that key to the top of the stack + */ +const AddOrMoveToFront = (key: string, element: React.ReactElement, header?: IHeader, isMerge: boolean = false) => { + const keys: IKeyState = store.getState().KeyReducers; + const onePaneState: IKeyObject[] = keys.keys.filter(x => x.screen === paneType.ONE) + + if (!onePaneState.some(val => val.key === `${paneType.ONE}_${key}`)) { + Add(key, element, header, isMerge) + } else { + store.dispatch(moveToFront(paneType.ONE, `${paneType.ONE}_${key}`)); + } +} + +/** + * when the app screen size changes move screens marked as isMerged to twoPane + */ +const mergeToOppositeScreen = () => { + const keys: IKeyState = store.getState().KeyReducers; + keys.keys.map(val => { + if (val.screen === paneType.ONE && val.isMerge) { + store.dispatch(changeScreen(paneType.TWO, val.key)) + } + }) +} + + +/** + * Removes all elements of the onePane stack + * and returns the base element of the onePane stack + */ +const BackToHome = () => { + const keys: IKeyState = store.getState().KeyReducers; + const onePaneState: IKeyObject[] = keys.keys.filter(x => x.screen === paneType.ONE) + + for (let i = 1; i < onePaneState.length; i++) { + store.dispatch(removeHeaderByKey(onePaneState[i].key)); + store.dispatch(removePaneElementByKey(onePaneState[i].key)); + } + + store.dispatch(popToFront(paneType.ONE)); +}; + +/** + * Go back one element in the onePane stack + */ +const GoBack = () => { + const keys: IKeyState = store.getState().KeyReducers; + const onePaneState: IKeyObject[] = keys.keys.filter(x => x.screen === paneType.ONE) + + store.dispatch(removeHeaderByKey(onePaneState.peek().key)); + store.dispatch(removePaneElementByKey(onePaneState.peek().key)); + store.dispatch(popScreen(paneType.ONE)); + +}; + + +/** + * Replace the current element for this onePane component + */ +const ReplaceScreen = (key: string, element: React.ReactElement) => { + store.dispatch(replacePaneElement(`${paneType.ONE}_${key}`, element)) +} + +/** + * Replace the default header for this onePane component + */ +const ReplaceHeader = (key: string, header: IHeader) => { + store.dispatch(replaceHeader(`${paneType.ONE}_${key}`, header)); +}; + +const _onePaneFunctions = { + Add, + AddOrMoveToFront, + mergeToOppositeScreen, + BackToHome, + GoBack, + ReplaceScreen, + ReplaceHeader, +}; + +type onePaneFunctions = typeof _onePaneFunctions; + +const onePane: onePaneFunctions = _onePaneFunctions; + +export default onePane; diff --git a/twopane-navigation/packages/twopane-navigation/src/onePane/onePaneStore/tests/onePane.methods.test.tsx b/twopane-navigation/packages/twopane-navigation/src/onePane/onePaneStore/tests/onePane.methods.test.tsx new file mode 100644 index 0000000..ae1cf9a --- /dev/null +++ b/twopane-navigation/packages/twopane-navigation/src/onePane/onePaneStore/tests/onePane.methods.test.tsx @@ -0,0 +1,256 @@ +import React from 'react' +import onePane from '../onePane.methods'; +import * as keyActions from '../../../Shared/screenStore/keyStore/key.actions'; +import * as headerActions from '../../../Shared/screenStore/headerStore/header.actions'; +import * as paneElementActions from '../../../Shared/screenStore/paneElementStore/paneElement.action'; + +import { Fragment } from 'react'; +import { IKeyAction, IKeyState } from '../../../Shared/screenStore/keyStore/key.interface'; +import { paneType } from '../../../utilities/interfaces'; +import { PUSH_KEY } from '../../../Shared/screenStore/keyStore/key.types'; +import { IHeaderAction } from '../../../Shared/screenStore/headerStore/header.interface'; +import { PUSH_HEADER } from '../../../Shared/screenStore/headerStore/header.types'; +import { IPaneElementAction } from '../../../Shared/screenStore/paneElementStore/paneElement.interface'; +import { PUSH_PANE_ELEMENT } from '../../../Shared/screenStore/paneElementStore/paneElement.types'; +import { paneElementActionBuilder } from '../../../Shared/screenStore/paneElementStore/tests/paneElement.methods.helpers'; +import { headerActionBuilder } from '../../../Shared/screenStore/headerStore/tests/header.methods.helpers'; +import { KeyActionBuilder, mockKeyState } from '../../../Shared/screenStore/keyStore/tests/key.methods.helpers'; +import { store } from '../../../appStore'; +describe('onePane methods', () => { + beforeEach(() => { + jest.clearAllMocks(); + }); + + it('onePane Add with header with merge', () => { + // Arrange + const expectedKey: IKeyAction = KeyActionBuilder(PUSH_KEY, paneType.ONE, 'test1', true); + + const expectedHeader: IHeaderAction = headerActionBuilder(PUSH_HEADER, `${paneType.ONE}_test1`, { title: 'test title' }); + + const expectedPaneElement: IPaneElementAction = paneElementActionBuilder(PUSH_PANE_ELEMENT, `${paneType.ONE}_test1`, ); + + const pushKeySpy = jest.spyOn(keyActions, 'pushKey'); + const pushheaderSpy = jest.spyOn(headerActions, 'pushHeader'); + const pushPaneElementsSpy = jest.spyOn(paneElementActions, 'pushElement'); + + // Act + const _onePaneAdd = onePane.Add('test1', , { title: 'test title' }, true); + + // Assert + expect(pushKeySpy).toBeCalled(); + expect(pushheaderSpy).toBeCalled(); + expect(pushPaneElementsSpy).toBeCalled(); + expect(pushKeySpy.mock.results.find(x => x.value)?.value).toStrictEqual(expectedKey) + expect(pushheaderSpy.mock.results.find(x => x.value)?.value).toStrictEqual(expectedHeader) + expect(pushPaneElementsSpy.mock.results.find(x => x.value)?.value).toStrictEqual(expectedPaneElement) + }); + + it('onePane Add with header with no merge', () => { + // Arrange + const expectedKey: IKeyAction = KeyActionBuilder(PUSH_KEY, paneType.ONE, 'test2', false); + + const expectedHeader: IHeaderAction = headerActionBuilder(PUSH_HEADER, `${paneType.ONE}_test2`, { title: 'test title' }); + + const expectedPaneElement: IPaneElementAction = paneElementActionBuilder(PUSH_PANE_ELEMENT, `${paneType.ONE}_test2`, ); + + const pushKeySpy = jest.spyOn(keyActions, 'pushKey'); + const pushheaderSpy = jest.spyOn(headerActions, 'pushHeader'); + const pushPaneElementsSpy = jest.spyOn(paneElementActions, 'pushElement'); + + // Act + const _onePaneAdd = onePane.Add('test2', , { title: 'test title' }); + + // Assert + expect(pushKeySpy).toBeCalled(); + expect(pushheaderSpy).toBeCalled(); + expect(pushPaneElementsSpy).toBeCalled(); + expect(pushKeySpy.mock.results.find(x => x.value)?.value).toStrictEqual(expectedKey) + expect(pushheaderSpy.mock.results.find(x => x.value)?.value).toStrictEqual(expectedHeader) + expect(pushPaneElementsSpy.mock.results.find(x => x.value)?.value).toStrictEqual(expectedPaneElement) + }); + + it('onePane Add no header with merge', () => { + // Arrange + const expectedKey: IKeyAction = KeyActionBuilder(PUSH_KEY, paneType.ONE, 'test3', true); + + const expectedPaneElement: IPaneElementAction = paneElementActionBuilder(PUSH_PANE_ELEMENT, `${paneType.ONE}_test3`, ); + + const pushKeySpy = jest.spyOn(keyActions, 'pushKey'); + const pushheaderSpy = jest.spyOn(headerActions, 'pushHeader'); + + const pushPaneElementsSpy = jest.spyOn(paneElementActions, 'pushElement'); + + // Act + const _onePaneAdd = onePane.Add('test3', , undefined, true); + + // Assert + expect(pushKeySpy).toBeCalled(); + expect(pushheaderSpy).not.toBeCalled(); + expect(pushPaneElementsSpy).toBeCalled(); + expect(pushKeySpy.mock.results.find(x => x.value)?.value).toStrictEqual(expectedKey) + expect(pushPaneElementsSpy.mock.results.find(x => x.value)?.value).toStrictEqual(expectedPaneElement) + }); + + it('onePane Add with no header with no merge', () => { + // Arrange + const expectedKey: IKeyAction = KeyActionBuilder(PUSH_KEY, paneType.ONE, 'test4', false); + + const expectedPaneElement: IPaneElementAction = paneElementActionBuilder(PUSH_PANE_ELEMENT, `${paneType.ONE}_test4`, ); + + const pushKeySpy = jest.spyOn(keyActions, 'pushKey'); + const pushheaderSpy = jest.spyOn(headerActions, 'pushHeader'); + const pushPaneElementsSpy = jest.spyOn(paneElementActions, 'pushElement'); + + // Act + const _onePaneAdd = onePane.Add('test4', ); + + // Assert + expect(pushKeySpy).toBeCalled(); + expect(pushPaneElementsSpy).toBeCalled(); + expect(pushheaderSpy).not.toBeCalled(); + + expect(pushKeySpy.mock.results.find(x => x.value)?.value).toStrictEqual(expectedKey) + expect(pushPaneElementsSpy.mock.results.find(x => x.value)?.value).toStrictEqual(expectedPaneElement) + }); + + + it('onePane AddOrMoveToFront add called', () => { + // Arrange + + const pushKeySpy = jest.spyOn(keyActions, 'pushKey'); + const pushheaderSpy = jest.spyOn(headerActions, 'pushHeader'); + const pushPaneElementsSpy = jest.spyOn(paneElementActions, 'pushElement'); + const moveToFrontSpy = jest.spyOn(keyActions, 'moveToFront'); + + // Act + const _onePaneAdd = onePane.AddOrMoveToFront('test5', , { title: 'test title' }, true); + + // Assert + expect(pushKeySpy).toBeCalled(); + expect(pushheaderSpy).toBeCalled(); + expect(pushPaneElementsSpy).toBeCalled(); + expect(moveToFrontSpy).not.toBeCalled(); + }); + + + + it('onePane AddOrMoveToFront moveToFront called', () => { + // Arrange + const pushKeySpy = jest.spyOn(keyActions, 'pushKey'); + const pushheaderSpy = jest.spyOn(headerActions, 'pushHeader'); + const pushPaneElementsSpy = jest.spyOn(paneElementActions, 'pushElement'); + const moveToFrontSpy = jest.spyOn(keyActions, 'moveToFront'); + + // Act + const _onePaneAdd = onePane.AddOrMoveToFront('test1', , { title: 'test title' }, true); + + // Assert + expect(pushKeySpy).not.toBeCalled(); + expect(pushheaderSpy).not.toBeCalled(); + expect(pushPaneElementsSpy).not.toBeCalled(); + expect(moveToFrontSpy).toBeCalled(); + }); + + + it('onePane mergeToOppositeScreen called', () => { + // Arrange + const moveToFrontSpy = jest.spyOn(keyActions, 'changeScreen'); + + // Act + const _onePaneAdd = onePane.mergeToOppositeScreen(); + const keyStore = store.getState().KeyReducers; + + // Assert + expect(moveToFrontSpy).toBeCalled(); + expect(moveToFrontSpy).toBeCalledTimes(3); + expect(keyStore.keys.filter(val => val.screen === paneType.TWO).length).toEqual(3) + expect(keyStore.keys.filter(val => val.screen === paneType.ONE).length).toEqual(2) + }); + + + it('onePaneBackToHome calls BackToHome', () => { + // Arrange + const keyState = mockKeyState(paneType.ONE, false); + keyState.keys.map(val => store.dispatch(keyActions.pushKey(val.screen, val.key, val.isMerge))) + + const popToFrontSpy = jest.spyOn(keyActions, 'popToFront') + const removeHeaderKeyBySpy = jest.spyOn(headerActions, 'removeHeaderByKey'); + const removePaneElementBySpy = jest.spyOn(paneElementActions, 'removePaneElementByKey'); + + + // Act + const _onePaneBackToHome = onePane.BackToHome(); + + // Assert + expect(popToFrontSpy).toBeCalled(); + expect(popToFrontSpy).toBeCalledTimes(1); + + expect(removeHeaderKeyBySpy).toBeCalled(); + expect(removeHeaderKeyBySpy).toBeCalledTimes(4); + + expect(removePaneElementBySpy).toBeCalled(); + expect(removePaneElementBySpy).toBeCalledTimes(4); + }); + + it('onePaneGoBack calls GoBack', () => { + // Arrange + const keyState = mockKeyState(paneType.ONE, false, `${paneType.ONE}_`); + keyState.keys.map(val => store.dispatch(keyActions.pushKey(val.screen, val.key, val.isMerge))) + const expectedState: IKeyState = + { + keys: + [{ key: 'ONE_test2', isMerge: false, screen: paneType.ONE }, + { key: 'ONE_ONE_first', isMerge: false, screen: paneType.ONE }, + { key: 'ONE_ONE_second', isMerge: false, screen: paneType.ONE }, + { key: 'ONE_test3', isMerge: true, screen: paneType.TWO }, + { key: 'ONE_test5', isMerge: true, screen: paneType.TWO }, + { key: 'ONE_test1', isMerge: true, screen: paneType.TWO }] + } + + const popScreenSpy = jest.spyOn(keyActions, 'popScreen') + const removeHeaderKeyBySpy = jest.spyOn(headerActions, 'removeHeaderByKey'); + const removePaneElementBySpy = jest.spyOn(paneElementActions, 'removePaneElementByKey'); + + + // Act + const _onePaneBack = onePane.GoBack(); + const finalState: IKeyState = store.getState().KeyReducers; + + // Assert + expect(finalState).toStrictEqual(expectedState) + + expect(popScreenSpy).toBeCalled(); + expect(popScreenSpy).toBeCalledTimes(1); + + expect(removeHeaderKeyBySpy).toBeCalled(); + expect(removeHeaderKeyBySpy).toBeCalledTimes(1); + + expect(removePaneElementBySpy).toBeCalled(); + expect(removePaneElementBySpy).toBeCalledTimes(1); + }); + + it('replaceScreen calls', () => { + // Arrange + const replacePaneElementSpy = jest.spyOn(paneElementActions, 'replacePaneElement'); + + // Act + const _onePaneBack = onePane.ReplaceScreen('test', ); + + // Assert + expect(replacePaneElementSpy).toBeCalled(); + expect(replacePaneElementSpy).toBeCalledTimes(1); + }); + + it('ReplaceHeader calls', () => { + // Arrange + const replaceHeaderSpy = jest.spyOn(headerActions, 'replaceHeader'); + + // Act + const _onePaneBack = onePane.ReplaceHeader('test', { title: 'test' }); + + // Assert + expect(replaceHeaderSpy).toBeCalled(); + expect(replaceHeaderSpy).toBeCalledTimes(1); + }); + +}); diff --git a/twopane-navigation/packages/twopane-navigation/src/singleScreen/singleScreenStore/singleScreen.methods.ts b/twopane-navigation/packages/twopane-navigation/src/singleScreen/singleScreenStore/singleScreen.methods.ts deleted file mode 100644 index f7c393f..0000000 --- a/twopane-navigation/packages/twopane-navigation/src/singleScreen/singleScreenStore/singleScreen.methods.ts +++ /dev/null @@ -1,109 +0,0 @@ -import { store } from '../../appStore'; -import { - screenType -} from '../../utilities/interfaces'; -import { pushKey, popToFront, popScreen, moveToFront, changeScreen } from '../../Shared/screenStore/keyStore/key.actions'; -import { pushHeader, replaceHeader, removeHeaderByKey } from '../../Shared/screenStore/headerStore/header.actions'; -import { pushElement, removetwoPaneElementByKey, replacetwoPaneElement } from '../../Shared/screenStore/twoPaneElementStore/twoPaneElement.action'; -import { ReactElement } from 'react'; -import { IHeader } from '../../Shared/screenStore/headerStore/header.interface'; -import { IKeyState, IKeyObject } from '../../Shared/screenStore/keyStore/key.interface'; - -/** - * Pushes element to the top of the single screen stack - */ -const Add = (key: string, element: ReactElement, header?: IHeader, isMerge: boolean = false) => { - store.dispatch(pushKey(screenType.SINGLE, key, isMerge)); - store.dispatch(pushElement(`${screenType.SINGLE}_${key}`, element)); - if (header) { - store.dispatch(pushHeader(`${screenType.SINGLE}_${key}`, header)); - } -}; - -/** - * Pushes element to the top of the single screen stack or if the key is already in the stack, - move that key to the top ofthe stack - */ -const AddOrMoveToFront = (key: string, element: React.ReactElement, header?: IHeader, isMerge: boolean = false) => { - const keys: IKeyState = store.getState().KeyReducers; - const singleScreenState: IKeyObject[] = keys.keys.filter(x => x.screen === screenType.SINGLE) - - if (!singleScreenState.some(val => val.key === `${screenType.SINGLE}_${key}`)) { - Add(key, element, header, isMerge) - } else { - store.dispatch(moveToFront(screenType.SINGLE, `${screenType.SINGLE}_${key}`)); - } -} - -/** - * when the app screensize changes move screens marked as isMerged to the DualScreen - */ -const mergeToOppositeScreen = () => { - const keys: IKeyState = store.getState().KeyReducers; - keys.keys.map(val => { - if (val.screen === screenType.SINGLE && val.isMerge) { - store.dispatch(changeScreen(screenType.DUAL, val.key)) - } - }) -} - - -/** - * Removes all elements of the single screen stack - * and returns the base element of the single screen stack - */ -const BackToHome = () => { - const keys: IKeyState = store.getState().KeyReducers; - const singleScreenState: IKeyObject[] = keys.keys.filter(x => x.screen === screenType.SINGLE) - - for (let i = 1; i < singleScreenState.length; i++) { - store.dispatch(removeHeaderByKey(singleScreenState[i].key)); - store.dispatch(removetwoPaneElementByKey(singleScreenState[i].key)); - } - - store.dispatch(popToFront(screenType.SINGLE)); -}; - -/** - * Go back one element in the single screen stack - */ -const GoBack = () => { - const keys: IKeyState = store.getState().KeyReducers; - const singleScreenState: IKeyObject[] = keys.keys.filter(x => x.screen === screenType.SINGLE) - - store.dispatch(removeHeaderByKey(singleScreenState.peek().key)); - store.dispatch(removetwoPaneElementByKey(singleScreenState.peek().key)); - store.dispatch(popScreen(screenType.SINGLE)); - -}; - - -/** - * Replace the current element for this single screen component - */ -const ReplaceScreen = (key: string, element: React.ReactElement) => { - store.dispatch(replacetwoPaneElement(`${screenType.SINGLE}_${key}`, element)) -} - -/** - * Replace the default header for this single screen component - */ -const ReplaceHeader = (key: string, header: IHeader) => { - store.dispatch(replaceHeader(`${screenType.SINGLE}_${key}`, header)); -}; - -const _singleScreenFunctions = { - Add, - AddOrMoveToFront, - mergeToOppositeScreen, - BackToHome, - GoBack, - ReplaceScreen, - ReplaceHeader, -}; - -type singleScreenFunctions = typeof _singleScreenFunctions; - -const singleScreen: singleScreenFunctions = _singleScreenFunctions; - -export default singleScreen; diff --git a/twopane-navigation/packages/twopane-navigation/src/singleScreen/singleScreenStore/tests/singleScreen.methods.test.tsx b/twopane-navigation/packages/twopane-navigation/src/singleScreen/singleScreenStore/tests/singleScreen.methods.test.tsx deleted file mode 100644 index 09d9424..0000000 --- a/twopane-navigation/packages/twopane-navigation/src/singleScreen/singleScreenStore/tests/singleScreen.methods.test.tsx +++ /dev/null @@ -1,256 +0,0 @@ -import React from 'react' -import singleScreen from '../singleScreen.methods'; -import * as keyActions from '../../../Shared/screenStore/keyStore/key.actions'; -import * as headerActions from '../../../Shared/screenStore/headerStore/header.actions'; -import * as twoPaneElementActions from '../../../Shared/screenStore/twoPaneElementStore/twoPaneElement.action'; - -import { Fragment } from 'react'; -import { IKeyAction, IKeyState } from '../../../Shared/screenStore/keyStore/key.interface'; -import { screenType } from '../../../utilities/interfaces'; -import { PUSH_KEY } from '../../../Shared/screenStore/keyStore/key.types'; -import { IHeaderAction } from '../../../Shared/screenStore/headerStore/header.interface'; -import { PUSH_HEADER } from '../../../Shared/screenStore/headerStore/header.types'; -import { ITwoPaneElementAction } from '../../../Shared/screenStore/twoPaneElementStore/twoPaneElement.interface'; -import { PUSH_TWOPANE_ELEMENT } from '../../../Shared/screenStore/twoPaneElementStore/twoPaneElement.types'; -import { twoPaneElementActionBuilder } from '../../../Shared/screenStore/twoPaneElementStore/tests/twoPaneElement.methods.helpers'; -import { headerActionBuilder } from '../../../Shared/screenStore/headerStore/tests/header.methods.helpers'; -import { KeyActionBuilder, mockKeyState } from '../../../Shared/screenStore/keyStore/tests/key.methods.helpers'; -import { store } from '../../../appStore'; -describe('singleScreen methods', () => { - beforeEach(() => { - jest.clearAllMocks(); - }); - - it('singleScreen Add with header with merge', () => { - // Arrange - const expectedKey: IKeyAction = KeyActionBuilder(PUSH_KEY, screenType.SINGLE, 'test1', true); - - const expectedHeader: IHeaderAction = headerActionBuilder(PUSH_HEADER, `${screenType.SINGLE}_test1`, { title: 'test title' }); - - const expectedtwoPaneElement: ITwoPaneElementAction = twoPaneElementActionBuilder(PUSH_TWOPANE_ELEMENT, `${screenType.SINGLE}_test1`, ); - - const pushKeySpy = jest.spyOn(keyActions, 'pushKey'); - const pushheaderSpy = jest.spyOn(headerActions, 'pushHeader'); - const pushtwoPaneElementsSpy = jest.spyOn(twoPaneElementActions, 'pushElement'); - - // Act - const _singleScreenAdd = singleScreen.Add('test1', , { title: 'test title' }, true); - - // Assert - expect(pushKeySpy).toBeCalled(); - expect(pushheaderSpy).toBeCalled(); - expect(pushtwoPaneElementsSpy).toBeCalled(); - expect(pushKeySpy.mock.results.find(x => x.value)?.value).toStrictEqual(expectedKey) - expect(pushheaderSpy.mock.results.find(x => x.value)?.value).toStrictEqual(expectedHeader) - expect(pushtwoPaneElementsSpy.mock.results.find(x => x.value)?.value).toStrictEqual(expectedtwoPaneElement) - }); - - it('singleScreen Add with header with no merge', () => { - // Arrange - const expectedKey: IKeyAction = KeyActionBuilder(PUSH_KEY, screenType.SINGLE, 'test2', false); - - const expectedHeader: IHeaderAction = headerActionBuilder(PUSH_HEADER, `${screenType.SINGLE}_test2`, { title: 'test title' }); - - const expectedtwoPaneElement: ITwoPaneElementAction = twoPaneElementActionBuilder(PUSH_TWOPANE_ELEMENT, `${screenType.SINGLE}_test2`, ); - - const pushKeySpy = jest.spyOn(keyActions, 'pushKey'); - const pushheaderSpy = jest.spyOn(headerActions, 'pushHeader'); - const pushtwoPaneElementsSpy = jest.spyOn(twoPaneElementActions, 'pushElement'); - - // Act - const _singleScreenAdd = singleScreen.Add('test2', , { title: 'test title' }); - - // Assert - expect(pushKeySpy).toBeCalled(); - expect(pushheaderSpy).toBeCalled(); - expect(pushtwoPaneElementsSpy).toBeCalled(); - expect(pushKeySpy.mock.results.find(x => x.value)?.value).toStrictEqual(expectedKey) - expect(pushheaderSpy.mock.results.find(x => x.value)?.value).toStrictEqual(expectedHeader) - expect(pushtwoPaneElementsSpy.mock.results.find(x => x.value)?.value).toStrictEqual(expectedtwoPaneElement) - }); - - it('singleScreen Add no header with merge', () => { - // Arrange - const expectedKey: IKeyAction = KeyActionBuilder(PUSH_KEY, screenType.SINGLE, 'test3', true); - - const expectedtwoPaneElement: ITwoPaneElementAction = twoPaneElementActionBuilder(PUSH_TWOPANE_ELEMENT, `${screenType.SINGLE}_test3`, ); - - const pushKeySpy = jest.spyOn(keyActions, 'pushKey'); - const pushheaderSpy = jest.spyOn(headerActions, 'pushHeader'); - - const pushtwoPaneElementsSpy = jest.spyOn(twoPaneElementActions, 'pushElement'); - - // Act - const _singleScreenAdd = singleScreen.Add('test3', , undefined, true); - - // Assert - expect(pushKeySpy).toBeCalled(); - expect(pushheaderSpy).not.toBeCalled(); - expect(pushtwoPaneElementsSpy).toBeCalled(); - expect(pushKeySpy.mock.results.find(x => x.value)?.value).toStrictEqual(expectedKey) - expect(pushtwoPaneElementsSpy.mock.results.find(x => x.value)?.value).toStrictEqual(expectedtwoPaneElement) - }); - - it('singleScreen Add with no header with no merge', () => { - // Arrange - const expectedKey: IKeyAction = KeyActionBuilder(PUSH_KEY, screenType.SINGLE, 'test4', false); - - const expectedtwoPaneElement: ITwoPaneElementAction = twoPaneElementActionBuilder(PUSH_TWOPANE_ELEMENT, `${screenType.SINGLE}_test4`, ); - - const pushKeySpy = jest.spyOn(keyActions, 'pushKey'); - const pushheaderSpy = jest.spyOn(headerActions, 'pushHeader'); - const pushtwoPaneElementsSpy = jest.spyOn(twoPaneElementActions, 'pushElement'); - - // Act - const _singleScreenAdd = singleScreen.Add('test4', ); - - // Assert - expect(pushKeySpy).toBeCalled(); - expect(pushtwoPaneElementsSpy).toBeCalled(); - expect(pushheaderSpy).not.toBeCalled(); - - expect(pushKeySpy.mock.results.find(x => x.value)?.value).toStrictEqual(expectedKey) - expect(pushtwoPaneElementsSpy.mock.results.find(x => x.value)?.value).toStrictEqual(expectedtwoPaneElement) - }); - - - it('singleScreen AddOrMoveToFront add called', () => { - // Arrange - - const pushKeySpy = jest.spyOn(keyActions, 'pushKey'); - const pushheaderSpy = jest.spyOn(headerActions, 'pushHeader'); - const pushtwoPaneElementsSpy = jest.spyOn(twoPaneElementActions, 'pushElement'); - const moveToFrontSpy = jest.spyOn(keyActions, 'moveToFront'); - - // Act - const _singleScreenAdd = singleScreen.AddOrMoveToFront('test5', , { title: 'test title' }, true); - - // Assert - expect(pushKeySpy).toBeCalled(); - expect(pushheaderSpy).toBeCalled(); - expect(pushtwoPaneElementsSpy).toBeCalled(); - expect(moveToFrontSpy).not.toBeCalled(); - }); - - - - it('singleScreen AddOrMoveToFront moveToFront called', () => { - // Arrange - const pushKeySpy = jest.spyOn(keyActions, 'pushKey'); - const pushheaderSpy = jest.spyOn(headerActions, 'pushHeader'); - const pushtwoPaneElementsSpy = jest.spyOn(twoPaneElementActions, 'pushElement'); - const moveToFrontSpy = jest.spyOn(keyActions, 'moveToFront'); - - // Act - const _singleScreenAdd = singleScreen.AddOrMoveToFront('test1', , { title: 'test title' }, true); - - // Assert - expect(pushKeySpy).not.toBeCalled(); - expect(pushheaderSpy).not.toBeCalled(); - expect(pushtwoPaneElementsSpy).not.toBeCalled(); - expect(moveToFrontSpy).toBeCalled(); - }); - - - it('singleScreen mergeToOppositeScreen called', () => { - // Arrange - const moveToFrontSpy = jest.spyOn(keyActions, 'changeScreen'); - - // Act - const _singleScreenAdd = singleScreen.mergeToOppositeScreen(); - const keyStore = store.getState().KeyReducers; - - // Assert - expect(moveToFrontSpy).toBeCalled(); - expect(moveToFrontSpy).toBeCalledTimes(3); - expect(keyStore.keys.filter(val => val.screen === screenType.DUAL).length).toEqual(3) - expect(keyStore.keys.filter(val => val.screen === screenType.SINGLE).length).toEqual(2) - }); - - - it('singleScreenBackToHome calls BackToHome', () => { - // Arrange - const keyState = mockKeyState(screenType.SINGLE, false); - keyState.keys.map(val => store.dispatch(keyActions.pushKey(val.screen, val.key, val.isMerge))) - - const popToFrontSpy = jest.spyOn(keyActions, 'popToFront') - const removeHeaderKeyBySpy = jest.spyOn(headerActions, 'removeHeaderByKey'); - const remodetwoPaneElementBySpy = jest.spyOn(twoPaneElementActions, 'removetwoPaneElementByKey'); - - - // Act - const _singleScreenBackToHome = singleScreen.BackToHome(); - - // Assert - expect(popToFrontSpy).toBeCalled(); - expect(popToFrontSpy).toBeCalledTimes(1); - - expect(removeHeaderKeyBySpy).toBeCalled(); - expect(removeHeaderKeyBySpy).toBeCalledTimes(4); - - expect(remodetwoPaneElementBySpy).toBeCalled(); - expect(remodetwoPaneElementBySpy).toBeCalledTimes(4); - }); - - it('singleScreenGoBack calls GoBack', () => { - // Arrange - const keyState = mockKeyState(screenType.SINGLE, false, `${screenType.SINGLE}_`); - keyState.keys.map(val => store.dispatch(keyActions.pushKey(val.screen, val.key, val.isMerge))) - const expectedState: IKeyState = - { - keys: - [{ key: 'SINGLE_test2', isMerge: false, screen: screenType.SINGLE }, - { key: 'SINGLE_SINGLE_first', isMerge: false, screen: screenType.SINGLE }, - { key: 'SINGLE_SINGLE_second', isMerge: false, screen: screenType.SINGLE }, - { key: 'SINGLE_test3', isMerge: true, screen: screenType.DUAL }, - { key: 'SINGLE_test5', isMerge: true, screen: screenType.DUAL }, - { key: 'SINGLE_test1', isMerge: true, screen: screenType.DUAL }] - } - - const popScreenSpy = jest.spyOn(keyActions, 'popScreen') - const removeHeaderKeyBySpy = jest.spyOn(headerActions, 'removeHeaderByKey'); - const removetwoPaneElementBySpy = jest.spyOn(twoPaneElementActions, 'removetwoPaneElementByKey'); - - - // Act - const _singleScreenBack = singleScreen.GoBack(); - const finalState: IKeyState = store.getState().KeyReducers; - - // Assert - expect(finalState).toStrictEqual(expectedState) - - expect(popScreenSpy).toBeCalled(); - expect(popScreenSpy).toBeCalledTimes(1); - - expect(removeHeaderKeyBySpy).toBeCalled(); - expect(removeHeaderKeyBySpy).toBeCalledTimes(1); - - expect(removetwoPaneElementBySpy).toBeCalled(); - expect(removetwoPaneElementBySpy).toBeCalledTimes(1); - }); - - it('replaceScreen calls', () => { - // Arrange - const replacetwoPaneElementSpy = jest.spyOn(twoPaneElementActions, 'replacetwoPaneElement'); - - // Act - const _singleScreenBack = singleScreen.ReplaceScreen('test', ); - - // Assert - expect(replacetwoPaneElementSpy).toBeCalled(); - expect(replacetwoPaneElementSpy).toBeCalledTimes(1); - }); - - it('ReplaceHeader calls', () => { - // Arrange - const replaceHeaderSpy = jest.spyOn(headerActions, 'replaceHeader'); - - // Act - const _singleScreenBack = singleScreen.ReplaceHeader('test', { title: 'test' }); - - // Assert - expect(replaceHeaderSpy).toBeCalled(); - expect(replaceHeaderSpy).toBeCalledTimes(1); - }); - -}); diff --git a/twopane-navigation/packages/twopane-navigation/src/twoPane/twoPaneStore/tests/twoPane.methods.test.tsx b/twopane-navigation/packages/twopane-navigation/src/twoPane/twoPaneStore/tests/twoPane.methods.test.tsx new file mode 100644 index 0000000..1cd0f20 --- /dev/null +++ b/twopane-navigation/packages/twopane-navigation/src/twoPane/twoPaneStore/tests/twoPane.methods.test.tsx @@ -0,0 +1,256 @@ +import React from 'react' +import twoPane from '../twoPane.methods'; +import * as keyActions from '../../../Shared/screenStore/keyStore/key.actions'; +import * as headerActions from '../../../Shared/screenStore/headerStore/header.actions'; +import * as paneElementActions from '../../../Shared/screenStore/paneElementStore/paneElement.action'; + +import { Fragment } from 'react'; +import { IKeyAction, IKeyState } from '../../../Shared/screenStore/keyStore/key.interface'; +import { paneType } from '../../../utilities/interfaces'; +import { PUSH_KEY } from '../../../Shared/screenStore/keyStore/key.types'; +import { IHeaderAction } from '../../../Shared/screenStore/headerStore/header.interface'; +import { PUSH_HEADER } from '../../../Shared/screenStore/headerStore/header.types'; +import { IPaneElementAction } from '../../../Shared/screenStore/paneElementStore/paneElement.interface'; +import { PUSH_PANE_ELEMENT } from '../../../Shared/screenStore/paneElementStore/paneElement.types'; +import { paneElementActionBuilder } from '../../../Shared/screenStore/paneElementStore/tests/paneElement.methods.helpers'; +import { headerActionBuilder } from '../../../Shared/screenStore/headerStore/tests/header.methods.helpers'; +import { KeyActionBuilder, mockKeyState } from '../../../Shared/screenStore/keyStore/tests/key.methods.helpers'; +import { store } from '../../../appStore'; + +describe('twoPane methods', () => { + beforeEach(() => { + jest.clearAllMocks(); + }); + + it('twoPane Add with header with merge', () => { + // Arrange + const expectedKey: IKeyAction = KeyActionBuilder(PUSH_KEY, paneType.TWO, 'test1', true); + + const expectedHeader: IHeaderAction = headerActionBuilder(PUSH_HEADER, `${paneType.TWO}_test1`, { title: 'test title' }); + + const expectedtwoPaneElement: IPaneElementAction = paneElementActionBuilder(PUSH_PANE_ELEMENT, `${paneType.TWO}_test1`, ); + + const pushKeySpy = jest.spyOn(keyActions, 'pushKey'); + const pushheaderSpy = jest.spyOn(headerActions, 'pushHeader'); + const pushPaneElementsSpy = jest.spyOn(paneElementActions, 'pushElement'); + + // Act + const _twoPaneAdd = twoPane.Add('test1', , { title: 'test title' }, true); + + // Assert + expect(pushKeySpy).toBeCalled(); + expect(pushheaderSpy).toBeCalled(); + expect(pushPaneElementsSpy).toBeCalled(); + expect(pushKeySpy.mock.results.find(x => x.value)?.value).toStrictEqual(expectedKey) + expect(pushheaderSpy.mock.results.find(x => x.value)?.value).toStrictEqual(expectedHeader) + expect(pushPaneElementsSpy.mock.results.find(x => x.value)?.value).toStrictEqual(expectedtwoPaneElement) + }); + + it('twoPane Add with header with no merge', () => { + // Arrange + const expectedKey: IKeyAction = KeyActionBuilder(PUSH_KEY, paneType.TWO, 'test2', false); + + const expectedHeader: IHeaderAction = headerActionBuilder(PUSH_HEADER, `${paneType.TWO}_test2`, { title: 'test title' }); + + const expectedtwoPaneElement: IPaneElementAction = paneElementActionBuilder(PUSH_PANE_ELEMENT, `${paneType.TWO}_test2`, ); + + const pushKeySpy = jest.spyOn(keyActions, 'pushKey'); + const pushheaderSpy = jest.spyOn(headerActions, 'pushHeader'); + const pushPaneElementsSpy = jest.spyOn(paneElementActions, 'pushElement'); + + // Act + const _twoPaneAdd = twoPane.Add('test2', , { title: 'test title' }); + + // Assert + expect(pushKeySpy).toBeCalled(); + expect(pushheaderSpy).toBeCalled(); + expect(pushPaneElementsSpy).toBeCalled(); + expect(pushKeySpy.mock.results.find(x => x.value)?.value).toStrictEqual(expectedKey) + expect(pushheaderSpy.mock.results.find(x => x.value)?.value).toStrictEqual(expectedHeader) + expect(pushPaneElementsSpy.mock.results.find(x => x.value)?.value).toStrictEqual(expectedtwoPaneElement) + }); + + it('twoPane Add no header with merge', () => { + // Arrange + const expectedKey: IKeyAction = KeyActionBuilder(PUSH_KEY, paneType.TWO, 'test3', true); + + const expectedtwoPaneElement: IPaneElementAction = paneElementActionBuilder(PUSH_PANE_ELEMENT, `${paneType.TWO}_test3`, ); + + const pushKeySpy = jest.spyOn(keyActions, 'pushKey'); + const pushheaderSpy = jest.spyOn(headerActions, 'pushHeader'); + + const pushPaneElementsSpy = jest.spyOn(paneElementActions, 'pushElement'); + + // Act + const _twoPaneAdd = twoPane.Add('test3', , undefined, true); + + // Assert + expect(pushKeySpy).toBeCalled(); + expect(pushheaderSpy).not.toBeCalled(); + expect(pushPaneElementsSpy).toBeCalled(); + expect(pushKeySpy.mock.results.find(x => x.value)?.value).toStrictEqual(expectedKey) + expect(pushPaneElementsSpy.mock.results.find(x => x.value)?.value).toStrictEqual(expectedtwoPaneElement) + }); + + it('twoPane Add with no header with no merge', () => { + // Arrange + const expectedKey: IKeyAction = KeyActionBuilder(PUSH_KEY, paneType.TWO, 'test4', false); + + const expectedtwoPaneElement: IPaneElementAction = paneElementActionBuilder(PUSH_PANE_ELEMENT, `${paneType.TWO}_test4`, ); + + const pushKeySpy = jest.spyOn(keyActions, 'pushKey'); + const pushheaderSpy = jest.spyOn(headerActions, 'pushHeader'); + const pushPaneElementsSpy = jest.spyOn(paneElementActions, 'pushElement'); + + // Act + const _twoPaneAdd = twoPane.Add('test4', ); + + // Assert + expect(pushKeySpy).toBeCalled(); + expect(pushPaneElementsSpy).toBeCalled(); + expect(pushheaderSpy).not.toBeCalled(); + + expect(pushKeySpy.mock.results.find(x => x.value)?.value).toStrictEqual(expectedKey) + expect(pushPaneElementsSpy.mock.results.find(x => x.value)?.value).toStrictEqual(expectedtwoPaneElement) + }); + + + it('twoPane AddOrMoveToFront add called', () => { + // Arrange + + const pushKeySpy = jest.spyOn(keyActions, 'pushKey'); + const pushheaderSpy = jest.spyOn(headerActions, 'pushHeader'); + const pushPaneElementsSpy = jest.spyOn(paneElementActions, 'pushElement'); + const moveToFrontSpy = jest.spyOn(keyActions, 'moveToFront'); + + // Act + const _twoPaneAdd = twoPane.AddOrMoveToFront('test5', , { title: 'test title' }, true); + + // Assert + expect(pushKeySpy).toBeCalled(); + expect(pushheaderSpy).toBeCalled(); + expect(pushPaneElementsSpy).toBeCalled(); + expect(moveToFrontSpy).not.toBeCalled(); + }); + + + + it('twoPane AddOrMoveToFront moveToFront called', () => { + // Arrange + const pushKeySpy = jest.spyOn(keyActions, 'pushKey'); + const pushheaderSpy = jest.spyOn(headerActions, 'pushHeader'); + const pushPaneElementsSpy = jest.spyOn(paneElementActions, 'pushElement'); + const moveToFrontSpy = jest.spyOn(keyActions, 'moveToFront'); + + // Act + const _twoPaneAdd = twoPane.AddOrMoveToFront('test1', , { title: 'test title' }, true); + + // Assert + expect(pushKeySpy).not.toBeCalled(); + expect(pushheaderSpy).not.toBeCalled(); + expect(pushPaneElementsSpy).not.toBeCalled(); + expect(moveToFrontSpy).toBeCalled(); + }); + + + it('twoPane mergeToOppositeScreen called', () => { + // Arrange + const moveToFrontSpy = jest.spyOn(keyActions, 'changeScreen'); + + // Act + const _twoPaneAdd = twoPane.mergeToOppositeScreen(); + const keyStore = store.getState().KeyReducers; + + // Assert + expect(moveToFrontSpy).toBeCalled(); + expect(moveToFrontSpy).toBeCalledTimes(3); + expect(keyStore.keys.filter(val => val.screen === paneType.ONE).length).toEqual(3) + expect(keyStore.keys.filter(val => val.screen === paneType.TWO).length).toEqual(2) + }); + + + it('twoPaneBackToHome calls BackToHome', () => { + // Arrange + const keyState = mockKeyState(paneType.TWO, false); + keyState.keys.map(val => store.dispatch(keyActions.pushKey(val.screen, val.key, val.isMerge))) + + const popToFrontSpy = jest.spyOn(keyActions, 'popToFront') + const removeHeaderKeyBySpy = jest.spyOn(headerActions, 'removeHeaderByKey'); + const removePaneElementBySpy = jest.spyOn(paneElementActions, 'removePaneElementByKey'); + + + // Act + const _twoPaneBackToHome = twoPane.BackToHome(); + + // Assert + expect(popToFrontSpy).toBeCalled(); + expect(popToFrontSpy).toBeCalledTimes(1); + + expect(removeHeaderKeyBySpy).toBeCalled(); + expect(removeHeaderKeyBySpy).toBeCalledTimes(4); + + expect(removePaneElementBySpy).toBeCalled(); + expect(removePaneElementBySpy).toBeCalledTimes(4); + }); + + it('twoPaneGoBack calls GoBack', () => { + // Arrange + const keyState = mockKeyState(paneType.TWO, false, `${paneType.TWO}_`); + keyState.keys.map(val => store.dispatch(keyActions.pushKey(val.screen, val.key, val.isMerge))) + const expectedState: IKeyState = + { + keys: + [{ key: 'TWO_test3', isMerge: true, screen: paneType.ONE }, + { key: 'TWO_test5', isMerge: true, screen: paneType.ONE }, + { key: 'TWO_test1', isMerge: true, screen: paneType.ONE }, + { key: 'TWO_test2', isMerge: false, screen: paneType.TWO }, + { key: 'TWO_TWO_first', isMerge: false, screen: paneType.TWO }, + { key: 'TWO_TWO_second', isMerge: false, screen: paneType.TWO }] + } + + const popScreenSpy = jest.spyOn(keyActions, 'popScreen') + const removeHeaderKeyBySpy = jest.spyOn(headerActions, 'removeHeaderByKey'); + const removePaneElementBySpy = jest.spyOn(paneElementActions, 'removePaneElementByKey'); + + + // Act + const _twoPaneBack = twoPane.GoBack(); + const finalState: IKeyState = store.getState().KeyReducers; + // Assert + expect(finalState).toStrictEqual(expectedState) + + expect(popScreenSpy).toBeCalled(); + expect(popScreenSpy).toBeCalledTimes(1); + + expect(removeHeaderKeyBySpy).toBeCalled(); + expect(removeHeaderKeyBySpy).toBeCalledTimes(1); + + expect(removePaneElementBySpy).toBeCalled(); + expect(removePaneElementBySpy).toBeCalledTimes(1); + }); + + it('replaceScreen calls', () => { + // Arrange + const removePaneElementBySpy = jest.spyOn(paneElementActions, 'replacePaneElement'); + + // Act + const _twoPaneBack = twoPane.ReplaceScreen('test', ); + + // Assert + expect(removePaneElementBySpy).toBeCalled(); + expect(removePaneElementBySpy).toBeCalledTimes(1); + }); + + it('ReplaceHeader calls', () => { + // Arrange + const replaceHeaderSpy = jest.spyOn(headerActions, 'replaceHeader'); + + // Act + const _twoPaneBack = twoPane.ReplaceHeader('test', { title: 'test' }); + + // Assert + expect(replaceHeaderSpy).toBeCalled(); + expect(replaceHeaderSpy).toBeCalledTimes(1); + }); + +}); diff --git a/twopane-navigation/packages/twopane-navigation/src/twoPane/twoPaneStore/twoPane.methods.ts b/twopane-navigation/packages/twopane-navigation/src/twoPane/twoPaneStore/twoPane.methods.ts new file mode 100644 index 0000000..79cac3f --- /dev/null +++ b/twopane-navigation/packages/twopane-navigation/src/twoPane/twoPaneStore/twoPane.methods.ts @@ -0,0 +1,106 @@ +import { store } from '../../appStore'; +import { + paneType +} from '../../utilities/interfaces'; +import { pushKey, popToFront, popScreen, moveToFront, changeScreen } from '../../Shared/screenStore/keyStore/key.actions'; +import { pushHeader, replaceHeader, removeHeaderByKey } from '../../Shared/screenStore/headerStore/header.actions'; +import { pushElement, removePaneElementByKey, replacePaneElement } from '../../Shared/screenStore/paneElementStore/paneElement.action'; +import { IHeader } from '../../Shared/screenStore/headerStore/header.interface'; +import { IKeyState, IKeyObject } from '../../Shared/screenStore/keyStore/key.interface'; + +/** + * Pushes element to the top of the Twopane stack. + */ +const Add = (key: string, element: React.ReactElement, header?: IHeader, isMerge: boolean = false) => { + + store.dispatch(pushKey(paneType.TWO, key, isMerge)); + store.dispatch(pushElement(`${paneType.TWO}_${key}`, element)); + if (header) { + store.dispatch(pushHeader(`${paneType.TWO}_${key}`, header)); + } +}; + +/** + * Pushes element to the top of the twopane stack or if the key is already in the stack, + move that key to the top of the stack + */ +const AddOrMoveToFront = (key: string, element: React.ReactElement, header?: IHeader, isMerge: boolean = false,) => { + const keys: IKeyState = store.getState().KeyReducers; + const twoPaneState: IKeyObject[] = keys.keys.filter(x => x.screen === paneType.TWO) + + if (!twoPaneState.some(val => val.key === `${paneType.TWO}_${key}`)) { + Add(key, element, header, isMerge) + } else { + store.dispatch(moveToFront(paneType.TWO, `${paneType.TWO}_${key}`)); + } +} +/** + * when the app screen size changes move screens marked as isMerged to onePane + */ +const mergeToOppositeScreen = () => { + const keys: IKeyState = store.getState().KeyReducers; + keys.keys.map(val => { + if (val.screen === paneType.TWO && val.isMerge) { + store.dispatch(changeScreen(paneType.ONE, val.key)) + } + }) + +} + +/** + * Removes all elements of the twoPane stack + * and returns the base element of the twoPane stack + */ +const BackToHome = () => { + const keys: IKeyState = store.getState().KeyReducers; + const twoPaneState: IKeyObject[] = keys.keys.filter(x => x.screen === paneType.TWO) + + for (let i = 1; i < twoPaneState.length; i++) { + store.dispatch(removeHeaderByKey(twoPaneState[i].key)); + store.dispatch(removePaneElementByKey(twoPaneState[i].key)); + } + store.dispatch(popToFront(paneType.TWO)); +}; + +/** + * Go back one element in the twoPane stack + */ +const GoBack = () => { + const keys: IKeyState = store.getState().KeyReducers; + const twoPaneState: IKeyObject[] = keys.keys.filter(x => x.screen === paneType.TWO) + + store.dispatch(removeHeaderByKey(twoPaneState.peek().key)); + store.dispatch(removePaneElementByKey(twoPaneState.peek().key)); + store.dispatch(popScreen(paneType.TWO)); + +}; + +/** + * Replace the current element for this twoPane component + */ +const ReplaceScreen = (key: string, element: React.ReactElement) => { + store.dispatch(replacePaneElement(`${paneType.TWO}_${key}`, element)) +} + +/** + * Replace the default header for this twoPane component + */ +const ReplaceHeader = (key: string, header: IHeader) => { + store.dispatch(replaceHeader(key, header)); +}; + +const _twoPaneFunctions = { + Add, + AddOrMoveToFront, + mergeToOppositeScreen, + BackToHome, + GoBack, + ReplaceScreen, + ReplaceHeader, +}; + +type twoPaneFunctions = typeof _twoPaneFunctions; + +const twoPane: twoPaneFunctions = _twoPaneFunctions; + +export default twoPane; diff --git a/twopane-navigation/packages/twopane-navigation/src/utilities/auto.methods.ts b/twopane-navigation/packages/twopane-navigation/src/utilities/auto.methods.ts deleted file mode 100644 index a5090bc..0000000 --- a/twopane-navigation/packages/twopane-navigation/src/utilities/auto.methods.ts +++ /dev/null @@ -1,118 +0,0 @@ -import utility from './utility.methods'; -import dualScreen from '../dualScreen/dualScreenStore/dualScreen.methods'; -import singleScreen from '../singleScreen/singleScreenStore/singleScreen.methods'; -import { ReactElement } from 'react'; -import { IHeader } from '../Shared/screenStore/headerStore/header.interface'; - - -/** - * Automatically pushes element to the top of the stack based on screen size. - */ -const Add = (key: string, element: ReactElement, header?: IHeader, isMergeSingle = false, isMergeDual = false) => { - if (utility.isDualScreen()) { - dualScreen.Add(key, element, header, isMergeDual); - } else { - singleScreen.Add(key, element, header, isMergeSingle); - } -}; - -/** - * Automatically pushes element to the top of stack or if the key is already in the stack, - move that key to the top of the stack based on screen size - */ -const AddOrMoveToFront = (key: string, element: ReactElement, header?: IHeader, isMergeSingle = false, isMergeDual = false,) => { - if (utility.isDualScreen()) { - dualScreen.AddOrMoveToFront(key, element, header, isMergeDual); - } else { - singleScreen.AddOrMoveToFront(key, element, header, isMergeSingle); - } -}; - -/** - * Automatically pushes element to the top of stack or if the key is already in the dual screen stack, - move that key to the top of the dual screen stack based on screen size - */ -const AddOrMoveToFrontDual = (key: string, element: ReactElement, header?: IHeader, isMergeSingle = false, isMergeDual = false,) => { - if (utility.isDualScreen()) { - dualScreen.AddOrMoveToFront(key, element, header, isMergeDual); - } else { - singleScreen.Add(key, element, header, isMergeSingle); - } -}; - -/** - * Automatically pushes element to the top of stack or if the key is already in the single screen stack, - move that key to the top of the single screen stack based on screen size - */ -const AddOrMoveToFrontSingle = (key: string, element: ReactElement, header?: IHeader, isMergeSingle = false, isMergeDual = false,) => { - if (utility.isDualScreen()) { - dualScreen.Add(key, element, header, isMergeDual); - } else { - singleScreen.AddOrMoveToFront(key, element, header, isMergeSingle); - } -}; - -/** - * Automatically Removes all elements of the stack and returns the base element of the screen stack based on screen size - */ -const BackToHome = () => { - if (utility.isDualScreen()) { - dualScreen.BackToHome(); - } else { - singleScreen.BackToHome(); - } -}; - - -/** - * Automatically go back one element in the stack based on screen size - */ -const GoBack = () => { - if (utility.isDualScreen()) { - dualScreen.GoBack(); - } else { - singleScreen.GoBack(); - } -}; - -/** - * Automatically replace element in the stack based on screen size - */ -const ReplaceScreen = (key: string, twoPaneElement: React.ReactElement) => { - if (utility.isDualScreen()) { - dualScreen.ReplaceScreen(key, twoPaneElement); - } else { - singleScreen.ReplaceScreen(key, twoPaneElement); - } -}; - - -/** - * Automatically replace header in the stack based on screen size - */ -const ReplaceHeader = (key: string, header: IHeader) => { - if (utility.isDualScreen()) { - dualScreen.ReplaceHeader(key, header); - } else { - singleScreen.ReplaceHeader(key, header); - } -}; - - - -const _autoScreenFunctions = { - Add, - AddOrMoveToFront, - AddOrMoveToFrontDual, - AddOrMoveToFrontSingle, - BackToHome, - GoBack, - ReplaceScreen, - ReplaceHeader -}; - -type autoScreenFunctions = typeof _autoScreenFunctions; - -const autoScreen: autoScreenFunctions = _autoScreenFunctions; - -export default autoScreen; diff --git a/twopane-navigation/packages/twopane-navigation/src/utilities/autoPane.methods.ts b/twopane-navigation/packages/twopane-navigation/src/utilities/autoPane.methods.ts new file mode 100644 index 0000000..a7f584c --- /dev/null +++ b/twopane-navigation/packages/twopane-navigation/src/utilities/autoPane.methods.ts @@ -0,0 +1,118 @@ +import utility from './utility.methods'; +import twoPane from '../twoPane/twoPaneStore/twoPane.methods'; +import onePane from '../onePane/onePaneStore/onePane.methods'; +import react, { ReactElement } from 'react'; +import { IHeader } from '../Shared/screenStore/headerStore/header.interface'; + + +/** + * Automatically pushes element to the top of the stack based on screen size. + */ +const Add = (key: string, element: ReactElement, header?: IHeader, isMergeONE = false, isMergeTWO = false) => { + if (utility.isTwoPane()) { + twoPane.Add(key, element, header, isMergeTWO); + } else { + onePane.Add(key, element, header, isMergeONE); + } +}; + +/** + * Automatically pushes element to the top of stack or if the key is already in the stack, + move that key to the top of the stack based on screen size + */ +const AddOrMoveToFront = (key: string, element: ReactElement, header?: IHeader, isMergeONE = false, isMergeTWO = false,) => { + if (utility.isTwoPane()) { + twoPane.AddOrMoveToFront(key, element, header, isMergeTWO); + } else { + onePane.AddOrMoveToFront(key, element, header, isMergeONE); + } +}; + +/** + * Automatically pushes element to the top of stack or if the key is already in the TWO screen stack, + move that key to the top of the TWO screen stack based on screen size + */ +const AddOrMoveToFrontTWO = (key: string, element: ReactElement, header?: IHeader, isMergeONE = false, isMergeTWO = false,) => { + if (utility.isTwoPane()) { + twoPane.AddOrMoveToFront(key, element, header, isMergeTWO); + } else { + onePane.Add(key, element, header, isMergeONE); + } +}; + +/** + * Automatically pushes element to the top of stack or if the key is already in the ONE screen stack, + move that key to the top of the ONE screen stack based on screen size + */ +const AddOrMoveToFrontONE = (key: string, element: ReactElement, header?: IHeader, isMergeONE = false, isMergeTWO = false,) => { + if (utility.isTwoPane()) { + twoPane.Add(key, element, header, isMergeTWO); + } else { + onePane.AddOrMoveToFront(key, element, header, isMergeONE); + } +}; + +/** + * Automatically Removes all elements of the stack and returns the base element of the screen stack based on screen size + */ +const BackToHome = () => { + if (utility.isTwoPane()) { + twoPane.BackToHome(); + } else { + onePane.BackToHome(); + } +}; + + +/** + * Automatically go back one element in the stack based on screen size + */ +const GoBack = () => { + if (utility.isTwoPane()) { + twoPane.GoBack(); + } else { + onePane.GoBack(); + } +}; + +/** + * Automatically replace element in the stack based on screen size + */ +const ReplaceScreen = (key: string, twoPaneElement: React.ReactElement) => { + if (utility.isTwoPane()) { + twoPane.ReplaceScreen(key, twoPaneElement); + } else { + onePane.ReplaceScreen(key, twoPaneElement); + } +}; + + +/** + * Automatically replace header in the stack based on screen size + */ +const ReplaceHeader = (key: string, header: IHeader) => { + if (utility.isTwoPane()) { + twoPane.ReplaceHeader(key, header); + } else { + onePane.ReplaceHeader(key, header); + } +}; + + + +const _autoPaneFunctions = { + Add, + AddOrMoveToFront, + AddOrMoveToFrontTWO, + AddOrMoveToFrontONE, + BackToHome, + GoBack, + ReplaceScreen, + ReplaceHeader +}; + +type autoPaneFunctions = typeof _autoPaneFunctions; + +const autoPane: autoPaneFunctions = _autoPaneFunctions; + +export default autoPane; diff --git a/twopane-navigation/packages/twopane-navigation/src/utilities/interfaces.ts b/twopane-navigation/packages/twopane-navigation/src/utilities/interfaces.ts index 0dd4109..fd3971a 100644 --- a/twopane-navigation/packages/twopane-navigation/src/utilities/interfaces.ts +++ b/twopane-navigation/packages/twopane-navigation/src/utilities/interfaces.ts @@ -1,25 +1,51 @@ import React, { ReactElement } from 'react'; import { IHeader } from '../Shared/screenStore/headerStore/header.interface'; -export interface IScreenComponent { +export interface IPaneComponent { key: string; twoPaneElement: ReactElement; header?: IHeader; - screen?: screenType; + screen?: paneType; } -export interface IScreenState { - screen: Array; +export interface IPaneState { + screen: Array; } - export interface IEmptyAction { type: string; payload: { }; } -export enum screenType { - SINGLE = 'SINGLE', - DUAL = 'DUAL' +export enum paneType { + ONE = 'ONE', + TWO = 'TWO' } + +export interface ITwoPaneAppProps { + /** + * Default element for ONE screen mode + */ + onePaneDefault: IPaneComponent; + + /** + * Default element for TWO screen mode + */ + twoPaneDefault: IPaneComponent; + + /** + * AppContainer if using React Navigation + */ + navigationContainer?: JSX.Element; + + /** + * Items to render in app drawer. If empty, drawer will not be included. + */ + drawerItems?: JSX.Element[]; +} + +export interface IPaneHeaderProps extends IHeader { +} + + diff --git a/twopane-navigation/packages/twopane-navigation/src/utilities/tests/auto.methods.test.tsx b/twopane-navigation/packages/twopane-navigation/src/utilities/tests/auto.methods.test.tsx deleted file mode 100644 index 6c55806..0000000 --- a/twopane-navigation/packages/twopane-navigation/src/utilities/tests/auto.methods.test.tsx +++ /dev/null @@ -1,302 +0,0 @@ -import singleScreen from '../../singleScreen/singleScreenStore/singleScreen.methods'; -import dualScreen from '../../dualScreen/dualScreenStore/dualScreen.methods'; -import utility from '../utility.methods'; -import autoScreen from '../auto.methods'; -import React, { Fragment } from 'react'; - -describe('autoScreen methods', () => { - describe('singleScreen Correct Methods Called', () => { - beforeEach(() => { - jest.clearAllMocks(); - jest.spyOn(utility, 'isDualScreen').mockReturnValue(false); - }); - - it('Add', () => { - // Arrange - const singleScreenAddSpy = jest.spyOn(singleScreen, 'Add'); - const dualScreenAddSpy = jest.spyOn(dualScreen, 'Add'); - - // Act - autoScreen.Add('test', ); - - // Assert - expect(singleScreenAddSpy).toBeCalled(); - expect(singleScreenAddSpy).toBeCalledTimes(1); - expect(dualScreenAddSpy).not.toBeCalled(); - expect(dualScreenAddSpy).toBeCalledTimes(0); - }); - - it('AddOrMoveToFront', () => { - // Arrange - const singleScreenAddOrMoveToFrontSpy = jest.spyOn(singleScreen, 'AddOrMoveToFront'); - const dualScreenAddAddOrMoveToFrontSpy = jest.spyOn(dualScreen, 'AddOrMoveToFront'); - - // Act - autoScreen.AddOrMoveToFront('test', ); - - // Assert - expect(singleScreenAddOrMoveToFrontSpy).toBeCalled(); - expect(singleScreenAddOrMoveToFrontSpy).toBeCalledTimes(1); - expect(dualScreenAddAddOrMoveToFrontSpy).not.toBeCalled(); - expect(dualScreenAddAddOrMoveToFrontSpy).toBeCalledTimes(0); - }); - - it('AddOrMoveToFrontDual', () => { - // Arrange - const singleScreenAddSpy = jest.spyOn(singleScreen, 'Add'); - const singleScreenAddOrMoveToFrontSpy = jest.spyOn(singleScreen, 'AddOrMoveToFront'); - const dualScreenAddOrMoveToFrontSpy = jest.spyOn(dualScreen, 'AddOrMoveToFront'); - - // Act - autoScreen.AddOrMoveToFrontDual('test', ); - - // Assert - expect(singleScreenAddSpy).toBeCalled(); - expect(singleScreenAddSpy).toBeCalledTimes(1); - expect(singleScreenAddOrMoveToFrontSpy).not.toBeCalled(); - expect(singleScreenAddOrMoveToFrontSpy).toBeCalledTimes(0); - expect(dualScreenAddOrMoveToFrontSpy).not.toBeCalled(); - expect(dualScreenAddOrMoveToFrontSpy).toBeCalledTimes(0); - }); - it('AddOrMoveToFrontSingle', () => { - // Arrange - const dualScreenAddSpy = jest.spyOn(dualScreen, 'Add'); - const dualScreenAddOrMoveToFrontSpy = jest.spyOn(dualScreen, 'AddOrMoveToFront'); - const singleScreenAddOrMoveToFrontSpy = jest.spyOn(singleScreen, 'AddOrMoveToFront'); - - // Act - autoScreen.AddOrMoveToFrontSingle('test', ); - - // Assert - expect(singleScreenAddOrMoveToFrontSpy).toBeCalled(); - expect(singleScreenAddOrMoveToFrontSpy).toBeCalledTimes(1); - expect(dualScreenAddSpy).not.toBeCalled(); - expect(dualScreenAddSpy).toBeCalledTimes(0); - expect(dualScreenAddOrMoveToFrontSpy).not.toBeCalled(); - expect(dualScreenAddOrMoveToFrontSpy).toBeCalledTimes(0); - }); - - - - it('BackToHome', () => { - // Arrange - const singleScreenBackToHomeSpy = jest.spyOn(singleScreen, 'BackToHome'); - const dualScreenBackToHomeSpy = jest.spyOn(dualScreen, 'BackToHome'); - - // Act - autoScreen.BackToHome(); - - // Assert - expect(singleScreenBackToHomeSpy).toBeCalled(); - expect(singleScreenBackToHomeSpy).toBeCalledTimes(1); - expect(dualScreenBackToHomeSpy).not.toBeCalled(); - expect(dualScreenBackToHomeSpy).toBeCalledTimes(0); - }); - - it('GoBack', () => { - // Arrange - const singleScreenGoBackSpy = jest.spyOn(singleScreen, 'GoBack'); - const dualScreenGoBackSpy = jest.spyOn(dualScreen, 'GoBack'); - - // Act - autoScreen.GoBack(); - - // Assert - expect(singleScreenGoBackSpy).toBeCalled(); - expect(singleScreenGoBackSpy).toBeCalledTimes(1); - expect(dualScreenGoBackSpy).not.toBeCalled(); - expect(dualScreenGoBackSpy).toBeCalledTimes(0); - }); - - it('ReplaceScreen', () => { - // Arrange - const singleScreenReplaceHeaderSpy = jest.spyOn( - singleScreen, - 'ReplaceScreen' - ); - const dualScreenReplaceHeaderSpy = jest.spyOn( - dualScreen, - 'ReplaceScreen' - ); - - // Act - autoScreen.ReplaceScreen('test', ); - - // Assert - expect(singleScreenReplaceHeaderSpy).toBeCalled(); - expect(singleScreenReplaceHeaderSpy).toBeCalledTimes(1); - expect(dualScreenReplaceHeaderSpy).not.toBeCalled(); - expect(dualScreenReplaceHeaderSpy).toBeCalledTimes(0); - }); - - it('ReplaceHeader', () => { - // Arrange - const singleScreenReplaceHeaderSpy = jest.spyOn( - singleScreen, - 'ReplaceHeader' - ); - const dualScreenReplaceHeaderSpy = jest.spyOn( - dualScreen, - 'ReplaceHeader' - ); - - // Act - autoScreen.ReplaceHeader('test', { title: 'test title' }); - - // Assert - expect(singleScreenReplaceHeaderSpy).toBeCalled(); - expect(singleScreenReplaceHeaderSpy).toBeCalledTimes(1); - expect(dualScreenReplaceHeaderSpy).not.toBeCalled(); - expect(dualScreenReplaceHeaderSpy).toBeCalledTimes(0); - }); - - }); - - describe('dualScreen Correct Methods Called', () => { - beforeEach(() => { - jest.clearAllMocks(); - jest.spyOn(utility, 'isDualScreen').mockReturnValue(true); - }); - - it('Add', () => { - // Arrange - const singleScreenAddSpy = jest.spyOn(singleScreen, 'Add'); - const dualScreenAddSpy = jest.spyOn(dualScreen, 'Add'); - - // Act - autoScreen.Add('test', ); - - // Assert - expect(singleScreenAddSpy).not.toBeCalled(); - expect(singleScreenAddSpy).toBeCalledTimes(0); - expect(dualScreenAddSpy).toBeCalled(); - expect(dualScreenAddSpy).toBeCalledTimes(1); - }); - - it('AddOrMoveToFront', () => { - // Arrange - const singleScreenAddOrMoveToFrontSpy = jest.spyOn(singleScreen, 'AddOrMoveToFront'); - const dualScreenAddAddOrMoveToFrontSpy = jest.spyOn(dualScreen, 'AddOrMoveToFront'); - - // Act - autoScreen.AddOrMoveToFront('test', ); - - // Assert - expect(dualScreenAddAddOrMoveToFrontSpy).toBeCalled(); - expect(dualScreenAddAddOrMoveToFrontSpy).toBeCalledTimes(1); - expect(singleScreenAddOrMoveToFrontSpy).not.toBeCalled(); - expect(singleScreenAddOrMoveToFrontSpy).toBeCalledTimes(0); - }); - - it('AddOrMoveToFrontDual', () => { - // Arrange - const singleScreenAddSpy = jest.spyOn(singleScreen, 'Add'); - const singleScreenAddOrMoveToFrontSpy = jest.spyOn(singleScreen, 'AddOrMoveToFront'); - const dualScreenAddOrMoveToFrontSpy = jest.spyOn(dualScreen, 'AddOrMoveToFront'); - - // Act - autoScreen.AddOrMoveToFrontDual('test', ); - - // Assert - expect(dualScreenAddOrMoveToFrontSpy).toBeCalled(); - expect(dualScreenAddOrMoveToFrontSpy).toBeCalledTimes(1); - expect(singleScreenAddOrMoveToFrontSpy).not.toBeCalled(); - expect(singleScreenAddOrMoveToFrontSpy).toBeCalledTimes(0); - expect(singleScreenAddSpy).not.toBeCalled(); - expect(singleScreenAddSpy).toBeCalledTimes(0); - }); - - it('AddOrMoveToFrontSingle', () => { - // Arrange - const singleScreenAddSpy = jest.spyOn(singleScreen, 'Add'); - const dualScreenAddSpy = jest.spyOn(dualScreen, 'Add'); - const singleScreenAddOrMoveToFrontSpy = jest.spyOn(singleScreen, 'AddOrMoveToFront'); - - // Act - autoScreen.AddOrMoveToFrontSingle('test', ); - - // Assert - expect(dualScreenAddSpy).toBeCalled(); - expect(dualScreenAddSpy).toBeCalledTimes(1); - expect(singleScreenAddSpy).not.toBeCalled(); - expect(singleScreenAddSpy).toBeCalledTimes(0); - expect(singleScreenAddOrMoveToFrontSpy).not.toBeCalled(); - expect(singleScreenAddOrMoveToFrontSpy).toBeCalledTimes(0); - }); - - - it('BackToHome', () => { - // Arrange - const singleScreenBackToHomeSpy = jest.spyOn(singleScreen, 'BackToHome'); - const dualScreenBackToHomeSpy = jest.spyOn(dualScreen, 'BackToHome'); - - // Act - autoScreen.BackToHome(); - - // Assert - expect(singleScreenBackToHomeSpy).not.toBeCalled(); - expect(singleScreenBackToHomeSpy).toBeCalledTimes(0); - expect(dualScreenBackToHomeSpy).toBeCalled(); - expect(dualScreenBackToHomeSpy).toBeCalledTimes(1); - }); - - it('GoBack', () => { - // Arrange - const singleScreenGoBackSpy = jest.spyOn(singleScreen, 'GoBack'); - const dualScreenGoBackSpy = jest.spyOn(dualScreen, 'GoBack'); - - // Act - autoScreen.GoBack(); - - // Assert - expect(singleScreenGoBackSpy).not.toBeCalled(); - expect(singleScreenGoBackSpy).toBeCalledTimes(0); - expect(dualScreenGoBackSpy).toBeCalled(); - expect(dualScreenGoBackSpy).toBeCalledTimes(1); - }); - - - it('ReplaceScreen', () => { - // Arrange - const singleScreenReplaceHeaderSpy = jest.spyOn( - singleScreen, - 'ReplaceScreen' - ); - const dualScreenReplaceHeaderSpy = jest.spyOn( - dualScreen, - 'ReplaceScreen' - ); - - // Act - autoScreen.ReplaceScreen('test', ); - - // Assert - expect(dualScreenReplaceHeaderSpy).toBeCalled(); - expect(dualScreenReplaceHeaderSpy).toBeCalledTimes(1); - expect(singleScreenReplaceHeaderSpy).not.toBeCalled(); - expect(singleScreenReplaceHeaderSpy).toBeCalledTimes(0); - }); - - it('ReplaceHeader', () => { - // Arrange - const singleScreenReplaceHeaderSpy = jest.spyOn( - singleScreen, - 'ReplaceHeader' - ); - const dualScreenReplaceHeaderSpy = jest.spyOn( - dualScreen, - 'ReplaceHeader' - ); - - // Act - autoScreen.ReplaceHeader('test', { title: 'test title' }); - - // Assert - expect(dualScreenReplaceHeaderSpy).toBeCalled(); - expect(dualScreenReplaceHeaderSpy).toBeCalledTimes(1); - expect(singleScreenReplaceHeaderSpy).not.toBeCalled(); - expect(singleScreenReplaceHeaderSpy).toBeCalledTimes(0); - }); - - }); -}); diff --git a/twopane-navigation/packages/twopane-navigation/src/utilities/tests/autoPane.methods.test.tsx b/twopane-navigation/packages/twopane-navigation/src/utilities/tests/autoPane.methods.test.tsx new file mode 100644 index 0000000..e367a92 --- /dev/null +++ b/twopane-navigation/packages/twopane-navigation/src/utilities/tests/autoPane.methods.test.tsx @@ -0,0 +1,302 @@ +import onePane from '../../onePane/onePaneStore/onePane.methods'; +import twoPane from '../../twoPane/twoPaneStore/twoPane.methods'; +import utility from '../utility.methods'; +import autoPane from '../autoPane.methods'; +import React, { Fragment } from 'react'; + +describe('autoPane methods', () => { + describe('onePane Correct Methods Called', () => { + beforeEach(() => { + jest.clearAllMocks(); + jest.spyOn(utility, 'isTwoPane').mockReturnValue(false); + }); + + it('Add', () => { + // Arrange + const onePaneAddSpy = jest.spyOn(onePane, 'Add'); + const twoPaneAddSpy = jest.spyOn(twoPane, 'Add'); + + // Act + autoPane.Add('test', ); + + // Assert + expect(onePaneAddSpy).toBeCalled(); + expect(onePaneAddSpy).toBeCalledTimes(1); + expect(twoPaneAddSpy).not.toBeCalled(); + expect(twoPaneAddSpy).toBeCalledTimes(0); + }); + + it('AddOrMoveToFront', () => { + // Arrange + const onePaneAddOrMoveToFrontSpy = jest.spyOn(onePane, 'AddOrMoveToFront'); + const twoPaneAddAddOrMoveToFrontSpy = jest.spyOn(twoPane, 'AddOrMoveToFront'); + + // Act + autoPane.AddOrMoveToFront('test', ); + + // Assert + expect(onePaneAddOrMoveToFrontSpy).toBeCalled(); + expect(onePaneAddOrMoveToFrontSpy).toBeCalledTimes(1); + expect(twoPaneAddAddOrMoveToFrontSpy).not.toBeCalled(); + expect(twoPaneAddAddOrMoveToFrontSpy).toBeCalledTimes(0); + }); + + it('AddOrMoveToFrontTWO', () => { + // Arrange + const onePaneAddSpy = jest.spyOn(onePane, 'Add'); + const onePaneAddOrMoveToFrontSpy = jest.spyOn(onePane, 'AddOrMoveToFront'); + const twoPaneAddOrMoveToFrontSpy = jest.spyOn(twoPane, 'AddOrMoveToFront'); + + // Act + autoPane.AddOrMoveToFrontTWO('test', ); + + // Assert + expect(onePaneAddSpy).toBeCalled(); + expect(onePaneAddSpy).toBeCalledTimes(1); + expect(onePaneAddOrMoveToFrontSpy).not.toBeCalled(); + expect(onePaneAddOrMoveToFrontSpy).toBeCalledTimes(0); + expect(twoPaneAddOrMoveToFrontSpy).not.toBeCalled(); + expect(twoPaneAddOrMoveToFrontSpy).toBeCalledTimes(0); + }); + it('AddOrMoveToFrontONE', () => { + // Arrange + const twoPaneAddSpy = jest.spyOn(twoPane, 'Add'); + const twoPaneAddOrMoveToFrontSpy = jest.spyOn(twoPane, 'AddOrMoveToFront'); + const onePaneAddOrMoveToFrontSpy = jest.spyOn(onePane, 'AddOrMoveToFront'); + + // Act + autoPane.AddOrMoveToFrontONE('test', ); + + // Assert + expect(onePaneAddOrMoveToFrontSpy).toBeCalled(); + expect(onePaneAddOrMoveToFrontSpy).toBeCalledTimes(1); + expect(twoPaneAddSpy).not.toBeCalled(); + expect(twoPaneAddSpy).toBeCalledTimes(0); + expect(twoPaneAddOrMoveToFrontSpy).not.toBeCalled(); + expect(twoPaneAddOrMoveToFrontSpy).toBeCalledTimes(0); + }); + + + + it('BackToHome', () => { + // Arrange + const onePaneBackToHomeSpy = jest.spyOn(onePane, 'BackToHome'); + const twoPaneBackToHomeSpy = jest.spyOn(twoPane, 'BackToHome'); + + // Act + autoPane.BackToHome(); + + // Assert + expect(onePaneBackToHomeSpy).toBeCalled(); + expect(onePaneBackToHomeSpy).toBeCalledTimes(1); + expect(twoPaneBackToHomeSpy).not.toBeCalled(); + expect(twoPaneBackToHomeSpy).toBeCalledTimes(0); + }); + + it('GoBack', () => { + // Arrange + const onePaneGoBackSpy = jest.spyOn(onePane, 'GoBack'); + const twoPaneGoBackSpy = jest.spyOn(twoPane, 'GoBack'); + + // Act + autoPane.GoBack(); + + // Assert + expect(onePaneGoBackSpy).toBeCalled(); + expect(onePaneGoBackSpy).toBeCalledTimes(1); + expect(twoPaneGoBackSpy).not.toBeCalled(); + expect(twoPaneGoBackSpy).toBeCalledTimes(0); + }); + + it('ReplaceScreen', () => { + // Arrange + const onePaneReplaceHeaderSpy = jest.spyOn( + onePane, + 'ReplaceScreen' + ); + const twoPaneReplaceHeaderSpy = jest.spyOn( + twoPane, + 'ReplaceScreen' + ); + + // Act + autoPane.ReplaceScreen('test', ); + + // Assert + expect(onePaneReplaceHeaderSpy).toBeCalled(); + expect(onePaneReplaceHeaderSpy).toBeCalledTimes(1); + expect(twoPaneReplaceHeaderSpy).not.toBeCalled(); + expect(twoPaneReplaceHeaderSpy).toBeCalledTimes(0); + }); + + it('ReplaceHeader', () => { + // Arrange + const onePaneReplaceHeaderSpy = jest.spyOn( + onePane, + 'ReplaceHeader' + ); + const twoPaneReplaceHeaderSpy = jest.spyOn( + twoPane, + 'ReplaceHeader' + ); + + // Act + autoPane.ReplaceHeader('test', { title: 'test title' }); + + // Assert + expect(onePaneReplaceHeaderSpy).toBeCalled(); + expect(onePaneReplaceHeaderSpy).toBeCalledTimes(1); + expect(twoPaneReplaceHeaderSpy).not.toBeCalled(); + expect(twoPaneReplaceHeaderSpy).toBeCalledTimes(0); + }); + + }); + + describe('twoPane Correct Methods Called', () => { + beforeEach(() => { + jest.clearAllMocks(); + jest.spyOn(utility, 'isTwoPane').mockReturnValue(true); + }); + + it('Add', () => { + // Arrange + const onePaneAddSpy = jest.spyOn(onePane, 'Add'); + const twoPaneAddSpy = jest.spyOn(twoPane, 'Add'); + + // Act + autoPane.Add('test', ); + + // Assert + expect(onePaneAddSpy).not.toBeCalled(); + expect(onePaneAddSpy).toBeCalledTimes(0); + expect(twoPaneAddSpy).toBeCalled(); + expect(twoPaneAddSpy).toBeCalledTimes(1); + }); + + it('AddOrMoveToFront', () => { + // Arrange + const onePaneAddOrMoveToFrontSpy = jest.spyOn(onePane, 'AddOrMoveToFront'); + const twoPaneAddAddOrMoveToFrontSpy = jest.spyOn(twoPane, 'AddOrMoveToFront'); + + // Act + autoPane.AddOrMoveToFront('test', ); + + // Assert + expect(twoPaneAddAddOrMoveToFrontSpy).toBeCalled(); + expect(twoPaneAddAddOrMoveToFrontSpy).toBeCalledTimes(1); + expect(onePaneAddOrMoveToFrontSpy).not.toBeCalled(); + expect(onePaneAddOrMoveToFrontSpy).toBeCalledTimes(0); + }); + + it('AddOrMoveToFrontTWO', () => { + // Arrange + const onePaneAddSpy = jest.spyOn(onePane, 'Add'); + const onePaneAddOrMoveToFrontSpy = jest.spyOn(onePane, 'AddOrMoveToFront'); + const twoPaneAddOrMoveToFrontSpy = jest.spyOn(twoPane, 'AddOrMoveToFront'); + + // Act + autoPane.AddOrMoveToFrontTWO('test', ); + + // Assert + expect(twoPaneAddOrMoveToFrontSpy).toBeCalled(); + expect(twoPaneAddOrMoveToFrontSpy).toBeCalledTimes(1); + expect(onePaneAddOrMoveToFrontSpy).not.toBeCalled(); + expect(onePaneAddOrMoveToFrontSpy).toBeCalledTimes(0); + expect(onePaneAddSpy).not.toBeCalled(); + expect(onePaneAddSpy).toBeCalledTimes(0); + }); + + it('AddOrMoveToFrontONE', () => { + // Arrange + const onePaneAddSpy = jest.spyOn(onePane, 'Add'); + const twoPaneAddSpy = jest.spyOn(twoPane, 'Add'); + const onePaneAddOrMoveToFrontSpy = jest.spyOn(onePane, 'AddOrMoveToFront'); + + // Act + autoPane.AddOrMoveToFrontONE('test', ); + + // Assert + expect(twoPaneAddSpy).toBeCalled(); + expect(twoPaneAddSpy).toBeCalledTimes(1); + expect(onePaneAddSpy).not.toBeCalled(); + expect(onePaneAddSpy).toBeCalledTimes(0); + expect(onePaneAddOrMoveToFrontSpy).not.toBeCalled(); + expect(onePaneAddOrMoveToFrontSpy).toBeCalledTimes(0); + }); + + + it('BackToHome', () => { + // Arrange + const onePaneBackToHomeSpy = jest.spyOn(onePane, 'BackToHome'); + const twoPaneBackToHomeSpy = jest.spyOn(twoPane, 'BackToHome'); + + // Act + autoPane.BackToHome(); + + // Assert + expect(onePaneBackToHomeSpy).not.toBeCalled(); + expect(onePaneBackToHomeSpy).toBeCalledTimes(0); + expect(twoPaneBackToHomeSpy).toBeCalled(); + expect(twoPaneBackToHomeSpy).toBeCalledTimes(1); + }); + + it('GoBack', () => { + // Arrange + const onePaneGoBackSpy = jest.spyOn(onePane, 'GoBack'); + const twoPaneGoBackSpy = jest.spyOn(twoPane, 'GoBack'); + + // Act + autoPane.GoBack(); + + // Assert + expect(onePaneGoBackSpy).not.toBeCalled(); + expect(onePaneGoBackSpy).toBeCalledTimes(0); + expect(twoPaneGoBackSpy).toBeCalled(); + expect(twoPaneGoBackSpy).toBeCalledTimes(1); + }); + + + it('ReplaceScreen', () => { + // Arrange + const onePaneReplaceHeaderSpy = jest.spyOn( + onePane, + 'ReplaceScreen' + ); + const twoPaneReplaceHeaderSpy = jest.spyOn( + twoPane, + 'ReplaceScreen' + ); + + // Act + autoPane.ReplaceScreen('test', ); + + // Assert + expect(twoPaneReplaceHeaderSpy).toBeCalled(); + expect(twoPaneReplaceHeaderSpy).toBeCalledTimes(1); + expect(onePaneReplaceHeaderSpy).not.toBeCalled(); + expect(onePaneReplaceHeaderSpy).toBeCalledTimes(0); + }); + + it('ReplaceHeader', () => { + // Arrange + const onePaneReplaceHeaderSpy = jest.spyOn( + onePane, + 'ReplaceHeader' + ); + const twoPaneReplaceHeaderSpy = jest.spyOn( + twoPane, + 'ReplaceHeader' + ); + + // Act + autoPane.ReplaceHeader('test', { title: 'test title' }); + + // Assert + expect(twoPaneReplaceHeaderSpy).toBeCalled(); + expect(twoPaneReplaceHeaderSpy).toBeCalledTimes(1); + expect(onePaneReplaceHeaderSpy).not.toBeCalled(); + expect(onePaneReplaceHeaderSpy).toBeCalledTimes(0); + }); + + }); +}); diff --git a/twopane-navigation/packages/twopane-navigation/src/utilities/utility.methods.ts b/twopane-navigation/packages/twopane-navigation/src/utilities/utility.methods.ts index 1ad15f7..061732c 100644 --- a/twopane-navigation/packages/twopane-navigation/src/utilities/utility.methods.ts +++ b/twopane-navigation/packages/twopane-navigation/src/utilities/utility.methods.ts @@ -1,12 +1,12 @@ import { useRef, useEffect } from 'react'; import { store } from '../appStore'; -const isDualScreen = (): boolean => { - return store.getState().utilityStoreReducer.isDualScreen +const isTwoPane = (): boolean => { + return store.getState().utilityStoreReducer.isTwoPane }; const _utilityFunctions = { - isDualScreen, + isTwoPane, }; type utilityFunctions = typeof _utilityFunctions; diff --git a/twopane-navigation/yarn.lock b/twopane-navigation/yarn.lock index cfd8c08..10aa3c3 100644 --- a/twopane-navigation/yarn.lock +++ b/twopane-navigation/yarn.lock @@ -1804,9 +1804,9 @@ integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== "@types/node@*": - version "14.0.27" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.0.27.tgz#a151873af5a5e851b51b3b065c9e63390a9e0eb1" - integrity sha512-kVrqXhbclHNHGu9ztnAwSncIgJv/FaxmzXJvGXNdcCpV1b8u1/Mi6z6m0vwy0LzKeXFTPLH0NzwmoJ3fNCIq0g== + version "14.6.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.6.0.tgz#7d4411bf5157339337d7cff864d9ff45f177b499" + integrity sha512-mikldZQitV94akrc4sCcSjtJfsTKt4p+e/s0AGscVA6XArQ9kFclP+ZiYUMnq987rc6QlYxXv/EivqlfSLxpKA== "@types/normalize-package-data@^2.4.0": version "2.4.0" @@ -2055,9 +2055,9 @@ aggregate-error@^3.0.0: indent-string "^4.0.0" ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.3: - version "6.12.3" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.3.tgz#18c5af38a111ddeb4f2697bd78d68abc1cabd706" - integrity sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA== + version "6.12.4" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.4.tgz#0614facc4522127fa713445c6bfd3ebd376e2234" + integrity sha512-eienB2c9qVQs2KWexhkrdMLVDoIQCz5KSeLxwg9Lzk4DOfBtIK9PQwwufcsn1jjGuf9WZmqPMbGxOzfcuphJCQ== dependencies: fast-deep-equal "^3.1.1" fast-json-stable-stringify "^2.0.0" @@ -3259,9 +3259,9 @@ ee-first@1.1.1: integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= ejs@^3.0.1: - version "3.1.3" - resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.3.tgz#514d967a8894084d18d3d47bd169a1c0560f093d" - integrity sha512-wmtrUGyfSC23GC/B1SMv2ogAUgbQEtDmTIhfqielrG5ExIM9TP4UoYdi90jLF1aTcsWCJNEO0UrgKzP0y3nTSg== + version "3.1.5" + resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.5.tgz#aed723844dc20acb4b170cd9ab1017e476a0d93b" + integrity sha512-dldq3ZfFtgVTJMLjOe+/3sROTzALlL9E34V4/sDtUd/KlBSS0s6U1/+WPE1B4sj9CXHJpL1M6rhNJnc9Wbal9w== dependencies: jake "^10.6.1"