@react-navigation/routers 6.1.3 → 6.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"sources":["BaseRouter.tsx"],"names":["BaseRouter","getStateForAction","state","action","type","index","source","routes","findIndex","r","key","map","i","params","payload","nextState","length","some","route","routeNames","includes","name","stale","shouldActionChangeFocus"],"mappings":";;;;;;;AAAA;;AAQA;AACA;AACA;AACA;AACA,MAAMA,UAAU,GAAG;AACjBC,EAAAA,iBAAiB,CACfC,KADe,EAEfC,MAFe,EAGqB;AACpC,YAAQA,MAAM,CAACC,IAAf;AACE,WAAK,YAAL;AAAmB;AACjB,gBAAMC,KAAK,GAAGF,MAAM,CAACG,MAAP,GACVJ,KAAK,CAACK,MAAN,CAAaC,SAAb,CAAwBC,CAAD,IAAOA,CAAC,CAACC,GAAF,KAAUP,MAAM,CAACG,MAA/C,CADU,GAEVJ,KAAK,CAACG,KAFV;;AAIA,cAAIA,KAAK,KAAK,CAAC,CAAf,EAAkB;AAChB,mBAAO,IAAP;AACD;;AAED,iBAAO,EACL,GAAGH,KADE;AAELK,YAAAA,MAAM,EAAEL,KAAK,CAACK,MAAN,CAAaI,GAAb,CAAiB,CAACF,CAAD,EAAIG,CAAJ,KACvBA,CAAC,KAAKP,KAAN,GACI,EAAE,GAAGI,CAAL;AAAQI,cAAAA,MAAM,EAAE,EAAE,GAAGJ,CAAC,CAACI,MAAP;AAAe,mBAAGV,MAAM,CAACW,OAAP,CAAeD;AAAjC;AAAhB,aADJ,GAEIJ,CAHE;AAFH,WAAP;AAQD;;AAED,WAAK,OAAL;AAAc;AACZ,gBAAMM,SAAS,GAAGZ,MAAM,CAACW,OAAzB;;AAEA,cACEC,SAAS,CAACR,MAAV,CAAiBS,MAAjB,KAA4B,CAA5B,IACAD,SAAS,CAACR,MAAV,CAAiBU,IAAjB,CACGC,KAAD,IAA6B,CAAChB,KAAK,CAACiB,UAAN,CAAiBC,QAAjB,CAA0BF,KAAK,CAACG,IAAhC,CADhC,CAFF,EAKE;AACA,mBAAO,IAAP;AACD;;AAED,cAAIN,SAAS,CAACO,KAAV,KAAoB,KAAxB,EAA+B;AAC7B,gBACEpB,KAAK,CAACiB,UAAN,CAAiBH,MAAjB,KAA4BD,SAAS,CAACI,UAAV,CAAqBH,MAAjD,IACAD,SAAS,CAACI,UAAV,CAAqBF,IAArB,CACGI,IAAD,IAAU,CAACnB,KAAK,CAACiB,UAAN,CAAiBC,QAAjB,CAA0BC,IAA1B,CADb,CAFF,EAKE;AACA,qBAAO,IAAP;AACD;;AAED,mBAAO,EACL,GAAGN,SADE;AAELR,cAAAA,MAAM,EAAEQ,SAAS,CAACR,MAAV,CAAiBI,GAAjB,CAAsBO,KAAD,IAC3BA,KAAK,CAACR,GAAN,GAAYQ,KAAZ,GAAoB,EAAE,GAAGA,KAAL;AAAYR,gBAAAA,GAAG,EAAG,GAAEQ,KAAK,CAACG,IAAK,IAAG,wBAAS;AAA3C,eADd;AAFH,aAAP;AAMD;;AAED,iBAAON,SAAP;AACD;;AAED;AACE,eAAO,IAAP;AAtDJ;AAwDD,GA7DgB;;AA+DjBQ,EAAAA,uBAAuB,CAACpB,MAAD,EAAiC;AACtD,WAAOA,MAAM,CAACC,IAAP,KAAgB,UAAvB;AACD;;AAjEgB,CAAnB;eAoEeJ,U","sourcesContent":["import { nanoid } from 'nanoid/non-secure';\n\nimport type {\n CommonNavigationAction,\n NavigationState,\n PartialState,\n} from './types';\n\n/**\n * Base router object that can be used when writing custom routers.\n * This provides few helper methods to handle common actions such as `RESET`.\n */\nconst BaseRouter = {\n getStateForAction<State extends NavigationState>(\n state: State,\n action: CommonNavigationAction\n ): State | PartialState<State> | null {\n switch (action.type) {\n case 'SET_PARAMS': {\n const index = action.source\n ? state.routes.findIndex((r) => r.key === action.source)\n : state.index;\n\n if (index === -1) {\n return null;\n }\n\n return {\n ...state,\n routes: state.routes.map((r, i) =>\n i === index\n ? { ...r, params: { ...r.params, ...action.payload.params } }\n : r\n ),\n };\n }\n\n case 'RESET': {\n const nextState = action.payload as State | PartialState<State>;\n\n if (\n nextState.routes.length === 0 ||\n nextState.routes.some(\n (route: { name: string }) => !state.routeNames.includes(route.name)\n )\n ) {\n return null;\n }\n\n if (nextState.stale === false) {\n if (\n state.routeNames.length !== nextState.routeNames.length ||\n nextState.routeNames.some(\n (name) => !state.routeNames.includes(name)\n )\n ) {\n return null;\n }\n\n return {\n ...nextState,\n routes: nextState.routes.map((route) =>\n route.key ? route : { ...route, key: `${route.name}-${nanoid()}` }\n ),\n };\n }\n\n return nextState;\n }\n\n default:\n return null;\n }\n },\n\n shouldActionChangeFocus(action: CommonNavigationAction) {\n return action.type === 'NAVIGATE';\n },\n};\n\nexport default BaseRouter;\n"]}
1
+ {"version":3,"names":["BaseRouter","getStateForAction","state","action","type","index","source","routes","findIndex","r","key","map","i","params","payload","nextState","length","some","route","routeNames","includes","name","stale","nanoid","shouldActionChangeFocus"],"sources":["BaseRouter.tsx"],"sourcesContent":["import { nanoid } from 'nanoid/non-secure';\n\nimport type {\n CommonNavigationAction,\n NavigationState,\n PartialState,\n} from './types';\n\n/**\n * Base router object that can be used when writing custom routers.\n * This provides few helper methods to handle common actions such as `RESET`.\n */\nconst BaseRouter = {\n getStateForAction<State extends NavigationState>(\n state: State,\n action: CommonNavigationAction\n ): State | PartialState<State> | null {\n switch (action.type) {\n case 'SET_PARAMS': {\n const index = action.source\n ? state.routes.findIndex((r) => r.key === action.source)\n : state.index;\n\n if (index === -1) {\n return null;\n }\n\n return {\n ...state,\n routes: state.routes.map((r, i) =>\n i === index\n ? { ...r, params: { ...r.params, ...action.payload.params } }\n : r\n ),\n };\n }\n\n case 'RESET': {\n const nextState = action.payload as State | PartialState<State>;\n\n if (\n nextState.routes.length === 0 ||\n nextState.routes.some(\n (route: { name: string }) => !state.routeNames.includes(route.name)\n )\n ) {\n return null;\n }\n\n if (nextState.stale === false) {\n if (\n state.routeNames.length !== nextState.routeNames.length ||\n nextState.routeNames.some(\n (name) => !state.routeNames.includes(name)\n )\n ) {\n return null;\n }\n\n return {\n ...nextState,\n routes: nextState.routes.map((route) =>\n route.key ? route : { ...route, key: `${route.name}-${nanoid()}` }\n ),\n };\n }\n\n return nextState;\n }\n\n default:\n return null;\n }\n },\n\n shouldActionChangeFocus(action: CommonNavigationAction) {\n return action.type === 'NAVIGATE';\n },\n};\n\nexport default BaseRouter;\n"],"mappings":";;;;;;;AAAA;;AAQA;AACA;AACA;AACA;AACA,MAAMA,UAAU,GAAG;EACjBC,iBAAiB,CACfC,KADe,EAEfC,MAFe,EAGqB;IACpC,QAAQA,MAAM,CAACC,IAAf;MACE,KAAK,YAAL;QAAmB;UACjB,MAAMC,KAAK,GAAGF,MAAM,CAACG,MAAP,GACVJ,KAAK,CAACK,MAAN,CAAaC,SAAb,CAAwBC,CAAD,IAAOA,CAAC,CAACC,GAAF,KAAUP,MAAM,CAACG,MAA/C,CADU,GAEVJ,KAAK,CAACG,KAFV;;UAIA,IAAIA,KAAK,KAAK,CAAC,CAAf,EAAkB;YAChB,OAAO,IAAP;UACD;;UAED,OAAO,EACL,GAAGH,KADE;YAELK,MAAM,EAAEL,KAAK,CAACK,MAAN,CAAaI,GAAb,CAAiB,CAACF,CAAD,EAAIG,CAAJ,KACvBA,CAAC,KAAKP,KAAN,GACI,EAAE,GAAGI,CAAL;cAAQI,MAAM,EAAE,EAAE,GAAGJ,CAAC,CAACI,MAAP;gBAAe,GAAGV,MAAM,CAACW,OAAP,CAAeD;cAAjC;YAAhB,CADJ,GAEIJ,CAHE;UAFH,CAAP;QAQD;;MAED,KAAK,OAAL;QAAc;UACZ,MAAMM,SAAS,GAAGZ,MAAM,CAACW,OAAzB;;UAEA,IACEC,SAAS,CAACR,MAAV,CAAiBS,MAAjB,KAA4B,CAA5B,IACAD,SAAS,CAACR,MAAV,CAAiBU,IAAjB,CACGC,KAAD,IAA6B,CAAChB,KAAK,CAACiB,UAAN,CAAiBC,QAAjB,CAA0BF,KAAK,CAACG,IAAhC,CADhC,CAFF,EAKE;YACA,OAAO,IAAP;UACD;;UAED,IAAIN,SAAS,CAACO,KAAV,KAAoB,KAAxB,EAA+B;YAC7B,IACEpB,KAAK,CAACiB,UAAN,CAAiBH,MAAjB,KAA4BD,SAAS,CAACI,UAAV,CAAqBH,MAAjD,IACAD,SAAS,CAACI,UAAV,CAAqBF,IAArB,CACGI,IAAD,IAAU,CAACnB,KAAK,CAACiB,UAAN,CAAiBC,QAAjB,CAA0BC,IAA1B,CADb,CAFF,EAKE;cACA,OAAO,IAAP;YACD;;YAED,OAAO,EACL,GAAGN,SADE;cAELR,MAAM,EAAEQ,SAAS,CAACR,MAAV,CAAiBI,GAAjB,CAAsBO,KAAD,IAC3BA,KAAK,CAACR,GAAN,GAAYQ,KAAZ,GAAoB,EAAE,GAAGA,KAAL;gBAAYR,GAAG,EAAG,GAAEQ,KAAK,CAACG,IAAK,IAAG,IAAAE,iBAAA,GAAS;cAA3C,CADd;YAFH,CAAP;UAMD;;UAED,OAAOR,SAAP;QACD;;MAED;QACE,OAAO,IAAP;IAtDJ;EAwDD,CA7DgB;;EA+DjBS,uBAAuB,CAACrB,MAAD,EAAiC;IACtD,OAAOA,MAAM,CAACC,IAAP,KAAgB,UAAvB;EACD;;AAjEgB,CAAnB;eAoEeJ,U"}
@@ -1 +1 @@
1
- {"version":3,"sources":["CommonActions.tsx"],"names":["goBack","type","navigate","payload","name","params","hasOwnProperty","Error","reset","state","setParams"],"mappings":";;;;;;;;;;AAgDO,SAASA,MAAT,GAA0B;AAC/B,SAAO;AAAEC,IAAAA,IAAI,EAAE;AAAR,GAAP;AACD;;AAeD;AACO,SAASC,QAAT,GAAwC;AAC7C,MAAI,8DAAmB,QAAvB,EAAiC;AAC/B,WAAO;AAAED,MAAAA,IAAI,EAAE,UAAR;AAAoBE,MAAAA,OAAO,EAAE;AAAEC,QAAAA,IAAI,kDAAN;AAAiBC,QAAAA,MAAM;AAAvB;AAA7B,KAAP;AACD,GAFD,MAEO;AACL,UAAMF,OAAO,GAAG,sDAAW,EAA3B;;AAEA,QAAI,CAACA,OAAO,CAACG,cAAR,CAAuB,KAAvB,CAAD,IAAkC,CAACH,OAAO,CAACG,cAAR,CAAuB,MAAvB,CAAvC,EAAuE;AACrE,YAAM,IAAIC,KAAJ,CACJ,mKADI,CAAN;AAGD;;AAED,WAAO;AAAEN,MAAAA,IAAI,EAAE,UAAR;AAAoBE,MAAAA;AAApB,KAAP;AACD;AACF;;AAEM,SAASK,KAAT,CAAeC,KAAf,EAAsD;AAC3D,SAAO;AAAER,IAAAA,IAAI,EAAE,OAAR;AAAiBE,IAAAA,OAAO,EAAEM;AAA1B,GAAP;AACD;;AAEM,SAASC,SAAT,CAAmBL,MAAnB,EAA2C;AAChD,SAAO;AAAEJ,IAAAA,IAAI,EAAE,YAAR;AAAsBE,IAAAA,OAAO,EAAE;AAAEE,MAAAA;AAAF;AAA/B,GAAP;AACD","sourcesContent":["import type { NavigationState, PartialState, Route } from './types';\n\ntype ResetState =\n | PartialState<NavigationState>\n | NavigationState\n | (Omit<NavigationState, 'routes'> & {\n routes: Omit<Route<string>, 'key'>[];\n });\n\nexport type Action =\n | {\n type: 'GO_BACK';\n source?: string;\n target?: string;\n }\n | {\n type: 'NAVIGATE';\n payload:\n | {\n key: string;\n name?: undefined;\n params?: object;\n path?: string;\n merge?: boolean;\n }\n | {\n name: string;\n key?: string;\n params?: object;\n path?: string;\n merge?: boolean;\n };\n source?: string;\n target?: string;\n }\n | {\n type: 'RESET';\n payload: ResetState | undefined;\n source?: string;\n target?: string;\n }\n | {\n type: 'SET_PARAMS';\n payload: { params?: object };\n source?: string;\n target?: string;\n };\n\nexport function goBack(): Action {\n return { type: 'GO_BACK' };\n}\n\nexport function navigate(\n options:\n | { key: string; params?: object; path?: string; merge?: boolean }\n | {\n name: string;\n key?: string;\n params?: object;\n path?: string;\n merge?: boolean;\n }\n): Action;\n// eslint-disable-next-line no-redeclare\nexport function navigate(name: string, params?: object): Action;\n// eslint-disable-next-line no-redeclare\nexport function navigate(...args: any): Action {\n if (typeof args[0] === 'string') {\n return { type: 'NAVIGATE', payload: { name: args[0], params: args[1] } };\n } else {\n const payload = args[0] || {};\n\n if (!payload.hasOwnProperty('key') && !payload.hasOwnProperty('name')) {\n throw new Error(\n 'You need to specify name or key when calling navigate with an object as the argument. See https://reactnavigation.org/docs/navigation-actions#navigate for usage.'\n );\n }\n\n return { type: 'NAVIGATE', payload };\n }\n}\n\nexport function reset(state: ResetState | undefined): Action {\n return { type: 'RESET', payload: state };\n}\n\nexport function setParams(params: object): Action {\n return { type: 'SET_PARAMS', payload: { params } };\n}\n"]}
1
+ {"version":3,"names":["goBack","type","navigate","payload","name","params","hasOwnProperty","Error","reset","state","setParams"],"sources":["CommonActions.tsx"],"sourcesContent":["import type { NavigationState, PartialState, Route } from './types';\n\ntype ResetState =\n | PartialState<NavigationState>\n | NavigationState\n | (Omit<NavigationState, 'routes'> & {\n routes: Omit<Route<string>, 'key'>[];\n });\n\nexport type Action =\n | {\n type: 'GO_BACK';\n source?: string;\n target?: string;\n }\n | {\n type: 'NAVIGATE';\n payload:\n | {\n key: string;\n name?: undefined;\n params?: object;\n path?: string;\n merge?: boolean;\n }\n | {\n name: string;\n key?: string;\n params?: object;\n path?: string;\n merge?: boolean;\n };\n source?: string;\n target?: string;\n }\n | {\n type: 'RESET';\n payload: ResetState | undefined;\n source?: string;\n target?: string;\n }\n | {\n type: 'SET_PARAMS';\n payload: { params?: object };\n source?: string;\n target?: string;\n };\n\nexport function goBack(): Action {\n return { type: 'GO_BACK' };\n}\n\nexport function navigate(\n options:\n | { key: string; params?: object; path?: string; merge?: boolean }\n | {\n name: string;\n key?: string;\n params?: object;\n path?: string;\n merge?: boolean;\n }\n): Action;\n// eslint-disable-next-line no-redeclare\nexport function navigate(name: string, params?: object): Action;\n// eslint-disable-next-line no-redeclare\nexport function navigate(...args: any): Action {\n if (typeof args[0] === 'string') {\n return { type: 'NAVIGATE', payload: { name: args[0], params: args[1] } };\n } else {\n const payload = args[0] || {};\n\n if (!payload.hasOwnProperty('key') && !payload.hasOwnProperty('name')) {\n throw new Error(\n 'You need to specify name or key when calling navigate with an object as the argument. See https://reactnavigation.org/docs/navigation-actions#navigate for usage.'\n );\n }\n\n return { type: 'NAVIGATE', payload };\n }\n}\n\nexport function reset(state: ResetState | undefined): Action {\n return { type: 'RESET', payload: state };\n}\n\nexport function setParams(params: object): Action {\n return { type: 'SET_PARAMS', payload: { params } };\n}\n"],"mappings":";;;;;;;;;;AAgDO,SAASA,MAAT,GAA0B;EAC/B,OAAO;IAAEC,IAAI,EAAE;EAAR,CAAP;AACD;;AAeD;AACO,SAASC,QAAT,GAAwC;EAC7C,IAAI,8DAAmB,QAAvB,EAAiC;IAC/B,OAAO;MAAED,IAAI,EAAE,UAAR;MAAoBE,OAAO,EAAE;QAAEC,IAAI,kDAAN;QAAiBC,MAAM;MAAvB;IAA7B,CAAP;EACD,CAFD,MAEO;IACL,MAAMF,OAAO,GAAG,sDAAW,EAA3B;;IAEA,IAAI,CAACA,OAAO,CAACG,cAAR,CAAuB,KAAvB,CAAD,IAAkC,CAACH,OAAO,CAACG,cAAR,CAAuB,MAAvB,CAAvC,EAAuE;MACrE,MAAM,IAAIC,KAAJ,CACJ,mKADI,CAAN;IAGD;;IAED,OAAO;MAAEN,IAAI,EAAE,UAAR;MAAoBE;IAApB,CAAP;EACD;AACF;;AAEM,SAASK,KAAT,CAAeC,KAAf,EAAsD;EAC3D,OAAO;IAAER,IAAI,EAAE,OAAR;IAAiBE,OAAO,EAAEM;EAA1B,CAAP;AACD;;AAEM,SAASC,SAAT,CAAmBL,MAAnB,EAA2C;EAChD,OAAO;IAAEJ,IAAI,EAAE,YAAR;IAAsBE,OAAO,EAAE;MAAEE;IAAF;EAA/B,CAAP;AACD"}
@@ -1 +1 @@
1
- {"version":3,"sources":["DrawerRouter.tsx"],"names":["DrawerActions","TabActions","openDrawer","type","closeDrawer","toggleDrawer","DrawerRouter","defaultStatus","rest","router","isDrawerInHistory","state","Boolean","history","some","it","addDrawerToHistory","status","removeDrawerFromHistory","filter","getInitialState","routeNames","routeParamList","routeGetIdList","default","stale","key","getRehydratedState","partialState","getStateForRouteFocus","result","getStateForAction","action","options","index","actionCreators"],"mappings":"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","sourcesContent":["import { nanoid } from 'nanoid/non-secure';\n\nimport TabRouter, {\n TabActionHelpers,\n TabActions,\n TabActionType,\n TabNavigationState,\n TabRouterOptions,\n} from './TabRouter';\nimport type {\n CommonNavigationAction,\n ParamListBase,\n PartialState,\n Router,\n} from './types';\nexport type DrawerStatus = 'open' | 'closed';\n\nexport type DrawerActionType =\n | TabActionType\n | {\n type: 'OPEN_DRAWER' | 'CLOSE_DRAWER' | 'TOGGLE_DRAWER';\n source?: string;\n target?: string;\n };\n\nexport type DrawerRouterOptions = TabRouterOptions & {\n defaultStatus?: DrawerStatus;\n};\n\nexport type DrawerNavigationState<ParamList extends ParamListBase> = Omit<\n TabNavigationState<ParamList>,\n 'type' | 'history'\n> & {\n /**\n * Type of the router, in this case, it's drawer.\n */\n type: 'drawer';\n /**\n * Default status of the drawer.\n */\n default: DrawerStatus;\n /**\n * List of previously visited route keys and drawer open status.\n */\n history: (\n | { type: 'route'; key: string }\n | { type: 'drawer'; status: DrawerStatus }\n )[];\n};\n\nexport type DrawerActionHelpers<ParamList extends ParamListBase> =\n TabActionHelpers<ParamList> & {\n /**\n * Open the drawer sidebar.\n */\n openDrawer(): void;\n\n /**\n * Close the drawer sidebar.\n */\n closeDrawer(): void;\n\n /**\n * Open the drawer sidebar if closed, or close if opened.\n */\n toggleDrawer(): void;\n };\n\nexport const DrawerActions = {\n ...TabActions,\n openDrawer(): DrawerActionType {\n return { type: 'OPEN_DRAWER' };\n },\n closeDrawer(): DrawerActionType {\n return { type: 'CLOSE_DRAWER' };\n },\n toggleDrawer(): DrawerActionType {\n return { type: 'TOGGLE_DRAWER' };\n },\n};\n\nexport default function DrawerRouter({\n defaultStatus = 'closed',\n ...rest\n}: DrawerRouterOptions): Router<\n DrawerNavigationState<ParamListBase>,\n DrawerActionType | CommonNavigationAction\n> {\n const router = TabRouter(rest) as unknown as Router<\n DrawerNavigationState<ParamListBase>,\n TabActionType | CommonNavigationAction\n >;\n\n const isDrawerInHistory = (\n state:\n | DrawerNavigationState<ParamListBase>\n | PartialState<DrawerNavigationState<ParamListBase>>\n ) => Boolean(state.history?.some((it) => it.type === 'drawer'));\n\n const addDrawerToHistory = (\n state: DrawerNavigationState<ParamListBase>\n ): DrawerNavigationState<ParamListBase> => {\n if (isDrawerInHistory(state)) {\n return state;\n }\n\n return {\n ...state,\n history: [\n ...state.history,\n {\n type: 'drawer',\n status: defaultStatus === 'open' ? 'closed' : 'open',\n },\n ],\n };\n };\n\n const removeDrawerFromHistory = (\n state: DrawerNavigationState<ParamListBase>\n ): DrawerNavigationState<ParamListBase> => {\n if (!isDrawerInHistory(state)) {\n return state;\n }\n\n return {\n ...state,\n history: state.history.filter((it) => it.type !== 'drawer'),\n };\n };\n\n const openDrawer = (\n state: DrawerNavigationState<ParamListBase>\n ): DrawerNavigationState<ParamListBase> => {\n if (defaultStatus === 'open') {\n return removeDrawerFromHistory(state);\n }\n\n return addDrawerToHistory(state);\n };\n\n const closeDrawer = (\n state: DrawerNavigationState<ParamListBase>\n ): DrawerNavigationState<ParamListBase> => {\n if (defaultStatus === 'open') {\n return addDrawerToHistory(state);\n }\n\n return removeDrawerFromHistory(state);\n };\n\n return {\n ...router,\n\n type: 'drawer',\n\n getInitialState({ routeNames, routeParamList, routeGetIdList }) {\n const state = router.getInitialState({\n routeNames,\n routeParamList,\n routeGetIdList,\n });\n\n return {\n ...state,\n default: defaultStatus,\n stale: false,\n type: 'drawer',\n key: `drawer-${nanoid()}`,\n };\n },\n\n getRehydratedState(\n partialState,\n { routeNames, routeParamList, routeGetIdList }\n ) {\n if (partialState.stale === false) {\n return partialState;\n }\n\n let state = router.getRehydratedState(partialState, {\n routeNames,\n routeParamList,\n routeGetIdList,\n });\n\n if (isDrawerInHistory(partialState)) {\n // Re-sync the drawer entry in history to correct it if it was wrong\n state = removeDrawerFromHistory(state);\n state = addDrawerToHistory(state);\n }\n\n return {\n ...state,\n default: defaultStatus,\n type: 'drawer',\n key: `drawer-${nanoid()}`,\n };\n },\n\n getStateForRouteFocus(state, key) {\n const result = router.getStateForRouteFocus(state, key);\n\n return closeDrawer(result);\n },\n\n getStateForAction(state, action, options) {\n switch (action.type) {\n case 'OPEN_DRAWER':\n return openDrawer(state);\n\n case 'CLOSE_DRAWER':\n return closeDrawer(state);\n\n case 'TOGGLE_DRAWER':\n if (isDrawerInHistory(state)) {\n return removeDrawerFromHistory(state);\n }\n\n return addDrawerToHistory(state);\n\n case 'JUMP_TO':\n case 'NAVIGATE': {\n const result = router.getStateForAction(state, action, options);\n\n if (result != null && result.index !== state.index) {\n return closeDrawer(result as DrawerNavigationState<ParamListBase>);\n }\n\n return result;\n }\n\n case 'GO_BACK':\n if (isDrawerInHistory(state)) {\n return removeDrawerFromHistory(state);\n }\n\n return router.getStateForAction(state, action, options);\n\n default:\n return router.getStateForAction(state, action, options);\n }\n },\n\n actionCreators: DrawerActions,\n };\n}\n"]}
1
+ {"version":3,"names":["DrawerActions","TabActions","openDrawer","type","closeDrawer","toggleDrawer","DrawerRouter","defaultStatus","rest","router","TabRouter","isDrawerInHistory","state","Boolean","history","some","it","addDrawerToHistory","status","removeDrawerFromHistory","filter","getInitialState","routeNames","routeParamList","routeGetIdList","default","stale","key","nanoid","getRehydratedState","partialState","getStateForRouteFocus","result","getStateForAction","action","options","index","actionCreators"],"sources":["DrawerRouter.tsx"],"sourcesContent":["import { nanoid } from 'nanoid/non-secure';\n\nimport TabRouter, {\n TabActionHelpers,\n TabActions,\n TabActionType,\n TabNavigationState,\n TabRouterOptions,\n} from './TabRouter';\nimport type {\n CommonNavigationAction,\n ParamListBase,\n PartialState,\n Router,\n} from './types';\nexport type DrawerStatus = 'open' | 'closed';\n\nexport type DrawerActionType =\n | TabActionType\n | {\n type: 'OPEN_DRAWER' | 'CLOSE_DRAWER' | 'TOGGLE_DRAWER';\n source?: string;\n target?: string;\n };\n\nexport type DrawerRouterOptions = TabRouterOptions & {\n defaultStatus?: DrawerStatus;\n};\n\nexport type DrawerNavigationState<ParamList extends ParamListBase> = Omit<\n TabNavigationState<ParamList>,\n 'type' | 'history'\n> & {\n /**\n * Type of the router, in this case, it's drawer.\n */\n type: 'drawer';\n /**\n * Default status of the drawer.\n */\n default: DrawerStatus;\n /**\n * List of previously visited route keys and drawer open status.\n */\n history: (\n | { type: 'route'; key: string }\n | { type: 'drawer'; status: DrawerStatus }\n )[];\n};\n\nexport type DrawerActionHelpers<ParamList extends ParamListBase> =\n TabActionHelpers<ParamList> & {\n /**\n * Open the drawer sidebar.\n */\n openDrawer(): void;\n\n /**\n * Close the drawer sidebar.\n */\n closeDrawer(): void;\n\n /**\n * Open the drawer sidebar if closed, or close if opened.\n */\n toggleDrawer(): void;\n };\n\nexport const DrawerActions = {\n ...TabActions,\n openDrawer(): DrawerActionType {\n return { type: 'OPEN_DRAWER' };\n },\n closeDrawer(): DrawerActionType {\n return { type: 'CLOSE_DRAWER' };\n },\n toggleDrawer(): DrawerActionType {\n return { type: 'TOGGLE_DRAWER' };\n },\n};\n\nexport default function DrawerRouter({\n defaultStatus = 'closed',\n ...rest\n}: DrawerRouterOptions): Router<\n DrawerNavigationState<ParamListBase>,\n DrawerActionType | CommonNavigationAction\n> {\n const router = TabRouter(rest) as unknown as Router<\n DrawerNavigationState<ParamListBase>,\n TabActionType | CommonNavigationAction\n >;\n\n const isDrawerInHistory = (\n state:\n | DrawerNavigationState<ParamListBase>\n | PartialState<DrawerNavigationState<ParamListBase>>\n ) => Boolean(state.history?.some((it) => it.type === 'drawer'));\n\n const addDrawerToHistory = (\n state: DrawerNavigationState<ParamListBase>\n ): DrawerNavigationState<ParamListBase> => {\n if (isDrawerInHistory(state)) {\n return state;\n }\n\n return {\n ...state,\n history: [\n ...state.history,\n {\n type: 'drawer',\n status: defaultStatus === 'open' ? 'closed' : 'open',\n },\n ],\n };\n };\n\n const removeDrawerFromHistory = (\n state: DrawerNavigationState<ParamListBase>\n ): DrawerNavigationState<ParamListBase> => {\n if (!isDrawerInHistory(state)) {\n return state;\n }\n\n return {\n ...state,\n history: state.history.filter((it) => it.type !== 'drawer'),\n };\n };\n\n const openDrawer = (\n state: DrawerNavigationState<ParamListBase>\n ): DrawerNavigationState<ParamListBase> => {\n if (defaultStatus === 'open') {\n return removeDrawerFromHistory(state);\n }\n\n return addDrawerToHistory(state);\n };\n\n const closeDrawer = (\n state: DrawerNavigationState<ParamListBase>\n ): DrawerNavigationState<ParamListBase> => {\n if (defaultStatus === 'open') {\n return addDrawerToHistory(state);\n }\n\n return removeDrawerFromHistory(state);\n };\n\n return {\n ...router,\n\n type: 'drawer',\n\n getInitialState({ routeNames, routeParamList, routeGetIdList }) {\n const state = router.getInitialState({\n routeNames,\n routeParamList,\n routeGetIdList,\n });\n\n return {\n ...state,\n default: defaultStatus,\n stale: false,\n type: 'drawer',\n key: `drawer-${nanoid()}`,\n };\n },\n\n getRehydratedState(\n partialState,\n { routeNames, routeParamList, routeGetIdList }\n ) {\n if (partialState.stale === false) {\n return partialState;\n }\n\n let state = router.getRehydratedState(partialState, {\n routeNames,\n routeParamList,\n routeGetIdList,\n });\n\n if (isDrawerInHistory(partialState)) {\n // Re-sync the drawer entry in history to correct it if it was wrong\n state = removeDrawerFromHistory(state);\n state = addDrawerToHistory(state);\n }\n\n return {\n ...state,\n default: defaultStatus,\n type: 'drawer',\n key: `drawer-${nanoid()}`,\n };\n },\n\n getStateForRouteFocus(state, key) {\n const result = router.getStateForRouteFocus(state, key);\n\n return closeDrawer(result);\n },\n\n getStateForAction(state, action, options) {\n switch (action.type) {\n case 'OPEN_DRAWER':\n return openDrawer(state);\n\n case 'CLOSE_DRAWER':\n return closeDrawer(state);\n\n case 'TOGGLE_DRAWER':\n if (isDrawerInHistory(state)) {\n return removeDrawerFromHistory(state);\n }\n\n return addDrawerToHistory(state);\n\n case 'JUMP_TO':\n case 'NAVIGATE': {\n const result = router.getStateForAction(state, action, options);\n\n if (result != null && result.index !== state.index) {\n return closeDrawer(result as DrawerNavigationState<ParamListBase>);\n }\n\n return result;\n }\n\n case 'GO_BACK':\n if (isDrawerInHistory(state)) {\n return removeDrawerFromHistory(state);\n }\n\n return router.getStateForAction(state, action, options);\n\n default:\n return router.getStateForAction(state, action, options);\n }\n },\n\n actionCreators: DrawerActions,\n };\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["StackRouter.tsx"],"names":["StackActions","replace","name","params","type","payload","push","pop","count","popToTop","StackRouter","options","router","BaseRouter","getInitialState","routeNames","routeParamList","initialRouteName","undefined","includes","stale","key","index","routes","getRehydratedState","partialState","state","filter","route","map","length","getStateForRouteNamesChange","routeKeyChanges","Math","min","getStateForRouteFocus","findIndex","r","slice","getStateForAction","action","target","source","i","getId","routeGetIdList","id","find","max","concat","path","merge","actionCreators"],"mappings":"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","sourcesContent":["import { nanoid } from 'nanoid/non-secure';\n\nimport BaseRouter from './BaseRouter';\nimport type {\n CommonNavigationAction,\n DefaultRouterOptions,\n NavigationState,\n ParamListBase,\n Route,\n Router,\n} from './types';\n\nexport type StackActionType =\n | {\n type: 'REPLACE';\n payload: { name: string; key?: string | undefined; params?: object };\n source?: string;\n target?: string;\n }\n | {\n type: 'PUSH';\n payload: { name: string; params?: object };\n source?: string;\n target?: string;\n }\n | {\n type: 'POP';\n payload: { count: number };\n source?: string;\n target?: string;\n }\n | {\n type: 'POP_TO_TOP';\n source?: string;\n target?: string;\n };\n\nexport type StackRouterOptions = DefaultRouterOptions;\n\nexport type StackNavigationState<ParamList extends ParamListBase> =\n NavigationState<ParamList> & {\n /**\n * Type of the router, in this case, it's stack.\n */\n type: 'stack';\n };\n\nexport type StackActionHelpers<ParamList extends ParamListBase> = {\n /**\n * Replace the current route with a new one.\n *\n * @param name Route name of the new route.\n * @param [params] Params object for the new route.\n */\n replace<RouteName extends keyof ParamList>(\n ...args: undefined extends ParamList[RouteName]\n ? [screen: RouteName] | [screen: RouteName, params: ParamList[RouteName]]\n : [screen: RouteName, params: ParamList[RouteName]]\n ): void;\n\n /**\n * Push a new screen onto the stack.\n *\n * @param name Name of the route for the tab.\n * @param [params] Params object for the route.\n */\n push<RouteName extends keyof ParamList>(\n ...args: undefined extends ParamList[RouteName]\n ? [screen: RouteName] | [screen: RouteName, params: ParamList[RouteName]]\n : [screen: RouteName, params: ParamList[RouteName]]\n ): void;\n\n /**\n * Pop a screen from the stack.\n */\n pop(count?: number): void;\n\n /**\n * Pop to the first route in the stack, dismissing all other screens.\n */\n popToTop(): void;\n};\n\nexport const StackActions = {\n replace(name: string, params?: object): StackActionType {\n return { type: 'REPLACE', payload: { name, params } };\n },\n push(name: string, params?: object): StackActionType {\n return { type: 'PUSH', payload: { name, params } };\n },\n pop(count: number = 1): StackActionType {\n return { type: 'POP', payload: { count } };\n },\n popToTop(): StackActionType {\n return { type: 'POP_TO_TOP' };\n },\n};\n\nexport default function StackRouter(options: StackRouterOptions) {\n const router: Router<\n StackNavigationState<ParamListBase>,\n CommonNavigationAction | StackActionType\n > = {\n ...BaseRouter,\n\n type: 'stack',\n\n getInitialState({ routeNames, routeParamList }) {\n const initialRouteName =\n options.initialRouteName !== undefined &&\n routeNames.includes(options.initialRouteName)\n ? options.initialRouteName\n : routeNames[0];\n\n return {\n stale: false,\n type: 'stack',\n key: `stack-${nanoid()}`,\n index: 0,\n routeNames,\n routes: [\n {\n key: `${initialRouteName}-${nanoid()}`,\n name: initialRouteName,\n params: routeParamList[initialRouteName],\n },\n ],\n };\n },\n\n getRehydratedState(partialState, { routeNames, routeParamList }) {\n let state = partialState;\n\n if (state.stale === false) {\n return state;\n }\n\n const routes = state.routes\n .filter((route) => routeNames.includes(route.name))\n .map(\n (route) =>\n ({\n ...route,\n key: route.key || `${route.name}-${nanoid()}`,\n params:\n routeParamList[route.name] !== undefined\n ? {\n ...routeParamList[route.name],\n ...route.params,\n }\n : route.params,\n } as Route<string>)\n );\n\n if (routes.length === 0) {\n const initialRouteName =\n options.initialRouteName !== undefined\n ? options.initialRouteName\n : routeNames[0];\n\n routes.push({\n key: `${initialRouteName}-${nanoid()}`,\n name: initialRouteName,\n params: routeParamList[initialRouteName],\n });\n }\n\n return {\n stale: false,\n type: 'stack',\n key: `stack-${nanoid()}`,\n index: routes.length - 1,\n routeNames,\n routes,\n };\n },\n\n getStateForRouteNamesChange(\n state,\n { routeNames, routeParamList, routeKeyChanges }\n ) {\n const routes = state.routes.filter(\n (route) =>\n routeNames.includes(route.name) &&\n !routeKeyChanges.includes(route.name)\n );\n\n if (routes.length === 0) {\n const initialRouteName =\n options.initialRouteName !== undefined &&\n routeNames.includes(options.initialRouteName)\n ? options.initialRouteName\n : routeNames[0];\n\n routes.push({\n key: `${initialRouteName}-${nanoid()}`,\n name: initialRouteName,\n params: routeParamList[initialRouteName],\n });\n }\n\n return {\n ...state,\n routeNames,\n routes,\n index: Math.min(state.index, routes.length - 1),\n };\n },\n\n getStateForRouteFocus(state, key) {\n const index = state.routes.findIndex((r) => r.key === key);\n\n if (index === -1 || index === state.index) {\n return state;\n }\n\n return {\n ...state,\n index,\n routes: state.routes.slice(0, index + 1),\n };\n },\n\n getStateForAction(state, action, options) {\n const { routeParamList } = options;\n\n switch (action.type) {\n case 'REPLACE': {\n const index =\n action.target === state.key && action.source\n ? state.routes.findIndex((r) => r.key === action.source)\n : state.index;\n\n if (index === -1) {\n return null;\n }\n\n const { name, key, params } = action.payload;\n\n if (!state.routeNames.includes(name)) {\n return null;\n }\n\n return {\n ...state,\n routes: state.routes.map((route, i) =>\n i === index\n ? {\n key: key !== undefined ? key : `${name}-${nanoid()}`,\n name,\n params:\n routeParamList[name] !== undefined\n ? {\n ...routeParamList[name],\n ...params,\n }\n : params,\n }\n : route\n ),\n };\n }\n\n case 'PUSH':\n if (state.routeNames.includes(action.payload.name)) {\n const getId = options.routeGetIdList[action.payload.name];\n const id = getId?.({ params: action.payload.params });\n\n const route = id\n ? state.routes.find(\n (route) =>\n route.name === action.payload.name &&\n id === getId?.({ params: route.params })\n )\n : undefined;\n\n let routes: Route<string>[];\n\n if (route) {\n routes = state.routes.filter((r) => r.key !== route.key);\n routes.push({\n ...route,\n params:\n routeParamList[action.payload.name] !== undefined\n ? {\n ...routeParamList[action.payload.name],\n ...action.payload.params,\n }\n : action.payload.params,\n });\n } else {\n routes = [\n ...state.routes,\n {\n key: `${action.payload.name}-${nanoid()}`,\n name: action.payload.name,\n params:\n routeParamList[action.payload.name] !== undefined\n ? {\n ...routeParamList[action.payload.name],\n ...action.payload.params,\n }\n : action.payload.params,\n },\n ];\n }\n\n return {\n ...state,\n index: routes.length - 1,\n routes,\n };\n }\n\n return null;\n\n case 'POP': {\n const index =\n action.target === state.key && action.source\n ? state.routes.findIndex((r) => r.key === action.source)\n : state.index;\n\n if (index > 0) {\n const count = Math.max(index - action.payload.count + 1, 1);\n const routes = state.routes\n .slice(0, count)\n .concat(state.routes.slice(index + 1));\n\n return {\n ...state,\n index: routes.length - 1,\n routes,\n };\n }\n\n return null;\n }\n\n case 'POP_TO_TOP':\n return router.getStateForAction(\n state,\n {\n type: 'POP',\n payload: { count: state.routes.length - 1 },\n },\n options\n );\n\n case 'NAVIGATE':\n if (\n action.payload.name !== undefined &&\n !state.routeNames.includes(action.payload.name)\n ) {\n return null;\n }\n\n if (action.payload.key || action.payload.name) {\n // If the route already exists, navigate to that\n let index = -1;\n\n const getId =\n // `getId` and `key` can't be used together\n action.payload.key === undefined &&\n action.payload.name !== undefined\n ? options.routeGetIdList[action.payload.name]\n : undefined;\n const id = getId?.({ params: action.payload.params });\n\n if (id) {\n index = state.routes.findIndex(\n (route) =>\n route.name === action.payload.name &&\n id === getId?.({ params: route.params })\n );\n } else if (\n (state.routes[state.index].name === action.payload.name &&\n action.payload.key === undefined) ||\n state.routes[state.index].key === action.payload.key\n ) {\n index = state.index;\n } else {\n for (let i = state.routes.length - 1; i >= 0; i--) {\n if (\n (state.routes[i].name === action.payload.name &&\n action.payload.key === undefined) ||\n state.routes[i].key === action.payload.key\n ) {\n index = i;\n break;\n }\n }\n }\n\n if (\n index === -1 &&\n action.payload.key &&\n action.payload.name === undefined\n ) {\n return null;\n }\n\n if (index === -1 && action.payload.name !== undefined) {\n const routes = [\n ...state.routes,\n {\n key:\n action.payload.key ?? `${action.payload.name}-${nanoid()}`,\n name: action.payload.name,\n path: action.payload.path,\n params:\n routeParamList[action.payload.name] !== undefined\n ? {\n ...routeParamList[action.payload.name],\n ...action.payload.params,\n }\n : action.payload.params,\n },\n ];\n\n return {\n ...state,\n routes,\n index: routes.length - 1,\n };\n }\n\n const route = state.routes[index];\n\n let params;\n\n if (action.payload.merge) {\n params =\n action.payload.params !== undefined ||\n routeParamList[route.name] !== undefined\n ? {\n ...routeParamList[route.name],\n ...route.params,\n ...action.payload.params,\n }\n : route.params;\n } else {\n params =\n routeParamList[route.name] !== undefined\n ? {\n ...routeParamList[route.name],\n ...action.payload.params,\n }\n : action.payload.params;\n }\n\n return {\n ...state,\n index,\n routes: [\n ...state.routes.slice(0, index),\n params !== route.params ||\n (action.payload.path && action.payload.path !== route.path)\n ? {\n ...route,\n path: action.payload.path ?? route.path,\n params,\n }\n : state.routes[index],\n ],\n };\n }\n\n return null;\n\n case 'GO_BACK':\n if (state.index > 0) {\n return router.getStateForAction(\n state,\n {\n type: 'POP',\n payload: { count: 1 },\n target: action.target,\n source: action.source,\n },\n options\n );\n }\n\n return null;\n\n default:\n return BaseRouter.getStateForAction(state, action);\n }\n },\n\n actionCreators: StackActions,\n };\n\n return router;\n}\n"]}
1
+ {"version":3,"names":["StackActions","replace","name","params","type","payload","push","pop","count","popToTop","StackRouter","options","router","BaseRouter","getInitialState","routeNames","routeParamList","initialRouteName","undefined","includes","stale","key","nanoid","index","routes","getRehydratedState","partialState","state","filter","route","map","length","getStateForRouteNamesChange","routeKeyChanges","Math","min","getStateForRouteFocus","findIndex","r","slice","getStateForAction","action","target","source","i","getId","routeGetIdList","id","find","max","concat","path","merge","actionCreators"],"sources":["StackRouter.tsx"],"sourcesContent":["import { nanoid } from 'nanoid/non-secure';\n\nimport BaseRouter from './BaseRouter';\nimport type {\n CommonNavigationAction,\n DefaultRouterOptions,\n NavigationState,\n ParamListBase,\n Route,\n Router,\n} from './types';\n\nexport type StackActionType =\n | {\n type: 'REPLACE';\n payload: { name: string; key?: string | undefined; params?: object };\n source?: string;\n target?: string;\n }\n | {\n type: 'PUSH';\n payload: { name: string; params?: object };\n source?: string;\n target?: string;\n }\n | {\n type: 'POP';\n payload: { count: number };\n source?: string;\n target?: string;\n }\n | {\n type: 'POP_TO_TOP';\n source?: string;\n target?: string;\n };\n\nexport type StackRouterOptions = DefaultRouterOptions;\n\nexport type StackNavigationState<ParamList extends ParamListBase> =\n NavigationState<ParamList> & {\n /**\n * Type of the router, in this case, it's stack.\n */\n type: 'stack';\n };\n\nexport type StackActionHelpers<ParamList extends ParamListBase> = {\n /**\n * Replace the current route with a new one.\n *\n * @param name Route name of the new route.\n * @param [params] Params object for the new route.\n */\n replace<RouteName extends keyof ParamList>(\n ...args: undefined extends ParamList[RouteName]\n ? [screen: RouteName] | [screen: RouteName, params: ParamList[RouteName]]\n : [screen: RouteName, params: ParamList[RouteName]]\n ): void;\n\n /**\n * Push a new screen onto the stack.\n *\n * @param name Name of the route for the tab.\n * @param [params] Params object for the route.\n */\n push<RouteName extends keyof ParamList>(\n ...args: undefined extends ParamList[RouteName]\n ? [screen: RouteName] | [screen: RouteName, params: ParamList[RouteName]]\n : [screen: RouteName, params: ParamList[RouteName]]\n ): void;\n\n /**\n * Pop a screen from the stack.\n */\n pop(count?: number): void;\n\n /**\n * Pop to the first route in the stack, dismissing all other screens.\n */\n popToTop(): void;\n};\n\nexport const StackActions = {\n replace(name: string, params?: object): StackActionType {\n return { type: 'REPLACE', payload: { name, params } };\n },\n push(name: string, params?: object): StackActionType {\n return { type: 'PUSH', payload: { name, params } };\n },\n pop(count: number = 1): StackActionType {\n return { type: 'POP', payload: { count } };\n },\n popToTop(): StackActionType {\n return { type: 'POP_TO_TOP' };\n },\n};\n\nexport default function StackRouter(options: StackRouterOptions) {\n const router: Router<\n StackNavigationState<ParamListBase>,\n CommonNavigationAction | StackActionType\n > = {\n ...BaseRouter,\n\n type: 'stack',\n\n getInitialState({ routeNames, routeParamList }) {\n const initialRouteName =\n options.initialRouteName !== undefined &&\n routeNames.includes(options.initialRouteName)\n ? options.initialRouteName\n : routeNames[0];\n\n return {\n stale: false,\n type: 'stack',\n key: `stack-${nanoid()}`,\n index: 0,\n routeNames,\n routes: [\n {\n key: `${initialRouteName}-${nanoid()}`,\n name: initialRouteName,\n params: routeParamList[initialRouteName],\n },\n ],\n };\n },\n\n getRehydratedState(partialState, { routeNames, routeParamList }) {\n let state = partialState;\n\n if (state.stale === false) {\n return state;\n }\n\n const routes = state.routes\n .filter((route) => routeNames.includes(route.name))\n .map(\n (route) =>\n ({\n ...route,\n key: route.key || `${route.name}-${nanoid()}`,\n params:\n routeParamList[route.name] !== undefined\n ? {\n ...routeParamList[route.name],\n ...route.params,\n }\n : route.params,\n } as Route<string>)\n );\n\n if (routes.length === 0) {\n const initialRouteName =\n options.initialRouteName !== undefined\n ? options.initialRouteName\n : routeNames[0];\n\n routes.push({\n key: `${initialRouteName}-${nanoid()}`,\n name: initialRouteName,\n params: routeParamList[initialRouteName],\n });\n }\n\n return {\n stale: false,\n type: 'stack',\n key: `stack-${nanoid()}`,\n index: routes.length - 1,\n routeNames,\n routes,\n };\n },\n\n getStateForRouteNamesChange(\n state,\n { routeNames, routeParamList, routeKeyChanges }\n ) {\n const routes = state.routes.filter(\n (route) =>\n routeNames.includes(route.name) &&\n !routeKeyChanges.includes(route.name)\n );\n\n if (routes.length === 0) {\n const initialRouteName =\n options.initialRouteName !== undefined &&\n routeNames.includes(options.initialRouteName)\n ? options.initialRouteName\n : routeNames[0];\n\n routes.push({\n key: `${initialRouteName}-${nanoid()}`,\n name: initialRouteName,\n params: routeParamList[initialRouteName],\n });\n }\n\n return {\n ...state,\n routeNames,\n routes,\n index: Math.min(state.index, routes.length - 1),\n };\n },\n\n getStateForRouteFocus(state, key) {\n const index = state.routes.findIndex((r) => r.key === key);\n\n if (index === -1 || index === state.index) {\n return state;\n }\n\n return {\n ...state,\n index,\n routes: state.routes.slice(0, index + 1),\n };\n },\n\n getStateForAction(state, action, options) {\n const { routeParamList } = options;\n\n switch (action.type) {\n case 'REPLACE': {\n const index =\n action.target === state.key && action.source\n ? state.routes.findIndex((r) => r.key === action.source)\n : state.index;\n\n if (index === -1) {\n return null;\n }\n\n const { name, key, params } = action.payload;\n\n if (!state.routeNames.includes(name)) {\n return null;\n }\n\n return {\n ...state,\n routes: state.routes.map((route, i) =>\n i === index\n ? {\n key: key !== undefined ? key : `${name}-${nanoid()}`,\n name,\n params:\n routeParamList[name] !== undefined\n ? {\n ...routeParamList[name],\n ...params,\n }\n : params,\n }\n : route\n ),\n };\n }\n\n case 'PUSH':\n if (state.routeNames.includes(action.payload.name)) {\n const getId = options.routeGetIdList[action.payload.name];\n const id = getId?.({ params: action.payload.params });\n\n const route = id\n ? state.routes.find(\n (route) =>\n route.name === action.payload.name &&\n id === getId?.({ params: route.params })\n )\n : undefined;\n\n let routes: Route<string>[];\n\n if (route) {\n routes = state.routes.filter((r) => r.key !== route.key);\n routes.push({\n ...route,\n params:\n routeParamList[action.payload.name] !== undefined\n ? {\n ...routeParamList[action.payload.name],\n ...action.payload.params,\n }\n : action.payload.params,\n });\n } else {\n routes = [\n ...state.routes,\n {\n key: `${action.payload.name}-${nanoid()}`,\n name: action.payload.name,\n params:\n routeParamList[action.payload.name] !== undefined\n ? {\n ...routeParamList[action.payload.name],\n ...action.payload.params,\n }\n : action.payload.params,\n },\n ];\n }\n\n return {\n ...state,\n index: routes.length - 1,\n routes,\n };\n }\n\n return null;\n\n case 'POP': {\n const index =\n action.target === state.key && action.source\n ? state.routes.findIndex((r) => r.key === action.source)\n : state.index;\n\n if (index > 0) {\n const count = Math.max(index - action.payload.count + 1, 1);\n const routes = state.routes\n .slice(0, count)\n .concat(state.routes.slice(index + 1));\n\n return {\n ...state,\n index: routes.length - 1,\n routes,\n };\n }\n\n return null;\n }\n\n case 'POP_TO_TOP':\n return router.getStateForAction(\n state,\n {\n type: 'POP',\n payload: { count: state.routes.length - 1 },\n },\n options\n );\n\n case 'NAVIGATE':\n if (\n action.payload.name !== undefined &&\n !state.routeNames.includes(action.payload.name)\n ) {\n return null;\n }\n\n if (action.payload.key || action.payload.name) {\n // If the route already exists, navigate to that\n let index = -1;\n\n const getId =\n // `getId` and `key` can't be used together\n action.payload.key === undefined &&\n action.payload.name !== undefined\n ? options.routeGetIdList[action.payload.name]\n : undefined;\n const id = getId?.({ params: action.payload.params });\n\n if (id) {\n index = state.routes.findIndex(\n (route) =>\n route.name === action.payload.name &&\n id === getId?.({ params: route.params })\n );\n } else if (\n (state.routes[state.index].name === action.payload.name &&\n action.payload.key === undefined) ||\n state.routes[state.index].key === action.payload.key\n ) {\n index = state.index;\n } else {\n for (let i = state.routes.length - 1; i >= 0; i--) {\n if (\n (state.routes[i].name === action.payload.name &&\n action.payload.key === undefined) ||\n state.routes[i].key === action.payload.key\n ) {\n index = i;\n break;\n }\n }\n }\n\n if (\n index === -1 &&\n action.payload.key &&\n action.payload.name === undefined\n ) {\n return null;\n }\n\n if (index === -1 && action.payload.name !== undefined) {\n const routes = [\n ...state.routes,\n {\n key:\n action.payload.key ?? `${action.payload.name}-${nanoid()}`,\n name: action.payload.name,\n path: action.payload.path,\n params:\n routeParamList[action.payload.name] !== undefined\n ? {\n ...routeParamList[action.payload.name],\n ...action.payload.params,\n }\n : action.payload.params,\n },\n ];\n\n return {\n ...state,\n routes,\n index: routes.length - 1,\n };\n }\n\n const route = state.routes[index];\n\n let params;\n\n if (action.payload.merge) {\n params =\n action.payload.params !== undefined ||\n routeParamList[route.name] !== undefined\n ? {\n ...routeParamList[route.name],\n ...route.params,\n ...action.payload.params,\n }\n : route.params;\n } else {\n params =\n routeParamList[route.name] !== undefined\n ? {\n ...routeParamList[route.name],\n ...action.payload.params,\n }\n : action.payload.params;\n }\n\n return {\n ...state,\n index,\n routes: [\n ...state.routes.slice(0, index),\n params !== route.params ||\n (action.payload.path && action.payload.path !== route.path)\n ? {\n ...route,\n path: action.payload.path ?? route.path,\n params,\n }\n : state.routes[index],\n ],\n };\n }\n\n return null;\n\n case 'GO_BACK':\n if (state.index > 0) {\n return router.getStateForAction(\n state,\n {\n type: 'POP',\n payload: { count: 1 },\n target: action.target,\n source: action.source,\n },\n options\n );\n }\n\n return null;\n\n default:\n return BaseRouter.getStateForAction(state, action);\n }\n },\n\n actionCreators: StackActions,\n };\n\n return router;\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["TabRouter.tsx"],"names":["TYPE_ROUTE","TabActions","jumpTo","name","params","type","payload","getRouteHistory","routes","index","backBehavior","initialRouteName","history","key","initialRouteIndex","i","unshift","findIndex","route","changeIndex","state","currentKey","filter","it","concat","TabRouter","router","BaseRouter","getInitialState","routeNames","routeParamList","undefined","includes","indexOf","map","stale","getRehydratedState","partialState","find","r","Math","min","max","length","getStateForRouteNamesChange","routeKeyChanges","getStateForRouteFocus","getStateForAction","action","merge","path","previousKey","slice","shouldActionChangeFocus","actionCreators"],"mappings":"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","sourcesContent":["import { nanoid } from 'nanoid/non-secure';\n\nimport BaseRouter from './BaseRouter';\nimport type {\n CommonNavigationAction,\n DefaultRouterOptions,\n NavigationState,\n ParamListBase,\n PartialState,\n Route,\n Router,\n} from './types';\n\nexport type TabActionType = {\n type: 'JUMP_TO';\n payload: { name: string; params?: object };\n source?: string;\n target?: string;\n};\n\nexport type BackBehavior =\n | 'initialRoute'\n | 'firstRoute'\n | 'history'\n | 'order'\n | 'none';\n\nexport type TabRouterOptions = DefaultRouterOptions & {\n backBehavior?: BackBehavior;\n};\n\nexport type TabNavigationState<ParamList extends ParamListBase> = Omit<\n NavigationState<ParamList>,\n 'history'\n> & {\n /**\n * Type of the router, in this case, it's tab.\n */\n type: 'tab';\n /**\n * List of previously visited route keys.\n */\n history: { type: 'route'; key: string }[];\n};\n\nexport type TabActionHelpers<ParamList extends ParamListBase> = {\n /**\n * Jump to an existing tab.\n *\n * @param name Name of the route for the tab.\n * @param [params] Params object for the route.\n */\n jumpTo<RouteName extends Extract<keyof ParamList, string>>(\n ...args: undefined extends ParamList[RouteName]\n ? [screen: RouteName] | [screen: RouteName, params: ParamList[RouteName]]\n : [screen: RouteName, params: ParamList[RouteName]]\n ): void;\n};\n\nconst TYPE_ROUTE = 'route' as const;\n\nexport const TabActions = {\n jumpTo(name: string, params?: object): TabActionType {\n return { type: 'JUMP_TO', payload: { name, params } };\n },\n};\n\nconst getRouteHistory = (\n routes: Route<string>[],\n index: number,\n backBehavior: BackBehavior,\n initialRouteName: string | undefined\n) => {\n const history = [{ type: TYPE_ROUTE, key: routes[index].key }];\n let initialRouteIndex;\n\n switch (backBehavior) {\n case 'order':\n for (let i = index; i > 0; i--) {\n history.unshift({ type: TYPE_ROUTE, key: routes[i - 1].key });\n }\n break;\n case 'firstRoute':\n if (index !== 0) {\n history.unshift({\n type: TYPE_ROUTE,\n key: routes[0].key,\n });\n }\n break;\n case 'initialRoute':\n initialRouteIndex = routes.findIndex(\n (route) => route.name === initialRouteName\n );\n initialRouteIndex = initialRouteIndex === -1 ? 0 : initialRouteIndex;\n\n if (index !== initialRouteIndex) {\n history.unshift({\n type: TYPE_ROUTE,\n key: routes[initialRouteIndex].key,\n });\n }\n break;\n case 'history':\n // The history will fill up on navigation\n break;\n }\n\n return history;\n};\n\nconst changeIndex = (\n state: TabNavigationState<ParamListBase>,\n index: number,\n backBehavior: BackBehavior,\n initialRouteName: string | undefined\n) => {\n let history;\n\n if (backBehavior === 'history') {\n const currentKey = state.routes[index].key;\n\n history = state.history\n .filter((it) => (it.type === 'route' ? it.key !== currentKey : false))\n .concat({ type: TYPE_ROUTE, key: currentKey });\n } else {\n history = getRouteHistory(\n state.routes,\n index,\n backBehavior,\n initialRouteName\n );\n }\n\n return {\n ...state,\n index,\n history,\n };\n};\n\nexport default function TabRouter({\n initialRouteName,\n backBehavior = 'firstRoute',\n}: TabRouterOptions) {\n const router: Router<\n TabNavigationState<ParamListBase>,\n TabActionType | CommonNavigationAction\n > = {\n ...BaseRouter,\n\n type: 'tab',\n\n getInitialState({ routeNames, routeParamList }) {\n const index =\n initialRouteName !== undefined && routeNames.includes(initialRouteName)\n ? routeNames.indexOf(initialRouteName)\n : 0;\n\n const routes = routeNames.map((name) => ({\n name,\n key: `${name}-${nanoid()}`,\n params: routeParamList[name],\n }));\n\n const history = getRouteHistory(\n routes,\n index,\n backBehavior,\n initialRouteName\n );\n\n return {\n stale: false,\n type: 'tab',\n key: `tab-${nanoid()}`,\n index,\n routeNames,\n history,\n routes,\n };\n },\n\n getRehydratedState(partialState, { routeNames, routeParamList }) {\n let state = partialState;\n\n if (state.stale === false) {\n return state;\n }\n\n const routes = routeNames.map((name) => {\n const route = (\n state as PartialState<TabNavigationState<ParamListBase>>\n ).routes.find((r) => r.name === name);\n\n return {\n ...route,\n name,\n key:\n route && route.name === name && route.key\n ? route.key\n : `${name}-${nanoid()}`,\n params:\n routeParamList[name] !== undefined\n ? {\n ...routeParamList[name],\n ...(route ? route.params : undefined),\n }\n : route\n ? route.params\n : undefined,\n } as Route<string>;\n });\n\n const index = Math.min(\n Math.max(routeNames.indexOf(state.routes[state?.index ?? 0]?.name), 0),\n routes.length - 1\n );\n\n const history =\n state.history?.filter((it) => routes.find((r) => r.key === it.key)) ??\n [];\n\n return changeIndex(\n {\n stale: false,\n type: 'tab',\n key: `tab-${nanoid()}`,\n index,\n routeNames,\n history,\n routes,\n },\n index,\n backBehavior,\n initialRouteName\n );\n },\n\n getStateForRouteNamesChange(\n state,\n { routeNames, routeParamList, routeKeyChanges }\n ) {\n const routes = routeNames.map(\n (name) =>\n state.routes.find(\n (r) => r.name === name && !routeKeyChanges.includes(r.name)\n ) || {\n name,\n key: `${name}-${nanoid()}`,\n params: routeParamList[name],\n }\n );\n\n const index = Math.max(\n 0,\n routeNames.indexOf(state.routes[state.index].name)\n );\n\n let history = state.history.filter(\n // Type will always be 'route' for tabs, but could be different in a router extending this (e.g. drawer)\n (it) => it.type !== 'route' || routes.find((r) => r.key === it.key)\n );\n\n if (!history.length) {\n history = getRouteHistory(\n routes,\n index,\n backBehavior,\n initialRouteName\n );\n }\n\n return {\n ...state,\n history,\n routeNames,\n routes,\n index,\n };\n },\n\n getStateForRouteFocus(state, key) {\n const index = state.routes.findIndex((r) => r.key === key);\n\n if (index === -1 || index === state.index) {\n return state;\n }\n\n return changeIndex(state, index, backBehavior, initialRouteName);\n },\n\n getStateForAction(state, action, { routeParamList }) {\n switch (action.type) {\n case 'JUMP_TO':\n case 'NAVIGATE': {\n let index = -1;\n\n if (action.type === 'NAVIGATE' && action.payload.key) {\n index = state.routes.findIndex(\n (route) => route.key === action.payload.key\n );\n } else {\n index = state.routes.findIndex(\n (route) => route.name === action.payload.name\n );\n }\n\n if (index === -1) {\n return null;\n }\n\n return changeIndex(\n {\n ...state,\n routes: state.routes.map((route, i) => {\n if (i !== index) {\n return route;\n }\n\n let params;\n\n if (action.type === 'NAVIGATE' && action.payload.merge) {\n params =\n action.payload.params !== undefined ||\n routeParamList[route.name] !== undefined\n ? {\n ...routeParamList[route.name],\n ...route.params,\n ...action.payload.params,\n }\n : route.params;\n } else {\n params =\n routeParamList[route.name] !== undefined\n ? {\n ...routeParamList[route.name],\n ...action.payload.params,\n }\n : action.payload.params;\n }\n\n const path =\n action.type === 'NAVIGATE' && action.payload.path != null\n ? action.payload.path\n : route.path;\n\n return params !== route.params || path !== route.path\n ? { ...route, path, params }\n : route;\n }),\n },\n index,\n backBehavior,\n initialRouteName\n );\n }\n\n case 'GO_BACK': {\n if (state.history.length === 1) {\n return null;\n }\n\n const previousKey = state.history[state.history.length - 2].key;\n const index = state.routes.findIndex(\n (route) => route.key === previousKey\n );\n\n if (index === -1) {\n return null;\n }\n\n return {\n ...state,\n history: state.history.slice(0, -1),\n index,\n };\n }\n\n default:\n return BaseRouter.getStateForAction(state, action);\n }\n },\n\n shouldActionChangeFocus(action) {\n return action.type === 'NAVIGATE';\n },\n\n actionCreators: TabActions,\n };\n\n return router;\n}\n"]}
1
+ {"version":3,"names":["TYPE_ROUTE","TabActions","jumpTo","name","params","type","payload","getRouteHistory","routes","index","backBehavior","initialRouteName","history","key","initialRouteIndex","i","unshift","findIndex","route","changeIndex","state","currentKey","filter","it","concat","TabRouter","router","BaseRouter","getInitialState","routeNames","routeParamList","undefined","includes","indexOf","map","nanoid","stale","getRehydratedState","partialState","find","r","Math","min","max","length","getStateForRouteNamesChange","routeKeyChanges","getStateForRouteFocus","getStateForAction","action","merge","path","previousKey","slice","shouldActionChangeFocus","actionCreators"],"sources":["TabRouter.tsx"],"sourcesContent":["import { nanoid } from 'nanoid/non-secure';\n\nimport BaseRouter from './BaseRouter';\nimport type {\n CommonNavigationAction,\n DefaultRouterOptions,\n NavigationState,\n ParamListBase,\n PartialState,\n Route,\n Router,\n} from './types';\n\nexport type TabActionType = {\n type: 'JUMP_TO';\n payload: { name: string; params?: object };\n source?: string;\n target?: string;\n};\n\nexport type BackBehavior =\n | 'initialRoute'\n | 'firstRoute'\n | 'history'\n | 'order'\n | 'none';\n\nexport type TabRouterOptions = DefaultRouterOptions & {\n backBehavior?: BackBehavior;\n};\n\nexport type TabNavigationState<ParamList extends ParamListBase> = Omit<\n NavigationState<ParamList>,\n 'history'\n> & {\n /**\n * Type of the router, in this case, it's tab.\n */\n type: 'tab';\n /**\n * List of previously visited route keys.\n */\n history: { type: 'route'; key: string }[];\n};\n\nexport type TabActionHelpers<ParamList extends ParamListBase> = {\n /**\n * Jump to an existing tab.\n *\n * @param name Name of the route for the tab.\n * @param [params] Params object for the route.\n */\n jumpTo<RouteName extends Extract<keyof ParamList, string>>(\n ...args: undefined extends ParamList[RouteName]\n ? [screen: RouteName] | [screen: RouteName, params: ParamList[RouteName]]\n : [screen: RouteName, params: ParamList[RouteName]]\n ): void;\n};\n\nconst TYPE_ROUTE = 'route' as const;\n\nexport const TabActions = {\n jumpTo(name: string, params?: object): TabActionType {\n return { type: 'JUMP_TO', payload: { name, params } };\n },\n};\n\nconst getRouteHistory = (\n routes: Route<string>[],\n index: number,\n backBehavior: BackBehavior,\n initialRouteName: string | undefined\n) => {\n const history = [{ type: TYPE_ROUTE, key: routes[index].key }];\n let initialRouteIndex;\n\n switch (backBehavior) {\n case 'order':\n for (let i = index; i > 0; i--) {\n history.unshift({ type: TYPE_ROUTE, key: routes[i - 1].key });\n }\n break;\n case 'firstRoute':\n if (index !== 0) {\n history.unshift({\n type: TYPE_ROUTE,\n key: routes[0].key,\n });\n }\n break;\n case 'initialRoute':\n initialRouteIndex = routes.findIndex(\n (route) => route.name === initialRouteName\n );\n initialRouteIndex = initialRouteIndex === -1 ? 0 : initialRouteIndex;\n\n if (index !== initialRouteIndex) {\n history.unshift({\n type: TYPE_ROUTE,\n key: routes[initialRouteIndex].key,\n });\n }\n break;\n case 'history':\n // The history will fill up on navigation\n break;\n }\n\n return history;\n};\n\nconst changeIndex = (\n state: TabNavigationState<ParamListBase>,\n index: number,\n backBehavior: BackBehavior,\n initialRouteName: string | undefined\n) => {\n let history;\n\n if (backBehavior === 'history') {\n const currentKey = state.routes[index].key;\n\n history = state.history\n .filter((it) => (it.type === 'route' ? it.key !== currentKey : false))\n .concat({ type: TYPE_ROUTE, key: currentKey });\n } else {\n history = getRouteHistory(\n state.routes,\n index,\n backBehavior,\n initialRouteName\n );\n }\n\n return {\n ...state,\n index,\n history,\n };\n};\n\nexport default function TabRouter({\n initialRouteName,\n backBehavior = 'firstRoute',\n}: TabRouterOptions) {\n const router: Router<\n TabNavigationState<ParamListBase>,\n TabActionType | CommonNavigationAction\n > = {\n ...BaseRouter,\n\n type: 'tab',\n\n getInitialState({ routeNames, routeParamList }) {\n const index =\n initialRouteName !== undefined && routeNames.includes(initialRouteName)\n ? routeNames.indexOf(initialRouteName)\n : 0;\n\n const routes = routeNames.map((name) => ({\n name,\n key: `${name}-${nanoid()}`,\n params: routeParamList[name],\n }));\n\n const history = getRouteHistory(\n routes,\n index,\n backBehavior,\n initialRouteName\n );\n\n return {\n stale: false,\n type: 'tab',\n key: `tab-${nanoid()}`,\n index,\n routeNames,\n history,\n routes,\n };\n },\n\n getRehydratedState(partialState, { routeNames, routeParamList }) {\n let state = partialState;\n\n if (state.stale === false) {\n return state;\n }\n\n const routes = routeNames.map((name) => {\n const route = (\n state as PartialState<TabNavigationState<ParamListBase>>\n ).routes.find((r) => r.name === name);\n\n return {\n ...route,\n name,\n key:\n route && route.name === name && route.key\n ? route.key\n : `${name}-${nanoid()}`,\n params:\n routeParamList[name] !== undefined\n ? {\n ...routeParamList[name],\n ...(route ? route.params : undefined),\n }\n : route\n ? route.params\n : undefined,\n } as Route<string>;\n });\n\n const index = Math.min(\n Math.max(routeNames.indexOf(state.routes[state?.index ?? 0]?.name), 0),\n routes.length - 1\n );\n\n const history =\n state.history?.filter((it) => routes.find((r) => r.key === it.key)) ??\n [];\n\n return changeIndex(\n {\n stale: false,\n type: 'tab',\n key: `tab-${nanoid()}`,\n index,\n routeNames,\n history,\n routes,\n },\n index,\n backBehavior,\n initialRouteName\n );\n },\n\n getStateForRouteNamesChange(\n state,\n { routeNames, routeParamList, routeKeyChanges }\n ) {\n const routes = routeNames.map(\n (name) =>\n state.routes.find(\n (r) => r.name === name && !routeKeyChanges.includes(r.name)\n ) || {\n name,\n key: `${name}-${nanoid()}`,\n params: routeParamList[name],\n }\n );\n\n const index = Math.max(\n 0,\n routeNames.indexOf(state.routes[state.index].name)\n );\n\n let history = state.history.filter(\n // Type will always be 'route' for tabs, but could be different in a router extending this (e.g. drawer)\n (it) => it.type !== 'route' || routes.find((r) => r.key === it.key)\n );\n\n if (!history.length) {\n history = getRouteHistory(\n routes,\n index,\n backBehavior,\n initialRouteName\n );\n }\n\n return {\n ...state,\n history,\n routeNames,\n routes,\n index,\n };\n },\n\n getStateForRouteFocus(state, key) {\n const index = state.routes.findIndex((r) => r.key === key);\n\n if (index === -1 || index === state.index) {\n return state;\n }\n\n return changeIndex(state, index, backBehavior, initialRouteName);\n },\n\n getStateForAction(state, action, { routeParamList }) {\n switch (action.type) {\n case 'JUMP_TO':\n case 'NAVIGATE': {\n let index = -1;\n\n if (action.type === 'NAVIGATE' && action.payload.key) {\n index = state.routes.findIndex(\n (route) => route.key === action.payload.key\n );\n } else {\n index = state.routes.findIndex(\n (route) => route.name === action.payload.name\n );\n }\n\n if (index === -1) {\n return null;\n }\n\n return changeIndex(\n {\n ...state,\n routes: state.routes.map((route, i) => {\n if (i !== index) {\n return route;\n }\n\n let params;\n\n if (action.type === 'NAVIGATE' && action.payload.merge) {\n params =\n action.payload.params !== undefined ||\n routeParamList[route.name] !== undefined\n ? {\n ...routeParamList[route.name],\n ...route.params,\n ...action.payload.params,\n }\n : route.params;\n } else {\n params =\n routeParamList[route.name] !== undefined\n ? {\n ...routeParamList[route.name],\n ...action.payload.params,\n }\n : action.payload.params;\n }\n\n const path =\n action.type === 'NAVIGATE' && action.payload.path != null\n ? action.payload.path\n : route.path;\n\n return params !== route.params || path !== route.path\n ? { ...route, path, params }\n : route;\n }),\n },\n index,\n backBehavior,\n initialRouteName\n );\n }\n\n case 'GO_BACK': {\n if (state.history.length === 1) {\n return null;\n }\n\n const previousKey = state.history[state.history.length - 2].key;\n const index = state.routes.findIndex(\n (route) => route.key === previousKey\n );\n\n if (index === -1) {\n return null;\n }\n\n return {\n ...state,\n history: state.history.slice(0, -1),\n index,\n };\n }\n\n default:\n return BaseRouter.getStateForAction(state, action);\n }\n },\n\n shouldActionChangeFocus(action) {\n return action.type === 'NAVIGATE';\n },\n\n actionCreators: TabActions,\n };\n\n return router;\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;AAIA;;AAQA;;AAOA;;AAOA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA","sourcesContent":["import * as CommonActions from './CommonActions';\n\nexport { CommonActions };\n\nexport { default as BaseRouter } from './BaseRouter';\nexport type {\n DrawerActionHelpers,\n DrawerActionType,\n DrawerNavigationState,\n DrawerRouterOptions,\n DrawerStatus,\n} from './DrawerRouter';\nexport { DrawerActions, default as DrawerRouter } from './DrawerRouter';\nexport type {\n StackActionHelpers,\n StackActionType,\n StackNavigationState,\n StackRouterOptions,\n} from './StackRouter';\nexport { StackActions, default as StackRouter } from './StackRouter';\nexport type {\n TabActionHelpers,\n TabActionType,\n TabNavigationState,\n TabRouterOptions,\n} from './TabRouter';\nexport { TabActions, default as TabRouter } from './TabRouter';\nexport * from './types';\n"]}
1
+ {"version":3,"names":[],"sources":["index.tsx"],"sourcesContent":["import * as CommonActions from './CommonActions';\n\nexport { CommonActions };\n\nexport { default as BaseRouter } from './BaseRouter';\nexport type {\n DrawerActionHelpers,\n DrawerActionType,\n DrawerNavigationState,\n DrawerRouterOptions,\n DrawerStatus,\n} from './DrawerRouter';\nexport { DrawerActions, default as DrawerRouter } from './DrawerRouter';\nexport type {\n StackActionHelpers,\n StackActionType,\n StackNavigationState,\n StackRouterOptions,\n} from './StackRouter';\nexport { StackActions, default as StackRouter } from './StackRouter';\nexport type {\n TabActionHelpers,\n TabActionType,\n TabNavigationState,\n TabRouterOptions,\n} from './TabRouter';\nexport { TabActions, default as TabRouter } from './TabRouter';\nexport * from './types';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;AAIA;;AAQA;;AAOA;;AAOA;;AACA;;AAAA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[]}
1
+ {"version":3,"names":[],"sources":["types.tsx"],"sourcesContent":["import type * as CommonActions from './CommonActions';\n\nexport type CommonNavigationAction = CommonActions.Action;\n\ntype NavigationRoute<\n ParamList extends ParamListBase,\n RouteName extends keyof ParamList\n> = Route<Extract<RouteName, string>, ParamList[RouteName]> & {\n state?: NavigationState | PartialState<NavigationState>;\n};\n\nexport type NavigationState<ParamList extends ParamListBase = ParamListBase> =\n Readonly<{\n /**\n * Unique key for the navigation state.\n */\n key: string;\n /**\n * Index of the currently focused route.\n */\n index: number;\n /**\n * List of valid route names as defined in the screen components.\n */\n routeNames: Extract<keyof ParamList, string>[];\n /**\n * Alternative entries for history.\n */\n history?: unknown[];\n /**\n * List of rendered routes.\n */\n routes: NavigationRoute<ParamList, keyof ParamList>[];\n /**\n * Custom type for the state, whether it's for tab, stack, drawer etc.\n * During rehydration, the state will be discarded if type doesn't match with router type.\n * It can also be used to detect the type of the navigator we're dealing with.\n */\n type: string;\n /**\n * Whether the navigation state has been rehydrated.\n */\n stale: false;\n }>;\n\nexport type InitialState = Readonly<\n Partial<Omit<NavigationState, 'stale' | 'routes'>> & {\n routes: (Omit<Route<string>, 'key'> & { state?: InitialState })[];\n }\n>;\n\nexport type PartialRoute<R extends Route<string>> = Omit<R, 'key'> & {\n key?: string;\n state?: PartialState<NavigationState>;\n};\n\nexport type PartialState<State extends NavigationState> = Partial<\n Omit<State, 'stale' | 'routes'>\n> &\n Readonly<{\n stale?: true;\n routes: PartialRoute<Route<State['routeNames'][number]>>[];\n }>;\n\nexport type Route<\n RouteName extends string,\n Params extends object | undefined = object | undefined\n> = Readonly<{\n /**\n * Unique key for the route.\n */\n key: string;\n /**\n * User-provided name for the route.\n */\n name: RouteName;\n /**\n * Path associated with the route.\n * Usually present when the screen was opened from a deep link.\n */\n path?: string;\n}> &\n (undefined extends Params\n ? Readonly<{\n /**\n * Params for this route\n */\n params?: Readonly<Params>;\n }>\n : Readonly<{\n /**\n * Params for this route\n */\n params: Readonly<Params>;\n }>);\n\nexport type ParamListBase = Record<string, object | undefined>;\n\nexport type NavigationAction = Readonly<{\n /**\n * Type of the action (e.g. `NAVIGATE`)\n */\n type: string;\n /**\n * Additional data for the action\n */\n payload?: object;\n /**\n * Key of the route which dispatched this action.\n */\n source?: string;\n /**\n * Key of the navigator which should handle this action.\n */\n target?: string;\n}>;\n\nexport type ActionCreators<Action extends NavigationAction> = {\n [key: string]: (...args: any) => Action;\n};\n\nexport type DefaultRouterOptions<RouteName extends string = string> = {\n /**\n * Name of the route to focus by on initial render.\n * If not specified, usually the first route is used.\n */\n initialRouteName?: RouteName;\n};\n\nexport type RouterFactory<\n State extends NavigationState,\n Action extends NavigationAction,\n RouterOptions extends DefaultRouterOptions\n> = (options: RouterOptions) => Router<State, Action>;\n\nexport type RouterConfigOptions = {\n routeNames: string[];\n routeParamList: ParamListBase;\n routeGetIdList: Record<\n string,\n | ((options: { params?: Record<string, any> }) => string | undefined)\n | undefined\n >;\n};\n\nexport type Router<\n State extends NavigationState,\n Action extends NavigationAction\n> = {\n /**\n * Type of the router. Should match the `type` property in state.\n * If the type doesn't match, the state will be discarded during rehydration.\n */\n type: State['type'];\n\n /**\n * Initialize the navigation state.\n *\n * @param options.routeNames List of valid route names as defined in the screen components.\n * @param options.routeParamsList Object containing params for each route.\n */\n getInitialState(options: RouterConfigOptions): State;\n\n /**\n * Rehydrate the full navigation state from a given partial state.\n *\n * @param partialState Navigation state to rehydrate from.\n * @param options.routeNames List of valid route names as defined in the screen components.\n * @param options.routeParamsList Object containing params for each route.\n */\n getRehydratedState(\n partialState: PartialState<State> | State,\n options: RouterConfigOptions\n ): State;\n\n /**\n * Take the current state and updated list of route names, and return a new state.\n *\n * @param state State object to update.\n * @param options.routeNames New list of route names.\n * @param options.routeParamsList Object containing params for each route.\n */\n getStateForRouteNamesChange(\n state: State,\n options: RouterConfigOptions & {\n /**\n * List of routes whose key has changed even if they still have the same name.\n * This allows to remove screens declaratively.\n */\n routeKeyChanges: string[];\n }\n ): State;\n\n /**\n * Take the current state and key of a route, and return a new state with the route focused\n *\n * @param state State object to apply the action on.\n * @param key Key of the route to focus.\n */\n getStateForRouteFocus(state: State, key: string): State;\n\n /**\n * Take the current state and action, and return a new state.\n * If the action cannot be handled, return `null`.\n *\n * @param state State object to apply the action on.\n * @param action Action object to apply.\n * @param options.routeNames List of valid route names as defined in the screen components.\n * @param options.routeParamsList Object containing params for each route.\n */\n getStateForAction(\n state: State,\n action: Action,\n options: RouterConfigOptions\n ): State | PartialState<State> | null;\n\n /**\n * Whether the action should also change focus in parent navigator\n *\n * @param action Action object to check.\n */\n shouldActionChangeFocus(action: NavigationAction): boolean;\n\n /**\n * Action creators for the router.\n */\n actionCreators?: ActionCreators<Action>;\n};\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"sources":["BaseRouter.tsx"],"names":["nanoid","BaseRouter","getStateForAction","state","action","type","index","source","routes","findIndex","r","key","map","i","params","payload","nextState","length","some","route","routeNames","includes","name","stale","shouldActionChangeFocus"],"mappings":"AAAA,SAASA,MAAT,QAAuB,mBAAvB;;AAQA;AACA;AACA;AACA;AACA,MAAMC,UAAU,GAAG;AACjBC,EAAAA,iBAAiB,CACfC,KADe,EAEfC,MAFe,EAGqB;AACpC,YAAQA,MAAM,CAACC,IAAf;AACE,WAAK,YAAL;AAAmB;AACjB,gBAAMC,KAAK,GAAGF,MAAM,CAACG,MAAP,GACVJ,KAAK,CAACK,MAAN,CAAaC,SAAb,CAAwBC,CAAD,IAAOA,CAAC,CAACC,GAAF,KAAUP,MAAM,CAACG,MAA/C,CADU,GAEVJ,KAAK,CAACG,KAFV;;AAIA,cAAIA,KAAK,KAAK,CAAC,CAAf,EAAkB;AAChB,mBAAO,IAAP;AACD;;AAED,iBAAO,EACL,GAAGH,KADE;AAELK,YAAAA,MAAM,EAAEL,KAAK,CAACK,MAAN,CAAaI,GAAb,CAAiB,CAACF,CAAD,EAAIG,CAAJ,KACvBA,CAAC,KAAKP,KAAN,GACI,EAAE,GAAGI,CAAL;AAAQI,cAAAA,MAAM,EAAE,EAAE,GAAGJ,CAAC,CAACI,MAAP;AAAe,mBAAGV,MAAM,CAACW,OAAP,CAAeD;AAAjC;AAAhB,aADJ,GAEIJ,CAHE;AAFH,WAAP;AAQD;;AAED,WAAK,OAAL;AAAc;AACZ,gBAAMM,SAAS,GAAGZ,MAAM,CAACW,OAAzB;;AAEA,cACEC,SAAS,CAACR,MAAV,CAAiBS,MAAjB,KAA4B,CAA5B,IACAD,SAAS,CAACR,MAAV,CAAiBU,IAAjB,CACGC,KAAD,IAA6B,CAAChB,KAAK,CAACiB,UAAN,CAAiBC,QAAjB,CAA0BF,KAAK,CAACG,IAAhC,CADhC,CAFF,EAKE;AACA,mBAAO,IAAP;AACD;;AAED,cAAIN,SAAS,CAACO,KAAV,KAAoB,KAAxB,EAA+B;AAC7B,gBACEpB,KAAK,CAACiB,UAAN,CAAiBH,MAAjB,KAA4BD,SAAS,CAACI,UAAV,CAAqBH,MAAjD,IACAD,SAAS,CAACI,UAAV,CAAqBF,IAArB,CACGI,IAAD,IAAU,CAACnB,KAAK,CAACiB,UAAN,CAAiBC,QAAjB,CAA0BC,IAA1B,CADb,CAFF,EAKE;AACA,qBAAO,IAAP;AACD;;AAED,mBAAO,EACL,GAAGN,SADE;AAELR,cAAAA,MAAM,EAAEQ,SAAS,CAACR,MAAV,CAAiBI,GAAjB,CAAsBO,KAAD,IAC3BA,KAAK,CAACR,GAAN,GAAYQ,KAAZ,GAAoB,EAAE,GAAGA,KAAL;AAAYR,gBAAAA,GAAG,EAAG,GAAEQ,KAAK,CAACG,IAAK,IAAGtB,MAAM,EAAG;AAA3C,eADd;AAFH,aAAP;AAMD;;AAED,iBAAOgB,SAAP;AACD;;AAED;AACE,eAAO,IAAP;AAtDJ;AAwDD,GA7DgB;;AA+DjBQ,EAAAA,uBAAuB,CAACpB,MAAD,EAAiC;AACtD,WAAOA,MAAM,CAACC,IAAP,KAAgB,UAAvB;AACD;;AAjEgB,CAAnB;AAoEA,eAAeJ,UAAf","sourcesContent":["import { nanoid } from 'nanoid/non-secure';\n\nimport type {\n CommonNavigationAction,\n NavigationState,\n PartialState,\n} from './types';\n\n/**\n * Base router object that can be used when writing custom routers.\n * This provides few helper methods to handle common actions such as `RESET`.\n */\nconst BaseRouter = {\n getStateForAction<State extends NavigationState>(\n state: State,\n action: CommonNavigationAction\n ): State | PartialState<State> | null {\n switch (action.type) {\n case 'SET_PARAMS': {\n const index = action.source\n ? state.routes.findIndex((r) => r.key === action.source)\n : state.index;\n\n if (index === -1) {\n return null;\n }\n\n return {\n ...state,\n routes: state.routes.map((r, i) =>\n i === index\n ? { ...r, params: { ...r.params, ...action.payload.params } }\n : r\n ),\n };\n }\n\n case 'RESET': {\n const nextState = action.payload as State | PartialState<State>;\n\n if (\n nextState.routes.length === 0 ||\n nextState.routes.some(\n (route: { name: string }) => !state.routeNames.includes(route.name)\n )\n ) {\n return null;\n }\n\n if (nextState.stale === false) {\n if (\n state.routeNames.length !== nextState.routeNames.length ||\n nextState.routeNames.some(\n (name) => !state.routeNames.includes(name)\n )\n ) {\n return null;\n }\n\n return {\n ...nextState,\n routes: nextState.routes.map((route) =>\n route.key ? route : { ...route, key: `${route.name}-${nanoid()}` }\n ),\n };\n }\n\n return nextState;\n }\n\n default:\n return null;\n }\n },\n\n shouldActionChangeFocus(action: CommonNavigationAction) {\n return action.type === 'NAVIGATE';\n },\n};\n\nexport default BaseRouter;\n"]}
1
+ {"version":3,"names":["nanoid","BaseRouter","getStateForAction","state","action","type","index","source","routes","findIndex","r","key","map","i","params","payload","nextState","length","some","route","routeNames","includes","name","stale","shouldActionChangeFocus"],"sources":["BaseRouter.tsx"],"sourcesContent":["import { nanoid } from 'nanoid/non-secure';\n\nimport type {\n CommonNavigationAction,\n NavigationState,\n PartialState,\n} from './types';\n\n/**\n * Base router object that can be used when writing custom routers.\n * This provides few helper methods to handle common actions such as `RESET`.\n */\nconst BaseRouter = {\n getStateForAction<State extends NavigationState>(\n state: State,\n action: CommonNavigationAction\n ): State | PartialState<State> | null {\n switch (action.type) {\n case 'SET_PARAMS': {\n const index = action.source\n ? state.routes.findIndex((r) => r.key === action.source)\n : state.index;\n\n if (index === -1) {\n return null;\n }\n\n return {\n ...state,\n routes: state.routes.map((r, i) =>\n i === index\n ? { ...r, params: { ...r.params, ...action.payload.params } }\n : r\n ),\n };\n }\n\n case 'RESET': {\n const nextState = action.payload as State | PartialState<State>;\n\n if (\n nextState.routes.length === 0 ||\n nextState.routes.some(\n (route: { name: string }) => !state.routeNames.includes(route.name)\n )\n ) {\n return null;\n }\n\n if (nextState.stale === false) {\n if (\n state.routeNames.length !== nextState.routeNames.length ||\n nextState.routeNames.some(\n (name) => !state.routeNames.includes(name)\n )\n ) {\n return null;\n }\n\n return {\n ...nextState,\n routes: nextState.routes.map((route) =>\n route.key ? route : { ...route, key: `${route.name}-${nanoid()}` }\n ),\n };\n }\n\n return nextState;\n }\n\n default:\n return null;\n }\n },\n\n shouldActionChangeFocus(action: CommonNavigationAction) {\n return action.type === 'NAVIGATE';\n },\n};\n\nexport default BaseRouter;\n"],"mappings":"AAAA,SAASA,MAAT,QAAuB,mBAAvB;;AAQA;AACA;AACA;AACA;AACA,MAAMC,UAAU,GAAG;EACjBC,iBAAiB,CACfC,KADe,EAEfC,MAFe,EAGqB;IACpC,QAAQA,MAAM,CAACC,IAAf;MACE,KAAK,YAAL;QAAmB;UACjB,MAAMC,KAAK,GAAGF,MAAM,CAACG,MAAP,GACVJ,KAAK,CAACK,MAAN,CAAaC,SAAb,CAAwBC,CAAD,IAAOA,CAAC,CAACC,GAAF,KAAUP,MAAM,CAACG,MAA/C,CADU,GAEVJ,KAAK,CAACG,KAFV;;UAIA,IAAIA,KAAK,KAAK,CAAC,CAAf,EAAkB;YAChB,OAAO,IAAP;UACD;;UAED,OAAO,EACL,GAAGH,KADE;YAELK,MAAM,EAAEL,KAAK,CAACK,MAAN,CAAaI,GAAb,CAAiB,CAACF,CAAD,EAAIG,CAAJ,KACvBA,CAAC,KAAKP,KAAN,GACI,EAAE,GAAGI,CAAL;cAAQI,MAAM,EAAE,EAAE,GAAGJ,CAAC,CAACI,MAAP;gBAAe,GAAGV,MAAM,CAACW,OAAP,CAAeD;cAAjC;YAAhB,CADJ,GAEIJ,CAHE;UAFH,CAAP;QAQD;;MAED,KAAK,OAAL;QAAc;UACZ,MAAMM,SAAS,GAAGZ,MAAM,CAACW,OAAzB;;UAEA,IACEC,SAAS,CAACR,MAAV,CAAiBS,MAAjB,KAA4B,CAA5B,IACAD,SAAS,CAACR,MAAV,CAAiBU,IAAjB,CACGC,KAAD,IAA6B,CAAChB,KAAK,CAACiB,UAAN,CAAiBC,QAAjB,CAA0BF,KAAK,CAACG,IAAhC,CADhC,CAFF,EAKE;YACA,OAAO,IAAP;UACD;;UAED,IAAIN,SAAS,CAACO,KAAV,KAAoB,KAAxB,EAA+B;YAC7B,IACEpB,KAAK,CAACiB,UAAN,CAAiBH,MAAjB,KAA4BD,SAAS,CAACI,UAAV,CAAqBH,MAAjD,IACAD,SAAS,CAACI,UAAV,CAAqBF,IAArB,CACGI,IAAD,IAAU,CAACnB,KAAK,CAACiB,UAAN,CAAiBC,QAAjB,CAA0BC,IAA1B,CADb,CAFF,EAKE;cACA,OAAO,IAAP;YACD;;YAED,OAAO,EACL,GAAGN,SADE;cAELR,MAAM,EAAEQ,SAAS,CAACR,MAAV,CAAiBI,GAAjB,CAAsBO,KAAD,IAC3BA,KAAK,CAACR,GAAN,GAAYQ,KAAZ,GAAoB,EAAE,GAAGA,KAAL;gBAAYR,GAAG,EAAG,GAAEQ,KAAK,CAACG,IAAK,IAAGtB,MAAM,EAAG;cAA3C,CADd;YAFH,CAAP;UAMD;;UAED,OAAOgB,SAAP;QACD;;MAED;QACE,OAAO,IAAP;IAtDJ;EAwDD,CA7DgB;;EA+DjBQ,uBAAuB,CAACpB,MAAD,EAAiC;IACtD,OAAOA,MAAM,CAACC,IAAP,KAAgB,UAAvB;EACD;;AAjEgB,CAAnB;AAoEA,eAAeJ,UAAf"}
@@ -1 +1 @@
1
- {"version":3,"sources":["CommonActions.tsx"],"names":["goBack","type","navigate","payload","name","params","hasOwnProperty","Error","reset","state","setParams"],"mappings":"AAgDA,OAAO,SAASA,MAAT,GAA0B;AAC/B,SAAO;AAAEC,IAAAA,IAAI,EAAE;AAAR,GAAP;AACD;AAeD;AACA,OAAO,SAASC,QAAT,GAAwC;AAC7C,MAAI,8DAAmB,QAAvB,EAAiC;AAC/B,WAAO;AAAED,MAAAA,IAAI,EAAE,UAAR;AAAoBE,MAAAA,OAAO,EAAE;AAAEC,QAAAA,IAAI,kDAAN;AAAiBC,QAAAA,MAAM;AAAvB;AAA7B,KAAP;AACD,GAFD,MAEO;AACL,UAAMF,OAAO,GAAG,sDAAW,EAA3B;;AAEA,QAAI,CAACA,OAAO,CAACG,cAAR,CAAuB,KAAvB,CAAD,IAAkC,CAACH,OAAO,CAACG,cAAR,CAAuB,MAAvB,CAAvC,EAAuE;AACrE,YAAM,IAAIC,KAAJ,CACJ,mKADI,CAAN;AAGD;;AAED,WAAO;AAAEN,MAAAA,IAAI,EAAE,UAAR;AAAoBE,MAAAA;AAApB,KAAP;AACD;AACF;AAED,OAAO,SAASK,KAAT,CAAeC,KAAf,EAAsD;AAC3D,SAAO;AAAER,IAAAA,IAAI,EAAE,OAAR;AAAiBE,IAAAA,OAAO,EAAEM;AAA1B,GAAP;AACD;AAED,OAAO,SAASC,SAAT,CAAmBL,MAAnB,EAA2C;AAChD,SAAO;AAAEJ,IAAAA,IAAI,EAAE,YAAR;AAAsBE,IAAAA,OAAO,EAAE;AAAEE,MAAAA;AAAF;AAA/B,GAAP;AACD","sourcesContent":["import type { NavigationState, PartialState, Route } from './types';\n\ntype ResetState =\n | PartialState<NavigationState>\n | NavigationState\n | (Omit<NavigationState, 'routes'> & {\n routes: Omit<Route<string>, 'key'>[];\n });\n\nexport type Action =\n | {\n type: 'GO_BACK';\n source?: string;\n target?: string;\n }\n | {\n type: 'NAVIGATE';\n payload:\n | {\n key: string;\n name?: undefined;\n params?: object;\n path?: string;\n merge?: boolean;\n }\n | {\n name: string;\n key?: string;\n params?: object;\n path?: string;\n merge?: boolean;\n };\n source?: string;\n target?: string;\n }\n | {\n type: 'RESET';\n payload: ResetState | undefined;\n source?: string;\n target?: string;\n }\n | {\n type: 'SET_PARAMS';\n payload: { params?: object };\n source?: string;\n target?: string;\n };\n\nexport function goBack(): Action {\n return { type: 'GO_BACK' };\n}\n\nexport function navigate(\n options:\n | { key: string; params?: object; path?: string; merge?: boolean }\n | {\n name: string;\n key?: string;\n params?: object;\n path?: string;\n merge?: boolean;\n }\n): Action;\n// eslint-disable-next-line no-redeclare\nexport function navigate(name: string, params?: object): Action;\n// eslint-disable-next-line no-redeclare\nexport function navigate(...args: any): Action {\n if (typeof args[0] === 'string') {\n return { type: 'NAVIGATE', payload: { name: args[0], params: args[1] } };\n } else {\n const payload = args[0] || {};\n\n if (!payload.hasOwnProperty('key') && !payload.hasOwnProperty('name')) {\n throw new Error(\n 'You need to specify name or key when calling navigate with an object as the argument. See https://reactnavigation.org/docs/navigation-actions#navigate for usage.'\n );\n }\n\n return { type: 'NAVIGATE', payload };\n }\n}\n\nexport function reset(state: ResetState | undefined): Action {\n return { type: 'RESET', payload: state };\n}\n\nexport function setParams(params: object): Action {\n return { type: 'SET_PARAMS', payload: { params } };\n}\n"]}
1
+ {"version":3,"names":["goBack","type","navigate","payload","name","params","hasOwnProperty","Error","reset","state","setParams"],"sources":["CommonActions.tsx"],"sourcesContent":["import type { NavigationState, PartialState, Route } from './types';\n\ntype ResetState =\n | PartialState<NavigationState>\n | NavigationState\n | (Omit<NavigationState, 'routes'> & {\n routes: Omit<Route<string>, 'key'>[];\n });\n\nexport type Action =\n | {\n type: 'GO_BACK';\n source?: string;\n target?: string;\n }\n | {\n type: 'NAVIGATE';\n payload:\n | {\n key: string;\n name?: undefined;\n params?: object;\n path?: string;\n merge?: boolean;\n }\n | {\n name: string;\n key?: string;\n params?: object;\n path?: string;\n merge?: boolean;\n };\n source?: string;\n target?: string;\n }\n | {\n type: 'RESET';\n payload: ResetState | undefined;\n source?: string;\n target?: string;\n }\n | {\n type: 'SET_PARAMS';\n payload: { params?: object };\n source?: string;\n target?: string;\n };\n\nexport function goBack(): Action {\n return { type: 'GO_BACK' };\n}\n\nexport function navigate(\n options:\n | { key: string; params?: object; path?: string; merge?: boolean }\n | {\n name: string;\n key?: string;\n params?: object;\n path?: string;\n merge?: boolean;\n }\n): Action;\n// eslint-disable-next-line no-redeclare\nexport function navigate(name: string, params?: object): Action;\n// eslint-disable-next-line no-redeclare\nexport function navigate(...args: any): Action {\n if (typeof args[0] === 'string') {\n return { type: 'NAVIGATE', payload: { name: args[0], params: args[1] } };\n } else {\n const payload = args[0] || {};\n\n if (!payload.hasOwnProperty('key') && !payload.hasOwnProperty('name')) {\n throw new Error(\n 'You need to specify name or key when calling navigate with an object as the argument. See https://reactnavigation.org/docs/navigation-actions#navigate for usage.'\n );\n }\n\n return { type: 'NAVIGATE', payload };\n }\n}\n\nexport function reset(state: ResetState | undefined): Action {\n return { type: 'RESET', payload: state };\n}\n\nexport function setParams(params: object): Action {\n return { type: 'SET_PARAMS', payload: { params } };\n}\n"],"mappings":"AAgDA,OAAO,SAASA,MAAT,GAA0B;EAC/B,OAAO;IAAEC,IAAI,EAAE;EAAR,CAAP;AACD;AAeD;AACA,OAAO,SAASC,QAAT,GAAwC;EAC7C,IAAI,8DAAmB,QAAvB,EAAiC;IAC/B,OAAO;MAAED,IAAI,EAAE,UAAR;MAAoBE,OAAO,EAAE;QAAEC,IAAI,kDAAN;QAAiBC,MAAM;MAAvB;IAA7B,CAAP;EACD,CAFD,MAEO;IACL,MAAMF,OAAO,GAAG,sDAAW,EAA3B;;IAEA,IAAI,CAACA,OAAO,CAACG,cAAR,CAAuB,KAAvB,CAAD,IAAkC,CAACH,OAAO,CAACG,cAAR,CAAuB,MAAvB,CAAvC,EAAuE;MACrE,MAAM,IAAIC,KAAJ,CACJ,mKADI,CAAN;IAGD;;IAED,OAAO;MAAEN,IAAI,EAAE,UAAR;MAAoBE;IAApB,CAAP;EACD;AACF;AAED,OAAO,SAASK,KAAT,CAAeC,KAAf,EAAsD;EAC3D,OAAO;IAAER,IAAI,EAAE,OAAR;IAAiBE,OAAO,EAAEM;EAA1B,CAAP;AACD;AAED,OAAO,SAASC,SAAT,CAAmBL,MAAnB,EAA2C;EAChD,OAAO;IAAEJ,IAAI,EAAE,YAAR;IAAsBE,OAAO,EAAE;MAAEE;IAAF;EAA/B,CAAP;AACD"}
@@ -1 +1 @@
1
- {"version":3,"sources":["DrawerRouter.tsx"],"names":["nanoid","TabRouter","TabActions","DrawerActions","openDrawer","type","closeDrawer","toggleDrawer","DrawerRouter","defaultStatus","rest","router","isDrawerInHistory","state","Boolean","history","some","it","addDrawerToHistory","status","removeDrawerFromHistory","filter","getInitialState","routeNames","routeParamList","routeGetIdList","default","stale","key","getRehydratedState","partialState","getStateForRouteFocus","result","getStateForAction","action","options","index","actionCreators"],"mappings":"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","sourcesContent":["import { nanoid } from 'nanoid/non-secure';\n\nimport TabRouter, {\n TabActionHelpers,\n TabActions,\n TabActionType,\n TabNavigationState,\n TabRouterOptions,\n} from './TabRouter';\nimport type {\n CommonNavigationAction,\n ParamListBase,\n PartialState,\n Router,\n} from './types';\nexport type DrawerStatus = 'open' | 'closed';\n\nexport type DrawerActionType =\n | TabActionType\n | {\n type: 'OPEN_DRAWER' | 'CLOSE_DRAWER' | 'TOGGLE_DRAWER';\n source?: string;\n target?: string;\n };\n\nexport type DrawerRouterOptions = TabRouterOptions & {\n defaultStatus?: DrawerStatus;\n};\n\nexport type DrawerNavigationState<ParamList extends ParamListBase> = Omit<\n TabNavigationState<ParamList>,\n 'type' | 'history'\n> & {\n /**\n * Type of the router, in this case, it's drawer.\n */\n type: 'drawer';\n /**\n * Default status of the drawer.\n */\n default: DrawerStatus;\n /**\n * List of previously visited route keys and drawer open status.\n */\n history: (\n | { type: 'route'; key: string }\n | { type: 'drawer'; status: DrawerStatus }\n )[];\n};\n\nexport type DrawerActionHelpers<ParamList extends ParamListBase> =\n TabActionHelpers<ParamList> & {\n /**\n * Open the drawer sidebar.\n */\n openDrawer(): void;\n\n /**\n * Close the drawer sidebar.\n */\n closeDrawer(): void;\n\n /**\n * Open the drawer sidebar if closed, or close if opened.\n */\n toggleDrawer(): void;\n };\n\nexport const DrawerActions = {\n ...TabActions,\n openDrawer(): DrawerActionType {\n return { type: 'OPEN_DRAWER' };\n },\n closeDrawer(): DrawerActionType {\n return { type: 'CLOSE_DRAWER' };\n },\n toggleDrawer(): DrawerActionType {\n return { type: 'TOGGLE_DRAWER' };\n },\n};\n\nexport default function DrawerRouter({\n defaultStatus = 'closed',\n ...rest\n}: DrawerRouterOptions): Router<\n DrawerNavigationState<ParamListBase>,\n DrawerActionType | CommonNavigationAction\n> {\n const router = TabRouter(rest) as unknown as Router<\n DrawerNavigationState<ParamListBase>,\n TabActionType | CommonNavigationAction\n >;\n\n const isDrawerInHistory = (\n state:\n | DrawerNavigationState<ParamListBase>\n | PartialState<DrawerNavigationState<ParamListBase>>\n ) => Boolean(state.history?.some((it) => it.type === 'drawer'));\n\n const addDrawerToHistory = (\n state: DrawerNavigationState<ParamListBase>\n ): DrawerNavigationState<ParamListBase> => {\n if (isDrawerInHistory(state)) {\n return state;\n }\n\n return {\n ...state,\n history: [\n ...state.history,\n {\n type: 'drawer',\n status: defaultStatus === 'open' ? 'closed' : 'open',\n },\n ],\n };\n };\n\n const removeDrawerFromHistory = (\n state: DrawerNavigationState<ParamListBase>\n ): DrawerNavigationState<ParamListBase> => {\n if (!isDrawerInHistory(state)) {\n return state;\n }\n\n return {\n ...state,\n history: state.history.filter((it) => it.type !== 'drawer'),\n };\n };\n\n const openDrawer = (\n state: DrawerNavigationState<ParamListBase>\n ): DrawerNavigationState<ParamListBase> => {\n if (defaultStatus === 'open') {\n return removeDrawerFromHistory(state);\n }\n\n return addDrawerToHistory(state);\n };\n\n const closeDrawer = (\n state: DrawerNavigationState<ParamListBase>\n ): DrawerNavigationState<ParamListBase> => {\n if (defaultStatus === 'open') {\n return addDrawerToHistory(state);\n }\n\n return removeDrawerFromHistory(state);\n };\n\n return {\n ...router,\n\n type: 'drawer',\n\n getInitialState({ routeNames, routeParamList, routeGetIdList }) {\n const state = router.getInitialState({\n routeNames,\n routeParamList,\n routeGetIdList,\n });\n\n return {\n ...state,\n default: defaultStatus,\n stale: false,\n type: 'drawer',\n key: `drawer-${nanoid()}`,\n };\n },\n\n getRehydratedState(\n partialState,\n { routeNames, routeParamList, routeGetIdList }\n ) {\n if (partialState.stale === false) {\n return partialState;\n }\n\n let state = router.getRehydratedState(partialState, {\n routeNames,\n routeParamList,\n routeGetIdList,\n });\n\n if (isDrawerInHistory(partialState)) {\n // Re-sync the drawer entry in history to correct it if it was wrong\n state = removeDrawerFromHistory(state);\n state = addDrawerToHistory(state);\n }\n\n return {\n ...state,\n default: defaultStatus,\n type: 'drawer',\n key: `drawer-${nanoid()}`,\n };\n },\n\n getStateForRouteFocus(state, key) {\n const result = router.getStateForRouteFocus(state, key);\n\n return closeDrawer(result);\n },\n\n getStateForAction(state, action, options) {\n switch (action.type) {\n case 'OPEN_DRAWER':\n return openDrawer(state);\n\n case 'CLOSE_DRAWER':\n return closeDrawer(state);\n\n case 'TOGGLE_DRAWER':\n if (isDrawerInHistory(state)) {\n return removeDrawerFromHistory(state);\n }\n\n return addDrawerToHistory(state);\n\n case 'JUMP_TO':\n case 'NAVIGATE': {\n const result = router.getStateForAction(state, action, options);\n\n if (result != null && result.index !== state.index) {\n return closeDrawer(result as DrawerNavigationState<ParamListBase>);\n }\n\n return result;\n }\n\n case 'GO_BACK':\n if (isDrawerInHistory(state)) {\n return removeDrawerFromHistory(state);\n }\n\n return router.getStateForAction(state, action, options);\n\n default:\n return router.getStateForAction(state, action, options);\n }\n },\n\n actionCreators: DrawerActions,\n };\n}\n"]}
1
+ {"version":3,"names":["nanoid","TabRouter","TabActions","DrawerActions","openDrawer","type","closeDrawer","toggleDrawer","DrawerRouter","defaultStatus","rest","router","isDrawerInHistory","state","Boolean","history","some","it","addDrawerToHistory","status","removeDrawerFromHistory","filter","getInitialState","routeNames","routeParamList","routeGetIdList","default","stale","key","getRehydratedState","partialState","getStateForRouteFocus","result","getStateForAction","action","options","index","actionCreators"],"sources":["DrawerRouter.tsx"],"sourcesContent":["import { nanoid } from 'nanoid/non-secure';\n\nimport TabRouter, {\n TabActionHelpers,\n TabActions,\n TabActionType,\n TabNavigationState,\n TabRouterOptions,\n} from './TabRouter';\nimport type {\n CommonNavigationAction,\n ParamListBase,\n PartialState,\n Router,\n} from './types';\nexport type DrawerStatus = 'open' | 'closed';\n\nexport type DrawerActionType =\n | TabActionType\n | {\n type: 'OPEN_DRAWER' | 'CLOSE_DRAWER' | 'TOGGLE_DRAWER';\n source?: string;\n target?: string;\n };\n\nexport type DrawerRouterOptions = TabRouterOptions & {\n defaultStatus?: DrawerStatus;\n};\n\nexport type DrawerNavigationState<ParamList extends ParamListBase> = Omit<\n TabNavigationState<ParamList>,\n 'type' | 'history'\n> & {\n /**\n * Type of the router, in this case, it's drawer.\n */\n type: 'drawer';\n /**\n * Default status of the drawer.\n */\n default: DrawerStatus;\n /**\n * List of previously visited route keys and drawer open status.\n */\n history: (\n | { type: 'route'; key: string }\n | { type: 'drawer'; status: DrawerStatus }\n )[];\n};\n\nexport type DrawerActionHelpers<ParamList extends ParamListBase> =\n TabActionHelpers<ParamList> & {\n /**\n * Open the drawer sidebar.\n */\n openDrawer(): void;\n\n /**\n * Close the drawer sidebar.\n */\n closeDrawer(): void;\n\n /**\n * Open the drawer sidebar if closed, or close if opened.\n */\n toggleDrawer(): void;\n };\n\nexport const DrawerActions = {\n ...TabActions,\n openDrawer(): DrawerActionType {\n return { type: 'OPEN_DRAWER' };\n },\n closeDrawer(): DrawerActionType {\n return { type: 'CLOSE_DRAWER' };\n },\n toggleDrawer(): DrawerActionType {\n return { type: 'TOGGLE_DRAWER' };\n },\n};\n\nexport default function DrawerRouter({\n defaultStatus = 'closed',\n ...rest\n}: DrawerRouterOptions): Router<\n DrawerNavigationState<ParamListBase>,\n DrawerActionType | CommonNavigationAction\n> {\n const router = TabRouter(rest) as unknown as Router<\n DrawerNavigationState<ParamListBase>,\n TabActionType | CommonNavigationAction\n >;\n\n const isDrawerInHistory = (\n state:\n | DrawerNavigationState<ParamListBase>\n | PartialState<DrawerNavigationState<ParamListBase>>\n ) => Boolean(state.history?.some((it) => it.type === 'drawer'));\n\n const addDrawerToHistory = (\n state: DrawerNavigationState<ParamListBase>\n ): DrawerNavigationState<ParamListBase> => {\n if (isDrawerInHistory(state)) {\n return state;\n }\n\n return {\n ...state,\n history: [\n ...state.history,\n {\n type: 'drawer',\n status: defaultStatus === 'open' ? 'closed' : 'open',\n },\n ],\n };\n };\n\n const removeDrawerFromHistory = (\n state: DrawerNavigationState<ParamListBase>\n ): DrawerNavigationState<ParamListBase> => {\n if (!isDrawerInHistory(state)) {\n return state;\n }\n\n return {\n ...state,\n history: state.history.filter((it) => it.type !== 'drawer'),\n };\n };\n\n const openDrawer = (\n state: DrawerNavigationState<ParamListBase>\n ): DrawerNavigationState<ParamListBase> => {\n if (defaultStatus === 'open') {\n return removeDrawerFromHistory(state);\n }\n\n return addDrawerToHistory(state);\n };\n\n const closeDrawer = (\n state: DrawerNavigationState<ParamListBase>\n ): DrawerNavigationState<ParamListBase> => {\n if (defaultStatus === 'open') {\n return addDrawerToHistory(state);\n }\n\n return removeDrawerFromHistory(state);\n };\n\n return {\n ...router,\n\n type: 'drawer',\n\n getInitialState({ routeNames, routeParamList, routeGetIdList }) {\n const state = router.getInitialState({\n routeNames,\n routeParamList,\n routeGetIdList,\n });\n\n return {\n ...state,\n default: defaultStatus,\n stale: false,\n type: 'drawer',\n key: `drawer-${nanoid()}`,\n };\n },\n\n getRehydratedState(\n partialState,\n { routeNames, routeParamList, routeGetIdList }\n ) {\n if (partialState.stale === false) {\n return partialState;\n }\n\n let state = router.getRehydratedState(partialState, {\n routeNames,\n routeParamList,\n routeGetIdList,\n });\n\n if (isDrawerInHistory(partialState)) {\n // Re-sync the drawer entry in history to correct it if it was wrong\n state = removeDrawerFromHistory(state);\n state = addDrawerToHistory(state);\n }\n\n return {\n ...state,\n default: defaultStatus,\n type: 'drawer',\n key: `drawer-${nanoid()}`,\n };\n },\n\n getStateForRouteFocus(state, key) {\n const result = router.getStateForRouteFocus(state, key);\n\n return closeDrawer(result);\n },\n\n getStateForAction(state, action, options) {\n switch (action.type) {\n case 'OPEN_DRAWER':\n return openDrawer(state);\n\n case 'CLOSE_DRAWER':\n return closeDrawer(state);\n\n case 'TOGGLE_DRAWER':\n if (isDrawerInHistory(state)) {\n return removeDrawerFromHistory(state);\n }\n\n return addDrawerToHistory(state);\n\n case 'JUMP_TO':\n case 'NAVIGATE': {\n const result = router.getStateForAction(state, action, options);\n\n if (result != null && result.index !== state.index) {\n return closeDrawer(result as DrawerNavigationState<ParamListBase>);\n }\n\n return result;\n }\n\n case 'GO_BACK':\n if (isDrawerInHistory(state)) {\n return removeDrawerFromHistory(state);\n }\n\n return router.getStateForAction(state, action, options);\n\n default:\n return router.getStateForAction(state, action, options);\n }\n },\n\n actionCreators: DrawerActions,\n };\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["StackRouter.tsx"],"names":["nanoid","BaseRouter","StackActions","replace","name","params","type","payload","push","pop","count","popToTop","StackRouter","options","router","getInitialState","routeNames","routeParamList","initialRouteName","undefined","includes","stale","key","index","routes","getRehydratedState","partialState","state","filter","route","map","length","getStateForRouteNamesChange","routeKeyChanges","Math","min","getStateForRouteFocus","findIndex","r","slice","getStateForAction","action","target","source","i","getId","routeGetIdList","id","find","max","concat","path","merge","actionCreators"],"mappings":"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","sourcesContent":["import { nanoid } from 'nanoid/non-secure';\n\nimport BaseRouter from './BaseRouter';\nimport type {\n CommonNavigationAction,\n DefaultRouterOptions,\n NavigationState,\n ParamListBase,\n Route,\n Router,\n} from './types';\n\nexport type StackActionType =\n | {\n type: 'REPLACE';\n payload: { name: string; key?: string | undefined; params?: object };\n source?: string;\n target?: string;\n }\n | {\n type: 'PUSH';\n payload: { name: string; params?: object };\n source?: string;\n target?: string;\n }\n | {\n type: 'POP';\n payload: { count: number };\n source?: string;\n target?: string;\n }\n | {\n type: 'POP_TO_TOP';\n source?: string;\n target?: string;\n };\n\nexport type StackRouterOptions = DefaultRouterOptions;\n\nexport type StackNavigationState<ParamList extends ParamListBase> =\n NavigationState<ParamList> & {\n /**\n * Type of the router, in this case, it's stack.\n */\n type: 'stack';\n };\n\nexport type StackActionHelpers<ParamList extends ParamListBase> = {\n /**\n * Replace the current route with a new one.\n *\n * @param name Route name of the new route.\n * @param [params] Params object for the new route.\n */\n replace<RouteName extends keyof ParamList>(\n ...args: undefined extends ParamList[RouteName]\n ? [screen: RouteName] | [screen: RouteName, params: ParamList[RouteName]]\n : [screen: RouteName, params: ParamList[RouteName]]\n ): void;\n\n /**\n * Push a new screen onto the stack.\n *\n * @param name Name of the route for the tab.\n * @param [params] Params object for the route.\n */\n push<RouteName extends keyof ParamList>(\n ...args: undefined extends ParamList[RouteName]\n ? [screen: RouteName] | [screen: RouteName, params: ParamList[RouteName]]\n : [screen: RouteName, params: ParamList[RouteName]]\n ): void;\n\n /**\n * Pop a screen from the stack.\n */\n pop(count?: number): void;\n\n /**\n * Pop to the first route in the stack, dismissing all other screens.\n */\n popToTop(): void;\n};\n\nexport const StackActions = {\n replace(name: string, params?: object): StackActionType {\n return { type: 'REPLACE', payload: { name, params } };\n },\n push(name: string, params?: object): StackActionType {\n return { type: 'PUSH', payload: { name, params } };\n },\n pop(count: number = 1): StackActionType {\n return { type: 'POP', payload: { count } };\n },\n popToTop(): StackActionType {\n return { type: 'POP_TO_TOP' };\n },\n};\n\nexport default function StackRouter(options: StackRouterOptions) {\n const router: Router<\n StackNavigationState<ParamListBase>,\n CommonNavigationAction | StackActionType\n > = {\n ...BaseRouter,\n\n type: 'stack',\n\n getInitialState({ routeNames, routeParamList }) {\n const initialRouteName =\n options.initialRouteName !== undefined &&\n routeNames.includes(options.initialRouteName)\n ? options.initialRouteName\n : routeNames[0];\n\n return {\n stale: false,\n type: 'stack',\n key: `stack-${nanoid()}`,\n index: 0,\n routeNames,\n routes: [\n {\n key: `${initialRouteName}-${nanoid()}`,\n name: initialRouteName,\n params: routeParamList[initialRouteName],\n },\n ],\n };\n },\n\n getRehydratedState(partialState, { routeNames, routeParamList }) {\n let state = partialState;\n\n if (state.stale === false) {\n return state;\n }\n\n const routes = state.routes\n .filter((route) => routeNames.includes(route.name))\n .map(\n (route) =>\n ({\n ...route,\n key: route.key || `${route.name}-${nanoid()}`,\n params:\n routeParamList[route.name] !== undefined\n ? {\n ...routeParamList[route.name],\n ...route.params,\n }\n : route.params,\n } as Route<string>)\n );\n\n if (routes.length === 0) {\n const initialRouteName =\n options.initialRouteName !== undefined\n ? options.initialRouteName\n : routeNames[0];\n\n routes.push({\n key: `${initialRouteName}-${nanoid()}`,\n name: initialRouteName,\n params: routeParamList[initialRouteName],\n });\n }\n\n return {\n stale: false,\n type: 'stack',\n key: `stack-${nanoid()}`,\n index: routes.length - 1,\n routeNames,\n routes,\n };\n },\n\n getStateForRouteNamesChange(\n state,\n { routeNames, routeParamList, routeKeyChanges }\n ) {\n const routes = state.routes.filter(\n (route) =>\n routeNames.includes(route.name) &&\n !routeKeyChanges.includes(route.name)\n );\n\n if (routes.length === 0) {\n const initialRouteName =\n options.initialRouteName !== undefined &&\n routeNames.includes(options.initialRouteName)\n ? options.initialRouteName\n : routeNames[0];\n\n routes.push({\n key: `${initialRouteName}-${nanoid()}`,\n name: initialRouteName,\n params: routeParamList[initialRouteName],\n });\n }\n\n return {\n ...state,\n routeNames,\n routes,\n index: Math.min(state.index, routes.length - 1),\n };\n },\n\n getStateForRouteFocus(state, key) {\n const index = state.routes.findIndex((r) => r.key === key);\n\n if (index === -1 || index === state.index) {\n return state;\n }\n\n return {\n ...state,\n index,\n routes: state.routes.slice(0, index + 1),\n };\n },\n\n getStateForAction(state, action, options) {\n const { routeParamList } = options;\n\n switch (action.type) {\n case 'REPLACE': {\n const index =\n action.target === state.key && action.source\n ? state.routes.findIndex((r) => r.key === action.source)\n : state.index;\n\n if (index === -1) {\n return null;\n }\n\n const { name, key, params } = action.payload;\n\n if (!state.routeNames.includes(name)) {\n return null;\n }\n\n return {\n ...state,\n routes: state.routes.map((route, i) =>\n i === index\n ? {\n key: key !== undefined ? key : `${name}-${nanoid()}`,\n name,\n params:\n routeParamList[name] !== undefined\n ? {\n ...routeParamList[name],\n ...params,\n }\n : params,\n }\n : route\n ),\n };\n }\n\n case 'PUSH':\n if (state.routeNames.includes(action.payload.name)) {\n const getId = options.routeGetIdList[action.payload.name];\n const id = getId?.({ params: action.payload.params });\n\n const route = id\n ? state.routes.find(\n (route) =>\n route.name === action.payload.name &&\n id === getId?.({ params: route.params })\n )\n : undefined;\n\n let routes: Route<string>[];\n\n if (route) {\n routes = state.routes.filter((r) => r.key !== route.key);\n routes.push({\n ...route,\n params:\n routeParamList[action.payload.name] !== undefined\n ? {\n ...routeParamList[action.payload.name],\n ...action.payload.params,\n }\n : action.payload.params,\n });\n } else {\n routes = [\n ...state.routes,\n {\n key: `${action.payload.name}-${nanoid()}`,\n name: action.payload.name,\n params:\n routeParamList[action.payload.name] !== undefined\n ? {\n ...routeParamList[action.payload.name],\n ...action.payload.params,\n }\n : action.payload.params,\n },\n ];\n }\n\n return {\n ...state,\n index: routes.length - 1,\n routes,\n };\n }\n\n return null;\n\n case 'POP': {\n const index =\n action.target === state.key && action.source\n ? state.routes.findIndex((r) => r.key === action.source)\n : state.index;\n\n if (index > 0) {\n const count = Math.max(index - action.payload.count + 1, 1);\n const routes = state.routes\n .slice(0, count)\n .concat(state.routes.slice(index + 1));\n\n return {\n ...state,\n index: routes.length - 1,\n routes,\n };\n }\n\n return null;\n }\n\n case 'POP_TO_TOP':\n return router.getStateForAction(\n state,\n {\n type: 'POP',\n payload: { count: state.routes.length - 1 },\n },\n options\n );\n\n case 'NAVIGATE':\n if (\n action.payload.name !== undefined &&\n !state.routeNames.includes(action.payload.name)\n ) {\n return null;\n }\n\n if (action.payload.key || action.payload.name) {\n // If the route already exists, navigate to that\n let index = -1;\n\n const getId =\n // `getId` and `key` can't be used together\n action.payload.key === undefined &&\n action.payload.name !== undefined\n ? options.routeGetIdList[action.payload.name]\n : undefined;\n const id = getId?.({ params: action.payload.params });\n\n if (id) {\n index = state.routes.findIndex(\n (route) =>\n route.name === action.payload.name &&\n id === getId?.({ params: route.params })\n );\n } else if (\n (state.routes[state.index].name === action.payload.name &&\n action.payload.key === undefined) ||\n state.routes[state.index].key === action.payload.key\n ) {\n index = state.index;\n } else {\n for (let i = state.routes.length - 1; i >= 0; i--) {\n if (\n (state.routes[i].name === action.payload.name &&\n action.payload.key === undefined) ||\n state.routes[i].key === action.payload.key\n ) {\n index = i;\n break;\n }\n }\n }\n\n if (\n index === -1 &&\n action.payload.key &&\n action.payload.name === undefined\n ) {\n return null;\n }\n\n if (index === -1 && action.payload.name !== undefined) {\n const routes = [\n ...state.routes,\n {\n key:\n action.payload.key ?? `${action.payload.name}-${nanoid()}`,\n name: action.payload.name,\n path: action.payload.path,\n params:\n routeParamList[action.payload.name] !== undefined\n ? {\n ...routeParamList[action.payload.name],\n ...action.payload.params,\n }\n : action.payload.params,\n },\n ];\n\n return {\n ...state,\n routes,\n index: routes.length - 1,\n };\n }\n\n const route = state.routes[index];\n\n let params;\n\n if (action.payload.merge) {\n params =\n action.payload.params !== undefined ||\n routeParamList[route.name] !== undefined\n ? {\n ...routeParamList[route.name],\n ...route.params,\n ...action.payload.params,\n }\n : route.params;\n } else {\n params =\n routeParamList[route.name] !== undefined\n ? {\n ...routeParamList[route.name],\n ...action.payload.params,\n }\n : action.payload.params;\n }\n\n return {\n ...state,\n index,\n routes: [\n ...state.routes.slice(0, index),\n params !== route.params ||\n (action.payload.path && action.payload.path !== route.path)\n ? {\n ...route,\n path: action.payload.path ?? route.path,\n params,\n }\n : state.routes[index],\n ],\n };\n }\n\n return null;\n\n case 'GO_BACK':\n if (state.index > 0) {\n return router.getStateForAction(\n state,\n {\n type: 'POP',\n payload: { count: 1 },\n target: action.target,\n source: action.source,\n },\n options\n );\n }\n\n return null;\n\n default:\n return BaseRouter.getStateForAction(state, action);\n }\n },\n\n actionCreators: StackActions,\n };\n\n return router;\n}\n"]}
1
+ {"version":3,"names":["nanoid","BaseRouter","StackActions","replace","name","params","type","payload","push","pop","count","popToTop","StackRouter","options","router","getInitialState","routeNames","routeParamList","initialRouteName","undefined","includes","stale","key","index","routes","getRehydratedState","partialState","state","filter","route","map","length","getStateForRouteNamesChange","routeKeyChanges","Math","min","getStateForRouteFocus","findIndex","r","slice","getStateForAction","action","target","source","i","getId","routeGetIdList","id","find","max","concat","path","merge","actionCreators"],"sources":["StackRouter.tsx"],"sourcesContent":["import { nanoid } from 'nanoid/non-secure';\n\nimport BaseRouter from './BaseRouter';\nimport type {\n CommonNavigationAction,\n DefaultRouterOptions,\n NavigationState,\n ParamListBase,\n Route,\n Router,\n} from './types';\n\nexport type StackActionType =\n | {\n type: 'REPLACE';\n payload: { name: string; key?: string | undefined; params?: object };\n source?: string;\n target?: string;\n }\n | {\n type: 'PUSH';\n payload: { name: string; params?: object };\n source?: string;\n target?: string;\n }\n | {\n type: 'POP';\n payload: { count: number };\n source?: string;\n target?: string;\n }\n | {\n type: 'POP_TO_TOP';\n source?: string;\n target?: string;\n };\n\nexport type StackRouterOptions = DefaultRouterOptions;\n\nexport type StackNavigationState<ParamList extends ParamListBase> =\n NavigationState<ParamList> & {\n /**\n * Type of the router, in this case, it's stack.\n */\n type: 'stack';\n };\n\nexport type StackActionHelpers<ParamList extends ParamListBase> = {\n /**\n * Replace the current route with a new one.\n *\n * @param name Route name of the new route.\n * @param [params] Params object for the new route.\n */\n replace<RouteName extends keyof ParamList>(\n ...args: undefined extends ParamList[RouteName]\n ? [screen: RouteName] | [screen: RouteName, params: ParamList[RouteName]]\n : [screen: RouteName, params: ParamList[RouteName]]\n ): void;\n\n /**\n * Push a new screen onto the stack.\n *\n * @param name Name of the route for the tab.\n * @param [params] Params object for the route.\n */\n push<RouteName extends keyof ParamList>(\n ...args: undefined extends ParamList[RouteName]\n ? [screen: RouteName] | [screen: RouteName, params: ParamList[RouteName]]\n : [screen: RouteName, params: ParamList[RouteName]]\n ): void;\n\n /**\n * Pop a screen from the stack.\n */\n pop(count?: number): void;\n\n /**\n * Pop to the first route in the stack, dismissing all other screens.\n */\n popToTop(): void;\n};\n\nexport const StackActions = {\n replace(name: string, params?: object): StackActionType {\n return { type: 'REPLACE', payload: { name, params } };\n },\n push(name: string, params?: object): StackActionType {\n return { type: 'PUSH', payload: { name, params } };\n },\n pop(count: number = 1): StackActionType {\n return { type: 'POP', payload: { count } };\n },\n popToTop(): StackActionType {\n return { type: 'POP_TO_TOP' };\n },\n};\n\nexport default function StackRouter(options: StackRouterOptions) {\n const router: Router<\n StackNavigationState<ParamListBase>,\n CommonNavigationAction | StackActionType\n > = {\n ...BaseRouter,\n\n type: 'stack',\n\n getInitialState({ routeNames, routeParamList }) {\n const initialRouteName =\n options.initialRouteName !== undefined &&\n routeNames.includes(options.initialRouteName)\n ? options.initialRouteName\n : routeNames[0];\n\n return {\n stale: false,\n type: 'stack',\n key: `stack-${nanoid()}`,\n index: 0,\n routeNames,\n routes: [\n {\n key: `${initialRouteName}-${nanoid()}`,\n name: initialRouteName,\n params: routeParamList[initialRouteName],\n },\n ],\n };\n },\n\n getRehydratedState(partialState, { routeNames, routeParamList }) {\n let state = partialState;\n\n if (state.stale === false) {\n return state;\n }\n\n const routes = state.routes\n .filter((route) => routeNames.includes(route.name))\n .map(\n (route) =>\n ({\n ...route,\n key: route.key || `${route.name}-${nanoid()}`,\n params:\n routeParamList[route.name] !== undefined\n ? {\n ...routeParamList[route.name],\n ...route.params,\n }\n : route.params,\n } as Route<string>)\n );\n\n if (routes.length === 0) {\n const initialRouteName =\n options.initialRouteName !== undefined\n ? options.initialRouteName\n : routeNames[0];\n\n routes.push({\n key: `${initialRouteName}-${nanoid()}`,\n name: initialRouteName,\n params: routeParamList[initialRouteName],\n });\n }\n\n return {\n stale: false,\n type: 'stack',\n key: `stack-${nanoid()}`,\n index: routes.length - 1,\n routeNames,\n routes,\n };\n },\n\n getStateForRouteNamesChange(\n state,\n { routeNames, routeParamList, routeKeyChanges }\n ) {\n const routes = state.routes.filter(\n (route) =>\n routeNames.includes(route.name) &&\n !routeKeyChanges.includes(route.name)\n );\n\n if (routes.length === 0) {\n const initialRouteName =\n options.initialRouteName !== undefined &&\n routeNames.includes(options.initialRouteName)\n ? options.initialRouteName\n : routeNames[0];\n\n routes.push({\n key: `${initialRouteName}-${nanoid()}`,\n name: initialRouteName,\n params: routeParamList[initialRouteName],\n });\n }\n\n return {\n ...state,\n routeNames,\n routes,\n index: Math.min(state.index, routes.length - 1),\n };\n },\n\n getStateForRouteFocus(state, key) {\n const index = state.routes.findIndex((r) => r.key === key);\n\n if (index === -1 || index === state.index) {\n return state;\n }\n\n return {\n ...state,\n index,\n routes: state.routes.slice(0, index + 1),\n };\n },\n\n getStateForAction(state, action, options) {\n const { routeParamList } = options;\n\n switch (action.type) {\n case 'REPLACE': {\n const index =\n action.target === state.key && action.source\n ? state.routes.findIndex((r) => r.key === action.source)\n : state.index;\n\n if (index === -1) {\n return null;\n }\n\n const { name, key, params } = action.payload;\n\n if (!state.routeNames.includes(name)) {\n return null;\n }\n\n return {\n ...state,\n routes: state.routes.map((route, i) =>\n i === index\n ? {\n key: key !== undefined ? key : `${name}-${nanoid()}`,\n name,\n params:\n routeParamList[name] !== undefined\n ? {\n ...routeParamList[name],\n ...params,\n }\n : params,\n }\n : route\n ),\n };\n }\n\n case 'PUSH':\n if (state.routeNames.includes(action.payload.name)) {\n const getId = options.routeGetIdList[action.payload.name];\n const id = getId?.({ params: action.payload.params });\n\n const route = id\n ? state.routes.find(\n (route) =>\n route.name === action.payload.name &&\n id === getId?.({ params: route.params })\n )\n : undefined;\n\n let routes: Route<string>[];\n\n if (route) {\n routes = state.routes.filter((r) => r.key !== route.key);\n routes.push({\n ...route,\n params:\n routeParamList[action.payload.name] !== undefined\n ? {\n ...routeParamList[action.payload.name],\n ...action.payload.params,\n }\n : action.payload.params,\n });\n } else {\n routes = [\n ...state.routes,\n {\n key: `${action.payload.name}-${nanoid()}`,\n name: action.payload.name,\n params:\n routeParamList[action.payload.name] !== undefined\n ? {\n ...routeParamList[action.payload.name],\n ...action.payload.params,\n }\n : action.payload.params,\n },\n ];\n }\n\n return {\n ...state,\n index: routes.length - 1,\n routes,\n };\n }\n\n return null;\n\n case 'POP': {\n const index =\n action.target === state.key && action.source\n ? state.routes.findIndex((r) => r.key === action.source)\n : state.index;\n\n if (index > 0) {\n const count = Math.max(index - action.payload.count + 1, 1);\n const routes = state.routes\n .slice(0, count)\n .concat(state.routes.slice(index + 1));\n\n return {\n ...state,\n index: routes.length - 1,\n routes,\n };\n }\n\n return null;\n }\n\n case 'POP_TO_TOP':\n return router.getStateForAction(\n state,\n {\n type: 'POP',\n payload: { count: state.routes.length - 1 },\n },\n options\n );\n\n case 'NAVIGATE':\n if (\n action.payload.name !== undefined &&\n !state.routeNames.includes(action.payload.name)\n ) {\n return null;\n }\n\n if (action.payload.key || action.payload.name) {\n // If the route already exists, navigate to that\n let index = -1;\n\n const getId =\n // `getId` and `key` can't be used together\n action.payload.key === undefined &&\n action.payload.name !== undefined\n ? options.routeGetIdList[action.payload.name]\n : undefined;\n const id = getId?.({ params: action.payload.params });\n\n if (id) {\n index = state.routes.findIndex(\n (route) =>\n route.name === action.payload.name &&\n id === getId?.({ params: route.params })\n );\n } else if (\n (state.routes[state.index].name === action.payload.name &&\n action.payload.key === undefined) ||\n state.routes[state.index].key === action.payload.key\n ) {\n index = state.index;\n } else {\n for (let i = state.routes.length - 1; i >= 0; i--) {\n if (\n (state.routes[i].name === action.payload.name &&\n action.payload.key === undefined) ||\n state.routes[i].key === action.payload.key\n ) {\n index = i;\n break;\n }\n }\n }\n\n if (\n index === -1 &&\n action.payload.key &&\n action.payload.name === undefined\n ) {\n return null;\n }\n\n if (index === -1 && action.payload.name !== undefined) {\n const routes = [\n ...state.routes,\n {\n key:\n action.payload.key ?? `${action.payload.name}-${nanoid()}`,\n name: action.payload.name,\n path: action.payload.path,\n params:\n routeParamList[action.payload.name] !== undefined\n ? {\n ...routeParamList[action.payload.name],\n ...action.payload.params,\n }\n : action.payload.params,\n },\n ];\n\n return {\n ...state,\n routes,\n index: routes.length - 1,\n };\n }\n\n const route = state.routes[index];\n\n let params;\n\n if (action.payload.merge) {\n params =\n action.payload.params !== undefined ||\n routeParamList[route.name] !== undefined\n ? {\n ...routeParamList[route.name],\n ...route.params,\n ...action.payload.params,\n }\n : route.params;\n } else {\n params =\n routeParamList[route.name] !== undefined\n ? {\n ...routeParamList[route.name],\n ...action.payload.params,\n }\n : action.payload.params;\n }\n\n return {\n ...state,\n index,\n routes: [\n ...state.routes.slice(0, index),\n params !== route.params ||\n (action.payload.path && action.payload.path !== route.path)\n ? {\n ...route,\n path: action.payload.path ?? route.path,\n params,\n }\n : state.routes[index],\n ],\n };\n }\n\n return null;\n\n case 'GO_BACK':\n if (state.index > 0) {\n return router.getStateForAction(\n state,\n {\n type: 'POP',\n payload: { count: 1 },\n target: action.target,\n source: action.source,\n },\n options\n );\n }\n\n return null;\n\n default:\n return BaseRouter.getStateForAction(state, action);\n }\n },\n\n actionCreators: StackActions,\n };\n\n return router;\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["TabRouter.tsx"],"names":["nanoid","BaseRouter","TYPE_ROUTE","TabActions","jumpTo","name","params","type","payload","getRouteHistory","routes","index","backBehavior","initialRouteName","history","key","initialRouteIndex","i","unshift","findIndex","route","changeIndex","state","currentKey","filter","it","concat","TabRouter","router","getInitialState","routeNames","routeParamList","undefined","includes","indexOf","map","stale","getRehydratedState","partialState","find","r","Math","min","max","length","getStateForRouteNamesChange","routeKeyChanges","getStateForRouteFocus","getStateForAction","action","merge","path","previousKey","slice","shouldActionChangeFocus","actionCreators"],"mappings":"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","sourcesContent":["import { nanoid } from 'nanoid/non-secure';\n\nimport BaseRouter from './BaseRouter';\nimport type {\n CommonNavigationAction,\n DefaultRouterOptions,\n NavigationState,\n ParamListBase,\n PartialState,\n Route,\n Router,\n} from './types';\n\nexport type TabActionType = {\n type: 'JUMP_TO';\n payload: { name: string; params?: object };\n source?: string;\n target?: string;\n};\n\nexport type BackBehavior =\n | 'initialRoute'\n | 'firstRoute'\n | 'history'\n | 'order'\n | 'none';\n\nexport type TabRouterOptions = DefaultRouterOptions & {\n backBehavior?: BackBehavior;\n};\n\nexport type TabNavigationState<ParamList extends ParamListBase> = Omit<\n NavigationState<ParamList>,\n 'history'\n> & {\n /**\n * Type of the router, in this case, it's tab.\n */\n type: 'tab';\n /**\n * List of previously visited route keys.\n */\n history: { type: 'route'; key: string }[];\n};\n\nexport type TabActionHelpers<ParamList extends ParamListBase> = {\n /**\n * Jump to an existing tab.\n *\n * @param name Name of the route for the tab.\n * @param [params] Params object for the route.\n */\n jumpTo<RouteName extends Extract<keyof ParamList, string>>(\n ...args: undefined extends ParamList[RouteName]\n ? [screen: RouteName] | [screen: RouteName, params: ParamList[RouteName]]\n : [screen: RouteName, params: ParamList[RouteName]]\n ): void;\n};\n\nconst TYPE_ROUTE = 'route' as const;\n\nexport const TabActions = {\n jumpTo(name: string, params?: object): TabActionType {\n return { type: 'JUMP_TO', payload: { name, params } };\n },\n};\n\nconst getRouteHistory = (\n routes: Route<string>[],\n index: number,\n backBehavior: BackBehavior,\n initialRouteName: string | undefined\n) => {\n const history = [{ type: TYPE_ROUTE, key: routes[index].key }];\n let initialRouteIndex;\n\n switch (backBehavior) {\n case 'order':\n for (let i = index; i > 0; i--) {\n history.unshift({ type: TYPE_ROUTE, key: routes[i - 1].key });\n }\n break;\n case 'firstRoute':\n if (index !== 0) {\n history.unshift({\n type: TYPE_ROUTE,\n key: routes[0].key,\n });\n }\n break;\n case 'initialRoute':\n initialRouteIndex = routes.findIndex(\n (route) => route.name === initialRouteName\n );\n initialRouteIndex = initialRouteIndex === -1 ? 0 : initialRouteIndex;\n\n if (index !== initialRouteIndex) {\n history.unshift({\n type: TYPE_ROUTE,\n key: routes[initialRouteIndex].key,\n });\n }\n break;\n case 'history':\n // The history will fill up on navigation\n break;\n }\n\n return history;\n};\n\nconst changeIndex = (\n state: TabNavigationState<ParamListBase>,\n index: number,\n backBehavior: BackBehavior,\n initialRouteName: string | undefined\n) => {\n let history;\n\n if (backBehavior === 'history') {\n const currentKey = state.routes[index].key;\n\n history = state.history\n .filter((it) => (it.type === 'route' ? it.key !== currentKey : false))\n .concat({ type: TYPE_ROUTE, key: currentKey });\n } else {\n history = getRouteHistory(\n state.routes,\n index,\n backBehavior,\n initialRouteName\n );\n }\n\n return {\n ...state,\n index,\n history,\n };\n};\n\nexport default function TabRouter({\n initialRouteName,\n backBehavior = 'firstRoute',\n}: TabRouterOptions) {\n const router: Router<\n TabNavigationState<ParamListBase>,\n TabActionType | CommonNavigationAction\n > = {\n ...BaseRouter,\n\n type: 'tab',\n\n getInitialState({ routeNames, routeParamList }) {\n const index =\n initialRouteName !== undefined && routeNames.includes(initialRouteName)\n ? routeNames.indexOf(initialRouteName)\n : 0;\n\n const routes = routeNames.map((name) => ({\n name,\n key: `${name}-${nanoid()}`,\n params: routeParamList[name],\n }));\n\n const history = getRouteHistory(\n routes,\n index,\n backBehavior,\n initialRouteName\n );\n\n return {\n stale: false,\n type: 'tab',\n key: `tab-${nanoid()}`,\n index,\n routeNames,\n history,\n routes,\n };\n },\n\n getRehydratedState(partialState, { routeNames, routeParamList }) {\n let state = partialState;\n\n if (state.stale === false) {\n return state;\n }\n\n const routes = routeNames.map((name) => {\n const route = (\n state as PartialState<TabNavigationState<ParamListBase>>\n ).routes.find((r) => r.name === name);\n\n return {\n ...route,\n name,\n key:\n route && route.name === name && route.key\n ? route.key\n : `${name}-${nanoid()}`,\n params:\n routeParamList[name] !== undefined\n ? {\n ...routeParamList[name],\n ...(route ? route.params : undefined),\n }\n : route\n ? route.params\n : undefined,\n } as Route<string>;\n });\n\n const index = Math.min(\n Math.max(routeNames.indexOf(state.routes[state?.index ?? 0]?.name), 0),\n routes.length - 1\n );\n\n const history =\n state.history?.filter((it) => routes.find((r) => r.key === it.key)) ??\n [];\n\n return changeIndex(\n {\n stale: false,\n type: 'tab',\n key: `tab-${nanoid()}`,\n index,\n routeNames,\n history,\n routes,\n },\n index,\n backBehavior,\n initialRouteName\n );\n },\n\n getStateForRouteNamesChange(\n state,\n { routeNames, routeParamList, routeKeyChanges }\n ) {\n const routes = routeNames.map(\n (name) =>\n state.routes.find(\n (r) => r.name === name && !routeKeyChanges.includes(r.name)\n ) || {\n name,\n key: `${name}-${nanoid()}`,\n params: routeParamList[name],\n }\n );\n\n const index = Math.max(\n 0,\n routeNames.indexOf(state.routes[state.index].name)\n );\n\n let history = state.history.filter(\n // Type will always be 'route' for tabs, but could be different in a router extending this (e.g. drawer)\n (it) => it.type !== 'route' || routes.find((r) => r.key === it.key)\n );\n\n if (!history.length) {\n history = getRouteHistory(\n routes,\n index,\n backBehavior,\n initialRouteName\n );\n }\n\n return {\n ...state,\n history,\n routeNames,\n routes,\n index,\n };\n },\n\n getStateForRouteFocus(state, key) {\n const index = state.routes.findIndex((r) => r.key === key);\n\n if (index === -1 || index === state.index) {\n return state;\n }\n\n return changeIndex(state, index, backBehavior, initialRouteName);\n },\n\n getStateForAction(state, action, { routeParamList }) {\n switch (action.type) {\n case 'JUMP_TO':\n case 'NAVIGATE': {\n let index = -1;\n\n if (action.type === 'NAVIGATE' && action.payload.key) {\n index = state.routes.findIndex(\n (route) => route.key === action.payload.key\n );\n } else {\n index = state.routes.findIndex(\n (route) => route.name === action.payload.name\n );\n }\n\n if (index === -1) {\n return null;\n }\n\n return changeIndex(\n {\n ...state,\n routes: state.routes.map((route, i) => {\n if (i !== index) {\n return route;\n }\n\n let params;\n\n if (action.type === 'NAVIGATE' && action.payload.merge) {\n params =\n action.payload.params !== undefined ||\n routeParamList[route.name] !== undefined\n ? {\n ...routeParamList[route.name],\n ...route.params,\n ...action.payload.params,\n }\n : route.params;\n } else {\n params =\n routeParamList[route.name] !== undefined\n ? {\n ...routeParamList[route.name],\n ...action.payload.params,\n }\n : action.payload.params;\n }\n\n const path =\n action.type === 'NAVIGATE' && action.payload.path != null\n ? action.payload.path\n : route.path;\n\n return params !== route.params || path !== route.path\n ? { ...route, path, params }\n : route;\n }),\n },\n index,\n backBehavior,\n initialRouteName\n );\n }\n\n case 'GO_BACK': {\n if (state.history.length === 1) {\n return null;\n }\n\n const previousKey = state.history[state.history.length - 2].key;\n const index = state.routes.findIndex(\n (route) => route.key === previousKey\n );\n\n if (index === -1) {\n return null;\n }\n\n return {\n ...state,\n history: state.history.slice(0, -1),\n index,\n };\n }\n\n default:\n return BaseRouter.getStateForAction(state, action);\n }\n },\n\n shouldActionChangeFocus(action) {\n return action.type === 'NAVIGATE';\n },\n\n actionCreators: TabActions,\n };\n\n return router;\n}\n"]}
1
+ {"version":3,"names":["nanoid","BaseRouter","TYPE_ROUTE","TabActions","jumpTo","name","params","type","payload","getRouteHistory","routes","index","backBehavior","initialRouteName","history","key","initialRouteIndex","i","unshift","findIndex","route","changeIndex","state","currentKey","filter","it","concat","TabRouter","router","getInitialState","routeNames","routeParamList","undefined","includes","indexOf","map","stale","getRehydratedState","partialState","find","r","Math","min","max","length","getStateForRouteNamesChange","routeKeyChanges","getStateForRouteFocus","getStateForAction","action","merge","path","previousKey","slice","shouldActionChangeFocus","actionCreators"],"sources":["TabRouter.tsx"],"sourcesContent":["import { nanoid } from 'nanoid/non-secure';\n\nimport BaseRouter from './BaseRouter';\nimport type {\n CommonNavigationAction,\n DefaultRouterOptions,\n NavigationState,\n ParamListBase,\n PartialState,\n Route,\n Router,\n} from './types';\n\nexport type TabActionType = {\n type: 'JUMP_TO';\n payload: { name: string; params?: object };\n source?: string;\n target?: string;\n};\n\nexport type BackBehavior =\n | 'initialRoute'\n | 'firstRoute'\n | 'history'\n | 'order'\n | 'none';\n\nexport type TabRouterOptions = DefaultRouterOptions & {\n backBehavior?: BackBehavior;\n};\n\nexport type TabNavigationState<ParamList extends ParamListBase> = Omit<\n NavigationState<ParamList>,\n 'history'\n> & {\n /**\n * Type of the router, in this case, it's tab.\n */\n type: 'tab';\n /**\n * List of previously visited route keys.\n */\n history: { type: 'route'; key: string }[];\n};\n\nexport type TabActionHelpers<ParamList extends ParamListBase> = {\n /**\n * Jump to an existing tab.\n *\n * @param name Name of the route for the tab.\n * @param [params] Params object for the route.\n */\n jumpTo<RouteName extends Extract<keyof ParamList, string>>(\n ...args: undefined extends ParamList[RouteName]\n ? [screen: RouteName] | [screen: RouteName, params: ParamList[RouteName]]\n : [screen: RouteName, params: ParamList[RouteName]]\n ): void;\n};\n\nconst TYPE_ROUTE = 'route' as const;\n\nexport const TabActions = {\n jumpTo(name: string, params?: object): TabActionType {\n return { type: 'JUMP_TO', payload: { name, params } };\n },\n};\n\nconst getRouteHistory = (\n routes: Route<string>[],\n index: number,\n backBehavior: BackBehavior,\n initialRouteName: string | undefined\n) => {\n const history = [{ type: TYPE_ROUTE, key: routes[index].key }];\n let initialRouteIndex;\n\n switch (backBehavior) {\n case 'order':\n for (let i = index; i > 0; i--) {\n history.unshift({ type: TYPE_ROUTE, key: routes[i - 1].key });\n }\n break;\n case 'firstRoute':\n if (index !== 0) {\n history.unshift({\n type: TYPE_ROUTE,\n key: routes[0].key,\n });\n }\n break;\n case 'initialRoute':\n initialRouteIndex = routes.findIndex(\n (route) => route.name === initialRouteName\n );\n initialRouteIndex = initialRouteIndex === -1 ? 0 : initialRouteIndex;\n\n if (index !== initialRouteIndex) {\n history.unshift({\n type: TYPE_ROUTE,\n key: routes[initialRouteIndex].key,\n });\n }\n break;\n case 'history':\n // The history will fill up on navigation\n break;\n }\n\n return history;\n};\n\nconst changeIndex = (\n state: TabNavigationState<ParamListBase>,\n index: number,\n backBehavior: BackBehavior,\n initialRouteName: string | undefined\n) => {\n let history;\n\n if (backBehavior === 'history') {\n const currentKey = state.routes[index].key;\n\n history = state.history\n .filter((it) => (it.type === 'route' ? it.key !== currentKey : false))\n .concat({ type: TYPE_ROUTE, key: currentKey });\n } else {\n history = getRouteHistory(\n state.routes,\n index,\n backBehavior,\n initialRouteName\n );\n }\n\n return {\n ...state,\n index,\n history,\n };\n};\n\nexport default function TabRouter({\n initialRouteName,\n backBehavior = 'firstRoute',\n}: TabRouterOptions) {\n const router: Router<\n TabNavigationState<ParamListBase>,\n TabActionType | CommonNavigationAction\n > = {\n ...BaseRouter,\n\n type: 'tab',\n\n getInitialState({ routeNames, routeParamList }) {\n const index =\n initialRouteName !== undefined && routeNames.includes(initialRouteName)\n ? routeNames.indexOf(initialRouteName)\n : 0;\n\n const routes = routeNames.map((name) => ({\n name,\n key: `${name}-${nanoid()}`,\n params: routeParamList[name],\n }));\n\n const history = getRouteHistory(\n routes,\n index,\n backBehavior,\n initialRouteName\n );\n\n return {\n stale: false,\n type: 'tab',\n key: `tab-${nanoid()}`,\n index,\n routeNames,\n history,\n routes,\n };\n },\n\n getRehydratedState(partialState, { routeNames, routeParamList }) {\n let state = partialState;\n\n if (state.stale === false) {\n return state;\n }\n\n const routes = routeNames.map((name) => {\n const route = (\n state as PartialState<TabNavigationState<ParamListBase>>\n ).routes.find((r) => r.name === name);\n\n return {\n ...route,\n name,\n key:\n route && route.name === name && route.key\n ? route.key\n : `${name}-${nanoid()}`,\n params:\n routeParamList[name] !== undefined\n ? {\n ...routeParamList[name],\n ...(route ? route.params : undefined),\n }\n : route\n ? route.params\n : undefined,\n } as Route<string>;\n });\n\n const index = Math.min(\n Math.max(routeNames.indexOf(state.routes[state?.index ?? 0]?.name), 0),\n routes.length - 1\n );\n\n const history =\n state.history?.filter((it) => routes.find((r) => r.key === it.key)) ??\n [];\n\n return changeIndex(\n {\n stale: false,\n type: 'tab',\n key: `tab-${nanoid()}`,\n index,\n routeNames,\n history,\n routes,\n },\n index,\n backBehavior,\n initialRouteName\n );\n },\n\n getStateForRouteNamesChange(\n state,\n { routeNames, routeParamList, routeKeyChanges }\n ) {\n const routes = routeNames.map(\n (name) =>\n state.routes.find(\n (r) => r.name === name && !routeKeyChanges.includes(r.name)\n ) || {\n name,\n key: `${name}-${nanoid()}`,\n params: routeParamList[name],\n }\n );\n\n const index = Math.max(\n 0,\n routeNames.indexOf(state.routes[state.index].name)\n );\n\n let history = state.history.filter(\n // Type will always be 'route' for tabs, but could be different in a router extending this (e.g. drawer)\n (it) => it.type !== 'route' || routes.find((r) => r.key === it.key)\n );\n\n if (!history.length) {\n history = getRouteHistory(\n routes,\n index,\n backBehavior,\n initialRouteName\n );\n }\n\n return {\n ...state,\n history,\n routeNames,\n routes,\n index,\n };\n },\n\n getStateForRouteFocus(state, key) {\n const index = state.routes.findIndex((r) => r.key === key);\n\n if (index === -1 || index === state.index) {\n return state;\n }\n\n return changeIndex(state, index, backBehavior, initialRouteName);\n },\n\n getStateForAction(state, action, { routeParamList }) {\n switch (action.type) {\n case 'JUMP_TO':\n case 'NAVIGATE': {\n let index = -1;\n\n if (action.type === 'NAVIGATE' && action.payload.key) {\n index = state.routes.findIndex(\n (route) => route.key === action.payload.key\n );\n } else {\n index = state.routes.findIndex(\n (route) => route.name === action.payload.name\n );\n }\n\n if (index === -1) {\n return null;\n }\n\n return changeIndex(\n {\n ...state,\n routes: state.routes.map((route, i) => {\n if (i !== index) {\n return route;\n }\n\n let params;\n\n if (action.type === 'NAVIGATE' && action.payload.merge) {\n params =\n action.payload.params !== undefined ||\n routeParamList[route.name] !== undefined\n ? {\n ...routeParamList[route.name],\n ...route.params,\n ...action.payload.params,\n }\n : route.params;\n } else {\n params =\n routeParamList[route.name] !== undefined\n ? {\n ...routeParamList[route.name],\n ...action.payload.params,\n }\n : action.payload.params;\n }\n\n const path =\n action.type === 'NAVIGATE' && action.payload.path != null\n ? action.payload.path\n : route.path;\n\n return params !== route.params || path !== route.path\n ? { ...route, path, params }\n : route;\n }),\n },\n index,\n backBehavior,\n initialRouteName\n );\n }\n\n case 'GO_BACK': {\n if (state.history.length === 1) {\n return null;\n }\n\n const previousKey = state.history[state.history.length - 2].key;\n const index = state.routes.findIndex(\n (route) => route.key === previousKey\n );\n\n if (index === -1) {\n return null;\n }\n\n return {\n ...state,\n history: state.history.slice(0, -1),\n index,\n };\n }\n\n default:\n return BaseRouter.getStateForAction(state, action);\n }\n },\n\n shouldActionChangeFocus(action) {\n return action.type === 'NAVIGATE';\n },\n\n actionCreators: TabActions,\n };\n\n return router;\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["index.tsx"],"names":["CommonActions","default","BaseRouter","DrawerActions","DrawerRouter","StackActions","StackRouter","TabActions","TabRouter"],"mappings":"AAAA,OAAO,KAAKA,aAAZ,MAA+B,iBAA/B;AAEA,SAASA,aAAT;AAEA,SAASC,OAAO,IAAIC,UAApB,QAAsC,cAAtC;AAQA,SAASC,aAAT,EAAwBF,OAAO,IAAIG,YAAnC,QAAuD,gBAAvD;AAOA,SAASC,YAAT,EAAuBJ,OAAO,IAAIK,WAAlC,QAAqD,eAArD;AAOA,SAASC,UAAT,EAAqBN,OAAO,IAAIO,SAAhC,QAAiD,aAAjD;AACA,cAAc,SAAd","sourcesContent":["import * as CommonActions from './CommonActions';\n\nexport { CommonActions };\n\nexport { default as BaseRouter } from './BaseRouter';\nexport type {\n DrawerActionHelpers,\n DrawerActionType,\n DrawerNavigationState,\n DrawerRouterOptions,\n DrawerStatus,\n} from './DrawerRouter';\nexport { DrawerActions, default as DrawerRouter } from './DrawerRouter';\nexport type {\n StackActionHelpers,\n StackActionType,\n StackNavigationState,\n StackRouterOptions,\n} from './StackRouter';\nexport { StackActions, default as StackRouter } from './StackRouter';\nexport type {\n TabActionHelpers,\n TabActionType,\n TabNavigationState,\n TabRouterOptions,\n} from './TabRouter';\nexport { TabActions, default as TabRouter } from './TabRouter';\nexport * from './types';\n"]}
1
+ {"version":3,"names":["CommonActions","default","BaseRouter","DrawerActions","DrawerRouter","StackActions","StackRouter","TabActions","TabRouter"],"sources":["index.tsx"],"sourcesContent":["import * as CommonActions from './CommonActions';\n\nexport { CommonActions };\n\nexport { default as BaseRouter } from './BaseRouter';\nexport type {\n DrawerActionHelpers,\n DrawerActionType,\n DrawerNavigationState,\n DrawerRouterOptions,\n DrawerStatus,\n} from './DrawerRouter';\nexport { DrawerActions, default as DrawerRouter } from './DrawerRouter';\nexport type {\n StackActionHelpers,\n StackActionType,\n StackNavigationState,\n StackRouterOptions,\n} from './StackRouter';\nexport { StackActions, default as StackRouter } from './StackRouter';\nexport type {\n TabActionHelpers,\n TabActionType,\n TabNavigationState,\n TabRouterOptions,\n} from './TabRouter';\nexport { TabActions, default as TabRouter } from './TabRouter';\nexport * from './types';\n"],"mappings":"AAAA,OAAO,KAAKA,aAAZ,MAA+B,iBAA/B;AAEA,SAASA,aAAT;AAEA,SAASC,OAAO,IAAIC,UAApB,QAAsC,cAAtC;AAQA,SAASC,aAAT,EAAwBF,OAAO,IAAIG,YAAnC,QAAuD,gBAAvD;AAOA,SAASC,YAAT,EAAuBJ,OAAO,IAAIK,WAAlC,QAAqD,eAArD;AAOA,SAASC,UAAT,EAAqBN,OAAO,IAAIO,SAAhC,QAAiD,aAAjD;AACA,cAAc,SAAd"}
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[]}
1
+ {"version":3,"names":[],"sources":["types.tsx"],"sourcesContent":["import type * as CommonActions from './CommonActions';\n\nexport type CommonNavigationAction = CommonActions.Action;\n\ntype NavigationRoute<\n ParamList extends ParamListBase,\n RouteName extends keyof ParamList\n> = Route<Extract<RouteName, string>, ParamList[RouteName]> & {\n state?: NavigationState | PartialState<NavigationState>;\n};\n\nexport type NavigationState<ParamList extends ParamListBase = ParamListBase> =\n Readonly<{\n /**\n * Unique key for the navigation state.\n */\n key: string;\n /**\n * Index of the currently focused route.\n */\n index: number;\n /**\n * List of valid route names as defined in the screen components.\n */\n routeNames: Extract<keyof ParamList, string>[];\n /**\n * Alternative entries for history.\n */\n history?: unknown[];\n /**\n * List of rendered routes.\n */\n routes: NavigationRoute<ParamList, keyof ParamList>[];\n /**\n * Custom type for the state, whether it's for tab, stack, drawer etc.\n * During rehydration, the state will be discarded if type doesn't match with router type.\n * It can also be used to detect the type of the navigator we're dealing with.\n */\n type: string;\n /**\n * Whether the navigation state has been rehydrated.\n */\n stale: false;\n }>;\n\nexport type InitialState = Readonly<\n Partial<Omit<NavigationState, 'stale' | 'routes'>> & {\n routes: (Omit<Route<string>, 'key'> & { state?: InitialState })[];\n }\n>;\n\nexport type PartialRoute<R extends Route<string>> = Omit<R, 'key'> & {\n key?: string;\n state?: PartialState<NavigationState>;\n};\n\nexport type PartialState<State extends NavigationState> = Partial<\n Omit<State, 'stale' | 'routes'>\n> &\n Readonly<{\n stale?: true;\n routes: PartialRoute<Route<State['routeNames'][number]>>[];\n }>;\n\nexport type Route<\n RouteName extends string,\n Params extends object | undefined = object | undefined\n> = Readonly<{\n /**\n * Unique key for the route.\n */\n key: string;\n /**\n * User-provided name for the route.\n */\n name: RouteName;\n /**\n * Path associated with the route.\n * Usually present when the screen was opened from a deep link.\n */\n path?: string;\n}> &\n (undefined extends Params\n ? Readonly<{\n /**\n * Params for this route\n */\n params?: Readonly<Params>;\n }>\n : Readonly<{\n /**\n * Params for this route\n */\n params: Readonly<Params>;\n }>);\n\nexport type ParamListBase = Record<string, object | undefined>;\n\nexport type NavigationAction = Readonly<{\n /**\n * Type of the action (e.g. `NAVIGATE`)\n */\n type: string;\n /**\n * Additional data for the action\n */\n payload?: object;\n /**\n * Key of the route which dispatched this action.\n */\n source?: string;\n /**\n * Key of the navigator which should handle this action.\n */\n target?: string;\n}>;\n\nexport type ActionCreators<Action extends NavigationAction> = {\n [key: string]: (...args: any) => Action;\n};\n\nexport type DefaultRouterOptions<RouteName extends string = string> = {\n /**\n * Name of the route to focus by on initial render.\n * If not specified, usually the first route is used.\n */\n initialRouteName?: RouteName;\n};\n\nexport type RouterFactory<\n State extends NavigationState,\n Action extends NavigationAction,\n RouterOptions extends DefaultRouterOptions\n> = (options: RouterOptions) => Router<State, Action>;\n\nexport type RouterConfigOptions = {\n routeNames: string[];\n routeParamList: ParamListBase;\n routeGetIdList: Record<\n string,\n | ((options: { params?: Record<string, any> }) => string | undefined)\n | undefined\n >;\n};\n\nexport type Router<\n State extends NavigationState,\n Action extends NavigationAction\n> = {\n /**\n * Type of the router. Should match the `type` property in state.\n * If the type doesn't match, the state will be discarded during rehydration.\n */\n type: State['type'];\n\n /**\n * Initialize the navigation state.\n *\n * @param options.routeNames List of valid route names as defined in the screen components.\n * @param options.routeParamsList Object containing params for each route.\n */\n getInitialState(options: RouterConfigOptions): State;\n\n /**\n * Rehydrate the full navigation state from a given partial state.\n *\n * @param partialState Navigation state to rehydrate from.\n * @param options.routeNames List of valid route names as defined in the screen components.\n * @param options.routeParamsList Object containing params for each route.\n */\n getRehydratedState(\n partialState: PartialState<State> | State,\n options: RouterConfigOptions\n ): State;\n\n /**\n * Take the current state and updated list of route names, and return a new state.\n *\n * @param state State object to update.\n * @param options.routeNames New list of route names.\n * @param options.routeParamsList Object containing params for each route.\n */\n getStateForRouteNamesChange(\n state: State,\n options: RouterConfigOptions & {\n /**\n * List of routes whose key has changed even if they still have the same name.\n * This allows to remove screens declaratively.\n */\n routeKeyChanges: string[];\n }\n ): State;\n\n /**\n * Take the current state and key of a route, and return a new state with the route focused\n *\n * @param state State object to apply the action on.\n * @param key Key of the route to focus.\n */\n getStateForRouteFocus(state: State, key: string): State;\n\n /**\n * Take the current state and action, and return a new state.\n * If the action cannot be handled, return `null`.\n *\n * @param state State object to apply the action on.\n * @param action Action object to apply.\n * @param options.routeNames List of valid route names as defined in the screen components.\n * @param options.routeParamsList Object containing params for each route.\n */\n getStateForAction(\n state: State,\n action: Action,\n options: RouterConfigOptions\n ): State | PartialState<State> | null;\n\n /**\n * Whether the action should also change focus in parent navigator\n *\n * @param action Action object to check.\n */\n shouldActionChangeFocus(action: NavigationAction): boolean;\n\n /**\n * Action creators for the router.\n */\n actionCreators?: ActionCreators<Action>;\n};\n"],"mappings":""}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@react-navigation/routers",
3
3
  "description": "Routers to help build custom navigators",
4
- "version": "6.1.3",
4
+ "version": "6.1.5",
5
5
  "keywords": [
6
6
  "react",
7
7
  "react-native",
@@ -57,5 +57,5 @@
57
57
  ]
58
58
  ]
59
59
  },
60
- "gitHead": "fc4c3a63ab156e17db7ba0cbd32ada319f78714e"
60
+ "gitHead": "4e29403ec63d9304561e296667f6cf15806c316b"
61
61
  }