@nativescript-community/gesturehandler 0.2.2 → 2.0.0
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/.classpath +12 -0
- package/.eslintrc.js +3 -0
- package/.gitattributes +17 -0
- package/.github/FUNDING.yml +1 -0
- package/.github/issue_template.md +28 -0
- package/.gitmodules +6 -0
- package/.gradle/7.3/checksums/checksums.lock +0 -0
- package/.gradle/7.3/dependencies-accessors/dependencies-accessors.lock +0 -0
- package/.gradle/7.3/dependencies-accessors/gc.properties +0 -0
- package/.gradle/7.3/fileChanges/last-build.bin +0 -0
- package/.gradle/7.3/fileHashes/fileHashes.lock +0 -0
- package/.gradle/7.3/gc.properties +0 -0
- package/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
- package/.gradle/buildOutputCleanup/cache.properties +2 -0
- package/.gradle/checksums/checksums.lock +0 -0
- package/.gradle/checksums/md5-checksums.bin +0 -0
- package/.gradle/checksums/sha1-checksums.bin +0 -0
- package/.gradle/vcs-1/gc.properties +0 -0
- package/.history/build_20201106173734.gradle +22 -0
- package/.history/build_20220218093019.gradle +22 -0
- package/.history/build_20220218093024.gradle +22 -0
- package/.history/build_20220218093151.gradle +22 -0
- package/.history/build_20220218093200.gradle +22 -0
- package/.history/build_20220218093224.gradle +22 -0
- package/.history/build_20220218093249.gradle +22 -0
- package/.history/build_20220218093334.gradle +22 -0
- package/.history/build_20220218093339.gradle +22 -0
- package/.history/build_20220218093341.gradle +22 -0
- package/.history/build_20220218093411.gradle +22 -0
- package/.history/build_20220218093413.gradle +22 -0
- package/.history/build_20220218093416.gradle +22 -0
- package/.history/build_20220218093421.gradle +23 -0
- package/.history/build_20220218093423.gradle +22 -0
- package/.history/build_20220218100008.gradle +22 -0
- package/.history/demo-snippets/package_20211119094134.json +7 -0
- package/.history/demo-snippets/package_20220328153105.json +7 -0
- package/.history/demo-snippets/package_20220328153251.json +7 -0
- package/.history/demo-snippets/package_20220328153410.json +7 -0
- package/.history/demo-snippets/vue/Basic_20210917174642.vue +46 -0
- package/.history/demo-snippets/vue/Basic_20220328154031.vue +44 -0
- package/.history/demo-snippets/vue/Basic_20220328154730.vue +46 -0
- package/.history/demo-snippets/vue/Basic_20220328154741.vue +46 -0
- package/.history/demo-snippets/vue/Basic_20220328154807.vue +47 -0
- package/.history/demo-snippets/vue/Basic_20220328154838.vue +51 -0
- package/.history/demo-snippets/vue/Basic_20220328154839.vue +51 -0
- package/.history/demo-snippets/vue/Basic_20220328154901.vue +52 -0
- package/.history/demo-snippets/vue/Basic_20220328154925.vue +52 -0
- package/.history/demo-snippets/vue/Basic_20220328162644.vue +52 -0
- package/.history/demo-snippets/vue/Basic_20220328162656.vue +48 -0
- package/.history/demo-snippets/vue/Basic_20220328162658.vue +48 -0
- package/.history/demo-snippets/vue/Basic_20220328162731.vue +48 -0
- package/.history/demo-snippets/vue/ModalView_20220328154527.vue +0 -0
- package/.history/demo-snippets/vue/ModalView_20220328154555.vue +15 -0
- package/.history/demo-snippets/vue/ModalView_20220328162755.vue +15 -0
- package/.history/demo-snippets/vue/ModalView_20220328162915.vue +17 -0
- package/.history/demo-snippets/vue/install_20211117134051.ts +14 -0
- package/.history/demo-snippets/vue/install_20220328153411.ts +10 -0
- package/.history/demo-snippets/vue/install_20220328154031.ts +9 -0
- package/.history/demo-snippets/vue/install_20220328162915.ts +10 -0
- package/.history/demo-vue/.npmrc_20220328151942 +1 -0
- package/.history/demo-vue/.npmrc_20220329084955 +2 -0
- package/.history/demo-vue/package_20220328151942.json +60 -0
- package/.history/demo-vue/package_20220328153206.json +60 -0
- package/.history/demo-vue/package_20220328153218.json +59 -0
- package/.history/demo-vue/package_20220328153326.json +60 -0
- package/.history/demo-vue/package_20220328153411.json +60 -0
- package/.history/demo_vue/app/App_20201115162303.vue +118 -0
- package/.history/demo_vue/app/App_20220328150238.vue +118 -0
- package/.history/demo_vue/app/App_20220328150240.vue +116 -0
- package/.history/demo_vue/app/App_20220328150241.vue +115 -0
- package/.history/demo_vue/package_20210511163846.json +30 -0
- package/.history/demo_vue/package_20220328145031.json +30 -0
- package/.history/demo_vue/package_20220328150155.json +30 -0
- package/.history/demo_vue/package_20220328151156.json +29 -0
- package/.history/demo_vue/tsconfig_20200909142713.json +30 -0
- package/.history/demo_vue/tsconfig_20220328151126.json +28 -0
- package/.history/demo_vue/tsconfig_20220328151129.json +27 -0
- package/.history/demo_vue/webpack.config_20200909141619.js +370 -0
- package/.history/demo_vue/webpack.config_20220328145113.js +6 -0
- package/.history/demo_vue/webpack.config_20220328145115.js +5 -0
- package/.history/lerna_20220104212014.json +21 -0
- package/.history/lerna_20220328152313.json +21 -0
- package/.history/package_20220311095923.json +74 -0
- package/.history/package_20220328152312.json +74 -0
- package/.history/packages/gesturehandler/blueprint_20220306151807.md +221 -0
- package/{blueprint.md → .history/packages/gesturehandler/blueprint_20220328164413.md} +0 -0
- package/.history/packages/gesturehandler/package_20220325110528.json +39 -0
- package/.history/packages/gesturehandler/package_20220328152653.json +52 -0
- package/.history/packages/gesturehandler/package_20220328152719.json +52 -0
- package/.history/packages/gesturehandler/package_20220328153446.json +52 -0
- package/.history/packages/gesturehandler/package_20220328164418.json +52 -0
- package/.history/packages/gesturehandler/package_20220328164722.json +52 -0
- package/.history/packages/gesturehandler/platforms/android/java/com/swmansion/gesturehandler/GestureHandler_20210517182228.java +544 -0
- package/{platforms/android/java/com/swmansion/gesturehandler/GestureHandler.java → .history/packages/gesturehandler/platforms/android/java/com/swmansion/gesturehandler/GestureHandler_20220331104607.java} +0 -0
- package/.history/packages/gesturehandler/platforms/android/java/com/swmansion/gesturehandler/LongPressGestureHandler_20210512101356.java +81 -0
- package/{platforms/android/java/com/swmansion/gesturehandler/LongPressGestureHandler.java → .history/packages/gesturehandler/platforms/android/java/com/swmansion/gesturehandler/LongPressGestureHandler_20220331111050.java} +0 -0
- package/.history/packages/gesturehandler/tsconfig_20220328152950.json +13 -0
- package/.history/packages/gesturehandler/tsconfig_20220328153011.json +13 -0
- package/.history/plugin/platforms/android/include_20220125161223.gradle +10 -0
- package/.history/plugin/platforms/android/include_20220217110818.gradle +19 -0
- package/.history/plugin/platforms/android/include_20220217112410.gradle +18 -0
- package/{platforms/android/include.gradle → .history/plugin/platforms/android/include_20220217153211.gradle} +0 -0
- package/.history/plugin/platforms/android/include_20220218092908.gradle +19 -0
- package/{platforms/android/java/com/nativescript/gesturehandler/PageLayout.java → .history/plugin/platforms/android/java/com/nativescript/gesturehandler/GestureLayout_20220217101202.java} +0 -0
- package/.history/plugin/platforms/android/java/com/nativescript/gesturehandler/GestureLayout_20220217101931.java +185 -0
- package/.history/plugin/platforms/ios/src/GestureHandler_20201106183454.h +98 -0
- package/.history/plugin/platforms/ios/src/GestureHandler_20201111112216.m +365 -0
- package/.history/plugin/platforms/ios/src/GestureHandler_20220104160100.m +369 -0
- package/{platforms/ios/src/GestureHandler.h → .history/plugin/platforms/ios/src/GestureHandler_20220104172158.h} +0 -0
- package/.history/src/gesturehandler/gesturehandler.android_20220328144612.ts +610 -0
- package/.history/src/gesturehandler/gesturehandler.android_20220328154126.ts +609 -0
- package/.history/src/gesturehandler/gesturehandler.android_20220328154143.ts +609 -0
- package/.history/src/gesturehandler/gesturehandler.android_20220328154730.ts +610 -0
- package/.history/src/gesturehandler/gesturehandler.android_20220328160735.ts +610 -0
- package/.history/src/gesturehandler/gesturehandler.android_20220328161307.ts +612 -0
- package/.history/src/gesturehandler/gesturehandler.android_20220328161410.ts +613 -0
- package/.history/src/gesturehandler/gesturehandler.android_20220328161742.ts +612 -0
- package/.history/src/gesturehandler/gesturehandler.android_20220328162317.ts +613 -0
- package/.history/src/gesturehandler/gesturehandler.android_20220328162541.ts +613 -0
- package/.history/src/gesturehandler/gesturehandler.android_20220328162915.ts +611 -0
- package/{gesturehandler.android.js → .history/src/gesturehandler/gesturehandler.android_20220328163618.ts} +228 -208
- package/.history/src/gesturehandler/gesturehandler.android_20220328163707.ts +610 -0
- package/.history/src/gesturehandler/gesturehandler.common_20220328144620.ts +325 -0
- package/.history/src/gesturehandler/gesturehandler.common_20220328153656.ts +325 -0
- package/.history/src/gesturehandler/gestures_override_20210512114352.ts +523 -0
- package/.history/src/gesturehandler/gestures_override_20220328155041.ts +523 -0
- package/.history/src/gesturehandler/gestures_override_20220328155424.ts +525 -0
- package/.history/src/gesturehandler/gestures_override_20220328160121.ts +527 -0
- package/.history/src/gesturehandler/gestures_override_20220328160132.ts +527 -0
- package/.history/src/gesturehandler/gestures_override_20220328160220.ts +528 -0
- package/.history/src/gesturehandler/gestures_override_20220328160416.ts +529 -0
- package/.history/src/gesturehandler/gestures_override_20220328160731.ts +535 -0
- package/.history/src/gesturehandler/gestures_override_20220328160808.ts +536 -0
- package/.history/src/gesturehandler/gestures_override_20220328160834.ts +536 -0
- package/.history/src/gesturehandler/gestures_override_20220328160909.ts +536 -0
- package/.history/src/gesturehandler/gestures_override_20220328160931.ts +536 -0
- package/.history/src/gesturehandler/gestures_override_20220328161052.ts +536 -0
- package/.history/src/gesturehandler/gestures_override_20220328161319.ts +536 -0
- package/.history/src/gesturehandler/gestures_override_20220328161759.ts +534 -0
- package/.history/src/gesturehandler/gestures_override_20220328162317.ts +535 -0
- package/.history/src/gesturehandler/gestures_override_20220328162503.ts +535 -0
- package/.history/src/gesturehandler/gestures_override_20220328170816.ts +533 -0
- package/{gestures_override.js → .history/src/gesturehandler/gestures_override_20220328170818.ts} +171 -63
- package/.history/src/gesturehandler/vue/index_20201021164506.ts +12 -0
- package/{vue/index.js → .history/src/gesturehandler/vue/index_20220328163021.ts} +1 -1
- package/.history/src/gesturehandler.android_20220325103749.ts +574 -0
- package/.history/src/gesturehandler.android_20220325110406.ts +574 -0
- package/.history/src/gesturehandler.android_20220328144613.ts +610 -0
- package/{gesturehandler.common.js → .history/src/gesturehandler.common_20210512114125.ts} +161 -74
- package/.history/src/gesturehandler.common_20220328144621.ts +325 -0
- package/.history/src/gesturehandler.d_20210422150412.ts +154 -0
- package/{gesturehandler.d.ts → .history/src/gesturehandler.d_20220328144718.ts} +0 -0
- package/{gesturehandler.ios.js → .history/src/gesturehandler.ios_20210422150701.ts} +100 -71
- package/.history/src/gesturehandler.ios_20220328144653.ts +296 -0
- package/.history/src/references.d_20200412093513.ts +3 -0
- package/.history/src/references.d_20220328144701.ts +3 -0
- package/.history/tsconfig_20220306153539.json +9 -0
- package/.history/tsconfig_20220328152313.json +9 -0
- package/.prettierignore +4 -0
- package/.prettierrc +6 -0
- package/.prettierrc.js +7 -0
- package/.settings/org.eclipse.buildship.core.prefs +13 -0
- package/.vscode/settings.json +19 -0
- package/CHANGELOG.md +147 -63
- package/CONTRIBUTING.md +19 -0
- package/README.md +12 -132
- package/build.gradle +22 -0
- package/config.json +7 -0
- package/demo-snippets/node_modules/.package-lock.json +20 -0
- package/demo-snippets/package.json +7 -0
- package/demo-snippets/vue/Basic.vue +48 -0
- package/demo-snippets/vue/ModalView.vue +17 -0
- package/demo-snippets/vue/install.ts +10 -0
- package/demo-vue/App_Resources/Android/app.gradle +20 -0
- package/demo-vue/App_Resources/Android/src/main/AndroidManifest.xml +42 -0
- package/demo-vue/App_Resources/Android/src/main/res/drawable/ic_launcher_foreground.xml +15 -0
- package/demo-vue/App_Resources/Android/src/main/res/drawable-hdpi/background.png +0 -0
- package/demo-vue/App_Resources/Android/src/main/res/drawable-hdpi/logo.png +0 -0
- package/demo-vue/App_Resources/Android/src/main/res/drawable-ldpi/background.png +0 -0
- package/demo-vue/App_Resources/Android/src/main/res/drawable-ldpi/logo.png +0 -0
- package/demo-vue/App_Resources/Android/src/main/res/drawable-mdpi/background.png +0 -0
- package/demo-vue/App_Resources/Android/src/main/res/drawable-mdpi/logo.png +0 -0
- package/demo-vue/App_Resources/Android/src/main/res/drawable-nodpi/splash_screen.xml +8 -0
- package/demo-vue/App_Resources/Android/src/main/res/drawable-xhdpi/background.png +0 -0
- package/demo-vue/App_Resources/Android/src/main/res/drawable-xhdpi/logo.png +0 -0
- package/demo-vue/App_Resources/Android/src/main/res/drawable-xxhdpi/background.png +0 -0
- package/demo-vue/App_Resources/Android/src/main/res/drawable-xxhdpi/logo.png +0 -0
- package/demo-vue/App_Resources/Android/src/main/res/drawable-xxxhdpi/background.png +0 -0
- package/demo-vue/App_Resources/Android/src/main/res/drawable-xxxhdpi/logo.png +0 -0
- package/demo-vue/App_Resources/Android/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +5 -0
- package/demo-vue/App_Resources/Android/src/main/res/mipmap-hdpi/ic_launcher.png +0 -0
- package/demo-vue/App_Resources/Android/src/main/res/mipmap-mdpi/ic_launcher.png +0 -0
- package/demo-vue/App_Resources/Android/src/main/res/mipmap-xhdpi/ic_launcher.png +0 -0
- package/demo-vue/App_Resources/Android/src/main/res/mipmap-xxhdpi/ic_launcher.png +0 -0
- package/demo-vue/App_Resources/Android/src/main/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
- package/demo-vue/App_Resources/Android/src/main/res/values/colors.xml +7 -0
- package/demo-vue/App_Resources/Android/src/main/res/values/ic_launcher_background.xml +4 -0
- package/demo-vue/App_Resources/Android/src/main/res/values/styles.xml +42 -0
- package/demo-vue/App_Resources/Android/src/main/res/values-v21/colors.xml +4 -0
- package/demo-vue/App_Resources/Android/src/main/res/values-v21/styles.xml +28 -0
- package/demo-vue/App_Resources/Android/src/main/res/values-v29/styles.xml +12 -0
- package/demo-vue/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/Contents.json +122 -0
- package/demo-vue/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-1024.png +0 -0
- package/demo-vue/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-20.png +0 -0
- package/demo-vue/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-20@2x.png +0 -0
- package/demo-vue/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-20@3x.png +0 -0
- package/demo-vue/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-29.png +0 -0
- package/demo-vue/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-29@2x.png +0 -0
- package/demo-vue/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-29@3x.png +0 -0
- package/demo-vue/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-40.png +0 -0
- package/demo-vue/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-40@2x.png +0 -0
- package/demo-vue/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-40@3x.png +0 -0
- package/demo-vue/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-60@2x.png +0 -0
- package/demo-vue/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-60@3x.png +0 -0
- package/demo-vue/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-76.png +0 -0
- package/demo-vue/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-76@2x.png +0 -0
- package/demo-vue/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-83.5@2x.png +0 -0
- package/demo-vue/App_Resources/iOS/Assets.xcassets/Contents.json +6 -0
- package/demo-vue/App_Resources/iOS/Assets.xcassets/LaunchScreen.AspectFill.imageset/Contents.json +23 -0
- package/demo-vue/App_Resources/iOS/Assets.xcassets/LaunchScreen.AspectFill.imageset/LaunchScreen-AspectFill.png +0 -0
- package/demo-vue/App_Resources/iOS/Assets.xcassets/LaunchScreen.AspectFill.imageset/LaunchScreen-AspectFill@2x.png +0 -0
- package/demo-vue/App_Resources/iOS/Assets.xcassets/LaunchScreen.AspectFill.imageset/LaunchScreen-AspectFill@3x.png +0 -0
- package/demo-vue/App_Resources/iOS/Assets.xcassets/LaunchScreen.Center.imageset/Contents.json +23 -0
- package/demo-vue/App_Resources/iOS/Assets.xcassets/LaunchScreen.Center.imageset/LaunchScreen-Center.png +0 -0
- package/demo-vue/App_Resources/iOS/Assets.xcassets/LaunchScreen.Center.imageset/LaunchScreen-Center@2x.png +0 -0
- package/demo-vue/App_Resources/iOS/Assets.xcassets/LaunchScreen.Center.imageset/LaunchScreen-Center@3x.png +0 -0
- package/demo-vue/App_Resources/iOS/Info.plist +47 -0
- package/demo-vue/App_Resources/iOS/LaunchScreen.storyboard +53 -0
- package/demo-vue/App_Resources/iOS/build.xcconfig +6 -0
- package/demo-vue/app/app.scss +11 -0
- package/demo-vue/app/app.ts +9 -0
- package/demo-vue/app/components/Menu.vue +54 -0
- package/demo-vue/nativescript.config.ts +11 -0
- package/demo-vue/package.json +60 -0
- package/demo-vue/tsconfig.json +25 -0
- package/demo-vue/types/references.d.ts +1 -0
- package/demo-vue/types/shims.vue.d.ts +4 -0
- package/demo-vue/webpack.config.js +42 -0
- package/images/demo.gif +0 -0
- package/lerna.json +21 -0
- package/package.json +60 -51
- package/packages/gesturehandler/CHANGELOG.md +609 -0
- package/packages/gesturehandler/README.md +176 -0
- package/packages/gesturehandler/blueprint.md +74 -0
- package/packages/gesturehandler/package.json +52 -0
- package/{platforms → packages/gesturehandler/platforms}/android/AndroidManifest.xml +0 -0
- package/packages/gesturehandler/platforms/android/include.gradle +19 -0
- package/{platforms → packages/gesturehandler/platforms}/android/java/com/nativescript/gesturehandler/GestureHandlerInteractionController.java +0 -0
- package/packages/gesturehandler/platforms/android/java/com/nativescript/gesturehandler/PageLayout.java +189 -0
- package/{platforms → packages/gesturehandler/platforms}/android/java/com/nativescript/gesturehandler/RootViewGestureHandler.java +0 -0
- package/{platforms → packages/gesturehandler/platforms}/android/java/com/swmansion/gesturehandler/BaseGestureHandlerInteractionController.java +0 -0
- package/{platforms → packages/gesturehandler/platforms}/android/java/com/swmansion/gesturehandler/FlingGestureHandler.java +0 -0
- package/packages/gesturehandler/platforms/android/java/com/swmansion/gesturehandler/GestureHandler.java +540 -0
- package/{platforms → packages/gesturehandler/platforms}/android/java/com/swmansion/gesturehandler/GestureHandlerInteractionController.java +0 -0
- package/{platforms → packages/gesturehandler/platforms}/android/java/com/swmansion/gesturehandler/GestureHandlerOrchestrator.java +0 -0
- package/{platforms → packages/gesturehandler/platforms}/android/java/com/swmansion/gesturehandler/GestureHandlerRegistry.java +0 -0
- package/{platforms → packages/gesturehandler/platforms}/android/java/com/swmansion/gesturehandler/GestureHandlerRegistryImpl.java +0 -0
- package/{platforms → packages/gesturehandler/platforms}/android/java/com/swmansion/gesturehandler/GestureUtils.java +0 -0
- package/packages/gesturehandler/platforms/android/java/com/swmansion/gesturehandler/LongPressGestureHandler.java +81 -0
- package/{platforms → packages/gesturehandler/platforms}/android/java/com/swmansion/gesturehandler/NativeViewGestureHandler.java +0 -0
- package/{platforms → packages/gesturehandler/platforms}/android/java/com/swmansion/gesturehandler/OnTouchEventListener.java +0 -0
- package/{platforms → packages/gesturehandler/platforms}/android/java/com/swmansion/gesturehandler/PanGestureHandler.java +0 -0
- package/{platforms → packages/gesturehandler/platforms}/android/java/com/swmansion/gesturehandler/PinchGestureHandler.java +0 -0
- package/{platforms → packages/gesturehandler/platforms}/android/java/com/swmansion/gesturehandler/PointerEvents.java +0 -0
- package/{platforms → packages/gesturehandler/platforms}/android/java/com/swmansion/gesturehandler/PointerEventsConfig.java +0 -0
- package/{platforms → packages/gesturehandler/platforms}/android/java/com/swmansion/gesturehandler/PointerEventsSpec.java +0 -0
- package/{platforms → packages/gesturehandler/platforms}/android/java/com/swmansion/gesturehandler/RotationGestureDetector.java +0 -0
- package/{platforms → packages/gesturehandler/platforms}/android/java/com/swmansion/gesturehandler/RotationGestureHandler.java +0 -0
- package/{platforms → packages/gesturehandler/platforms}/android/java/com/swmansion/gesturehandler/ScaleGestureDetector.java +0 -0
- package/{platforms → packages/gesturehandler/platforms}/android/java/com/swmansion/gesturehandler/TapGestureHandler.java +0 -0
- package/{platforms → packages/gesturehandler/platforms}/android/java/com/swmansion/gesturehandler/ViewConfigurationHelper.java +0 -0
- package/{platforms → packages/gesturehandler/platforms}/android/native-api-usage.json +0 -0
- package/{platforms → packages/gesturehandler/platforms}/android/res/values/config.xml +0 -0
- package/{platforms → packages/gesturehandler/platforms}/ios/src/FlingHandler.h +0 -0
- package/{platforms → packages/gesturehandler/platforms}/ios/src/FlingHandler.m +0 -0
- package/{platforms → packages/gesturehandler/platforms}/ios/src/ForceTouchHandler.h +0 -0
- package/{platforms → packages/gesturehandler/platforms}/ios/src/ForceTouchHandler.m +0 -0
- package/packages/gesturehandler/platforms/ios/src/GestureHandler.h +101 -0
- package/{platforms → packages/gesturehandler/platforms}/ios/src/GestureHandler.m +0 -0
- package/{platforms → packages/gesturehandler/platforms}/ios/src/GestureHandlerDirection.h +0 -0
- package/{platforms → packages/gesturehandler/platforms}/ios/src/GestureHandlerEvents.h +0 -0
- package/{platforms → packages/gesturehandler/platforms}/ios/src/GestureHandlerEvents.m +0 -0
- package/{platforms → packages/gesturehandler/platforms}/ios/src/GestureHandlerHeader.h +0 -0
- package/{platforms → packages/gesturehandler/platforms}/ios/src/GestureHandlerManager.h +0 -0
- package/{platforms → packages/gesturehandler/platforms}/ios/src/GestureHandlerManager.m +0 -0
- package/{platforms → packages/gesturehandler/platforms}/ios/src/GestureHandlerRegistry.h +0 -0
- package/{platforms → packages/gesturehandler/platforms}/ios/src/GestureHandlerRegistry.m +0 -0
- package/{platforms → packages/gesturehandler/platforms}/ios/src/GestureHandlerState.h +0 -0
- package/{platforms → packages/gesturehandler/platforms}/ios/src/LongPressHandler.h +0 -0
- package/{platforms → packages/gesturehandler/platforms}/ios/src/LongPressHandler.m +0 -0
- package/{platforms → packages/gesturehandler/platforms}/ios/src/NativeViewHandler.h +0 -0
- package/{platforms → packages/gesturehandler/platforms}/ios/src/NativeViewHandler.m +0 -0
- package/{platforms → packages/gesturehandler/platforms}/ios/src/PanHandler.h +0 -0
- package/{platforms → packages/gesturehandler/platforms}/ios/src/PanHandler.m +0 -0
- package/{platforms → packages/gesturehandler/platforms}/ios/src/PinchHandler.h +0 -0
- package/{platforms → packages/gesturehandler/platforms}/ios/src/PinchHandler.m +0 -0
- package/{platforms → packages/gesturehandler/platforms}/ios/src/RootViewGestureRecognizer.h +0 -0
- package/{platforms → packages/gesturehandler/platforms}/ios/src/RootViewGestureRecognizer.m +0 -0
- package/{platforms → packages/gesturehandler/platforms}/ios/src/RotationHandler.h +0 -0
- package/{platforms → packages/gesturehandler/platforms}/ios/src/RotationHandler.m +0 -0
- package/{platforms → packages/gesturehandler/platforms}/ios/src/TapHandler.h +0 -0
- package/{platforms → packages/gesturehandler/platforms}/ios/src/TapHandler.m +0 -0
- package/{platforms → packages/gesturehandler/platforms}/ios/src/module.modulemap +0 -0
- package/packages/gesturehandler/tsconfig.json +13 -0
- package/references.d.ts +3 -3
- package/src/gesturehandler/gesturehandler.android.ts +610 -0
- package/src/gesturehandler/gesturehandler.common.ts +325 -0
- package/src/gesturehandler/gesturehandler.d.ts +156 -0
- package/src/gesturehandler/gesturehandler.ios.ts +296 -0
- package/src/gesturehandler/gestures_override.ts +532 -0
- package/src/gesturehandler/references.d.ts +3 -0
- package/{typings → src/gesturehandler/typings}/android.d.ts +0 -0
- package/{typings → src/gesturehandler/typings}/extensions.android.d.ts +0 -0
- package/{typings → src/gesturehandler/typings}/ios.d.ts +0 -0
- package/src/gesturehandler/vue/index.ts +7 -0
- package/src-native/.vscode/settings.json +3 -0
- package/src-native/android/.settings/org.eclipse.buildship.core.prefs +13 -0
- package/src-native/android/.vscode/settings.json +3 -0
- package/src-native/android/README.md +14 -0
- package/src-native/android/build.gradle +25 -0
- package/src-native/android/build.sh +36 -0
- package/src-native/android/gesturehandler/.classpath +6 -0
- package/src-native/android/gesturehandler/.settings/org.eclipse.buildship.core.prefs +2 -0
- package/src-native/android/gesturehandler/build.gradle +84 -0
- package/src-native/android/gesturehandler/gradle/wrapper/gradle-wrapper.jar +0 -0
- package/src-native/android/gesturehandler/gradle/wrapper/gradle-wrapper.properties +6 -0
- package/src-native/android/gesturehandler/gradlew +160 -0
- package/src-native/android/gesturehandler/gradlew.bat +90 -0
- package/src-native/android/gesturehandler/local.properties +9 -0
- package/src-native/android/gesturehandler/proguard-rules.pro +17 -0
- package/src-native/android/gesturehandler/src/main/AndroidManifest.xml +9 -0
- package/src-native/android/gradle/wrapper/gradle-wrapper.jar +0 -0
- package/src-native/android/gradle/wrapper/gradle-wrapper.properties +6 -0
- package/src-native/android/gradle.properties +23 -0
- package/src-native/android/gradlew +160 -0
- package/src-native/android/gradlew.bat +90 -0
- package/src-native/android/settings.gradle +1 -0
- package/src-native/ios/GestureHandler.xcodeproj/project.pbxproj +662 -0
- package/src-native/ios/GestureHandler.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
- package/src-native/ios/GestureHandler.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
- package/src-native/ios/GestureHandler.xcodeproj/xcshareddata/xcschemes/GestureHandler.xcscheme +76 -0
- package/src-native/ios/GestureHandler.xcodeproj/xcshareddata/xcschemes/GestureHandlerApp.xcscheme +87 -0
- package/src-native/ios/GestureHandler.xcodeproj/xcshareddata/xcschemes/GestureHandlerLib.xcscheme +76 -0
- package/src-native/ios/GestureHandler.xcodeproj/xcshareddata/xcschemes/test.xcscheme +76 -0
- package/src-native/ios/GestureHandler.xcodeproj/xcshareddata/xcschemes/universal.xcscheme +76 -0
- package/src-native/ios/build.sh +10 -0
- package/tools/.eslintrc.js +252 -0
- package/tools/builddoc.mjs +54 -0
- package/tools/common/.eslintrc.js +3 -0
- package/tools/common/.prettierignore +4 -0
- package/tools/common/.prettierrc.js +7 -0
- package/tools/common/references.d.ts +3 -0
- package/tools/package.json +116 -0
- package/tools/readme/blueprint.json +10 -0
- package/tools/readme/demos-and-development.md +35 -0
- package/tools/readme/edit-warning.md +20 -0
- package/tools/readme/questions.md +3 -0
- package/tools/readme.js +54 -0
- package/tools/sync.js +102 -0
- package/tools/tsconfig.doc.json +10 -0
- package/tools/tsconfig.eslint.json +4 -0
- package/tools/tsconfig.json +38 -0
- package/tools/typedoc.js +17 -0
- package/tools/update.js +32 -0
- package/tsconfig.json +4 -8
- package/.pnpm-debug.log +0 -1
- package/gesturehandler.android.d.ts +0 -180
- package/gesturehandler.android.js.map +0 -1
- package/gesturehandler.common.d.ts +0 -96
- package/gesturehandler.common.js.map +0 -1
- package/gesturehandler.ios.d.ts +0 -56
- package/gesturehandler.ios.js.map +0 -1
- package/gestures_override.d.ts +0 -29
- package/gestures_override.js.map +0 -1
- package/react/index.d.ts +0 -20
- package/react/index.js +0 -9
- package/react/index.js.map +0 -1
- package/svelte/index.d.ts +0 -11
- package/svelte/index.js +0 -26
- package/svelte/index.js.map +0 -1
- package/vue/index.d.ts +0 -4
- package/vue/index.js.map +0 -1
@@ -0,0 +1,574 @@
|
|
1
|
+
import { Application, View } from '@nativescript/core';
|
2
|
+
import { GestureEventData, GestureTypes } from '@nativescript/core/ui/gestures';
|
3
|
+
import { Page } from '@nativescript/core/ui/page';
|
4
|
+
import { layout } from '@nativescript/core/utils/utils';
|
5
|
+
import {
|
6
|
+
HandlerOptions,
|
7
|
+
LongPressGestureHandlerOptions,
|
8
|
+
NativeViewGestureHandlerOptions,
|
9
|
+
PanGestureHandlerOptions,
|
10
|
+
PinchGestureHandlerOptions,
|
11
|
+
RotationGestureHandlerOptions,
|
12
|
+
TapGestureHandlerOptions,
|
13
|
+
} from './gesturehandler';
|
14
|
+
import {
|
15
|
+
BaseNative,
|
16
|
+
GestureHandlerStateEvent,
|
17
|
+
GestureHandlerTouchEvent,
|
18
|
+
GestureState,
|
19
|
+
GestureStateEventData,
|
20
|
+
GestureTouchEventData,
|
21
|
+
HandlerType,
|
22
|
+
ManagerBase,
|
23
|
+
OptionsTypeMap,
|
24
|
+
TypeMap,
|
25
|
+
ViewDisposeEvent,
|
26
|
+
ViewInitEvent,
|
27
|
+
applyMixins,
|
28
|
+
install as installBase,
|
29
|
+
nativeProperty,
|
30
|
+
ROOT_GESTURE_HANDLER_TAG,
|
31
|
+
} from './gesturehandler.common';
|
32
|
+
import { observe as gestureObserve } from './gestures_override';
|
33
|
+
|
34
|
+
export { GestureState, GestureHandlerStateEvent, GestureHandlerTouchEvent, GestureStateEventData, GestureTouchEventData, HandlerType, ViewInitEvent, ViewDisposeEvent };
|
35
|
+
|
36
|
+
let PageLayout: typeof com.nativescript.gesturehandler.PageLayout;
|
37
|
+
class PageGestureExtended extends Page {
|
38
|
+
nativeView: com.nativescript.gesturehandler.PageLayout;
|
39
|
+
initNativeView() {
|
40
|
+
this.nativeView.initialize();
|
41
|
+
}
|
42
|
+
disposeNativeView() {
|
43
|
+
this.nativeView.tearDown();
|
44
|
+
}
|
45
|
+
get registry() {
|
46
|
+
return this.nativeView && this.nativeView.registry();
|
47
|
+
}
|
48
|
+
}
|
49
|
+
let installed = false;
|
50
|
+
let installedOverrides = false;
|
51
|
+
|
52
|
+
export function install(overrideNGestures = false) {
|
53
|
+
if (!installed) {
|
54
|
+
installed = true;
|
55
|
+
installBase(overrideNGestures);
|
56
|
+
const NSPage = require('@nativescript/core/ui/page').Page;
|
57
|
+
NSPage.prototype.createNativeView = function () {
|
58
|
+
if (!PageLayout) {
|
59
|
+
PageLayout = com.nativescript.gesturehandler.PageLayout;
|
60
|
+
}
|
61
|
+
const layout = new PageLayout(this._context, ROOT_GESTURE_HANDLER_TAG);
|
62
|
+
this.gestureRegistry = layout.registry;
|
63
|
+
return layout;
|
64
|
+
};
|
65
|
+
applyMixins(NSPage, [PageGestureExtended]);
|
66
|
+
}
|
67
|
+
|
68
|
+
if (overrideNGestures === true && !installedOverrides) {
|
69
|
+
installedOverrides = true;
|
70
|
+
const NSView = require('@nativescript/core/ui/core/view').View;
|
71
|
+
const NSButtonBase = require('@nativescript/core/ui/button').ButtonBase;
|
72
|
+
const NSButton = require('@nativescript/core/ui/button').Button;
|
73
|
+
delete NSButton.tapEvent;
|
74
|
+
// we need to disable on click listener
|
75
|
+
NSButton.prototype.initNativeView = function () {
|
76
|
+
NSButtonBase.prototype.initNativeView.call(this);
|
77
|
+
};
|
78
|
+
NSButton.prototype.disposeNativeView = function () {
|
79
|
+
NSButtonBase.prototype.disposeNativeView.call(this);
|
80
|
+
};
|
81
|
+
NSView.prototype._observe = function (type: GestureTypes, callback: (args: GestureEventData) => void, thisArg?: any): void {
|
82
|
+
if (!this._gestureObservers[type]) {
|
83
|
+
this._gestureObservers[type] = [];
|
84
|
+
}
|
85
|
+
|
86
|
+
this._gestureObservers[type].push(gestureObserve(this, type, callback, thisArg));
|
87
|
+
if (this.isLoaded && !this.touchListenerIsSet) {
|
88
|
+
this.setOnTouchListener();
|
89
|
+
}
|
90
|
+
};
|
91
|
+
// NSView.prototype.setOnTouchListener = function () {
|
92
|
+
// if (!this.nativeViewProtected || !this.getGestureObservers(GestureTypes.touch)) {
|
93
|
+
// return;
|
94
|
+
// }
|
95
|
+
// // do not set noop listener that handles the event (disabled listener) if IsUserInteractionEnabled is
|
96
|
+
// // false as we might need the ability for the event to pass through to a parent view
|
97
|
+
// this.touchListener =
|
98
|
+
// this.touchListener ||
|
99
|
+
// new android.view.View.OnTouchListener({
|
100
|
+
// onTouch: (view: android.view.View, event: android.view.MotionEvent) => {
|
101
|
+
// this.handleGestureTouch(event);
|
102
|
+
|
103
|
+
// const nativeView = this.nativeViewProtected;
|
104
|
+
// if (!nativeView || !nativeView.onTouchEvent) {
|
105
|
+
// return false;
|
106
|
+
// }
|
107
|
+
|
108
|
+
// return nativeView.onTouchEvent(event);
|
109
|
+
// },
|
110
|
+
// });
|
111
|
+
// this.nativeViewProtected.setOnTouchListener(this.touchListener);
|
112
|
+
|
113
|
+
// this.touchListenerIsSet = true;
|
114
|
+
// console.log('setOnTouchListener', this);
|
115
|
+
// if (this.nativeViewProtected.setClickable) {
|
116
|
+
// this.nativeViewProtected.setClickable(this.isUserInteractionEnabled);
|
117
|
+
// }
|
118
|
+
// };
|
119
|
+
}
|
120
|
+
}
|
121
|
+
|
122
|
+
const KEY_HIT_SLOP_LEFT = 'left';
|
123
|
+
const KEY_HIT_SLOP_TOP = 'top';
|
124
|
+
const KEY_HIT_SLOP_RIGHT = 'right';
|
125
|
+
const KEY_HIT_SLOP_BOTTOM = 'bottom';
|
126
|
+
const KEY_HIT_SLOP_VERTICAL = 'vertical';
|
127
|
+
const KEY_HIT_SLOP_HORIZONTAL = 'horizontal';
|
128
|
+
const KEY_HIT_SLOP_WIDTH = 'width';
|
129
|
+
const KEY_HIT_SLOP_HEIGHT = 'height';
|
130
|
+
|
131
|
+
export abstract class Handler<T extends com.swmansion.gesturehandler.GestureHandler<any>, U extends HandlerOptions> extends BaseNative<T, U> {
|
132
|
+
@nativeProperty({
|
133
|
+
nativeSetterName: 'setHitSlop',
|
134
|
+
nativegetterName: 'getHitSlop',
|
135
|
+
converter: {
|
136
|
+
toNative(value) {
|
137
|
+
const HIT_SLOP_NONE = GestureHandler.HIT_SLOP_NONE;
|
138
|
+
if (typeof value === 'number') {
|
139
|
+
const hitSlop = layout.toDevicePixels(value);
|
140
|
+
return [hitSlop, hitSlop, hitSlop, hitSlop, HIT_SLOP_NONE, HIT_SLOP_NONE];
|
141
|
+
} else {
|
142
|
+
let left = HIT_SLOP_NONE,
|
143
|
+
top = HIT_SLOP_NONE,
|
144
|
+
right = HIT_SLOP_NONE,
|
145
|
+
bottom = HIT_SLOP_NONE;
|
146
|
+
let width = HIT_SLOP_NONE,
|
147
|
+
height = HIT_SLOP_NONE;
|
148
|
+
if (value.hasOwnProperty(KEY_HIT_SLOP_HORIZONTAL)) {
|
149
|
+
const horizontalPad = layout.toDevicePixels(value[KEY_HIT_SLOP_HORIZONTAL]);
|
150
|
+
left = right = horizontalPad;
|
151
|
+
}
|
152
|
+
if (value.hasOwnProperty(KEY_HIT_SLOP_VERTICAL)) {
|
153
|
+
const verticalPad = layout.toDevicePixels(value[KEY_HIT_SLOP_VERTICAL]);
|
154
|
+
top = bottom = verticalPad;
|
155
|
+
}
|
156
|
+
if (value.hasOwnProperty(KEY_HIT_SLOP_LEFT)) {
|
157
|
+
left = layout.toDevicePixels(value[KEY_HIT_SLOP_LEFT]);
|
158
|
+
}
|
159
|
+
if (value.hasOwnProperty(KEY_HIT_SLOP_TOP)) {
|
160
|
+
top = layout.toDevicePixels(value[KEY_HIT_SLOP_TOP]);
|
161
|
+
}
|
162
|
+
if (value.hasKey(KEY_HIT_SLOP_RIGHT)) {
|
163
|
+
right = layout.toDevicePixels(value[KEY_HIT_SLOP_RIGHT]);
|
164
|
+
}
|
165
|
+
if (value.hasOwnProperty(KEY_HIT_SLOP_BOTTOM)) {
|
166
|
+
bottom = layout.toDevicePixels(value[KEY_HIT_SLOP_BOTTOM]);
|
167
|
+
}
|
168
|
+
if (value.hasOwnProperty(KEY_HIT_SLOP_WIDTH)) {
|
169
|
+
width = layout.toDevicePixels(value[KEY_HIT_SLOP_WIDTH]);
|
170
|
+
}
|
171
|
+
if (value.hasOwnProperty(KEY_HIT_SLOP_HEIGHT)) {
|
172
|
+
height = layout.toDevicePixels(value[KEY_HIT_SLOP_HEIGHT]);
|
173
|
+
}
|
174
|
+
return [left, top, right, bottom, width, height];
|
175
|
+
}
|
176
|
+
},
|
177
|
+
},
|
178
|
+
})
|
179
|
+
hitSlop;
|
180
|
+
@nativeProperty enabled: boolean;
|
181
|
+
@nativeProperty shouldCancelWhenOutside: boolean;
|
182
|
+
shouldStartGesture: (arg) => boolean;
|
183
|
+
manager: WeakRef<Manager>;
|
184
|
+
touchListener: com.swmansion.gesturehandler.OnTouchEventListener<T>;
|
185
|
+
nativeGetterKey = 'nativeView';
|
186
|
+
|
187
|
+
getExtraData(handler: T) {
|
188
|
+
const numberOfPointers = handler.getNumberOfPointers();
|
189
|
+
const positions = [];
|
190
|
+
for (let index = 0; index < numberOfPointers; index++) {
|
191
|
+
positions.push(layout.toDeviceIndependentPixels(handler.getXAtIndex(index)));
|
192
|
+
positions.push(layout.toDeviceIndependentPixels(handler.getYAtIndex(index)));
|
193
|
+
}
|
194
|
+
return {
|
195
|
+
// x: layout.toDeviceIndependentPixels(handler.getX()),
|
196
|
+
// y: layout.toDeviceIndependentPixels(handler.getY()),
|
197
|
+
positions,
|
198
|
+
numberOfPointers,
|
199
|
+
};
|
200
|
+
}
|
201
|
+
initNativeView(native: T, options: U) {
|
202
|
+
super.initNativeView(native, options);
|
203
|
+
this.native.setTag(this.tag);
|
204
|
+
this.touchListener = new com.swmansion.gesturehandler.OnTouchEventListener({
|
205
|
+
shouldStartGesture: this.handleShouldStartGesture.bind(this),
|
206
|
+
onTouchEvent: this.onTouchEvent.bind(this),
|
207
|
+
onStateChange: this.onStateChange.bind(this),
|
208
|
+
});
|
209
|
+
native.setOnTouchEventListener(this.touchListener);
|
210
|
+
this.manager.get().configureInteractions(this, options);
|
211
|
+
}
|
212
|
+
disposeNativeView() {
|
213
|
+
this.native.setInteractionController(null);
|
214
|
+
this.native.setOnTouchEventListener(null);
|
215
|
+
this.touchListener = null;
|
216
|
+
super.disposeNativeView();
|
217
|
+
}
|
218
|
+
handleShouldStartGesture(handler: T, event: android.view.MotionEvent) {
|
219
|
+
if (this.shouldStartGesture) {
|
220
|
+
return this.shouldStartGesture(this.getExtraData(handler));
|
221
|
+
}
|
222
|
+
return true;
|
223
|
+
}
|
224
|
+
onTouchEvent(handler: T, event: android.view.MotionEvent) {
|
225
|
+
const view = handler.getView() as any;
|
226
|
+
this.notify({
|
227
|
+
eventName: GestureHandlerTouchEvent,
|
228
|
+
object: this,
|
229
|
+
data: {
|
230
|
+
state: handler.getState(),
|
231
|
+
android: view,
|
232
|
+
extraData: this.getExtraData(handler),
|
233
|
+
view: view.nsView ? view.nsView.get() : null,
|
234
|
+
},
|
235
|
+
});
|
236
|
+
}
|
237
|
+
onStateChange(handler: T, state: number, prevState: number) {
|
238
|
+
const view = handler.getView() as any;
|
239
|
+
this.notify({
|
240
|
+
eventName: GestureHandlerStateEvent,
|
241
|
+
object: this,
|
242
|
+
data: {
|
243
|
+
state,
|
244
|
+
prevState,
|
245
|
+
android: view,
|
246
|
+
extraData: this.getExtraData(handler),
|
247
|
+
view: view.nsView ? view.nsView.get() : null,
|
248
|
+
},
|
249
|
+
});
|
250
|
+
}
|
251
|
+
|
252
|
+
tag: number = 0;
|
253
|
+
attachedView: View;
|
254
|
+
setTag(tag: number) {
|
255
|
+
this.tag = tag;
|
256
|
+
if (this.native) {
|
257
|
+
this.native.setTag(tag);
|
258
|
+
}
|
259
|
+
}
|
260
|
+
getTag() {
|
261
|
+
return this.tag;
|
262
|
+
// return this.getNative().getTag();
|
263
|
+
}
|
264
|
+
getView() {
|
265
|
+
return this.getNative().getView();
|
266
|
+
}
|
267
|
+
cancel() {
|
268
|
+
return this.getNative().cancel();
|
269
|
+
}
|
270
|
+
|
271
|
+
attachToView(view: View) {
|
272
|
+
if (view === this.attachedView) {
|
273
|
+
return;
|
274
|
+
}
|
275
|
+
if (this.attachedView) {
|
276
|
+
this.detachFromView(this.attachedView);
|
277
|
+
}
|
278
|
+
this.attachedView = view;
|
279
|
+
this.manager.get().attachGestureHandler(this, view);
|
280
|
+
}
|
281
|
+
detachFromView(view?: View) {
|
282
|
+
if ((view && view !== this.attachedView) || !this.attachedView) {
|
283
|
+
return;
|
284
|
+
}
|
285
|
+
if (!this.attachedView) {
|
286
|
+
return;
|
287
|
+
}
|
288
|
+
this.manager.get().detachGestureHandler(this, this.attachedView);
|
289
|
+
this.attachedView = null;
|
290
|
+
}
|
291
|
+
}
|
292
|
+
|
293
|
+
export class TapGestureHandler extends Handler<com.swmansion.gesturehandler.TapGestureHandler, TapGestureHandlerOptions> {
|
294
|
+
@nativeProperty numberOfTaps: number;
|
295
|
+
@nativeProperty maxDurationMs: number;
|
296
|
+
@nativeProperty maxDelayMs: number;
|
297
|
+
@nativeProperty({ nativeSetterName: 'setMaxDx' }) maxDeltaX: number;
|
298
|
+
@nativeProperty({ nativeSetterName: 'setMaxDy' }) maxDeltaY: number;
|
299
|
+
@nativeProperty({ converter: { fromNative: layout.toDevicePixels } }) maxDist: number;
|
300
|
+
@nativeProperty({ nativeSetterName: 'setMinNumberOfPointers' }) minPointers: number;
|
301
|
+
createNative(options) {
|
302
|
+
return new com.swmansion.gesturehandler.TapGestureHandler();
|
303
|
+
}
|
304
|
+
getExtraData(handler: com.swmansion.gesturehandler.TapGestureHandler) {
|
305
|
+
return Object.assign(super.getExtraData(handler), {
|
306
|
+
x: layout.toDeviceIndependentPixels(handler.getLastRelativePositionX()),
|
307
|
+
y: layout.toDeviceIndependentPixels(handler.getLastRelativePositionY()),
|
308
|
+
absoluteX: layout.toDeviceIndependentPixels(handler.getLastAbsolutePositionX()),
|
309
|
+
absoluteY: layout.toDeviceIndependentPixels(handler.getLastAbsolutePositionY()),
|
310
|
+
});
|
311
|
+
}
|
312
|
+
}
|
313
|
+
|
314
|
+
export class PanGestureHandler extends Handler<com.swmansion.gesturehandler.PanGestureHandler, PanGestureHandlerOptions> {
|
315
|
+
@nativeProperty({ converter: { fromNative: layout.toDevicePixels } }) minDist: number;
|
316
|
+
@nativeProperty({ converter: { fromNative: layout.toDevicePixels } }) activeOffsetXStart: number;
|
317
|
+
@nativeProperty({ converter: { fromNative: layout.toDevicePixels } }) activeOffsetXEnd: number;
|
318
|
+
@nativeProperty({ converter: { fromNative: layout.toDevicePixels } }) failOffsetXStart: number;
|
319
|
+
@nativeProperty({ converter: { fromNative: layout.toDevicePixels } }) failOffsetXEnd: number;
|
320
|
+
@nativeProperty({ converter: { fromNative: layout.toDevicePixels } }) activeOffsetYStart: number;
|
321
|
+
@nativeProperty({ converter: { fromNative: layout.toDevicePixels } }) activeOffsetYEnd: number;
|
322
|
+
@nativeProperty({ converter: { fromNative: layout.toDevicePixels } }) failOffsetYStart: number;
|
323
|
+
@nativeProperty({ converter: { fromNative: layout.toDevicePixels } }) failOffsetYEnd: number;
|
324
|
+
@nativeProperty({ converter: { fromNative: layout.toDevicePixels } }) minVelocity: number;
|
325
|
+
@nativeProperty({ converter: { fromNative: layout.toDevicePixels } }) minVelocityX: number;
|
326
|
+
@nativeProperty({ converter: { fromNative: layout.toDevicePixels } }) minVelocityY: number;
|
327
|
+
@nativeProperty minPointers: number;
|
328
|
+
@nativeProperty maxPointers: number;
|
329
|
+
@nativeProperty({ nativeSetterName: 'setAverageTouches' }) avgTouches: number;
|
330
|
+
@nativeProperty numberOfPointers: number;
|
331
|
+
createNative(options) {
|
332
|
+
const context = Application.android.context as android.content.Context;
|
333
|
+
return new com.swmansion.gesturehandler.PanGestureHandler(context);
|
334
|
+
}
|
335
|
+
getExtraData(handler: com.swmansion.gesturehandler.PanGestureHandler) {
|
336
|
+
return Object.assign(super.getExtraData(handler), {
|
337
|
+
x: layout.toDeviceIndependentPixels(handler.getLastRelativePositionX()),
|
338
|
+
y: layout.toDeviceIndependentPixels(handler.getLastRelativePositionY()),
|
339
|
+
absoluteX: layout.toDeviceIndependentPixels(handler.getLastAbsolutePositionX()),
|
340
|
+
absoluteY: layout.toDeviceIndependentPixels(handler.getLastAbsolutePositionY()),
|
341
|
+
translationX: layout.toDeviceIndependentPixels(handler.getTranslationX()),
|
342
|
+
translationY: layout.toDeviceIndependentPixels(handler.getTranslationY()),
|
343
|
+
velocityX: layout.toDeviceIndependentPixels(handler.getVelocityX()),
|
344
|
+
velocityY: layout.toDeviceIndependentPixels(handler.getVelocityY()),
|
345
|
+
});
|
346
|
+
}
|
347
|
+
}
|
348
|
+
|
349
|
+
export class PinchGestureHandler extends Handler<com.swmansion.gesturehandler.PinchGestureHandler, PinchGestureHandlerOptions> {
|
350
|
+
@nativeProperty({ converter: { fromNative: layout.toDevicePixels } }) minSpan: number;
|
351
|
+
createNative(options) {
|
352
|
+
return new com.swmansion.gesturehandler.PinchGestureHandler();
|
353
|
+
}
|
354
|
+
getExtraData(handler: com.swmansion.gesturehandler.PinchGestureHandler) {
|
355
|
+
return Object.assign(super.getExtraData(handler), {
|
356
|
+
x: layout.toDeviceIndependentPixels(handler.getLastRelativePositionX()),
|
357
|
+
y: layout.toDeviceIndependentPixels(handler.getLastRelativePositionY()),
|
358
|
+
absoluteX: layout.toDeviceIndependentPixels(handler.getLastAbsolutePositionX()),
|
359
|
+
absoluteY: layout.toDeviceIndependentPixels(handler.getLastAbsolutePositionY()),
|
360
|
+
scale: handler.getScale(),
|
361
|
+
focalX: layout.toDeviceIndependentPixels(handler.getFocalPointX()),
|
362
|
+
focalY: layout.toDeviceIndependentPixels(handler.getFocalPointY()),
|
363
|
+
velocity: handler.getVelocity(),
|
364
|
+
});
|
365
|
+
}
|
366
|
+
}
|
367
|
+
|
368
|
+
const GestureHandler = com.swmansion.gesturehandler.GestureHandler;
|
369
|
+
export enum FlingDirection {
|
370
|
+
DIRECTION_LEFT = GestureHandler.DIRECTION_LEFT,
|
371
|
+
DIRECTION_UP = GestureHandler.DIRECTION_UP,
|
372
|
+
DIRECTION_DOWN = GestureHandler.DIRECTION_DOWN,
|
373
|
+
DIRECTION_RIGHT = GestureHandler.DIRECTION_RIGHT,
|
374
|
+
}
|
375
|
+
|
376
|
+
function directionToString(direction: number) {
|
377
|
+
switch (direction) {
|
378
|
+
case GestureHandler.DIRECTION_RIGHT:
|
379
|
+
return 'right';
|
380
|
+
case GestureHandler.DIRECTION_UP:
|
381
|
+
return 'up';
|
382
|
+
case GestureHandler.DIRECTION_DOWN:
|
383
|
+
return 'down';
|
384
|
+
default:
|
385
|
+
return 'left';
|
386
|
+
}
|
387
|
+
}
|
388
|
+
|
389
|
+
function directionFromString(direction: string) {
|
390
|
+
switch (direction) {
|
391
|
+
case 'right':
|
392
|
+
return GestureHandler.DIRECTION_RIGHT;
|
393
|
+
case 'up':
|
394
|
+
return GestureHandler.DIRECTION_UP;
|
395
|
+
case 'down':
|
396
|
+
return GestureHandler.DIRECTION_DOWN;
|
397
|
+
default:
|
398
|
+
return GestureHandler.DIRECTION_LEFT;
|
399
|
+
}
|
400
|
+
}
|
401
|
+
|
402
|
+
export class FlingGestureHandler extends Handler<com.swmansion.gesturehandler.FlingGestureHandler, TapGestureHandlerOptions> {
|
403
|
+
@nativeProperty numberOfPointers: number;
|
404
|
+
@nativeProperty direction: number;
|
405
|
+
createNative(options) {
|
406
|
+
return new com.swmansion.gesturehandler.FlingGestureHandler();
|
407
|
+
}
|
408
|
+
getExtraData(handler: com.swmansion.gesturehandler.FlingGestureHandler) {
|
409
|
+
return Object.assign(super.getExtraData(handler), {
|
410
|
+
direction: directionToString(handler.getRecognizedDirection()),
|
411
|
+
});
|
412
|
+
}
|
413
|
+
}
|
414
|
+
export class LongPressGestureHandler extends Handler<com.swmansion.gesturehandler.LongPressGestureHandler, LongPressGestureHandlerOptions> {
|
415
|
+
@nativeProperty minDurationMs: number;
|
416
|
+
@nativeProperty({ converter: { fromNative: layout.toDevicePixels } }) maxDist: number;
|
417
|
+
createNative(options) {
|
418
|
+
const context = Application.android.context as android.content.Context;
|
419
|
+
return new com.swmansion.gesturehandler.LongPressGestureHandler(context);
|
420
|
+
}
|
421
|
+
getExtraData(handler: com.swmansion.gesturehandler.LongPressGestureHandler) {
|
422
|
+
return Object.assign(super.getExtraData(handler), {
|
423
|
+
x: layout.toDeviceIndependentPixels(handler.getLastRelativePositionX()),
|
424
|
+
y: layout.toDeviceIndependentPixels(handler.getLastRelativePositionY()),
|
425
|
+
absoluteX: layout.toDeviceIndependentPixels(handler.getLastAbsolutePositionX()),
|
426
|
+
absoluteY: layout.toDeviceIndependentPixels(handler.getLastAbsolutePositionY()),
|
427
|
+
});
|
428
|
+
}
|
429
|
+
}
|
430
|
+
export class RotationGestureHandler extends Handler<com.swmansion.gesturehandler.RotationGestureHandler, RotationGestureHandlerOptions> {
|
431
|
+
createNative(options) {
|
432
|
+
return new com.swmansion.gesturehandler.RotationGestureHandler();
|
433
|
+
}
|
434
|
+
getExtraData(handler: com.swmansion.gesturehandler.RotationGestureHandler) {
|
435
|
+
return Object.assign(super.getExtraData(handler), {
|
436
|
+
x: layout.toDeviceIndependentPixels(handler.getLastRelativePositionX()),
|
437
|
+
y: layout.toDeviceIndependentPixels(handler.getLastRelativePositionY()),
|
438
|
+
absoluteX: layout.toDeviceIndependentPixels(handler.getLastAbsolutePositionX()),
|
439
|
+
absoluteY: layout.toDeviceIndependentPixels(handler.getLastAbsolutePositionY()),
|
440
|
+
rotation: handler.getRotation(),
|
441
|
+
anchorX: layout.toDeviceIndependentPixels(handler.getAnchorX()),
|
442
|
+
anchorY: layout.toDeviceIndependentPixels(handler.getAnchorY()),
|
443
|
+
velocity: handler.getVelocity(),
|
444
|
+
});
|
445
|
+
}
|
446
|
+
}
|
447
|
+
|
448
|
+
export class NativeViewGestureHandler extends Handler<com.swmansion.gesturehandler.NativeViewGestureHandler, NativeViewGestureHandlerOptions> {
|
449
|
+
@nativeProperty shouldActivateOnStart: boolean;
|
450
|
+
@nativeProperty disallowInterruption: boolean;
|
451
|
+
createNative(options) {
|
452
|
+
return new com.swmansion.gesturehandler.NativeViewGestureHandler();
|
453
|
+
}
|
454
|
+
getExtraData(handler: com.swmansion.gesturehandler.NativeViewGestureHandler) {
|
455
|
+
return Object.assign(super.getExtraData(handler), {
|
456
|
+
pointerInside: handler.isWithinBounds(),
|
457
|
+
});
|
458
|
+
}
|
459
|
+
}
|
460
|
+
|
461
|
+
export class Manager extends ManagerBase {
|
462
|
+
_interactionManager: com.nativescript.gesturehandler.GestureHandlerInteractionController;
|
463
|
+
configureInteractions<T extends com.swmansion.gesturehandler.GestureHandler<any>, U extends HandlerOptions>(handler: Handler<T, U>, options: U = {} as any) {
|
464
|
+
this.interactionManager.configureInteractions(handler.getNative(), options.waitFor, options.simultaneousHandlers);
|
465
|
+
}
|
466
|
+
get interactionManager() {
|
467
|
+
if (!this._interactionManager) {
|
468
|
+
// initGestureHandlerInteractionController();
|
469
|
+
this._interactionManager = new com.nativescript.gesturehandler.GestureHandlerInteractionController();
|
470
|
+
}
|
471
|
+
return this._interactionManager;
|
472
|
+
}
|
473
|
+
|
474
|
+
static sManager: Manager;
|
475
|
+
static getInstance() {
|
476
|
+
if (!Manager.sManager) {
|
477
|
+
Manager.sManager = new Manager();
|
478
|
+
}
|
479
|
+
return Manager.sManager;
|
480
|
+
}
|
481
|
+
createGestureHandler<T extends HandlerType>(handlerName: T, handlerTag: number, config?: OptionsTypeMap[T]): TypeMap[T] {
|
482
|
+
let handler: Handler<any, any> = null;
|
483
|
+
switch (handlerName) {
|
484
|
+
case 'tap':
|
485
|
+
handler = new TapGestureHandler(config);
|
486
|
+
break;
|
487
|
+
case 'pan':
|
488
|
+
handler = new PanGestureHandler(config);
|
489
|
+
break;
|
490
|
+
case 'nativeView':
|
491
|
+
handler = new NativeViewGestureHandler(config);
|
492
|
+
break;
|
493
|
+
case 'pinch':
|
494
|
+
handler = new PinchGestureHandler(config);
|
495
|
+
break;
|
496
|
+
case 'fling':
|
497
|
+
handler = new FlingGestureHandler(config);
|
498
|
+
break;
|
499
|
+
case 'rotation':
|
500
|
+
handler = new RotationGestureHandler(config);
|
501
|
+
break;
|
502
|
+
case 'longPress':
|
503
|
+
handler = new LongPressGestureHandler(config);
|
504
|
+
break;
|
505
|
+
}
|
506
|
+
if (handler) {
|
507
|
+
handler.manager = new WeakRef(this);
|
508
|
+
handler.setTag(handlerTag);
|
509
|
+
}
|
510
|
+
return handler as any;
|
511
|
+
}
|
512
|
+
attachGestureHandlerToView(handler: Handler<any, any>, view: View) {
|
513
|
+
const nHandler = handler.getNative();
|
514
|
+
if (nHandler) {
|
515
|
+
const page = view.page as PageGestureExtended;
|
516
|
+
if (page) {
|
517
|
+
const registry = page.registry;
|
518
|
+
if (registry) {
|
519
|
+
registry.registerHandler(nHandler);
|
520
|
+
registry.attachHandlerToView(nHandler.getTag(), view[handler.nativeGetterKey]);
|
521
|
+
}
|
522
|
+
} else {
|
523
|
+
throw new Error('a page is needed to attach a gesture');
|
524
|
+
}
|
525
|
+
}
|
526
|
+
}
|
527
|
+
|
528
|
+
detachGestureHandlerFromView(handler: Handler<any, any>, view: View) {
|
529
|
+
const nHandler = handler.getNative();
|
530
|
+
if (nHandler) {
|
531
|
+
const registry = view.page && (view.page as PageGestureExtended).registry;
|
532
|
+
if (registry) {
|
533
|
+
registry.dropHandler(handler.getNative());
|
534
|
+
}
|
535
|
+
}
|
536
|
+
}
|
537
|
+
|
538
|
+
viewListeners = new Map<View, Map<number, { init: () => void; dispose: () => void }>>();
|
539
|
+
attachGestureHandler(handler: Handler<any, any>, view: View) {
|
540
|
+
if (view.nativeView) {
|
541
|
+
this.attachGestureHandlerToView(handler, view);
|
542
|
+
}
|
543
|
+
const onInit = () => this.attachGestureHandlerToView(handler, view);
|
544
|
+
const onDispose = () => this.detachGestureHandlerFromView(handler, view);
|
545
|
+
view.on(ViewInitEvent, onInit, this);
|
546
|
+
view.on(ViewDisposeEvent, onDispose, this);
|
547
|
+
let viewListeners = this.viewListeners.get(view);
|
548
|
+
if (!viewListeners) {
|
549
|
+
viewListeners = new Map();
|
550
|
+
this.viewListeners.set(view, viewListeners);
|
551
|
+
}
|
552
|
+
viewListeners.set(handler.getTag(), {
|
553
|
+
init: onInit,
|
554
|
+
dispose: onDispose,
|
555
|
+
});
|
556
|
+
}
|
557
|
+
detachGestureHandler(handler: Handler<any, any>, view: View) {
|
558
|
+
if (view) {
|
559
|
+
const viewListeners = this.viewListeners.get(view);
|
560
|
+
if (viewListeners) {
|
561
|
+
const listeners = viewListeners.get(handler.getTag());
|
562
|
+
if (listeners) {
|
563
|
+
view.off(ViewInitEvent, listeners.init, this);
|
564
|
+
view.off(ViewDisposeEvent, () => listeners.dispose, this);
|
565
|
+
viewListeners.delete(handler.getTag());
|
566
|
+
if (viewListeners.size === 0) {
|
567
|
+
this.viewListeners.delete(view);
|
568
|
+
}
|
569
|
+
}
|
570
|
+
}
|
571
|
+
}
|
572
|
+
this.detachGestureHandlerFromView(handler, view);
|
573
|
+
}
|
574
|
+
}
|