@nascentdigital/funnel-apps 4.4.18
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.
- package/dist/react/app/domain/AppService.d.ts +19 -0
- package/dist/react/app/domain/AppService.js +19 -0
- package/dist/react/app/domain/AppServiceClient.d.ts +7 -0
- package/dist/react/app/domain/AppServiceClient.js +57 -0
- package/dist/react/app/domain/AppState.d.ts +1 -0
- package/dist/react/app/domain/AppState.js +2 -0
- package/dist/react/app/domain/index.d.ts +3 -0
- package/dist/react/app/domain/index.js +19 -0
- package/dist/react/app/server/AbstractAppService.d.ts +17 -0
- package/dist/react/app/server/AbstractAppService.js +24 -0
- package/dist/react/app/server/AppServices.d.ts +11 -0
- package/dist/react/app/server/AppServices.js +92 -0
- package/dist/react/app/server/index.d.ts +4 -0
- package/dist/react/app/server/index.js +20 -0
- package/dist/react/app/web/App.d.ts +38 -0
- package/dist/react/app/web/App.js +116 -0
- package/dist/react/app/web/AppContainer.d.ts +16 -0
- package/dist/react/app/web/AppContainer.js +109 -0
- package/dist/react/app/web/AppContext.d.ts +7 -0
- package/dist/react/app/web/AppContext.js +6 -0
- package/dist/react/app/web/AppLayout.d.ts +7 -0
- package/dist/react/app/web/AppLayout.js +34 -0
- package/dist/react/app/web/AppPage.d.ts +13 -0
- package/dist/react/app/web/AppPage.js +30 -0
- package/dist/react/app/web/AppRoot.d.ts +7 -0
- package/dist/react/app/web/AppRoot.js +43 -0
- package/dist/react/app/web/index.d.ts +5 -0
- package/dist/react/app/web/index.js +21 -0
- package/dist/react/app/web/useApp.d.ts +2 -0
- package/dist/react/app/web/useApp.js +33 -0
- package/dist/react/auth0/server/Auth0IdentityService.d.ts +25 -0
- package/dist/react/auth0/server/Auth0IdentityService.js +84 -0
- package/dist/react/auth0/server/Auth0Profile.d.ts +19 -0
- package/dist/react/auth0/server/Auth0Profile.js +108 -0
- package/dist/react/auth0/server/Auth0ProfileFactory.d.ts +15 -0
- package/dist/react/auth0/server/Auth0ProfileFactory.js +51 -0
- package/dist/react/auth0/server/Auth0ProfileManagementService.d.ts +17 -0
- package/dist/react/auth0/server/Auth0ProfileManagementService.js +127 -0
- package/dist/react/auth0/server/Auth0ProfileServices.d.ts +13 -0
- package/dist/react/auth0/server/Auth0ProfileServices.js +19 -0
- package/dist/react/auth0/server/Auth0ProfileStore.d.ts +17 -0
- package/dist/react/auth0/server/Auth0ProfileStore.js +83 -0
- package/dist/react/auth0/server/Auth0ProfileUserService.d.ts +16 -0
- package/dist/react/auth0/server/Auth0ProfileUserService.js +48 -0
- package/dist/react/auth0/server/index.d.ts +4 -0
- package/dist/react/auth0/server/index.js +20 -0
- package/dist/react/auth0/web/Auth0IdentityClient.d.ts +34 -0
- package/dist/react/auth0/web/Auth0IdentityClient.js +200 -0
- package/dist/react/auth0/web/Auth0IdentityClientProvider.d.ts +35 -0
- package/dist/react/auth0/web/Auth0IdentityClientProvider.js +67 -0
- package/dist/react/auth0/web/index.d.ts +1 -0
- package/dist/react/auth0/web/index.js +17 -0
- package/dist/react/bridge/core/BridgeConnection.d.ts +6 -0
- package/dist/react/bridge/core/BridgeConnection.js +2 -0
- package/dist/react/bridge/core/BridgeConstants.d.ts +7 -0
- package/dist/react/bridge/core/BridgeConstants.js +15 -0
- package/dist/react/bridge/core/BridgeEvent.d.ts +52 -0
- package/dist/react/bridge/core/BridgeEvent.js +28 -0
- package/dist/react/bridge/core/BridgeMethod.d.ts +12 -0
- package/dist/react/bridge/core/BridgeMethod.js +2 -0
- package/dist/react/bridge/core/BridgeMethodCall.d.ts +23 -0
- package/dist/react/bridge/core/BridgeMethodCall.js +37 -0
- package/dist/react/bridge/core/BridgeMethods.d.ts +35 -0
- package/dist/react/bridge/core/BridgeMethods.js +2 -0
- package/dist/react/bridge/core/BridgeState.d.ts +24 -0
- package/dist/react/bridge/core/BridgeState.js +2 -0
- package/dist/react/bridge/core/index.d.ts +7 -0
- package/dist/react/bridge/core/index.js +23 -0
- package/dist/react/bridge/web/Bridge.d.ts +32 -0
- package/dist/react/bridge/web/Bridge.js +183 -0
- package/dist/react/bridge/web/BridgeContext.d.ts +8 -0
- package/dist/react/bridge/web/BridgeContext.js +6 -0
- package/dist/react/bridge/web/BridgeGlobals.d.ts +12 -0
- package/dist/react/bridge/web/BridgeGlobals.js +2 -0
- package/dist/react/bridge/web/BridgeProvider.d.ts +7 -0
- package/dist/react/bridge/web/BridgeProvider.js +36 -0
- package/dist/react/bridge/web/index.d.ts +6 -0
- package/dist/react/bridge/web/index.js +22 -0
- package/dist/react/bridge/web/useBridge.d.ts +3 -0
- package/dist/react/bridge/web/useBridge.js +39 -0
- package/dist/react/bridge/web/useBridgeState.d.ts +2 -0
- package/dist/react/bridge/web/useBridgeState.js +43 -0
- package/dist/react/bridge/web/useSafeArea.d.ts +1 -0
- package/dist/react/bridge/web/useSafeArea.js +11 -0
- package/dist/react/content/core/AppContentClient.d.ts +14 -0
- package/dist/react/content/core/AppContentClient.js +51 -0
- package/dist/react/content/core/ContentClientContext.d.ts +7 -0
- package/dist/react/content/core/ContentClientContext.js +6 -0
- package/dist/react/content/core/index.d.ts +1 -0
- package/dist/react/content/core/index.js +17 -0
- package/dist/react/content/domain/ContentAppRequest.d.ts +20 -0
- package/dist/react/content/domain/ContentAppRequest.js +11 -0
- package/dist/react/content/domain/index.d.ts +1 -0
- package/dist/react/content/domain/index.js +17 -0
- package/dist/react/content/server/ContentAppService.d.ts +11 -0
- package/dist/react/content/server/ContentAppService.js +34 -0
- package/dist/react/content/server/index.d.ts +1 -0
- package/dist/react/content/server/index.js +17 -0
- package/dist/react/content/web/ContentProvider.d.ts +5 -0
- package/dist/react/content/web/ContentProvider.js +17 -0
- package/dist/react/content/web/index.d.ts +6 -0
- package/dist/react/content/web/index.js +22 -0
- package/dist/react/content/web/useCollection.d.ts +10 -0
- package/dist/react/content/web/useCollection.js +22 -0
- package/dist/react/content/web/useCollections.d.ts +10 -0
- package/dist/react/content/web/useCollections.js +32 -0
- package/dist/react/content/web/useContentClient.d.ts +1 -0
- package/dist/react/content/web/useContentClient.js +9 -0
- package/dist/react/cookies/web/CookieService.d.ts +25 -0
- package/dist/react/cookies/web/CookieService.js +45 -0
- package/dist/react/cookies/web/CookieServiceContext.d.ts +7 -0
- package/dist/react/cookies/web/CookieServiceContext.js +6 -0
- package/dist/react/cookies/web/CookieServiceProvider.d.ts +6 -0
- package/dist/react/cookies/web/CookieServiceProvider.js +16 -0
- package/dist/react/cookies/web/index.d.ts +3 -0
- package/dist/react/cookies/web/index.js +19 -0
- package/dist/react/cookies/web/useCookieService.d.ts +2 -0
- package/dist/react/cookies/web/useCookieService.js +29 -0
- package/dist/react/identity/core/AbstractIdentityClient.d.ts +22 -0
- package/dist/react/identity/core/AbstractIdentityClient.js +31 -0
- package/dist/react/identity/core/IdentityClient.d.ts +22 -0
- package/dist/react/identity/core/IdentityClient.js +13 -0
- package/dist/react/identity/core/IdentityClientContext.d.ts +7 -0
- package/dist/react/identity/core/IdentityClientContext.js +6 -0
- package/dist/react/identity/core/index.d.ts +6 -0
- package/dist/react/identity/core/index.js +22 -0
- package/dist/react/identity/core/useIdentity.d.ts +10 -0
- package/dist/react/identity/core/useIdentity.js +39 -0
- package/dist/react/identity/core/useIdentityClient.d.ts +2 -0
- package/dist/react/identity/core/useIdentityClient.js +17 -0
- package/dist/react/identity/domain/AnonymousIdentity.d.ts +15 -0
- package/dist/react/identity/domain/AnonymousIdentity.js +27 -0
- package/dist/react/identity/domain/AuthenticatedIdentity.d.ts +25 -0
- package/dist/react/identity/domain/AuthenticatedIdentity.js +32 -0
- package/dist/react/identity/domain/Identity.d.ts +6 -0
- package/dist/react/identity/domain/Identity.js +2 -0
- package/dist/react/identity/domain/IdentityAppRequest.d.ts +8 -0
- package/dist/react/identity/domain/IdentityAppRequest.js +10 -0
- package/dist/react/identity/domain/index.d.ts +4 -0
- package/dist/react/identity/domain/index.js +20 -0
- package/dist/react/identity/server/IdentityAppService.d.ts +9 -0
- package/dist/react/identity/server/IdentityAppService.js +32 -0
- package/dist/react/identity/server/IdentityService.d.ts +17 -0
- package/dist/react/identity/server/IdentityService.js +25 -0
- package/dist/react/identity/server/index.d.ts +4 -0
- package/dist/react/identity/server/index.js +20 -0
- package/dist/react/identity/web/WebIdentityClientProvider.d.ts +8 -0
- package/dist/react/identity/web/WebIdentityClientProvider.js +27 -0
- package/dist/react/identity/web/WebIdentityProvider.d.ts +5 -0
- package/dist/react/identity/web/WebIdentityProvider.js +21 -0
- package/dist/react/identity/web/bridge/AppBridgeIdentityClient.d.ts +14 -0
- package/dist/react/identity/web/bridge/AppBridgeIdentityClient.js +47 -0
- package/dist/react/identity/web/bridge/AppBridgeIdentityClientProvider.d.ts +2 -0
- package/dist/react/identity/web/bridge/AppBridgeIdentityClientProvider.js +28 -0
- package/dist/react/identity/web/bridge/index.d.ts +1 -0
- package/dist/react/identity/web/bridge/index.js +17 -0
- package/dist/react/identity/web/index.d.ts +3 -0
- package/dist/react/identity/web/index.js +19 -0
- package/dist/react/nav/core/SpecSourceContext.d.ts +7 -0
- package/dist/react/nav/core/SpecSourceContext.js +6 -0
- package/dist/react/nav/core/index.d.ts +2 -0
- package/dist/react/nav/core/index.js +18 -0
- package/dist/react/nav/core/useSpec.d.ts +3 -0
- package/dist/react/nav/core/useSpec.js +30 -0
- package/dist/react/nav/domain/Icon.d.ts +2 -0
- package/dist/react/nav/domain/Icon.js +2 -0
- package/dist/react/nav/domain/Modal.d.ts +25 -0
- package/dist/react/nav/domain/Modal.js +28 -0
- package/dist/react/nav/domain/Navigation.d.ts +13 -0
- package/dist/react/nav/domain/Navigation.js +2 -0
- package/dist/react/nav/domain/NavigationCommand.d.ts +14 -0
- package/dist/react/nav/domain/NavigationCommand.js +2 -0
- package/dist/react/nav/domain/Route.d.ts +12 -0
- package/dist/react/nav/domain/Route.js +2 -0
- package/dist/react/nav/domain/Routes.d.ts +6 -0
- package/dist/react/nav/domain/Routes.js +74 -0
- package/dist/react/nav/domain/Screen.d.ts +24 -0
- package/dist/react/nav/domain/Screen.js +28 -0
- package/dist/react/nav/domain/Skeleton.d.ts +26 -0
- package/dist/react/nav/domain/Skeleton.js +2 -0
- package/dist/react/nav/domain/Spec.d.ts +33 -0
- package/dist/react/nav/domain/Spec.js +124 -0
- package/dist/react/nav/domain/SpecSource.d.ts +21 -0
- package/dist/react/nav/domain/SpecSource.js +28 -0
- package/dist/react/nav/domain/Stack.d.ts +35 -0
- package/dist/react/nav/domain/Stack.js +44 -0
- package/dist/react/nav/domain/Tabs.d.ts +37 -0
- package/dist/react/nav/domain/Tabs.js +45 -0
- package/dist/react/nav/domain/icons/ImageIcon.d.ts +2 -0
- package/dist/react/nav/domain/icons/ImageIcon.js +7 -0
- package/dist/react/nav/domain/icons/LucideIcon.d.ts +2 -0
- package/dist/react/nav/domain/icons/LucideIcon.js +7 -0
- package/dist/react/nav/domain/icons/index.d.ts +2 -0
- package/dist/react/nav/domain/icons/index.js +18 -0
- package/dist/react/nav/domain/index.d.ts +14 -0
- package/dist/react/nav/domain/index.js +30 -0
- package/dist/react/nav/domain/sources/AbstractSpecSource.d.ts +23 -0
- package/dist/react/nav/domain/sources/AbstractSpecSource.js +64 -0
- package/dist/react/nav/domain/sources/StaticSpecSource.d.ts +9 -0
- package/dist/react/nav/domain/sources/StaticSpecSource.js +16 -0
- package/dist/react/nav/domain/sources/index.d.ts +2 -0
- package/dist/react/nav/domain/sources/index.js +18 -0
- package/dist/react/nav/server/SpecService.d.ts +9 -0
- package/dist/react/nav/server/SpecService.js +31 -0
- package/dist/react/nav/server/exports.d.ts +1 -0
- package/dist/react/nav/server/exports.js +17 -0
- package/dist/react/nav/server/index.d.ts +2 -0
- package/dist/react/nav/server/index.js +38 -0
- package/dist/react/nav/web/WebSpecProvider.d.ts +2 -0
- package/dist/react/nav/web/WebSpecProvider.js +41 -0
- package/dist/react/nav/web/index.d.ts +3 -0
- package/dist/react/nav/web/index.js +19 -0
- package/dist/react/nav/web/navigator/NativeNavigator.d.ts +13 -0
- package/dist/react/nav/web/navigator/NativeNavigator.js +47 -0
- package/dist/react/nav/web/navigator/Navigator.d.ts +7 -0
- package/dist/react/nav/web/navigator/Navigator.js +2 -0
- package/dist/react/nav/web/navigator/NavigatorContext.d.ts +7 -0
- package/dist/react/nav/web/navigator/NavigatorContext.js +6 -0
- package/dist/react/nav/web/navigator/WebNavigator.d.ts +13 -0
- package/dist/react/nav/web/navigator/WebNavigator.js +38 -0
- package/dist/react/nav/web/navigator/index.d.ts +5 -0
- package/dist/react/nav/web/navigator/index.js +21 -0
- package/dist/react/nav/web/navigator/useNavigator.d.ts +1 -0
- package/dist/react/nav/web/navigator/useNavigator.js +17 -0
- package/dist/react/nav.d.ts +1 -0
- package/dist/react/nav.js +37 -0
- package/dist/react/profile/core/AbstractProfileClient.d.ts +18 -0
- package/dist/react/profile/core/AbstractProfileClient.js +31 -0
- package/dist/react/profile/core/ProfileClient.d.ts +21 -0
- package/dist/react/profile/core/ProfileClient.js +2 -0
- package/dist/react/profile/core/ProfileClientContext.d.ts +7 -0
- package/dist/react/profile/core/ProfileClientContext.js +6 -0
- package/dist/react/profile/core/index.d.ts +6 -0
- package/dist/react/profile/core/index.js +22 -0
- package/dist/react/profile/core/useProfile.d.ts +9 -0
- package/dist/react/profile/core/useProfile.js +47 -0
- package/dist/react/profile/core/useProfileClient.d.ts +2 -0
- package/dist/react/profile/core/useProfileClient.js +17 -0
- package/dist/react/profile/core/useProfileStore.d.ts +2 -0
- package/dist/react/profile/core/useProfileStore.js +28 -0
- package/dist/react/profile/domain/Profile.d.ts +80 -0
- package/dist/react/profile/domain/Profile.js +209 -0
- package/dist/react/profile/domain/ProfileAppRequest.d.ts +15 -0
- package/dist/react/profile/domain/ProfileAppRequest.js +12 -0
- package/dist/react/profile/domain/ProfileStore.d.ts +65 -0
- package/dist/react/profile/domain/ProfileStore.js +180 -0
- package/dist/react/profile/domain/index.d.ts +3 -0
- package/dist/react/profile/domain/index.js +19 -0
- package/dist/react/profile/server/ProfileAppService.d.ts +11 -0
- package/dist/react/profile/server/ProfileAppService.js +49 -0
- package/dist/react/profile/server/ProfileManagementService.d.ts +28 -0
- package/dist/react/profile/server/ProfileManagementService.js +3 -0
- package/dist/react/profile/server/ProfileServices.d.ts +22 -0
- package/dist/react/profile/server/ProfileServices.js +24 -0
- package/dist/react/profile/server/ProfileUserService.d.ts +5 -0
- package/dist/react/profile/server/ProfileUserService.js +2 -0
- package/dist/react/profile/server/index.d.ts +5 -0
- package/dist/react/profile/server/index.js +21 -0
- package/dist/react/profile/web/WebProfile.d.ts +11 -0
- package/dist/react/profile/web/WebProfile.js +37 -0
- package/dist/react/profile/web/WebProfileClient.d.ts +9 -0
- package/dist/react/profile/web/WebProfileClient.js +76 -0
- package/dist/react/profile/web/WebProfileProvider.d.ts +5 -0
- package/dist/react/profile/web/WebProfileProvider.js +62 -0
- package/dist/react/profile/web/WebProfileStore.d.ts +8 -0
- package/dist/react/profile/web/WebProfileStore.js +32 -0
- package/dist/react/profile/web/index.d.ts +3 -0
- package/dist/react/profile/web/index.js +19 -0
- package/dist/react/push/domain/PushAppRequest.d.ts +13 -0
- package/dist/react/push/domain/PushAppRequest.js +12 -0
- package/dist/react/push/domain/PushStore.d.ts +7 -0
- package/dist/react/push/domain/PushStore.js +9 -0
- package/dist/react/push/domain/index.d.ts +2 -0
- package/dist/react/push/domain/index.js +18 -0
- package/dist/react/push/server/PushService.d.ts +22 -0
- package/dist/react/push/server/PushService.js +57 -0
- package/dist/react/push/server/index.d.ts +3 -0
- package/dist/react/push/server/index.js +19 -0
- package/dist/react/push/server/keygen.d.ts +1 -0
- package/dist/react/push/server/keygen.js +8 -0
- package/dist/react/push/web/PushClient.d.ts +35 -0
- package/dist/react/push/web/PushClient.js +204 -0
- package/dist/react/push/web/PushContext.d.ts +7 -0
- package/dist/react/push/web/PushContext.js +6 -0
- package/dist/react/push/web/PushProvider.d.ts +6 -0
- package/dist/react/push/web/PushProvider.js +42 -0
- package/dist/react/push/web/index.d.ts +4 -0
- package/dist/react/push/web/index.js +20 -0
- package/dist/react/push/web/usePushClient.d.ts +3 -0
- package/dist/react/push/web/usePushClient.js +40 -0
- package/dist/react/server.d.ts +7 -0
- package/dist/react/server.js +23 -0
- package/dist/react/ui/web/HideSplash.d.ts +1 -0
- package/dist/react/ui/web/HideSplash.js +28 -0
- package/dist/react/ui/web/Link.d.ts +6 -0
- package/dist/react/ui/web/Link.js +12 -0
- package/dist/react/ui/web/SafeArea.d.ts +9 -0
- package/dist/react/ui/web/SafeArea.js +26 -0
- package/dist/react/ui/web/index.d.ts +3 -0
- package/dist/react/ui/web/index.js +19 -0
- package/dist/react/web.d.ts +10 -0
- package/dist/react/web.js +26 -0
- package/dist/reactnative/app/domain/AppService.d.ts +19 -0
- package/dist/reactnative/app/domain/AppService.js +19 -0
- package/dist/reactnative/app/domain/AppServiceClient.d.ts +7 -0
- package/dist/reactnative/app/domain/AppServiceClient.js +57 -0
- package/dist/reactnative/app/domain/AppState.d.ts +1 -0
- package/dist/reactnative/app/domain/AppState.js +2 -0
- package/dist/reactnative/app/domain/index.d.ts +3 -0
- package/dist/reactnative/app/domain/index.js +19 -0
- package/dist/reactnative/app/rn/AppContainer.d.ts +10 -0
- package/dist/reactnative/app/rn/AppContainer.js +77 -0
- package/dist/reactnative/app/rn/AppRoot.d.ts +5 -0
- package/dist/reactnative/app/rn/AppRoot.js +22 -0
- package/dist/reactnative/app/rn/AppServiceClient.d.ts +4 -0
- package/dist/reactnative/app/rn/AppServiceClient.js +44 -0
- package/dist/reactnative/app/rn/index.d.ts +5 -0
- package/dist/reactnative/app/rn/index.js +22 -0
- package/dist/reactnative/auth0/rn/Auth0IdentityClient.d.ts +33 -0
- package/dist/reactnative/auth0/rn/Auth0IdentityClient.js +234 -0
- package/dist/reactnative/auth0/rn/Auth0IdentityClientProvider.d.ts +27 -0
- package/dist/reactnative/auth0/rn/Auth0IdentityClientProvider.js +60 -0
- package/dist/reactnative/auth0/rn/index.d.ts +2 -0
- package/dist/reactnative/auth0/rn/index.js +18 -0
- package/dist/reactnative/bridge/core/BridgeConnection.d.ts +6 -0
- package/dist/reactnative/bridge/core/BridgeConnection.js +2 -0
- package/dist/reactnative/bridge/core/BridgeConstants.d.ts +7 -0
- package/dist/reactnative/bridge/core/BridgeConstants.js +15 -0
- package/dist/reactnative/bridge/core/BridgeEvent.d.ts +52 -0
- package/dist/reactnative/bridge/core/BridgeEvent.js +28 -0
- package/dist/reactnative/bridge/core/BridgeMethod.d.ts +12 -0
- package/dist/reactnative/bridge/core/BridgeMethod.js +2 -0
- package/dist/reactnative/bridge/core/BridgeMethodCall.d.ts +23 -0
- package/dist/reactnative/bridge/core/BridgeMethodCall.js +37 -0
- package/dist/reactnative/bridge/core/BridgeMethods.d.ts +35 -0
- package/dist/reactnative/bridge/core/BridgeMethods.js +2 -0
- package/dist/reactnative/bridge/core/BridgeState.d.ts +24 -0
- package/dist/reactnative/bridge/core/BridgeState.js +2 -0
- package/dist/reactnative/bridge/core/index.d.ts +7 -0
- package/dist/reactnative/bridge/core/index.js +23 -0
- package/dist/reactnative/bridge/rn/BridgeProxy.d.ts +35 -0
- package/dist/reactnative/bridge/rn/BridgeProxy.js +331 -0
- package/dist/reactnative/bridge/rn/BridgeProxyContext.d.ts +8 -0
- package/dist/reactnative/bridge/rn/BridgeProxyContext.js +6 -0
- package/dist/reactnative/bridge/rn/BridgeProxyProvider.d.ts +8 -0
- package/dist/reactnative/bridge/rn/BridgeProxyProvider.js +39 -0
- package/dist/reactnative/bridge/rn/BridgeWebview.d.ts +7 -0
- package/dist/reactnative/bridge/rn/BridgeWebview.js +51 -0
- package/dist/reactnative/bridge/rn/index.d.ts +7 -0
- package/dist/reactnative/bridge/rn/index.js +23 -0
- package/dist/reactnative/bridge/rn/useBridgeProxy.d.ts +3 -0
- package/dist/reactnative/bridge/rn/useBridgeProxy.js +38 -0
- package/dist/reactnative/bridge/rn/useBridgeProxyCalls.d.ts +3 -0
- package/dist/reactnative/bridge/rn/useBridgeProxyCalls.js +32 -0
- package/dist/reactnative/bridge/rn/useBridgeProxyState.d.ts +2 -0
- package/dist/reactnative/bridge/rn/useBridgeProxyState.js +46 -0
- package/dist/reactnative/identity/core/AbstractIdentityClient.d.ts +22 -0
- package/dist/reactnative/identity/core/AbstractIdentityClient.js +31 -0
- package/dist/reactnative/identity/core/IdentityClient.d.ts +22 -0
- package/dist/reactnative/identity/core/IdentityClient.js +13 -0
- package/dist/reactnative/identity/core/IdentityClientContext.d.ts +7 -0
- package/dist/reactnative/identity/core/IdentityClientContext.js +6 -0
- package/dist/reactnative/identity/core/index.d.ts +6 -0
- package/dist/reactnative/identity/core/index.js +22 -0
- package/dist/reactnative/identity/core/useIdentity.d.ts +10 -0
- package/dist/reactnative/identity/core/useIdentity.js +39 -0
- package/dist/reactnative/identity/core/useIdentityClient.d.ts +2 -0
- package/dist/reactnative/identity/core/useIdentityClient.js +17 -0
- package/dist/reactnative/identity/domain/AnonymousIdentity.d.ts +15 -0
- package/dist/reactnative/identity/domain/AnonymousIdentity.js +27 -0
- package/dist/reactnative/identity/domain/AuthenticatedIdentity.d.ts +25 -0
- package/dist/reactnative/identity/domain/AuthenticatedIdentity.js +32 -0
- package/dist/reactnative/identity/domain/Identity.d.ts +6 -0
- package/dist/reactnative/identity/domain/Identity.js +2 -0
- package/dist/reactnative/identity/domain/IdentityAppRequest.d.ts +8 -0
- package/dist/reactnative/identity/domain/IdentityAppRequest.js +10 -0
- package/dist/reactnative/identity/domain/index.d.ts +4 -0
- package/dist/reactnative/identity/domain/index.js +20 -0
- package/dist/reactnative/identity/rn/RNIdentityClientProvider.d.ts +8 -0
- package/dist/reactnative/identity/rn/RNIdentityClientProvider.js +22 -0
- package/dist/reactnative/identity/rn/RNIdentityProvider.d.ts +5 -0
- package/dist/reactnative/identity/rn/RNIdentityProvider.js +14 -0
- package/dist/reactnative/identity/rn/index.d.ts +3 -0
- package/dist/reactnative/identity/rn/index.js +19 -0
- package/dist/reactnative/nav/core/SpecSourceContext.d.ts +7 -0
- package/dist/reactnative/nav/core/SpecSourceContext.js +6 -0
- package/dist/reactnative/nav/core/index.d.ts +2 -0
- package/dist/reactnative/nav/core/index.js +18 -0
- package/dist/reactnative/nav/core/useSpec.d.ts +3 -0
- package/dist/reactnative/nav/core/useSpec.js +30 -0
- package/dist/reactnative/nav/domain/Icon.d.ts +2 -0
- package/dist/reactnative/nav/domain/Icon.js +2 -0
- package/dist/reactnative/nav/domain/Modal.d.ts +25 -0
- package/dist/reactnative/nav/domain/Modal.js +28 -0
- package/dist/reactnative/nav/domain/Navigation.d.ts +13 -0
- package/dist/reactnative/nav/domain/Navigation.js +2 -0
- package/dist/reactnative/nav/domain/NavigationCommand.d.ts +14 -0
- package/dist/reactnative/nav/domain/NavigationCommand.js +2 -0
- package/dist/reactnative/nav/domain/Route.d.ts +12 -0
- package/dist/reactnative/nav/domain/Route.js +2 -0
- package/dist/reactnative/nav/domain/Routes.d.ts +6 -0
- package/dist/reactnative/nav/domain/Routes.js +74 -0
- package/dist/reactnative/nav/domain/Screen.d.ts +24 -0
- package/dist/reactnative/nav/domain/Screen.js +28 -0
- package/dist/reactnative/nav/domain/Skeleton.d.ts +26 -0
- package/dist/reactnative/nav/domain/Skeleton.js +2 -0
- package/dist/reactnative/nav/domain/Spec.d.ts +33 -0
- package/dist/reactnative/nav/domain/Spec.js +124 -0
- package/dist/reactnative/nav/domain/SpecSource.d.ts +21 -0
- package/dist/reactnative/nav/domain/SpecSource.js +28 -0
- package/dist/reactnative/nav/domain/Stack.d.ts +35 -0
- package/dist/reactnative/nav/domain/Stack.js +44 -0
- package/dist/reactnative/nav/domain/Tabs.d.ts +37 -0
- package/dist/reactnative/nav/domain/Tabs.js +45 -0
- package/dist/reactnative/nav/domain/icons/ImageIcon.d.ts +2 -0
- package/dist/reactnative/nav/domain/icons/ImageIcon.js +7 -0
- package/dist/reactnative/nav/domain/icons/LucideIcon.d.ts +2 -0
- package/dist/reactnative/nav/domain/icons/LucideIcon.js +7 -0
- package/dist/reactnative/nav/domain/icons/index.d.ts +2 -0
- package/dist/reactnative/nav/domain/icons/index.js +18 -0
- package/dist/reactnative/nav/domain/index.d.ts +14 -0
- package/dist/reactnative/nav/domain/index.js +30 -0
- package/dist/reactnative/nav/domain/sources/AbstractSpecSource.d.ts +23 -0
- package/dist/reactnative/nav/domain/sources/AbstractSpecSource.js +64 -0
- package/dist/reactnative/nav/domain/sources/StaticSpecSource.d.ts +9 -0
- package/dist/reactnative/nav/domain/sources/StaticSpecSource.js +16 -0
- package/dist/reactnative/nav/domain/sources/index.d.ts +2 -0
- package/dist/reactnative/nav/domain/sources/index.js +18 -0
- package/dist/reactnative/nav/rn/NavigationEngine.d.ts +1 -0
- package/dist/reactnative/nav/rn/NavigationEngine.js +155 -0
- package/dist/reactnative/nav/rn/NavigationScreen.d.ts +9 -0
- package/dist/reactnative/nav/rn/NavigationScreen.js +215 -0
- package/dist/reactnative/nav/rn/RNSpecProvider.d.ts +2 -0
- package/dist/reactnative/nav/rn/RNSpecProvider.js +30 -0
- package/dist/reactnative/nav/rn/RNSpecSource.d.ts +5 -0
- package/dist/reactnative/nav/rn/RNSpecSource.js +30 -0
- package/dist/reactnative/nav/rn/index.d.ts +4 -0
- package/dist/reactnative/nav/rn/index.js +20 -0
- package/dist/reactnative/profile/domain/Profile.d.ts +80 -0
- package/dist/reactnative/profile/domain/Profile.js +209 -0
- package/dist/reactnative/profile/domain/ProfileAppRequest.d.ts +15 -0
- package/dist/reactnative/profile/domain/ProfileAppRequest.js +12 -0
- package/dist/reactnative/profile/domain/ProfileStore.d.ts +65 -0
- package/dist/reactnative/profile/domain/ProfileStore.js +180 -0
- package/dist/reactnative/profile/domain/index.d.ts +3 -0
- package/dist/reactnative/profile/domain/index.js +19 -0
- package/dist/reactnative/push/domain/PushAppRequest.d.ts +13 -0
- package/dist/reactnative/push/domain/PushAppRequest.js +12 -0
- package/dist/reactnative/push/domain/PushStore.d.ts +7 -0
- package/dist/reactnative/push/domain/PushStore.js +9 -0
- package/dist/reactnative/push/domain/index.d.ts +2 -0
- package/dist/reactnative/push/domain/index.js +18 -0
- package/dist/reactnative/push/rn/PushClient.d.ts +32 -0
- package/dist/reactnative/push/rn/PushClient.js +247 -0
- package/dist/reactnative/push/rn/PushContext.d.ts +7 -0
- package/dist/reactnative/push/rn/PushContext.js +6 -0
- package/dist/reactnative/push/rn/PushProvider.d.ts +2 -0
- package/dist/reactnative/push/rn/PushProvider.js +45 -0
- package/dist/reactnative/push/rn/index.d.ts +3 -0
- package/dist/reactnative/push/rn/index.js +19 -0
- package/dist/reactnative/push/rn/usePushClient.d.ts +3 -0
- package/dist/reactnative/push/rn/usePushClient.js +40 -0
- package/dist/reactnative/rn.d.ts +7 -0
- package/dist/reactnative/rn.js +23 -0
- package/dist/reactnative/ui/rn/Tailwind.d.ts +175 -0
- package/dist/reactnative/ui/rn/Tailwind.js +211 -0
- package/dist/reactnative/ui/rn/atomic/Button.d.ts +97 -0
- package/dist/reactnative/ui/rn/atomic/Button.js +75 -0
- package/dist/reactnative/ui/rn/atomic/TextField.d.ts +112 -0
- package/dist/reactnative/ui/rn/atomic/TextField.js +135 -0
- package/dist/reactnative/ui/rn/atomic/index.d.ts +2 -0
- package/dist/reactnative/ui/rn/atomic/index.js +18 -0
- package/dist/reactnative/ui/rn/index.d.ts +1 -0
- package/dist/reactnative/ui/rn/index.js +17 -0
- package/dist/styles/rn/_index.css +2 -0
- package/dist/styles/rn/atomic/Button.css +54 -0
- package/dist/styles/rn/atomic/TextField.css +77 -0
- package/dist/styles/rn/atomic/_index.css +2 -0
- package/dist/styles/rn/base/_index.css +1 -0
- package/dist/styles/rn/base/tailwind.css +3 -0
- package/dist/styles/rn.css +1 -0
- package/dist/styles/web/_index.css +1 -0
- package/dist/styles/web/layout/SafeArea.css +17 -0
- package/dist/styles/web/layout/_index.css +1 -0
- package/dist/styles/web.css +1 -0
- package/package.json +87 -0
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Result } from '@nascentdigital/funnel-core';
|
|
2
|
+
import { BehaviorSubject, Observable } from 'rxjs';
|
|
3
|
+
import type { Navigation } from '../Navigation';
|
|
4
|
+
import type { Spec } from '../Spec';
|
|
5
|
+
import type { SpecSource } from '../SpecSource';
|
|
6
|
+
export declare abstract class AbstractSpecSource<TNavigation extends Navigation> implements SpecSource<TNavigation> {
|
|
7
|
+
protected readonly _result$: BehaviorSubject<Result<Spec<TNavigation>>>;
|
|
8
|
+
protected _syncing$: BehaviorSubject<boolean>;
|
|
9
|
+
protected constructor({ spec }?: AbstractSpecSource.ConstructorArgs<TNavigation>);
|
|
10
|
+
get result$(): Observable<Result<Spec<TNavigation>>>;
|
|
11
|
+
get result(): Result<Spec<TNavigation>>;
|
|
12
|
+
protected set result(result: Result<Spec<TNavigation>>);
|
|
13
|
+
syncing$(): Observable<boolean>;
|
|
14
|
+
get syncing(): boolean;
|
|
15
|
+
protected set syncing(syncing: boolean);
|
|
16
|
+
sync(args: SpecSource.Sync.Args): Promise<Result.Completion<Spec<TNavigation>>>;
|
|
17
|
+
protected abstract onSync(args: SpecSource.Sync.Args): Promise<Spec<TNavigation>>;
|
|
18
|
+
}
|
|
19
|
+
export declare namespace AbstractSpecSource {
|
|
20
|
+
type ConstructorArgs<TNavigation extends Navigation> = {
|
|
21
|
+
spec?: Spec<TNavigation>;
|
|
22
|
+
};
|
|
23
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AbstractSpecSource = void 0;
|
|
4
|
+
const funnel_core_1 = require("@nascentdigital/funnel-core");
|
|
5
|
+
const rxjs_1 = require("rxjs");
|
|
6
|
+
// base class
|
|
7
|
+
class AbstractSpecSource {
|
|
8
|
+
constructor({ spec } = {}) {
|
|
9
|
+
// initialize instance variables
|
|
10
|
+
this._result$ = new rxjs_1.BehaviorSubject(spec
|
|
11
|
+
? { __type: 'success', result: spec }
|
|
12
|
+
: { __type: 'pending' });
|
|
13
|
+
this._syncing$ = new rxjs_1.BehaviorSubject(false);
|
|
14
|
+
}
|
|
15
|
+
get result$() {
|
|
16
|
+
return this._result$.asObservable();
|
|
17
|
+
}
|
|
18
|
+
get result() {
|
|
19
|
+
return this._result$.getValue();
|
|
20
|
+
}
|
|
21
|
+
set result(result) {
|
|
22
|
+
this._result$.next(result);
|
|
23
|
+
}
|
|
24
|
+
syncing$() {
|
|
25
|
+
return this._syncing$;
|
|
26
|
+
}
|
|
27
|
+
get syncing() {
|
|
28
|
+
return this._syncing$.getValue();
|
|
29
|
+
}
|
|
30
|
+
set syncing(syncing) {
|
|
31
|
+
this._syncing$.next(syncing);
|
|
32
|
+
}
|
|
33
|
+
async sync(args) {
|
|
34
|
+
// try to fetch spec
|
|
35
|
+
try {
|
|
36
|
+
// mark as syncing
|
|
37
|
+
this.syncing = true;
|
|
38
|
+
// parse spec
|
|
39
|
+
const result = {
|
|
40
|
+
__type: 'success',
|
|
41
|
+
result: await this.onSync(args)
|
|
42
|
+
};
|
|
43
|
+
this.result = result;
|
|
44
|
+
// return result
|
|
45
|
+
return result;
|
|
46
|
+
}
|
|
47
|
+
// handle error
|
|
48
|
+
catch (e) {
|
|
49
|
+
// set result to an error
|
|
50
|
+
const result = {
|
|
51
|
+
__type: 'failure',
|
|
52
|
+
error: funnel_core_1.IsometricErrorUtils.coerceError(e)
|
|
53
|
+
};
|
|
54
|
+
this.result = result;
|
|
55
|
+
// return result
|
|
56
|
+
return result;
|
|
57
|
+
}
|
|
58
|
+
// clear sync on completion
|
|
59
|
+
finally {
|
|
60
|
+
this.syncing = false;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
exports.AbstractSpecSource = AbstractSpecSource;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Navigation } from '../Navigation';
|
|
2
|
+
import type { Spec } from '../Spec';
|
|
3
|
+
import type { SpecSource } from '../SpecSource';
|
|
4
|
+
import { AbstractSpecSource } from './AbstractSpecSource';
|
|
5
|
+
export declare class StaticSpecSource<TNavigation extends Navigation = Navigation> extends AbstractSpecSource<TNavigation> {
|
|
6
|
+
private readonly spec;
|
|
7
|
+
constructor(spec: Spec<TNavigation>);
|
|
8
|
+
protected onSync(args: SpecSource.Sync.Args): Promise<Spec<TNavigation>>;
|
|
9
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.StaticSpecSource = void 0;
|
|
4
|
+
const AbstractSpecSource_1 = require("./AbstractSpecSource");
|
|
5
|
+
// class
|
|
6
|
+
class StaticSpecSource extends AbstractSpecSource_1.AbstractSpecSource {
|
|
7
|
+
constructor(spec) {
|
|
8
|
+
// construct base
|
|
9
|
+
super({ spec });
|
|
10
|
+
this.spec = spec;
|
|
11
|
+
}
|
|
12
|
+
async onSync(args) {
|
|
13
|
+
return this.spec;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
exports.StaticSpecSource = StaticSpecSource;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./AbstractSpecSource"), exports);
|
|
18
|
+
__exportStar(require("./StaticSpecSource"), exports);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function NavigationEngine(): import("react").JSX.Element;
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
3
|
+
var t = {};
|
|
4
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
5
|
+
t[p] = s[p];
|
|
6
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
7
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
8
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
9
|
+
t[p[i]] = s[p[i]];
|
|
10
|
+
}
|
|
11
|
+
return t;
|
|
12
|
+
};
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.NavigationEngine = NavigationEngine;
|
|
15
|
+
const unstable_1 = require("@react-navigation/bottom-tabs/unstable");
|
|
16
|
+
const native_1 = require("@react-navigation/native");
|
|
17
|
+
const native_stack_1 = require("@react-navigation/native-stack");
|
|
18
|
+
const react_native_1 = require("react-native");
|
|
19
|
+
const core_1 = require("../core");
|
|
20
|
+
const NavigationScreen_1 = require("./NavigationScreen");
|
|
21
|
+
// component
|
|
22
|
+
function NavigationEngine() {
|
|
23
|
+
// bind context
|
|
24
|
+
const specResult = (0, core_1.useSpec)();
|
|
25
|
+
// render based on spec state
|
|
26
|
+
switch (specResult.__type) {
|
|
27
|
+
// loading
|
|
28
|
+
case 'pending':
|
|
29
|
+
return (<react_native_1.View className="flex-1 flex flex-col justify-center items-center p-l8">
|
|
30
|
+
<react_native_1.Text>
|
|
31
|
+
Loading navigation...
|
|
32
|
+
</react_native_1.Text>
|
|
33
|
+
</react_native_1.View>);
|
|
34
|
+
// failed
|
|
35
|
+
case 'failure': {
|
|
36
|
+
const { error } = specResult;
|
|
37
|
+
return (<react_native_1.View className="flex-1 flex flex-col justify-center items-center p-l8">
|
|
38
|
+
<react_native_1.Text className="text-[red]">
|
|
39
|
+
Error: {error.name}: {error.message}
|
|
40
|
+
</react_native_1.Text>
|
|
41
|
+
</react_native_1.View>);
|
|
42
|
+
}
|
|
43
|
+
// or success
|
|
44
|
+
case 'success':
|
|
45
|
+
return renderSpec(specResult.result);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
function renderSpec(spec) {
|
|
49
|
+
// build top-level nav
|
|
50
|
+
const screens = [];
|
|
51
|
+
const modals = [];
|
|
52
|
+
try {
|
|
53
|
+
// process each top-level items, pushing content to appropriate nav structure
|
|
54
|
+
const Stack = (0, native_stack_1.createNativeStackNavigator)();
|
|
55
|
+
Object.entries(spec.navigation).forEach(([key, navItem]) => {
|
|
56
|
+
// process item
|
|
57
|
+
switch (navItem.__type) {
|
|
58
|
+
case 'tabs':
|
|
59
|
+
console.debug(`[NavigationEngine] rendering tabs "${key}"`, navItem.items);
|
|
60
|
+
screens.push(<Stack.Screen key={key} name={key}>
|
|
61
|
+
{() => renderTabs({ key, navItem, spec })}
|
|
62
|
+
</Stack.Screen>);
|
|
63
|
+
break;
|
|
64
|
+
case 'stack':
|
|
65
|
+
console.debug(`[NavigationEngine] rendering stack "${key}"`, navItem.items);
|
|
66
|
+
screens.push(<Stack.Screen key={key} name={key}>
|
|
67
|
+
{() => renderStack({ key, navItem, spec })}
|
|
68
|
+
</Stack.Screen>);
|
|
69
|
+
break;
|
|
70
|
+
case 'modal':
|
|
71
|
+
console.debug(`[NavigationEngine] rendering modal "${key}"`, navItem.content);
|
|
72
|
+
modals.push(<Stack.Screen key={key} name={key}>
|
|
73
|
+
{() => renderNavItem({ key, navItem: navItem.content, spec })}
|
|
74
|
+
</Stack.Screen>);
|
|
75
|
+
break;
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
// render navigation
|
|
79
|
+
return (<native_1.NavigationContainer>
|
|
80
|
+
<Stack.Navigator screenOptions={{ headerShown: false }}>
|
|
81
|
+
<Stack.Group navigationKey="screens">
|
|
82
|
+
{screens}
|
|
83
|
+
</Stack.Group>
|
|
84
|
+
<Stack.Group navigationKey="modals" screenOptions={{
|
|
85
|
+
presentation: 'modal'
|
|
86
|
+
}}>
|
|
87
|
+
{modals}
|
|
88
|
+
</Stack.Group>
|
|
89
|
+
</Stack.Navigator>
|
|
90
|
+
</native_1.NavigationContainer>);
|
|
91
|
+
}
|
|
92
|
+
catch (e) {
|
|
93
|
+
return (<react_native_1.View className="flex-1 flex flex-col justify-center items-center p-l8">
|
|
94
|
+
<react_native_1.Text className="text-[red]">
|
|
95
|
+
Failed to build nav: {e instanceof Error ? e.message : 'Unknown'}
|
|
96
|
+
</react_native_1.Text>
|
|
97
|
+
</react_native_1.View>);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
function renderNavItem(_a) {
|
|
101
|
+
var { navItem } = _a, args = __rest(_a, ["navItem"]);
|
|
102
|
+
// process next components
|
|
103
|
+
switch (navItem.__type) {
|
|
104
|
+
case 'tabs':
|
|
105
|
+
return renderTabs(Object.assign(Object.assign({}, args), { navItem }));
|
|
106
|
+
case 'stack':
|
|
107
|
+
return renderStack(Object.assign(Object.assign({}, args), { navItem }));
|
|
108
|
+
case 'modal':
|
|
109
|
+
return renderModal(Object.assign(Object.assign({}, args), { navItem }));
|
|
110
|
+
default:
|
|
111
|
+
return renderScreen(Object.assign(Object.assign({}, args), { navItem }));
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
function renderTabs(_a) {
|
|
115
|
+
var { navItem } = _a, args = __rest(_a, ["navItem"]);
|
|
116
|
+
// render tabs
|
|
117
|
+
const Tab = (0, unstable_1.createNativeBottomTabNavigator)();
|
|
118
|
+
return (<Tab.Navigator key={args.key} screenOptions={{
|
|
119
|
+
overrideScrollViewContentInsetAdjustmentBehavior: false,
|
|
120
|
+
tabBarMinimizeBehavior: 'auto',
|
|
121
|
+
tabBarLabelVisibilityMode: 'selected',
|
|
122
|
+
tabBarStyle: {
|
|
123
|
+
backgroundColor: 'transparent'
|
|
124
|
+
}
|
|
125
|
+
}}>
|
|
126
|
+
{Object.entries(navItem.items).map(([key, item]) => <Tab.Screen name={key}>
|
|
127
|
+
{() => renderNavItem(Object.assign(Object.assign({}, args), { navItem: item.content }))}
|
|
128
|
+
</Tab.Screen>)}
|
|
129
|
+
</Tab.Navigator>);
|
|
130
|
+
}
|
|
131
|
+
function renderStack(_a) {
|
|
132
|
+
var { navItem } = _a, args = __rest(_a, ["navItem"]);
|
|
133
|
+
// render
|
|
134
|
+
const Stack = (0, native_stack_1.createNativeStackNavigator)();
|
|
135
|
+
return (<Stack.Navigator key={args.key}>
|
|
136
|
+
{Object.entries(navItem.items).map(([key, item]) => <Stack.Screen name={key}>
|
|
137
|
+
{() => renderNavItem(Object.assign(Object.assign({}, args), { navItem: item.content }))}
|
|
138
|
+
</Stack.Screen>)}
|
|
139
|
+
</Stack.Navigator>);
|
|
140
|
+
}
|
|
141
|
+
function renderModal({ key, navItem }) {
|
|
142
|
+
// TODO: complete for modal navigation
|
|
143
|
+
return null;
|
|
144
|
+
}
|
|
145
|
+
function renderScreen({ key, spec, navItem }) {
|
|
146
|
+
var _a;
|
|
147
|
+
// TODO: resolve route parameters
|
|
148
|
+
// resolve screen url
|
|
149
|
+
const { route } = navItem;
|
|
150
|
+
const url = route.length > 0
|
|
151
|
+
? `${process.env.EXPO_PUBLIC_APP_URL}/${route}`
|
|
152
|
+
: (_a = process.env.EXPO_PUBLIC_APP_URL) !== null && _a !== void 0 ? _a : '';
|
|
153
|
+
// render screen
|
|
154
|
+
return (<NavigationScreen_1.NavigationScreen key={key} spec={spec} screen={navItem} url={url}/>);
|
|
155
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Screen, Spec } from '../domain';
|
|
2
|
+
export declare function NavigationScreen({ spec, screen, url }: NavigationScreen.Props): import("react").JSX.Element;
|
|
3
|
+
export declare namespace NavigationScreen {
|
|
4
|
+
type Props = {
|
|
5
|
+
spec: Spec<any>;
|
|
6
|
+
screen: Screen;
|
|
7
|
+
url: string;
|
|
8
|
+
};
|
|
9
|
+
}
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.NavigationScreen = NavigationScreen;
|
|
37
|
+
const funnel_core_1 = require("@nascentdigital/funnel-core");
|
|
38
|
+
const native_1 = require("@react-navigation/native");
|
|
39
|
+
const react_1 = require("react");
|
|
40
|
+
const react_native_1 = require("react-native");
|
|
41
|
+
const react_native_reanimated_1 = __importStar(require("react-native-reanimated"));
|
|
42
|
+
const react_native_safe_area_context_1 = require("react-native-safe-area-context");
|
|
43
|
+
const rn_1 = require("../../bridge/rn");
|
|
44
|
+
const core_1 = require("../core");
|
|
45
|
+
const domain_1 = require("../domain");
|
|
46
|
+
// component
|
|
47
|
+
function NavigationScreen({ spec, screen, url }) {
|
|
48
|
+
// listen for navigation events
|
|
49
|
+
const [hideSplash, setHideSplash] = (0, react_1.useState)(false);
|
|
50
|
+
const reactNavigation = (0, native_1.useNavigation)();
|
|
51
|
+
const isFocused = (0, native_1.useIsFocused)();
|
|
52
|
+
const calls = (0, rn_1.useBridgeProxyCalls)('app.hideSplash', 'app.navigate');
|
|
53
|
+
const specResult = (0, core_1.useSpec)();
|
|
54
|
+
const routes = (0, react_1.useMemo)(() => specResult.__type === 'success'
|
|
55
|
+
? domain_1.Routes.fromSpec(specResult.result)
|
|
56
|
+
: undefined, [specResult]);
|
|
57
|
+
// handle hideSplash
|
|
58
|
+
(0, react_1.useEffect)(() => {
|
|
59
|
+
console.debug('[NavigationScreen] checking calls', calls);
|
|
60
|
+
// hide splash when ready
|
|
61
|
+
const hideSplashCall = calls.find(call => call.method === 'app.hideSplash');
|
|
62
|
+
if (hideSplashCall) {
|
|
63
|
+
console.debug('[NavigationScreen] hiding splash', hideSplashCall);
|
|
64
|
+
// hide splash
|
|
65
|
+
setHideSplash(true);
|
|
66
|
+
// resolve
|
|
67
|
+
hideSplashCall.resolve(true);
|
|
68
|
+
}
|
|
69
|
+
}, [calls]);
|
|
70
|
+
// handle navigation
|
|
71
|
+
(0, react_1.useEffect)(() => {
|
|
72
|
+
// routes aren't ready
|
|
73
|
+
if (!routes) {
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
// skip if there are no calls
|
|
77
|
+
const navigationCall = calls.find(call => call.method === 'app.navigate');
|
|
78
|
+
if (!navigationCall) {
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
// ignore if not focused
|
|
82
|
+
else if (!isFocused) {
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
// or perform a single (first to last - other calls get handled later)
|
|
86
|
+
const { args } = navigationCall.call;
|
|
87
|
+
switch (args.__type) {
|
|
88
|
+
case 'push':
|
|
89
|
+
case 'replace': {
|
|
90
|
+
// skip if there's no mapped route
|
|
91
|
+
const route = routes[args.url];
|
|
92
|
+
if (!route) {
|
|
93
|
+
console.warn('[NavigationScreen] no mapping for route', args.url);
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
// skip if nav item isn't found
|
|
97
|
+
const navItem = funnel_core_1.ArrayUtils.last(route.navigation);
|
|
98
|
+
if (!navItem) {
|
|
99
|
+
console.warn('[NavigationScreen] no parent for screen in route', args.url);
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
// navigate based on type
|
|
103
|
+
const { id } = route.screen;
|
|
104
|
+
const { navigation } = navItem;
|
|
105
|
+
switch (navigation.__type) {
|
|
106
|
+
// switch tab
|
|
107
|
+
case 'tabs':
|
|
108
|
+
console.debug('[NavigationScreen] presenting tab:', id);
|
|
109
|
+
reactNavigation.navigate(id);
|
|
110
|
+
break;
|
|
111
|
+
case 'stack':
|
|
112
|
+
console.debug('[NavigationScreen] presenting stack item:', id);
|
|
113
|
+
reactNavigation.navigate(id);
|
|
114
|
+
break;
|
|
115
|
+
case 'modal':
|
|
116
|
+
console.debug('[NavigationScreen] presenting modal:', id);
|
|
117
|
+
reactNavigation.navigate(id);
|
|
118
|
+
break;
|
|
119
|
+
}
|
|
120
|
+
// mark resolved
|
|
121
|
+
navigationCall.resolve(true)
|
|
122
|
+
.catch(console.error);
|
|
123
|
+
break;
|
|
124
|
+
}
|
|
125
|
+
case 'back':
|
|
126
|
+
console.debug('[NavigationScreen] handling navigation call', args);
|
|
127
|
+
// go back
|
|
128
|
+
if (reactNavigation.canGoBack()) {
|
|
129
|
+
reactNavigation.goBack();
|
|
130
|
+
}
|
|
131
|
+
// mark resolved
|
|
132
|
+
navigationCall.resolve(true)
|
|
133
|
+
.catch(console.error);
|
|
134
|
+
break;
|
|
135
|
+
}
|
|
136
|
+
}, [reactNavigation, calls, isFocused, routes]);
|
|
137
|
+
// render
|
|
138
|
+
return (<react_native_1.View className="relative flex-1">
|
|
139
|
+
|
|
140
|
+
{/* webview */}
|
|
141
|
+
<rn_1.BridgeWebview url={url}/>
|
|
142
|
+
|
|
143
|
+
{/* splash */}
|
|
144
|
+
{!hideSplash && renderSplash({ spec, skeleton: screen.skeleton }, () => setHideSplash(true))}
|
|
145
|
+
</react_native_1.View>);
|
|
146
|
+
}
|
|
147
|
+
// animations
|
|
148
|
+
const pulseAnimation = {
|
|
149
|
+
animationName: {
|
|
150
|
+
from: {
|
|
151
|
+
opacity: 1
|
|
152
|
+
},
|
|
153
|
+
to: {
|
|
154
|
+
opacity: 0.5
|
|
155
|
+
}
|
|
156
|
+
},
|
|
157
|
+
animationDuration: '1s',
|
|
158
|
+
animationIterationCount: 'infinite',
|
|
159
|
+
animationTimingFunction: 'ease-in-out',
|
|
160
|
+
animationDirection: 'alternate'
|
|
161
|
+
};
|
|
162
|
+
function renderSplash({ spec, skeleton: { background, color, padding = 0, items } = { items: [] } }, onClick) {
|
|
163
|
+
// or render generic loader
|
|
164
|
+
return (<react_native_reanimated_1.default.View style={{
|
|
165
|
+
flex: 1,
|
|
166
|
+
position: 'absolute',
|
|
167
|
+
inset: 0,
|
|
168
|
+
backgroundColor: background !== null && background !== void 0 ? background : spec.backgroundColor
|
|
169
|
+
}} exiting={react_native_reanimated_1.FadeOut} onTouchStart={() => {
|
|
170
|
+
console.debug('[NavigationScreen] onTouchStart');
|
|
171
|
+
onClick();
|
|
172
|
+
}} onPointerDown={() => {
|
|
173
|
+
console.debug('[NavigationScreen] onClick');
|
|
174
|
+
onClick();
|
|
175
|
+
}}>
|
|
176
|
+
<react_native_safe_area_context_1.SafeAreaView className="flex-1" style={{
|
|
177
|
+
paddingHorizontal: typeof padding === 'number' ? padding : padding[0],
|
|
178
|
+
paddingVertical: typeof padding === 'number' ? padding : padding[1],
|
|
179
|
+
backgroundColor: background
|
|
180
|
+
}}>
|
|
181
|
+
{items.map((item, index) => {
|
|
182
|
+
const args = {
|
|
183
|
+
id: `${item.__type}.${index}`,
|
|
184
|
+
color: color !== null && color !== void 0 ? color : spec.skeletonColor
|
|
185
|
+
};
|
|
186
|
+
return item.__type === 'text'
|
|
187
|
+
? renderText(Object.assign({ skeleton: item }, args))
|
|
188
|
+
: renderImage(Object.assign({ skeleton: item }, args));
|
|
189
|
+
})}
|
|
190
|
+
</react_native_safe_area_context_1.SafeAreaView>
|
|
191
|
+
</react_native_reanimated_1.default.View>);
|
|
192
|
+
}
|
|
193
|
+
function renderText({ id, skeleton, color }) {
|
|
194
|
+
console.debug('[NavigationScreen] rendering navigation text', skeleton);
|
|
195
|
+
const { width = '50%', radius = 4, lines = 1, lineGap, size = 25, margin = 10 } = skeleton;
|
|
196
|
+
return (<react_native_reanimated_1.default.View key={id} className="w-full flex flex-col" style={[{ gap: lineGap, marginTop: margin }, pulseAnimation]}>
|
|
197
|
+
{funnel_core_1.ArrayUtils.series(lines - 1).map(line => <react_native_1.View key={`line.${line}`} className="animation-pulse" style={{
|
|
198
|
+
width: width,
|
|
199
|
+
height: size,
|
|
200
|
+
borderRadius: radius,
|
|
201
|
+
backgroundColor: color
|
|
202
|
+
}}/>)}
|
|
203
|
+
</react_native_reanimated_1.default.View>);
|
|
204
|
+
}
|
|
205
|
+
function renderImage({ id, skeleton, color }) {
|
|
206
|
+
const { width = '50%', height, radius = 0, aspectRatio, margin = 10 } = skeleton;
|
|
207
|
+
return (<react_native_1.View key={id} style={{
|
|
208
|
+
width: width,
|
|
209
|
+
height,
|
|
210
|
+
aspectRatio,
|
|
211
|
+
borderRadius: `${radius !== null && radius !== void 0 ? radius : 0}px`,
|
|
212
|
+
backgroundColor: color,
|
|
213
|
+
marginTop: margin
|
|
214
|
+
}}/>);
|
|
215
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RNSpecProvider = RNSpecProvider;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
const core_1 = require("../../identity/core");
|
|
6
|
+
const core_2 = require("../core");
|
|
7
|
+
const RNSpecSource_1 = require("./RNSpecSource");
|
|
8
|
+
function RNSpecProvider({ children }) {
|
|
9
|
+
// bind context
|
|
10
|
+
const specSource = (0, react_1.useMemo)(() => new RNSpecSource_1.RNSpecSource(), []);
|
|
11
|
+
const context = (0, react_1.useMemo)(() => ({ specSource }), [specSource]);
|
|
12
|
+
const { identity } = (0, core_1.useIdentity)();
|
|
13
|
+
(0, react_1.useEffect)(() => {
|
|
14
|
+
// skip if there's no identity
|
|
15
|
+
if (!identity) {
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
// fetch spec
|
|
19
|
+
specSource.sync({ identity })
|
|
20
|
+
.then(spec => {
|
|
21
|
+
console.debug('[WebSpecProvider] resolved spec ', spec);
|
|
22
|
+
})
|
|
23
|
+
.catch(e => console.error('[WebSpecProvider] failed to get spec', e));
|
|
24
|
+
// TODO: continue sync?
|
|
25
|
+
}, [specSource, identity]);
|
|
26
|
+
// render
|
|
27
|
+
return (<core_2.SpecSourceContext.Provider value={context}>
|
|
28
|
+
{children}
|
|
29
|
+
</core_2.SpecSourceContext.Provider>);
|
|
30
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { AbstractSpecSource, Navigation, Spec, SpecSource } from '../domain';
|
|
2
|
+
export declare class RNSpecSource<TNavigation extends Navigation = Navigation> extends AbstractSpecSource<TNavigation> {
|
|
3
|
+
constructor();
|
|
4
|
+
protected onSync({ identity }: SpecSource.Sync.Args): Promise<Spec<TNavigation>>;
|
|
5
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RNSpecSource = void 0;
|
|
4
|
+
const funnel_core_1 = require("@nascentdigital/funnel-core");
|
|
5
|
+
const rn_1 = require("../../app/rn");
|
|
6
|
+
const domain_1 = require("../../identity/domain");
|
|
7
|
+
const domain_2 = require("../domain");
|
|
8
|
+
// class
|
|
9
|
+
class RNSpecSource extends domain_2.AbstractSpecSource {
|
|
10
|
+
constructor() {
|
|
11
|
+
// construct base
|
|
12
|
+
super();
|
|
13
|
+
}
|
|
14
|
+
async onSync({ identity }) {
|
|
15
|
+
// throw if identity isn't authenticated
|
|
16
|
+
if (!identity || !(identity instanceof domain_1.AuthenticatedIdentity)) {
|
|
17
|
+
throw new funnel_core_1.InvalidOperationError('RNSpecSource.sync requires an AuthenticatedIdentity');
|
|
18
|
+
}
|
|
19
|
+
// fetch spec
|
|
20
|
+
const specData = await rn_1.AppServiceClient
|
|
21
|
+
.post({
|
|
22
|
+
apiToken: identity.apiToken,
|
|
23
|
+
id: '_nd-nav',
|
|
24
|
+
method: 'getSpec',
|
|
25
|
+
data: null
|
|
26
|
+
});
|
|
27
|
+
return domain_2.Spec.fromData(specData);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
exports.RNSpecSource = RNSpecSource;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("../core"), exports);
|
|
18
|
+
__exportStar(require("./NavigationEngine"), exports);
|
|
19
|
+
__exportStar(require("./RNSpecProvider"), exports);
|
|
20
|
+
__exportStar(require("./RNSpecSource"), exports);
|