@nativescript-community/gesturehandler 0.2.0 → 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/{platforms/android/java/com/swmansion/gesturehandler/GestureHandler.java → .history/packages/gesturehandler/platforms/android/java/com/swmansion/gesturehandler/GestureHandler_20210517182228.java} +0 -0
- package/.history/packages/gesturehandler/platforms/android/java/com/swmansion/gesturehandler/GestureHandler_20220331104607.java +540 -0
- package/{platforms/android/java/com/swmansion/gesturehandler/LongPressGestureHandler.java → .history/packages/gesturehandler/platforms/android/java/com/swmansion/gesturehandler/LongPressGestureHandler_20210512101356.java} +0 -0
- package/.history/packages/gesturehandler/platforms/android/java/com/swmansion/gesturehandler/LongPressGestureHandler_20220331111050.java +81 -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/{gestures_override.js → .history/src/gesturehandler/gestures_override_20220328170816.ts} +171 -64
- package/.history/src/gesturehandler/gestures_override_20220328170818.ts +532 -0
- 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 +157 -54
- 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,325 @@
|
|
1
|
+
/* eslint-disable no-redeclare */
|
2
|
+
// import { launchEvent } from '@nativescript/core/application';
|
3
|
+
// console.log(launchEvent);
|
4
|
+
// console.log('gestures common', global.NativeScriptHasInitGlobal);
|
5
|
+
|
6
|
+
import Observable from '@nativescript-community/observable';
|
7
|
+
import { EventData, GridLayout } from '@nativescript/core';
|
8
|
+
import { CssProperty, Property, Style, View, booleanConverter } from '@nativescript/core/ui';
|
9
|
+
import {
|
10
|
+
FlingGestureHandler,
|
11
|
+
FlingGestureHandlerOptions,
|
12
|
+
ForceTouchGestureHandler,
|
13
|
+
ForceTouchGestureHandlerOptions,
|
14
|
+
Handler,
|
15
|
+
LongPressGestureHandler,
|
16
|
+
LongPressGestureHandlerOptions,
|
17
|
+
Manager,
|
18
|
+
NativePropertyOptions,
|
19
|
+
NativeViewGestureHandler,
|
20
|
+
NativeViewGestureHandlerOptions,
|
21
|
+
PanGestureHandler,
|
22
|
+
PanGestureHandlerOptions,
|
23
|
+
PinchGestureHandler,
|
24
|
+
PinchGestureHandlerOptions,
|
25
|
+
RotationGestureHandler,
|
26
|
+
RotationGestureHandlerOptions,
|
27
|
+
TapGestureHandler,
|
28
|
+
TapGestureHandlerOptions,
|
29
|
+
} from './gesturehandler';
|
30
|
+
|
31
|
+
export const GestureHandlerStateEvent = 'GestureHandlerStateEvent';
|
32
|
+
export const GestureHandlerTouchEvent = 'GestureHandlerTouchEvent';
|
33
|
+
export const ROOT_GESTURE_HANDLER_TAG = -12345;
|
34
|
+
|
35
|
+
export enum HandlerType {
|
36
|
+
PAN = 'pan',
|
37
|
+
TAP = 'tap',
|
38
|
+
FLING = 'fling',
|
39
|
+
LONG_PRESS = 'longPress',
|
40
|
+
NATIVE_VIEW = 'nativeView',
|
41
|
+
PINCH = 'pinch',
|
42
|
+
ROTATION = 'rotation',
|
43
|
+
FORCE_TOUCH = 'forceTouch',
|
44
|
+
}
|
45
|
+
|
46
|
+
export interface OptionsTypeMap {
|
47
|
+
[HandlerType.TAP]: TapGestureHandlerOptions;
|
48
|
+
[HandlerType.LONG_PRESS]: LongPressGestureHandlerOptions;
|
49
|
+
[HandlerType.PINCH]: PinchGestureHandlerOptions;
|
50
|
+
[HandlerType.FLING]: FlingGestureHandlerOptions;
|
51
|
+
[HandlerType.PAN]: PanGestureHandlerOptions;
|
52
|
+
[HandlerType.ROTATION]: RotationGestureHandlerOptions;
|
53
|
+
[HandlerType.NATIVE_VIEW]: NativeViewGestureHandlerOptions;
|
54
|
+
[HandlerType.FORCE_TOUCH]: ForceTouchGestureHandlerOptions;
|
55
|
+
}
|
56
|
+
export interface TypeMap {
|
57
|
+
[HandlerType.TAP]: TapGestureHandler;
|
58
|
+
[HandlerType.LONG_PRESS]: LongPressGestureHandler;
|
59
|
+
[HandlerType.PINCH]: PinchGestureHandler;
|
60
|
+
[HandlerType.FLING]: FlingGestureHandler;
|
61
|
+
[HandlerType.PAN]: PanGestureHandler;
|
62
|
+
[HandlerType.ROTATION]: RotationGestureHandler;
|
63
|
+
[HandlerType.NATIVE_VIEW]: NativeViewGestureHandler;
|
64
|
+
[HandlerType.FORCE_TOUCH]: ForceTouchGestureHandler;
|
65
|
+
}
|
66
|
+
|
67
|
+
function createGetter(key: string, options: NativePropertyOptions) {
|
68
|
+
// console.log('createGetter', key, options);
|
69
|
+
const nativeGetterName = ((global.isAndroid ? options.android : options.ios) || options).nativeGetterName || 'get' + key.charAt(0).toUpperCase() + key.slice(1);
|
70
|
+
const converter = options.converter;
|
71
|
+
return function () {
|
72
|
+
let result;
|
73
|
+
// console.log('getter', key, nativeGetterName);
|
74
|
+
if (this.native && this.native[nativeGetterName]) {
|
75
|
+
result = this.native[nativeGetterName]();
|
76
|
+
} else {
|
77
|
+
result = this.options[key] || options.defaultValue;
|
78
|
+
}
|
79
|
+
result = converter && converter.fromNative ? converter.fromNative.call(this, result, key) : result;
|
80
|
+
// console.log('getter', key, options, nativeGetterName, !!getConverter, result);
|
81
|
+
return result;
|
82
|
+
};
|
83
|
+
}
|
84
|
+
function createSetter(key, options: NativePropertyOptions) {
|
85
|
+
const nativeSetterName = ((global.isAndroid ? options.android : options.ios) || options).nativeSetterName || 'set' + key.charAt(0).toUpperCase() + key.slice(1);
|
86
|
+
return function (newVal) {
|
87
|
+
this.options[key] = newVal;
|
88
|
+
if (this.native && this.native[nativeSetterName]) {
|
89
|
+
const actualVal = options.converter && options.converter.toNative ? options.converter.toNative.call(this, newVal, key) : newVal;
|
90
|
+
(this.native[nativeSetterName] as Function).call(this.native, actualVal);
|
91
|
+
}
|
92
|
+
};
|
93
|
+
}
|
94
|
+
|
95
|
+
function nativePropertyGenerator(target: Object, key: string, options?: NativePropertyOptions) {
|
96
|
+
Object.defineProperty(target, key, {
|
97
|
+
get: createGetter(key, options),
|
98
|
+
set: createSetter(key, options),
|
99
|
+
enumerable: true,
|
100
|
+
configurable: true,
|
101
|
+
});
|
102
|
+
}
|
103
|
+
export function nativeProperty(target: any, k?, desc?: PropertyDescriptor): any;
|
104
|
+
export function nativeProperty(options: NativePropertyOptions): (target: any, k?, desc?: PropertyDescriptor) => any;
|
105
|
+
export function nativeProperty(...args) {
|
106
|
+
if (args.length === 1) {
|
107
|
+
/// this must be a factory
|
108
|
+
return function (target: any, key?: string, descriptor?: PropertyDescriptor) {
|
109
|
+
return nativePropertyGenerator(target, key, args[0] || {});
|
110
|
+
};
|
111
|
+
} else {
|
112
|
+
const options = typeof args[1] === 'string' ? undefined : args[0];
|
113
|
+
const startIndex = !!options ? 1 : 0;
|
114
|
+
return nativePropertyGenerator(args[startIndex], args[startIndex + 1], options || {});
|
115
|
+
}
|
116
|
+
}
|
117
|
+
export abstract class BaseNative<T, U extends {}> extends Observable {
|
118
|
+
constructor(public options?: U, native?: T) {
|
119
|
+
super();
|
120
|
+
if (native) {
|
121
|
+
this.native = native;
|
122
|
+
}
|
123
|
+
}
|
124
|
+
native: T;
|
125
|
+
initNativeView(native: T, options: U) {
|
126
|
+
for (const key in options) {
|
127
|
+
(this as any)[key] = options[key];
|
128
|
+
}
|
129
|
+
}
|
130
|
+
disposeNativeView() {
|
131
|
+
this.native = null;
|
132
|
+
}
|
133
|
+
getNative = () => {
|
134
|
+
if (!this.native) {
|
135
|
+
this.native = this.createNative(this.options);
|
136
|
+
this.initNativeView(this.native, this.options);
|
137
|
+
}
|
138
|
+
return this.native;
|
139
|
+
};
|
140
|
+
abstract createNative(options: U): T;
|
141
|
+
}
|
142
|
+
|
143
|
+
export abstract class ManagerBase extends Observable {
|
144
|
+
abstract createGestureHandler<T extends HandlerType>(handlerName: T, handlerTag: number, config?: OptionsTypeMap[T]): TypeMap[T];
|
145
|
+
}
|
146
|
+
|
147
|
+
export enum GestureState {
|
148
|
+
UNDETERMINED,
|
149
|
+
FAILED,
|
150
|
+
BEGAN,
|
151
|
+
CANCELLED,
|
152
|
+
ACTIVE,
|
153
|
+
END,
|
154
|
+
}
|
155
|
+
|
156
|
+
export interface GestureStateEventData extends EventData {
|
157
|
+
object: Handler<any, any>;
|
158
|
+
data: {
|
159
|
+
state: GestureState;
|
160
|
+
prevState: GestureState;
|
161
|
+
ios?: any; // native View
|
162
|
+
android?: any; // native View
|
163
|
+
view: View;
|
164
|
+
extraData: {
|
165
|
+
[k: string]: number;
|
166
|
+
};
|
167
|
+
};
|
168
|
+
}
|
169
|
+
export interface GestureTouchEventData extends EventData {
|
170
|
+
object: Handler<any, any>;
|
171
|
+
data: {
|
172
|
+
state: GestureState;
|
173
|
+
ios?: any; // native View
|
174
|
+
android?: any; // native View
|
175
|
+
view?: View; // native View
|
176
|
+
extraData: {
|
177
|
+
[k: string]: number;
|
178
|
+
};
|
179
|
+
};
|
180
|
+
}
|
181
|
+
|
182
|
+
export class BaseGestureRootView extends GridLayout {}
|
183
|
+
|
184
|
+
export function applyMixins(
|
185
|
+
derivedCtor: any,
|
186
|
+
baseCtors: any[],
|
187
|
+
options?: {
|
188
|
+
after?: boolean;
|
189
|
+
override?: boolean;
|
190
|
+
omit?: (string | symbol)[];
|
191
|
+
}
|
192
|
+
) {
|
193
|
+
const omits = options && options.omit ? options.omit : [];
|
194
|
+
baseCtors.forEach((baseCtor) => {
|
195
|
+
Object.getOwnPropertyNames(baseCtor.prototype).forEach((name) => {
|
196
|
+
if (omits.indexOf(name) !== -1) {
|
197
|
+
return;
|
198
|
+
}
|
199
|
+
const descriptor = Object.getOwnPropertyDescriptor(baseCtor.prototype, name);
|
200
|
+
|
201
|
+
if (name === 'constructor') return;
|
202
|
+
if (descriptor && (!descriptor.writable || !descriptor.configurable || descriptor.get || descriptor.set)) {
|
203
|
+
Object.defineProperty(derivedCtor.prototype, name, descriptor);
|
204
|
+
} else {
|
205
|
+
const oldImpl = derivedCtor.prototype[name];
|
206
|
+
if (!oldImpl) {
|
207
|
+
derivedCtor.prototype[name] = baseCtor.prototype[name];
|
208
|
+
} else {
|
209
|
+
derivedCtor.prototype[name] = function (...args) {
|
210
|
+
if (options) {
|
211
|
+
if (!!options.override) {
|
212
|
+
return baseCtor.prototype[name].apply(this, args);
|
213
|
+
} else if (!!options.after) {
|
214
|
+
oldImpl.apply(this, args);
|
215
|
+
return baseCtor.prototype[name].apply(this, args);
|
216
|
+
} else {
|
217
|
+
baseCtor.prototype[name].apply(this, args);
|
218
|
+
return oldImpl.apply(this, args);
|
219
|
+
}
|
220
|
+
} else {
|
221
|
+
baseCtor.prototype[name].apply(this, args);
|
222
|
+
return oldImpl.apply(this, args);
|
223
|
+
}
|
224
|
+
};
|
225
|
+
}
|
226
|
+
}
|
227
|
+
});
|
228
|
+
Object.getOwnPropertySymbols(baseCtor.prototype).forEach((symbol) => {
|
229
|
+
if (omits.indexOf(symbol) !== -1) {
|
230
|
+
return;
|
231
|
+
}
|
232
|
+
const oldImpl: Function = derivedCtor.prototype[symbol];
|
233
|
+
if (!oldImpl) {
|
234
|
+
derivedCtor.prototype[symbol] = baseCtor.prototype[symbol];
|
235
|
+
} else {
|
236
|
+
derivedCtor.prototype[symbol] = function (...args) {
|
237
|
+
if (options) {
|
238
|
+
if (!!options.override) {
|
239
|
+
return baseCtor.prototype[symbol].apply(this, args);
|
240
|
+
} else if (!!options.after) {
|
241
|
+
oldImpl.apply(this, args);
|
242
|
+
return baseCtor.prototype[symbol].apply(this, args);
|
243
|
+
} else {
|
244
|
+
baseCtor.prototype[symbol].apply(this, args);
|
245
|
+
return oldImpl.apply(this, args);
|
246
|
+
}
|
247
|
+
} else {
|
248
|
+
baseCtor.prototype[symbol].apply(this, args);
|
249
|
+
return oldImpl.apply(this, args);
|
250
|
+
}
|
251
|
+
};
|
252
|
+
}
|
253
|
+
});
|
254
|
+
});
|
255
|
+
}
|
256
|
+
|
257
|
+
export const exclusiveTouchProperty = new CssProperty<Style, boolean>({
|
258
|
+
name: 'exclusiveTouch',
|
259
|
+
cssName: 'exclusive-touch',
|
260
|
+
defaultValue: false,
|
261
|
+
valueConverter: booleanConverter,
|
262
|
+
});
|
263
|
+
|
264
|
+
export const ViewInitEvent = 'ViewInitEvent';
|
265
|
+
export const ViewDisposeEvent = 'ViewDisposeEvent';
|
266
|
+
|
267
|
+
let NATIVE_GESTURE_TAG = 74000;
|
268
|
+
class ViewGestureExtended extends View {
|
269
|
+
exclusiveTouchGestureHandler: NativeViewGestureHandler;
|
270
|
+
|
271
|
+
set exclusiveTouch(value) {
|
272
|
+
this.style['exclusiveTouch'] = value;
|
273
|
+
}
|
274
|
+
get exclusiveTouch() {
|
275
|
+
return this.style['exclusiveTouch'];
|
276
|
+
}
|
277
|
+
initNativeView() {
|
278
|
+
if (this.nativeView) {
|
279
|
+
this.nativeView.nsView = new WeakRef(this);
|
280
|
+
}
|
281
|
+
this.notify({ eventName: ViewInitEvent, object: this });
|
282
|
+
}
|
283
|
+
disposeNativeView() {
|
284
|
+
if (this.nativeView) {
|
285
|
+
this.nativeView.nsView = null;
|
286
|
+
}
|
287
|
+
if (this.exclusiveTouchGestureHandler) {
|
288
|
+
this.exclusiveTouchGestureHandler.detachFromView();
|
289
|
+
this.exclusiveTouchGestureHandler = null;
|
290
|
+
}
|
291
|
+
this.notify({ eventName: ViewDisposeEvent, object: this });
|
292
|
+
}
|
293
|
+
[exclusiveTouchProperty.setNative](value: boolean) {
|
294
|
+
// console.log('exclusiveTouchProperty', this, value);
|
295
|
+
if (value) {
|
296
|
+
if (!this.exclusiveTouchGestureHandler) {
|
297
|
+
const gestureHandler = Manager.getInstance().createGestureHandler(HandlerType.NATIVE_VIEW, NATIVE_GESTURE_TAG++, {
|
298
|
+
disallowInterruption: true,
|
299
|
+
shouldActivateOnStart: false,
|
300
|
+
shouldCancelWhenOutside: false,
|
301
|
+
});
|
302
|
+
this.exclusiveTouchGestureHandler = gestureHandler as any;
|
303
|
+
}
|
304
|
+
this.exclusiveTouchGestureHandler.attachToView(this);
|
305
|
+
} else if (this.exclusiveTouchGestureHandler) {
|
306
|
+
this.exclusiveTouchGestureHandler.detachFromView();
|
307
|
+
}
|
308
|
+
}
|
309
|
+
}
|
310
|
+
|
311
|
+
exclusiveTouchProperty.register(Style);
|
312
|
+
|
313
|
+
let installed = false;
|
314
|
+
export function overrideViewBase() {
|
315
|
+
const NSView = require('@nativescript/core/ui/core/view').View;
|
316
|
+
applyMixins(NSView, [ViewGestureExtended]);
|
317
|
+
}
|
318
|
+
|
319
|
+
export function install(overrideNGestures?: boolean) {
|
320
|
+
if (installed) {
|
321
|
+
return;
|
322
|
+
}
|
323
|
+
installed = true;
|
324
|
+
overrideViewBase();
|
325
|
+
}
|
@@ -0,0 +1,325 @@
|
|
1
|
+
/* eslint-disable no-redeclare */
|
2
|
+
// import { launchEvent } from '@nativescript/core/application';
|
3
|
+
// console.log(launchEvent);
|
4
|
+
// console.log('gestures common', global.NativeScriptHasInitGlobal);
|
5
|
+
|
6
|
+
import Observable from '@nativescript-community/observable';
|
7
|
+
import { EventData, GridLayout } from '@nativescript/core';
|
8
|
+
import { CssProperty, Property, Style, View, booleanConverter } from '@nativescript/core/ui';
|
9
|
+
import {
|
10
|
+
FlingGestureHandler,
|
11
|
+
FlingGestureHandlerOptions,
|
12
|
+
ForceTouchGestureHandler,
|
13
|
+
ForceTouchGestureHandlerOptions,
|
14
|
+
Handler,
|
15
|
+
LongPressGestureHandler,
|
16
|
+
LongPressGestureHandlerOptions,
|
17
|
+
Manager,
|
18
|
+
NativePropertyOptions,
|
19
|
+
NativeViewGestureHandler,
|
20
|
+
NativeViewGestureHandlerOptions,
|
21
|
+
PanGestureHandler,
|
22
|
+
PanGestureHandlerOptions,
|
23
|
+
PinchGestureHandler,
|
24
|
+
PinchGestureHandlerOptions,
|
25
|
+
RotationGestureHandler,
|
26
|
+
RotationGestureHandlerOptions,
|
27
|
+
TapGestureHandler,
|
28
|
+
TapGestureHandlerOptions,
|
29
|
+
} from './gesturehandler';
|
30
|
+
|
31
|
+
export const GestureHandlerStateEvent = 'GestureHandlerStateEvent';
|
32
|
+
export const GestureHandlerTouchEvent = 'GestureHandlerTouchEvent';
|
33
|
+
export const ROOT_GESTURE_HANDLER_TAG = -12345;
|
34
|
+
|
35
|
+
export enum HandlerType {
|
36
|
+
PAN = 'pan',
|
37
|
+
TAP = 'tap',
|
38
|
+
FLING = 'fling',
|
39
|
+
LONG_PRESS = 'longPress',
|
40
|
+
NATIVE_VIEW = 'nativeView',
|
41
|
+
PINCH = 'pinch',
|
42
|
+
ROTATION = 'rotation',
|
43
|
+
FORCE_TOUCH = 'forceTouch',
|
44
|
+
}
|
45
|
+
|
46
|
+
export interface OptionsTypeMap {
|
47
|
+
[HandlerType.TAP]: TapGestureHandlerOptions;
|
48
|
+
[HandlerType.LONG_PRESS]: LongPressGestureHandlerOptions;
|
49
|
+
[HandlerType.PINCH]: PinchGestureHandlerOptions;
|
50
|
+
[HandlerType.FLING]: FlingGestureHandlerOptions;
|
51
|
+
[HandlerType.PAN]: PanGestureHandlerOptions;
|
52
|
+
[HandlerType.ROTATION]: RotationGestureHandlerOptions;
|
53
|
+
[HandlerType.NATIVE_VIEW]: NativeViewGestureHandlerOptions;
|
54
|
+
[HandlerType.FORCE_TOUCH]: ForceTouchGestureHandlerOptions;
|
55
|
+
}
|
56
|
+
export interface TypeMap {
|
57
|
+
[HandlerType.TAP]: TapGestureHandler;
|
58
|
+
[HandlerType.LONG_PRESS]: LongPressGestureHandler;
|
59
|
+
[HandlerType.PINCH]: PinchGestureHandler;
|
60
|
+
[HandlerType.FLING]: FlingGestureHandler;
|
61
|
+
[HandlerType.PAN]: PanGestureHandler;
|
62
|
+
[HandlerType.ROTATION]: RotationGestureHandler;
|
63
|
+
[HandlerType.NATIVE_VIEW]: NativeViewGestureHandler;
|
64
|
+
[HandlerType.FORCE_TOUCH]: ForceTouchGestureHandler;
|
65
|
+
}
|
66
|
+
|
67
|
+
function createGetter(key: string, options: NativePropertyOptions) {
|
68
|
+
// console.log('createGetter', key, options);
|
69
|
+
const nativeGetterName = ((global.isAndroid ? options.android : options.ios) || options).nativeGetterName || 'get' + key.charAt(0).toUpperCase() + key.slice(1);
|
70
|
+
const converter = options.converter;
|
71
|
+
return function () {
|
72
|
+
let result;
|
73
|
+
// console.log('getter', key, nativeGetterName);
|
74
|
+
if (this.native && this.native[nativeGetterName]) {
|
75
|
+
result = this.native[nativeGetterName]();
|
76
|
+
} else {
|
77
|
+
result = this.options[key] || options.defaultValue;
|
78
|
+
}
|
79
|
+
result = converter && converter.fromNative ? converter.fromNative.call(this, result, key) : result;
|
80
|
+
// console.log('getter', key, options, nativeGetterName, !!getConverter, result);
|
81
|
+
return result;
|
82
|
+
};
|
83
|
+
}
|
84
|
+
function createSetter(key, options: NativePropertyOptions) {
|
85
|
+
const nativeSetterName = ((global.isAndroid ? options.android : options.ios) || options).nativeSetterName || 'set' + key.charAt(0).toUpperCase() + key.slice(1);
|
86
|
+
return function (newVal) {
|
87
|
+
this.options[key] = newVal;
|
88
|
+
if (this.native && this.native[nativeSetterName]) {
|
89
|
+
const actualVal = options.converter && options.converter.toNative ? options.converter.toNative.call(this, newVal, key) : newVal;
|
90
|
+
(this.native[nativeSetterName] as Function).call(this.native, actualVal);
|
91
|
+
}
|
92
|
+
};
|
93
|
+
}
|
94
|
+
|
95
|
+
function nativePropertyGenerator(target: Object, key: string, options?: NativePropertyOptions) {
|
96
|
+
Object.defineProperty(target, key, {
|
97
|
+
get: createGetter(key, options),
|
98
|
+
set: createSetter(key, options),
|
99
|
+
enumerable: true,
|
100
|
+
configurable: true,
|
101
|
+
});
|
102
|
+
}
|
103
|
+
export function nativeProperty(target: any, k?, desc?: PropertyDescriptor): any;
|
104
|
+
export function nativeProperty(options: NativePropertyOptions): (target: any, k?, desc?: PropertyDescriptor) => any;
|
105
|
+
export function nativeProperty(...args) {
|
106
|
+
if (args.length === 1) {
|
107
|
+
/// this must be a factory
|
108
|
+
return function (target: any, key?: string, descriptor?: PropertyDescriptor) {
|
109
|
+
return nativePropertyGenerator(target, key, args[0] || {});
|
110
|
+
};
|
111
|
+
} else {
|
112
|
+
const options = typeof args[1] === 'string' ? undefined : args[0];
|
113
|
+
const startIndex = !!options ? 1 : 0;
|
114
|
+
return nativePropertyGenerator(args[startIndex], args[startIndex + 1], options || {});
|
115
|
+
}
|
116
|
+
}
|
117
|
+
export abstract class BaseNative<T, U extends {}> extends Observable {
|
118
|
+
constructor(public options?: U, native?: T) {
|
119
|
+
super();
|
120
|
+
if (native) {
|
121
|
+
this.native = native;
|
122
|
+
}
|
123
|
+
}
|
124
|
+
native: T;
|
125
|
+
initNativeView(native: T, options: U) {
|
126
|
+
for (const key in options) {
|
127
|
+
(this as any)[key] = options[key];
|
128
|
+
}
|
129
|
+
}
|
130
|
+
disposeNativeView() {
|
131
|
+
this.native = null;
|
132
|
+
}
|
133
|
+
getNative = () => {
|
134
|
+
if (!this.native) {
|
135
|
+
this.native = this.createNative(this.options);
|
136
|
+
this.initNativeView(this.native, this.options);
|
137
|
+
}
|
138
|
+
return this.native;
|
139
|
+
};
|
140
|
+
abstract createNative(options: U): T;
|
141
|
+
}
|
142
|
+
|
143
|
+
export abstract class ManagerBase extends Observable {
|
144
|
+
abstract createGestureHandler<T extends HandlerType>(handlerName: T, handlerTag: number, config?: OptionsTypeMap[T]): TypeMap[T];
|
145
|
+
}
|
146
|
+
|
147
|
+
export enum GestureState {
|
148
|
+
UNDETERMINED,
|
149
|
+
FAILED,
|
150
|
+
BEGAN,
|
151
|
+
CANCELLED,
|
152
|
+
ACTIVE,
|
153
|
+
END,
|
154
|
+
}
|
155
|
+
|
156
|
+
export interface GestureStateEventData extends EventData {
|
157
|
+
object: Handler<any, any>;
|
158
|
+
data: {
|
159
|
+
state: GestureState;
|
160
|
+
prevState: GestureState;
|
161
|
+
ios?: any; // native View
|
162
|
+
android?: any; // native View
|
163
|
+
view: View;
|
164
|
+
extraData: {
|
165
|
+
[k: string]: number;
|
166
|
+
};
|
167
|
+
};
|
168
|
+
}
|
169
|
+
export interface GestureTouchEventData extends EventData {
|
170
|
+
object: Handler<any, any>;
|
171
|
+
data: {
|
172
|
+
state: GestureState;
|
173
|
+
ios?: any; // native View
|
174
|
+
android?: any; // native View
|
175
|
+
view?: View; // native View
|
176
|
+
extraData: {
|
177
|
+
[k: string]: number;
|
178
|
+
};
|
179
|
+
};
|
180
|
+
}
|
181
|
+
|
182
|
+
export class BaseGestureRootView extends GridLayout {}
|
183
|
+
|
184
|
+
export function applyMixins(
|
185
|
+
derivedCtor: any,
|
186
|
+
baseCtors: any[],
|
187
|
+
options?: {
|
188
|
+
after?: boolean;
|
189
|
+
override?: boolean;
|
190
|
+
omit?: (string | symbol)[];
|
191
|
+
}
|
192
|
+
) {
|
193
|
+
const omits = options && options.omit ? options.omit : [];
|
194
|
+
baseCtors.forEach((baseCtor) => {
|
195
|
+
Object.getOwnPropertyNames(baseCtor.prototype).forEach((name) => {
|
196
|
+
if (omits.indexOf(name) !== -1) {
|
197
|
+
return;
|
198
|
+
}
|
199
|
+
const descriptor = Object.getOwnPropertyDescriptor(baseCtor.prototype, name);
|
200
|
+
|
201
|
+
if (name === 'constructor') return;
|
202
|
+
if (descriptor && (!descriptor.writable || !descriptor.configurable || descriptor.get || descriptor.set)) {
|
203
|
+
Object.defineProperty(derivedCtor.prototype, name, descriptor);
|
204
|
+
} else {
|
205
|
+
const oldImpl = derivedCtor.prototype[name];
|
206
|
+
if (!oldImpl) {
|
207
|
+
derivedCtor.prototype[name] = baseCtor.prototype[name];
|
208
|
+
} else {
|
209
|
+
derivedCtor.prototype[name] = function (...args) {
|
210
|
+
if (options) {
|
211
|
+
if (!!options.override) {
|
212
|
+
return baseCtor.prototype[name].apply(this, args);
|
213
|
+
} else if (!!options.after) {
|
214
|
+
oldImpl.apply(this, args);
|
215
|
+
return baseCtor.prototype[name].apply(this, args);
|
216
|
+
} else {
|
217
|
+
baseCtor.prototype[name].apply(this, args);
|
218
|
+
return oldImpl.apply(this, args);
|
219
|
+
}
|
220
|
+
} else {
|
221
|
+
baseCtor.prototype[name].apply(this, args);
|
222
|
+
return oldImpl.apply(this, args);
|
223
|
+
}
|
224
|
+
};
|
225
|
+
}
|
226
|
+
}
|
227
|
+
});
|
228
|
+
Object.getOwnPropertySymbols(baseCtor.prototype).forEach((symbol) => {
|
229
|
+
if (omits.indexOf(symbol) !== -1) {
|
230
|
+
return;
|
231
|
+
}
|
232
|
+
const oldImpl: Function = derivedCtor.prototype[symbol];
|
233
|
+
if (!oldImpl) {
|
234
|
+
derivedCtor.prototype[symbol] = baseCtor.prototype[symbol];
|
235
|
+
} else {
|
236
|
+
derivedCtor.prototype[symbol] = function (...args) {
|
237
|
+
if (options) {
|
238
|
+
if (!!options.override) {
|
239
|
+
return baseCtor.prototype[symbol].apply(this, args);
|
240
|
+
} else if (!!options.after) {
|
241
|
+
oldImpl.apply(this, args);
|
242
|
+
return baseCtor.prototype[symbol].apply(this, args);
|
243
|
+
} else {
|
244
|
+
baseCtor.prototype[symbol].apply(this, args);
|
245
|
+
return oldImpl.apply(this, args);
|
246
|
+
}
|
247
|
+
} else {
|
248
|
+
baseCtor.prototype[symbol].apply(this, args);
|
249
|
+
return oldImpl.apply(this, args);
|
250
|
+
}
|
251
|
+
};
|
252
|
+
}
|
253
|
+
});
|
254
|
+
});
|
255
|
+
}
|
256
|
+
|
257
|
+
export const exclusiveTouchProperty = new CssProperty<Style, boolean>({
|
258
|
+
name: 'exclusiveTouch',
|
259
|
+
cssName: 'exclusive-touch',
|
260
|
+
defaultValue: false,
|
261
|
+
valueConverter: booleanConverter,
|
262
|
+
});
|
263
|
+
|
264
|
+
export const ViewInitEvent = 'ViewInitEvent';
|
265
|
+
export const ViewDisposeEvent = 'ViewDisposeEvent';
|
266
|
+
|
267
|
+
let NATIVE_GESTURE_TAG = 74000;
|
268
|
+
class ViewGestureExtended extends View {
|
269
|
+
exclusiveTouchGestureHandler: NativeViewGestureHandler;
|
270
|
+
|
271
|
+
set exclusiveTouch(value) {
|
272
|
+
this.style['exclusiveTouch'] = value;
|
273
|
+
}
|
274
|
+
get exclusiveTouch() {
|
275
|
+
return this.style['exclusiveTouch'];
|
276
|
+
}
|
277
|
+
initNativeView() {
|
278
|
+
if (this.nativeView) {
|
279
|
+
this.nativeView.nsView = new WeakRef(this);
|
280
|
+
}
|
281
|
+
this.notify({ eventName: ViewInitEvent, object: this });
|
282
|
+
}
|
283
|
+
disposeNativeView() {
|
284
|
+
if (this.nativeView) {
|
285
|
+
this.nativeView.nsView = null;
|
286
|
+
}
|
287
|
+
if (this.exclusiveTouchGestureHandler) {
|
288
|
+
this.exclusiveTouchGestureHandler.detachFromView();
|
289
|
+
this.exclusiveTouchGestureHandler = null;
|
290
|
+
}
|
291
|
+
this.notify({ eventName: ViewDisposeEvent, object: this });
|
292
|
+
}
|
293
|
+
[exclusiveTouchProperty.setNative](value: boolean) {
|
294
|
+
// console.log('exclusiveTouchProperty', this, value);
|
295
|
+
if (value) {
|
296
|
+
if (!this.exclusiveTouchGestureHandler) {
|
297
|
+
const gestureHandler = Manager.getInstance().createGestureHandler(HandlerType.NATIVE_VIEW, NATIVE_GESTURE_TAG++, {
|
298
|
+
disallowInterruption: true,
|
299
|
+
shouldActivateOnStart: false,
|
300
|
+
shouldCancelWhenOutside: false,
|
301
|
+
});
|
302
|
+
this.exclusiveTouchGestureHandler = gestureHandler as any;
|
303
|
+
}
|
304
|
+
this.exclusiveTouchGestureHandler.attachToView(this);
|
305
|
+
} else if (this.exclusiveTouchGestureHandler) {
|
306
|
+
this.exclusiveTouchGestureHandler.detachFromView();
|
307
|
+
}
|
308
|
+
}
|
309
|
+
}
|
310
|
+
|
311
|
+
exclusiveTouchProperty.register(Style);
|
312
|
+
|
313
|
+
let installed = false;
|
314
|
+
export function overrideViewBase() {
|
315
|
+
const NSView = require('@nativescript/core/ui/core/view').View;
|
316
|
+
applyMixins(NSView, [ViewGestureExtended]);
|
317
|
+
}
|
318
|
+
|
319
|
+
export function install(overrideNGestures?: boolean) {
|
320
|
+
if (installed) {
|
321
|
+
return;
|
322
|
+
}
|
323
|
+
installed = true;
|
324
|
+
overrideViewBase();
|
325
|
+
}
|