@apexnative/navigation 1.0.0-alpha.1 → 1.0.0-alpha.10
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/ApexNavigation.podspec +2 -1
- package/CHANGELOG.md +120 -0
- package/README.md +147 -51
- package/android/CLAUDE.md +78 -25
- package/android/CORE.md +49 -25
- package/android/RECIPES.md +13 -6
- package/android/consumer-rules.pro +6 -0
- package/android/src/main/java/dev/apexnative/navigation/NavigationActivity.kt +85 -10
- package/android/src/main/java/dev/apexnative/navigation/NavigationApplication.kt +34 -13
- package/android/src/main/java/dev/apexnative/navigation/layout/LayoutChecks.kt +5 -1
- package/android/src/main/java/dev/apexnative/navigation/layout/LayoutNode.kt +6 -2
- package/android/src/main/java/dev/apexnative/navigation/nativescreen/NativeScreenContext.kt +2 -2
- package/android/src/main/java/dev/apexnative/navigation/options/AnimationsOptions.kt +2 -2
- package/android/src/main/java/dev/apexnative/navigation/options/BottomTabOptions.kt +1 -1
- package/android/src/main/java/dev/apexnative/navigation/options/BottomTabsOptions.kt +13 -8
- package/android/src/main/java/dev/apexnative/navigation/options/ButtonMenuOptions.kt +2 -2
- package/android/src/main/java/dev/apexnative/navigation/options/ButtonOptions.kt +3 -3
- package/android/src/main/java/dev/apexnative/navigation/options/HardwareBackButtonOptions.kt +9 -1
- package/android/src/main/java/dev/apexnative/navigation/options/LargeTitleOptions.kt +1 -1
- package/android/src/main/java/dev/apexnative/navigation/options/LayoutAnimation.kt +1 -1
- package/android/src/main/java/dev/apexnative/navigation/options/OptionKey.kt +18 -0
- package/android/src/main/java/dev/apexnative/navigation/options/OptionPaths.kt +91 -0
- package/android/src/main/java/dev/apexnative/navigation/options/OptionsCache.kt +8 -4
- package/android/src/main/java/dev/apexnative/navigation/options/SheetOptions.kt +7 -4
- package/android/src/main/java/dev/apexnative/navigation/options/SideMenuOptions.kt +6 -1
- package/android/src/main/java/dev/apexnative/navigation/options/StackAnimationOptions.kt +40 -2
- package/android/src/main/java/dev/apexnative/navigation/options/StatusBarOptions.kt +7 -3
- package/android/src/main/java/dev/apexnative/navigation/options/TitleOptions.kt +2 -2
- package/android/src/main/java/dev/apexnative/navigation/options/TopBarAppearanceOptions.kt +1 -1
- package/android/src/main/java/dev/apexnative/navigation/options/TopBarOptions.kt +16 -7
- package/android/src/main/java/dev/apexnative/navigation/options/UserChoices.kt +159 -0
- package/android/src/main/java/dev/apexnative/navigation/react/CommandAnswer.kt +29 -36
- package/android/src/main/java/dev/apexnative/navigation/react/CommandContract.kt +59 -0
- package/android/src/main/java/dev/apexnative/navigation/react/ContentHeights.kt +95 -0
- package/android/src/main/java/dev/apexnative/navigation/react/ContentMounts.kt +66 -0
- package/android/src/main/java/dev/apexnative/navigation/react/ErrorTexts.kt +75 -60
- package/android/src/main/java/dev/apexnative/navigation/react/Hinge.kt +35 -23
- package/android/src/main/java/dev/apexnative/navigation/react/NavigationTurboModule.kt +12 -7
- package/android/src/main/java/dev/apexnative/navigation/react/OptionsCommands.kt +42 -4
- package/android/src/main/java/dev/apexnative/navigation/react/PendingCalls.kt +48 -0
- package/android/src/main/java/dev/apexnative/navigation/react/ReactView.kt +54 -20
- package/android/src/main/java/dev/apexnative/navigation/react/ReloadCoordinator.kt +7 -6
- package/android/src/main/java/dev/apexnative/navigation/react/ScreenEnvironment.kt +177 -0
- package/android/src/main/java/dev/apexnative/navigation/react/ScreenRegions.kt +19 -50
- package/android/src/main/java/dev/apexnative/navigation/react/ScrollEvents.kt +49 -128
- package/android/src/main/java/dev/apexnative/navigation/react/events/AppearanceDispatcher.kt +50 -81
- package/android/src/main/java/dev/apexnative/navigation/react/events/EventContract.kt +226 -0
- package/android/src/main/java/dev/apexnative/navigation/react/events/EventEmitter.kt +135 -94
- package/android/src/main/java/dev/apexnative/navigation/react/events/NavigationState.kt +154 -0
- package/android/src/main/java/dev/apexnative/navigation/react/events/ScreenAppearance.kt +0 -6
- package/android/src/main/java/dev/apexnative/navigation/safearea/SafeAreaView.kt +12 -10
- package/android/src/main/java/dev/apexnative/navigation/slots/SlotContainers.kt +10 -7
- package/android/src/main/java/dev/apexnative/navigation/slots/SlotScreenView.kt +39 -19
- package/android/src/main/java/dev/apexnative/navigation/slots/SlotView.kt +16 -4
- package/android/src/main/java/dev/apexnative/navigation/slots/SlotViews.kt +40 -0
- package/android/src/main/java/dev/apexnative/navigation/utils/ImageKey.kt +66 -0
- package/android/src/main/java/dev/apexnative/navigation/utils/ImageLoader.kt +7 -89
- package/android/src/main/java/dev/apexnative/navigation/utils/ImageRequests.kt +76 -0
- package/android/src/main/java/dev/apexnative/navigation/utils/MaterialTheme.kt +5 -6
- package/android/src/main/java/dev/apexnative/navigation/utils/OptionImages.kt +262 -0
- package/android/src/main/java/dev/apexnative/navigation/utils/SystemAnimations.kt +36 -0
- package/android/src/main/java/dev/apexnative/navigation/utils/UiUtils.kt +3 -3
- package/android/src/main/java/dev/apexnative/navigation/utils/ViewController.kt +3 -1
- package/android/src/main/java/dev/apexnative/navigation/utils/ViewExtensions.kt +0 -13
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/arrangement/ArrangementController.kt +10 -7
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/arrangement/SecondaryScreenPresenter.kt +13 -5
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/bottomtabs/AppliedTabCalls.kt +49 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/bottomtabs/BottomTabsCollapseBehavior.kt +5 -3
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/bottomtabs/BottomTabsController.kt +108 -34
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/bottomtabs/BottomTabsPresenter.kt +25 -24
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/bottomtabs/CustomTabRowGeometry.kt +22 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/bottomtabs/TabItems.kt +3 -3
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/bottomtabs/TabsRoom.kt +0 -5
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/component/ComponentPresenter.kt +28 -7
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/component/ComponentViewController.kt +12 -9
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/component/ContentReadiness.kt +2 -2
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/component/RenderWait.kt +27 -7
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/component/ScreenFrame.kt +1 -1
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/component/ScreenReadiness.kt +103 -56
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/component/ScreenSafeArea.kt +29 -11
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/externalcomponent/ExternalComponentViewController.kt +2 -6
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/modal/ModalAnimations.kt +22 -24
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/modal/ModalCoordinator.kt +109 -21
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/modal/ModalRecord.kt +21 -6
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/modal/ModalSheet.kt +476 -73
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/modal/ModalViews.kt +57 -25
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/modal/SheetBack.kt +42 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/modal/SheetStops.kt +83 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/navigator/BackCallbackCheck.kt +50 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/navigator/BackCallbackState.kt +49 -14
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/navigator/Navigator.kt +71 -12
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/navigator/RootCoordinator.kt +37 -11
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/overlay/OverlayCoordinator.kt +10 -8
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/parent/Capabilities.kt +11 -4
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/parent/ContainerBackground.kt +3 -3
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/parent/ParentController.kt +6 -6
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/sidemenu/SideMenuController.kt +42 -9
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/sidemenu/SideMenuMotion.kt +19 -8
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/sidemenu/SideMenuPresenter.kt +16 -7
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/sidemenu/SideMenuRules.kt +43 -4
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/splitview/SplitPanes.kt +23 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/splitview/SplitViewController.kt +77 -17
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/BackPreview.kt +315 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/PreparedFrame.kt +3 -3
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/StackCommands.kt +30 -20
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/StackController.kt +216 -18
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/StackDisplay.kt +26 -1
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/StackQueue.kt +149 -41
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/StackTransitions.kt +26 -8
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/StackViews.kt +115 -6
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/fab/FabMotion.kt +142 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/fab/FabPresenter.kt +222 -48
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/search/ScreenSearch.kt +3 -5
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/search/StackSearchPresenter.kt +30 -34
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/topbar/BarComponents.kt +5 -51
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/topbar/BarRowTransition.kt +3 -2
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/topbar/ButtonPlaces.kt +11 -5
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/topbar/MenuChecks.kt +13 -56
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/topbar/TopBarPresenter.kt +219 -54
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/topbar/TopBarVisibility.kt +9 -2
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/viewcontroller/ScrollEventListener.kt +6 -9
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/viewcontroller/ViewController.kt +75 -21
- package/android/src/main/java/dev/apexnative/navigation/views/animations/AnimationLayer.kt +73 -0
- package/android/src/main/java/dev/apexnative/navigation/views/animations/Curves.kt +29 -11
- package/android/src/main/java/dev/apexnative/navigation/views/animations/ValueInterpolation.kt +14 -0
- package/android/src/main/java/dev/apexnative/navigation/views/bottomtabs/BottomTabs.kt +9 -7
- package/android/src/main/java/dev/apexnative/navigation/views/bottomtabs/BottomTabsLayout.kt +61 -2
- package/android/src/main/java/dev/apexnative/navigation/views/bottomtabs/CustomBottomTabItemView.kt +0 -5
- package/android/src/main/java/dev/apexnative/navigation/views/bottomtabs/CustomTabRow.kt +72 -10
- package/android/src/main/java/dev/apexnative/navigation/views/element/ElementStep.kt +31 -0
- package/android/src/main/java/dev/apexnative/navigation/views/element/ElementTransitions.kt +143 -135
- package/android/src/main/java/dev/apexnative/navigation/views/element/TargetsWait.kt +13 -5
- package/android/src/main/java/dev/apexnative/navigation/views/element/TransitionLayer.kt +37 -112
- package/android/src/main/java/dev/apexnative/navigation/views/element/TransitionTargets.kt +9 -6
- package/android/src/main/java/dev/apexnative/navigation/views/element/TransitionViews.kt +100 -0
- package/android/src/main/java/dev/apexnative/navigation/views/element/animators/ElementPictures.kt +112 -4
- package/android/src/main/java/dev/apexnative/navigation/views/element/animators/FlightGeometry.kt +346 -36
- package/android/src/main/java/dev/apexnative/navigation/views/element/animators/ImageMorph.kt +199 -0
- package/android/src/main/java/dev/apexnative/navigation/views/element/animators/SharedAnimatorFactory.kt +56 -41
- package/android/src/main/java/dev/apexnative/navigation/views/element/animators/TextMorph.kt +176 -0
- package/android/src/main/java/dev/apexnative/navigation/views/element/animators/ViewMorph.kt +108 -0
- package/android/src/main/java/dev/apexnative/navigation/views/sidemenu/SideMenuView.kt +12 -3
- package/android/src/main/java/dev/apexnative/navigation/views/stack/ScreenEdge.kt +45 -0
- package/android/src/main/java/dev/apexnative/navigation/views/stack/StackLayout.kt +140 -1
- package/android/src/main/java/dev/apexnative/navigation/views/stack/fab/Fab.kt +14 -10
- package/android/src/main/java/dev/apexnative/navigation/views/stack/fab/FabCopy.kt +85 -0
- package/android/src/main/java/dev/apexnative/navigation/views/stack/fab/FabMenu.kt +13 -0
- package/android/src/main/java/dev/apexnative/navigation/views/stack/topbar/TitleBar.kt +5 -17
- package/android/src/main/java/dev/apexnative/navigation/views/stack/topbar/TopBar.kt +73 -34
- package/android/src/main/java/dev/apexnative/navigation/views/stack/topbar/titlebar/BarButtonComponentCell.kt +6 -6
- package/android/src/main/java/dev/apexnative/navigation/views/stack/topbar/titlebar/BarButtonView.kt +113 -0
- package/android/src/main/java/dev/apexnative/navigation/views/stack/topbar/titlebar/BarMenu.kt +219 -0
- package/android/src/main/java/dev/apexnative/navigation/views/stack/topbar/titlebar/ButtonBar.kt +125 -178
- package/android/src/main/java/dev/apexnative/navigation/views/stack/topbar/titlebar/ButtonMenus.kt +34 -64
- package/android/src/main/java/dev/apexnative/navigation/views/stack/topbar/titlebar/ButtonRow.kt +216 -0
- package/android/src/main/jni/ANNContentHeights.cpp +82 -0
- package/android/src/main/res/drawable/apex_navigation_ic_arrow_right.xml +14 -0
- package/android/src/main/res/layout/apex_navigation_menu_header.xml +19 -0
- package/android/src/main/res/layout/apex_navigation_menu_item.xml +68 -0
- package/android/src/main/res/values/styles.xml +1 -1
- package/android/src/main/res/values-night/styles.xml +1 -1
- package/cli/app.js +1 -1
- package/cli/doctor/checks/app.js +77 -14
- package/cli/doctor/checks/splash.js +4 -22
- package/cli/migrate/native.js +18 -0
- package/cli/project.js +10 -2
- package/cli/setup/index.js +18 -0
- package/cli/setup/source.js +2 -1
- package/cli/setup/steps/appDelegate.js +66 -11
- package/cli/setup/steps/mainApplication.js +134 -19
- package/cli/setup/steps/metro.js +46 -0
- package/cli/setup/steps/sceneDelegate.js +108 -0
- package/cli/splash/index.js +3 -1
- package/docs-md/architecture/native-screens.md +4 -0
- package/docs-md/architecture/theme-and-context.md +131 -12
- package/docs-md/architecture/transitions.md +58 -12
- package/docs-md/containers/modals.md +8 -4
- package/docs-md/containers/overlays.md +3 -1
- package/docs-md/containers/side-menu.md +19 -2
- package/docs-md/containers/tabs.md +5 -1
- package/docs-md/flows/bottom-sheets.md +4 -2
- package/docs-md/flows/forms-in-a-modal.md +1 -1
- package/docs-md/fundamentals/screens-and-props.md +9 -1
- package/docs-md/fundamentals/starting-the-app.md +1 -1
- package/docs-md/guides/cli.md +4 -3
- package/docs-md/guides/deep-links.md +15 -33
- package/docs-md/help/glossary.md +4 -4
- package/docs-md/help/troubleshooting.md +44 -6
- package/docs-md/index.json +57 -1
- package/docs-md/migration/from-expo-router.md +1 -1
- package/docs-md/migration/from-react-native-navigation.md +9 -3
- package/docs-md/migration/from-react-navigation.md +2 -2
- package/docs-md/screen-ui/back-and-gestures.md +46 -2
- package/docs-md/screen-ui/bar-buttons.md +5 -5
- package/docs-md/screen-ui/search.md +1 -1
- package/docs-md/screen-ui/system-ui.md +17 -12
- package/docs-md/screen-ui/toolbar-and-fab.md +4 -2
- package/docs-md/screen-ui/top-bar.md +8 -4
- package/docs-md/start/installation.md +21 -3
- package/ios/Animations/ANNFrameDriver.h +55 -15
- package/ios/Animations/ANNFrameDriver.mm +216 -60
- package/ios/Animations/ANNTransitionAnimator.h +26 -5
- package/ios/Animations/ANNTransitionAnimator.mm +61 -13
- package/ios/Animations/ANNTransitionPlan.h +2 -2
- package/ios/Animations/ANNTransitionPlan.mm +10 -0
- package/ios/Animations/ANNTransitionWait.mm +6 -7
- package/ios/Animations/Elements/ANNElementFinder.h +57 -0
- package/ios/Animations/Elements/ANNElementFinder.mm +174 -2
- package/ios/Animations/Elements/ANNElementTransition.h +10 -8
- package/ios/Animations/Elements/ANNElementTransition.mm +19 -21
- package/ios/Animations/Elements/ANNSharedElementFlight.h +16 -11
- package/ios/Animations/Elements/ANNSharedElementFlight.mm +308 -69
- package/ios/Animations/Interpolators/ANNInterpolate.h +2 -30
- package/ios/Animations/Interpolators/ANNTransformParts.h +48 -0
- package/ios/Animations/Interpolators/ANNTransformParts.mm +507 -0
- package/ios/Animations/Interpolators/ANNViewTracks.h +9 -6
- package/ios/Animations/Interpolators/ANNViewTracks.mm +100 -30
- package/ios/CLAUDE.md +60 -24
- package/ios/CORE.md +44 -34
- package/ios/Contract/ANNCommandAnswer.h +13 -5
- package/ios/Contract/ANNCommandAnswer.mm +40 -32
- package/ios/Contract/ANNCommandContract.h +15 -0
- package/ios/Contract/ANNCommandContract.mm +78 -0
- package/ios/Contract/ANNCommandRunner.h +10 -9
- package/ios/Contract/ANNCommandRunner.mm +22 -28
- package/ios/Contract/ANNErrorTexts.h +6 -2
- package/ios/Contract/ANNErrorTexts.mm +18 -10
- package/ios/Contract/ANNLayoutNode.h +3 -3
- package/ios/Contract/ANNLayoutReader.h +3 -3
- package/ios/Core/ANNAppDelegate.mm +0 -2
- package/ios/Core/ANNAppearanceDispatcher.h +5 -4
- package/ios/Core/ANNAppearanceDispatcher.mm +12 -1
- package/ios/Core/ANNDeepLinkQueue.h +22 -2
- package/ios/Core/ANNDeepLinkQueue.mm +121 -14
- package/ios/Core/ANNErrorHandler.h +9 -4
- package/ios/Core/ANNErrorHandler.mm +20 -2
- package/ios/Core/ANNEventContract.h +246 -0
- package/ios/Core/ANNEventContract.mm +225 -0
- package/ios/Core/ANNEventEmitter.h +6 -2
- package/ios/Core/ANNEventEmitter.mm +117 -80
- package/ios/Core/ANNHinge.h +6 -0
- package/ios/Core/ANNHinge.mm +15 -4
- package/ios/Core/ANNJavaScriptCalls.h +33 -0
- package/ios/Core/ANNJavaScriptCalls.mm +52 -0
- package/ios/Core/ANNLayoutProtocol.h +5 -5
- package/ios/Core/ANNNavigationState.h +7 -5
- package/ios/Core/ANNNavigationState.mm +8 -7
- package/ios/Core/ANNNodeHelper.h +32 -12
- package/ios/Core/ANNNodeHelper.mm +100 -3
- package/ios/Core/ANNParking.h +5 -4
- package/ios/Core/ANNReloadCoordinator.mm +5 -12
- package/ios/Core/ANNRenderWait.h +20 -6
- package/ios/Core/ANNRenderWait.mm +143 -56
- package/ios/Core/ANNSceneDelegate.mm +25 -15
- package/ios/Core/ANNSystemUI.h +3 -2
- package/ios/Core/ANNSystemUI.mm +7 -0
- package/ios/Core/ANNUtils.h +7 -0
- package/ios/Core/ANNUtils.mm +10 -0
- package/ios/Core/ApexNavigation+Internal.h +1 -1
- package/ios/Core/ApexNavigation.mm +7 -6
- package/ios/Core/UIViewController+LayoutProtocol.h +9 -2
- package/ios/Core/UIViewController+LayoutProtocol.mm +8 -0
- package/ios/Layouts/Arrangement/ANNArrangementState.h +2 -17
- package/ios/Layouts/Arrangement/ANNArrangementState.mm +0 -38
- package/ios/Layouts/Arrangement/ANNArrangementViewController.mm +10 -8
- package/ios/Layouts/Modal/ANNModalCoordinator.h +1 -1
- package/ios/Layouts/Modal/ANNModalCoordinator.mm +57 -16
- package/ios/Layouts/Modal/ANNModalPresentation.h +8 -5
- package/ios/Layouts/Modal/ANNModalPresentation.mm +12 -12
- package/ios/Layouts/Modal/ANNSheetPresenter.mm +83 -1
- package/ios/Layouts/Overlay/ANNOverlayCoordinator.mm +2 -8
- package/ios/Layouts/Root/ANNRootCoordinator.mm +58 -19
- package/ios/Layouts/Root/ANNSplashViewController.h +5 -3
- package/ios/Layouts/Root/ANNSplashViewController.mm +147 -0
- package/ios/Layouts/Screen/ANNComponentPresenter.h +11 -3
- package/ios/Layouts/Screen/ANNComponentPresenter.mm +34 -6
- package/ios/Layouts/Screen/ANNComponentViewController.h +15 -13
- package/ios/Layouts/Screen/ANNComponentViewController.mm +130 -75
- package/ios/Layouts/Screen/ANNNativeScreenContext.mm +7 -5
- package/ios/Layouts/Screen/ANNPreviewInteraction.h +7 -4
- package/ios/Layouts/Screen/ANNPreviewInteraction.mm +72 -10
- package/ios/Layouts/Screen/ANNScreenEnvironment.h +63 -0
- package/ios/Layouts/Screen/ANNScreenEnvironment.mm +181 -0
- package/ios/Layouts/Screen/ANNScreenPlace.h +53 -0
- package/ios/Layouts/Screen/ANNScreenPlace.mm +205 -0
- package/ios/Layouts/Screen/ANNScreenRegions.h +3 -18
- package/ios/Layouts/Screen/ANNScreenRegions.mm +9 -44
- package/ios/Layouts/Screen/ANNScreenSafeArea.h +4 -9
- package/ios/Layouts/Screen/ANNScreenSafeArea.mm +14 -16
- package/ios/Layouts/Screen/ANNScreenSettling.h +32 -0
- package/ios/Layouts/Screen/ANNScreenSettling.mm +137 -0
- package/ios/Layouts/SideMenu/ANNSideMenuTypes.h +8 -0
- package/ios/Layouts/SideMenu/ANNSideMenuViewController.mm +83 -14
- package/ios/Layouts/SplitView/ANNSplitViewCommands.h +3 -2
- package/ios/Layouts/SplitView/ANNSplitViewCommands.mm +105 -39
- package/ios/Layouts/SplitView/ANNSplitViewController.mm +7 -8
- package/ios/Layouts/Stack/ANNPreviewPush.h +7 -6
- package/ios/Layouts/Stack/ANNPreviewPush.mm +142 -27
- package/ios/Layouts/Stack/ANNStackAnimatingDelegate.h +11 -2
- package/ios/Layouts/Stack/ANNStackAnimatingDelegate.mm +14 -7
- package/ios/Layouts/Stack/ANNStackCommands.mm +1 -0
- package/ios/Layouts/Stack/ANNStackController.h +8 -0
- package/ios/Layouts/Stack/ANNStackController.mm +184 -16
- package/ios/Layouts/Stack/ANNStackQueue.h +5 -2
- package/ios/Layouts/Stack/ANNStackQueue.mm +56 -43
- package/ios/Layouts/Stack/ANNSwipePopInteraction.h +26 -0
- package/ios/Layouts/Stack/ANNSwipePopInteraction.mm +185 -0
- package/ios/Layouts/Stack/InteractivePopGestureDelegate.mm +28 -4
- package/ios/Layouts/Stack/UINavigationController+ANNCommands.h +4 -2
- package/ios/Layouts/Stack/UINavigationController+ANNCommands.mm +2 -3
- package/ios/Layouts/Tabs/ANNBottomTabItemBuilder.h +4 -0
- package/ios/Layouts/Tabs/ANNBottomTabItemBuilder.mm +11 -0
- package/ios/Layouts/Tabs/ANNBottomTabsAccessoryView.h +12 -1
- package/ios/Layouts/Tabs/ANNBottomTabsAccessoryView.mm +23 -0
- package/ios/Layouts/Tabs/ANNBottomTabsController.h +3 -0
- package/ios/Layouts/Tabs/ANNBottomTabsController.mm +237 -57
- package/ios/Layouts/Tabs/ANNBottomTabsCustomRow.mm +8 -3
- package/ios/Layouts/Tabs/ANNBottomTabsPresenter.h +6 -2
- package/ios/Layouts/Tabs/ANNBottomTabsPresenter.mm +232 -43
- package/ios/Layouts/Tabs/ANNTabsDesign.h +6 -5
- package/ios/Layouts/Tabs/ANNTabsDesign.mm +9 -1
- package/ios/Layouts/Tabs/UITabBar+utils.h +5 -5
- package/ios/Layouts/Tabs/UITabBar+utils.mm +32 -13
- package/ios/Options/ANNAnimationOptions.h +2 -1
- package/ios/Options/ANNAnimationOptions.mm +1 -1
- package/ios/Options/ANNBottomTabsOptions.h +2 -0
- package/ios/Options/ANNBottomTabsOptions.mm +1 -0
- package/ios/Options/ANNOptions.h +25 -0
- package/ios/Options/ANNOptions.mm +157 -1
- package/ios/Options/ANNOptionsCache.h +7 -6
- package/ios/Options/ANNOptionsReader.mm +108 -0
- package/ios/Options/ANNSearchBarOptions.h +4 -3
- package/ios/Options/ANNSheetOptions.h +4 -1
- package/ios/Options/ANNSideMenuOptions.h +2 -0
- package/ios/Options/ANNSideMenuOptions.mm +2 -0
- package/ios/Options/ANNStackPopAnimationOptions.h +13 -0
- package/ios/Options/ANNStackPopAnimationOptions.mm +11 -0
- package/ios/Options/ANNUserChoice.h +57 -0
- package/ios/Options/ANNUserChoice.mm +44 -0
- package/ios/Options/Params/ANNImageSource.h +61 -0
- package/ios/Options/Params/ANNImageSource.mm +101 -0
- package/ios/Options/Params/ANNOptionImages.h +37 -0
- package/ios/Options/Params/ANNOptionImages.mm +284 -0
- package/ios/Options/Params/ANNParam.h +15 -0
- package/ios/Options/Params/ANNParam.mm +61 -0
- package/ios/Options/Params/Color.h +3 -0
- package/ios/Options/Params/Color.mm +21 -0
- package/ios/Options/Params/ColorParser.h +4 -3
- package/ios/Options/Params/ColorParser.mm +22 -4
- package/ios/Options/Params/Image.h +15 -2
- package/ios/Options/Params/Image.mm +35 -2
- package/ios/Options/Params/ImageParser.h +5 -5
- package/ios/Options/Params/ImageParser.mm +28 -46
- package/ios/Public/ApexNavigation/ANNSceneDelegate.h +3 -0
- package/ios/Public/ApexNavigation/ApexNavigation.h +1 -1
- package/ios/RECIPES.md +13 -6
- package/ios/React/ANNReactView.mm +6 -25
- package/ios/React/ANNSafeAreaViewComponentView.mm +28 -17
- package/ios/React/ANNSurfaceHostingView.h +14 -0
- package/ios/React/ANNSurfaceHostingView.mm +144 -1
- package/ios/React/Slots/ANNSlotComponentView.mm +24 -17
- package/ios/React/Slots/ANNSlotContainers.h +14 -6
- package/ios/React/Slots/ANNSlotContainers.mm +75 -2
- package/ios/React/Slots/ANNSlotHost.mm +1 -3
- package/ios/React/Slots/ANNSlotScreenView.mm +8 -2
- package/ios/TopBar/ANNBackButtonPresenter.mm +6 -5
- package/ios/TopBar/ANNBarAppearance.h +2 -1
- package/ios/TopBar/ANNBarAppearance.mm +111 -30
- package/ios/TopBar/ANNBarBackgroundComponent.mm +16 -0
- package/ios/TopBar/ANNBarButtonComponentView.h +4 -4
- package/ios/TopBar/ANNBarButtonComponentView.mm +1 -1
- package/ios/TopBar/ANNBarButtons.h +14 -8
- package/ios/TopBar/ANNBarButtons.mm +397 -80
- package/ios/TopBar/ANNIconButtonImage.h +1 -0
- package/ios/TopBar/ANNIconButtonImage.mm +34 -1
- package/ios/TopBar/ANNLargeTitlePresenter.h +13 -0
- package/ios/TopBar/ANNLargeTitlePresenter.mm +50 -7
- package/ios/TopBar/ANNMainList.h +3 -0
- package/ios/TopBar/ANNMainList.mm +4 -0
- package/ios/TopBar/ANNScrollEdgeEffects.h +22 -6
- package/ios/TopBar/ANNScrollEdgeEffects.mm +123 -16
- package/ios/TopBar/ANNSearchPresenter.mm +172 -21
- package/ios/TopBar/ANNSearchResultsViewController.mm +29 -6
- package/ios/TopBar/ANNTopBarPresenter.h +8 -2
- package/ios/TopBar/ANNTopBarPresenter.mm +155 -33
- package/ios/TurboModules/ANNTurboEventEmitter.mm +4 -35
- package/ios/TurboModules/ANNTurboModule.mm +104 -33
- package/ios/cpp/react/renderer/components/ApexNavigationSpec/ANNSlotState.cpp +20 -0
- package/ios/cpp/react/renderer/components/ApexNavigationSpec/ANNSlotState.h +5 -14
- package/lib/module/ARCHITECTURE.md +40 -27
- package/lib/module/adapters/NativeANNTurboModule.js.map +1 -1
- package/lib/module/api/app/AppRegistry.js +14 -2
- package/lib/module/api/app/AppRegistry.js.map +1 -1
- package/lib/module/api/app/createNavigation.js +190 -66
- package/lib/module/api/app/createNavigation.js.map +1 -1
- package/lib/module/api/commands/commands.js +54 -6
- package/lib/module/api/commands/commands.js.map +1 -1
- package/lib/module/api/events/navigationEvents.js +6 -2
- package/lib/module/api/events/navigationEvents.js.map +1 -1
- package/lib/module/api/hooks/useNavigation.js +8 -3
- package/lib/module/api/hooks/useNavigation.js.map +1 -1
- package/lib/module/api/hooks/useSafeAreaInsets.js +4 -3
- package/lib/module/api/hooks/useSafeAreaInsets.js.map +1 -1
- package/lib/module/api/linking/dispatchedLinks.js +23 -0
- package/lib/module/api/linking/dispatchedLinks.js.map +1 -0
- package/lib/module/api/linking/linking.js +11 -0
- package/lib/module/api/linking/linking.js.map +1 -1
- package/lib/module/api/navigation.js.map +1 -1
- package/lib/module/api/options/OptionsChain.js +2 -2
- package/lib/module/api/screens/defineScreen.js +45 -3
- package/lib/module/api/screens/defineScreen.js.map +1 -1
- package/lib/module/api/screens/nativeScreens.js +31 -6
- package/lib/module/api/screens/nativeScreens.js.map +1 -1
- package/lib/module/api/screens/registerScreens.js +193 -35
- package/lib/module/api/screens/registerScreens.js.map +1 -1
- package/lib/module/api/theme/theme.js +5 -0
- package/lib/module/api/theme/theme.js.map +1 -1
- package/lib/module/engine/commands.js +51 -9
- package/lib/module/engine/commands.js.map +1 -1
- package/lib/module/engine/layout.js +20 -11
- package/lib/module/engine/layout.js.map +1 -1
- package/lib/module/engine/nativeScreens.js +9 -0
- package/lib/module/engine/nativeScreens.js.map +1 -1
- package/lib/module/engine/options.js +49 -15
- package/lib/module/engine/options.js.map +1 -1
- package/lib/module/engine/optionsChange.js +102 -0
- package/lib/module/engine/optionsChange.js.map +1 -0
- package/lib/module/engine/places.js +52 -7
- package/lib/module/engine/places.js.map +1 -1
- package/lib/module/engine/props.js +30 -1
- package/lib/module/engine/props.js.map +1 -1
- package/lib/module/engine/refresh.js +85 -0
- package/lib/module/engine/refresh.js.map +1 -0
- package/lib/module/engine/rememberedOptions.js +61 -1
- package/lib/module/engine/rememberedOptions.js.map +1 -1
- package/lib/module/engine/screens.js +77 -16
- package/lib/module/engine/screens.js.map +1 -1
- package/lib/module/interfaces/contract/commands.json +101 -0
- package/lib/module/interfaces/contract/errors.json +275 -0
- package/lib/typescript/adapters/NativeANNTurboModule.d.ts +12 -2
- package/lib/typescript/adapters/NativeANNTurboModule.d.ts.map +1 -1
- package/lib/typescript/api/app/AppRegistry.d.ts.map +1 -1
- package/lib/typescript/api/app/createNavigation.d.ts +8 -3
- package/lib/typescript/api/app/createNavigation.d.ts.map +1 -1
- package/lib/typescript/api/commands/commands.d.ts.map +1 -1
- package/lib/typescript/api/commands/presentation.d.ts +4 -3
- package/lib/typescript/api/commands/presentation.d.ts.map +1 -1
- package/lib/typescript/api/events/navigationEvents.d.ts +3 -3
- package/lib/typescript/api/events/navigationEvents.d.ts.map +1 -1
- package/lib/typescript/api/hooks/useNavigation.d.ts +1 -1
- package/lib/typescript/api/hooks/useNavigation.d.ts.map +1 -1
- package/lib/typescript/api/hooks/useSafeAreaInsets.d.ts +4 -3
- package/lib/typescript/api/hooks/useSafeAreaInsets.d.ts.map +1 -1
- package/lib/typescript/api/index.d.ts +1 -1
- package/lib/typescript/api/index.d.ts.map +1 -1
- package/lib/typescript/api/linking/dispatchedLinks.d.ts +7 -0
- package/lib/typescript/api/linking/dispatchedLinks.d.ts.map +1 -0
- package/lib/typescript/api/linking/linking.d.ts +8 -0
- package/lib/typescript/api/linking/linking.d.ts.map +1 -1
- package/lib/typescript/api/navigation.d.ts +4 -1
- package/lib/typescript/api/navigation.d.ts.map +1 -1
- package/lib/typescript/api/options/OptionsChain.d.ts +2 -2
- package/lib/typescript/api/screens/defineScreen.d.ts +23 -4
- package/lib/typescript/api/screens/defineScreen.d.ts.map +1 -1
- package/lib/typescript/api/screens/nativeScreens.d.ts +8 -1
- package/lib/typescript/api/screens/nativeScreens.d.ts.map +1 -1
- package/lib/typescript/api/screens/registerScreens.d.ts.map +1 -1
- package/lib/typescript/api/theme/theme.d.ts +2 -0
- package/lib/typescript/api/theme/theme.d.ts.map +1 -1
- package/lib/typescript/engine/commands.d.ts +5 -0
- package/lib/typescript/engine/commands.d.ts.map +1 -1
- package/lib/typescript/engine/layout.d.ts.map +1 -1
- package/lib/typescript/engine/nativeScreens.d.ts +5 -0
- package/lib/typescript/engine/nativeScreens.d.ts.map +1 -1
- package/lib/typescript/engine/options.d.ts +5 -2
- package/lib/typescript/engine/options.d.ts.map +1 -1
- package/lib/typescript/engine/optionsChange.d.ts +28 -0
- package/lib/typescript/engine/optionsChange.d.ts.map +1 -0
- package/lib/typescript/engine/places.d.ts +7 -2
- package/lib/typescript/engine/places.d.ts.map +1 -1
- package/lib/typescript/engine/props.d.ts +8 -1
- package/lib/typescript/engine/props.d.ts.map +1 -1
- package/lib/typescript/engine/refresh.d.ts +35 -0
- package/lib/typescript/engine/refresh.d.ts.map +1 -0
- package/lib/typescript/engine/rememberedOptions.d.ts +13 -0
- package/lib/typescript/engine/rememberedOptions.d.ts.map +1 -1
- package/lib/typescript/engine/screens.d.ts +27 -6
- package/lib/typescript/engine/screens.d.ts.map +1 -1
- package/lib/typescript/interfaces/ComponentEvents.d.ts +4 -4
- package/lib/typescript/interfaces/ComponentEvents.d.ts.map +1 -1
- package/lib/typescript/interfaces/Events.d.ts +28 -10
- package/lib/typescript/interfaces/Events.d.ts.map +1 -1
- package/lib/typescript/interfaces/Options.d.ts +1 -1
- package/lib/typescript/interfaces/Options.d.ts.map +1 -1
- package/lib/typescript/interfaces/options/animations.d.ts +80 -22
- package/lib/typescript/interfaces/options/animations.d.ts.map +1 -1
- package/lib/typescript/interfaces/options/bottomTabs.d.ts +21 -7
- package/lib/typescript/interfaces/options/bottomTabs.d.ts.map +1 -1
- package/lib/typescript/interfaces/options/buttons.d.ts +23 -15
- package/lib/typescript/interfaces/options/buttons.d.ts.map +1 -1
- package/lib/typescript/interfaces/options/modals.d.ts +34 -26
- package/lib/typescript/interfaces/options/modals.d.ts.map +1 -1
- package/lib/typescript/interfaces/options/sideMenu.d.ts +23 -6
- package/lib/typescript/interfaces/options/sideMenu.d.ts.map +1 -1
- package/lib/typescript/interfaces/options/stack.d.ts +17 -3
- package/lib/typescript/interfaces/options/stack.d.ts.map +1 -1
- package/lib/typescript/interfaces/options/system.d.ts +18 -11
- package/lib/typescript/interfaces/options/system.d.ts.map +1 -1
- package/lib/typescript/interfaces/options/toolbar.d.ts +2 -2
- package/lib/typescript/interfaces/options/topBar.d.ts +68 -38
- package/lib/typescript/interfaces/options/topBar.d.ts.map +1 -1
- package/metro/acceptPlugin.js +57 -0
- package/metro/babelTransformer.js +45 -0
- package/metro/index.js +36 -0
- package/package.json +3 -1
- package/src/ARCHITECTURE.md +40 -27
- package/src/adapters/NativeANNTurboModule.ts +12 -2
- package/src/api/app/AppRegistry.ts +16 -2
- package/src/api/app/createNavigation.ts +203 -69
- package/src/api/commands/commands.ts +48 -7
- package/src/api/commands/presentation.ts +4 -3
- package/src/api/events/navigationEvents.ts +10 -4
- package/src/api/hooks/useNavigation.ts +9 -4
- package/src/api/hooks/useSafeAreaInsets.ts +4 -3
- package/src/api/index.ts +1 -0
- package/src/api/linking/dispatchedLinks.ts +18 -0
- package/src/api/linking/linking.ts +22 -1
- package/src/api/navigation.ts +4 -1
- package/src/api/options/OptionsChain.ts +2 -2
- package/src/api/screens/defineScreen.ts +49 -5
- package/src/api/screens/nativeScreens.ts +40 -4
- package/src/api/screens/registerScreens.tsx +185 -42
- package/src/api/theme/theme.ts +5 -0
- package/src/engine/commands.ts +70 -13
- package/src/engine/layout.ts +27 -11
- package/src/engine/nativeScreens.ts +10 -1
- package/src/engine/options.ts +45 -19
- package/src/engine/optionsChange.ts +107 -0
- package/src/engine/places.ts +65 -7
- package/src/engine/props.ts +30 -1
- package/src/engine/refresh.ts +97 -0
- package/src/engine/rememberedOptions.ts +74 -1
- package/src/engine/screens.tsx +76 -21
- package/src/interfaces/ComponentEvents.ts +4 -4
- package/src/interfaces/Events.ts +29 -10
- package/src/interfaces/Options.ts +1 -0
- package/src/interfaces/contract/commands.json +101 -0
- package/src/interfaces/contract/errors.json +275 -0
- package/src/interfaces/options/animations.ts +81 -22
- package/src/interfaces/options/bottomTabs.ts +21 -7
- package/src/interfaces/options/buttons.ts +23 -15
- package/src/interfaces/options/modals.ts +34 -26
- package/src/interfaces/options/sideMenu.ts +24 -6
- package/src/interfaces/options/stack.ts +17 -3
- package/src/interfaces/options/system.ts +18 -11
- package/src/interfaces/options/toolbar.ts +2 -2
- package/src/interfaces/options/topBar.ts +68 -38
- package/android/src/main/java/dev/apexnative/navigation/react/ArrangementStates.kt +0 -41
- package/android/src/main/java/dev/apexnative/navigation/react/ScreenInsets.kt +0 -69
- package/android/src/main/java/dev/apexnative/navigation/react/events/NavigationStateReporter.kt +0 -62
- package/android/src/main/java/dev/apexnative/navigation/react/events/StateHold.kt +0 -62
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/bottomtabs/CustomTabRowPlacer.kt +0 -223
- package/android/src/main/java/dev/apexnative/navigation/views/element/ElementStub.kt +0 -31
- package/android/src/main/java/dev/apexnative/navigation/views/element/animators/ImageMatrixAnimator.kt +0 -138
- package/android/src/main/java/dev/apexnative/navigation/views/element/animators/PlainViewAnimator.kt +0 -88
- package/android/src/main/java/dev/apexnative/navigation/views/element/animators/PropertyAnimatorCreator.kt +0 -33
- package/android/src/main/java/dev/apexnative/navigation/views/element/animators/ReactImageAnimator.kt +0 -66
- package/android/src/main/java/dev/apexnative/navigation/views/element/animators/TextChangeAnimator.kt +0 -179
- package/android/src/main/java/dev/apexnative/navigation/views/element/animators/ViewChangeAnimator.kt +0 -139
- package/ios/Layouts/Screen/ANNScreenInsets.h +0 -30
- package/ios/Layouts/Screen/ANNScreenInsets.mm +0 -68
- package/ios/Layouts/Tabs/ANNTabsPreloadWindow.h +0 -27
- package/ios/Layouts/Tabs/ANNTabsPreloadWindow.mm +0 -55
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
// Made by scripts/contract.mjs from the event types of src/interfaces/: change them and run the script again.
|
|
2
|
+
|
|
3
|
+
#import "ANNEventContract.h"
|
|
4
|
+
|
|
5
|
+
const struct ANNEventContractTable ANNEventContract = {
|
|
6
|
+
.AppLaunched = {.event = @"ANN.AppLaunched"},
|
|
7
|
+
.ArrangementChanged =
|
|
8
|
+
{
|
|
9
|
+
.event = @"ANN.ArrangementChanged",
|
|
10
|
+
.componentId = @"componentId",
|
|
11
|
+
.placement = @"placement",
|
|
12
|
+
.layout = @"layout",
|
|
13
|
+
.front = @"front",
|
|
14
|
+
.hidden = @"hidden",
|
|
15
|
+
},
|
|
16
|
+
.BottomAccessoryPlacementChanged =
|
|
17
|
+
{
|
|
18
|
+
.event = @"ANN.BottomAccessoryPlacementChanged",
|
|
19
|
+
.componentId = @"componentId",
|
|
20
|
+
.placement = @"placement",
|
|
21
|
+
},
|
|
22
|
+
.BottomTabLongPressed =
|
|
23
|
+
{
|
|
24
|
+
.event = @"ANN.BottomTabLongPressed",
|
|
25
|
+
.selectedTabIndex = @"selectedTabIndex",
|
|
26
|
+
.bottomTabsId = @"bottomTabsId",
|
|
27
|
+
},
|
|
28
|
+
.BottomTabPressed =
|
|
29
|
+
{
|
|
30
|
+
.event = @"ANN.BottomTabPressed",
|
|
31
|
+
.tabIndex = @"tabIndex",
|
|
32
|
+
.bottomTabsId = @"bottomTabsId",
|
|
33
|
+
.screenId = @"screenId",
|
|
34
|
+
.wasSelected = @"wasSelected",
|
|
35
|
+
},
|
|
36
|
+
.BottomTabSelected =
|
|
37
|
+
{
|
|
38
|
+
.event = @"ANN.BottomTabSelected",
|
|
39
|
+
.selectedTabIndex = @"selectedTabIndex",
|
|
40
|
+
.unselectedTabIndex = @"unselectedTabIndex",
|
|
41
|
+
.bottomTabsId = @"bottomTabsId",
|
|
42
|
+
},
|
|
43
|
+
.CommandCompleted =
|
|
44
|
+
{
|
|
45
|
+
.event = @"ANN.CommandCompleted",
|
|
46
|
+
.commandName = @"commandName",
|
|
47
|
+
.commandId = @"commandId",
|
|
48
|
+
.completionTime = @"completionTime",
|
|
49
|
+
},
|
|
50
|
+
.ComponentDidAppear =
|
|
51
|
+
{
|
|
52
|
+
.event = @"ANN.ComponentDidAppear",
|
|
53
|
+
.componentId = @"componentId",
|
|
54
|
+
.componentName = @"componentName",
|
|
55
|
+
.componentType = @"componentType",
|
|
56
|
+
},
|
|
57
|
+
.ComponentDidDisappear =
|
|
58
|
+
{
|
|
59
|
+
.event = @"ANN.ComponentDidDisappear",
|
|
60
|
+
.componentId = @"componentId",
|
|
61
|
+
.componentName = @"componentName",
|
|
62
|
+
.componentType = @"componentType",
|
|
63
|
+
},
|
|
64
|
+
.ComponentWillAppear =
|
|
65
|
+
{
|
|
66
|
+
.event = @"ANN.ComponentWillAppear",
|
|
67
|
+
.componentId = @"componentId",
|
|
68
|
+
.componentName = @"componentName",
|
|
69
|
+
.componentType = @"componentType",
|
|
70
|
+
},
|
|
71
|
+
.DeepLinkDispatched = {.event = @"ANN.DeepLinkDispatched", .url = @"url"},
|
|
72
|
+
.HingeChanged = {.event = @"ANN.HingeChanged", .state = @"state", .angle = @"angle"},
|
|
73
|
+
.KeyCommandPressed =
|
|
74
|
+
{
|
|
75
|
+
.event = @"ANN.KeyCommandPressed",
|
|
76
|
+
.componentId = @"componentId",
|
|
77
|
+
.keyCommandId = @"keyCommandId",
|
|
78
|
+
},
|
|
79
|
+
.ModalAttemptedToDismiss =
|
|
80
|
+
{
|
|
81
|
+
.event = @"ANN.ModalAttemptedToDismiss",
|
|
82
|
+
.componentId = @"componentId",
|
|
83
|
+
},
|
|
84
|
+
.ModalDismissed =
|
|
85
|
+
{
|
|
86
|
+
.event = @"ANN.ModalDismissed",
|
|
87
|
+
.componentId = @"componentId",
|
|
88
|
+
.componentName = @"componentName",
|
|
89
|
+
.modalsDismissed = @"modalsDismissed",
|
|
90
|
+
},
|
|
91
|
+
.NativeScreenCall =
|
|
92
|
+
{
|
|
93
|
+
.event = @"ANN.NativeScreenCall",
|
|
94
|
+
.componentId = @"componentId",
|
|
95
|
+
.callId = @"callId",
|
|
96
|
+
.kind = @"kind",
|
|
97
|
+
.name = @"name",
|
|
98
|
+
.args = @"args",
|
|
99
|
+
},
|
|
100
|
+
.NativeScreenReleased = {.event = @"ANN.NativeScreenReleased", .componentId = @"componentId"},
|
|
101
|
+
.NavigationButtonPressed =
|
|
102
|
+
{
|
|
103
|
+
.event = @"ANN.NavigationButtonPressed",
|
|
104
|
+
.componentId = @"componentId",
|
|
105
|
+
.buttonId = @"buttonId",
|
|
106
|
+
.selected = @"selected",
|
|
107
|
+
},
|
|
108
|
+
.NavigationStateChanged =
|
|
109
|
+
{
|
|
110
|
+
.event = @"ANN.NavigationStateChanged",
|
|
111
|
+
.screen = @"screen",
|
|
112
|
+
.tab = @"tab",
|
|
113
|
+
},
|
|
114
|
+
.NavigationStateChangedScreen = {.id = @"id", .name = @"name"},
|
|
115
|
+
.PreviewCompleted =
|
|
116
|
+
{
|
|
117
|
+
.event = @"ANN.PreviewCompleted",
|
|
118
|
+
.componentId = @"componentId",
|
|
119
|
+
.previewComponentId = @"previewComponentId",
|
|
120
|
+
},
|
|
121
|
+
.ScreenInsetsChanged =
|
|
122
|
+
{
|
|
123
|
+
.event = @"ANN.ScreenInsetsChanged",
|
|
124
|
+
.componentId = @"componentId",
|
|
125
|
+
.top = @"top",
|
|
126
|
+
.right = @"right",
|
|
127
|
+
.bottom = @"bottom",
|
|
128
|
+
.left = @"left",
|
|
129
|
+
},
|
|
130
|
+
.ScreenPopped = {.event = @"ANN.ScreenPopped", .componentId = @"componentId"},
|
|
131
|
+
.ScreenRegionRect = {.x = @"x", .y = @"y", .width = @"width", .height = @"height"},
|
|
132
|
+
.ScreenRegionsChanged =
|
|
133
|
+
{
|
|
134
|
+
.event = @"ANN.ScreenRegionsChanged",
|
|
135
|
+
.componentId = @"componentId",
|
|
136
|
+
.division = @"division",
|
|
137
|
+
.occlusion = @"occlusion",
|
|
138
|
+
},
|
|
139
|
+
.SearchBarCancelPressed =
|
|
140
|
+
{
|
|
141
|
+
.event = @"ANN.SearchBarCancelPressed",
|
|
142
|
+
.componentId = @"componentId",
|
|
143
|
+
},
|
|
144
|
+
.SearchBarSubmitted =
|
|
145
|
+
{
|
|
146
|
+
.event = @"ANN.SearchBarSubmitted",
|
|
147
|
+
.componentId = @"componentId",
|
|
148
|
+
.text = @"text",
|
|
149
|
+
.scope = @"scope",
|
|
150
|
+
.tokens = @"tokens",
|
|
151
|
+
},
|
|
152
|
+
.SearchBarUpdated =
|
|
153
|
+
{
|
|
154
|
+
.event = @"ANN.SearchBarUpdated",
|
|
155
|
+
.componentId = @"componentId",
|
|
156
|
+
.text = @"text",
|
|
157
|
+
.isFocused = @"isFocused",
|
|
158
|
+
.scope = @"scope",
|
|
159
|
+
.tokens = @"tokens",
|
|
160
|
+
},
|
|
161
|
+
.SearchSuggestionPicked =
|
|
162
|
+
{
|
|
163
|
+
.event = @"ANN.SearchSuggestionPicked",
|
|
164
|
+
.componentId = @"componentId",
|
|
165
|
+
.suggestionId = @"suggestionId",
|
|
166
|
+
},
|
|
167
|
+
.SheetDetentChanged =
|
|
168
|
+
{
|
|
169
|
+
.event = @"ANN.SheetDetentChanged",
|
|
170
|
+
.componentId = @"componentId",
|
|
171
|
+
.detent = @"detent",
|
|
172
|
+
},
|
|
173
|
+
.SlotDestroyed = {.event = @"ANN.SlotDestroyed", .componentId = @"componentId"},
|
|
174
|
+
.SplitViewColumnsStacked =
|
|
175
|
+
{
|
|
176
|
+
.event = @"ANN.SplitViewColumnsStacked",
|
|
177
|
+
.componentId = @"componentId",
|
|
178
|
+
.stacked = @"stacked",
|
|
179
|
+
},
|
|
180
|
+
.SplitViewDisplayModeChanged =
|
|
181
|
+
{
|
|
182
|
+
.event = @"ANN.SplitViewDisplayModeChanged",
|
|
183
|
+
.componentId = @"componentId",
|
|
184
|
+
.displayMode = @"displayMode",
|
|
185
|
+
.inspectorVisible = @"inspectorVisible",
|
|
186
|
+
},
|
|
187
|
+
.TitleRenamed = {.event = @"ANN.TitleRenamed", .componentId = @"componentId", .text = @"text"},
|
|
188
|
+
};
|
|
189
|
+
|
|
190
|
+
NSArray<NSString *> *ANNEventContractNames(void) {
|
|
191
|
+
return @[
|
|
192
|
+
ANNEventContract.AppLaunched.event,
|
|
193
|
+
ANNEventContract.ArrangementChanged.event,
|
|
194
|
+
ANNEventContract.BottomAccessoryPlacementChanged.event,
|
|
195
|
+
ANNEventContract.BottomTabLongPressed.event,
|
|
196
|
+
ANNEventContract.BottomTabPressed.event,
|
|
197
|
+
ANNEventContract.BottomTabSelected.event,
|
|
198
|
+
ANNEventContract.CommandCompleted.event,
|
|
199
|
+
ANNEventContract.ComponentDidAppear.event,
|
|
200
|
+
ANNEventContract.ComponentDidDisappear.event,
|
|
201
|
+
ANNEventContract.ComponentWillAppear.event,
|
|
202
|
+
ANNEventContract.DeepLinkDispatched.event,
|
|
203
|
+
ANNEventContract.HingeChanged.event,
|
|
204
|
+
ANNEventContract.KeyCommandPressed.event,
|
|
205
|
+
ANNEventContract.ModalAttemptedToDismiss.event,
|
|
206
|
+
ANNEventContract.ModalDismissed.event,
|
|
207
|
+
ANNEventContract.NativeScreenCall.event,
|
|
208
|
+
ANNEventContract.NativeScreenReleased.event,
|
|
209
|
+
ANNEventContract.NavigationButtonPressed.event,
|
|
210
|
+
ANNEventContract.NavigationStateChanged.event,
|
|
211
|
+
ANNEventContract.PreviewCompleted.event,
|
|
212
|
+
ANNEventContract.ScreenInsetsChanged.event,
|
|
213
|
+
ANNEventContract.ScreenPopped.event,
|
|
214
|
+
ANNEventContract.ScreenRegionsChanged.event,
|
|
215
|
+
ANNEventContract.SearchBarCancelPressed.event,
|
|
216
|
+
ANNEventContract.SearchBarSubmitted.event,
|
|
217
|
+
ANNEventContract.SearchBarUpdated.event,
|
|
218
|
+
ANNEventContract.SearchSuggestionPicked.event,
|
|
219
|
+
ANNEventContract.SheetDetentChanged.event,
|
|
220
|
+
ANNEventContract.SlotDestroyed.event,
|
|
221
|
+
ANNEventContract.SplitViewColumnsStacked.event,
|
|
222
|
+
ANNEventContract.SplitViewDisplayModeChanged.event,
|
|
223
|
+
ANNEventContract.TitleRenamed.event,
|
|
224
|
+
];
|
|
225
|
+
}
|
|
@@ -22,12 +22,13 @@ NS_ASSUME_NONNULL_BEGIN
|
|
|
22
22
|
/// Whether the JavaScript of this emitter still runs: its events go only then. Any thread.
|
|
23
23
|
@property(nonatomic, readonly) BOOL isCurrent;
|
|
24
24
|
|
|
25
|
-
/// Sends `ANN.<
|
|
25
|
+
/// Sends the event `name` (`ANNEventContract.<Event>.event`, `ANN.<Event>`) with the payload as it is, its keys from
|
|
26
|
+
/// `ANNEventContract` too. From another queue it moves to the main queue first.
|
|
26
27
|
- (void)sendEvent:(NSString *)name body:(nullable NSDictionary<NSString *, id> *)body;
|
|
27
28
|
|
|
28
29
|
#pragma mark - The contract
|
|
29
30
|
|
|
30
|
-
/// `ANN.AppLaunched`,
|
|
31
|
+
/// `ANN.AppLaunched`, with an empty payload. While JavaScript has no listener of it, it is kept and goes once JavaScript
|
|
31
32
|
/// adds the first one. Main queue.
|
|
32
33
|
- (void)sendAppLaunched;
|
|
33
34
|
|
|
@@ -85,6 +86,9 @@ NS_ASSUME_NONNULL_BEGIN
|
|
|
85
86
|
|
|
86
87
|
- (void)sendSlotDestroyed:(NSString *)componentId;
|
|
87
88
|
|
|
89
|
+
/// `ANN.DeepLinkDispatched { url }` (iOS only): a link React Native's `Linking` didn't take, for JavaScript to hand it.
|
|
90
|
+
- (void)sendDeepLinkDispatched:(NSURL *)url;
|
|
91
|
+
|
|
88
92
|
/// `ANN.TitleRenamed { componentId, text }` (EVT-TitleRenamed).
|
|
89
93
|
- (void)sendTitleRenamed:(NSString *)componentId text:(NSString *)text;
|
|
90
94
|
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
#import "ANNEventEmitter.h"
|
|
2
2
|
#import "ANNAssert.h"
|
|
3
|
+
#import "ANNEventContract.h"
|
|
3
4
|
#import "ANNReloadCoordinator.h"
|
|
4
5
|
#import "ANNTurboEventEmitter.h"
|
|
5
6
|
#import <React/RCTUtils.h>
|
|
@@ -24,8 +25,6 @@ static NSString *ANNComponentTypeName(ANNReactComponentType componentType) {
|
|
|
24
25
|
static BOOL ANNAppLaunchedPending;
|
|
25
26
|
static NSUInteger ANNAppLaunchedBundle;
|
|
26
27
|
|
|
27
|
-
static NSString *const ANNAppLaunchedEvent = @"ANN.AppLaunched";
|
|
28
|
-
|
|
29
28
|
@implementation ANNEventEmitter
|
|
30
29
|
|
|
31
30
|
- (instancetype)init {
|
|
@@ -42,12 +41,11 @@ static NSString *const ANNAppLaunchedEvent = @"ANN.AppLaunched";
|
|
|
42
41
|
// The generation is checked where the event goes out, on the main queue: an event sent from another queue just
|
|
43
42
|
// before a reload is dropped too.
|
|
44
43
|
- (void)sendEvent:(NSString *)name body:(NSDictionary<NSString *, id> *)body {
|
|
45
|
-
NSString *eventName = [@"ANN." stringByAppendingString:name];
|
|
46
44
|
RCTExecuteOnMainQueue(^{
|
|
47
45
|
if (!self.isCurrent) {
|
|
48
46
|
return;
|
|
49
47
|
}
|
|
50
|
-
[ANNTurboEventEmitter.current sendIfListened:
|
|
48
|
+
[ANNTurboEventEmitter.current sendIfListened:name body:body];
|
|
51
49
|
});
|
|
52
50
|
}
|
|
53
51
|
|
|
@@ -62,7 +60,7 @@ static NSString *const ANNAppLaunchedEvent = @"ANN.AppLaunched";
|
|
|
62
60
|
return;
|
|
63
61
|
}
|
|
64
62
|
ANNAppLaunchedPending = NO;
|
|
65
|
-
[eventEmitter sendIfListened:
|
|
63
|
+
[eventEmitter sendIfListened:ANNEventContract.AppLaunched.event body:@{}];
|
|
66
64
|
}
|
|
67
65
|
|
|
68
66
|
+ (void)eventEmitterListensToAppLaunched:(ANNTurboEventEmitter *)eventEmitter {
|
|
@@ -71,7 +69,7 @@ static NSString *const ANNAppLaunchedEvent = @"ANN.AppLaunched";
|
|
|
71
69
|
return;
|
|
72
70
|
}
|
|
73
71
|
ANNAppLaunchedPending = NO;
|
|
74
|
-
[eventEmitter sendIfListened:
|
|
72
|
+
[eventEmitter sendIfListened:ANNEventContract.AppLaunched.event body:@{}];
|
|
75
73
|
}
|
|
76
74
|
|
|
77
75
|
// Only an `AppLaunched` of the module's own JavaScript or an older one: the module is made while its bundle runs,
|
|
@@ -87,11 +85,12 @@ static NSString *const ANNAppLaunchedEvent = @"ANN.AppLaunched";
|
|
|
87
85
|
- (void)sendCommandCompleted:(NSString *)commandName
|
|
88
86
|
commandId:(NSString *)commandId
|
|
89
87
|
completionTime:(double)completionTime {
|
|
90
|
-
|
|
88
|
+
const auto &keys = ANNEventContract.CommandCompleted;
|
|
89
|
+
[self sendEvent:keys.event
|
|
91
90
|
body:@{
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
91
|
+
keys.commandName : commandName,
|
|
92
|
+
keys.commandId : commandId,
|
|
93
|
+
keys.completionTime : @(completionTime),
|
|
95
94
|
}];
|
|
96
95
|
}
|
|
97
96
|
|
|
@@ -100,7 +99,7 @@ static NSString *const ANNAppLaunchedEvent = @"ANN.AppLaunched";
|
|
|
100
99
|
- (void)sendComponentWillAppear:(NSString *)componentId
|
|
101
100
|
componentName:(NSString *)componentName
|
|
102
101
|
componentType:(ANNReactComponentType)componentType {
|
|
103
|
-
[self sendComponentEvent
|
|
102
|
+
[self sendComponentEvent:ANNEventContract.ComponentWillAppear.event
|
|
104
103
|
componentId:componentId
|
|
105
104
|
componentName:componentName
|
|
106
105
|
componentType:componentType];
|
|
@@ -109,7 +108,7 @@ static NSString *const ANNAppLaunchedEvent = @"ANN.AppLaunched";
|
|
|
109
108
|
- (void)sendComponentDidAppear:(NSString *)componentId
|
|
110
109
|
componentName:(NSString *)componentName
|
|
111
110
|
componentType:(ANNReactComponentType)componentType {
|
|
112
|
-
[self sendComponentEvent
|
|
111
|
+
[self sendComponentEvent:ANNEventContract.ComponentDidAppear.event
|
|
113
112
|
componentId:componentId
|
|
114
113
|
componentName:componentName
|
|
115
114
|
componentType:componentType];
|
|
@@ -118,21 +117,23 @@ static NSString *const ANNAppLaunchedEvent = @"ANN.AppLaunched";
|
|
|
118
117
|
- (void)sendComponentDidDisappear:(NSString *)componentId
|
|
119
118
|
componentName:(NSString *)componentName
|
|
120
119
|
componentType:(ANNReactComponentType)componentType {
|
|
121
|
-
[self sendComponentEvent
|
|
120
|
+
[self sendComponentEvent:ANNEventContract.ComponentDidDisappear.event
|
|
122
121
|
componentId:componentId
|
|
123
122
|
componentName:componentName
|
|
124
123
|
componentType:componentType];
|
|
125
124
|
}
|
|
126
125
|
|
|
126
|
+
// The three appearance events have the same keys.
|
|
127
127
|
- (void)sendComponentEvent:(NSString *)name
|
|
128
128
|
componentId:(NSString *)componentId
|
|
129
129
|
componentName:(NSString *)componentName
|
|
130
130
|
componentType:(ANNReactComponentType)componentType {
|
|
131
|
+
const auto &keys = ANNEventContract.ComponentDidAppear;
|
|
131
132
|
[self sendEvent:name
|
|
132
133
|
body:@{
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
134
|
+
keys.componentId : componentId ?: @"",
|
|
135
|
+
keys.componentName : componentName ?: @"",
|
|
136
|
+
keys.componentType : ANNComponentTypeName(componentType),
|
|
136
137
|
}];
|
|
137
138
|
}
|
|
138
139
|
|
|
@@ -143,58 +144,76 @@ static NSString *const ANNAppLaunchedEvent = @"ANN.AppLaunched";
|
|
|
143
144
|
- (void)sendOnNavigationButtonPressed:(NSString *)componentId
|
|
144
145
|
buttonId:(NSString *)buttonId
|
|
145
146
|
selected:(NSNumber *)selected {
|
|
147
|
+
const auto &keys = ANNEventContract.NavigationButtonPressed;
|
|
146
148
|
NSMutableDictionary *body =
|
|
147
|
-
[@{
|
|
149
|
+
[@{keys.componentId : componentId ?: @"", keys.buttonId : buttonId ?: @""} mutableCopy];
|
|
148
150
|
if (selected) {
|
|
149
|
-
body[
|
|
151
|
+
body[keys.selected] = @(selected.boolValue);
|
|
150
152
|
}
|
|
151
|
-
[self sendEvent
|
|
153
|
+
[self sendEvent:keys.event body:body];
|
|
152
154
|
}
|
|
153
155
|
|
|
154
156
|
- (void)sendScreenPopped:(NSString *)componentId {
|
|
155
|
-
|
|
157
|
+
const auto &keys = ANNEventContract.ScreenPopped;
|
|
158
|
+
[self sendEvent:keys.event body:@{keys.componentId : componentId ?: @""}];
|
|
156
159
|
}
|
|
157
160
|
|
|
158
161
|
- (void)sendNavigationStateChanged:(NSString *)screenId name:(NSString *)name tab:(NSNumber *)tab {
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
+
const auto &keys = ANNEventContract.NavigationStateChanged;
|
|
163
|
+
const auto &screenKeys = ANNEventContract.NavigationStateChangedScreen;
|
|
164
|
+
id screen = screenId ? @{screenKeys.id : screenId, screenKeys.name : name ?: @""}
|
|
165
|
+
: (id)NSNull.null;
|
|
166
|
+
[self sendEvent:keys.event body:@{keys.screen : screen, keys.tab : tab ?: (id)NSNull.null}];
|
|
162
167
|
}
|
|
163
168
|
|
|
164
169
|
- (void)sendScreenInsetsChanged:(NSString *)componentId
|
|
165
170
|
insets:(NSDictionary<NSString *, NSNumber *> *)insets {
|
|
171
|
+
const auto &keys = ANNEventContract.ScreenInsetsChanged;
|
|
166
172
|
NSMutableDictionary *body = [insets mutableCopy] ?: [NSMutableDictionary new];
|
|
167
|
-
body[
|
|
168
|
-
[self sendEvent
|
|
173
|
+
body[keys.componentId] = componentId;
|
|
174
|
+
[self sendEvent:keys.event body:body];
|
|
169
175
|
}
|
|
170
176
|
|
|
171
177
|
- (void)sendScreenRegionsChanged:(NSString *)componentId
|
|
172
178
|
regions:(NSDictionary<NSString *, NSArray *> *)regions {
|
|
179
|
+
const auto &keys = ANNEventContract.ScreenRegionsChanged;
|
|
173
180
|
NSMutableDictionary *body = [regions mutableCopy] ?: [NSMutableDictionary new];
|
|
174
|
-
body[
|
|
175
|
-
[self sendEvent
|
|
181
|
+
body[keys.componentId] = componentId;
|
|
182
|
+
[self sendEvent:keys.event body:body];
|
|
176
183
|
}
|
|
177
184
|
|
|
178
185
|
- (void)sendSlotDestroyed:(NSString *)componentId {
|
|
179
|
-
|
|
186
|
+
const auto &keys = ANNEventContract.SlotDestroyed;
|
|
187
|
+
[self sendEvent:keys.event body:@{keys.componentId : componentId ?: @""}];
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
- (void)sendDeepLinkDispatched:(NSURL *)url {
|
|
191
|
+
const auto &keys = ANNEventContract.DeepLinkDispatched;
|
|
192
|
+
[self sendEvent:keys.event body:@{keys.url : url.absoluteString ?: @""}];
|
|
180
193
|
}
|
|
181
194
|
|
|
182
195
|
- (void)sendTitleRenamed:(NSString *)componentId text:(NSString *)text {
|
|
183
|
-
|
|
184
|
-
|
|
196
|
+
const auto &keys = ANNEventContract.TitleRenamed;
|
|
197
|
+
[self sendEvent:keys.event
|
|
198
|
+
body:@{keys.componentId : componentId ?: @"", keys.text : text ?: @""}];
|
|
185
199
|
}
|
|
186
200
|
|
|
187
201
|
- (void)sendKeyCommandPressed:(NSString *)componentId keyCommandId:(NSString *)keyCommandId {
|
|
188
|
-
|
|
189
|
-
|
|
202
|
+
const auto &keys = ANNEventContract.KeyCommandPressed;
|
|
203
|
+
[self sendEvent:keys.event
|
|
204
|
+
body:@{
|
|
205
|
+
keys.componentId : componentId ?: @"",
|
|
206
|
+
keys.keyCommandId : keyCommandId ?: @"",
|
|
207
|
+
}];
|
|
190
208
|
}
|
|
191
209
|
|
|
192
210
|
- (void)sendPreviewCompleted:(NSString *)componentId
|
|
193
211
|
previewComponentId:(NSString *)previewComponentId {
|
|
194
|
-
|
|
212
|
+
const auto &keys = ANNEventContract.PreviewCompleted;
|
|
213
|
+
[self sendEvent:keys.event
|
|
195
214
|
body:@{
|
|
196
|
-
|
|
197
|
-
|
|
215
|
+
keys.componentId : componentId ?: @"",
|
|
216
|
+
keys.previewComponentId : previewComponentId ?: @"",
|
|
198
217
|
}];
|
|
199
218
|
}
|
|
200
219
|
|
|
@@ -203,21 +222,24 @@ static NSString *const ANNAppLaunchedEvent = @"ANN.AppLaunched";
|
|
|
203
222
|
- (void)sendModalDismissed:(NSString *)componentId
|
|
204
223
|
componentName:(NSString *)componentName
|
|
205
224
|
modalsDismissed:(NSUInteger)modalsDismissed {
|
|
206
|
-
|
|
225
|
+
const auto &keys = ANNEventContract.ModalDismissed;
|
|
226
|
+
[self sendEvent:keys.event
|
|
207
227
|
body:@{
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
228
|
+
keys.componentId : componentId ?: @"",
|
|
229
|
+
keys.componentName : componentName ?: @"",
|
|
230
|
+
keys.modalsDismissed : @(modalsDismissed),
|
|
211
231
|
}];
|
|
212
232
|
}
|
|
213
233
|
|
|
214
234
|
- (void)sendModalAttemptedToDismiss:(NSString *)componentId {
|
|
215
|
-
|
|
235
|
+
const auto &keys = ANNEventContract.ModalAttemptedToDismiss;
|
|
236
|
+
[self sendEvent:keys.event body:@{keys.componentId : componentId ?: @""}];
|
|
216
237
|
}
|
|
217
238
|
|
|
218
239
|
- (void)sendSheetDetentChanged:(NSString *)componentId detent:(id)detent {
|
|
219
|
-
|
|
220
|
-
|
|
240
|
+
const auto &keys = ANNEventContract.SheetDetentChanged;
|
|
241
|
+
[self sendEvent:keys.event
|
|
242
|
+
body:@{keys.componentId : componentId ?: @"", keys.detent : detent ?: @""}];
|
|
221
243
|
}
|
|
222
244
|
|
|
223
245
|
#pragma mark - Search
|
|
@@ -227,82 +249,94 @@ static NSString *const ANNAppLaunchedEvent = @"ANN.AppLaunched";
|
|
|
227
249
|
isFocused:(BOOL)isFocused
|
|
228
250
|
scope:(NSString *)scope
|
|
229
251
|
tokens:(NSArray<NSString *> *)tokens {
|
|
252
|
+
const auto &keys = ANNEventContract.SearchBarUpdated;
|
|
230
253
|
NSMutableDictionary *body = [@{
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
254
|
+
keys.componentId : componentId ?: @"",
|
|
255
|
+
keys.text : text ?: @"",
|
|
256
|
+
keys.isFocused : @(isFocused),
|
|
234
257
|
} mutableCopy];
|
|
235
|
-
body[
|
|
236
|
-
body[
|
|
237
|
-
[self sendEvent
|
|
258
|
+
body[keys.scope] = scope;
|
|
259
|
+
body[keys.tokens] = tokens;
|
|
260
|
+
[self sendEvent:keys.event body:body];
|
|
238
261
|
}
|
|
239
262
|
|
|
240
263
|
- (void)sendOnSearchBarSubmitted:(NSString *)componentId
|
|
241
264
|
text:(NSString *)text
|
|
242
265
|
scope:(NSString *)scope
|
|
243
266
|
tokens:(NSArray<NSString *> *)tokens {
|
|
267
|
+
const auto &keys = ANNEventContract.SearchBarSubmitted;
|
|
244
268
|
NSMutableDictionary *body =
|
|
245
|
-
[@{
|
|
246
|
-
body[
|
|
247
|
-
body[
|
|
248
|
-
[self sendEvent
|
|
269
|
+
[@{keys.componentId : componentId ?: @"", keys.text : text ?: @""} mutableCopy];
|
|
270
|
+
body[keys.scope] = scope;
|
|
271
|
+
body[keys.tokens] = tokens;
|
|
272
|
+
[self sendEvent:keys.event body:body];
|
|
249
273
|
}
|
|
250
274
|
|
|
251
275
|
- (void)sendOnSearchBarCancelPressed:(NSString *)componentId {
|
|
252
|
-
|
|
276
|
+
const auto &keys = ANNEventContract.SearchBarCancelPressed;
|
|
277
|
+
[self sendEvent:keys.event body:@{keys.componentId : componentId ?: @""}];
|
|
253
278
|
}
|
|
254
279
|
|
|
255
280
|
- (void)sendOnSearchSuggestionPicked:(NSString *)componentId suggestionId:(NSString *)suggestionId {
|
|
256
|
-
|
|
257
|
-
|
|
281
|
+
const auto &keys = ANNEventContract.SearchSuggestionPicked;
|
|
282
|
+
[self sendEvent:keys.event
|
|
283
|
+
body:@{
|
|
284
|
+
keys.componentId : componentId ?: @"",
|
|
285
|
+
keys.suggestionId : suggestionId ?: @"",
|
|
286
|
+
}];
|
|
258
287
|
}
|
|
259
288
|
|
|
260
289
|
#pragma mark - Split view, pair, hinge
|
|
261
290
|
|
|
262
291
|
- (void)sendSplitViewColumnsStacked:(NSString *)componentId stacked:(BOOL)stacked {
|
|
263
|
-
|
|
264
|
-
|
|
292
|
+
const auto &keys = ANNEventContract.SplitViewColumnsStacked;
|
|
293
|
+
[self sendEvent:keys.event
|
|
294
|
+
body:@{keys.componentId : componentId ?: @"", keys.stacked : @(stacked)}];
|
|
265
295
|
}
|
|
266
296
|
|
|
267
297
|
- (void)sendSplitViewDisplayModeChanged:(NSString *)componentId
|
|
268
298
|
displayMode:(NSString *)displayMode
|
|
269
299
|
inspectorVisible:(NSNumber *)inspectorVisible {
|
|
300
|
+
const auto &keys = ANNEventContract.SplitViewDisplayModeChanged;
|
|
270
301
|
NSMutableDictionary *body = [@{
|
|
271
|
-
|
|
272
|
-
|
|
302
|
+
keys.componentId : componentId ?: @"",
|
|
303
|
+
keys.displayMode : displayMode ?: @"automatic",
|
|
273
304
|
} mutableCopy];
|
|
274
|
-
body[
|
|
275
|
-
[self sendEvent
|
|
305
|
+
body[keys.inspectorVisible] = inspectorVisible;
|
|
306
|
+
[self sendEvent:keys.event body:body];
|
|
276
307
|
}
|
|
277
308
|
|
|
278
309
|
- (void)sendArrangementChanged:(NSString *)componentId state:(NSDictionary<NSString *, id> *)state {
|
|
310
|
+
const auto &keys = ANNEventContract.ArrangementChanged;
|
|
279
311
|
NSMutableDictionary *body = [state mutableCopy] ?: [NSMutableDictionary new];
|
|
280
|
-
body[
|
|
281
|
-
[self sendEvent
|
|
312
|
+
body[keys.componentId] = componentId;
|
|
313
|
+
[self sendEvent:keys.event body:body];
|
|
282
314
|
}
|
|
283
315
|
|
|
284
316
|
- (void)sendHingeChanged:(NSDictionary<NSString *, id> *)value {
|
|
285
|
-
[self sendEvent
|
|
317
|
+
[self sendEvent:ANNEventContract.HingeChanged.event body:value ?: @{}];
|
|
286
318
|
}
|
|
287
319
|
|
|
288
320
|
#pragma mark - Native screens, tabs
|
|
289
321
|
|
|
290
322
|
- (void)sendNativeScreenCall:(NSDictionary<NSString *, id> *)call {
|
|
291
|
-
[self sendEvent
|
|
323
|
+
[self sendEvent:ANNEventContract.NativeScreenCall.event body:call];
|
|
292
324
|
}
|
|
293
325
|
|
|
294
326
|
- (void)sendNativeScreenReleased:(NSString *)componentId {
|
|
295
|
-
|
|
327
|
+
const auto &keys = ANNEventContract.NativeScreenReleased;
|
|
328
|
+
[self sendEvent:keys.event body:@{keys.componentId : componentId ?: @""}];
|
|
296
329
|
}
|
|
297
330
|
|
|
298
331
|
- (void)sendBottomTabSelected:(NSUInteger)selectedTabIndex
|
|
299
332
|
unselectedTabIndex:(NSUInteger)unselectedTabIndex
|
|
300
333
|
bottomTabsId:(NSString *)bottomTabsId {
|
|
301
|
-
|
|
334
|
+
const auto &keys = ANNEventContract.BottomTabSelected;
|
|
335
|
+
[self sendEvent:keys.event
|
|
302
336
|
body:@{
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
337
|
+
keys.selectedTabIndex : @(selectedTabIndex),
|
|
338
|
+
keys.unselectedTabIndex : @(unselectedTabIndex),
|
|
339
|
+
keys.bottomTabsId : bottomTabsId ?: @"",
|
|
306
340
|
}];
|
|
307
341
|
}
|
|
308
342
|
|
|
@@ -310,28 +344,31 @@ static NSString *const ANNAppLaunchedEvent = @"ANN.AppLaunched";
|
|
|
310
344
|
bottomTabsId:(NSString *)bottomTabsId
|
|
311
345
|
screenId:(NSString *)screenId
|
|
312
346
|
wasSelected:(BOOL)wasSelected {
|
|
347
|
+
const auto &keys = ANNEventContract.BottomTabPressed;
|
|
313
348
|
NSMutableDictionary *body = [@{
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
349
|
+
keys.tabIndex : @(tabIndex),
|
|
350
|
+
keys.bottomTabsId : bottomTabsId ?: @"",
|
|
351
|
+
keys.wasSelected : @(wasSelected),
|
|
317
352
|
} mutableCopy];
|
|
318
|
-
body[
|
|
319
|
-
[self sendEvent
|
|
353
|
+
body[keys.screenId] = screenId;
|
|
354
|
+
[self sendEvent:keys.event body:body];
|
|
320
355
|
}
|
|
321
356
|
|
|
322
357
|
- (void)sendBottomTabLongPressed:(NSUInteger)selectedTabIndex
|
|
323
358
|
bottomTabsId:(NSString *)bottomTabsId {
|
|
324
|
-
|
|
359
|
+
const auto &keys = ANNEventContract.BottomTabLongPressed;
|
|
360
|
+
[self sendEvent:keys.event
|
|
325
361
|
body:@{
|
|
326
|
-
|
|
327
|
-
|
|
362
|
+
keys.selectedTabIndex : @(selectedTabIndex),
|
|
363
|
+
keys.bottomTabsId : bottomTabsId ?: @"",
|
|
328
364
|
}];
|
|
329
365
|
}
|
|
330
366
|
|
|
331
367
|
- (void)sendBottomAccessoryPlacementChanged:(NSString *)componentId
|
|
332
368
|
placement:(NSString *)placement {
|
|
333
|
-
|
|
334
|
-
|
|
369
|
+
const auto &keys = ANNEventContract.BottomAccessoryPlacementChanged;
|
|
370
|
+
[self sendEvent:keys.event
|
|
371
|
+
body:@{keys.componentId : componentId ?: @"", keys.placement : placement ?: @""}];
|
|
335
372
|
}
|
|
336
373
|
|
|
337
374
|
@end
|