├── CHANGELOG.md ├── CONTRIBUTING.md ├── doc └── .gitignore ├── core ├── ios │ ├── README.md │ ├── BindingX.xcodeproj │ │ └── project.xcworkspace │ │ │ └── contents.xcworkspacedata │ ├── BindingX │ │ ├── EBExpressionTiming.h │ │ ├── EBExpressionScroller.h │ │ ├── EBExpressionOrientation.h │ │ ├── EBJSEvaluate.h │ │ ├── EBExpressionGesture.h │ │ ├── NSObject+EBTuplePacker.h │ │ ├── EBExpressionScope.h │ │ ├── Info.plist │ │ ├── EBExpression.h │ │ ├── EBJSTransform.h │ │ ├── EBNativeFunction.h │ │ ├── BindingX.h │ │ ├── EBExpressionExecutor.h │ │ ├── EBGyroVector3.h │ │ ├── EBGyroManager.h │ │ ├── EBNativeFunction.m │ │ ├── EBGyroOrientationEvaluator.h │ │ ├── EBGyroEuler.h │ │ ├── EBHandlerFactory.h │ │ └── NSObject+EBTuplePacker.m │ └── BindingXTests │ │ ├── Info.plist │ │ ├── EBTestUtils.h │ │ ├── EBTestCase.h │ │ ├── EBTestUtils.m │ │ └── EBTestCase.m ├── web-polifill │ ├── .gitignore │ ├── .npmignore │ ├── demo │ │ ├── scroll.js │ │ ├── pan.html │ │ ├── orientation.js │ │ ├── orientation.html │ │ ├── lottie.html │ │ └── timing.html │ ├── src │ │ └── lib │ │ │ ├── math.js │ │ │ ├── handlers │ │ │ └── index.js │ │ │ └── raf.js │ ├── README.md │ ├── package.json │ ├── webpack.config.js │ └── webpack.dev.config.js └── android │ └── bindingx-core │ ├── .gitignore │ ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties │ ├── src │ ├── main │ │ ├── AndroidManifest.xml │ │ ├── res │ │ │ └── values │ │ │ │ └── strings.xml │ │ └── java │ │ │ └── com │ │ │ └── alibaba │ │ │ └── android │ │ │ └── bindingx │ │ │ └── core │ │ │ ├── internal │ │ │ ├── JSObjectInterface.java │ │ │ ├── JSFunctionInterface.java │ │ │ └── SensorManagerProxy.java │ │ │ └── BindingXEventType.java │ └── test │ │ └── java │ │ └── com │ │ └── alibaba │ │ └── android │ │ └── bindingx │ │ └── core │ │ └── internal │ │ └── ExpressionPairTest.java │ ├── constants.gradle │ ├── changelog.md │ ├── proguard-rules.pro │ └── bintray.gradle ├── react-native ├── ios ├── android ├── lib │ ├── ios │ │ ├── README.md │ │ ├── RNBindingX.xcodeproj │ │ │ └── project.xcworkspace │ │ │ │ └── contents.xcworkspacedata │ │ └── RNBindingX │ │ │ ├── core │ │ │ ├── BindingX.h │ │ │ ├── EBHandlerFactory.h │ │ │ ├── EBExpressionScroller.h │ │ │ ├── EBExpressionTiming.h │ │ │ ├── EBExpressionOrientation.h │ │ │ ├── EBJSEvaluate.h │ │ │ ├── EBExpressionScope.h │ │ │ ├── NSObject+EBTuplePacker.h │ │ │ ├── EBExpression.h │ │ │ ├── EBExpressionGesture.h │ │ │ ├── EBJSTransform.h │ │ │ ├── EBNativeFunction.h │ │ │ ├── EBGyroVector3.h │ │ │ ├── EBGyroManager.h │ │ │ ├── EBNativeFunction.m │ │ │ ├── EBExpressionExecutor.h │ │ │ ├── EBGyroOrientationEvaluator.h │ │ │ ├── EBGyroEuler.h │ │ │ ├── NSObject+EBTuplePacker.m │ │ │ └── EBHandlerFactory.m │ │ │ ├── EBUtility+RN.h │ │ │ ├── Info.plist │ │ │ └── EBRNModule.h │ ├── index.js │ └── android │ │ ├── .gitignore │ │ ├── src │ │ └── main │ │ │ ├── AndroidManifest.xml │ │ │ └── res │ │ │ └── values │ │ │ └── strings.xml │ │ └── proguard-rules.pro ├── README.md ├── example │ ├── index.js │ ├── android │ │ ├── playground-rn │ │ │ ├── .gitignore │ │ │ ├── gradle │ │ │ │ └── wrapper │ │ │ │ │ ├── gradle-wrapper.jar │ │ │ │ │ └── gradle-wrapper.properties │ │ │ ├── src │ │ │ │ └── main │ │ │ │ │ ├── res │ │ │ │ │ ├── mipmap-xxxhdpi │ │ │ │ │ │ └── ic_launcher.png │ │ │ │ │ ├── values │ │ │ │ │ │ ├── strings.xml │ │ │ │ │ │ ├── colors.xml │ │ │ │ │ │ └── styles.xml │ │ │ │ │ └── layout │ │ │ │ │ │ └── activity_main.xml │ │ │ │ │ └── java │ │ │ │ │ └── com │ │ │ │ │ └── alibaba │ │ │ │ │ └── android │ │ │ │ │ └── bindingx │ │ │ │ │ └── playground │ │ │ │ │ └── react │ │ │ │ │ └── MainActivity.java │ │ │ ├── local.properties │ │ │ └── proguard-rules.pro │ │ ├── .gitignore │ │ ├── gradle │ │ │ └── wrapper │ │ │ │ ├── gradle-wrapper.jar │ │ │ │ └── gradle-wrapper.properties │ │ ├── settings.gradle │ │ ├── gradle.properties │ │ └── build.gradle │ └── ios │ │ ├── BindingDemoRN │ │ ├── Assets.xcassets │ │ │ ├── Contents.json │ │ │ ├── icon.imageset │ │ │ │ ├── weex-icon.png │ │ │ │ ├── bindingx_new_icon_400.png │ │ │ │ └── Contents.json │ │ │ └── AppIcon.appiconset │ │ │ │ ├── Icon-40.png │ │ │ │ ├── Icon-58.png │ │ │ │ ├── Icon-60.png │ │ │ │ ├── Icon-80.png │ │ │ │ ├── Icon-87.png │ │ │ │ ├── Icon-120.png │ │ │ │ ├── Icon-121.png │ │ │ │ └── Icon-180.png │ │ ├── AppDelegate.h │ │ └── main.m │ │ ├── BindingDemoRN.xcworkspace │ │ ├── xcuserdata │ │ │ └── huxiaoqi.xcuserdatad │ │ │ │ └── UserInterfaceState.xcuserstate │ │ └── contents.xcworkspacedata │ │ ├── BindingDemoRN.xcodeproj │ │ ├── project.xcworkspace │ │ │ └── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ └── huxiaoqi.xcuserdatad │ │ │ └── xcschemes │ │ │ └── xcschememanagement.plist │ │ └── Podfile ├── .gitignore ├── .npmignore └── package.json ├── parser ├── .npmignore ├── .gitignore ├── README.md ├── package.json └── webpack.config.js ├── weex ├── .swift-version ├── playground │ ├── ios │ │ ├── README.md │ │ ├── weex.png │ │ ├── weex@2x.png │ │ ├── WeexDemo │ │ │ ├── weex-icon.png │ │ │ ├── Assets.xcassets │ │ │ │ ├── Contents.json │ │ │ │ ├── back.imageset │ │ │ │ │ ├── back.png │ │ │ │ │ ├── back@2x.png │ │ │ │ │ ├── back@3x.png │ │ │ │ │ └── Contents.json │ │ │ │ ├── scan.imageset │ │ │ │ │ ├── scan.png │ │ │ │ │ ├── scan@2x.png │ │ │ │ │ ├── scan@3x.png │ │ │ │ │ └── Contents.json │ │ │ │ ├── reload.imageset │ │ │ │ │ ├── reload.png │ │ │ │ │ ├── reload@2x.png │ │ │ │ │ ├── reload@3x.png │ │ │ │ │ └── Contents.json │ │ │ │ └── AppIcon.appiconset │ │ │ │ │ ├── Icon-40.png │ │ │ │ │ ├── Icon-58.png │ │ │ │ │ ├── Icon-60.png │ │ │ │ │ ├── Icon-80.png │ │ │ │ │ ├── Icon-87.png │ │ │ │ │ ├── Icon-120.png │ │ │ │ │ ├── Icon-121.png │ │ │ │ │ └── Icon-180.png │ │ │ ├── Images.xcassets │ │ │ │ ├── Contents.json │ │ │ │ ├── icon.imageset │ │ │ │ │ ├── weex-icon.png │ │ │ │ │ ├── bindingx_new_icon_400.png │ │ │ │ │ └── Contents.json │ │ │ │ └── Brand Assets.launchimage │ │ │ │ │ └── Contents.json │ │ │ ├── DemoBaseViewController.h │ │ │ ├── UIView+UIThreadCheck.h │ │ │ ├── lottie │ │ │ │ ├── WXLottieBindingXHandler.h │ │ │ │ ├── WXLottieComponent.h │ │ │ │ └── WXLottieBindingXHandler.m │ │ │ ├── CustomEBHandler.h │ │ │ ├── WXSyncTestModule.h │ │ │ ├── debug │ │ │ │ ├── WXATLoggerPlugin.h │ │ │ │ ├── WXATViewHierarchyPlugin.h │ │ │ │ └── WXATViewHierarchyPlugin.m │ │ │ ├── extend │ │ │ │ ├── handler │ │ │ │ │ ├── WXNavigationImpl.h │ │ │ │ │ └── WXImgLoaderDefaultImpl.h │ │ │ │ ├── component │ │ │ │ │ └── WXSelectComponent.h │ │ │ │ └── module │ │ │ │ │ ├── WXEventModule.h │ │ │ │ │ └── WXEventModule.m │ │ │ ├── Scanner │ │ │ │ └── WXScannerVC.h │ │ │ ├── main.m │ │ │ ├── AppDelegate.h │ │ │ ├── CustomEBHandler.m │ │ │ ├── UIViewController+WXDemoNaviBar.h │ │ │ ├── WXDemoViewController.h │ │ │ ├── WXSyncTestModule.m │ │ │ ├── DemoBaseViewController.m │ │ │ └── DemoDefine.h │ │ ├── WeexDemo.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ │ └── WorkspaceSettings.xcsettings │ │ ├── Podfile │ │ ├── WeexUITestDemoUITests │ │ │ └── Info.plist │ │ └── WeexDemoTests │ │ │ ├── Info.plist │ │ │ └── WeexDemoTests.m │ ├── android │ │ ├── playground-weex │ │ │ ├── .gitignore │ │ │ ├── src │ │ │ │ └── main │ │ │ │ │ └── res │ │ │ │ │ ├── drawable-xhdpi │ │ │ │ │ └── scan.png │ │ │ │ │ ├── drawable-xxxhdpi │ │ │ │ │ ├── back.png │ │ │ │ │ └── ic_history.png │ │ │ │ │ ├── drawable-xxhdpi │ │ │ │ │ └── back_arrow.png │ │ │ │ │ ├── mipmap-xxxhdpi │ │ │ │ │ └── ic_launcher.png │ │ │ │ │ └── values │ │ │ │ │ ├── strings.xml │ │ │ │ │ ├── colors.xml │ │ │ │ │ └── styles.xml │ │ │ └── proguard-rules.pro │ │ ├── qrcode_extends │ │ │ ├── .gitignore │ │ │ ├── src │ │ │ │ ├── main │ │ │ │ │ ├── res │ │ │ │ │ │ └── values │ │ │ │ │ │ │ ├── ids.xml │ │ │ │ │ │ │ ├── strings.xml │ │ │ │ │ │ │ ├── colors.xml │ │ │ │ │ │ │ └── attrs.xml │ │ │ │ │ ├── AndroidManifest.xml │ │ │ │ │ └── java │ │ │ │ │ │ └── com │ │ │ │ │ │ └── alibaba │ │ │ │ │ │ └── android │ │ │ │ │ │ └── qrcode │ │ │ │ │ │ └── extension │ │ │ │ │ │ └── core │ │ │ │ │ │ └── CameraWrapper.java │ │ │ │ └── test │ │ │ │ │ └── java │ │ │ │ │ └── com │ │ │ │ │ └── alibaba │ │ │ │ │ └── android │ │ │ │ │ └── qrcode │ │ │ │ │ └── extension │ │ │ │ │ └── ExampleUnitTest.java │ │ │ ├── build.gradle │ │ │ └── proguard-rules.pro │ │ ├── .gitignore │ │ ├── gradle │ │ │ └── wrapper │ │ │ │ ├── gradle-wrapper.jar │ │ │ │ └── gradle-wrapper.properties │ │ ├── settings.gradle │ │ ├── gradle.properties │ │ └── build.gradle │ └── browser │ │ └── pluginInstall.js ├── .babelrc ├── .npmignore ├── android │ └── bindingx_weex_plugin │ │ ├── .gitignore │ │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ │ ├── constants.gradle │ │ ├── src │ │ └── main │ │ │ ├── AndroidManifest.xml │ │ │ └── res │ │ │ └── values │ │ │ └── strings.xml │ │ ├── proguard-rules.pro │ │ ├── bintray.gradle │ │ └── changelog.md ├── ios │ ├── BindingX.xcworkspace │ │ ├── xcshareddata │ │ │ └── WorkspaceSettings.xcsettings │ │ └── contents.xcworkspacedata │ ├── Podfile │ ├── Sources │ │ ├── EBWXModule.h │ │ ├── EBWXUtils.h │ │ ├── EBWXOldModule.h │ │ └── EBUtility+WX.h │ └── Info.plist ├── .gitignore └── build │ └── webpack.config.js ├── logo.png ├── native └── android │ ├── playground │ ├── playground-android │ │ ├── .gitignore │ │ ├── src │ │ │ ├── main │ │ │ │ ├── res │ │ │ │ │ ├── values │ │ │ │ │ │ ├── strings.xml │ │ │ │ │ │ ├── colors.xml │ │ │ │ │ │ └── styles.xml │ │ │ │ │ ├── drawable-xhdpi │ │ │ │ │ │ ├── bg_1.png │ │ │ │ │ │ ├── bg_2.jpg │ │ │ │ │ │ ├── bg_3.png │ │ │ │ │ │ ├── toutiao.png │ │ │ │ │ │ ├── wuliu_1.jpg │ │ │ │ │ │ ├── wuliu_2.jpg │ │ │ │ │ │ ├── wuliu_3.jpg │ │ │ │ │ │ └── wuliu_4.jpg │ │ │ │ │ ├── mipmap-hdpi │ │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ │ ├── mipmap-mdpi │ │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ │ ├── mipmap-xhdpi │ │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ │ ├── mipmap-xxhdpi │ │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ │ ├── mipmap-xxxhdpi │ │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ │ ├── mipmap-anydpi-v26 │ │ │ │ │ │ ├── ic_launcher.xml │ │ │ │ │ │ └── ic_launcher_round.xml │ │ │ │ │ ├── drawable │ │ │ │ │ │ ├── border_wuliu_dot.xml │ │ │ │ │ │ ├── gradient_toutiao_bg.xml │ │ │ │ │ │ └── border_toutiao_label.xml │ │ │ │ │ └── layout │ │ │ │ │ │ ├── activity_demo2.xml │ │ │ │ │ │ └── activity_main.xml │ │ │ │ └── AndroidManifest.xml │ │ │ ├── test │ │ │ │ └── java │ │ │ │ │ └── com │ │ │ │ │ └── alibaba │ │ │ │ │ └── android │ │ │ │ │ └── playground │ │ │ │ │ └── ExampleUnitTest.java │ │ │ └── androidTest │ │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── android │ │ │ │ └── playground │ │ │ │ └── ExampleInstrumentedTest.java │ │ ├── proguard-rules.pro │ │ └── build.gradle │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── .gitignore │ ├── settings.gradle │ ├── build.gradle │ └── gradle.properties │ ├── bindingx_android_plugin │ ├── changelog.md │ ├── .gitignore │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── src │ │ └── main │ │ │ ├── AndroidManifest.xml │ │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── android │ │ │ │ └── bindingx │ │ │ │ └── plugin │ │ │ │ └── android │ │ │ │ ├── NativeCallback.java │ │ │ │ ├── NativeViewFinder.java │ │ │ │ ├── model │ │ │ │ ├── BindingXPropSpec.java │ │ │ │ └── BindingXSpec.java │ │ │ │ └── INativeViewUpdater.java │ │ │ └── res │ │ │ └── values │ │ │ └── strings.xml │ ├── constants.gradle │ ├── proguard-rules.pro │ └── bintray.gradle │ └── .gitignore ├── web ├── weex-bindingx │ ├── .gitignore │ ├── .npmignore │ ├── demo │ │ ├── vue │ │ │ ├── pan.js │ │ │ ├── scroll.js │ │ │ ├── timing.js │ │ │ ├── orientation.js │ │ │ ├── pan.html │ │ │ ├── timing.html │ │ │ ├── orientation.html │ │ │ └── scroll.html │ │ └── rax │ │ │ ├── pan.html │ │ │ ├── async.html │ │ │ ├── delete.html │ │ │ ├── lottie.html │ │ │ ├── timing.html │ │ │ ├── orientation.html │ │ │ ├── svg.html │ │ │ ├── scroll.html │ │ │ └── menu.html │ └── lib │ │ └── deps.json └── react-native-bindingx │ ├── .gitignore │ ├── .npmignore │ └── package.json ├── LICENSE.md ├── BindingX-react-native.podspec └── BindingX.podspec /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /doc/.gitignore: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /core/ios/README.md: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /react-native/ios: -------------------------------------------------------------------------------- 1 | lib/ios -------------------------------------------------------------------------------- /parser/.npmignore: -------------------------------------------------------------------------------- 1 | .idea/* -------------------------------------------------------------------------------- /weex/.swift-version: -------------------------------------------------------------------------------- 1 | 3.0 2 | -------------------------------------------------------------------------------- /react-native/android: -------------------------------------------------------------------------------- 1 | lib/android -------------------------------------------------------------------------------- /weex/playground/ios/README.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /parser/.gitignore: -------------------------------------------------------------------------------- 1 | .idea/* 2 | 3 | -------------------------------------------------------------------------------- /weex/.babelrc: -------------------------------------------------------------------------------- 1 | { "presets": ["es2015"] } -------------------------------------------------------------------------------- /react-native/lib/ios/README.md: -------------------------------------------------------------------------------- 1 | //占位 @对象 2 | -------------------------------------------------------------------------------- /react-native/README.md: -------------------------------------------------------------------------------- 1 | react-native-bindingx 2 | 3 | -------------------------------------------------------------------------------- /react-native/example/index.js: -------------------------------------------------------------------------------- 1 | require('./src/app'); -------------------------------------------------------------------------------- /react-native/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | ./android 3 | ./ios 4 | -------------------------------------------------------------------------------- /weex/playground/android/playground-weex/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /weex/playground/android/qrcode_extends/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /core/web-polifill/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | .idea/ 3 | .DS_Store -------------------------------------------------------------------------------- /core/web-polifill/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | .idea/ 3 | .DS_Store -------------------------------------------------------------------------------- /logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/bindingx/HEAD/logo.png -------------------------------------------------------------------------------- /native/android/playground/playground-android/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /react-native/example/android/playground-rn/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /web/weex-bindingx/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | .idea/ 3 | .DS_Store -------------------------------------------------------------------------------- /web/weex-bindingx/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | .idea/ 3 | .DS_Store -------------------------------------------------------------------------------- /web/react-native-bindingx/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | .idea/ 3 | .DS_Store -------------------------------------------------------------------------------- /web/react-native-bindingx/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | .idea/ 3 | .DS_Store -------------------------------------------------------------------------------- /react-native/.npmignore: -------------------------------------------------------------------------------- 1 | .package-lock.json 2 | ./node_modules 3 | yarn.lock 4 | yarn-error.log -------------------------------------------------------------------------------- /react-native/lib/index.js: -------------------------------------------------------------------------------- 1 | import bindingx from './src/bindingx'; 2 | 3 | module.exports = bindingx; 4 | -------------------------------------------------------------------------------- /weex/playground/ios/weex.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/bindingx/HEAD/weex/playground/ios/weex.png -------------------------------------------------------------------------------- /weex/playground/ios/weex@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/bindingx/HEAD/weex/playground/ios/weex@2x.png -------------------------------------------------------------------------------- /native/android/bindingx_android_plugin/changelog.md: -------------------------------------------------------------------------------- 1 | ### bindingx-android-plugin changelog 2 | 3 | #### 1.0.0 4 | 5 | 1. 初始版本。 -------------------------------------------------------------------------------- /weex/.npmignore: -------------------------------------------------------------------------------- 1 | examples 2 | coverage 3 | docs 4 | node_modules/* 5 | 6 | test 7 | 8 | .editorconfig 9 | .esdocrc 10 | .eslintrc -------------------------------------------------------------------------------- /weex/playground/ios/WeexDemo/weex-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/bindingx/HEAD/weex/playground/ios/WeexDemo/weex-icon.png -------------------------------------------------------------------------------- /weex/playground/ios/WeexDemo/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /weex/playground/ios/WeexDemo/Images.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /web/weex-bindingx/demo/vue/pan.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue'; 2 | import App from './pan.vue'; 3 | App.el = '#root'; 4 | new Vue(App); 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /core/android/bindingx-core/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | *.iml 3 | .gradle 4 | /local.properties 5 | /.idea 6 | .DS_Store 7 | /captures 8 | .externalNativeBuild -------------------------------------------------------------------------------- /react-native/example/ios/BindingDemoRN/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /react-native/lib/android/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | *.iml 3 | .gradle 4 | /local.properties 5 | /.idea 6 | .DS_Store 7 | /captures 8 | .externalNativeBuild -------------------------------------------------------------------------------- /weex/playground/android/.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea 5 | .DS_Store 6 | /build 7 | /captures 8 | .externalNativeBuild 9 | -------------------------------------------------------------------------------- /react-native/example/android/.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea 5 | .DS_Store 6 | /build 7 | /captures 8 | .externalNativeBuild 9 | -------------------------------------------------------------------------------- /native/android/playground/playground-android/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | playground 3 | 4 | -------------------------------------------------------------------------------- /weex/android/bindingx_weex_plugin/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | *.iml 3 | .gradle 4 | /local.properties 5 | /.idea 6 | .DS_Store 7 | /captures 8 | .externalNativeBuild 9 | -------------------------------------------------------------------------------- /native/android/bindingx_android_plugin/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | *.iml 3 | .gradle 4 | /local.properties 5 | /.idea 6 | .DS_Store 7 | /captures 8 | .externalNativeBuild 9 | -------------------------------------------------------------------------------- /weex/playground/android/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/bindingx/HEAD/weex/playground/android/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /core/android/bindingx-core/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/bindingx/HEAD/core/android/bindingx-core/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /native/android/playground/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/bindingx/HEAD/native/android/playground/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /react-native/example/android/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/bindingx/HEAD/react-native/example/android/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /core/android/bindingx-core/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | -------------------------------------------------------------------------------- /weex/android/bindingx_weex_plugin/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/bindingx/HEAD/weex/android/bindingx_weex_plugin/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /weex/playground/ios/WeexDemo/Assets.xcassets/back.imageset/back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/bindingx/HEAD/weex/playground/ios/WeexDemo/Assets.xcassets/back.imageset/back.png -------------------------------------------------------------------------------- /weex/playground/ios/WeexDemo/Assets.xcassets/scan.imageset/scan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/bindingx/HEAD/weex/playground/ios/WeexDemo/Assets.xcassets/scan.imageset/scan.png -------------------------------------------------------------------------------- /weex/playground/ios/WeexDemo/Assets.xcassets/back.imageset/back@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/bindingx/HEAD/weex/playground/ios/WeexDemo/Assets.xcassets/back.imageset/back@2x.png -------------------------------------------------------------------------------- /weex/playground/ios/WeexDemo/Assets.xcassets/back.imageset/back@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/bindingx/HEAD/weex/playground/ios/WeexDemo/Assets.xcassets/back.imageset/back@3x.png -------------------------------------------------------------------------------- /weex/playground/ios/WeexDemo/Assets.xcassets/scan.imageset/scan@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/bindingx/HEAD/weex/playground/ios/WeexDemo/Assets.xcassets/scan.imageset/scan@2x.png -------------------------------------------------------------------------------- /weex/playground/ios/WeexDemo/Assets.xcassets/scan.imageset/scan@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/bindingx/HEAD/weex/playground/ios/WeexDemo/Assets.xcassets/scan.imageset/scan@3x.png -------------------------------------------------------------------------------- /native/android/bindingx_android_plugin/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/bindingx/HEAD/native/android/bindingx_android_plugin/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /react-native/lib/android/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | -------------------------------------------------------------------------------- /weex/playground/android/qrcode_extends/src/main/res/values/ids.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /weex/playground/ios/WeexDemo/Assets.xcassets/reload.imageset/reload.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/bindingx/HEAD/weex/playground/ios/WeexDemo/Assets.xcassets/reload.imageset/reload.png -------------------------------------------------------------------------------- /weex/playground/ios/WeexDemo/Images.xcassets/icon.imageset/weex-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/bindingx/HEAD/weex/playground/ios/WeexDemo/Images.xcassets/icon.imageset/weex-icon.png -------------------------------------------------------------------------------- /web/weex-bindingx/demo/vue/scroll.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue'; 2 | import App from './scroll.vue'; 3 | import weex from '@ali/weex-vue-render'; 4 | weex.init(Vue); 5 | App.el = '#root'; 6 | new Vue(App); -------------------------------------------------------------------------------- /web/weex-bindingx/demo/vue/timing.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue'; 2 | import App from './timing.vue'; 3 | import weex from '@ali/weex-vue-render'; 4 | weex.init(Vue); 5 | App.el = '#root'; 6 | new Vue(App); -------------------------------------------------------------------------------- /weex/playground/android/qrcode_extends/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | -------------------------------------------------------------------------------- /weex/playground/ios/WeexDemo/Assets.xcassets/AppIcon.appiconset/Icon-40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/bindingx/HEAD/weex/playground/ios/WeexDemo/Assets.xcassets/AppIcon.appiconset/Icon-40.png -------------------------------------------------------------------------------- /weex/playground/ios/WeexDemo/Assets.xcassets/AppIcon.appiconset/Icon-58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/bindingx/HEAD/weex/playground/ios/WeexDemo/Assets.xcassets/AppIcon.appiconset/Icon-58.png -------------------------------------------------------------------------------- /weex/playground/ios/WeexDemo/Assets.xcassets/AppIcon.appiconset/Icon-60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/bindingx/HEAD/weex/playground/ios/WeexDemo/Assets.xcassets/AppIcon.appiconset/Icon-60.png -------------------------------------------------------------------------------- /weex/playground/ios/WeexDemo/Assets.xcassets/AppIcon.appiconset/Icon-80.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/bindingx/HEAD/weex/playground/ios/WeexDemo/Assets.xcassets/AppIcon.appiconset/Icon-80.png -------------------------------------------------------------------------------- /weex/playground/ios/WeexDemo/Assets.xcassets/AppIcon.appiconset/Icon-87.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/bindingx/HEAD/weex/playground/ios/WeexDemo/Assets.xcassets/AppIcon.appiconset/Icon-87.png -------------------------------------------------------------------------------- /weex/playground/ios/WeexDemo/Assets.xcassets/reload.imageset/reload@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/bindingx/HEAD/weex/playground/ios/WeexDemo/Assets.xcassets/reload.imageset/reload@2x.png -------------------------------------------------------------------------------- /weex/playground/ios/WeexDemo/Assets.xcassets/reload.imageset/reload@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/bindingx/HEAD/weex/playground/ios/WeexDemo/Assets.xcassets/reload.imageset/reload@3x.png -------------------------------------------------------------------------------- /react-native/example/android/playground-rn/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/bindingx/HEAD/react-native/example/android/playground-rn/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /weex/playground/android/playground-weex/src/main/res/drawable-xhdpi/scan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/bindingx/HEAD/weex/playground/android/playground-weex/src/main/res/drawable-xhdpi/scan.png -------------------------------------------------------------------------------- /weex/playground/android/playground-weex/src/main/res/drawable-xxxhdpi/back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/bindingx/HEAD/weex/playground/android/playground-weex/src/main/res/drawable-xxxhdpi/back.png -------------------------------------------------------------------------------- /weex/playground/ios/WeexDemo/Assets.xcassets/AppIcon.appiconset/Icon-120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/bindingx/HEAD/weex/playground/ios/WeexDemo/Assets.xcassets/AppIcon.appiconset/Icon-120.png -------------------------------------------------------------------------------- /weex/playground/ios/WeexDemo/Assets.xcassets/AppIcon.appiconset/Icon-121.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/bindingx/HEAD/weex/playground/ios/WeexDemo/Assets.xcassets/AppIcon.appiconset/Icon-121.png -------------------------------------------------------------------------------- /weex/playground/ios/WeexDemo/Assets.xcassets/AppIcon.appiconset/Icon-180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/bindingx/HEAD/weex/playground/ios/WeexDemo/Assets.xcassets/AppIcon.appiconset/Icon-180.png -------------------------------------------------------------------------------- /native/android/.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea/libraries 5 | /.idea/modules.xml 6 | /.idea/workspace.xml 7 | .DS_Store 8 | /build 9 | /captures 10 | .externalNativeBuild 11 | -------------------------------------------------------------------------------- /web/weex-bindingx/demo/vue/orientation.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue'; 2 | import App from './orientation.vue'; 3 | import weex from '@ali/weex-vue-render'; 4 | weex.init(Vue); 5 | App.el = '#root'; 6 | new Vue(App); -------------------------------------------------------------------------------- /native/android/playground/playground-android/src/main/res/drawable-xhdpi/bg_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/bindingx/HEAD/native/android/playground/playground-android/src/main/res/drawable-xhdpi/bg_1.png -------------------------------------------------------------------------------- /native/android/playground/playground-android/src/main/res/drawable-xhdpi/bg_2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/bindingx/HEAD/native/android/playground/playground-android/src/main/res/drawable-xhdpi/bg_2.jpg -------------------------------------------------------------------------------- /native/android/playground/playground-android/src/main/res/drawable-xhdpi/bg_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/bindingx/HEAD/native/android/playground/playground-android/src/main/res/drawable-xhdpi/bg_3.png -------------------------------------------------------------------------------- /react-native/example/ios/BindingDemoRN/Assets.xcassets/icon.imageset/weex-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/bindingx/HEAD/react-native/example/ios/BindingDemoRN/Assets.xcassets/icon.imageset/weex-icon.png -------------------------------------------------------------------------------- /weex/playground/android/playground-weex/src/main/res/drawable-xxhdpi/back_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/bindingx/HEAD/weex/playground/android/playground-weex/src/main/res/drawable-xxhdpi/back_arrow.png -------------------------------------------------------------------------------- /weex/playground/android/playground-weex/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/bindingx/HEAD/weex/playground/android/playground-weex/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /native/android/playground/playground-android/src/main/res/drawable-xhdpi/toutiao.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/bindingx/HEAD/native/android/playground/playground-android/src/main/res/drawable-xhdpi/toutiao.png -------------------------------------------------------------------------------- /native/android/playground/playground-android/src/main/res/drawable-xhdpi/wuliu_1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/bindingx/HEAD/native/android/playground/playground-android/src/main/res/drawable-xhdpi/wuliu_1.jpg -------------------------------------------------------------------------------- /native/android/playground/playground-android/src/main/res/drawable-xhdpi/wuliu_2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/bindingx/HEAD/native/android/playground/playground-android/src/main/res/drawable-xhdpi/wuliu_2.jpg -------------------------------------------------------------------------------- /native/android/playground/playground-android/src/main/res/drawable-xhdpi/wuliu_3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/bindingx/HEAD/native/android/playground/playground-android/src/main/res/drawable-xhdpi/wuliu_3.jpg -------------------------------------------------------------------------------- /native/android/playground/playground-android/src/main/res/drawable-xhdpi/wuliu_4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/bindingx/HEAD/native/android/playground/playground-android/src/main/res/drawable-xhdpi/wuliu_4.jpg -------------------------------------------------------------------------------- /native/android/playground/playground-android/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/bindingx/HEAD/native/android/playground/playground-android/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /native/android/playground/playground-android/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/bindingx/HEAD/native/android/playground/playground-android/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /react-native/example/ios/BindingDemoRN/Assets.xcassets/AppIcon.appiconset/Icon-40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/bindingx/HEAD/react-native/example/ios/BindingDemoRN/Assets.xcassets/AppIcon.appiconset/Icon-40.png -------------------------------------------------------------------------------- /react-native/example/ios/BindingDemoRN/Assets.xcassets/AppIcon.appiconset/Icon-58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/bindingx/HEAD/react-native/example/ios/BindingDemoRN/Assets.xcassets/AppIcon.appiconset/Icon-58.png -------------------------------------------------------------------------------- /react-native/example/ios/BindingDemoRN/Assets.xcassets/AppIcon.appiconset/Icon-60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/bindingx/HEAD/react-native/example/ios/BindingDemoRN/Assets.xcassets/AppIcon.appiconset/Icon-60.png -------------------------------------------------------------------------------- /react-native/example/ios/BindingDemoRN/Assets.xcassets/AppIcon.appiconset/Icon-80.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/bindingx/HEAD/react-native/example/ios/BindingDemoRN/Assets.xcassets/AppIcon.appiconset/Icon-80.png -------------------------------------------------------------------------------- /react-native/example/ios/BindingDemoRN/Assets.xcassets/AppIcon.appiconset/Icon-87.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/bindingx/HEAD/react-native/example/ios/BindingDemoRN/Assets.xcassets/AppIcon.appiconset/Icon-87.png -------------------------------------------------------------------------------- /weex/playground/android/playground-weex/src/main/res/drawable-xxxhdpi/ic_history.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/bindingx/HEAD/weex/playground/android/playground-weex/src/main/res/drawable-xxxhdpi/ic_history.png -------------------------------------------------------------------------------- /weex/playground/ios/WeexDemo/Images.xcassets/icon.imageset/bindingx_new_icon_400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/bindingx/HEAD/weex/playground/ios/WeexDemo/Images.xcassets/icon.imageset/bindingx_new_icon_400.png -------------------------------------------------------------------------------- /native/android/bindingx_android_plugin/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | -------------------------------------------------------------------------------- /native/android/playground/.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea/libraries 5 | /.idea/modules.xml 6 | /.idea/workspace.xml 7 | .DS_Store 8 | /build 9 | /captures 10 | .externalNativeBuild 11 | -------------------------------------------------------------------------------- /native/android/playground/playground-android/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/bindingx/HEAD/native/android/playground/playground-android/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /native/android/playground/playground-android/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/bindingx/HEAD/native/android/playground/playground-android/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /native/android/playground/playground-android/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/bindingx/HEAD/native/android/playground/playground-android/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /react-native/example/android/playground-rn/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/bindingx/HEAD/react-native/example/android/playground-rn/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /react-native/example/ios/BindingDemoRN/Assets.xcassets/AppIcon.appiconset/Icon-120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/bindingx/HEAD/react-native/example/ios/BindingDemoRN/Assets.xcassets/AppIcon.appiconset/Icon-120.png -------------------------------------------------------------------------------- /react-native/example/ios/BindingDemoRN/Assets.xcassets/AppIcon.appiconset/Icon-121.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/bindingx/HEAD/react-native/example/ios/BindingDemoRN/Assets.xcassets/AppIcon.appiconset/Icon-121.png -------------------------------------------------------------------------------- /react-native/example/ios/BindingDemoRN/Assets.xcassets/AppIcon.appiconset/Icon-180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/bindingx/HEAD/react-native/example/ios/BindingDemoRN/Assets.xcassets/AppIcon.appiconset/Icon-180.png -------------------------------------------------------------------------------- /weex/playground/android/qrcode_extends/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 3 | 60 4 | 5 | -------------------------------------------------------------------------------- /weex/playground/browser/pluginInstall.js: -------------------------------------------------------------------------------- 1 | import BindingxWeexPlugin from "../../js/src"; 2 | 3 | if (window.Weex) { 4 | Weex.install(BindingxWeexPlugin); 5 | } else if (window.weex) { 6 | weex.install(BindingxWeexPlugin); 7 | } -------------------------------------------------------------------------------- /native/android/playground/playground-android/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/bindingx/HEAD/native/android/playground/playground-android/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /native/android/playground/playground-android/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/bindingx/HEAD/native/android/playground/playground-android/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /native/android/playground/playground-android/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/bindingx/HEAD/native/android/playground/playground-android/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /native/android/playground/playground-android/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/bindingx/HEAD/native/android/playground/playground-android/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /native/android/playground/playground-android/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/bindingx/HEAD/native/android/playground/playground-android/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /react-native/example/ios/BindingDemoRN/Assets.xcassets/icon.imageset/bindingx_new_icon_400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/bindingx/HEAD/react-native/example/ios/BindingDemoRN/Assets.xcassets/icon.imageset/bindingx_new_icon_400.png -------------------------------------------------------------------------------- /core/ios/BindingX.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /react-native/lib/ios/RNBindingX.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /weex/ios/BindingX.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /weex/ios/Podfile: -------------------------------------------------------------------------------- 1 | source 'https://github.com/CocoaPods/Specs.git' 2 | platform :ios, '8.0' 3 | #inhibit_all_warnings! 4 | 5 | def common 6 | pod 'WeexSDK' 7 | pod 'WeexPluginLoader' 8 | end 9 | 10 | target 'BindingX' do 11 | common 12 | end 13 | 14 | 15 | -------------------------------------------------------------------------------- /react-native/example/ios/BindingDemoRN.xcworkspace/xcuserdata/huxiaoqi.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/bindingx/HEAD/react-native/example/ios/BindingDemoRN.xcworkspace/xcuserdata/huxiaoqi.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /react-native/example/ios/BindingDemoRN.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /web/weex-bindingx/lib/deps.json: -------------------------------------------------------------------------------- 1 | { 2 | "npm/weex-bindingx/0.0.40/index.cmd": { 3 | "requires": [] 4 | }, 5 | "npm/weex-bindingx/0.0.40/index.web.cmd": { 6 | "requires": [] 7 | }, 8 | "npm/weex-bindingx/0.0.40/index.weex.cmd": { 9 | "requires": [] 10 | } 11 | } -------------------------------------------------------------------------------- /native/android/playground/playground-android/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #3F51B5 4 | #303F9F 5 | #FF4081 6 | 7 | -------------------------------------------------------------------------------- /weex/playground/android/qrcode_extends/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #60000000 4 | #ffcc0000 5 | #ffafed44 6 | -------------------------------------------------------------------------------- /weex/playground/android/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Mon Dec 25 14:08:17 CST 2017 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip 7 | -------------------------------------------------------------------------------- /core/android/bindingx-core/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Mon Dec 25 14:08:17 CST 2017 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip 7 | -------------------------------------------------------------------------------- /native/android/playground/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Thu Aug 09 10:29:44 CST 2018 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip 7 | -------------------------------------------------------------------------------- /react-native/example/android/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Mon Dec 25 14:08:17 CST 2017 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip 7 | -------------------------------------------------------------------------------- /weex/android/bindingx_weex_plugin/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Mon Dec 25 14:08:17 CST 2017 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip 7 | -------------------------------------------------------------------------------- /native/android/bindingx_android_plugin/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Mon Dec 25 14:08:17 CST 2017 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip 7 | -------------------------------------------------------------------------------- /weex/ios/BindingX.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /parser/README.md: -------------------------------------------------------------------------------- 1 | ### BindingX Parser 2 | 3 | #### Install 4 | 5 | ``` 6 | npm i bindingx-parser --save 7 | 8 | ``` 9 | 10 | #### Usage 11 | 12 | ``` 13 | import {parse} from 'bindingx-parser'; 14 | 15 | const originExpression = 'x+0'; 16 | 17 | parse(originExpression); // will return expression syntax tree 18 | 19 | ``` -------------------------------------------------------------------------------- /react-native/example/android/playground-rn/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Fri Mar 30 16:43:18 CST 2018 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip 7 | -------------------------------------------------------------------------------- /weex/playground/ios/WeexDemo.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /react-native/example/ios/BindingDemoRN.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /weex/playground/ios/WeexDemo.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | BuildSystemType 6 | Original 7 | 8 | 9 | -------------------------------------------------------------------------------- /native/android/playground/playground-android/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /native/android/playground/playground-android/src/main/res/drawable/border_wuliu_dot.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /native/android/playground/playground-android/src/main/res/drawable/gradient_toutiao_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | -------------------------------------------------------------------------------- /native/android/playground/playground-android/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /native/android/bindingx_android_plugin/src/main/java/com/alibaba/android/bindingx/plugin/android/NativeCallback.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.android.bindingx.plugin.android; 2 | 3 | import java.util.Map; 4 | 5 | /** 6 | * Description: 7 | * 8 | * Created by rowandjj(chuyi)
9 | */ 10 | public interface NativeCallback { 11 | void callback(Map params); 12 | } 13 | -------------------------------------------------------------------------------- /native/android/bindingx_android_plugin/src/main/java/com/alibaba/android/bindingx/plugin/android/NativeViewFinder.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.android.bindingx.plugin.android; 2 | 3 | import android.view.View; 4 | 5 | /** 6 | * Description: 7 | * 8 | * Created by rowandjj(chuyi)
9 | */ 10 | public interface NativeViewFinder { 11 | View findViewBy(View rootView, String ref); 12 | } 13 | -------------------------------------------------------------------------------- /native/android/playground/playground-android/src/main/res/drawable/border_toutiao_label.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /react-native/lib/ios/RNBindingX/core/BindingX.h: -------------------------------------------------------------------------------- 1 | // 2 | // BindingX.h 3 | // BindingX 4 | // 5 | // Created by 对象 on 2018/5/7. 6 | // Copyright © 2018年 weexplugin. All rights reserved. 7 | // 8 | #import 9 | 10 | FOUNDATION_EXPORT double BindingXVersionNumber; 11 | 12 | FOUNDATION_EXPORT const unsigned char BindingXVersionString[]; 13 | 14 | #import 15 | -------------------------------------------------------------------------------- /react-native/example/android/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'bindingx-rn-playground' 2 | 3 | include ':playground-rn' 4 | 5 | include ':bindingx-core' 6 | project (':bindingx-core').projectDir = new File(rootProject.projectDir, '../../../core/android/bindingx-core') 7 | 8 | include ':bindingx_react-native_plugin' 9 | project (':bindingx_react-native_plugin').projectDir = new File(rootProject.projectDir,'../../lib/android') 10 | -------------------------------------------------------------------------------- /native/android/playground/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'bindingx-android-playground' 2 | include ':playground-android' 3 | 4 | 5 | include ':bindingx-core' 6 | project (':bindingx-core').projectDir = new File(rootProject.projectDir, '../../../core/android/bindingx-core') 7 | 8 | 9 | include ':bindingx_android_plugin' 10 | project (':bindingx_android_plugin').projectDir = new File(rootProject.projectDir, '../bindingx_android_plugin') -------------------------------------------------------------------------------- /weex/playground/android/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'bindingx-weex-playground' 2 | 3 | include ':playground-weex', ':qrcode_extends' 4 | 5 | include ':bindingx-core' 6 | project (':bindingx-core').projectDir = new File(rootProject.projectDir, '../../../core/android/bindingx-core') 7 | 8 | include ':bindingx_weex_plugin' 9 | project (':bindingx_weex_plugin').projectDir = new File(rootProject.projectDir,'../../android/bindingx_weex_plugin') 10 | -------------------------------------------------------------------------------- /weex/playground/ios/WeexDemo/DemoBaseViewController.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by Weex. 3 | * Copyright (c) 2016, Alibaba, Inc. All rights reserved. 4 | * 5 | * This source code is licensed under the Apache Licence 2.0. 6 | * For the full copyright and license information,please view the LICENSE file in the root directory of this source tree. 7 | */ 8 | 9 | #import 10 | 11 | @interface DemoBaseViewController : UIViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /weex/playground/ios/Podfile: -------------------------------------------------------------------------------- 1 | source 'https://github.com/CocoaPods/Specs.git' 2 | platform :ios, '8.0' 3 | #inhibit_all_warnings! 4 | 5 | def common 6 | pod 'WeexSDK', '0.18.0' 7 | pod 'WXDevtool', '0.9.5' 8 | pod 'SDWebImage', '3.7.5' 9 | pod 'SocketRocket', '0.4.2' 10 | pod 'ATSDK-Weex', '0.0.1' 11 | pod 'lottie-ios', '2.5.0' 12 | 13 | pod 'BindingX', :path=>'../../../' 14 | end 15 | 16 | target 'WeexDemo' do 17 | common 18 | end 19 | 20 | -------------------------------------------------------------------------------- /weex/playground/ios/WeexDemo/UIView+UIThreadCheck.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by Weex. 3 | * Copyright (c) 2016, Alibaba, Inc. All rights reserved. 4 | * 5 | * This source code is licensed under the Apache Licence 2.0. 6 | * For the full copyright and license information,please view the LICENSE file in the root directory of this source tree. 7 | */ 8 | 9 | #import 10 | 11 | @interface UIView (UIThreadCheck) 12 | 13 | + (void)wx_checkUIThread; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /weex/playground/ios/WeexDemo/lottie/WXLottieBindingXHandler.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by Weex. 3 | * Copyright (c) 2016, Alibaba, Inc. All rights reserved. 4 | * 5 | * This source code is licensed under the Apache Licence 2.0. 6 | * For the full copyright and license information,please view the LICENSE file in the root directory of this source tree. 7 | */ 8 | 9 | #import "EBHandlerFactory.h" 10 | 11 | @interface WXLottieBindingXHandler : NSObject 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /native/android/bindingx_android_plugin/src/main/java/com/alibaba/android/bindingx/plugin/android/model/BindingXPropSpec.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.android.bindingx.plugin.android.model; 2 | 3 | import com.alibaba.android.bindingx.core.internal.ExpressionPair; 4 | 5 | /** 6 | * Description: 7 | * 8 | * Created by rowandjj(chuyi)
9 | */ 10 | public class BindingXPropSpec { 11 | public String element; 12 | public String property; 13 | public ExpressionPair expressionPair; 14 | } 15 | -------------------------------------------------------------------------------- /core/android/bindingx-core/constants.gradle: -------------------------------------------------------------------------------- 1 | /** 2 | * use [./gradlew clean assemble install bintrayUpload] to publish(bintray) 3 | * */ 4 | 5 | ext { 6 | projectName = 'maven' 7 | projectDesc = 'bindingx core framework' 8 | 9 | siteUrl = 'https://github.com/alibaba/bindingx' 10 | gitUrl = 'git@github.com:alibaba/bindingx.git' 11 | 12 | mavenGroup = 'com.alibaba.android' 13 | mavenArtifactId = 'bindingx-core' 14 | mavenVersion = '1.0.9.6' 15 | 16 | orgName = 'rowandjj' 17 | } -------------------------------------------------------------------------------- /weex/playground/ios/WeexDemo/CustomEBHandler.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by Weex. 3 | * Copyright (c) 2016, Alibaba, Inc. All rights reserved. 4 | * 5 | * This source code is licensed under the Apache Licence 2.0. 6 | * For the full copyright and license information,please view the LICENSE file in the root directory of this source tree. 7 | */ 8 | 9 | #import 10 | #import 11 | 12 | @interface CustomEBHandler : NSObject 13 | 14 | @end 15 | -------------------------------------------------------------------------------- /weex/playground/ios/WeexDemo/WXSyncTestModule.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by Weex. 3 | * Copyright (c) 2016, Alibaba, Inc. All rights reserved. 4 | * 5 | * This source code is licensed under the Apache Licence 2.0. 6 | * For the full copyright and license information,please view the LICENSE file in the root directory of this source tree. 7 | */ 8 | 9 | #import 10 | #import 11 | 12 | @interface WXSyncTestModule : NSObject 13 | 14 | @end 15 | -------------------------------------------------------------------------------- /native/android/playground/playground-android/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /weex/playground/ios/WeexDemo/Images.xcassets/icon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "weex-icon.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "bindingx_new_icon_400.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /weex/playground/ios/WeexDemo/debug/WXATLoggerPlugin.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by Weex. 3 | * Copyright (c) 2016, Alibaba, Inc. All rights reserved. 4 | * 5 | * This source code is licensed under the Apache Licence 2.0. 6 | * For the full copyright and license information,please view the LICENSE file in the root directory of this source tree. 7 | */ 8 | 9 | #import 10 | #import 11 | 12 | @interface WXATLoggerPlugin : NSObject 13 | 14 | @end 15 | -------------------------------------------------------------------------------- /weex/android/bindingx_weex_plugin/constants.gradle: -------------------------------------------------------------------------------- 1 | /** 2 | * use [./gradlew clean assemble install bintrayUpload] to publish(bintray) 3 | * */ 4 | 5 | ext { 6 | projectName = 'maven' 7 | projectDesc = 'bindingx weex plugin' 8 | 9 | siteUrl = 'https://github.com/alibaba/bindingx' 10 | gitUrl = 'git@github.com:alibaba/bindingx.git' 11 | 12 | mavenGroup = 'com.alibaba.android' 13 | mavenArtifactId = 'bindingx_weex_plugin' 14 | mavenVersion = '1.0.9.6' 15 | 16 | orgName = 'rowandjj' 17 | } -------------------------------------------------------------------------------- /weex/playground/ios/WeexDemo/extend/handler/WXNavigationImpl.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by Weex. 3 | * Copyright (c) 2016, Alibaba, Inc. All rights reserved. 4 | * 5 | * This source code is licensed under the Apache Licence 2.0. 6 | * For the full copyright and license information,please view the LICENSE file in the root directory of this source tree. 7 | */ 8 | 9 | #import 10 | #import 11 | 12 | @interface WXNavigationImpl : NSObject 13 | 14 | @end 15 | -------------------------------------------------------------------------------- /react-native/example/ios/BindingDemoRN/Assets.xcassets/icon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "weex-icon.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "bindingx_new_icon_400.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /weex/playground/ios/WeexDemo/Scanner/WXScannerVC.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by Weex. 3 | * Copyright (c) 2016, Alibaba, Inc. All rights reserved. 4 | * 5 | * This source code is licensed under the Apache Licence 2.0. 6 | * For the full copyright and license information,please view the LICENSE file in the root directory of this source tree. 7 | */ 8 | 9 | #import 10 | #import 11 | 12 | @interface WXScannerVC : UIViewController 13 | 14 | @end -------------------------------------------------------------------------------- /native/android/bindingx_android_plugin/constants.gradle: -------------------------------------------------------------------------------- 1 | /** 2 | * use [./gradlew clean assemble install bintrayUpload] to publish(bintray) 3 | * */ 4 | 5 | ext { 6 | projectName = 'maven' 7 | projectDesc = 'bindingx android plugin' 8 | 9 | siteUrl = 'https://github.com/alibaba/bindingx' 10 | gitUrl = 'git@github.com:alibaba/bindingx.git' 11 | 12 | mavenGroup = 'com.alibaba.android' 13 | mavenArtifactId = 'bindingx_android_plugin' 14 | mavenVersion = '1.0.0' 15 | 16 | orgName = 'rowandjj' 17 | } -------------------------------------------------------------------------------- /weex/playground/ios/WeexDemo/Assets.xcassets/back.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "back.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "back@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "back@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /weex/playground/ios/WeexDemo/Assets.xcassets/scan.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "scan.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "scan@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "scan@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /weex/playground/ios/WeexDemo/debug/WXATViewHierarchyPlugin.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by Weex. 3 | * Copyright (c) 2016, Alibaba, Inc. All rights reserved. 4 | * 5 | * This source code is licensed under the Apache Licence 2.0. 6 | * For the full copyright and license information,please view the LICENSE file in the root directory of this source tree. 7 | */ 8 | 9 | //#import 10 | //#import 11 | // 12 | //@interface WXATViewHierarchyPlugin : NSObject 13 | // 14 | //@end 15 | -------------------------------------------------------------------------------- /weex/playground/ios/WeexDemo/Assets.xcassets/reload.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "reload.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "reload@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "reload@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /weex/playground/ios/WeexDemo/Images.xcassets/Brand Assets.launchimage/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "orientation" : "portrait", 5 | "idiom" : "iphone", 6 | "minimum-system-version" : "7.0", 7 | "scale" : "2x" 8 | }, 9 | { 10 | "orientation" : "portrait", 11 | "idiom" : "iphone", 12 | "minimum-system-version" : "7.0", 13 | "subtype" : "retina4", 14 | "scale" : "2x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /weex/playground/ios/WeexDemo/extend/component/WXSelectComponent.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by Weex. 3 | * Copyright (c) 2016, Alibaba, Inc. All rights reserved. 4 | * 5 | * This source code is licensed under the Apache Licence 2.0. 6 | * For the full copyright and license information,please view the LICENSE file in the root directory of this source tree. 7 | */ 8 | 9 | #import 10 | #import 11 | 12 | @interface WXSelectComponent : WXComponent 13 | 14 | @end 15 | -------------------------------------------------------------------------------- /weex/playground/ios/WeexDemo/extend/handler/WXImgLoaderDefaultImpl.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by Weex. 3 | * Copyright (c) 2016, Alibaba, Inc. All rights reserved. 4 | * 5 | * This source code is licensed under the Apache Licence 2.0. 6 | * For the full copyright and license information,please view the LICENSE file in the root directory of this source tree. 7 | */ 8 | 9 | #import 10 | #import 11 | 12 | @interface WXImgLoaderDefaultImpl : NSObject 13 | @end 14 | -------------------------------------------------------------------------------- /native/android/playground/playground-android/src/test/java/com/alibaba/android/playground/ExampleUnitTest.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.android.playground; 2 | 3 | import org.junit.Test; 4 | 5 | import static org.junit.Assert.*; 6 | 7 | /** 8 | * Example local unit test, which will execute on the development machine (host). 9 | * 10 | * @see Testing documentation 11 | */ 12 | public class ExampleUnitTest { 13 | @Test 14 | public void addition_isCorrect() { 15 | assertEquals(4, 2 + 2); 16 | } 17 | } -------------------------------------------------------------------------------- /react-native/example/android/playground-rn/local.properties: -------------------------------------------------------------------------------- 1 | ## This file is automatically generated by Android Studio. 2 | # Do not modify this file -- YOUR CHANGES WILL BE ERASED! 3 | # 4 | # This file must *NOT* be checked into Version Control Systems, 5 | # as it contains information specific to your local configuration. 6 | # 7 | # Location of the SDK. This is only used by Gradle. 8 | # For customization when using a Version Control System, please read the 9 | # header note. 10 | #Fri Mar 30 16:12:32 CST 2018 11 | sdk.dir=/Users/huxiaoqi/Library/Android/sdk 12 | -------------------------------------------------------------------------------- /weex/playground/ios/WeexDemo/main.m: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by Weex. 3 | * Copyright (c) 2016, Alibaba, Inc. All rights reserved. 4 | * 5 | * This source code is licensed under the Apache Licence 2.0. 6 | * For the full copyright and license information,please view the LICENSE file in the root directory of this source tree. 7 | */ 8 | 9 | #import 10 | #import "AppDelegate.h" 11 | 12 | int main(int argc, char * argv[]) { 13 | @autoreleasepool { 14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /weex/.gitignore: -------------------------------------------------------------------------------- 1 | #Xcode 2 | ios/Pods/ 3 | ios/Podfile.lock 4 | playground/ios/Pods/ 5 | playground/ios/Podfile.lock 6 | .weexpack.cache 7 | # OSX 8 | # 9 | .DS_Store 10 | 11 | *.pbxuser 12 | !default.pbxuser 13 | *.mode1v3 14 | !default.mode1v3 15 | *.mode2v3 16 | !default.mode2v3 17 | *.perspectivev3 18 | !default.perspectivev3 19 | xcuserdata 20 | *.xccheckout 21 | *.moved-aside 22 | DerivedData 23 | *.hmap 24 | *.ipa 25 | *.xcuserstate 26 | project.xcworkspace 27 | 28 | # node.js 29 | # 30 | examples/build/ 31 | node_modules/ 32 | npm-debug.log 33 | js/build/main.js 34 | .idea 35 | -------------------------------------------------------------------------------- /weex/playground/android/qrcode_extends/src/test/java/com/alibaba/android/qrcode/extension/ExampleUnitTest.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.android.qrcode.extension; 2 | 3 | import org.junit.Test; 4 | 5 | import static org.junit.Assert.*; 6 | 7 | /** 8 | * Example local unit test, which will execute on the development machine (host). 9 | * 10 | * @see Testing documentation 11 | */ 12 | public class ExampleUnitTest { 13 | @Test 14 | public void addition_isCorrect() throws Exception { 15 | assertEquals(4, 2 + 2); 16 | } 17 | } -------------------------------------------------------------------------------- /weex/playground/ios/WeexDemo/extend/module/WXEventModule.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by Weex. 3 | * Copyright (c) 2016, Alibaba, Inc. All rights reserved. 4 | * 5 | * This source code is licensed under the Apache Licence 2.0. 6 | * For the full copyright and license information,please view the LICENSE file in the root directory of this source tree. 7 | */ 8 | 9 | #import 10 | #import 11 | #import 12 | 13 | @interface WXEventModule : NSObject 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /weex/playground/ios/WeexDemo/AppDelegate.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by Weex. 3 | * Copyright (c) 2016, Alibaba, Inc. All rights reserved. 4 | * 5 | * This source code is licensed under the Apache Licence 2.0. 6 | * For the full copyright and license information,please view the LICENSE file in the root directory of this source tree. 7 | */ 8 | 9 | #import 10 | 11 | 12 | @interface AppDelegate : UIResponder 13 | 14 | @property (strong, nonatomic) UIWindow *window; 15 | @property (strong, nonatomic) NSString *latestVer; 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /weex/playground/ios/WeexDemo/CustomEBHandler.m: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by Weex. 3 | * Copyright (c) 2016, Alibaba, Inc. All rights reserved. 4 | * 5 | * This source code is licensed under the Apache Licence 2.0. 6 | * For the full copyright and license information,please view the LICENSE file in the root directory of this source tree. 7 | */ 8 | 9 | #import "CustomEBHandler.h" 10 | 11 | @implementation CustomEBHandler 12 | 13 | - (void)execute:(NSDictionary *)model to:(id)target { 14 | // NSLog(@"%@", model); 15 | } 16 | 17 | - (NSDictionary *)customScope { 18 | return nil; 19 | } 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | Copyright 2018 Alibaba Group 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software 10 | distributed under the License is distributed on an "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | See the License for the specific language governing permissions and 13 | limitations under the License. 14 | -------------------------------------------------------------------------------- /react-native/lib/ios/RNBindingX/core/EBHandlerFactory.h: -------------------------------------------------------------------------------- 1 | // 2 | // EBHandlerFactory.h 3 | // BindingX 4 | // 5 | // Created by 对象 on 2018/4/2. 6 | // Copyright © 2018年 weexplugin. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @protocol EBHandlerProtocol 12 | 13 | - (void)execute:(NSDictionary *)model to:(id)target; 14 | 15 | @end 16 | 17 | @interface EBHandlerFactory : NSObject 18 | 19 | + (NSArray>*)handlers; 20 | 21 | + (void)addHandler:(id)handler; 22 | 23 | + (void)removeHandler:(id)handler; 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /native/android/bindingx_android_plugin/src/main/java/com/alibaba/android/bindingx/plugin/android/INativeViewUpdater.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.android.bindingx.plugin.android; 2 | 3 | import android.support.annotation.NonNull; 4 | import android.view.View; 5 | 6 | import com.alibaba.android.bindingx.core.PlatformManager; 7 | 8 | import java.util.Map; 9 | 10 | public interface INativeViewUpdater { 11 | 12 | void update(@NonNull View targetView, 13 | @NonNull Object cmd, 14 | @NonNull PlatformManager.IDeviceResolutionTranslator translator, 15 | @NonNull Map config); 16 | } -------------------------------------------------------------------------------- /weex/playground/ios/WeexDemo/lottie/WXLottieComponent.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by Weex. 3 | * Copyright (c) 2016, Alibaba, Inc. All rights reserved. 4 | * 5 | * This source code is licensed under the Apache Licence 2.0. 6 | * For the full copyright and license information,please view the LICENSE file in the root directory of this source tree. 7 | */ 8 | 9 | #import 10 | #import 11 | #import 12 | #import 13 | 14 | @interface WXLottieComponent : WXComponent 15 | 16 | - (void)setProgress:(CGFloat)progress; 17 | 18 | @end 19 | -------------------------------------------------------------------------------- /native/android/bindingx_android_plugin/src/main/java/com/alibaba/android/bindingx/plugin/android/model/BindingXSpec.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.android.bindingx.plugin.android.model; 2 | 3 | import com.alibaba.android.bindingx.core.internal.ExpressionPair; 4 | 5 | import java.util.List; 6 | import java.util.Map; 7 | 8 | /** 9 | * Description: 10 | * 11 | * Created by rowandjj(chuyi)
12 | */ 13 | public class BindingXSpec { 14 | public String eventType; 15 | public String anchor; 16 | public Map options; 17 | public ExpressionPair exitExpression; 18 | public List expressionProps; 19 | } 20 | -------------------------------------------------------------------------------- /weex/android/bindingx_weex_plugin/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /web/weex-bindingx/demo/rax/pan.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 7 | 8 | BindingX Demo 9 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /web/weex-bindingx/demo/rax/async.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 7 | 8 | BindingX Demo 9 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /web/weex-bindingx/demo/rax/delete.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 7 | 8 | BindingX Demo 9 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /web/weex-bindingx/demo/rax/lottie.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 7 | 8 | BindingX Demo 9 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /web/weex-bindingx/demo/rax/timing.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 7 | 8 | BindingX Demo 9 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /web/weex-bindingx/demo/rax/orientation.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 7 | 8 | BindingX Demo 9 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /core/web-polifill/demo/scroll.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | import {parse} from 'bindingx-parser'; 4 | import bindingx from '../src/'; 5 | 6 | const scrollView = document.getElementById('scrollView'); 7 | const block = document.getElementById('block'); 8 | 9 | const expressionOpacity = 'max(0,min(1,y/750))'; 10 | 11 | bindingx.bind({ 12 | anchor: scrollView, 13 | eventType: 'scroll', 14 | props: [ 15 | { 16 | element: block, 17 | property: 'opacity', 18 | expression: { 19 | origin: expressionOpacity, 20 | transformed: parse(expressionOpacity) 21 | } 22 | } 23 | ] 24 | }, (e) => { 25 | 26 | 27 | }); 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /weex/playground/ios/WeexDemo/UIViewController+WXDemoNaviBar.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by Weex. 3 | * Copyright (c) 2016, Alibaba, Inc. All rights reserved. 4 | * 5 | * This source code is licensed under the Apache Licence 2.0. 6 | * For the full copyright and license information,please view the LICENSE file in the root directory of this source tree. 7 | */ 8 | 9 | #import 10 | #import "DemoDefine.h" 11 | 12 | @interface UIViewController (WXDemoNaviBar) 13 | 14 | /** 15 | * back button click action 16 | * @param sender responder 17 | */ 18 | - (void)backButtonClicked:(id)sender; 19 | 20 | - (void)setupNaviBar; 21 | 22 | @end 23 | 24 | -------------------------------------------------------------------------------- /react-native/example/ios/BindingDemoRN.xcodeproj/xcuserdata/huxiaoqi.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | BindingDemoRN.xcscheme 8 | 9 | orderHint 10 | 7 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | D988D800200303AB00A87F3E 16 | 17 | primary 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /native/android/playground/build.gradle: -------------------------------------------------------------------------------- 1 | // Top-level build file where you can add configuration options common to all sub-projects/modules. 2 | 3 | buildscript { 4 | 5 | repositories { 6 | google() 7 | jcenter() 8 | } 9 | dependencies { 10 | classpath 'com.android.tools.build:gradle:3.1.2' 11 | 12 | 13 | // NOTE: Do not place your application dependencies here; they belong 14 | // in the individual module build.gradle files 15 | } 16 | } 17 | 18 | allprojects { 19 | repositories { 20 | google() 21 | jcenter() 22 | } 23 | } 24 | 25 | task clean(type: Delete) { 26 | delete rootProject.buildDir 27 | } 28 | -------------------------------------------------------------------------------- /web/react-native-bindingx/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "react-native-bindingx", 3 | "version": "0.0.7", 4 | "description": "Bindingx for react-native", 5 | "main": "src/index.js", 6 | "scripts": { 7 | "start": "node webpack.dev.config.js", 8 | "build": "webpack", 9 | "test": "echo \"Error: no test specified\" && exit 1" 10 | }, 11 | "keywords": [ 12 | "bindingx", 13 | "expression", 14 | "binding", 15 | "reactnative", 16 | "react" 17 | ], 18 | "peerDependencies":{ 19 | "react-native": "^0.54.4" 20 | }, 21 | "dependencies": { 22 | "bindingx-parser": "^0.0.2" 23 | }, 24 | "devDependencies": {}, 25 | "author": "", 26 | "license": "Apache-2.0" 27 | } 28 | -------------------------------------------------------------------------------- /weex/playground/ios/WeexDemo/WXDemoViewController.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by Weex. 3 | * Copyright (c) 2016, Alibaba, Inc. All rights reserved. 4 | * 5 | * This source code is licensed under the Apache Licence 2.0. 6 | * For the full copyright and license information,please view the LICENSE file in the root directory of this source tree. 7 | */ 8 | 9 | #import 10 | #import 11 | 12 | @interface WXDemoViewController : UIViewController 13 | 14 | @property (nonatomic, strong) NSString *script; 15 | @property (nonatomic, strong) NSURL *url; 16 | 17 | @property (nonatomic, strong) SRWebSocket *hotReloadSocket; 18 | @property (nonatomic, strong) NSString *source; 19 | 20 | @end 21 | 22 | -------------------------------------------------------------------------------- /core/web-polifill/demo/pan.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 7 | 8 | Demo 9 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /core/web-polifill/demo/orientation.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | import {parse} from 'bindingx-parser'; 4 | import bindingx from '../src/'; 5 | 6 | let x = 0; 7 | let y = 0; 8 | 9 | const block = document.getElementById('block'); 10 | 11 | 12 | bindingx.bind({ 13 | eventType: 'orientation', 14 | props: [ 15 | { 16 | element: block, 17 | property: 'transform.translateX', 18 | expression: { 19 | origin: `x+0`, 20 | transformed: parse(`x+0`) 21 | } 22 | }, 23 | { 24 | element: block, 25 | property: 'transform.translateY', 26 | expression: { 27 | origin: `y+0`, 28 | transformed: parse(`y+0`) 29 | } 30 | }, 31 | 32 | ] 33 | }, (e) => { 34 | 35 | }); 36 | 37 | 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /core/web-polifill/demo/orientation.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 7 | 8 | Demo 9 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /core/ios/BindingX/EBExpressionTiming.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2018 Alibaba Group 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #import "EBExpressionHandler.h" 18 | 19 | @interface EBExpressionTiming : EBExpressionHandler 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /core/ios/BindingX/EBExpressionScroller.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2018 Alibaba Group 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #import "EBExpressionHandler.h" 18 | 19 | @interface EBExpressionScroller : EBExpressionHandler 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /native/android/playground/gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | # IDE (e.g. Android Studio) users: 3 | # Gradle settings configured through the IDE *will override* 4 | # any settings specified in this file. 5 | # For more details on how to configure your build environment visit 6 | # http://www.gradle.org/docs/current/userguide/build_environment.html 7 | # Specifies the JVM arguments used for the daemon process. 8 | # The setting is particularly useful for tweaking memory settings. 9 | org.gradle.jvmargs=-Xmx1536m 10 | # When configured, Gradle will run in incubating parallel mode. 11 | # This option should only be used with decoupled projects. More details, visit 12 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 13 | # org.gradle.parallel=true 14 | -------------------------------------------------------------------------------- /web/weex-bindingx/demo/rax/svg.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 7 | 8 | BindingX Demo 9 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /core/android/bindingx-core/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 18 | 19 | bindingx-core 20 | 21 | -------------------------------------------------------------------------------- /core/ios/BindingX/EBExpressionOrientation.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2018 Alibaba Group 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #import "EBExpressionHandler.h" 18 | 19 | @interface EBExpressionOrientation : EBExpressionHandler 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /web/weex-bindingx/demo/rax/scroll.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 7 | 8 | BindingX Demo 9 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /core/ios/BindingXTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /core/ios/BindingX/EBJSEvaluate.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2018 Alibaba Group 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #import "EBNativeFunction.h" 18 | 19 | @interface EBJSEvaluate: NSObject 20 | 21 | + (EBNativeFunction *)evaluateColor; 22 | 23 | @end 24 | -------------------------------------------------------------------------------- /core/web-polifill/demo/lottie.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 7 | 8 | Demo 9 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /react-native/lib/android/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 18 | 19 | bindingx_react-native_plugin 20 | 21 | -------------------------------------------------------------------------------- /react-native/lib/ios/RNBindingX/core/EBExpressionScroller.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2018 Alibaba Group 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #import "EBExpressionHandler.h" 18 | 19 | @interface EBExpressionScroller : EBExpressionHandler 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /react-native/lib/ios/RNBindingX/core/EBExpressionTiming.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2018 Alibaba Group 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #import "EBExpressionHandler.h" 18 | 19 | @interface EBExpressionTiming : EBExpressionHandler 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /weex/android/bindingx_weex_plugin/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 18 | 19 | binding_weex_plugin 20 | 21 | -------------------------------------------------------------------------------- /weex/playground/android/playground-weex/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 18 | 19 | bindingx-weex 20 | 21 | -------------------------------------------------------------------------------- /native/android/bindingx_android_plugin/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 18 | 19 | binding_weex_plugin 20 | 21 | -------------------------------------------------------------------------------- /react-native/example/android/playground-rn/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 18 | 19 | bindingx-RN 20 | 21 | -------------------------------------------------------------------------------- /core/ios/BindingX/EBExpressionGesture.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2018 Alibaba Group 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #import 18 | #import "EBExpressionHandler.h" 19 | 20 | @interface EBExpressionGesture : EBExpressionHandler 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /react-native/lib/ios/RNBindingX/core/EBExpressionOrientation.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2018 Alibaba Group 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #import "EBExpressionHandler.h" 18 | 19 | @interface EBExpressionOrientation : EBExpressionHandler 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /core/android/bindingx-core/changelog.md: -------------------------------------------------------------------------------- 1 | ### bindingx-core changelog 2 | 3 | #### 1.0.0 4 | 5 | 1. 初始版本。 6 | 7 | #### 1.0.1 8 | 9 | 1. 代码重构,细节优化。 10 | 11 | #### 1.0.2 12 | 13 | 1. 增加统一的属性拦截器,可以拦截或者覆盖默认的视图更新行为。 14 | 15 | #### 1.0.3 16 | 17 | 1. 对虚拟节点进行特殊处理 18 | 2. 修改拦截器逻辑,忽略返回值 19 | 20 | #### 1.0.4 21 | 22 | 1. 增加日志开关,可以在运行时输出内部变量值 23 | 24 | #### 1.0.5 25 | 26 | 1. 统一属性拦截器执行线程为UI线程 27 | 28 | #### 1.0.6 29 | 30 | 1. minsdkVersion降到14 31 | 32 | #### 1.0.7 33 | 34 | 1. 支持注入自定义函数 35 | 36 | #### 1.0.8 37 | 38 | 1. 支持自定义事件处理器 39 | 40 | #### 1.0.9 41 | 42 | 1. 支持注入拦截器。拦截器用来定义回调时机。 43 | 44 | #### 1.0.9.1 45 | 46 | 1. 增加registerEventHandler的静态方法版本 47 | 48 | #### 1.0.9.2 & 1.0.9.3 & 1.0.9.4 49 | 50 | 1. 兼容devtool 51 | 52 | #### 1.0.9.5 53 | 54 | 1. bind方法支持传扩展参数 55 | 56 | #### 1.0.9.6 57 | 58 | 1. 合并两个特性分支(手势/native plugin),重新打包 -------------------------------------------------------------------------------- /core/ios/BindingX/NSObject+EBTuplePacker.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2018 Alibaba Group 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #import 18 | #import "EBTaffyTuple.h" 19 | 20 | @interface NSObject (EBTuplePacker) 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /weex/ios/Sources/EBWXModule.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2018 Alibaba Group 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #import 18 | #import 19 | 20 | @interface EBWXModule : NSObject 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /weex/playground/android/qrcode_extends/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.library' 2 | 3 | android { 4 | compileSdkVersion 26 5 | 6 | 7 | 8 | defaultConfig { 9 | minSdkVersion 16 10 | targetSdkVersion 26 11 | versionCode 1 12 | versionName "1.0" 13 | 14 | testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 15 | 16 | } 17 | 18 | buildTypes { 19 | release { 20 | minifyEnabled false 21 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 22 | } 23 | } 24 | 25 | } 26 | 27 | dependencies { 28 | implementation fileTree(dir: 'libs', include: ['*.jar']) 29 | 30 | implementation 'com.android.support:appcompat-v7:26.1.0' 31 | compileOnly 'com.google.zxing:core:3.3.0' 32 | } 33 | -------------------------------------------------------------------------------- /core/ios/BindingX/EBExpressionScope.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2018 Alibaba Group 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #import 18 | 19 | @interface EBExpressionScope : NSObject 20 | 21 | + (NSMutableDictionary *)generalScope; 22 | 23 | @end 24 | -------------------------------------------------------------------------------- /react-native/lib/ios/RNBindingX/core/EBJSEvaluate.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2018 Alibaba Group 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #import "EBNativeFunction.h" 18 | 19 | @interface EBJSEvaluate: NSObject 20 | 21 | + (EBNativeFunction *)evaluateColor; 22 | 23 | @end 24 | -------------------------------------------------------------------------------- /weex/playground/android/qrcode_extends/src/main/java/com/alibaba/android/qrcode/extension/core/CameraWrapper.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.android.qrcode.extension.core; 2 | 3 | import android.hardware.Camera; 4 | 5 | public class CameraWrapper { 6 | public final Camera mCamera; 7 | public final int mCameraId; 8 | 9 | private CameraWrapper(Camera camera, int cameraId) { 10 | if (camera == null) { 11 | throw new NullPointerException("Camera cannot be null"); 12 | } 13 | this.mCamera = camera; 14 | this.mCameraId = cameraId; 15 | } 16 | 17 | public static CameraWrapper getWrapper(Camera camera, int cameraId) { 18 | if (camera == null) { 19 | return null; 20 | } else { 21 | return new CameraWrapper(camera, cameraId); 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /weex/ios/Sources/EBWXUtils.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2018 Alibaba Group 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #import 18 | 19 | @interface EBWXUtils : NSObject 20 | 21 | + (NSDictionary *)cssPropertyMapping; 22 | 23 | @end 24 | -------------------------------------------------------------------------------- /parser/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "bindingx-parser", 3 | "version": "0.0.3", 4 | "description": "Expression parser for bindingx", 5 | "main": "lib/index.js", 6 | "scripts": { 7 | "start": "webpack-dev-server --config webpack.dev.config.js", 8 | "build": "webpack", 9 | "test": "mocha test/parse-test.js" 10 | }, 11 | "keywords": [ 12 | "bindingx", 13 | "parser", 14 | "expression" 15 | ], 16 | "author": "", 17 | "license": "Apache-2.0", 18 | "devDependencies": { 19 | "chai": "^4.1.2", 20 | "babel-core": "^6.26.0", 21 | "babel-loader": "^7.1.2", 22 | "babel-plugin-add-module-exports": "^0.2.1", 23 | "babel-preset-es2015": "^6.24.1", 24 | "babel-preset-react": "^6.24.1", 25 | "babel-preset-stage-0": "^6.24.1", 26 | "webpack": "^3.8.1", 27 | "webpack-dev-server": "^2.7.1" 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /react-native/lib/ios/RNBindingX/core/EBExpressionScope.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2018 Alibaba Group 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #import 18 | 19 | @interface EBExpressionScope : NSObject 20 | 21 | + (NSMutableDictionary *)generalScope; 22 | 23 | @end 24 | -------------------------------------------------------------------------------- /react-native/lib/ios/RNBindingX/core/NSObject+EBTuplePacker.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2018 Alibaba Group 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #import 18 | #import "EBTaffyTuple.h" 19 | 20 | @interface NSObject (EBTuplePacker) 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /core/android/bindingx-core/src/main/java/com/alibaba/android/bindingx/core/internal/JSObjectInterface.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2018 Alibaba Group 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.alibaba.android.bindingx.core.internal; 17 | 18 | public interface JSObjectInterface { 19 | } 20 | -------------------------------------------------------------------------------- /weex/ios/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | $(CURRENT_PROJECT_VERSION) 21 | NSPrincipalClass 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /react-native/lib/ios/RNBindingX/EBUtility+RN.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2018 Alibaba Group 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #import "EBUtility.h" 18 | #import 19 | 20 | @interface EBUtility (RN) 21 | 22 | + (void)setUIManager:(RCTUIManager *)uiManager; 23 | 24 | @end 25 | -------------------------------------------------------------------------------- /react-native/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "react-native-bindingx", 3 | "version": "0.1.2", 4 | "scripts": { 5 | "start": "npm install && node node_modules/react-native/local-cli/cli.js start --root ./example", 6 | "postinstall": "ln -sf lib/{ios,android} .", 7 | "prepublish": "", 8 | "test": "jest" 9 | }, 10 | "main": "lib/index.js", 11 | "nativePackage": true, 12 | "dependencies": { 13 | "bindingx-parser": "^0.0.2" 14 | }, 15 | "peerDependencies": { 16 | "react": "^16.0.0", 17 | "react-native": "^0.51.0" 18 | }, 19 | "devDependencies": { 20 | "babel-jest": "22.0.3", 21 | "babel-preset-react-native": "4.0.0", 22 | "hoek": "^5.0.3", 23 | "jest": "22.4.3", 24 | "react-test-renderer": "16.0.0", 25 | "react-navigation": "^1.5.8" 26 | }, 27 | "jest": { 28 | "preset": "react-native" 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /weex/playground/android/gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | 3 | # IDE (e.g. Android Studio) users: 4 | # Gradle settings configured through the IDE *will override* 5 | # any settings specified in this file. 6 | 7 | # For more details on how to configure your build environment visit 8 | # http://www.gradle.org/docs/current/userguide/build_environment.html 9 | 10 | # Specifies the JVM arguments used for the daemon process. 11 | # The setting is particularly useful for tweaking memory settings. 12 | org.gradle.jvmargs=-Xmx1536m 13 | 14 | # When configured, Gradle will run in incubating parallel mode. 15 | # This option should only be used with decoupled projects. More details, visit 16 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 17 | # org.gradle.parallel=true 18 | 19 | android.useDeprecatedNdk=true 20 | -------------------------------------------------------------------------------- /core/android/bindingx-core/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile 22 | -------------------------------------------------------------------------------- /react-native/example/android/gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | 3 | # IDE (e.g. Android Studio) users: 4 | # Gradle settings configured through the IDE *will override* 5 | # any settings specified in this file. 6 | 7 | # For more details on how to configure your build environment visit 8 | # http://www.gradle.org/docs/current/userguide/build_environment.html 9 | 10 | # Specifies the JVM arguments used for the daemon process. 11 | # The setting is particularly useful for tweaking memory settings. 12 | org.gradle.jvmargs=-Xmx1536m 13 | 14 | # When configured, Gradle will run in incubating parallel mode. 15 | # This option should only be used with decoupled projects. More details, visit 16 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 17 | # org.gradle.parallel=true 18 | 19 | android.useDeprecatedNdk=true 20 | -------------------------------------------------------------------------------- /react-native/lib/android/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile 22 | -------------------------------------------------------------------------------- /weex/playground/ios/WeexUITestDemoUITests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /weex/android/bindingx_weex_plugin/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile 22 | -------------------------------------------------------------------------------- /native/android/bindingx_android_plugin/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile 22 | -------------------------------------------------------------------------------- /react-native/example/android/playground-rn/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile 22 | -------------------------------------------------------------------------------- /react-native/example/ios/BindingDemoRN/AppDelegate.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2018 Alibaba Group 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #import 18 | 19 | @interface AppDelegate : UIResponder 20 | 21 | @property (strong, nonatomic) UIWindow *window; 22 | 23 | 24 | @end 25 | 26 | -------------------------------------------------------------------------------- /web/weex-bindingx/demo/vue/pan.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | BindingX Demo 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /weex/playground/android/playground-weex/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile 22 | -------------------------------------------------------------------------------- /weex/playground/android/qrcode_extends/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile 22 | -------------------------------------------------------------------------------- /weex/playground/ios/WeexDemo/lottie/WXLottieBindingXHandler.m: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by Weex. 3 | * Copyright (c) 2016, Alibaba, Inc. All rights reserved. 4 | * 5 | * This source code is licensed under the Apache Licence 2.0. 6 | * For the full copyright and license information,please view the LICENSE file in the root directory of this source tree. 7 | */ 8 | 9 | #import "WXLottieBindingXHandler.h" 10 | #import "WXLottieComponent.h" 11 | 12 | @implementation WXLottieBindingXHandler 13 | 14 | - (void)execute:(NSDictionary *)properties to:(id)target { 15 | if ([target isKindOfClass:WXLottieComponent.class]) { 16 | id progress = properties[@"lottie-progress"]; 17 | if (progress) { 18 | WXLottieComponent *lottie = (WXLottieComponent *)target; 19 | [lottie setProgress:[WXConvert CGFloat:progress]]; 20 | } 21 | } 22 | } 23 | 24 | @end 25 | -------------------------------------------------------------------------------- /core/ios/BindingX/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | $(CURRENT_PROJECT_VERSION) 21 | NSPrincipalClass 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /native/android/playground/playground-android/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile 22 | -------------------------------------------------------------------------------- /web/weex-bindingx/demo/vue/timing.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | BindingX Demo 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /web/weex-bindingx/demo/vue/orientation.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | BindingX Demo 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /core/ios/BindingX/EBExpression.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2018 Alibaba Group 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | @interface EBExpression: NSObject 18 | 19 | @property(nonatomic, strong) NSDictionary *root; 20 | 21 | - (id)initWithRoot:(NSDictionary*) root; 22 | - (NSObject*)executeInScope:(NSDictionary *)scope; 23 | 24 | @end 25 | 26 | -------------------------------------------------------------------------------- /react-native/lib/ios/RNBindingX/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | $(CURRENT_PROJECT_VERSION) 21 | NSPrincipalClass 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /web/weex-bindingx/demo/vue/scroll.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | BindingX Demo 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /weex/playground/android/qrcode_extends/src/main/res/values/attrs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /core/ios/BindingXTests/EBTestUtils.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2018 Alibaba Group 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #import 18 | #import "EBExpression.h" 19 | #import "EBExpressionScope.h" 20 | 21 | @interface EBTestUtils : NSObject 22 | 23 | + (EBExpression *)expressionFromJSON:(NSString *)json; 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /core/web-polifill/demo/timing.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 7 | 8 | Demo 9 | 27 | 28 | 29 | 30 |
31 | 32 | 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /react-native/lib/ios/RNBindingX/core/EBExpression.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2018 Alibaba Group 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | @interface EBExpression: NSObject 18 | 19 | @property(nonatomic, strong) NSDictionary *root; 20 | 21 | - (id)initWithRoot:(NSDictionary*) root; 22 | - (NSObject*)executeInScope:(NSDictionary *)scope; 23 | 24 | @end 25 | 26 | -------------------------------------------------------------------------------- /react-native/lib/ios/RNBindingX/core/EBExpressionGesture.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2018 Alibaba Group 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #import 18 | #import "EBExpressionHandler.h" 19 | 20 | 21 | @interface EBExpressionGesture : EBExpressionHandler 22 | 23 | @property (nonatomic, weak) UIGestureRecognizer *gesture; 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /weex/ios/Sources/EBWXOldModule.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2018 Alibaba Group 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #import 18 | #import 19 | 20 | __attribute__ ((deprecated("EBWXOldModule is deprecated, EBWXModule instead it."))) 21 | @interface EBWXOldModule : NSObject 22 | 23 | @end 24 | -------------------------------------------------------------------------------- /react-native/example/ios/BindingDemoRN/main.m: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2018 Alibaba Group 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #import 18 | #import "AppDelegate.h" 19 | 20 | int main(int argc, char * argv[]) { 21 | @autoreleasepool { 22 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /weex/build/webpack.config.js: -------------------------------------------------------------------------------- 1 | 2 | var fs = require('fs'); 3 | var webpack = require('webpack'); 4 | 5 | 6 | var bannerExcludeFiles = []; 7 | 8 | var banner = '// { "framework": "Vue" }\n' 9 | 10 | var bannerPlugin = new webpack.BannerPlugin(banner, { 11 | raw: true, 12 | exclude: bannerExcludeFiles 13 | }) 14 | 15 | module.exports = { 16 | entry: "./js/src/index.js", 17 | output : { 18 | path: './js/build/', 19 | filename: '[name].js' 20 | }, 21 | module: { 22 | loaders: [ 23 | { 24 | test: /\.(we|vue)(\?[^?]+)?$/, 25 | loader: 'weex' 26 | }, 27 | { 28 | test: /\.js(\?[^?]+)?$/, 29 | exclude: /node_modules/, 30 | loader: 'babel-loader?presets[]=es2015', 31 | }, 32 | { 33 | test: /\.css(\?[^?]+)?$/, 34 | loader: 'style-loader!css-loader' 35 | } 36 | ] 37 | }, 38 | plugins: [bannerPlugin] 39 | } 40 | 41 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /core/web-polifill/src/lib/math.js: -------------------------------------------------------------------------------- 1 | /** 2 | Copyright 2018 Alibaba Group 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | let _Math = { 18 | DEG2RAD: Math.PI / 180, 19 | RAD2DEG: 180 / Math.PI, 20 | degToRad: function(degrees) { 21 | return degrees * _Math.DEG2RAD; 22 | }, 23 | radToDeg: function(radians) { 24 | return radians * _Math.RAD2DEG; 25 | } 26 | }; 27 | 28 | export default _Math; -------------------------------------------------------------------------------- /core/ios/BindingX/EBJSTransform.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2018 Alibaba Group 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #import 18 | #import "EBNativeFunction.h" 19 | 20 | @interface EBJSTransform : NSObject 21 | 22 | + (EBNativeFunction *)translate; 23 | + (EBNativeFunction *)scale; 24 | + (EBNativeFunction *)matrix; 25 | + (EBNativeFunction *)asArray; 26 | 27 | @end 28 | -------------------------------------------------------------------------------- /core/web-polifill/src/lib/handlers/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | Copyright 2018 Alibaba Group 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | 'use strict'; 18 | 19 | import PanHandler from './pan'; 20 | import OrientationHandler from './orientation'; 21 | import TimingHandler from './timing'; 22 | import ScrollHandler from './scroll'; 23 | export { 24 | PanHandler, 25 | OrientationHandler, 26 | TimingHandler, 27 | ScrollHandler 28 | }; -------------------------------------------------------------------------------- /native/android/playground/playground-android/src/androidTest/java/com/alibaba/android/playground/ExampleInstrumentedTest.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.android.playground; 2 | 3 | import android.content.Context; 4 | import android.support.test.InstrumentationRegistry; 5 | import android.support.test.runner.AndroidJUnit4; 6 | 7 | import org.junit.Test; 8 | import org.junit.runner.RunWith; 9 | 10 | import static org.junit.Assert.*; 11 | 12 | /** 13 | * Instrumented test, which will execute on an Android device. 14 | * 15 | * @see Testing documentation 16 | */ 17 | @RunWith(AndroidJUnit4.class) 18 | public class ExampleInstrumentedTest { 19 | @Test 20 | public void useAppContext() { 21 | // Context of the app under test. 22 | Context appContext = InstrumentationRegistry.getTargetContext(); 23 | 24 | assertEquals("com.alibaba.android.playground", appContext.getPackageName()); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /react-native/example/android/playground-rn/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 19 | 20 | #3F51B5 21 | #303F9F 22 | #FF4081 23 | 24 | -------------------------------------------------------------------------------- /react-native/example/ios/Podfile: -------------------------------------------------------------------------------- 1 | source 'https://github.com/CocoaPods/Specs.git' 2 | platform :ios, '8.0' 3 | #inhibit_all_warnings! 4 | 5 | target 'BindingDemoRN' do 6 | 7 | pod 'BindingX', :path => '../../../BindingX-react-native.podspec' 8 | 9 | pod 'React', :path => '../../node_modules/react-native/React.podspec', :subspecs => [ 10 | 'Core', 11 | 'RCTText', 12 | 'RCTNetwork’, 13 | 'RCTWebSocket', 14 | 'CxxBridge', 15 | 'RCTAnimation', 16 | 'RCTLinkingIOS', 17 | 'RCTImage', 18 | ] 19 | 20 | pod 'yoga', :path => '../../node_modules/react-native/ReactCommon/yoga' 21 | 22 | # Third party deps podspec link 23 | pod 'DoubleConversion', :podspec => '../../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec' 24 | pod 'GLog', :podspec => '../../node_modules/react-native/third-party-podspecs/GLog.podspec' 25 | pod 'Folly', :podspec => '../../node_modules/react-native/third-party-podspecs/Folly.podspec' 26 | 27 | end 28 | -------------------------------------------------------------------------------- /weex/playground/android/playground-weex/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 19 | 20 | #3F51B5 21 | #303F9F 22 | #FF4081 23 | 24 | -------------------------------------------------------------------------------- /core/web-polifill/README.md: -------------------------------------------------------------------------------- 1 | ## bindingx-web-polyfill 2 | 3 | 4 | ## Install & Use 5 | 6 | ``` 7 | 8 | import bindingx from 'bindingx-web-polyfill'; 9 | 10 | var blockEl = document.getElementById('block'); 11 | 12 | var x = 0; 13 | 14 | function bind() { 15 | bindingx.bind({ 16 | anchor: blockEl, 17 | eventType: 'pan', 18 | options: { 19 | touchAction: 'pan-x' 20 | }, 21 | props: [ 22 | { 23 | element: blockEl, 24 | property: 'transform.translateX', 25 | expression: { 26 | transformed: `{\"type\":\"+\",\"children\":[{\"type\":\"Identifier\",\"value\":\"x\"},{\"type\":\"NumericLiteral\",\"value\":${x}}]}` 27 | } 28 | } 29 | ] 30 | }, (e) => { 31 | if (e.state === 'end') { 32 | x += e.deltaX; 33 | } 34 | }); 35 | } 36 | 37 | bind(); 38 | 39 | blockEl.addEventListener('touchstart', () => { 40 | bind(); 41 | }); 42 | 43 | 44 | 45 | ``` 46 | 47 | 48 | 49 | 50 | 51 | -------------------------------------------------------------------------------- /core/ios/BindingX/EBNativeFunction.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2018 Alibaba Group 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #import 18 | 19 | @interface EBNativeFunction: NSObject 20 | 21 | @property(nonatomic, strong) NSObject* (^body)(NSArray* arguments); 22 | 23 | - (id)initWithBody:(NSObject* (^)(NSArray*))body; 24 | 25 | - (NSObject*)call:(NSArray *)arguments; 26 | 27 | @end 28 | 29 | -------------------------------------------------------------------------------- /react-native/lib/ios/RNBindingX/core/EBJSTransform.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2018 Alibaba Group 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #import 18 | #import "EBNativeFunction.h" 19 | 20 | @interface EBJSTransform : NSObject 21 | 22 | + (EBNativeFunction *)translate; 23 | + (EBNativeFunction *)scale; 24 | + (EBNativeFunction *)matrix; 25 | + (EBNativeFunction *)asArray; 26 | 27 | @end 28 | -------------------------------------------------------------------------------- /weex/ios/Sources/EBUtility+WX.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2018 Alibaba Group 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #import 18 | #import "EBUtility.h" 19 | 20 | @interface EBUtility(WX) 21 | 22 | + (NSNumber *)transformFactor:(NSString *)key layer:(CALayer* )layer; 23 | + (NSString *)colorAsString:(CGColorRef)cgColor; 24 | + (NSNumber *)radian2Angle:(NSNumber *)radian; 25 | 26 | @end 27 | -------------------------------------------------------------------------------- /core/ios/BindingX/BindingX.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2018 Alibaba Group 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #import 18 | 19 | FOUNDATION_EXPORT double BindingXVersionNumber; 20 | 21 | FOUNDATION_EXPORT const unsigned char BindingXVersionString[]; 22 | 23 | #import 24 | #import 25 | #import 26 | -------------------------------------------------------------------------------- /react-native/lib/ios/RNBindingX/core/EBNativeFunction.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2018 Alibaba Group 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #import 18 | 19 | @interface EBNativeFunction: NSObject 20 | 21 | @property(nonatomic, strong) NSObject* (^body)(NSArray* arguments); 22 | 23 | - (id)initWithBody:(NSObject* (^)(NSArray*))body; 24 | 25 | - (NSObject*)call:(NSArray *)arguments; 26 | 27 | @end 28 | 29 | -------------------------------------------------------------------------------- /web/weex-bindingx/demo/rax/menu.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 7 | 8 | BindingX Demo 9 | 22 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /BindingX-react-native.podspec: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | 3 | Pod::Spec.new do |s| 4 | s.name = "BindingX" 5 | s.version = "1.0.2" 6 | s.summary = "BindingX RN Plugin" 7 | 8 | s.description = <<-DESC 9 | It provides a way called expression binding for handling complex user interaction with views at 60 FPS in weex. 10 | DESC 11 | 12 | s.homepage = "https://github.com/alibaba/bindingx" 13 | s.license = { 14 | :type => 'Copyright', 15 | :text => <<-LICENSE 16 | Alibaba-INC copyright 17 | LICENSE 18 | } 19 | s.authors = { 20 | "hjhcn" =>"380050803@qq.com" 21 | } 22 | s.platform = :ios 23 | s.ios.deployment_target = "8.0" 24 | 25 | s.source = { :path => '.' } 26 | s.source_files = "core/ios/BindingX/**/*.{h,m,mm}" , "react-native/lib/ios/RNBindingX/*.{h,m,mm}" 27 | 28 | s.requires_arc = true 29 | s.dependency "React" 30 | s.dependency "yoga" 31 | end 32 | -------------------------------------------------------------------------------- /core/ios/BindingXTests/EBTestCase.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2018 Alibaba Group 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #import 18 | #import "EBTestUtils.h" 19 | 20 | @interface EBTestCase : XCTestCase 21 | 22 | @property(nonatomic, strong) NSMutableDictionary *scope; 23 | 24 | - (void)AssertEqualObjects:(NSObject *)object withNewScope:(NSDictionary *)newScope expression:(EBExpression *)expression; 25 | 26 | @end 27 | -------------------------------------------------------------------------------- /core/ios/BindingX/EBExpressionExecutor.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2018 Alibaba Group 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #import 18 | #import "EBExpressionProperty.h" 19 | 20 | @interface EBExpressionExecutor : NSObject 21 | 22 | + (BOOL)executeExpression:(NSMapTable *)expressionMap 23 | exitExpression:(NSDictionary *)exitExpression 24 | scope:(NSDictionary *)scope; 25 | 26 | @end 27 | -------------------------------------------------------------------------------- /parser/webpack.config.js: -------------------------------------------------------------------------------- 1 | var webpack = require('webpack'); 2 | 3 | module.exports = { 4 | plugins: [ 5 | ], 6 | entry: { 7 | index: './src/index.js' 8 | }, 9 | output: { 10 | path: __dirname + '/lib/', 11 | filename: '[name].js', 12 | libraryTarget:'umd' 13 | }, 14 | devServer: { 15 | contentBase: "./demo", 16 | historyApiFallback: true, 17 | inline: true, 18 | publicPath: '/dist/' 19 | }, 20 | module: { 21 | loaders: [ 22 | { 23 | test: /\.css$/, 24 | loader: 'style-loader!css-loader' 25 | }, 26 | // { 27 | // test: /\.js$/, 28 | // loader: 'jsx-loader?harmony' 29 | // }, 30 | { 31 | test: /\.(png|jpg)$/, 32 | loader: 'url-loader?limit=8192' 33 | }, 34 | { 35 | test: /\.jsx?$/, 36 | loader: 'babel-loader', 37 | exclude: /node_modules/, 38 | query: { 39 | presets: ['es2015','stage-0'] 40 | } 41 | } 42 | ] 43 | } 44 | }; -------------------------------------------------------------------------------- /weex/playground/ios/WeexDemo/WXSyncTestModule.m: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by Weex. 3 | * Copyright (c) 2016, Alibaba, Inc. All rights reserved. 4 | * 5 | * This source code is licensed under the Apache Licence 2.0. 6 | * For the full copyright and license information,please view the LICENSE file in the root directory of this source tree. 7 | */ 8 | 9 | #import "WXSyncTestModule.h" 10 | 11 | @implementation WXSyncTestModule 12 | 13 | WX_EXPORT_METHOD_SYNC(@selector(getString)) 14 | WX_EXPORT_METHOD_SYNC(@selector(getNumber)) 15 | WX_EXPORT_METHOD_SYNC(@selector(getArray)) 16 | WX_EXPORT_METHOD_SYNC(@selector(getObject)) 17 | 18 | - (NSString *)getString 19 | { 20 | return @"testString"; 21 | } 22 | 23 | - (NSUInteger)getNumber 24 | { 25 | return 111111; 26 | } 27 | 28 | - (NSArray *)getArray 29 | { 30 | return @[@(111111),@"testString",@"testString2"]; 31 | } 32 | 33 | - (NSDictionary *)getObject 34 | { 35 | return @{@"number":@(111111), @"string1":@"testString",@"string2":@"testString2"}; 36 | } 37 | 38 | @end 39 | -------------------------------------------------------------------------------- /react-native/example/android/playground-rn/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 19 | 25 | 26 | -------------------------------------------------------------------------------- /core/web-polifill/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "bindingx-web-polyfill", 3 | "version": "0.1.14", 4 | "description": "The web polyfill for BindingX.", 5 | "main": "lib/index.js", 6 | "scripts": { 7 | "start": "webpack-dev-server --config webpack.dev.config.js", 8 | "build": "webpack", 9 | "test": "echo \"Error: no test specified\" && exit 1" 10 | }, 11 | "keywords": [ 12 | "bindingx", 13 | "web", 14 | "html5", 15 | "polyfill" 16 | ], 17 | "author": "", 18 | "license": "Apache-2.0", 19 | "devDependencies": { 20 | "babel-core": "^6.26.0", 21 | "babel-loader": "^7.1.2", 22 | "babel-plugin-add-module-exports": "^0.2.1", 23 | "babel-preset-es2015": "^6.24.1", 24 | "babel-preset-react": "^6.24.1", 25 | "babel-preset-stage-0": "^6.24.1", 26 | "bindingx-parser": "^0.0.3", 27 | "webpack": "^3.8.1", 28 | "webpack-dev-server": "^2.7.1" 29 | }, 30 | "dependencies": { 31 | "animation-util": "^1.0.10", 32 | "object-assign": "^4.1.1", 33 | "simple-lodash": "^0.0.3" 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /weex/playground/ios/WeexDemo/DemoBaseViewController.m: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by Weex. 3 | * Copyright (c) 2016, Alibaba, Inc. All rights reserved. 4 | * 5 | * This source code is licensed under the Apache Licence 2.0. 6 | * For the full copyright and license information,please view the LICENSE file in the root directory of this source tree. 7 | */ 8 | 9 | #import "DemoBaseViewController.h" 10 | #import "UIViewController+WXDemoNaviBar.h" 11 | 12 | @interface DemoBaseViewController () 13 | 14 | @end 15 | 16 | @implementation DemoBaseViewController 17 | 18 | - (instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 19 | { 20 | return [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 21 | } 22 | 23 | - (void)viewDidLoad { 24 | [super viewDidLoad]; 25 | // Do any additional setup after loading the view. 26 | [self setupNaviBar]; 27 | } 28 | 29 | - (void)didReceiveMemoryWarning { 30 | [super didReceiveMemoryWarning]; 31 | // Dispose of any resources that can be recreated. 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /core/ios/BindingX/EBGyroVector3.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2018 Alibaba Group 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | #import 17 | 18 | @interface EBGyroVector3: NSObject 19 | 20 | @property(nonatomic,assign) double x; 21 | @property(nonatomic,assign) double y; 22 | @property(nonatomic,assign) double z; 23 | 24 | + (instancetype)vectorWithX:(double)x y:(double)y z:(double)z; 25 | 26 | - (instancetype)applyQuaternionW:(double)qw x:(double)qx y:(double)qy z:(double)qz; 27 | 28 | @end 29 | -------------------------------------------------------------------------------- /core/android/bindingx-core/src/main/java/com/alibaba/android/bindingx/core/internal/JSFunctionInterface.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2018 Alibaba Group 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.alibaba.android.bindingx.core.internal; 17 | 18 | import org.json.JSONException; 19 | 20 | import java.util.ArrayList; 21 | 22 | public interface JSFunctionInterface extends JSObjectInterface { 23 | Object execute(ArrayList arguments) throws NumberFormatException,JSONException; 24 | } 25 | -------------------------------------------------------------------------------- /core/ios/BindingX/EBGyroManager.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2018 Alibaba Group 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #import 18 | 19 | @protocol EBGyroWatcherProtocol 20 | 21 | - (BOOL)orientaionChanged:(double)alpha beta:(double)beta gamma:(double)gamma; 22 | 23 | @end 24 | 25 | @interface EBGyroManager : NSObject 26 | 27 | + (void)watchOrientation:(id)watcher ; 28 | 29 | + (void)removeOrientation:(id)watcher; 30 | 31 | @end 32 | -------------------------------------------------------------------------------- /core/ios/BindingX/EBNativeFunction.m: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2018 Alibaba Group 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #import 18 | #import "EBNativeFunction.h" 19 | 20 | @implementation EBNativeFunction 21 | 22 | -(id)initWithBody: (NSObject* (^)(NSArray*))body{ 23 | if(self=[super init]) 24 | { 25 | _body = body; 26 | } 27 | return self; 28 | } 29 | 30 | - (NSObject*)call:(NSArray *)arguments { 31 | return _body(arguments); 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /weex/playground/android/build.gradle: -------------------------------------------------------------------------------- 1 | // Top-level build file where you can add configuration options common to all sub-projects/modules. 2 | 3 | buildscript { 4 | 5 | repositories { 6 | maven { 7 | url "http://mvnrepo.alibaba-inc.com/mvn/repository" 8 | } 9 | google() 10 | jcenter() 11 | } 12 | dependencies { 13 | classpath 'com.android.tools.build:gradle:3.0.1' 14 | 15 | 16 | // NOTE: Do not place your application dependencies here; they belong 17 | // in the individual module build.gradle files 18 | } 19 | } 20 | 21 | plugins { 22 | id "com.github.hierynomus.license" version "0.14.0" 23 | } 24 | 25 | allprojects { 26 | repositories { 27 | maven { 28 | url "http://mvnrepo.alibaba-inc.com/mvn/repository" 29 | } 30 | google() 31 | jcenter() 32 | } 33 | } 34 | 35 | subprojects { subproject -> 36 | apply plugin: "com.github.hierynomus.license" 37 | } 38 | 39 | task clean(type: Delete) { 40 | delete rootProject.buildDir 41 | } 42 | -------------------------------------------------------------------------------- /react-native/lib/ios/RNBindingX/core/EBGyroVector3.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2018 Alibaba Group 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | #import 17 | 18 | @interface EBGyroVector3: NSObject 19 | 20 | @property(nonatomic,assign) double x; 21 | @property(nonatomic,assign) double y; 22 | @property(nonatomic,assign) double z; 23 | 24 | + (instancetype)vectorWithX:(double)x y:(double)y z:(double)z; 25 | 26 | - (instancetype)applyQuaternionW:(double)qw x:(double)qx y:(double)qy z:(double)qz; 27 | 28 | @end 29 | -------------------------------------------------------------------------------- /BindingX.podspec: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | 3 | Pod::Spec.new do |s| 4 | s.name = "BindingX" 5 | s.version = "1.0.3" 6 | s.summary = "bindingx plugin for Weex" 7 | 8 | s.description = <<-DESC 9 | It provides a way called expression binding for handling complex user interaction with views at 60 FPS in weex. 10 | DESC 11 | 12 | s.homepage = "https://github.com/alibaba/bindingx" 13 | s.license = { 14 | :type => 'Copyright', 15 | :text => <<-LICENSE 16 | Alibaba-INC copyright 17 | LICENSE 18 | } 19 | s.authors = { 20 | "hjhcn" =>"380050803@qq.com" 21 | } 22 | s.platform = :ios 23 | s.ios.deployment_target = "8.0" 24 | 25 | s.source = { :path => '.' } 26 | s.source = { :git => 'https://github.com/alibaba/bindingx.git', :tag => s.version } 27 | s.source_files = "core/ios/BindingX/**/*.{h,m,mm}" , "weex/ios/Sources/*.{h,m,mm}" 28 | 29 | s.requires_arc = true 30 | s.dependency "WeexPluginLoader" 31 | s.dependency "WeexSDK" 32 | end 33 | -------------------------------------------------------------------------------- /react-native/example/android/build.gradle: -------------------------------------------------------------------------------- 1 | // Top-level build file where you can add configuration options common to all sub-projects/modules. 2 | 3 | buildscript { 4 | 5 | repositories { 6 | google() 7 | jcenter() 8 | } 9 | dependencies { 10 | classpath 'com.android.tools.build:gradle:3.0.1' 11 | 12 | 13 | // NOTE: Do not place your application dependencies here; they belong 14 | // in the individual module build.gradle files 15 | } 16 | } 17 | 18 | plugins { 19 | id "com.github.hierynomus.license" version "0.14.0" 20 | } 21 | 22 | allprojects { 23 | repositories { 24 | google() 25 | jcenter() 26 | maven { 27 | // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm 28 | url "$rootDir/../../node_modules/react-native/android" 29 | } 30 | } 31 | } 32 | 33 | subprojects { subproject -> 34 | apply plugin: "com.github.hierynomus.license" 35 | } 36 | 37 | task clean(type: Delete) { 38 | delete rootProject.buildDir 39 | } 40 | -------------------------------------------------------------------------------- /weex/playground/ios/WeexDemoTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NSLocationWhenInUseUsageDescription 6 | $(PRODUCT_NAME) will access your location 7 | NSCameraUsageDescription 8 | $(PRODUCT_NAME) will access your camera 9 | CFBundleDevelopmentRegion 10 | en 11 | CFBundleExecutable 12 | $(EXECUTABLE_NAME) 13 | CFBundleIdentifier 14 | $(PRODUCT_BUNDLE_IDENTIFIER) 15 | CFBundleInfoDictionaryVersion 16 | 6.0 17 | CFBundleName 18 | $(PRODUCT_NAME) 19 | CFBundlePackageType 20 | BNDL 21 | CFBundleShortVersionString 22 | 1.0 23 | CFBundleSignature 24 | ???? 25 | CFBundleVersion 26 | 1 27 | 28 | 29 | -------------------------------------------------------------------------------- /react-native/lib/ios/RNBindingX/core/EBGyroManager.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2018 Alibaba Group 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #import 18 | 19 | @protocol EBGyroWatcherProtocol 20 | 21 | - (BOOL)orientaionChanged:(double)alpha beta:(double)beta gamma:(double)gamma; 22 | 23 | @end 24 | 25 | @interface EBGyroManager : NSObject 26 | 27 | + (void)watchOrientation:(id)watcher ; 28 | 29 | + (void)removeOrientation:(id)watcher; 30 | 31 | @end 32 | -------------------------------------------------------------------------------- /react-native/lib/ios/RNBindingX/core/EBNativeFunction.m: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2018 Alibaba Group 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #import 18 | #import "EBNativeFunction.h" 19 | 20 | @implementation EBNativeFunction 21 | 22 | -(id)initWithBody: (NSObject* (^)(NSArray*))body{ 23 | if(self=[super init]) 24 | { 25 | _body = body; 26 | } 27 | return self; 28 | } 29 | 30 | - (NSObject*)call:(NSArray *)arguments { 31 | return _body(arguments); 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /react-native/lib/ios/RNBindingX/core/EBExpressionExecutor.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2018 Alibaba Group 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #import 18 | #import "EBExpressionProperty.h" 19 | 20 | @interface EBExpressionExecutor : NSObject 21 | 22 | + (BOOL)executeWithTargetMap:(NSMapTable *)targetMap 23 | expressionDict:(NSDictionary *)expressionDict 24 | exitExpression:(NSDictionary *)exitExpression 25 | scope:(NSDictionary *)scope; 26 | 27 | @end 28 | -------------------------------------------------------------------------------- /core/ios/BindingX/EBGyroOrientationEvaluator.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2018 Alibaba Group 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #import "EBGyroQuaternion.h" 18 | 19 | @interface EBGyroOrientationEvaluator: NSObject 20 | 21 | - (instancetype)initWithConstraintAlpha:(NSNumber *)constraintAlpha constraintBeta:(NSNumber *)constraintBeta constraintGamma:(NSNumber *)constraintGamma; 22 | 23 | 24 | - (EBGyroQuaternion *)calculateWithDeviceAlpha:(double)deviceAlpha deviceBeta:(double)deviceBeta deviceGamma:(double)deviceGamma; 25 | 26 | @end 27 | -------------------------------------------------------------------------------- /core/ios/BindingXTests/EBTestUtils.m: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2018 Alibaba Group 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #import "EBTestUtils.h" 18 | #import "EBExpression.h" 19 | 20 | @implementation EBTestUtils 21 | 22 | + (EBExpression *)expressionFromJSON:(NSString *)json 23 | { 24 | NSDictionary *exitExpression = [NSJSONSerialization JSONObjectWithData:[json dataUsingEncoding:NSUTF8StringEncoding] options:NSJSONReadingAllowFragments error:nil]; 25 | return [[EBExpression alloc] initWithRoot:exitExpression]; 26 | } 27 | 28 | @end 29 | -------------------------------------------------------------------------------- /core/android/bindingx-core/bintray.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.jfrog.bintray' 2 | apply from: 'constants.gradle' 3 | 4 | // 5 | version = mavenVersion 6 | group = mavenGroup 7 | // 8 | 9 | 10 | 11 | task sourcesJar(type: Jar) { 12 | from android.sourceSets.main.java.srcDirs 13 | classifier = 'sources' 14 | } 15 | 16 | artifacts { 17 | archives sourcesJar 18 | } 19 | 20 | 21 | Properties properties = new Properties() 22 | 23 | if(project.rootProject.file('local.properties').exists()) { 24 | properties.load(project.rootProject.file('local.properties').newDataInputStream()) 25 | } 26 | bintray { 27 | user = properties.getProperty("bintray.user") != null ? properties.getProperty("bintray.user") : "fake" 28 | key = properties.getProperty("bintray.apikey") != null ? properties.getProperty("bintray.apikey") : "fake" 29 | configurations = ['archives'] 30 | pkg { 31 | repo = projectName 32 | name = mavenArtifactId 33 | userOrg = orgName 34 | websiteUrl = siteUrl 35 | vcsUrl = gitUrl 36 | licenses = ["Apache-2.0"] 37 | publish = true 38 | } 39 | } -------------------------------------------------------------------------------- /core/web-polifill/webpack.config.js: -------------------------------------------------------------------------------- 1 | var webpack = require('webpack'); 2 | 3 | module.exports = { 4 | plugins: [ 5 | // new webpack.optimize.CommonsChunkPlugin({ 6 | // name: 'common' 7 | // }) 8 | ], 9 | entry: { 10 | index: './src/index.js' 11 | }, 12 | output: { 13 | path: __dirname + '/lib/', 14 | filename: '[name].js', 15 | libraryTarget:'umd' 16 | }, 17 | devServer: { 18 | contentBase: "./demo", 19 | historyApiFallback: true, 20 | inline: true, 21 | publicPath: '/dist/' 22 | }, 23 | module: { 24 | loaders: [ 25 | { 26 | test: /\.css$/, 27 | loader: 'style-loader!css-loader' 28 | }, 29 | // { 30 | // test: /\.js$/, 31 | // loader: 'jsx-loader?harmony' 32 | // }, 33 | { 34 | test: /\.(png|jpg)$/, 35 | loader: 'url-loader?limit=8192' 36 | }, 37 | { 38 | test: /\.jsx?$/, 39 | loader: 'babel-loader', 40 | exclude: /node_modules/, 41 | query: { 42 | presets: ['es2015','stage-0'] 43 | } 44 | } 45 | ] 46 | } 47 | }; -------------------------------------------------------------------------------- /native/android/playground/playground-android/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /weex/android/bindingx_weex_plugin/bintray.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.jfrog.bintray' 2 | apply from: 'constants.gradle' 3 | 4 | // 5 | version = mavenVersion 6 | group = mavenGroup 7 | // 8 | 9 | 10 | 11 | task sourcesJar(type: Jar) { 12 | from android.sourceSets.main.java.srcDirs 13 | classifier = 'sources' 14 | } 15 | 16 | artifacts { 17 | archives sourcesJar 18 | } 19 | 20 | 21 | Properties properties = new Properties() 22 | if(project.rootProject.file('local.properties').exists()) { 23 | properties.load(project.rootProject.file('local.properties').newDataInputStream()) 24 | } 25 | bintray { 26 | user = properties.getProperty("bintray.user") != null ? properties.getProperty("bintray.user") : "fake" 27 | key = properties.getProperty("bintray.apikey") != null ? properties.getProperty("bintray.apikey") : "fake" 28 | configurations = ['archives'] 29 | pkg { 30 | repo = projectName 31 | name = mavenArtifactId 32 | userOrg = orgName 33 | websiteUrl = siteUrl 34 | vcsUrl = gitUrl 35 | licenses = ["Apache-2.0"] 36 | publish = true 37 | } 38 | } -------------------------------------------------------------------------------- /core/ios/BindingX/EBGyroEuler.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2018 Alibaba Group 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #import 18 | 19 | @interface EBGyroEuler: NSObject 20 | 21 | @property(nonatomic,assign) double x; 22 | @property(nonatomic,assign) double y; 23 | @property(nonatomic,assign) double z; 24 | @property(nonatomic,copy) NSString *order; 25 | 26 | + (instancetype)eulerWithX:(double)x y:(double)y z:(double)z order:(NSString *)order; 27 | 28 | - (void)setValueWithX:(double)x y:(double)y z:(double)z order:(NSString *)order; 29 | 30 | @end 31 | -------------------------------------------------------------------------------- /native/android/bindingx_android_plugin/bintray.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.jfrog.bintray' 2 | apply from: 'constants.gradle' 3 | 4 | // 5 | version = mavenVersion 6 | group = mavenGroup 7 | // 8 | 9 | 10 | 11 | task sourcesJar(type: Jar) { 12 | from android.sourceSets.main.java.srcDirs 13 | classifier = 'sources' 14 | } 15 | 16 | artifacts { 17 | archives sourcesJar 18 | } 19 | 20 | 21 | Properties properties = new Properties() 22 | if(project.rootProject.file('local.properties').exists()) { 23 | properties.load(project.rootProject.file('local.properties').newDataInputStream()) 24 | } 25 | bintray { 26 | user = properties.getProperty("bintray.user") != null ? properties.getProperty("bintray.user") : "fake" 27 | key = properties.getProperty("bintray.apikey") != null ? properties.getProperty("bintray.apikey") : "fake" 28 | configurations = ['archives'] 29 | pkg { 30 | repo = projectName 31 | name = mavenArtifactId 32 | userOrg = orgName 33 | websiteUrl = siteUrl 34 | vcsUrl = gitUrl 35 | licenses = ["Apache-2.0"] 36 | publish = true 37 | } 38 | } -------------------------------------------------------------------------------- /react-native/lib/ios/RNBindingX/core/EBGyroOrientationEvaluator.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2018 Alibaba Group 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #import "EBGyroQuaternion.h" 18 | 19 | @interface EBGyroOrientationEvaluator: NSObject 20 | 21 | - (instancetype)initWithConstraintAlpha:(NSNumber *)constraintAlpha constraintBeta:(NSNumber *)constraintBeta constraintGamma:(NSNumber *)constraintGamma; 22 | 23 | 24 | - (EBGyroQuaternion *)calculateWithDeviceAlpha:(double)deviceAlpha deviceBeta:(double)deviceBeta deviceGamma:(double)deviceGamma; 25 | 26 | @end 27 | -------------------------------------------------------------------------------- /weex/playground/ios/WeexDemo/debug/WXATViewHierarchyPlugin.m: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by Weex. 3 | * Copyright (c) 2016, Alibaba, Inc. All rights reserved. 4 | * 5 | * This source code is licensed under the Apache Licence 2.0. 6 | * For the full copyright and license information,please view the LICENSE file in the root directory of this source tree. 7 | */ 8 | 9 | //#import "WXATViewHierarchyPlugin.h" 10 | //#import 11 | // 12 | //@implementation WXATViewHierarchyPlugin 13 | //{ 14 | // WXViewHierarchy *_hierarchy; 15 | //} 16 | // 17 | //- (void)pluginDidLoadWithArgs:(NSArray *)args 18 | //{ 19 | // _hierarchy = [[WXViewHierarchy alloc] init]; 20 | // _hierarchy.hidden = YES; 21 | //} 22 | // 23 | //- (void)pluginWillOpenInContainer:(UIViewController *)container withArg:(NSArray *)args 24 | //{ 25 | // [_hierarchy show]; 26 | //} 27 | // 28 | //- (void)pluginWillClose 29 | //{ 30 | // [_hierarchy hide]; 31 | //} 32 | // 33 | //- (void)pluginDidUnload 34 | //{ 35 | // _hierarchy = nil; 36 | //} 37 | // 38 | //- (CGRect)wantReactArea 39 | //{ 40 | // return CGRectZero; 41 | //} 42 | // 43 | //@end 44 | -------------------------------------------------------------------------------- /react-native/lib/ios/RNBindingX/core/EBGyroEuler.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2018 Alibaba Group 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #import 18 | 19 | @interface EBGyroEuler: NSObject 20 | 21 | @property(nonatomic,assign) double x; 22 | @property(nonatomic,assign) double y; 23 | @property(nonatomic,assign) double z; 24 | @property(nonatomic,copy) NSString *order; 25 | 26 | + (instancetype)eulerWithX:(double)x y:(double)y z:(double)z order:(NSString *)order; 27 | 28 | - (void)setValueWithX:(double)x y:(double)y z:(double)z order:(NSString *)order; 29 | 30 | @end 31 | -------------------------------------------------------------------------------- /core/ios/BindingX/EBHandlerFactory.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2018 Alibaba Group 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #import 18 | 19 | @protocol EBHandlerProtocol 20 | 21 | - (void)execute:(NSDictionary *)properties to:(id)target; 22 | 23 | @optional 24 | - (NSDictionary *)customScope; 25 | 26 | @end 27 | 28 | @interface EBHandlerFactory : NSObject 29 | 30 | + (NSArray>*)handlers; 31 | 32 | + (void)addHandler:(id)handler; 33 | 34 | + (void)removeHandler:(id)handler; 35 | 36 | @end 37 | -------------------------------------------------------------------------------- /core/android/bindingx-core/src/main/java/com/alibaba/android/bindingx/core/internal/SensorManagerProxy.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2018 Alibaba Group 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.alibaba.android.bindingx.core.internal; 17 | 18 | import android.hardware.SensorEventListener; 19 | import android.os.Handler; 20 | 21 | interface SensorManagerProxy { 22 | boolean registerListener(SensorEventListener listener, int sensorType, int rate, 23 | Handler handler); 24 | 25 | void unregisterListener(SensorEventListener listener, int sensorType); 26 | } -------------------------------------------------------------------------------- /core/android/bindingx-core/src/main/java/com/alibaba/android/bindingx/core/BindingXEventType.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2018 Alibaba Group 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.alibaba.android.bindingx.core; 17 | 18 | /** 19 | * Description: 20 | * 21 | * BindingX built-in event types 22 | * 23 | * Created by rowandjj(chuyi)
24 | */ 25 | 26 | public interface BindingXEventType { 27 | String TYPE_PAN = "pan"; 28 | String TYPE_FLICK = "flick"; 29 | String TYPE_ORIENTATION = "orientation"; 30 | String TYPE_TIMING = "timing"; 31 | String TYPE_SCROLL = "scroll"; 32 | } 33 | -------------------------------------------------------------------------------- /react-native/example/android/playground-rn/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 18 | 19 | 20 | 21 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /weex/playground/android/playground-weex/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 18 | 19 | 20 | 21 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /core/ios/BindingX/NSObject+EBTuplePacker.m: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2018 Alibaba Group 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #import "NSObject+EBTuplePacker.h" 18 | #import 19 | 20 | @implementation NSObject (EBTuplePacker) 21 | 22 | #pragma mark - WXTaffyPacker 23 | - (NSEnumerator *)wxtf_pack { 24 | if ([self isKindOfClass:[NSNumber class]] || [self isKindOfClass:[NSString class]]) { 25 | return [@[self] objectEnumerator]; 26 | } else if ([self isKindOfClass:[NSArray class]]) { 27 | return [(NSArray *)self objectEnumerator]; 28 | } 29 | return nil; 30 | } 31 | 32 | @end 33 | -------------------------------------------------------------------------------- /core/ios/BindingXTests/EBTestCase.m: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2018 Alibaba Group 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #import "EBTestCase.h" 18 | 19 | @implementation EBTestCase 20 | 21 | - (void)setUp { 22 | [super setUp]; 23 | 24 | _scope = [EBExpressionScope generalScope]; 25 | } 26 | 27 | - (void)AssertEqualObjects:(NSObject *)object withNewScope:(NSDictionary *)newScope expression:(EBExpression *)expression 28 | { 29 | [_scope addEntriesFromDictionary:newScope]; 30 | NSObject *result = [expression executeInScope:self.scope]; 31 | XCTAssertEqualObjects(result, object); 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /react-native/lib/ios/RNBindingX/EBRNModule.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2018 Alibaba Group 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #import 18 | #import 19 | 20 | @interface EBRNModule : RCTEventEmitter 21 | 22 | - (void)prepare:(nonnull NSDictionary *)dictionary; 23 | 24 | - (nonnull NSDictionary *)bind:(nonnull NSDictionary *)dictionary; 25 | 26 | - (void)unbind:(nonnull NSDictionary *)options; 27 | 28 | - (void)unbindAll; 29 | 30 | - (nonnull NSArray *)supportFeatures; 31 | 32 | - (nonnull NSDictionary *)getComputedStyle:(nonnull NSString *)sourceRef; 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /native/android/playground/playground-android/src/main/res/layout/activity_demo2.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 |